Утилита

Драйвер и операционная система

(Рис. 1) Логическое позиционирование драйверов устройств

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

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

Обычно операционная система относит драйверы к одной из немногочисленных категорий. Самые распространенные категории — это драйверы блочных устройств, к ним относятся драйверы дисков, содержащих множество блоков данных, к которым можно обращаться независимо от всех остальных блоков, и драйверы символьных устройств, к которым относятся драйверы клавиатур и принтеров — устройств, которые генерируют или воспринимают поток символов.

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

С наступлением эры персональных компьютеров с несметным количеством устройств ввода-вывода эта модель уже не работает. Лишь немногие пользователи способны перекомпилировать или перекомпоновать ядро, даже если у них будут исходные коды или объектные модули, что случается довольно редко. Вместо этого операционные системы, начиная с MS-DOS, перешли к модели, в которой драйверы стали динамически загружаться в систему в процессе работы. Управление загрузкой драйверов ведется в разных системах по-разному.

Интеграция драйверов

По мере развития систем, сочетающих в себе на одной плате не только центральные элементы компьютера, но и большинство устройств компьютера в целом, возник вопрос удобства поддержки таких систем, получивших название «аппаратная платформа», или просто «платформа».

Сначала производители платформ поставляли набор отдельных драйверов для операционных систем, собранный на один носитель (обычно компакт-диск), затем появились установочные пакеты, называвшиеся 4-in-1 и One touch, и позволявшие упростить установку драйверов в систему. При этом, как правило, можно выбрать либо полностью автоматическую установку всех драйверов, либо выбрать вручную нужные. Однако единого, устоявшегося термина долго не было.

Современный термин — Board Support Package (или «пакет поддержки платформы»), описывающий такие наборы драйверов устройств. Помимо собственно драйверов, он может, как и прочие установочные пакеты, содержать модули операционной системы и программы.

Подход к построению драйверов

Операционная система управляет некоторым «виртуальным устройством», которое понимает стандартный набор команд. Драйвер переводит эти команды в команды, которые понимает непосредственно устройство. Эта идеология называется «абстрагирование от аппаратного обеспечения». Впервые в отечественной вычислительной технике подобный подход появился в серии ЕС ЭВМ, а такого рода управляющее программное обеспечение называлось канальным программным обеспечением.

Драйвер состоит из нескольких функций, которые обрабатывают определенные события операционной системы. Обычно это 7 основных событий:

  • Загрузка драйвера. Тут драйвер регистрируется в системе, производит первичную инициализацию и т. п.
  • Выгрузка. Драйвер освобождает захваченные ресурсы — память, файлы, устройства и т. п.
  • Открытие драйвера. Начало основной работы. Обычно драйвер открывается программой как файл, функциями в UNIX-подобных системах или в Win32.
  • Чтение/Запись: программа читает или записывает данные из/в устройство, обслуживаемое драйвером.
  • Закрытие: операция, обратная открытию, освобождает занятые при открытии ресурсы и уничтожает дескриптор файла.
  • Управление вводом-выводом (англ. IO Control, IOCTL). Зачастую драйвер поддерживает интерфейс ввода-вывода, специфичный для данного устройства. С помощью этого интерфейса программа может послать специальную команду, которую поддерживает данное устройство. Например, для SCSI-устройств можно послать команду GET_INQUIRY, чтобы получить описание устройства. В Win32-системах управление осуществляется через API-функцию , в UNIX-подобных — с помощью .

Обязательно ли устанавливать драйверы?

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


Рассмотрим на примере видеокарт. Для того чтобы вы могли видеть что-либо на экране, Windows использует базовый драйвер. Однако если вы хотите сделать что-то более серьезное: включить Aero (в Vista или 7), иметь аппаратное ускорение декодирования видео и т.д., вам будет нужно установить драйвер. Другим примером могут быть звуковые карты, которые в Windows поддерживаются достаточно скудно. Если звуковая карта не обнаружена, в системе не будет звука. Это не фатально – с компьютером можно работать и без звука, а вот без изображения на мониторе нельзя. Тем не менее, все мы понимаем, насколько ограниченным будет компьютер, который не может воспроизводить звук, т.е. с практической точки зрения драйвер необходимо установить.

Что такое DriverPack Cloud и как его удалить с компьютера

Вот что говорится на сайте разработчика о DriverPack Cloud:

Слушайте, ну прямо молочные реки и кисельные берега обещают. Неужели такое возможно? И да и нет… да — возможно, нет — не бесплатно. Если упростить по максимуму, то все вычисления будут производиться в облачном сервисе, а вам только передаваться готовая картинка.

С производительностью всё понятно, халявы не ждите, имеется гораздо более подозрительный функционал. Например, как пишут на сайте, DriverPack Cloud постоянно следит за состоянием драйверов и подгружает важные обновления, а также позволяет находить и удалять потенциально вредоносные программы, помогая вашему антивирусу. То есть, эта вся дребедень постоянно имеет полный доступ к вашим данным и работает на системном уровне.


Вы удивитесь, узнав насколько глубоко DriverPack Cloud запустил свои щупальца в вашу систему. И тут мы подходим к главному, что больше всего меня смутило в новом DriverPack Solution. Даже в режиме эксперта, если вы отказываетесь от установки и снимаете галочку с DriverPack Cloud, он всё равно ставится в вашу систему.

Но это ещё полбеды, данное приложение (DriverPack Cloud) не удаляется штатными средствами, пытаясь закрепиться где только возможно в системе, то есть ведёт себя как типичный троян.

Драйвера для других операционных систем

Несмотря на то, что большинство пользователей персональных компьютеров работают на Windows, драйвера для комплектующих и нового оборудования, необходимы и на других операционных системах. Операционные системы Mac и Linux также нуждаются в установке драйверов, другое дело, что далеко не все производители комплектующих выпускают драйвера для этих систем. В прочем, современные операционные системы, особенно начиная с Windows 8, имеют огромную библиотеку предустановленных драйверов, таким образом, 80% подключенного к компьютеру оборудования может обойтись предустановленным решением. Например, в Windows XP, практически каждое подключаемое устройство требовало установку драйвера, сейчас же, такое оборудование как bluetooth или mp3 плеер, автоматически подключаются к компьютеру и взаимодействуют с операционной системой.

Как установить драйверы?

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

  • запустите «Диспетчер устройств»: щелкните правой кнопкой мыши на «Этот Компьютер» («Компьютер» или «Мой компьютер», если у вас Windows 7 или XP) -> «Управление» -> «Диспетчер устройств»;
  • если устройство не распознается вообще, оно будет в разделе «Другие устройства», в противном случае оно будет находиться в соответствующей категории;
  • щелкните правой кнопкой мыши на устройстве и выберите «Обновить драйверы…»;
  • выберите «Выполнить поиск драйверов на этом компьютере»;
  • далее нажмите на кнопку «Обзор» и укажите путь к драйверу (то есть папку, куда вы распаковали файлы драйвера);
  • нужно указать папку, которая содержит определенные .inf файлы;
  • при нажатии на кнопку «Далее» Windows проверит папку и установит драйвер;
  • после установки нажмите «Закрыть» и перезагрузите компьютер.

Как удалить DriverPack Cloud

Итак, DriverPack Cloud плевать хотел на любые действия через штатную установку/удаление программ в Windows, однако вывести его всё-таки можно.


В сети можно найти советы использовать CCleaner, который сам не лучше, собирая информацию о пользователях, о чём я уже рассказывал ранее в статье CCleaner следит за тобой. На самом деле всё можно сделать штатными средствами Windows.

Первым делом останавливаем выполнение приложения cloud.exe в диспетчере задач (вызывается классической комбинацией Ctrl+Alt+Del, если кто не в теме). Таких процессов может быть несколько, прибить нужно все.

Далее запускаем редактор реестра командой regedit и через поиск в реестре находим и удаляем все упоминания «DriverPack Cloud».

Остаётся удалить созданные утилитой DriverPack Cloud файлы и каталоги с жёсткого диска. Кроме основного местоположения в каталоге C:/Program Files/ и чистки временных файлов, загляните в собственный пользовательский каталог (предварительно включив отображение скрытых файлов):

C:/Пользователи//AppData/Local/
C:/Пользователи//AppData/Roaming/


Выделенные на скриншотах каталоги подлежат безжалостному истреблению со всем содержимым.

Какой можно сделать вывод из всего сказанного? К сожалению, DriverPack Solution из удобного и простого инструмента превратился практически во вредоносную программу и рекомендовать его к использованию я бы не стал, особенно новичкам.

Лучше потратить чуть больше времени, скачивая драйвера с официального сайта производителя оборудования, но сэкономить кучу сил и нервов, потраченных на избавление от последствий применения данного универсального установщика. А ведь когда-то было хорошо…

Подписывайтесь на канал и узнавайте первыми о новых материалах, опубликованных на сайте.

Если считаете статью полезной,не ленитесь ставить лайки и делиться с друзьями.

Пошаговая процедура ремонта материнской платы ноутбукаПроброс портов на MikroTikО чём молчит SONY. Очередное обновление Android «убило» телек за 250 000 рублей?Арабский Windows 8.1 после восстановления компьютера«Ложим-кладём» термопасту. Как правильно нанести термоинтерфейс на процессор?Переносим сервер в собственное облако. Настройка OpenVPN сервера на сетевом накопителе QNAP.


С этим читают