Содержание главы

Драйверы устройств

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

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

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

При определении интерфейса драйвера разработчики ОС должны найти правильный баланс между противоречивыми требованиями:

  • стремлением максимально упростить драйвер, чтобы облегчить его разработку и (косвенно) уменьшить вероятность опасных ошибок;

  • желанием предоставить гибкий и интеллектуальный интерфейс к разнообразным устройствам.

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

Содержание главы