Дерево каталогов
Особенностью операционных систем семейства 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 размещаются системные журналы.