Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Операционные системы -> Windows -> Кое-что о драйверах


Кое-что о драйверах

Источник: Заглядывайте

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

Что это такое

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

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

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

Драйверы и 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-файлы, запуская их двойным щелчком мыши, так как они могут быть фиктивными (пустыми).

Как определить производителя и модель устройства

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

Все чипы обязательно имеют маркировку, где указано название производителя, модель, серия, версия и ревизия чипа, дата выпуска. Микросхемы чипсета обычно имеют самое сложную структуру, у них большой корпус и много контактов, поэтому они больше других чипов по размерам. По маркировке, пользуясь поисковиками http://www.google.com/, http://www.altavista.com/, http://www.yandex.ru/ и другими, можно достаточно быстро отыскать сайт производителя чипсета и "reference"-драйверы.

Производителя самого устройства найти будет легче. Во-первых, вся необходимая информация должна быть нанесена краской на печатной плате. Даже если вы не нашли названия, есть шанс определить его по FCC-номеру. Ищите строку "FCC ID:", в которой будет указан регистрационный код, присвоенный изготовителю устройства. После этого нужно зайти на сайт FCC и ввести код в строку поиска.

Во-вторых, где-нибудь обязательно будет написана модель устройства, по которой в Интернет можно попытаться найти сайт производителя.

В-третьих, если устройство устанавливается в слот PCI или AGP, то с помощью утилит можно определить код производителя этого устройства или чипсета. Могу порекомендовать Sandra, PowerStrip. Принцип, положенный в основу идентификации, базируется на анализе информации, выдаваемой PCI-устройством. Как минимум можно получить коды производителя (Vendor ID) и модели (Device ID), которые поддаются расшифровке с помощью таблиц. В частности, в таблице Sandra содержится более 6 тыс. кодов различных устройств.

Где взять драйвер

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

Если вы точно знаете доменное имя сайта производителя (или догадываетесь - www.производитель.com, www.производитель.com.tw), то можно начинать поиск. На титульной странице отыщите кнопку "Download", "Drivers", "Support" или аналогичную. Далее предстоит выбрать из списка именно то устройство, которое у вас имеется. Вполне возможно, что вы увидите несколько устройств с совпадающими названиями, отличия которых будут заключаться только в суффиксах или даже номерах ревизий. Обращайте на это внимание, иначе драйвер может не подойти. Далее, по возможности скачивайте драйверы не только для той операционной системы, которая у вас установлена, но и для других ОС: во время инсталляции новой Windows будет неприятно обнаружить факт отсутствия необходимого драйвера.

Если вам никак не удается найти нужный сайт, обращайтесь на специализированные драйверные сайты (http://www.windrivers.com/, http://www.driverhq.com/, http://www.drv.ru/ и т.д.). Скачивать оттуда непосредственно файлы драйвера можно только в одном случае: фирма-разработчик уже прекратила свое существование и ее сайта физически нет в Сети. Гораздо лучше воспользоваться поиском не драйвера, а сайта производителя или его страницы технической поддержки.

Как установить

Установка драйвера заключается в следующем: Windows обнаруживает .INF-файл, отыскивает в нем строки идентификации Plug&Play-устройств, и если они совпадают с информацией, выданной самим устройством, система выполняет предписанные действия по копированию файлов, добавлению записей в реестр и т.д. Вы должны указать местоположение файла в ответ на запрос мастера обновления оборудования. Мастер запускается либо автоматически, после появления сообщения о найденном устройстве, либо вручную. В последнем случае зайдите в <Свойства системы> (нажать я+Pause), выбирайте закладку <Управление устройствами>, потом свойства нужного устройства, закладку <Драйвер>, <Обновить драйвер>.

Если в комплекте с драйвером есть свой инсталлятор, то лучше воспользоваться им. Для этого нужно после появления сообщения о найденном устройстве нажать , загрузить Windows без драйвера и запустить инсталлятор. Он скопирует все файлы драйвера в папку Windows\INF\Other, где драйвер и будет найден после перезагрузки. Кроме того, будут установлены дополнительные программы, идущие в комплекте. Немаловажно также и то, что в большинстве случаев инсталлятор может корректно убрать драйвер, не оставив следов своего пребывания (<Панель управления>/<Установка и удаление программ>).

Как удалить вручную

Если установленный вами драйвер не справляется со своими функциями и даже вызывает ошибки и сбои, его нужно удалить. Просто нажать в списке устройств, а потом дождаться сообщения о новом устройстве?.. Иногда это помогает, иногда - нет. Дело в том, что Windows может следующий раз и не спросить у вас драйвер, а просто проинформировать о найденном устройстве и тут же вернуть все на место. Для удаления информации о драйвере потребуется дополнительно выйти в DOS, зайти в каталог Windows/Inf и найти там .INF-файл нужного (точнее, уже ненужного) драйвера и удалить его. Вслед за ним можно отправить и .VXD-файлы, которые обычно находятся в Windows/System, но тут нужно проявить аккуратность, так как можно и перестараться. Теперь после перезагрузки Windows обновит свою базу данных и не найдет старого драйвера, а значит, можно устанавливать новый или возвращать на место старый, хорошо работавший до того, как вы начали ремонтировать то, что не сломалось.

И еще

В Интернет существуют специальные сайты, которые регулярно следят за появлением новых версий драйверов для наиболее распространенных устройств. Я тоже стараюсь собирать такую информацию и публиковать ее на своем сайте. Заглядывайте иногда, и вы всегда будете в курсе и не пропустите новую версию необходимого вам драйвера.



 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.