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

14

Мне трудно понять, что входит в ОС, а что нет. Является ли драйвер устройства, такой как драйвер принтера или графический драйвер, частью ОС? Размышляя об определении ОС, я считаю, что драйверы являются частью ОС.

FireAnt
источник
6
Да и нет. Они являются частью ОС в том смысле, что они работают на низком уровне и имеют доступ к внутренним интерфейсам. И многие из них имеют решающее значение для работы ОС. Но они, как правило, являются отдельными «сменными» частями, и часто создаются другой компанией из ОС. Зависит от вашего определения «ОС», и нет единой фирмы.
Даниэль Р Хикс
Пожалуйста, определите «включено». Гарантированно быть на Windows DVD для установки на новый диск? Или концептуально часть ОС?
опилки

Ответы:

12

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

То, что вводит пользователей в заблуждение, что драйверы могут не входить в состав ОС, заключается в том, что многие поставщики поставляют драйверы для оборудования, которое они производят отдельно от ОС. Действительно, многие драйверы представлены в виде загружаемых модулей, которые можно загружать и затем динамически участвовать в ОС. После того, как они больше не используются, их можно «отключить» от ОС, и она продолжает нормально работать.

Загружаемые или нет, драйверы всегда зависят от устройств, которые они должны сделать доступными для системы, поэтому, хотя они иногда являются «дополнительными» частями ОС, они действительно участвуют в этом при работе.

Claudio
источник
1
Я не согласен (но воздержусь от голосования), просто из-за того, как вы это заявили, драйверы НЕ всегда включаются или используются. Операционная система - это ядро. Период. Проводник Windows не является частью операционной системы, хотя и поставляется вместе с ней. Ядро является фактической частью обработки, поэтому я считаю, что это ОС. Другие включенные элементы не являются частью ОС
канадец Люк
Кроме того, вы можете запускать драйверы на уровне пользователя, поэтому вам не нужно запускать их на уровне ядра, хотя большинство из них.
Мэтт
Я понимаю вашу точку зрения, Люк. Существует множество дополнительных устройств, которые не нужны для работы системы, поэтому я могу согласиться, что их драйверы не являются частью ОС в этом смысле . Как сказал @Matt, некоторые драйверы могут быть даже драйверами пользовательского режима (многие драйверы принтеров), но я считаю, что большинство драйверов, особенно структурных (видео, контроллеры дисков и т. Д.), Являются драйверами режима ядра, и, как таковые, являются или стать реальной частью работающего ядра при загрузке. Поскольку ядро ​​не может сделать ничего полезного в одиночку, я думаю, будет справедливо сказать, что драйверы являются (или становятся) частью операционной системы.
Клаудио
1
Это действительно вопрос да / нет. Хотя технически драйверы не включены в ОС, они вам понадобятся для связи с различными устройствами. Например, видео. Вы отправите запрос ядру, затем ядро ​​перенаправит запрос драйверу дисплея, а затем вернет информацию, чтобы вы могли что-то увидеть.
Мэтт
3
@Luke - Очевидно, вы признаете, что ядро является частью ОС, если не всей ОС. Вы когда-нибудь видели исходный код для ОС или ядра? Если вы не работаете на MS или не подпишете NDA, мы никогда не увидим код ядра Windows. Но ядро ​​Linux имеет открытый исходный код, и все (не проприетарные) драйверы Linux являются частью исходного кода ядра. Исходный код ядра Linux не разделен на часть ядра и часть драйвера; исходное дерево содержит все модули ядра и драйвера. Я ожидаю, что MS будет обрабатывать свой исходный код для Windows аналогичным образом.
опилки
5

Термин «ОС» может означать много вещей.

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

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

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

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

LawrenceC
источник
1

Никакие драйверы не являются частью ОС. Можно сказать, что драйверы помогают ОС взаимодействовать с устройством или оборудованием. ОС не содержит все драйверы по умолчанию, как в Windows XP и Vista, но в Windows 7 большинство необходимых драйверов включены, так что не путайте, они не являются частью ОС.

дебютантка
источник
Тот факт, что вы говорите, что drviers не являются частью операционной системы, доказывает, что вы не знаете, что делаете. Windows XP включает в себя многие из тех же драйверов, что и Windows Vista и Windows 7. Microsoft приложила немало усилий, чтобы включить в эти выпуски даже БОЛЬШЕ универсальных драйверов для устройств.
Ramhound
да. Без водителя мы не можем использовать любое устройство. Таким образом, мы можем сказать, что драйвер помогает ОС взаимодействовать с устройством, и по вопросу я скажу, что некоторые являются частью ОС, а некоторые нет. Есть много драйверов, которые не поставляются с ОС.
Деб
Технически, даже если драйвер не входит в состав ОС, он является частью ОС, когда вы устанавливаете и используете его. Доказательством этого является то, что плохо написанный драйвер может заблокировать всю вашу систему, поскольку это не обычное приложение, которое может быть убито ОС, а часть ее самой.
Клаудио