Всё о драйверах

Каждый пользователь компьютера рано или поздно столкнется с вопросом поиска, установки и удаления драйверов. Будет это вызвано покупкой нового устройства, переустановкой операционной системы, желанием повысить быстродействие или улучшить другие характеристики системы - не суть важно.

Что это такое ?

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

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

Драйвер может содержаться и в дистрибутиве операционной системы. Тогда вопрос его поиска отпадает сам по себе. Однако устройства, появившиеся после официального выхода ОС, потребуют установки отдельного драйвера, разработанного производителем. Кроме того, набор драйверов в комплекте с ОС невелик и охватывает только небольшую часть наиболее распространенных или полностью стандартных устройств.

Драйверы и Windows

В операционных системах Microsoft Windows драйвер состоит из нескольких файлов, хранящихся обычно в каталогах SYSTEM, SYSTEM32 и их подкаталогах. Ядро драйвера хранится в файлах с расширениями .VXD, .DRV, .SYS и некоторых других, а дополнительные процедуры собраны в динамические библиотеки .DLL. Кроме того, в состав драйвера могут входить файлы справки, утилиты, модули деинсталляции и т.д.

Последовательность операций по установке и удалению драйвера хранится в специальном информационном файле .INF. С его помощью Windows определяет тип, производителя, модель устройства, класс драйвера, необходимые ресурсы и файлы. В этом файле также описываются операции распаковки, запуска, копирования, удаления, переименования файлов, добавления и удаления ключей в реестре и т.д. Все .INF-файлы хранятся в каталоге INF, причем устанавливаемые драйверы не-Microsoft’овского происхождения (не поставляемые в комплекте с ОС) откладываются в отдельный подкаталог INF/OTHER.

Windows умеет автоматически находить драйвер для устройства. Для этого она использует технологию Plug&Play, точнее, ее часть, отвечающую за самоидентификацию устройства. В частности, PCI-устройства обнаруживаются BIOS и заносятся в виде списка в специальную область ESCD (Extended System Configuration Data). Windows может использовать ее, а может и самостоятельно опросить шину PCI и узнать у каждого устройства коды его производителя, модели и версии, необходимые ресурсы и другую информацию. Далее проверяется база данных (файлы DRVDATA.BIN и DRVIDX.BIN) по всем известным устройствам и находится необходимый .INF-файл. Если в каталоге .INF имеются новые файлы, они будут автоматически проиндексированы и внесены в базу данных.

Следует также помнить, что операционные системы Windows 98 SE и Windows 2000, равно как и их потомки, поддерживают новую модель драйверов, получившую название WDM (Windows Driver Model). Это - попытка реализовать полную поддержку Plug&Play и ACPI, то есть дать возможность загружать и выгружать драйверы "на ходу", без перезагрузки системы, подключать их в виде фильтров-расширений к стандартным драйверам Microsoft, более гибко управлять энергосбережением и конфигурацией устройств и т.п. WDM-драйверы хранятся в каталоге SYSTEM32/DRIVERS. В частности, интерфейсы нового поколения USB и IEEE-1394 (FireWire) работают только под управлением WDM-драйверов.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=942