Статус | Опубликован |
---|---|
Год начала | 14 февраля 1994 г.; 26 лет назад (1994-02-14) |
Последняя версия | 3.0. 3 июня 2015 г.; 5 лет назад (03.06.2015) |
Организация | Linux Foundation |
Домен | Структура каталогов |
Аббревиатура | FHS |
Веб-сайт | Официальный веб-сайт. Официальный веб-сайт (исторический) |
Стандарт иерархии файловой системы (FHS ) определяет структуру каталогов и содержимое каталогов в дистрибутивах Linux. Он поддерживается Linux Foundation. Последняя версия 3.0 выпущена 3 июня 2015 года.
В FHS все файлы и каталоги отображаются в корневом каталоге /
, даже если они хранятся на разных физических или виртуальных устройствах. Некоторые из этих каталогов существуют только в определенной системе, если установлены определенные подсистемы, такие как X Window System.
Большинство этих каталогов существует во всех Unix-подобных операционных системах и обычно используются во многом одинаково; однако приведенные здесь описания используются специально для FHS и не считаются авторитетными для платформ, отличных от Linux.
Каталог | Описание |
---|---|
| Корень первичной иерархии и корневой каталог всей иерархии файловой системы. |
| Основные команды двоичные файлы, которые должны быть доступны в однопользовательском режиме ; для всех пользователей, например, cat, ls, cp. |
Файлы загрузчика, например, ядра, initrd. | |
Файлы устройств, например, / dev / null , / dev / disk0 , / dev / sda1 , / dev / tty , / dev / random . | |
| Специфичные для хоста системные файлы конфигурации. Существуют разногласия по поводу значения самого имени. В ранних версиях документа о реализации UNIX от Bell labs, |
| Файлы конфигурации для дополнительных пакетов, которые хранятся в / opt . |
| Файлы конфигурации, например каталоги, для программного обеспечения, обрабатывающего SGML. |
| Файлы конфигурации для X Window System, версия 11. |
| Файлы конфигурации, такие как каталоги, для программного обеспечения, которое обрабатывает XML. |
| пользовательские домашние каталоги, содержащие сохраненные файлы, личные настройки и т. д. |
| Библиотеки необходимы для двоичных файлов в / bin и / sbin . |
| Необходимые библиотеки альтернативного формата. Обычно они используются в системах, которые поддерживают более одного формата исполняемого кода, например в системах, поддерживающих 32-битные и 64-битные версии набора команд. Такие каталоги необязательны, но если они существуют, к ним предъявляются некоторые требования. |
| Точки монтирования для съемных носителей, таких как CD-ROM (появились в FHS-2.3 в 2004 году). |
| Временно смонтированные файловые системы. |
| Дополнительное прикладное программное обеспечение пакеты. |
Виртуальная файловая система, обеспечивающая процесс и ядро информация в виде файлов. В Linux соответствует монтированию procfs. Обычно автоматически генерируется и заполняется системой на лету. | |
| Домашний каталог для пользователя root. |
| Данные переменных времени выполнения: информация о запущенной системе с момента последней загрузки, например, пользователи, вошедшие в систему в данный момент, и запущенные демоны. Файлы в этом каталоге должны быть удалены или усечены в начале процесса загрузки, но это не обязательно в системах, которые предоставляют этот каталог в качестве временной файловой системы (tmpfs ). |
| Основные системные двоичные файлы, например, fsck, init, route. |
| Данные сайта, обслуживаемые этой системой, такие как данные и сценарии для веб-серверов, данные, предлагаемые серверами FTP, и репозитории для систем управления версиями (появились в FHS-2.3 в 2004 году). |
| Содержит информацию об устройствах, драйверах и некоторых функциях ядра. |
| Каталог временных файлов (см. Также / var / tmp ). Часто не сохраняется между перезагрузками системы и может быть сильно ограничен по размеру. |
| Вторичная иерархия для пользовательских данных, доступных только для чтения; содержит большинство (много- ) пользовательских утилит и приложений. Должен быть доступен только для чтения и общего доступа. |
| Несущественная команда двоичные файлы (не требуется в однопользовательском режиме ); для всех пользователей. |
| Стандартные включаемые файлы. |
| Библиотеки для двоичных файлов в / usr / bin и / usr / sbin . |
| Библиотеки альтернативного формата, например / usr / lib32 для 32-битных библиотек на 64-битной машине (необязательно). |
| Третичная иерархия для локальных данных, специфичная для этого хоста. Обычно имеет дополнительные подкаталоги, например, bin , lib , share . |
| Несущественные системные двоичные файлы, например, daemons для различных сетевых служб. |
| Архитектурно-независимые (общие) данные. |
| Исходный код, например, исходный код ядра с его заголовочными файлами. |
| X Window System, версия 11, выпуск 6 (до FHS-2.3, необязательно). |
| Файлы с переменными: файлы, содержимое которых, как ожидается, будет постоянно меняться во время нормальной работы системы, например журналы, файлы буферизации и временные файлы электронной почты. |
| Данные кеша приложения. Такие данные генерируются локально в результате длительных операций ввода-вывода или вычислений. Приложение должно иметь возможность регенерировать или восстанавливать данные. Кешированные файлы можно удалить без потери данных. |
| Информация о состоянии. Постоянные данные, изменяемые программами при запуске, например, базы данных, метаданные системы упаковки и т. Д. |
| Блокировать файлы. Файлы, отслеживающие используемые в данный момент ресурсы. |
| Файлы журнала. Различные журналы. |
| Файлы почтового ящика. В некоторых дистрибутивах эти файлы могут находиться в устаревшем / var / spool / mail . |
| . Переменные данные из дополнительных пакетов, которые хранятся в / opt . |
| Данные переменных времени выполнения. Этот каталог содержит данные системной информации, описывающие систему с момента ее загрузки.. В FHS 3.0 |
| Спул для задач, ожидающих обработки, например, очереди печати и очередь исходящей почты. |
| Устарело расположение почтовых ящиков пользователей. |
| Временные файлы, которые должны сохраняться между перезагрузками. |
Большинство дистрибутивов Linux следуют Стандарту иерархии файловой системы и декларируют его собственную политику для поддержания соответствия FHS. GoboLinux и NixOS предоставить примеры намеренно несовместимых реализаций файловых систем.
Некоторые дистрибутивы обычно следуют стандарту, но в некоторых областях от него отклоняются. FHS - это «конечный стандарт», который документирует общепринятые практики на определенный момент времени. Конечно, времена меняются, и цели и потребности распространения требуют экспериментов. Некоторые общие отклонения включают:
/ sys
в качестве виртуальной файловой системы (sysfs, сопоставимо с / proc
, который является procfs ), который хранит и позволяет изменять устройства, подключенные к системе, тогда как многие традиционные Unix-подобные операционные системы используют / sys
как символическая ссылка на дерево исходных текстов ядра ./ usr / local
, сохраняя код, считающийся частью операционной системы, в / usr
./ lib
и / usr / lib
и имеют символическую ссылку / lib
на / usr / lib
./ bin
и / usr / bin
и между / sbin
и / usr / sbin
. Они могут создавать символические ссылки / bin
на / usr / bin
и / sbin
на / usr / sbin
. Другие дистрибутивы решили объединить все четыре, привязав их к / usr / bin
.. Современные дистрибутивы Linux включают каталог / run
в качестве временной файловой системы (tmpfs ), в котором хранятся энергозависимые данные времени выполнения, соответствующие FHS версии 3.0. Согласно версии 2.3 FHS, такие данные хранились в / var / run
, но в некоторых случаях это было проблемой, поскольку этот каталог не всегда доступен при ранней загрузке. В результате этим программам пришлось прибегнуть к уловкам, например с использованием /dev/.udev
, /dev/.mdadm
, /dev/.systemd
или /dev/.mount
, даже если каталог устройства не предназначен для таких данных. Среди других преимуществ это упрощает использование системы в обычном режиме с корневой файловой системой, смонтированной только для чтения. Например, ниже приведены изменения Debian, внесенные в его выпуск Wheezy 2013 года:
/dev/.*
→ / run / *
/ dev / shm
→ / run / shm
/ dev / shm / *
→ / run / *
/ etc / *
(файлы с возможностью записи) → / run / *
/ lib / init / rw
→ / run
/ var / lock
→ / run / lock
/ var / run
→ / run
/ tmp
→ / run / tmp
FHS был создан как FSSTND (сокращение от «Стандарт файловой системы»), в значительной степени основанный на аналогичных стандартах для других Unix-подобные операционные системы. Примечательные примеры: hier (7) описание структуры файловой системы, существовавшее с момента выпуска версии 7 Unix (в 1979 году); файловая система SunOS (7) и ее преемник, Solaris filesystem(5).
Версия | Дата выпуска | Примечания |
---|---|---|
Старая версия, больше не поддерживается: 1.0 | 14.02.1994 | FSSTND |
Старая версия, больше не поддерживается : 1.1 | 1994-10-09 | FSSTND |
Старая версия, больше не поддерживается: 1.2 | 1995-03-28 | FSSTND |
Старая версия, больше не поддерживается: 2.0 | 26.10.1997 | FHS 2.0 является прямым преемником FSSTND 1.2. Название стандарта было изменено на Стандарт иерархии файловой системы. |
Старая версия, больше не поддерживается: 2.1 | 2000-04-12 | FHS |
Старая версия, больше не поддерживается: 2.2 | 23.05.2001 | FHS |
Старая версия, но все еще поддерживается: 2.3 | 2004-01-29 | FHS |
Текущая стабильная версия: 3.0 | 18.05.2015 | FHS |
Обозначения: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущий выпуск |
hier (7)
– Linux Progr Руководство ammer - Обзор, условные обозначения и прочее