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

archive view archive save

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 находится в разработке...

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


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

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

АХТУНГ! Все комменты гостей модерасятся модерастом.
  1. Мессаги исключительно рекламного содержания, либо содержащие только одни оценочные суждения типа "круто" ("отлично", "спасибо", "автор дебил" и т.п.) не публикуются;
  2. Злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах!;
  3. Разумная обоснованная критика, замечания, дополнения приветствуются. Поля помеченные символом * обязательны к заполнению.


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

Нет комментариев

Вы можете стать первым, кто добавит комментарий к этой записи.

Комментарии в блоге
Новое на форуме