Что такое модули ядра Linux?

562
Phenom

Мне было интересно, если кто-то может объяснить, что модули ядра Linux для кого-то, кто приходит из Windows?

1

3 ответа на вопрос

3
Matthew Flaschen

Это способ динамической загрузки кода в ядро ​​Linux, которое является самой низкой частью операционной системы GNU / Linux. Драйверы устройств Windows часто используются для аналогичных целей. Вы можете прочитать этот довольно старый FAQ . Некоторые вещи изменились, но основная идея остается прежней.

Так это как драйвер устройства Windows? Phenom 14 лет назад 0
Да, многие модули используются для драйверов устройств. Однако есть и другие цели, такие как файловые системы. Matthew Flaschen 14 лет назад 0
2
Kenny Rasschaert

Модули ядра - это отдельные фрагменты кода, которые загружаются в ядро ​​для поддержки определенного оборудования.

Например, само ядро ​​Linux не может использовать последовательный порт (RS-232), но когда вы загружаете соответствующий модуль ядра, оно может.

Команда lsmodпокажет вам список загруженных модулей ядра.

1
LawrenceC

Модули ядра Linux по своей концепции эквивалентны драйверам устройств Windows.

Для работы аппаратного обеспечения вам необходим драйвер для него в Windows, а для него вам нужен модуль ядра драйвера устройства в Linux.

Драйверы устройств должны иметь прямой доступ к оборудованию и, следовательно, работать в режиме ядра. Обычные пользовательские приложения работают в пользовательском режиме. Программа пользовательского режима имеет защиту MMU ЦП и не может мешать работе другой программы пользовательского режима или чего-либо, работающего в режиме ядра. Вещи, работающие в режиме ядра, не имеют этой защиты, но могут напрямую обращаться к оборудованию. Вот почему они называются модулями ядра.

Вы можете собрать свое собственное ядро ​​Linux и включить в него модули. Затем они перестают быть модулями и становятся частью ядра. Обычно полезно встроить небольшое количество драйверов, необходимых для загрузки, и позволить обнаружению оборудования загружать все остальное, что нужно, хотя вы можете собрать полностью «статичное» ядро, не полагаясь на загрузку каких-либо модулей, если хотите.

Похожие вопросы