1

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

3 ответа3

3

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

2

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

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

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

1

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .