Драйвер ( driver ) - компьютерная программа, с помощью которой операционная система получает доступ к управлению аппаратным обеспечением. В общем случае для использования каждого устройства, подключенного к компьютеру, необходим специальный драйвер. Обычно с операционными системами поставляются драйверы для ключевых компонентов аппаратного обеспечения, без которых система не сможет работать. Однако для более специфических устройств (таких, как графическая плата или принтер ) могут потребоваться специальные драйверы, обычно предоставляемые производителем устройства.
Идеология построения драйверов
Операционная система управляет некоторым "виртуальным устройством", который понимает стандартный набор команд. Драйвер переводит эти команды в команды, которые понимает непосредственно устройство. Эта идеология называется "абстрагирования от аппаратного обеспечения". Драйвер состоит из нескольких функций, которые обрабатывают определенные события операционной системы. Обычно это 7 основных событий:
-
загрузки драйвера. Драйвер регистрируется в системе, делает первичную инициализацию и т.п. ;
-
выгрузки. Драйвер освобождает захваченные ресурсы - память, файлы, устройства и т.п. ;
-
открытие драйвера. Начало основной работы. Обычно драйвер открывается программой как файл, функциями CreateFile () в Win32 или fopen () в UNIX-подобных системах;
-
чтение;
-
запись: программа читает или записывает данные из / в устройство, обслуживаемого драйвером;
-
закрытие: операция, обратная открытию, освобождает занятые при открытии ресурсы и уничтожает дескриптор файла;
-
управление вводом-выводом-IO Control-IOCTL. Зачастую драйвер поддерживает интерфейс ввода-вывода, специфичный для данного устройства. С помощью этого интерфейса программа может послать специальную команду, которая поддерживает данное устройство. Например, для SCSI устройств можно послать команду GET_INQUIRY, чтобы получить описание устройства. В Win32 системах управление осуществляется через API -функцию DeviceIoControl (). В UNIX -подобных - ioctl ()
Интеграция драйверов
По мере развития систем, соединяющих в себе на одной плате не только центральные элементы компьютера, но и большинство устройств компьютеров в целом, возник вопрос удобства поддержки таких систем, получивших название " аппаратная платформа ", или просто" платформа ".
Сначала производители платформ поставляли набор отдельных драйверов для операционных систем, собранный на один носитель (обычно CD), Затем появились установочные пакеты, называвшиеся «4-in-1» и «One touch» и позволяли упростить установку драйверов в систему. Однако единого, устоявшегося термина долго не было.
Современный термин, описывающий такие наборы драйверов устройств - Board Support Package, или «пакет поддержки платформы". Помимо собственно драйверов, он может, как и другие установочные пакеты, содержать модули операционной системы и программы. В сленге "дрова".