2013-02-11 2 views
0

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

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

Зачем нам нужны драйверы (например, драйверы сенсорной панели), не контролирует ли я все компьютерное оборудование?

ответ

5

Потому что существует буквально тысячи (если не сотни тысяч) компаний, производящих аппаратные устройства. Компания Operating System не может писать программное обеспечение для обработки всех из них, поэтому они предоставляют общую модель программирования, с помощью которой эти аппаратные компании могут писать программное обеспечение, которое может разговаривать со своим оборудованием.

Важно отметить, что хотя драйверы фактически не являются частью ядра как таковые, у них есть некоторые низкоуровневые привилегии (прямой доступ к оборудованию), поскольку их код работает в режиме Executive, в отличие от обычных приложений, которые запускаются в User и обычно не имеют прямого доступа к оборудованию. Все дело в том, что после того, как ОС предоставит способ написать программное обеспечение для управления аппаратным обеспечением (так называемые драйверы), любой поставщик или человек могут свободно писать программное обеспечение, которое может воспользоваться специализированными функциями их/ее аппаратного устройства.

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

+0

Так что, в основном, драйверы являются частью ядра? Различные поставщики оборудования заставляют драйверы включать в ядро, чтобы некоторые из их устройств работали над определенной операцией. Системы – Adeeb

+0

Смотрите мои правки выше. – dotNET

1

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

Чтобы справиться с этим большим разнообразием различных устройств, разработчики пишут специализированные модули - и они называются драйверами.

Смежные вопросы