Всякий файл ОС UNIX в соответствии с его типом может быть отнесен к одной из следующих групп: обычные файлы, каталоги, специальные файлы и каналы.
Обычный файл представляет собой последовательность байтов. Никаких ограничений на файл системой не накладывается, и никакого смысла не приписывается его содержимому: смысл байтов зависит исключительно от программ, обрабатывающих файл.
Каталог – это файл особого типа, отличающийся от обычного файла наличием структуры и ограничением по записи: осуществить запись в каталог может только ядро ОС UNIX. Каталог устанавливает соответствие между файлами (точнее, номерами описателей) и их локальными именами. Пример каталога для файловой системы ОС UNIX System V – Рис.2 (2 байта – номера описателей, 14 байтов – локальные имена).
Номер описателя | Имя файла |
. | |
.. | |
bin | |
text.txt | |
cross.c | |
move.o |
Рис.2. Пример каталога UNIX System V
Номер описателя, соответствующий имени ".", – это ссылка на файл, в котором содержится информация о самом каталоге. Номер описателя, соответствующий имени "..", – это ссылка на родительский каталог текущего каталога. Номер описателя равный 0 означает, что ссылка на соответствующий файл удалена из каталога и эта запись каталога считается свободной.
|
|
Совокупность всех каталогов специфицирует структуру файловой системы в целом.
Специальный файл – это файл, поставленный в соответствие некоторому внешнему устройству и имеющий специальную структуру. Его нельзя использовать для хранения данных как обычный файл или каталог, но над ним можно производить те же операции, что и над любым другим. При этом ввод/вывод информации в этот файл будет соответствовать вводу с внешнего устройства или выводу на него.
Канал – это программное средство, связывающее процессы ОС UNIX буфером ввода/вывода (см. лаб. работу №1).