logo
Лекции_по_ОС / ТОС_11_п_вв_выв_слайды

Типы драйверов

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

три основные типа драйверов:

Символьные драйверы

работу с устройствами с устройствами с побайтовым доступом и обменом данными (модемы, терминалы, принтеры, манипуляторы мышь и т. Д).

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

Блочные драйверы

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

Драйверы низкого уровня (raw drivers)

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

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

На рис. 5.1 приведена упрощенная схема взаимодействия драйверов устройств с другими подсистемами операционной системы UNIX.

Не все драйверы служат для работы с физическими устройствам

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

примеры псевдоустройств и соответствующих программных драйверов: