Драйвер устройства, что это такое

Обновлено: 21.11.2024

Драйверы устройств: почему они важны и как с ними работать

Тим Фишер имеет более чем 30-летний опыт работы в сфере технологий. Он пишет о технологиях более двух десятилетий и является вице-президентом и генеральным директором Lifewire.

В этой статье

Перейти к разделу

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

Например, драйверы принтера сообщают операционной системе и, соответственно, любой программе, в которой вы хотите распечатать, точно как печатать информацию на странице

Карты и драйверы

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

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

Как работают драйверы устройств?

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

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

Драйверы устройств и совместимость

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

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

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

Драйверы для каждого устройства на вашем компьютере с Windows централизованно управляются из диспетчера устройств, доступного во всех версиях Microsoft Windows.

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

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

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

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

Общие задачи водителя

Вот некоторые распространенные задачи в Windows, связанные с драйверами:

Вот несколько дополнительных ресурсов, связанных с драйверами:

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

Когда драйвер устройства необходим или не нужен

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

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

Когда обновлять драйверы

Часто возникает вопрос, следует ли обновлять все доступные драйверы.Например, если ваш компьютер, веб-сайт производителя оборудования или средство обновления драйверов сообщает вам, что существует 10 обновлений драйверов, совместимых с вашей системой, следует ли вам получать их все или только некоторые? Имеет ли значение, какие из них вы устанавливаете?

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

  • Если оборудование не работает.
  • Если вам нужны новые функции.

Например, если после запуска Driver Booster вам сообщается, что есть несколько драйверов, которые вы можете установить, может возникнуть соблазн получить их все, чтобы вы наверняка использовали все последние драйвера. Но каждая установка увеличивает риск конфликта программного обеспечения или другой проблемы, которая может сделать устройство непригодным для использования.

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

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

Некоторые утилиты для обновления драйверов сделают это за вас, но всегда помните о создании точки восстановления системы перед установкой драйвера, чтобы вы могли отменить изменения, если они вызовут проблемы.

Различные типы драйверов устройств

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

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

Файлы .SYS

Windows использует файлы .SYS в качестве загружаемых драйверов устройств, то есть их можно загружать по мере необходимости, поэтому они не всегда занимают память — другие драйверы имеют формат DLL или EXE. То же самое относится и к модулям Linux .KO (ядро).

WHQL – это процесс тестирования Microsoft, который помогает доказать, что конкретный драйвер устройства будет работать с определенной версией Windows. Вы можете увидеть, что загружаемый драйвер сертифицирован или не сертифицирован WHQL. Подробнее о лабораториях качества оборудования Windows можно прочитать здесь.

Драйверы виртуальных устройств

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

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

Чтобы обновить драйверы устройств в Windows 11 вручную, откройте Диспетчер устройств на панели управления или в меню "Пуск" Windows. Затем щелкните правой кнопкой мыши устройство для обновления> выберите «Обновить драйвер»> «Автоматический поиск драйверов». Если вам нужно переустановить драйвер, щелкните устройство правой кнопкой мыши > Удалить устройство > перезагрузите компьютер.

Если ваш iPhone не подключается к ПК с Windows, может помочь обновление программного драйвера. Сначала разблокируйте телефон, а затем подключите устройство к компьютеру с помощью USB-кабеля. Запустите Диспетчер устройств > Портативные устройства > щелкните правой кнопкой мыши iPhone > Обновить драйвер. После обновления драйвера отключите и снова подключите телефон.

Драйвер устройства — это особая форма программного приложения, которое позволяет одному аппаратному устройству (например, персональному компьютеру) взаимодействовать с другим аппаратным устройством (например, принтером). Драйвер устройства также может называться программным драйвером.

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

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

Сегодня большинство операционных систем включают библиотеку драйверов plug-n-play, которые позволяют периферийному оборудованию автоматически подключаться к операционной системе. Этот подход также имеет то преимущество, что позволяет программистам писать высокоуровневый код приложения, не зная, на каком оборудовании будет работать их код.

Techopedia объясняет драйвер устройства

По сути, драйвер действует как переводчик между операционной системой (ОС) вычислительного устройства и периферийным оборудованием.

Как работают драйверы устройств

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

Существуют различные типы драйверов устройств ввода-вывода, таких как клавиатуры, мыши, дисководы CD/DVD, контроллеры, принтеры, видеокарты и порты. Когда драйвер включен в операционную систему, он может называться драйвером устройства, работающим в режиме ядра. Если конечному пользователю необходимо загрузить и установить драйвер вручную, он может быть охарактеризован как драйвер устройства user-mode.

Драйвер устройства и API

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

Например, разработчики, работающие над приложениями с программированием машинного обучения (ML) и искусственного интеллекта (AI), могут использовать API, чтобы не беспокоиться о низкоуровневых командах для каждого графического процессора (GPU), который, как ожидается, будет работать в их приложении. вкл.

История драйвера устройства

Историки технологий, изучающие рост новых технологий, таких как облачные вычисления и программное обеспечение как услуга, склонны рассматривать эру драйверов устройств как относящуюся к 1990-м годам и последующим годам, когда аппаратные настройки все еще были в значительной степени частью вычислений. и потребительские технологии.

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

Несмотря на прогресс в подключении оборудования, например, когда разъемы USB заменили традиционные штыревые разъемы, проблемы с программным обеспечением драйверов сохранялись. Новости той эпохи показывают, как пользователи работают с определенными технологиями, требующими установки драйверов, например периферийными устройствами, определенными типами графических процессоров или сетевыми картами расширения.

Многие проблемы с программным обеспечением драйверов устройств связаны с привилегиями и разрешениями, необходимыми для обеспечения совместимости ввода/вывода или разрешения аппаратным частям «общаться друг с другом».

Драйверы виртуальных устройств

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

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

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

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

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

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

Очень часто это называют только драйвером, а также когда кто-то говорит «Драйвер оборудования», который также относится к этому драйверу устройства.

Работа драйвера устройства.
Драйверы устройств зависят от инструкций операционной системы для доступа к устройству и выполнения каких-либо конкретных действий. После действия они также показывают свою реакцию, передавая выходные данные или статус/сообщение с аппаратного устройства в операционную систему. Например, драйвер принтера сообщает принтеру, в каком формате печатать после получения инструкции от ОС, аналогичным образом драйвер звуковой карты должен быть в котором данные 1 и 0 файла MP3 преобразуются в аудиосигналы, и вы наслаждаетесь музыкой. Для работы кардридера, контроллера, модема, сетевой карты, звуковой карты, принтера, видеокарты, USB-устройств, оперативной памяти, динамиков и т. д. требуются драйверы устройств.

На следующем рисунке показано взаимодействие между пользователем, ОС, драйвером устройства и устройствами:

  1. Драйвер устройства в режиме ядра.
    Этот драйвер устройства в режиме ядра включает в себя некоторые общие аппаратные средства, которые загружаются вместе с операционной системой как часть ОС: BIOS, материнская плата, процессор и некоторые другие аппаратные средства, являющиеся частью программного обеспечения ядра. Сюда входят драйверы устройств с минимальными системными требованиями для каждой операционной системы.
  2. Драйвер устройства пользовательского режима.
    Кроме устройств, которые предоставляются ядром для работы системы, пользователь также может использовать некоторые устройства для использования во время использования системы, которым устройствам нужны драйверы устройств для работы этих драйверов. подпадает под драйвер устройства пользовательского режима. Например, пользователю нужно любое действие plug and play, которое подпадает под это.

Драйвер виртуального устройства:
Существуют также драйверы виртуального устройства (VxD), которые управляют виртуальным устройством. Иногда мы используем одно и то же оборудование виртуально, в то время как виртуальный драйвер контролирует/управляет потоком данных из разных приложений, используемых разными пользователями, на одно и то же оборудование.

Трудно дать одно точное определение термину драйвер. В самом фундаментальном смысле драйвер — это программный компонент, который позволяет операционной системе и устройству взаимодействовать друг с другом.

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

Расширение определения

Наше объяснение упрощено по нескольким причинам:

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

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

Не все драйверы напрямую взаимодействуют с устройством.

Для заданного запроса ввода-вывода (например, чтения данных с устройства) часто используется несколько драйверов, расположенных в стеке драйверов, которые участвуют в запросе. Обычный способ визуализации стека — первый участник вверху, а последний участник внизу, как показано на этой диаграмме.Некоторые из драйверов в стеке могут участвовать в преобразовании запроса из одного формата в другой. Эти драйверы не взаимодействуют напрямую с устройством; они просто манипулируют запросом и передают его драйверам, расположенным ниже в стеке.

Драйвер функции. Один из драйверов в стеке, напрямую взаимодействующий с устройством, называется драйвер функции.

Драйвер фильтра. Драйверы, выполняющие вспомогательную обработку, называются драйверами фильтра.

Дополнительную информацию о стеках см. в разделе Стеки драйверов.

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

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

Драйверы программного обеспечения

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

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

На этой диаграмме показано взаимодействие приложения пользовательского режима с программным драйвером режима ядра.

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

Дополнительную информацию о режимах процессора см. в разделах Режим пользователя и Режим ядра.

Водители автобусов

Есть еще не упомянутая категория водителей, водитель автобуса. Чтобы понимать драйверы шины, необходимо понимать узлы устройств и дерево устройств.

Информацию о деревьях устройств, узлах устройств и драйверах шин см. в разделе Узлы устройств и стеки устройств.

Подробнее о функциональных драйверах

Наше объяснение до сих пор слишком упрощает определение драйвера функции. Мы сказали, что функциональный драйвер для устройства — это единственный драйвер в стеке, напрямую взаимодействующий с устройством. Это верно для устройства, которое подключается непосредственно к шине периферийных компонентов (PCI). Драйвер функции для устройства PCI получает адреса, сопоставленные с портами и ресурсами памяти на устройстве. Драйвер функции взаимодействует напрямую с устройством, записывая данные по этим адресам.

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

Читайте также: