Файловая система в UNIX никогда не была хорошо организована. Поскольку не существует единой системы присвоения имен, одновременно используется много разных, не согласованных между собой правил именования файлов. Во многих случаях файлы группируются по выполняемым функциям, независимо от того, как часто они изменяются. Это затрудняет модификацию операционной системы. Например, каталог /etc содержит файлы, которые никогда не меняются, а также полностью локальные файлы.
Такие нововведения, как каталог /var, помогли справиться с рядом проблем, но файлы большинства систем все еще не упорядочены. Тем не менее, для всего находится свое место. Большинство UNIX-программ можно инсталлировать с минимальными усилиями в плане переконфигурирования системы, если ее настроили стандартным способом. Однако попытка улучшить структуру, задаваемую по умолчанию, может привести к неприятностям.
Корневая файловая система включает в себя корневой каталог и минимальный набор файлов и подкаталогов. В ней располагается ядро, которое обычно носит имя /unix или /vmunix. Этот файл может быть дополнительно скрыт в подкаталоге /kernel или /stand. Корневая файловая система также содержит каталог /dev для файлов устройств, каталог /etc для системных конфигурационных файлов, каталоги /sbin и /bin для важнейших утилит и иногда каталог /tmp для временных файлов.
В некоторых системах совместно используемые библиотечные файлы, а также файлы препроцессора языка С хранятся в каталоге /lib. В других системах этой же цели служит каталог /usr/lib, а каталог /lib является символической ссылкой.
Очень большое значение имеют также каталоги /usr и /var. В первом хранится большинство стандартных программ и другие полезные компоненты, например электронная документация. Совсем не обязательно, чтобы каталог /usr был отдельной файловой системой, однако для удобства администрирования его, как правило, создают именно так.
В каталоге /var содержатся буферные каталоги, файлы регистрации, учетная информация и прочие компоненты, которые быстро разрастаются и изменяются. Каждый компьютер имеет свой список таких компонентов. Каталоги /usr и /var должны существовать, чтобы система могла загрузиться в многопользовательском режиме.
Большая часть содержимого каталога /var первоначально находилась в каталоге /usr. В своей системе вы, вероятно, еще обнаружите соответствующие символические ссылки, являющиеся остатками прежней эпохи.
Начальные каталоги пользователей следует держать в отдельной файловой системе, которая обычно монтируется в корневом каталоге, а иногда — в каталоге /usr. Некоторые файловые системы можно использовать и для хранения больших информационных массивов, например библиотек исходных текстов программ и баз данных.
Наиболее важные стандартные каталоги перечислены в табл. 5.1.
Таблица 5.1. Стандартные каталоги и их содержимое
|
Путевое имя
|
Содержимое
|
|
/bin или /sbin
|
Команды, необходимые для обеспечения минимального уровня работоспособности системы1
|
|
/dev
|
Файлы устройств: терминалов, дисков, модемов и т.д.
|
|
/etc
|
Важные файлы запуска и конфигурации
|
|
/lib
|
Библиотеки компилятора языка С
|
|
/tmp
|
Временные файлы, удаляемые в процессе перезагрузки
|
|
/sys
|
Рабочая область для построения ядра, файлы конфигурации (BSD)
|
|
/ргос
|
Образы всех работающих процессов (в некоторых новых системах)
|
|
/stand
|
Автономные утилиты, программы форматирования дисков и др.
|
|
/usr/bin
|
Исполняемые файлы
|
|
/usr/games
|
Игровые и развлекательные программы (большей частью не очень веселые)
|
|
/usr/include
|
Файлы заголовков С-программ
|
|
/usr/5bin
|
Команды, обеспечивающие совместимость с ядром System V в BSD-системах
|
|
/usr/sbin
|
Служебные системные команды
|
|
/usr/lib
|
Вспомогательные файлы для стандартных UNIX-программ
|
|
/usr/man
|
Страницы электронных руководств
|
|
/usr/share
|
Элементы, общие для различных систем (часто сюда входят страницы электронной документации)
|
|
/var/adm
|
Учетные файлы, журналы использования ресурсов
|
|
/var/log
|
Различные системные журнальные файлы (в некоторых системах)
|
|
/var/spool
|
Буферные каталоги для принтеров, UUCP, электронной почты и т.д.
|
|
/var/tmp
|
Каталог для временного хранения файлов (после перезагрузки файлы не исчезают)
|
|
/usr/ucb
|
Утилиты и программы BSD
|
|
/usr/local
|
Локальное программное обеспечение (все, что инсталлируется пользователями)
|
|
/usr/local/adm
|
Локальные учетные файлы и файлы регистрации
|
|
/usr/local/bin
|
Локальные исполняемые файлы
|
|
/usr/local/etc
|
Локальные системные команды и файлы конфигурации
|
|
/usr/local/lib
|
Локальные вспомогательные файлы
|
|
/usr/local/sbin
|
Локальные служебные системные команды
|
|
/usr/local/src
|
Исходные тексты для программ каталогов /usr/local/*
|
|
/kernel
|
Файлы, необходимые для загрузки ядра (в Solaris)
|
1 Если есть каталог /sbin, то каталог /bin обычно представляет собой символическую ссылку на каталог /usr/bin.