Часть драйверов Linux ядра или rootfs

/usr/bin/X X оберток. Это документируется в Xwrapper.config страница справочника.

X оберток являются небольшой программой, которая управляет, кто разрешен запустить реальный X-сервер. Только корень может запустить реальный X-сервер, потому что ему нужен доступ к видеооборудованию. Обертка является корнем setuid, и по умолчанию только позволяет пользователям, зарегистрированным на консоли запускать реальный X-сервер.

4
12.11.2014, 18:53
2 ответа

Это довольно быстро, хотя мы должны различать «водителя» и «модуль». Драйвер может или не может быть модулем. Если это не так, то он встроен в ядро, загруженный загрузчиком.

Если это модуль, то он находится в файловой системе иерархии, укоренившись на / lib / Modules / [jernel-release] . 1 Обратите внимание, что можно загрузить ядро ​​вместе с небольшой предварительной корневой файловой системой («initramfs»), которые также могут содержать такой репозиторий. Это нормально с общими ядрами, чтобы они могли решить, какие модульные драйверы им нужно загрузить, чтобы получить доступ к реальной файловой системе, поскольку если они не могут этого сделать, они не могут получить доступ к любым модулям.

Драйверы, загруженные ядром?

Да.

Если так, почему они уже являются частью rootfs?

Где еще они должны храниться до того, как они будут загружены? Ядро не содержит rootfs внутри себя (кроме WRT некоторые формы initramfs), это просто привратник.

Ядро перезаписывает их со скомпилированными в нем?

Нет. Если вы компилируете водителя, ядро ​​не будет беспокоить / lib / модули . Я не уверен, что произойдет, если вы тогда спросите это явно загружать такого драйвера в любом случае, по-видимому, это просто скажет нет.


1. Как намекает на Celada с $ (Uname -r) , эта строка выпуска не обязательно просто номером версии. Вы можете иметь несколько ядер с одной и той же версией и разными модульными строками. Аналогичным образом, вы можете иметь несколько ядер с той же строкой выпуска, поэтому тот же магазин модулей.

7
27.01.2020, 20:47

В Linux большинство драйверов можно либо построить статически в ядро, либо построен в виде модулей. Это выбор, который вы можете сделать, когда ядро ​​настроено для компиляции. Они появятся только в / lib / modules / $ (uname -r) , если они строятся в виде загруженных модулей.

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

Ядра для встроенных систем часто строятся с множеством встроенных драйверов, поскольку ядро ​​строится для системы с очень специфическим набором неизменного аппаратного обеспечения, а системный интегратор знает заранее, что это такое. Тем не менее, многие водители часто остаются загружены в виде модулей, особенно для «дополнительного» оборудования, которые могут быть или не могут присутствовать как USB-устройства.

4
27.01.2020, 20:47

Теги

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