10
Информация в любой ОС хранится на носителях в виде файлов. Файлы
группируются в каталоги, которые, в свою очередь,
могут быть включены в
другие каталоги. В результате получается иерархическая структура каталогов,
начинающаяся с корневого каталога. Каждый (под)каталог может содержать как
отдельные файлы, так и подкаталоги.
Иерархическую структуру каталогов обычно иллюстрируют рисунком
"дерева каталогов", в котором каждый каталог изображается узлом "дерева", а
файлы — "листьями". В MS Windows или DOS каталоговая структура строится
отдельно для каждого физического носителя (т. е., имеем не отдельное "дерево",
а целый "лес") и корневой каталог каждой каталоговой структуры обозначается
какой-нибудь буквой латинского алфавита (отсюда уже возникает некоторое
ограничение). В Linux (и UNIX вообще) строится единая каталоговая структура
для всех носителей, и единственный корневой каталог этой структуры
обозначается символом "/". В эту единую каталоговую структуру можно
подключить любое число каталогов, физически
расположенных на разных
носителях (как говорят, "смонтировать файловую систему" или "смонтировать
носитель").
Имена каталогов строятся по тем же правилам, что и имена файлов. И,
вообще, каталоги в принципе ничем, кроме своей внутренней структуры (до
которой ОС уже есть дело) не отличаются от "обычных" файлов, например,
текстовых.
Полным именем файла (или путем к файлу) называется список имен
вложенных друг в друга подкаталогов, начинающийся с корневого каталога и
оканчивающийся собственно именем файла. При этом имена подкаталогов в
этом списке разделяются тем же символом "/", который служит для обозначения
корневого каталога.
В каждый момент времени пользователь работает с
одним экземпляром
оболочки shell и эта оболочка хранит значение так называемого "текущего"
каталога, т. е. того каталога, в котором пользователь сейчас работает. Имеется
специальная команда, которая сообщает вам значение текущего каталога —
pwd.
В Linux типовая структура каталогов выдерживается, пожалуй, даже
более строго, чем в Windows. Более того, существует даже стандарт на
структуру каталогов для UNIX-подобных ОС, так называемый Filesystem
Hierarchy Standart (FHS).
Стандарт FHS предлагает создать в
корневом каталоге следующие
подкаталоги:
bin - Этот каталог содержит в основном готовые к исполнению
программы, большинство из которых необходимы во время старта системы (или
в однопользовательском системном режиме, используемом для отладки). Здесь
хранится значительное количество общеупотребительных команд Linux .
boot - неизменяемые файлы, необходимые для загрузки системы;
dev - файлы устройств;
etc -этот каталог и его подкаталоги содержат большинство данных,
необходимых для начальной загрузки системы и основные конфигурационные
11
файлы. В /etc находятся, например, файл inittab,
определяющий загружаемую
конфигурацию,
и
файл
паролей
пользователей
passwd.
Часть
конфигурационных файлов может находится и в /usr/etc. Каталог /etc не должен
содержать двоичных файлов (их следует перенести в /bin или /sbin)
home - домашние каталоги пользователей;
lib - основные разделяемые библиотеки и модули ядра; Этот каталог
содержит разделяемые библиотеки функций, необходимых компилятору языка
C и модули (драйверы устройств). Даже если в системе не установлен
компилятор языка C, разделяемые библиотеки необходимы,
поскольку они
используются многими прикладными программами. Они загружаются в память
по мере необходимости выполнения каких-то функций, что позволяет
уменьшить объем кода программ — в противном случае один и тот же код
многократно повторялся бы в различных программах;
mnt - это точка монтирования для временно монтируемых файловых
систем. Если на компьютере запускается поочередно Linux и MS DOS, то этот
каталог обычно используется, чтобы монтировать файловую систему MS DOS.
Если вы имеете привычку монтировать несколько дополнительных носителей,
например, дискеты, CD-ROM, дополнительный жесткий диск и т. д., то можно
создать в нем соответственно дополнительные подкаталоги для каждого
носителя;
root - домашний каталог пользователя
суперпользователя root;
opt - дополнительные пакеты программного обеспечения;
sbin - основные системные исполняемые файлы;
tmp - временные файлы;
usr - Этот каталог огромен и его структура в основном повторяет
структуру корневого каталога. В его подкаталогах находятся все основные
приложения. В соответствии со стандартом FHS рекомендуется выделять для
этого каталога отдельный раздел диска или вообще располагать его на сетевом
диске, общем для всех компьютеров в сети. Такой раздел или диск монтируют
только для чтения и располагают в нем общие конфигурационные и
исполняемые файлы, документацию, системные утилиты и библиотеки, а также
включаемые файлы (файлы типа include);
var - переменные данные.
В соответствии с требованиями стандарта приложения не должны
создавать файлы и каталоги или требовать наличия каких-то специальных
файлов и каталогов (помимо перечисленных) в корневом каталоге. Во-первых,
размер корневой файловой системы желательно
сохранять по возможности
малым, а во-вторых, стандарт FHS обеспечивает достаточную гибкость и
удобство размещения файлов, не попавших в корневую систему, в других
файловых системах и подкаталогах. Некоторые подкаталоги корневого каталога
факультативны. Но уж если они существуют, то должны размещаться в
корневом каталоге, но не обязательно в корневой файловой системе.