Глава 7. Драйверы Ввода

Предыдущая  Содержание  Следующая V*D*V

Глава 7, Драйверы Ввода

В этой главе

Драйверы входных событий
 

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

Отладка
 

Где искать информацию

 

 

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

 

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

Удобный интерфейс событий для отправки пользовательским приложениям сообщений о вводе. Ваш драйвер не должен создавать и управлять узлами /dev и связанных с ними методов доступа. Вместо этого он может просто вызвать API для ввода, чтобы отправить движения мыши, нажатия клавиш или сообщения о касании вверх по направлению к пространству пользователя. Такие приложения, как X Windows, хорошо стыкуются с интерфейсами событий, экспортируемыми подсистемой ввода.
 

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

 

Функционирование подсистемы ввода иллюстрирует Рисунок 7.1. Подсистема состоит из двух классов драйверов, которые работают в тандеме: драйверы событий и драйверы устройств. Драйверы событий отвечают за взаимодействие с приложениями, в то время как драйверы устройств отвечают за низкоуровневое взаимодействие с устройствами ввода. Генератор событий мыши, mousedev, является примером первого, а драйвер мыши PS/2 является примером последнего. И драйверы событий, и драйверы устройств могут воспользоваться услугами эффективного, свободного от ошибок, годного для многократного использования ядра, которое лежит в основе подсистемы ввода.

 

 

Рисунок 7.1. Подсистема ввода.

Рисунок 7.1. Подсистема ввода.

 

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

Предыдущая  Содержание  Следующая