Системное программирование в UNIX средствами Free Pascal


Файлы блочных и символьных устройств


Файлы устройств UNIX разбиваются на две категории: блочные устройства (block devices) и символьные устройства (character devices):

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

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

Важно заметить, что файловые системы могут находиться только на блочных устройствах, и блочные устройства имеют связанные с ними символьные устройства для быстрого и простого доступа, которые называются устройствами прямого доступа (raw device). Утилиты mkfs и fsck используют интерфейс прямого доступа.

ОС UNIX использует две конфигурационные таблицы для связи периферийного устройства с кодом его управления, эти таблицы называются таблицей блочных устройств (block device switch) и таблицей символьных устройств (character device switch). Обе таблицы проиндексированы при помощи значения старшего номера устройства (major device number), который записан в номере индексного дескриптора файла устройства. Последовательность передачи данных к периферийному устройству и от него выглядит так:

1.      Системные вызовы fdread или fdwrite обращаются к индексному дескриптору файла устройства обычным способом.




- Начало -  - Назад -  - Вперед -



Книжный магазин