Мне трудно понять, что входит в ОС, а что нет. Является ли драйвер устройства, такой как драйвер принтера или графический драйвер, частью ОС? Размышляя об определении ОС, я считаю, что драйверы являются частью ОС.
3 ответа
Да, драйверы являются частью ОС. Они работают с тем же уровнем привилегий, что и ядро ОС, и чтобы написать драйвер, вы должны много знать о внутренностях ОС. Роль драйверов заключается в обеспечении абстракции аппаратного обеспечения, чтобы приложения могли использовать его через OS API (интерфейс прикладного программирования) вместо необходимости знать конкретные детали этого. Во многих случаях это также позволяет совместно использовать один и тот же аппаратный компонент между многими приложениями.
То, что вводит пользователей в заблуждение, что драйверы могут не входить в состав ОС, заключается в том, что многие производители поставляют драйверы для оборудования, которое они производят отдельно от ОС. Действительно, многие драйверы представлены в виде загружаемых модулей, которые можно загружать и затем динамически участвовать в ОС. Когда они больше не используются, их можно "отключить" от ОС, и она продолжает работать в обычном режиме.
Загружаемые или нет, драйверы всегда зависят от устройств, которые они должны сделать доступными для системы, поэтому, хотя они иногда являются "дополнительными" частями ОС, они действительно участвуют в этом при работе.
Термин "ОС" может означать много вещей.
В то время как в большинстве операционных систем ядро является частью кода, который управляет и "запускает" все, и разрешает доступ к оборудованию, оно обычно не может делать ничего интересного само по себе - его задача - обеспечить среду для запуска приложений ». сверху "если это. Определение ОС многими людьми включает утилиты, оболочки и программы, которые составляют привычную стандартизированную среду.
Драйверы зависят от ядра, и, вероятно, наиболее правильно сказать, что они "расширяют" его, как плагины. Linux поддерживает понятие "загружаемые модули ядра" - и все драйверы устройств могут быть загружаемым модулем ядра. Также возможно собрать ядро, в котором один или несколько из этих модулей "встроены" и не отделены от ядра. Таким образом, вы действительно можете собрать "безмодульное" ядро под Linux, и оно не сможет поддерживать любое оборудование, кроме модулей, которые вы в него встроили.
Я менее знаком с внутренностями Windows, но я полагаю, что за исключением очень немногих драйверов "минипорта", все драйверы являются внешними файлами, которые загружаются при загрузке. Если немного покопаться в создании сервисов в Windows, то кажется, что драйверы - это просто специальные формы сервисов в Windows. Некоторые программы устанавливают драйверы для доступа к оборудованию на низком уровне, но не обязательно для управления устройством. Обычно это драйверы "не подключи и работай" в диспетчере устройств. Таким образом, также кажется, что драйверы концептуально выполняют ту же функцию, что и загружаемые модули ядра в Linux.
Я бы для простоты сказал, что они являются частью ОС, так как они действительно не могут быть использованы без ОС и бесполезны, если ОС не загружена, но в любом случае нарисованная линия довольно произвольна.
Никакие драйверы не являются частью ОС. Можно сказать, что драйверы помогают ОС взаимодействовать с устройством или оборудованием. ОС не содержит все драйверы по умолчанию, как в Windows XP и Vista, но в Windows 7 большинство необходимых драйверов включены, так что не путайте, они не являются частью ОС.