Драйвер
Дра́йвер (англ. driver, мн. ч. дра́йверы[1]) — компьютерное программное обеспечение, с помощью которого другое программное обеспечение (операционная система) получает доступ к аппаратному обеспечению некоторого устройства. Обычно с операционными системами поставляются драйверы для ключевых компонентов аппаратного обеспечения, без которых система не сможет работать. Однако для некоторых устройств (таких, как видеокарта или принтер) могут потребоваться специальные драйверы, обычно предоставляемые производителем устройства.
В общем случае драйвер не обязан взаимодействовать с аппаратными устройствами, он может их только имитировать (например, драйвер принтера, который записывает вывод из программ в файл), предоставлять программные сервисы, не связанные с управлением устройствами (например, /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 и общей производительности системы в играх.
Интеграция драйверов
[править | править код]По мере развития систем, сочетающих в себе на одной плате не только центральные элементы компьютера, но и большинство устройств компьютера в целом, возник вопрос удобства поддержки таких систем, получивших название «аппаратная платформа», или просто «платформа»[источник не указан 584 дня].
Сначала производители платформ поставляли набор отдельных драйверов для операционных систем, собранный на один носитель (обычно компакт-диск), затем появились установочные пакеты, называвшиеся 4-in-1 и One touch, и позволявшие упростить установку драйверов в систему. При этом, как правило, можно выбрать либо полностью автоматическую установку всех драйверов, либо выбрать вручную нужные. Однако единого, устоявшегося термина долго не было.
Современный термин — Board Support Package (или «пакет поддержки платформы»), описывающий такие наборы драйверов устройств. Помимо собственно драйверов, он может, как и прочие установочные пакеты, содержать модули операционной системы и программы.
Виртуальные драйверы
[править | править код]Виртуальные драйверы устройств представляют собой особый вариант драйверов. Они используются для эмуляции аппаратного устройства, особенно в средах виртуализации, например, когда программа DOS запускается на компьютере с Microsoft Windows или когда гостевая операционная система работает на хостинге Xen.
См. также
[править | править код]Примечания
[править | править код]- ↑ Вариант драйвера́ разговорный и профессиональный. Обсуждение на Gramota.ru. Архивная копия от 8 ноября 2011 на Wayback Machine
Ссылки
[править | править код]- Пишем драйверы OpenSolaris (рус.) — статья о драйверах в OpenSolaris
- klife — Introduction to Linux Device Drivers
- Solaris Device Drivers (недоступная ссылка)