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