как драйверы становятся частью операционных систем? - PullRequest
1 голос
/ 07 сентября 2010

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

Ответы [ 3 ]

4 голосов
/ 07 сентября 2010

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

2 голосов
/ 07 сентября 2010

Зависит от o / s.

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

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

1 голос
/ 07 сентября 2010

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

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

...