Драйвер

Операционные системы
Operating system placement-ru.svg
Общие черты

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

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

Идеология построения драйверов

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

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

  • Загрузка драйвера. Тут драйвер регистрируется в системе, производит первичную инициализацию и т. п.
  • Выгрузка. Драйвер освобождает захваченные ресурсы — память, файлы, устройства и т. п.
  • Открытие драйвера. Начало основной работы. Обычно драйвер открывается программой как файл, функциями CreateFile() в Win32 или fopen() в UNIX-подобных системах.
  • Чтение/Запись: программа читает или записывает данные из/в устройство, обслуживаемое драйвером.
  • Закрытие: операция, обратная открытию, освобождает занятые при открытии ресурсы и уничтожает дескриптор файла.
  • Управление вводом-выводом ( англ. IO Control, IOCTL). Зачастую драйвер поддерживает интерфейс ввода-вывода, специфичный для данного устройства. С помощью этого интерфейса программа может послать специальную команду, которую поддерживает данное устройство. Например, для SCSI-устройств можно послать команду GET_INQUIRY, чтобы получить описание устройства. В Win32-системах управление осуществляется через API-функцию DeviceIoControl(), в UNIX-подобных — с помощью ioctl().
другие языки
العربية: برنامج تعريف
azərbaycanca: Sürücü
български: Драйвер
English: Device driver
Esperanto: Pelilo
suomi: Laiteajuri
עברית: מנהל התקן
hornjoserbsce: Ćěrjak (informatika)
Bahasa Indonesia: Pemacu peranti
italiano: Driver
қазақша: Драйвер
Кыргызча: Драйвер
Lëtzebuergesch: Driver
lietuvių: Tvarkyklė
latviešu: Dzinis
олык марий: Драйвер
Bahasa Melayu: Pemacu peranti
Nederlands: Stuurprogramma
norsk nynorsk: Drivar
norsk: Driver
română: Driver
русиньскый: Драйвер
Simple English: Device driver
српски / srpski: Драјвер
svenska: Drivrutin
українська: Драйвер
中文: 驱动程序
粵語: 驅動程式