16.6. Иерархическая структура файловой системы

Файловая система является краеугольным камнем ОС UNIX. Она обеспечивает логический метод организации, восстановления и управления информацией.

Следует различать физическую файловую систему, которая отвечает за управление дисковым пространством и размещение файлов в физических адресах диска и логическую файловую систему, которая обеспечивает логическую структуру хранения файлов - пространство имен файлов. Unix может работать с различными физическими файловыми системами, но логическое представление файловой системы в Unix всегда одинаково. Мы будем файловой системой понимать логическую файловую систему.

Все файлы, с которыми могут манипулировать пользователи, располагаются в файловой системе, представляющей собой дерево, промежуточные вершины которого соответствуют каталогам, и листья - файлам и пустым каталогам. Реально на каждом логическом диске (разделе физического дискового пакета) располагается отдельная иерархия каталогов и файлов. Для получения общего дерева в динамике используется "монтирование" отдельных иерархий к фиксированной корневой файловой системе в качестве ветвей общего дерева.

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

В каждом каталоге содержатся два специальных имени, имя ".", именующее сам этот каталог, и имя "..", именующее родительский каталог данного каталога. Так, например, для структуры, показанной на следующем рисунке доступ к отмеченному на рисунке файлу из текущего каталога возможен по полному имени: /home/apalko/file2 или по относительному имени: ./../../apalko/file2