Показать сообщение отдельно
Старый 30.09.2009, 22:48   #1 (permalink)
Eli
TEHNARI.RU
 
Аватар для Eli
 
Регистрация: 31.03.2008
Адрес: Израиль
Сообщений: 18,407
Записей в дневнике: 7
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Репутация: 14157
По умолчанию Все о драйверах в Windows XP

Что это такое
Драйвер – набор служебных программ, позволяющих операционной системе (ОС) работать с тем или иным устройством компьютера. Его задача – обрабатывать запросы, поступающие от прикладных и системных программ, переводить их на язык, понятный физическому устройству, управлять процессами его инициализации, настройки параметров, обмена данными, переключением из одного состояния в другое и т.п. Драйвер позволяет операционной системе взаимодействовать с конкретным устройством через общий интерфейс, не учитывающий особенности данного устройства. Другими словами, драйвер транслирует запросы высокого уровня в запросы низкоуровневого машинного языка, непосредственно обращаясь к аппаратным ресурсам компьютера.
Не для каждого устройства требуется драйвер. Если существует строгий стандарт, описывающий набор команд, последовательность и временные параметры операций и другие особенности работы с данным классом устройств, драйвер может и не понадобиться, так как операционная система уже имеет в своем составе все необходимые для этого процедуры. В принципе, это можно назвать и встроенным драйвером. Примеры – клавиатура, таймер, коммуникационные порты, модем (внешний). Но если устройство может быть заменено на другое, отличное по своим функциональным возможностям, то драйвер для него нужно будет устанавливать обязательно.
Драйвер может содержаться и в дистрибутиве операционной системы. Тогда вопрос его поиска отпадает сам по себе. Однако устройства, появившиеся после официального выхода ОС, потребуют установки отдельного драйвера, разработанного производителем. Кроме того, набор драйверов в комплекте с ОС невелик и охватывает только небольшую часть наиболее распространенных или полностью стандартных устройств
Драйверы и 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-драйверов.
«Референс» или «фирменные»?
Как правило, функциональность каждого устройства компьютера определяется его контроллерами. Контроллеры имеют вид интегральных микросхем, установленных на печатной плате. Взаимодействие устройства с остальными компонентами системы сводится к обмену данными и командами между контроллером устройства и центральным процессором (или другим контроллером, например, арбитром шины, контроллером dma и т.п.). Можно сказать, что драйвер – это программа, позволяющая процессору «общаться» с контроллером
Очень часто разработчики микросхем (так называемого чипсета) сами пишут драйверы для того устройства, которым будет управлять их контроллер. Обычно такие драйверы называют референсными (“reference”). Они могут быть либо общедоступными и выкладываться в Интернет на сайте разработчика, либо предоставляться исключительно производителям оборудования на доработку и адаптацию. Очевидно, что в первом случае для устройства можно и нужно устанавливать референсные драйверы, которые обновляются гораздо чаще «фирменных» и содержат исправления ошибок и новые возможности. Однако при этом можно потерять доступ к некоторым функциям, специфичным для конкретного устройства.
«Фирменные» драйверы производителя оборудования могут быть изрядно устаревшими, но при этом учитывать какие-то особенности данного устройства, о которых не знают разработчики чипсета. В любом случае всегда имеет смысл попробовать сначала «референс»-драйвер (если он доступен для скачивания), а если он по какой-то причине не подойдет, вернуться к «фирменным».
Версии драйверов
Как и любое другое программное обеспечение, драйверы имеют свои версии. Формат версии свободный – каждый разработчик сам решает, сколько ему нужно цифр для нумерации и в какой последовательности они должны стоять. В некоторых случаях все-таки есть система: windows-драйверы для наиболее интересных с нашей точки зрения устройств вроде игровых видео- и звуковых карт, поддерживающих directx, нумеруются определенным образом. Первая цифра – номер версии операционной системы windows. 4 = win9x/winnt, 5 = win2000. Далее после точки идет версия directx. 12 = dx7, 13 = dx8. Последние цифры – номер версии самого драйвера. Например, представленный на скриншоте драйвер для видеокарт nvidia имеет версию 4.13.01.1241, что означает предназначен для win9x и directx8, его версия – 1241
Чтобы узнать версию драйвера, распакуйте его до состояния отдельных .vxd и .dll-файлов. Далее нужно в «Проводнике» щелкнуть любой из файлов (лучше с расширением .vxd) правой кнопкой мыши, выбрать «Свойства», потом закладку «Версия». Версия драйвера будет выделена цветом
Иногда производители сопровождают драйвер своим инсталлятором (setup.exe, install.exe и т.п.). Тогда увидеть файлы драйвера не представляется возможным. Поищите файл readme.txt, version.txt, release.txt или что-нибудь подобное, так как в них часто тоже указаны версии файлов или всего комплекта
Также стоит упомянуть о так называемых бета-драйверах. Разработчики чипсетов и устройств часто стараются стимулировать интерес к себе, выкладывая на своих сайтах экспериментальные драйверы. Другой известный прием – предоставление драйверов владельцам различных тематических Интернет-сайтов под видом украденных или случайно оставленных на внутренних корпоративных страницах (так называемые “leaked”-драйверы). Конечно, разработчики заранее открещиваются от них и не обещают технической поддержки в случае возникновения проблем, но, как мне кажется, они все равно анализируют поток писем от пользователей и тем самым экономят на процессе поиска сбоев и отладки
Чтобы предотвратить сбои в системе из-за бета-драйверов, microsoft ввела специальную сертификацию. Драйверы тестируются в лаборатории microsoft windows hardware quality lab (whql), и после успешного прохождения всех процедур они получают сертификат. Он имеет вид файла типа “security catalog” (расширение .cat), в котором перечислены все сертифицированные компоненты драйвера. Если такого файла в комплекте драйвера нет, то очень велика вероятность, что это бета-версия
Кстати, проверяйте .cat-файлы, запуская их двойным щелчком мыши, так как они могут быть фиктивными (пустыми).
Eli вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070