как драйверы становятся частью операционных систем?

Я знаю, что ядра ОС состоят из драйверов, но как драйвер становится частью ОС? Декомпилирует ли ядро ​​само себя, а затем добавляет драйвер и перекомпилирует себя? Или это подключаемые модули драйверов для ядра. ?, кто-то сказал мне, что для большинства операционных систем драйверы фактически становятся частью ядра, но всякий раз, когда я компилирую программу ac, она превращается в обычный исполняемый файл


person noah    schedule 06.09.2010    source источник
comment
Если вы собираете ядро ​​ОС, настройки вашего компилятора просто отличаются от тех, которые вы используете при сборке исполняемого файла. Основы те же, но компилятор делает некоторые специальные вещи, если вы создаете образ, достаточно сырой для загрузки машины.   -  person Ben Zotto    schedule 07.09.2010


Ответы (3)


Архитектура драйвера полностью зависит от вашей операционной системы. Для большинства операционных систем, работающих на компьютерах (в отличие от встроенных устройств), думать о драйверах как о «надстройках» для ядра довольно точно. Тем не менее, существует множество старых, небольших и менее сложных операционных систем, которые требуют, чтобы вы встраивали драйвер как часть ядра - динамическая загрузка невозможна. В наши дни несколько операционных систем поддерживают драйверы «пользовательского режима», то есть драйверы устройств, которые вообще никогда не запускаются в пространстве памяти ядра.

person Carl Norum    schedule 06.09.2010
comment
И, конечно же, в операционной системе с микроядром драйверы - это обычные программы в пользовательском пространстве, подобные любым другим (например, веб-браузеру или текстовому редактору). - person Jörg W Mittag; 07.09.2010

Это зависит от а / с.

Классически ядро ​​было монолитным исполняемым файлом, содержащим все драйверы, и перестраивалось, когда нужно было добавить новый драйвер, включая код для нового драйвера вместе со всеми старыми.

В современном Linux и, возможно, в других ОС драйверы динамически загружаются ядром по мере необходимости. Драйвер создается в форме, позволяющей ядру выполнять эту загрузку; как правило, это означает формат общего объекта или библиотеки динамической компоновки.

person Jonathan Leffler    schedule 06.09.2010

В операционных системах, таких как Linux, драйверы могут быть фактически скомпилированы в образ ядра. Хотя даже если они статически связаны, они вполне могут демонстрировать архитектуру типа подключаемого модуля, которая позволяет легко включать только необходимые драйверы.

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

person doron    schedule 06.09.2010