Я читаю исходный код linux и systemd, чтобы узнать о механизме дерева устройств и механизме загрузки модулей ядра.Я узнал, что основанное на шине устройство будет обнаружено шиной, и информация об устройстве будет отправлена в пользовательское пространство в виде события.Затем systemd получит и обработает загрузку модуля в соответствии с правилами udev.
Вот мои вопросы:
Дерево устройств, описывающее устройство и встроенное устройствоводитель будет проверен, если драйвер соответствует таблице.Но как загружаются модули?Ядро отправит информацию о таблице в udevd или около того?
Как насчет ACPI?Поскольку таблица ACPI представляется ядру точно так же, как дерево устройств.
Любой намек на то, какой фрагмент кода проверять?
Редактировать: Я думаю, что дерево устройствдолжно быть почти таким же, система должна проверить событие или пройти через sys fs для получения информации об устройстве, а затем проверить module.alias и использовать правила для загрузки питомника.Но я не нашел код путешествия sys fs, поэтому понятия не имею, как это сделать ...