Граф, описывающий иерархию каталогов, может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть — если файл может входить сразу в несколько каталогов. Например, в MS-DOS и Windows каталоги образуют древовидную структуру, а в UNIX — сетевую. Каталог самого верхнего уровня называется корневым каталогом, или корнем (root).
Рисунок 2.1 – Структура файловой системы
Логическая файловая система может состоять из одной или нескольких физических файловых (под)систем, являющихся разделами физических носителей (дисков, CD-ROM или дискет).
В корне дерева находится, так называемый, корень файловой системы. Если узел дерева является листом, то это файл, который может содержать данные пользователя, либо являться файлом-каталогом. Узлы дерева отличные от листа являются файлами-каталогами.
В UNIX используются стандартные имена основных каталогов, что существенно облегчает работу в операционной системе и ее администрирование. Назначение основных каталогов файловой системы UNIX представлена в табл. (** - точки монтирования различных фс).
Таблица 2 – Содержание основных каталогов
Каталог
Назначение и содержание
/
Корневой каталог. Является основой любой файловой системы UNIX. Все остальные каталоги и файлы располагаются в рамках структуры, порожденной корневым каталогом (в нем и в его подкаталогах), независимо от их физического местонахождения. Для корневого каталога обязательно должна создаваться отдельная физическая файловая система, а сам он является точкой ее монтирования, о чем свидетельствует наличие подкаталога lost+found.
/bin
Пользовательские выполняемые программы. Сейчас обычно является символической связью, указывающей на /usr/bin.
/dev
Каталог для специальных файлов устройств. Может иметь подкаталоги для различных классов и типов устройств,
/etc
Каталог для конфигурационных файлов. Может иметь подкаталоги для различных компонентов и служб. Конфигурационные файлы в UNIX - обычные текстовые.
**
/home
Каталог для размещения начальных каталогов пользователей. Часто является точкой монтирования отдельной физической файловой системы.
/lib
Каталог для библиотек. Сейчас обычно является символической связью, указывающей на /usr/lib.
/lost+found
Каталог для сбойных файлов
Подкаталог, имеющийся в каждом каталоге, являющемся точкой монтирования физической файловой системы на диске.
**
/mnt
Точка монтирования для файловых систем на съемных носителях или дополнительных дисках. Может содержать подкаталоги для отдельных типов носителей, например, cdrom или floppy. Может быть пустым.
/opt
Каталог для дополнительного коммерческого программного обеспечения. Может быть пустым или отсутствовать (в BSD-системах).
**
/proc
Каталог псевдо-файловой системы, представляющей в виде каталогов и файлов информацию о ядре, памяти и процессах, работающих в системе.
/sbin
Каталог для системных выполняемых программ, необходимых для решения задач системного администрирования.
**
/tmp
Каталог для временных файлов. Имеет установленный stiky-бит и доступен для записи и чтения всем пользователям. Обычно создается в виде отдельной физической файловой системы, в том числе, в виртуальной памяти.
**
/usr
В этом каталоге находятся выполняемые программы, библиотеки, заголовочные файлы, справочные руководства (/usr/share/man), исходные тексты ядра и утилит системы (Linux), растущие файлы и очереди печати (/usr/spool в BSD-системах) и т.д. Часто каталог является точкой монтирования отдельной физической файловой системы. Ниже представлены основные его подкаталоги.
/usr/bin
Основные выполняемые программы и утилиты.
/usr/include
Заголовочные файлы библиотек. Может содержать подкаталоги.
/usr/lib
Статически и динамически компонуемые библиотеки. Может содержать подкаталоги.
/usr/local
Каталог для дополнительного свободно распространяемого программного обеспечения (GNU). Содержит структуру подкаталогов, аналогичную корневому каталогу (bin, etc, include, lib и т.д.).
**
/var
Хранения растущие файлы различных сервисных подсистем, например, файлов журналов системы. Так, основной журнал системы, ведущийся демоном syslogd, размещается в виде нескольких файлов в подкаталоге /var/adm. Там же, в файле /var/adm/messages, сохраняются сообщения времени загрузки. Имеет смысл создавать отдельную физическую файловую систему для размещения этого каталога (и, возможно, его подкаталога /var/run).