Дерево каталогов

Особенностью операционных систем семейства UNIX является объединение файловой системы в единое дерево для любого количества носителей данных с одинаковыми или разными типами файловых систем на них. Это достигается путем операции монтирования — временной подстановкой вместо каталога одной файловой системы дерева другой файловой системы. В результате вместо нескольких, изначально никак не связанных друг с другом деревьев образуется большое разветвленное дерево с единым корневым каталогом.

Использование общепринятых имен основных файлов и структуры каталогов существенно облегчает работу в операционной системе, её администрирование и переносимость. Приведем краткое описание основных каталогов системы, формально описываемых специальным стандартом на иерархию файловой системы (Filesystem Hierarchy Standart). Стандарт регулирует не только и не столько имена основных каталогов системы, сколько типы размещаемых в них данных (исполняемые программы, библиотеки, файлы пользователя, временные системные данные и т. д.). Главный принцип, который соблюдается довольно последовательно — группировка однотипных данных в одной области файловой системы (каталоге верхнего уровня и его подкаталогах).

Например, все каталоги можно разделить на две группы: для статических (редко меняющихся) данных — /bin, /usr и для динамических (часто меняющихся) данных — /var, /tmp. Исходя из этого администраторы могут разместить каждый из этих каталогов на собственном носителе, обладающем соответствующими характеристиками: скоростью доступа, объёмом, надёжностью и т. п.

Рисунок 1.26. Стандартные каталоги в файловой системе UNIX

 

Корневой каталог

Корневой каталог / является основой любой ФС UNIX. Все остальные каталоги и файлы располагаются в рамках струтуры (дерева), порождённой корневым каталогом, независимо от их физического местонахождения.

/bin

В этом каталоге находятся часто употребляемые команды и утилиты системы общего пользования. Сюда входят все базовые команды, доступные даже в том случае, если была примонтирована только корневая файловая система. Примерами таких утилит являются: ls, cp, sh и т. п.

/boot

Каталог содержит всё необходимое для процесса загрузки операционной системы: программу-загрузчик, образ ядра операционной системы и т. п.

/dev

Каталог содержит специальные файлы устройств, при помощи которых осуществляется доступ к периферийным устройствам. Наличие такого каталога не означает, что специальные файлы устройств нельзя создавать в другом месте, просто достаточно удобно иметь один каталог для всех файлов такого типа.

/etc

В этом каталоге находятся системные конфигурационные файлы. В качестве примеров можно привести файлы /etc/fstab, содержащий список монтируемых файловых систем, и/etc/resolv.conf, который задаёт правила составления локальных DNS-запросов. Среди наиболее важных файлов — скрипты инициализации и останова системы. В системах, наследующих особенности UNIX System V, для них отведены каталоги с /etc/rc0.d по /etc/rc6.d и общий для всех файл описания — /etc/inittab.

/home (необязательно)

Каталог содержит домашние каталоги пользователей. Его наличие в корневом каталоге не обязательно, а содержимое зависит от особенностей конкретной UNIX-подобной операционной системы.

/lib

Каталог для статических и динамических библиотек, необходимых для запуска программ, находящихся в каталогах /bin и /sbin.

/media

Стандартный каталог для временного монтирования файловых систем — например, гибких и флэш-дисков, компакт-дисков и т. п.

/opt

Каталог для дополнительного программного обеспечения, устанавливаемого в системе. Обычно в этот каталог устанавливаются программы, не входящие в основной дистрибутив.

/root (необязательно)

Домашний каталог суперпользователя. Его наличие в корневом каталоге не обязательно.

/sbin

В этом каталоге находятся команды и утилиты для системного администратора. Примерами таких команд являются: route, halt, init и т. п. Для аналогичных целей применяются каталоги/usr/sbin и /usr/local/sbin.

/usr

Этот каталог повторяет структуру корневого каталога — содержит каталоги /usr/bin, /usr/lib, /usr/sbin, служащие для аналогичных целей.

Каталог /usr/include содержит заголовочные файлы языка C для всевозможных библиотек, расположенных в системе.

Каталог /usr/local — ещё один уровень, в котором можно полностью воспроизвести структуру данных, содержащуюся в корневом каталоге. Обычно этот каталог служит для размещения программ, установленных администратором в дополнение к стандартной поставке операционной системы.

Каталог /usr/share хранит неизменяющиеся данные для установленных программ. Особый интерес представляет каталог /usr/share/doc, в который добавляется документация ко всем установленным программам.

/var, /tmp

Используются для хранения временных данных системных (/var) и пользовательских (/tmp) процессов. Каталог /var обычно содержит часто изменяемые системные файлы, например в каталоге /var/log размещаются системные журналы.