FHS: Структура и назначение каталогов Unix-подобных ОС

unix-logo Разработка стандарта FHS (Filesystem Hierarchy Standard, иерархии файловой системы) была начата в августе 1993 года с попыток привести в порядок архитектуру каталогов и файлов в ОС GNU/Linux. 14 февраля 1994 года вышла первая версия стандарта именуемая как Filesystem Standard (FSSTND, стандарт файловой системы), свойственной для операционной системы GNU/Linux. Дальнейшие версии вышли в свет 9 октября 1994 года и 28 марта 1995 года.

С начала 1996 года к разработке новой версии FSSTND примкнула ассоциация разработчиков BSD, целью которой было изобрести стандарт, пригодный для всех unix-подобных ОС. Именно тогда название стандарта поменяли на FHS (Filesystem Hierarchy Standard, иерархии файловой системы).

Разработкой FHS занимается некоммерческое учреждение Free Standards Group, в состав которого входят такие большие разработчики аппаратного и программного обеспечения, как Red Hat, HP, Dell и IBM. Впрочем главная часть разработчиков Linux дистрибутивов, включая тех, кто входит и в состав FSG (Free Standards Group), не придерживаются стандарта на полные 100%. К примеру, такие пути как /srv, которые специально были созданы группой, почти нигде и никем не используются. Кое-кто из разработчиков Linux-систем и вовсе отвергает стандарт FHS и следует своему собственному, к примеру, GoboLinux.

Так как разработка стандарта FHS началась с предложения Linux-сообщества, иные разработчики UNIX и UNIX-like операционных систем всецело игнорируют его в пользу своих стандартов, которые время от времени получают довольно широкое распространение. К примеру, Mac OS X (макось:) совместно с традиционными именами UNIX-иерархии использует имена директорий такие, как /applications/, /library/ и /users/.

Каталоги и точки монтирования

В ОС семейства Windows каждому разделу диска назначается определённая буква (С: для системного (корневого) раздела), а в UNIX-like ОС вместо букв разделам назначаются так называемые точки монтирования, где / является корневой точкой монтирования (файловой системой). Обычно, когда говорят «точка монтирования» подразумевают «каталог» (директория).

Все файловые системы (устройства, разделы) и назначенные им точки монтирования указаны в файле /etc/fstab, в формате:

# <file system> <mount point>   <type>  <options>       <dump>  <pass> 
 
/dev/XXX         /             ext3    defaults                 0    1
/dev/XXX         /boot         ext3    ro,nosuid,nodev          0    2
 
/dev/XXX         none          swap    sw                       0    0
 
/dev/fd0         /media/floppy auto    noauto,rw,sync,user,exec 0    0
/dev/cdrom       /media/cdrom  iso9660 noauto,ro,user,exec      0    0
 
/dev/XXX         /tmp          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /var          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /usr          ext3    rw,nodev                 0    2
/dev/XXX         /home         ext3    rw,nosuid,nodev          0    2

В первой колонке указано монтируемое устройство, а поэтому называть его «файловая система» немного не корректно, но поскольку оно содержит в себе и некую файловую систему, то говоря «устройство» (раздел, или даже каталог например /usr или /var) мы будем подразумевать «файловая система» и наоборот.

В системе в обязательном порядке существует как минимум одна точка монтирования, корневая (системная) / - это если в ходе установки ОС был выбран вариант установки с использованием всего доступного пространства без автоматического или ручного разбиения/деления диска на разделы. Однако такой подход крайне не рекомендуется, ибо риск повреждения корневой файловой системы / в этом случае сильно возрастает.

Отдельными точками монтирования, на отдельных устройствах/разделах/файловых системах, могут быть /home, /opt, /tmp, /usr, /var (ещё и /boot, но нежелательно), остальные файлы и директории должны быть представлены в корневой файловой системе /

Структура и назначение каталогов Unix-подобных файловых систем

Согласно стандарта FHS все каталоги и файлы расположены в середине корневого каталога / (точка монтирования), даже в том случае если они размещены на разных физических накопителях. Впрочем стоит отметить, что кое-какие из каталогов могут быть в системе лишь в том случае, если конкретное ПО было установлено, - к примеру X Window System, которая, в отличии от рабочих станций, может не устанавливаться на серверах, а следовательно директория /usr/X11R6 не будет представлена в системе.

Домашние каталоги обычных пользователей расположены в директории /home, которая может быть расположена на отдельном физическом носителе, а домашний каталог суперюзера root расположен в /root, а не в /home/root, ибо учётная запись суперюзера предназначается только для выполнения административных задач и её хранение на иных физических носителях не предусмотрено ибо /root, как правило, должен располагаться на том же разделе, на котором расположена и система, что даёт возможность настраивать и обслуживать операционную систему смонтировав только корневой / раздел.

Если для каталогов /home, /opt, /tmp, /usr, /var не отведён отдельный раздел и не назначена соответствующая точка монтирования, то они будут представлены в корневой файловой системе обычными директориями, а не файловыми системами с определёнными точками монтирования /home, /opt, /tmp, /usr и /var (ака буква диска в Windows).

ОПИСАНИЕ ДИРЕКТОРИЙ СТАНДАРТА FHS 2.3

ДИРЕКТОРИЯ

ОПИСАНИЕ

/

Корневая файловая система, является основной точкой монтирования в которую входят все остальные. Включает в себя утилиты, библиотеки, настройки, информацию загрузчика, и другие необходимые стартовые данные. /home/, /opt/, /tmp/, /usr/, /var/ разработаны таким образом, что они могут быть расположены на других физических накопителях или файловых системах. В корневой файловой системе рекомендуется держать только основные системные файлы и каталоги, а под остальные директории отводить отдельные разделы либо физические накопители. Под корневую файловую систему обычно с головой хватает 256-512 МБ.

    /bin/

/bin/ содержит команды, которые могут быть использованы как системным администратором так и обычным пользователем, но которые необходимы по умолчанию, например когда никакие другие файловые системы не смонтированы (к примеру, в однопользовательском режиме). Также может содержать символические ссылки на другие программы или сценарии. Должен быть представлен в корневой файловой системе /

    /boot/

Этот каталог содержит всё необходимое для процесса загрузки, кроме конфигурационных файлов. К примеру временный виртуальный диск (initrd.img-х.х.х-х-ххх-pae), содержащий корневую файловую систему (по всей видимости, тоже временную), с помощью которой осуществляется запуск на выполнение ядра операционной системы. Таким образом, директория /boot/ содержит данные, которые используются в ходе загрузки прежде чем реальное ядро начнёт выполнение программ в пользовательском режиме. Этот каталог может включать в себя данные о главных загрузочных секторах и файлы карт секторов. Если, что крайне не рекомендуется, под этот каталог отведён отдельный раздел, то он по идее должен поместиться на первых 1024 цилиндрах диска. Однако рекомендуется размещать его в корневой файловой системе /

    /dev/

Файлы устройств или просто устройства системы. К примеру, физические устройства такие, как sata винчестер /dev/sda или TV-тюнер /dev/video или такие псевдоустройства, как например «чёрные дыры» /dev/zero и /dev/null.

    /etc/

С давних пор содержит общесистемные конфигурационные файлы, которые обычно лежат в корне этой директории, а также файлы конфигурации дополнительно установленных программ. etc. — от сокращения латинского выражения «et cetera», которое дословно означает «и тому подобное», «и другие», «и так далее». Обычно такое сокращение ставится в конце неполного перечисления.

    /lib/

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

    /media/

Каталог с точками монтирования сменных носителей, таких как DVD-ROM, CD-ROM, flash диски.

    /mnt/

Предназначен для временно монтируемых файловых систем и не должен использоваться для установки программ или хранения каких-либо файлов.

    /opt/

Каталог для дополнительного программного обеспечения, которое не входит в официальные репозитории дистрибутива, /opt/<package> или /opt/<provider> - к примеру Eset, /opt/eset/. Конфигурационные файлы ПО установленного в /opt должны быть размещены в /etc/opt/<package>, изменяемые файлы в /var/opt/<package>. «System V Application Binary Interface [AT&T 1990]» и «Intel Binary Compatibility Standard v. 2 (iBCS2)» также поддерживают в своих системах подобную структуру каталога /opt/

    /proc/

Виртуальная файловая система, представляющая состояние ядра операционной системы и запущенных процессов в виде каталогов файлов.

    /root/

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

    /sbin/

Системные утилиты предназначенные для настройки и администрирования системы, к примеру, iptables, init, ifconfig

    /srv/

Точное и чёткое предназначение данного каталога и его поддиректорий толком не определены. Согласно описанию текущей спецификации в этом каталоге могут быть общедоступные файлы различных сервисов.

    /tmp/

Каталог для временных файлов.

    /usr/

Содержит большинство пользовательских утилит и приложений, которые используются в многопользовательском режиме. Можно смонтировать по сети в режиме только чтения и сделать общей для нескольких компьютеров.

    /var/

Предназначен для изменяемых файлов, таких как журнальные файлы (log-файлы), файлы спулеров, временные почтовые файлы.

Более подробнее о стандарте FHS 2.3: http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html

ОПИСАНИЕ ДИРЕКТОРИЙ СТАНДАРТА FHS 3

ДИРЕКТОРИЯ

ОПИСАНИЕ

...

Стандарт FHS 3 находится в разработке...

Дополнительные ссылки:

Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора

Добавить комментарий


Защитный код
Обновить

4 megabytes