Chapter 21. Написание драйверов устройств для FreeBSD

Эту главу написал Мюррэй Стокели (Murray Stokely) на основе множества источников, включая справочную страницу intro(4), созданную Джоргом Вуншем (Joerg Wunsch).

21.1. Введение

Эта глава является кратким введением в процесс написания драйверов устройств для FreeBSD. В этом контексте термин устройство используется в основном для вещей, связанных с оборудованием, относящимся к системе, таких, как диски, печатающие устройства или графические дисплеи с клавиатурами. Драйвер устройства является программной компонентой операционной системы, управляющей некоторым устройством. Имеются также так называемые псевдо-устройства, в случае которых драйвер устройства эмулирует поведение устройства программно, без наличия какой-либо соответствующей аппаратуры. Драйверы устройств могут быть вкомпилированы в систему статически или могут загружаться по требованию при помощи механизма динамического компоновщика ядра `kld'.

Большинство устройств в Unix-подобной операционной системе доступны через файлы устройств (device-nodes), иногда также называемые специальными файлами. В иерархии файловой системы эти файлы обычно находятся в каталоге /dev. Пока система devfs полностью не интегрирована во FreeBSD, каждый файл устройства должен создаваться статически и вне зависимости от наличия соответствующего драйвера устройста. Большинство файлов устройств в системе создаются при помощи команды MAKEDEV.

Драйверы устройств могут быть условно разделены на две категории; драйверы символьных и сетевых устройств.