Interested Article - Драйвер

Операционная система
Пользователь Прикладное ПО Операционная система Аппаратное обеспечение
Схема изображает взаимодействие ОС со всеми необходимыми компонентами.
Основные возможности

Дра́йвер ( англ. driver , мн. ч. дра́йверы ) — компьютерное программное обеспечение , с помощью которого другое программное обеспечение ( операционная система ) получает доступ к аппаратному обеспечению некоторого устройства. Обычно с операционными системами поставляются драйверы для ключевых компонентов аппаратного обеспечения, без которых система не сможет работать. Однако для некоторых устройств (таких, как видеокарта или принтер ) могут потребоваться специальные драйверы, обычно предоставляемые производителем устройства.

В общем случае драйвер не обязан взаимодействовать с аппаратными устройствами, он может их только имитировать (например, драйвер принтера, который записывает вывод из программ в файл), предоставлять программные сервисы, не связанные с управлением устройствами (например, /dev/zero в Unix , который только выдаёт нулевые байты), либо не делать ничего (например, /dev/null в Unix и NUL в DOS / Windows ).

Подход к построению драйверов

Операционная система управляет некоторым «виртуальным устройством», которое понимает стандартный набор команд. Драйвер переводит эти команды в команды, которые понимает непосредственно устройство. Эта идеология называется «абстрагирование от аппаратного обеспечения». Впервые в отечественной вычислительной технике подобный подход появился в серии ЕС ЭВМ , а такого рода управляющее программное обеспечение называлось канальным программным обеспечением.

Драйвер состоит из нескольких функций, которые обрабатывают определенные события операционной системы. Обычно основные события следующие:

  • Загрузка драйвера: драйвер регистрируется в системе, производит первичную инициализацию и т. п.
  • Выгрузка: драйвер освобождает захваченные ресурсы — память, файлы, устройства и т. п.
  • Открытие драйвера: обычно драйвер открывается программой как файл, функциями fopen() в UNIX-подобных системах или CreateFile() в Win32 . С этого события начинается основная работа драйвера.
  • Чтение/Запись: программа осуществляет обмен данными с устройством, обслуживаемым драйвером.
  • Закрытие: операция, обратная открытию, освобождает занятые при открытии ресурсы и уничтожает дескриптор файла .
  • Управление вводом-выводом ( англ. IO Control, IOCTL ). Зачастую драйвер поддерживает интерфейс ввода-вывода, специфичный для данного устройства. С помощью этого интерфейса программа может послать специальную команду, которую поддерживает данное устройство. Например, для SCSI -устройств можно послать команду GET_INQUIRY, чтобы получить описание устройства. В Win32-системах управление осуществляется через API-функцию DeviceIoControl() , в UNIX-подобных — с помощью ioctl() .

Разработка драйвера для использования не по прямому назначению

Поскольку в ОС Windows драйвер не обязан взаимодействовать с каким-либо внешним устройством, широко применяется разработка "псевдодрайверов", которые значительно расширяют функциональность программы.

Например, большинство современных игровых анти-читов используют драйвер-модуль для более широкого "наблюдения" за всеми процессами, которые происходят в системе. Этот же метод используется разработчиками вредоносного ПО ( читов ) для обхода защиты.

Драйверы видеокарт

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

Интеграция драйверов

По мере развития систем, сочетающих в себе на одной плате не только центральные элементы компьютера, но и большинство устройств компьютера в целом, возник вопрос удобства поддержки таких систем, получивших название «аппаратная платформа», или просто «платформа» [ источник не указан 365 дней ] .

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

Современный термин — Board Support Package (или «пакет поддержки платформы»), описывающий такие наборы драйверов устройств. Помимо собственно драйверов, он может, как и прочие установочные пакеты, содержать модули операционной системы и программы.

Виртуальные драйверы

Виртуальные драйверы устройств представляют собой особый вариант драйверов. Они используются для эмуляции аппаратного устройства, особенно в средах виртуализации, например, когда программа DOS запускается на компьютере с Microsoft Windows или когда гостевая операционная система работает на хостинге Xen.

См. также

Примечания

  1. Вариант драйвера́ разговорный и профессиональный. на Gramota.ru . от 8 ноября 2011 на Wayback Machine

Ссылки

  • (рус.) — статья о драйверах в OpenSolaris
  • (недоступная ссылка)
Источник —

Same as Драйвер