Архитектура операционной системы UNIX   ::   Бах Морис Дж.

Страница: 498 из 715

Например, в командной строке

mknod /dev/tty13 c 2 13

"/dev/tty13" — имя файла устройства, "c" указывает, что тип файла — "символьный специальный" ("b", соответственно, блочный), "2" — старший номер устройства, "13" — младший номер устройства. Старший номер устройства показывает его тип, которому соответствует точка входа в таблице ключей устройств, младший номер устройства — это порядковый номер единицы устройства данного типа. Если процесс открывает специальный блочный файл с именем "/dev/dsk1" и кодом 0, ядро запускает программу gdopen в точке 0 таблицы ключей устройств блочного ввода-вывода (Рисунок 10.2); если процесс читает специальный символьный файл с именем "/dev/mem" и кодом 3, ядро запускает программу mmread в точке 3 таблицы ключей устройств посимвольного ввода-вывода. Программа nulldev — это "пустая" программа, используемая в тех случаях, когда отсутствует необходимость в конкретной функции драйвера. С одним старшим номером устройства может быть связано множество периферийных устройств; младший номер устройства позволяет отличить их одно от другого. Не нужно создавать специальные файлы устройств при каждой загрузке системы; их только нужно корректировать, если изменилась конфигурация системы, например, если к установленной конфигурации были добавлены устройства.

Рисунок 10.1. Точки входа для драйверов



10.1.2 Системные функции и взаимодействие с драйверами



В этом разделе рассматривается взаимодействие ядра с драйверами устройств.

|< Пред. 496 497 498 499 500 След. >|

Java книги

Контакты: [email protected]