• Re: DevFS =?koi8-r?B?ySDQ0s/eycU=?=

    From =?koi8-r?B?6dfBziDsz8g=?=@21:1/5 to All on Sat Jul 30 14:10:01 2022
    On Sat, Jul 30, 2022 at 02:14:31PM +0300, ԣ . wrote:
    .


    , DevFS . - , devfs " " Σ devtmpfs?

    https://lkml.org/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?0JDRgNGC0ZHQvCDQnS4=?=@21:1/5 to All on Sat Jul 30 15:10:01 2022
    Так 2002-2020, а некоторые решения, о которых я спрашиваю - это ещё 90-е.
    Кроме того, искать в тысячах сообщений именно то, что нужно, далеко не
    так просто, ну и та информация по devfs, которая там есть, мало о чём
    говорит: https://www.google.com/search?q=devfs+site:lkml.org

    Возможно кто-то помнит или может кинуть ссылку на конкретную
    документацию/обсуждение по вопросу?


    30.07.2022 15:04, Иван Лох пишет:
    On Sat, Jul 30, 2022 at 02:14:31PM +0300, Артём Н. wrote:
    Здравствуйте.


    Пишу врезку для главы книги, и нужно краткую историю DevFS привести.
    Кто-нибудь помнит реальные причины того, почему devfs "не взлетел" и был
    заменён на devtmpfs?

    https://lkml.org/


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?koi8-r?B?6dfBziDsz8g=?=@21:1/5 to All on Sat Jul 30 15:20:01 2022
    On Sat, Jul 30, 2022 at 03:57:35PM +0300, ԣ . wrote:
    2002-2020, , - ݣ 90-. , , , , devfs, , ޣ : https://www.google.com/search?q=devfs+site:lkml.org

    - / ?

    , udev .
    devfs http://rus-linux.net/MyLDP/file-sys/holm/l-fs4_ru.html

    30.07.2022 15:04, :
    On Sat, Jul 30, 2022 at 02:14:31PM +0300, ԣ . wrote:
    .


    , DevFS . - , devfs " " Σ devtmpfs?

    https://lkml.org/



    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?0JDRgNGC0ZHQvCDQnS4=?=@21:1/5 to All on Sat Jul 30 15:30:01 2022
    Ok, буду искать дискуссию. А описание я видел это. Там "красота devfs",
    но система почему-то загнулась...


    30.07.2022 16:13, Иван Лох пишет:
    On Sat, Jul 30, 2022 at 03:57:35PM +0300, Артём Н. wrote:
    Так 2002-2020, а некоторые решения, о которых я спрашиваю - это ещё 90-е.
    Кроме того, искать в тысячах сообщений именно то, что нужно, далеко не так
    просто, ну и та информация по devfs, которая там есть, мало о чём говорит:
    https://www.google.com/search?q=devfs+site:lkml.org

    Возможно кто-то помнит или может кинуть ссылку на конкретную
    документацию/обсуждение по вопросу?

    Дискуссия, которая привела к появлению udev была именно там.
    О devfs совсем просто написано здесь http://rus-linux.net/MyLDP/file-sys/holm/l-fs4_ru.html

    30.07.2022 15:04, Иван Лох пишет:
    On Sat, Jul 30, 2022 at 02:14:31PM +0300, Артём Н. wrote:
    Здравствуйте.


    Пишу врезку для главы книги, и нужно краткую историю DevFS привести.
    Кто-нибудь помнит реальные причины того, почему devfs "не взлетел" и был
    заменён на devtmpfs?

    https://lkml.org/




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?0JDRgNGC0ZHQvCDQnS4=?=@21:1/5 to All on Sat Jul 30 15:40:01 2022
    Вот, отлично. То, что надо.
    А по udev в чём проблема? Он же появился самый последний?
    И я в конце его упомянул (а сейчас и так все знают, что это).


    30.07.2022 16:18, Maksim Dmitrichenko пишет:
    Уф... давно дело было, конечно, но.....

    Во-первых, в вашем повествовании пропущена целая эпоха под названием udev.

    Во-вторых, на сколько я помню, всю эту кашу заварили по сути из-за hotplug,
    когда ноды стали появляться и исчезать динамически. Devfs была интересной
    штукой, но в зависимости от последовательности вставления девайсов или в
    зависимости от енумератора шин при загрузке, девайсы не имели предсказуемых
    имен.

    По-моему, вот тут всё описано более менее четко:
    https://web.archive.org/web/20110411233322/http://kernel.org/pub/linux/utils/kernel/hotplug/udev_vs_devfs

    сб, 30 июл. 2022 г. в 14:24, Артём Н. <artiom14@yandex.ru>:

    Здравствуйте.


    Пишу врезку для главы книги, и нужно краткую историю DevFS привести.
    Кто-нибудь помнит реальные причины того, почему devfs "не взлетел" и был
    заменён на devtmpfs?

    Уверен, что тут есть те, кто и первой активно пользовались, и в любом
    случае, буду вам благодарен за любые замечания по тексту:

    ```
    Существовало несколько вариантов поддержки устройств в Unix-подобных ОС
    и в Linux, в частности. Один из первых - скрипт MAKEDEV, который через
    вызов makedev() создаёт большой набор файлов устройств, не проверяя то,
    есть эти устройства реально или нет. Если пользователь обратится к
    несуществующему устройству, система просто выдаст ошибку. Тогда /dev был
    лишь подкаталогом корневой файловой системы. И созданные файлы устройств
    существовали там всегда, а MAKEDEV запускался при необходимости.

    Затем разработчики Linux добавили в ядро поддержку devfs (не той,
    которая используется сейчас). С ней возникли проблемы. Например,
    пользовательские скрипты при загрузке должны были ожидать заполнения
    иерархии и как-то синхронизироваться, необходимость явных вызовов изо
    всех драйверов и т.д. Проблемы решались с переменным успехом, но система
    не прижилась.

    Следующим шагом был демон devfsd, обращающийся к ядру. Он создавал
    устройства, о которых ядро предоставляло информацию (т.е. которые
    реально существуют). У такого подхода были недостатки: излишние
    обращения к ядру, по сути двойное перечисление устройств, понижающие
    скорость загрузки, необходимость поддержки в пространстве пользователя.
    Всё это усложняло использование системы во встраиваемых устройствах.

    Современный Linux монтирует в /dev файловую систему DevTmpFS, которая
    сразу отображает все перечисленные ядром устройства, и поддерживающий
    различные правила и события демон udev, при необходимости,
    обеспечивающий её динамическую конфигурацию из пространства пользователя.
    ```




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Maksim Dmitrichenko@21:1/5 to All on Sat Jul 30 19:10:02 2022
    0YHQsSwgMzAg0LjRjtC7LiAyMDIyINCzLiDQsiAxNjozOSwg0JDRgNGC0ZHQvCDQnS4gPGFydGlv bTE0QHlhbmRleC5ydT46DQoNCj4g0JLQvtGCLCDQvtGC0LvQuNGH0L3Qvi4g0KLQviwg0YfRgtC+ INC90LDQtNC+Lg0KPiDQkCDQv9C+IHVkZXYg0LIg0YfRkdC8INC/0YDQvtCx0LvQtdC80LA/INCe 0L0g0LbQtSDQv9C+0Y/QstC40LvRgdGPINGB0LDQvNGL0Lkg0L/QvtGB0LvQtdC00L3QuNC5Pw0K Pg0KDQrQndGDINGC0L4sINCyINC60LDQutC+0Lwg0LLQuNC00LUg0L7QvSDRgdC10LnRh9Cw0YEg LSDRjdGC0L4g0L3QtSDRgtC+LCDQutCw0Log0LHRi9C70LAg0L3QsCDRgNGD0LHQtdC20LUg0L7R gtC60LDQt9CwINC+0YINCmRldmZzLiDQldGB0LvQuCDRjyDQv9GA0LDQstC40LvRjNC90L4g0L/Q vtC80L3Rjiwg0YLQviDRgtC+0LPQtNCwINC90LjQutCw0LrQvtCz0L4gZGV2dG1wZnMg0L3QtSDQ sdGL0LvQvi4g0JHRi9C70LANCtC/0YDQvtGB0YLQviB0bXBmcywg0L3QvtC00Ysg0LIg0LrQvtGC 0L7RgNC+0Lwg0YHQvtC30LTQsNCy0LDQuyB1ZGV2LiDQmCDQtdGJ0ZEg0Y3RgtC+INGA0LDQsdC+ 0YLQsNC70L4g0YEg0L/QsNGA0LUg0YEg0LLQvtGCDQrRjdGC0LjQvCDQtNC10LvQvtC8IGh0dHBz Oi8vbGludXguZGllLm5ldC9tYW4vOC9ob3RwbHVnDQoNCg0KPiDQmCDRjyDQsiDQutC+0L3RhtC1 INC10LPQviDRg9C/0L7QvNGP0L3Rg9C7ICjQsCDRgdC10LnRh9Cw0YEg0Lgg0YLQsNC6INCy0YHQ tSDQt9C90LDRjtGCLCDRh9GC0L4g0Y3RgtC+KS4NCj4NCg0K0JAg0YHQtdC50YfQsNGBINCy0YDQ vtC00LUg0YfQuNGC0LDQuywg0YfRgtC+INC10YnRkSDRh9GC0L4t0YLQviDRhdC+0YLRj9GCINCy 0L3QtdC00YDQuNGC0YwsINGC0LDQuiDQutCw0LogQW5kcm9pZCDQvdC1DQrRhdC+0YfQtdGCINCy INGB0LXQsdGPIHVkZXYg0YLRj9C90YPRgtGMLCDQsCDQsdC10Lcg0L3QtdCz0L4g0YLQsNC8INGC 0Y/QttC60L4uINCl0L7RgtGP0YIg0L/RgNC40LTRg9C80LDRgtGMINGH0YLQvi3RgtC+LCDRh9GC 0L4NCtGD0YHRgtGA0L7QuNGCINCy0YHQtdGFLg0KDQotLSANCldpdGggYmVzdCByZWdhcmRzDQog IE1ha3NpbSBEbWl0cmljaGVua28NCg== PGRpdiBkaXI9Imx0ciI+PGRpdiBkaXI9Imx0ciI+PGJyPjwvZGl2PjxkaXYgY2xhc3M9ImdtYWls X3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+0YHQsSwgMzAg0LjRjtC7 LiAyMDIyINCzLiDQsiAxNjozOSwg0JDRgNGC0ZHQvCDQnS4gJmx0OzxhIGhyZWY9Im1haWx0bzph cnRpb20xNEB5YW5kZXgucnUiPmFydGlvbTE0QHlhbmRleC5ydTwvYT4mZ3Q7Ojxicj48L2Rpdj48 YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHgg MC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0 OjFleCI+0JLQvtGCLCDQvtGC0LvQuNGH0L3Qvi4g0KLQviwg0YfRgtC+INC90LDQtNC+Ljxicj4N CtCQINC/0L4gdWRldiDQsiDRh9GR0Lwg0L/RgNC+0LHQu9C10LzQsD8g0J7QvSDQttC1INC/0L7R j9Cy0LjQu9GB0Y8g0YHQsNC80YvQuSDQv9C+0YHQu9C10LTQvdC40Lk/PGJyPjwvYmxvY2txdW90 ZT48ZGl2Pjxicj48L2Rpdj48ZGl2PtCd0YMg0YLQviwg0LIg0LrQsNC60L7QvCDQstC40LTQtSDQ vtC9INGB0LXQudGH0LDRgSAtINGN0YLQviDQvdC1INGC0L4sINC60LDQuiDQsdGL0LvQsCDQvdCw INGA0YPQsdC10LbQtSDQvtGC0LrQsNC30LAg0L7RgiBkZXZmcy4g0JXRgdC70Lgg0Y8g0L/RgNCw 0LLQuNC70YzQvdC+INC/0L7QvNC90Y4sINGC0L4g0YLQvtCz0LTQsCDQvdC40LrQsNC60L7Qs9C+ IGRldnRtcGZzINC90LUg0LHRi9C70L4uINCR0YvQu9CwINC/0YDQvtGB0YLQviB0bXBmcywg0L3Q vtC00Ysg0LIg0LrQvtGC0L7RgNC+0Lwg0YHQvtC30LTQsNCy0LDQuyB1ZGV2LiDQmCDQtdGJ0ZEg 0Y3RgtC+INGA0LDQsdC+0YLQsNC70L4g0YEg0L/QsNGA0LUg0YEg0LLQvtGCINGN0YLQuNC8INC0 0LXQu9C+0LwgPGEgaHJlZj0iaHR0cHM6Ly9saW51eC5kaWUubmV0L21hbi84L2hvdHBsdWciPmh0 dHBzOi8vbGludXguZGllLm5ldC9tYW4vOC9ob3RwbHVnPC9hPsKgPC9kaXY+PGRpdj7CoDwvZGl2 PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBw eCAwLjhleDtib3JkZXItbGVmdDoxcHggc29saWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxl ZnQ6MWV4Ij4NCtCYINGPINCyINC60L7QvdGG0LUg0LXQs9C+INGD0L/QvtC80Y/QvdGD0LsgKNCw INGB0LXQudGH0LDRgSDQuCDRgtCw0Log0LLRgdC1INC30L3QsNGO0YIsINGH0YLQviDRjdGC0L4p Ljxicj48L2Jsb2NrcXVvdGU+PGRpdj48YnI+PC9kaXY+PGRpdj7QkCDRgdC10LnRh9Cw0YEg0LLR gNC+0LTQtSDRh9C40YLQsNC7LCDRh9GC0L4g0LXRidGRINGH0YLQvi3RgtC+INGF0L7RgtGP0YIg 0LLQvdC10LTRgNC40YLRjCwg0YLQsNC6INC60LDQuiBBbmRyb2lkINC90LUg0YXQvtGH0LXRgiDQ siDRgdC10LHRjyB1ZGV2INGC0Y/QvdGD0YLRjCwg0LAg0LHQtdC3INC90LXQs9C+INGC0LDQvCDR gtGP0LbQutC+LiDQpdC+0YLRj9GCINC/0YDQuNC00YPQvNCw0YLRjCDRh9GC0L4t0YLQviwg0YfR gtC+INGD0YHRgtGA0L7QuNGCINCy0YHQtdGFLjwvZGl2PjwvZGl2PjxkaXY+PGJyPjwvZGl2Pi0t IDxicj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfc2lnbmF0dXJlIj48ZGl2IGRpcj0ibHRy Ij48ZGl2PldpdGggYmVzdCByZWdhcmRzPGJyPsKgIE1ha3NpbSBEbWl0cmljaGVua288L2Rpdj48 L2Rpdj48L2Rpdj48L2Rpdj4NCg==

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?0JDRgNGC0ZHQvCDQnS4=?=@21:1/5 to All on Sun Jul 31 00:30:01 2022
    Понял, допишу. Спасибо.
    Не хватало ещё очередного демона взамен udev, интегрированного в systemd.


    30.07.2022 20:02, Maksim Dmitrichenko пишет:
    сб, 30 июл. 2022 г. в 16:39, Артём Н. <artiom14@yandex.ru>:

    Вот, отлично. То, что надо.
    А по udev в чём проблема? Он же появился самый последний?


    Ну то, в каком виде он сейчас - это не то, как была на рубеже отказа от
    devfs. Если я правильно помню, то тогда никакого devtmpfs не было. Была
    просто tmpfs, ноды в котором создавал udev. И ещё это работало с паре с вот
    этим делом https://linux.die.net/man/8/hotplug


    И я в конце его упомянул (а сейчас и так все знают, что это).


    А сейчас вроде читал, что ещё что-то хотят внедрить, так как Android не
    хочет в себя udev тянуть, а без него там тяжко. Хотят придумать что-то, что
    устроит всех.


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alexander Galanin@21:1/5 to All on Sun Jul 31 08:50:01 2022
    31.07.2022 02:17, Артём Н. пишет:
    Понял, допишу. Спасибо.
    Не хватало ещё очередного демона взамен udev, интегрированного в systemd.

    Спасибо, повеселило. Ничего, что udev самым бессовестным образом лежит
    _внутри_ репозитория systemd?

    --
    Alexander Galanin

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From IL Ka@21:1/5 to All on Sun Jul 31 11:00:01 2022
    0JTQvtCx0YDRi9C5INC00LXQvdGMLA0KDQoNCj4NCj4g0JfQsNGC0LXQvCDRgNCw0LfRgNCw0LHQ vtGC0YfQuNC60LggTGludXgg0LTQvtCx0LDQstC40LvQuCDQsiDRj9C00YDQviDQv9C+0LTQtNC1 0YDQttC60YMgZGV2ZnMgKNC90LUg0YLQvtC5LA0KPiDQutC+0YLQvtGA0LDRjyDQuNGB0L/QvtC7 0YzQt9GD0LXRgtGB0Y8g0YHQtdC50YfQsNGBKS4g0KEg0L3QtdC5INCy0L7Qt9C90LjQutC70Lgg 0L/RgNC+0LHQu9C10LzRiy4g0J3QsNC/0YDQuNC80LXRgCwNCj4g0L/QvtC70YzQt9C+0LLQsNGC 0LXQu9GM0YHQutC40LUg0YHQutGA0LjQv9GC0Ysg0L/RgNC4INC30LDQs9GA0YPQt9C60LUg0LTQ vtC70LbQvdGLINCx0YvQu9C4INC+0LbQuNC00LDRgtGMINC30LDQv9C+0LvQvdC10L3QuNGPDQo+ INC40LXRgNCw0YDRhdC40Lgg0Lgg0LrQsNC6LdGC0L4g0YHQuNC90YXRgNC+0L3QuNC30LjRgNC+ 0LLQsNGC0YzRgdGPLCDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLRjCDRj9Cy0L3Ri9GFINCy0YvQ t9C+0LLQvtCyINC40LfQvg0KPiDQstGB0LXRhSDQtNGA0LDQudCy0LXRgNC+0LIg0Lgg0YIu0LQu INCf0YDQvtCx0LvQtdC80Ysg0YDQtdGI0LDQu9C40YHRjCDRgSDQv9C10YDQtdC80LXQvdC90YvQ vCDRg9GB0L/QtdGF0L7QvCwg0L3QviDRgdC40YHRgtC10LzQsA0KPiDQvdC1INC/0YDQuNC20LjQ u9Cw0YHRjC4NCj4NCg0K0KLRg9GCINC90LDQstC10YDQvdC+0LUg0YHRgtC+0LjQu9C+INCx0Ysg 0YDQsNGB0YHQutCw0LfQsNGC0YwsINGH0YLQviDQsiBEZXZmcyDRhNCw0LnQuyDRg9GB0YLRgNC+ 0LnRgdGC0LLQsCDRgdC+0LfQtNCw0LLQsNC7DQrQtNGA0LDQudCy0LXRgCwg0L/QvtC70YzQt9C+ 0LLQsNGC0LXQu9GMINC90LAg0Y3RgtC+INC90LjQutCw0Log0L3QtSDQstC70LjRj9C7Lg0K0JrQ sNC20LXRgtGB0Y8sINC90LXQu9GM0LfRjyDQsdGL0LvQviDQvdCw0L/RgNC40LzQtdGAINC/0L7Q v9GA0L7RgdC40YLRjCDRgdC40YHRgtC10LzRgyDQstGB0LXQs9C00LAg0LTQsNCy0LDRgtGMINC+ 0L/RgNC10LTQtdC70LXQvdC90L7QtQ0K0LjQvNGPINGB0LXRgtC10LLQvtC5INC60LDRgNGC0LUg 0YEg0L7Qv9GA0LXQtNC10LvQtdC90L3Ri9C8INC80LDQui3QsNC00YDQtdGB0L7QvA0KKNGB0LXQ udGH0LDRgSDRh9C10YDQtdC3IHVkZXYg0Y3RgtC+INC70LXQs9C60L4g0LTQtdC70LDQtdGC0YHR jykNCg0KDQo+DQo+INCh0L7QstGA0LXQvNC10L3QvdGL0LkgTGludXgg0LzQvtC90YLQuNGA0YPQ tdGCINCyIC9kZXYg0YTQsNC50LvQvtCy0YPRjiDRgdC40YHRgtC10LzRgyBEZXZUbXBGUywg0LrQ vtGC0L7RgNCw0Y8NCj4g0YHRgNCw0LfRgyDQvtGC0L7QsdGA0LDQttCw0LXRgiDQstGB0LUg0L/Q tdGA0LXRh9C40YHQu9C10L3QvdGL0LUg0Y/QtNGA0L7QvCDRg9GB0YLRgNC+0LnRgdGC0LLQsCwg 0Lgg0L/QvtC00LTQtdGA0LbQuNCy0LDRjtGJ0LjQuQ0KPiDRgNCw0LfQu9C40YfQvdGL0LUg0L/R gNCw0LLQuNC70LAg0Lgg0YHQvtCx0YvRgtC40Y8g0LTQtdC80L7QvSB1ZGV2LCDQv9GA0Lgg0L3Q tdC+0LHRhdC+0LTQuNC80L7RgdGC0LgsDQo+INC+0LHQtdGB0L/QtdGH0LjQstCw0Y7RidC40Lkg 0LXRkSDQtNC40L3QsNC80LjRh9C10YHQutGD0Y4g0LrQvtC90YTQuNCz0YPRgNCw0YbQuNGOINC4 0Lcg0L/RgNC+0YHRgtGA0LDQvdGB0YLQstCwINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy4NCj4N Cg0K0KTQuNGI0LrQsCB1ZGV2INC10YnQtSDQsiDRgtC+0LwsINGH0YLQviDQv9C+0LvRjNC30L7Q stCw0YLQtdC70Ywg0L3QsNGB0YLRgNCw0LjQstCw0LXRgiDQv9GA0LDQstC40LvQsCwg0LjQvNC1 0Y8NCtCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0LTQsNCy0LDRgtGMINGD0YHRgtGA0L7QudGB0YLQ stCw0Lwg0LjQvNC10L3QsCwNCtC30LDQv9GD0YHQutCw0YLRjCDRgdC60YDQuNC/0YLRiyDQv9GA 0Lgg0LjRhSDQv9C+0Y/QstC70LXQvdC40LgsINC30LDQv9GA0LXRidCw0YLRjCDQutCw0LrQuNC1 LdGC0L4g0YPRgdGC0YDQvtC50YHRgtCy0LAg0LjRgtC0Lg0K PGRpdiBkaXI9Imx0ciI+PGRpdj7QlNC+0LHRgNGL0Lkg0LTQtdC90YwsPC9kaXY+PGRpdiBjbGFz cz0iZ21haWxfcXVvdGUiPjxkaXY+wqA8L2Rpdj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVv dGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlk IHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+DQo8YnI+DQrQl9Cw0YLQtdC8INGA 0LDQt9GA0LDQsdC+0YLRh9C40LrQuCBMaW51eCDQtNC+0LHQsNCy0LjQu9C4INCyINGP0LTRgNC+ INC/0L7QtNC00LXRgNC20LrRgyBkZXZmcyAo0L3QtSDRgtC+0LksIDxicj4NCtC60L7RgtC+0YDQ sNGPINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDRgdC10LnRh9Cw0YEpLiDQoSDQvdC10Lkg0LLQ vtC30L3QuNC60LvQuCDQv9GA0L7QsdC70LXQvNGLLiDQndCw0L/RgNC40LzQtdGALCA8YnI+DQrQ v9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQtSDRgdC60YDQuNC/0YLRiyDQv9GA0Lgg0LfQ sNCz0YDRg9C30LrQtSDQtNC+0LvQttC90Ysg0LHRi9C70Lgg0L7QttC40LTQsNGC0Ywg0LfQsNC/ 0L7Qu9C90LXQvdC40Y8gPGJyPg0K0LjQtdGA0LDRgNGF0LjQuCDQuCDQutCw0Lot0YLQviDRgdC4 0L3RhdGA0L7QvdC40LfQuNGA0L7QstCw0YLRjNGB0Y8sINC90LXQvtCx0YXQvtC00LjQvNC+0YHR gtGMINGP0LLQvdGL0YUg0LLRi9C30L7QstC+0LIg0LjQt9C+IDxicj4NCtCy0YHQtdGFINC00YDQ sNC50LLQtdGA0L7QsiDQuCDRgi7QtC4g0J/RgNC+0LHQu9C10LzRiyDRgNC10YjQsNC70LjRgdGM INGBINC/0LXRgNC10LzQtdC90L3Ri9C8INGD0YHQv9C10YXQvtC8LCDQvdC+INGB0LjRgdGC0LXQ vNCwIDxicj4NCtC90LUg0L/RgNC40LbQuNC70LDRgdGMLjxicj48L2Jsb2NrcXVvdGU+PGRpdj48 YnI+PC9kaXY+0KLRg9GCINC90LDQstC10YDQvdC+0LUg0YHRgtC+0LjQu9C+INCx0Ysg0YDQsNGB 0YHQutCw0LfQsNGC0YwsINGH0YLQviDQsiBEZXZmcyDRhNCw0LnQuyDRg9GB0YLRgNC+0LnRgdGC 0LLQsCDRgdC+0LfQtNCw0LLQsNC7INC00YDQsNC50LLQtdGALCDQv9C+0LvRjNC30L7QstCw0YLQ tdC70Ywg0L3QsCDRjdGC0L4g0L3QuNC60LDQuiDQvdC1INCy0LvQuNGP0LsuPGJyPtCa0LDQttC1 0YLRgdGPLCDQvdC10LvRjNC30Y8g0LHRi9C70L4g0L3QsNC/0YDQuNC80LXRgCDQv9C+0L/RgNC+ 0YHQuNGC0Ywg0YHQuNGB0YLQtdC80YMg0LLRgdC10LPQtNCwINC00LDQstCw0YLRjCDQvtC/0YDQ tdC00LXQu9C10L3QvdC+0LUg0LjQvNGPINGB0LXRgtC10LLQvtC5INC60LDRgNGC0LUg0YEg0L7Q v9GA0LXQtNC10LvQtdC90L3Ri9C8INC80LDQui3QsNC00YDQtdGB0L7QvDxicj4o0YHQtdC50YfQ sNGBINGH0LXRgNC10LcgdWRldiDRjdGC0L4g0LvQtdCz0LrQviDQtNC10LvQsNC10YLRgdGPKTxi cj48ZGl2PsKgPC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFy Z2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwy MDQpO3BhZGRpbmctbGVmdDoxZXgiPjxicj4NCtCh0L7QstGA0LXQvNC10L3QvdGL0LkgTGludXgg 0LzQvtC90YLQuNGA0YPQtdGCINCyIC9kZXYg0YTQsNC50LvQvtCy0YPRjiDRgdC40YHRgtC10LzR gyBEZXZUbXBGUywg0LrQvtGC0L7RgNCw0Y8gPGJyPg0K0YHRgNCw0LfRgyDQvtGC0L7QsdGA0LDQ ttCw0LXRgiDQstGB0LUg0L/QtdGA0LXRh9C40YHQu9C10L3QvdGL0LUg0Y/QtNGA0L7QvCDRg9GB 0YLRgNC+0LnRgdGC0LLQsCwg0Lgg0L/QvtC00LTQtdGA0LbQuNCy0LDRjtGJ0LjQuSA8YnI+DQrR gNCw0LfQu9C40YfQvdGL0LUg0L/RgNCw0LLQuNC70LAg0Lgg0YHQvtCx0YvRgtC40Y8g0LTQtdC8 0L7QvSB1ZGV2LCDQv9GA0Lgg0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0LgsIDxicj4NCtC+0LHQ tdGB0L/QtdGH0LjQstCw0Y7RidC40Lkg0LXRkSDQtNC40L3QsNC80LjRh9C10YHQutGD0Y4g0LrQ vtC90YTQuNCz0YPRgNCw0YbQuNGOINC40Lcg0L/RgNC+0YHRgtGA0LDQvdGB0YLQstCwINC/0L7Q u9GM0LfQvtCy0LDRgtC10LvRjy48YnI+PC9ibG9ja3F1b3RlPjxkaXY+PGJyPjwvZGl2PtCk0LjR iNC60LAgdWRldiDQtdGJ0LUg0LIg0YLQvtC8LCDRh9GC0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQ u9GMINC90LDRgdGC0YDQsNC40LLQsNC10YIg0L/RgNCw0LLQuNC70LAsINC40LzQtdGPINCy0L7Q t9C80L7QttC90L7RgdGC0Ywg0LTQsNCy0LDRgtGMINGD0YHRgtGA0L7QudGB0YLQstCw0Lwg0LjQ vNC10L3QsCwgPGJyPtC30LDQv9GD0YHQutCw0YLRjCDRgdC60YDQuNC/0YLRiyDQv9GA0Lgg0LjR hSDQv9C+0Y/QstC70LXQvdC40LgsINC30LDQv9GA0LXRidCw0YLRjCDQutCw0LrQuNC1LdGC0L4g 0YPRgdGC0YDQvtC50YHRgtCy0LAg0LjRgtC0LjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2 PjxkaXY+wqA8L2Rpdj48L2Rpdj48L2Rpdj4NCg==

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?0JDRgNGC0ZHQvCDQnS4=?=@21:1/5 to All on Sun Jul 31 13:30:02 2022
    Ну, а я про что?
    Андроид же, как я понял, хочет наоборот: сделать отдельный велосипед
    ("вернуть всё взад").
    Не вижу тут ничего весёлого.


    31.07.2022 09:41, Alexander Galanin пишет:
    31.07.2022 02:17, Артём Н. пишет:
    Понял, допишу. Спасибо.
    Не хватало ещё очередного демона взамен udev, интегрированного в systemd.

    Спасибо, повеселило. Ничего, что udev самым бессовестным образом лежит
    _внутри_ репозитория systemd?


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?0JDRgNGC0ZHQvCDQnS4=?=@21:1/5 to All on Sun Jul 31 17:10:01 2022
    Если я правильно понимаю, то сейчас devtmpfs совершенно не обязательный
    элемент. Он нужен только для того, чтобы ускорить загрузку и не ждать
    пока
    udev наплодит там нужные ноды.

    Ну, т.е. сначала ноды экспортируются из ядра, затем применяются udev
    правила (операция переименования быстрая), после чего, по inotify
    (другой вызов, но я не помню) на sysfs делаются корректировки по событиям?


    Если вы почитаете дискуссию мейнтейнров ядра в тот момент, когда было
    предложено devtmpfs, то встретить там вогласы "так это ж devfs2" не
    составит никакого труда.

    Да, я читал (и там, скорее "ну опять devfs?"). Они говорят, что нет,
    таких проблем, как было, не будет.
    А каких, там не упомянуто, видимо "и так все знают".


    То есть да - во многом идеи, которые вложены в обе
    подсистемы, общие. Но я вам кинул ссылку, где Грэг сравнивает вполне себе
    доступно и поясняет в чем одно лучше другого. Вы до сих пор не осилили
    изучить?

    Ну, вообще-то у меня далеко не один источник и не единственная задача.

    Но почему вы считаете, что я "не осилил изучить"?
    Я прочитал и уже дописал к себе причины.

    В источнике написано примерно то, о чём вы и сказали: "персистентность
    устройств" - главное преимущество.
    Это разве в чём-то противоречит тому, что devfsd занимался примерно тем
    же самым, что и udev, да и вообще, разве там есть хоть что-то про devfsd
    (я обращаю внимание: про демон, а не про ФС)?


    От себя добавлю: интерфейс devfs, если я правильно помню,
    подразумевал то,
    что через /proc задавался путь программы, которая будет запускаться
    ядром,
    если требуется какое-то действие. Это называлось usermode helper. В
    случае
    с udev программу запускает юзер один раз, и она общается с ядром по
    интерфейсу а-ля шина.
    ...

    Т.е., как и написал выше: суть та же. Но более прозрачно и эффективно
    сделано, более естественно. И гораздо более гибко настраивается.

    Кстати, про user-helper я с трудом но что-то припомнил, тоже допишу.
    Если я помню верно, хэлпер давал сигнал демону.
    Т.е. это были не скрипты, которые применяли какие-то правила, а именно
    запускалась программа (возможно это был симлинк на бинарник демона),
    которая давала сигнал демону?


    без необходимости писать и самое главное поддерживать в ядре и в
    драйверах кучу кода, отвечающего за devfs.

    Допишу в "плюсы".


    31.07.2022 14:48, Maksim Dmitrichenko пишет:
    вс, 31 июл. 2022 г. в 14:27, Артём Н. <artiom14@yandex.ru>:


    В DevTmpFS, по сути, тоже самое: если вы её примонтируете куда-то не в
    /dev, просто ради любопыства, там будут устройства, выставленные ядром.


    Если я правильно понимаю, то сейчас devtmpfs совершенно не обязательный
    элемент. Он нужен только для того, чтобы ускорить загрузку и не ждать пока
    udev наплодит там нужные ноды.


    > Кажется, нельзя было например попросить систему всегда давать
    определенное
    > имя сетевой карте с определенным мак-адресом
    > (сейчас через udev это легко делается)

    Но это же делает набор правил уже *после* того, как устройство было
    выставлено драйвером.
    Или я что-то неправильно понимаю?


    > Фишка udev еще в том, что пользователь настраивает правила, имея
    > возможность давать устройствам имена, >> > запускать скрипты при их появлении, запрещать какие-то устройства итд.

    Я так понимаю, что devfsd, который был до него, этим тоже занимался?

    запускать скрипты при их появлении, запрещать какие-то устройства итд.


    Если вы почитаете дискуссию мейнтейнров ядра в тот момент, когда было
    предложено devtmpfs, то встретить там вогласы "так это ж devfs2" не
    составит никакого труда. То есть да - во многом идеи, которые вложены в обе
    подсистемы, общие. Но я вам кинул ссылку, где Грэг сравнивает вполне себе
    доступно и поясняет в чем одно лучше другого. Вы до сих пор не осилили
    изучить?

    От себя добавлю: интерфейс devfs, если я правильно помню, подразумевал то,
    что через /proc задавался путь программы, которая будет запускаться ядром,
    если требуется какое-то действие. Это называлось usermode helper. В случае
    с udev программу запускает юзер один раз, и она общается с ядром по
    интерфейсу а-ля шина. Вместе с этим через шину стало проще передавать
    параметры, исходя из которых юзер может кастомизировать
    присваиваемые названия нодам и устройствам, а также задавать права доступа
    к ним. Как то: адрес на шине, серийный номер устройства, MAC-адрес и так
    далее. Наверное, было можно заморочиться и сделать подобное с devfs, но
    решили отказаться потому что придумали как сделать это всё более чисто и
    без необходимости писать и самое главное поддерживать в ядре и в драйверах
    кучу кода, отвечающего за devfs.




    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?0JDRgNGC0ZHQvCDQnS4=?=@21:1/5 to All on Sun Jul 31 17:40:01 2022
    Ну, или точнее, про демон, который идёт вместе с devfs, там есть одно
    упоминание, но мне не вполне ясно, это про devfsd (который пришёл на
    замену devfs вместе с её демоном, как я понял) или нет?

    Т.е., udev к devtmpfs не имеет прямого отношения: это просто независимо
    работающие вещи, тут всё ясно.

    А что пришло на замену devfs не вполне ясно: то ли был параллельно
    какой-то devfsd (именно независимый от devfs "пользовательский" демон),
    то ли после, то ли сразу был udev...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?0JDRgNGC0ZHQvCDQnS4=?=@21:1/5 to All on Sun Jul 31 19:50:01 2022
    Спасибо.


    Видимо это и есть ответ на ваш вопрос:)

    Похоже, что да, и ответ полный: написано подробнее и точнее, чем мой текст.
    Мне остаётся это только в "художественном стиле" переписать, и всё.


    31.07.2022 20:03, IL Ka пишет:


    Но это же делает набор правил уже *после* того, как устройство было
    выставлено драйвером.
    Или я что-то неправильно понимаю?


    Не совсем imho: В devfs файлы устройств появлялись от вызова драйвером
    devfs_register.
    devfsd мог по ним сделать символические ссылки, но сами файлы он не трогал.
    В случае же udev, драйвер создает специальную структуру (она видна в /sys),
    и посылает uevent (через NETLINK), и udev уже создает нужную запись.

    Кмк, дело было так:

    До 2.4 все устройства создавались mkdev и драйвер привязывался к major
    номеру.
    Ненужные файлы забивали /dev, путали пользователя, имели проблемы с
    безопасностью (решение о пермишенах принимал автор скрипта MAKEDEV) а еще и
    major номера начали кончаться (их было-то всего 255).

    В 2.4 проблему решили devfs, позволив драйверу самому создавать устройство
    через devfs_register.
    Подробнее погуглите главу "The Device Filesystem" второго (не третьего!)
    издания Linux Driver Development.

    Стало лучше: в dev не стало несуществующих устройств и драйвер смог
    выбирать пермишены на файл.
    Однако осталась проблемы, наример пользователь всё еще не мог выбирать как
    назвать устройство оперируя его идентификатором.
    У каждой шины (PCI, USB) у устройства есть уникальные ID, и хотелось бы
    привязывать имена к ним.
    Кроме того, все существующие имена приходилось хранить в памяти ядра
    (невыгружаемой). Появилось желание вынести это в userspace.

    Всё это привело к вот такому (там много жалоб на devfs):
    http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf

    В 2.6 сделали sys, куда драйверы стали репортовать свои устройства, затем
    посылать uevent, который забирал udev, и на основе рулов создавал нужное
    устройство,
    а еще он по D-Bus мог сообщить об этом вашему DE, чтобы тот нарисовал
    красивый попап.

    Почитать можно тут: https://linux-kernel-labs.github.io/refs/heads/master/labs/device_model.html#sysfs

    Часть людей была против, вот тут их переубеждают:
    https://lwn.net/Articles/65197/

    Затем udev смерджили с systemd:)

    Но тут оказалось, что udev не нравится емебдщикам и не подходит для всяких
    rescue mode, потому что требует нехилый userspace udev.

    Тогда был создан devtmpfs (тут подробно написано)
    https://lwn.net/Articles/330985/

    Он просто брал имена (те, что драйверы репортуют в sys)и создавал для них
    устройства. Файловая система была создана на основе tmpfs, так что она была
    намного проще, и позволяла udevу работать поверх нее

    Естественно, все тут же сказали "мы опять изобрели devfs!"
    https://lwn.net/Articles/331818/

    Но утверждается, что:
    * devtmpfs проще (сделана на основе tmpfs)
    * совместима с udev

    Видимо это и есть ответ на ваш вопрос:)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)