Положение дел | Опубликовано |
---|---|
Год начался | 14 февраля 1994 г . |
Последняя версия | 3.0 3 июня 2015 г . |
Организация | Linux Foundation |
Домен | Структура каталогов |
Сокращение | FHS |
Интернет сайт | Официальный сайт Официальный сайт (Исторический) |
Стандарт иерархии файловой системы ( FHS ) определяет структуру каталогов и содержимого каталога в Linux распределений. [1] Поддерживается Linux Foundation . Последняя версия - 3.0, выпущенная 3 июня 2015 года. [2]
Дистрибутивы Linux (и другие операционные системы) могут частично или полностью соответствовать FHS на добровольной основе. Проект Freedesktop.org вводит переменные, чтобы сделать иерархию файловой системы настраиваемой.
Структура каталогов [ править ]
В FHS все файлы и каталоги появляются в корневом каталоге /
, даже если они хранятся на разных физических или виртуальных устройствах. Некоторые из этих каталогов существуют только в определенной системе, если установлены определенные подсистемы, такие как X Window System .
Большинство этих каталогов существуют во всех Unix-подобных операционных системах и обычно используются одинаково; однако приведенные здесь описания используются специально для FHS и не считаются авторитетными для платформ, отличных от Linux.
Каталог | Описание |
---|---|
| Корневой каталог первичной иерархии и корневой каталог всей иерархии файловой системы. |
| Основные двоичные файлы команд, которые должны быть доступны в однопользовательском режиме , в том числе для запуска системы или ее восстановления [3] для всех пользователей (например, 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 году). |
| Временно смонтированные файловые системы. |
| Дополнительные пакеты прикладного программного обеспечения . [7] |
| Виртуальная файловая система, предоставляющая информацию о процессах и ядре в виде файлов. В Linux соответствует монтированию procfs . Как правило, автоматически генерируется и заполняется системой на лету. |
| Домашний каталог для пользователя root . |
| Данные переменных времени выполнения: информация о запущенной системе с момента последней загрузки, например, пользователи, вошедшие в систему, и запущенные демоны . Файлы в этом каталоге должны быть либо удалены, либо усечены в начале процесса загрузки, но это не обязательно в системах, которые предоставляют этот каталог в качестве временной файловой системы ( tmpfs ). |
| Основные системные двоичные файлы (например, fsck , init , route ). |
| Данные сайта, обслуживаемые этой системой, такие как данные и сценарии для веб-серверов, данные, предлагаемые серверами FTP , и репозитории для систем контроля версий (появились в FHS-2.3 в 2004 году). |
| Содержит информацию об устройствах, драйверах и некоторых функциях ядра. [8] |
| Каталог для временных файлов (см. Также /var/tmp ). Часто не сохраняется между перезагрузками системы и может быть сильно ограничен по размеру. |
| Вторичная иерархия для пользовательских данных, доступных только для чтения; содержит большинство ( мульти- коммунальных услуг) пользователей и приложений. Должен быть доступен только для чтения. [9] [10] |
| Несущественные двоичные файлы команд (не нужны в однопользовательском режиме ); для всех пользователей. |
| Стандартные включаемые файлы . |
| Библиотеки для двоичных файлов в /usr/bin и /usr/sbin . |
| Библиотеки альтернативного формата (например, /usr/lib32 для 32-битных библиотек на 64-битной машине (необязательно)). |
| Третичная иерархия для локальных данных, специфичная для этого хоста. Как правило , имеет дополнительные подкаталоги (например, bin , lib , share ). [NB 1] |
| Несущественные системные двоичные файлы (например, демоны для различных сетевых служб ). |
| Независимые от архитектуры (общие) данные. |
| Исходный код (например, исходный код ядра с его заголовочными файлами). |
| X Window System , версия 11, выпуск 6 (до FHS-2.3, опционально). |
| Файлы с переменными: файлы, содержимое которых, как ожидается, будет постоянно меняться во время нормальной работы системы, например журналы, файлы буферизации и временные файлы электронной почты. |
| Данные кеша приложения. Такие данные генерируются локально в результате длительных операций ввода-вывода или вычислений. Приложение должно иметь возможность регенерировать или восстанавливать данные. Кешированные файлы можно удалить без потери данных. |
| Государственная информация. Постоянные данные, изменяемые программами по мере их выполнения (например, базы данных, метаданные системы упаковки и т. Д.). |
| Заблокируйте файлы. Файлы, отслеживающие используемые в настоящее время ресурсы. |
| Лог-файлы. Различные журналы. |
| Файлы почтового ящика. В некоторых дистрибутивах эти файлы могут находиться в устаревшем /var/spool/mail . |
| Переменные данные из дополнительных пакетов, которые хранятся в /opt . |
| Данные переменных времени выполнения. Этот каталог содержит данные системной информации, описывающие систему с момента ее загрузки. [11] В FHS 3.0 |
| Спул для задач, ожидающих обработки (например, очереди печати и очередь исходящей почты). |
| Расположение для почтовых ящиков пользователей больше не рекомендуется . [13] |
| Сохранение временных файлов между перезагрузками. |
Соответствие FHS [ править ]
Большинство дистрибутивов Linux следуют Стандарту иерархии файловой системы и декларируют его собственную политику для поддержания соответствия FHS. [14] [15] [16] [17] GoboLinux [18] и NixOS [19] предоставляют примеры намеренно несовместимых реализаций файловых систем.
Некоторые дистрибутивы обычно следуют стандарту, но в некоторых областях отклоняются от него. FHS - это «конечный стандарт», который документирует общепринятые практики на определенный момент времени. Конечно, времена меняются, и цели и потребности распространения требуют экспериментов. Некоторые общие отклонения включают:
- Распределения Современные Linux включают в себя
/sys
каталог в виде виртуальной файловой системы ( sysfs , сравнимой с/proc
, что является PROCFS ), который хранит и позволяет модификацию устройств , подключенных к системе, [20] , тогда как многие традиционные Unix-подобные операционные системы используют в/sys
качестве символической ссылка на дерево исходных текстов ядра . [21] - Многие современные Unix-подобные системы (например, FreeBSD через систему портов ) устанавливают сторонние пакеты
/usr/local
, сохраняя при этом код, который считается частью операционной системы/usr
. - Некоторые дистрибутивы Linux больше не делают различий между
/lib
и/usr/lib
и имеют/lib
символические ссылки/usr/lib
. [22] - Некоторые дистрибутивы Linux больше не делают различий между
/bin
и/usr/bin
и между/sbin
и/usr/sbin
. Они могут быть символическими ссылками/bin
на/usr/bin
и/sbin
на/usr/sbin
. Другие дистрибутивы решили объединить все четыре, установив символические ссылки на них/usr/bin
. [23]
Современные дистрибутивы Linux включают /run
каталог в качестве временной файловой системы ( tmpfs ), в которой хранятся изменчивые данные времени выполнения, следуя FHS версии 3.0. Согласно версии 2.3 FHS, такие данные хранились /var/run
, но в некоторых случаях это было проблемой, поскольку этот каталог не всегда доступен при ранней загрузке. В результате, эти программы пришлось прибегнуть к обману, например, используя /dev/.udev
, /dev/.mdadm
, /dev/.systemd
или /dev/.mount
директорий, даже если каталог устройство не предназначено для таких данных. [24] Среди других преимуществ, это упрощает использование системы в обычном режиме с корневой файловой системой, смонтированной только для чтения. Например, ниже представлены изменения, внесенные Debian в его выпуск Wheezy 2013 года:[25]
/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 (сокращение от «Стандарт файловой системы» [26] ), в значительной степени основанный на аналогичных стандартах для других Unix-подобных операционных систем. Примечательные примеры: hier (7) описание структуры файловой системы [27], которое существует с момента выпуска версии 7 Unix (в 1979 г.); SunOS файловая система (7) [28] и его преемник, Solaris , файловая система (5) . [29] [30]
История выпусков [ править ]
Версия | Дата выхода | Примечания |
---|---|---|
1.0 | 1994-02-14 | FSSTND [31] |
1.1 | 1994-10-09 | FSSTND [32] |
1.2 | 1995-03-28 | FSSTND [33] |
2.0 | 1997-10-26 | FHS 2.0 является прямым преемником FSSTND 1.2. Название стандарта было изменено на Стандарт иерархии файловой системы. [34] [35] [36] |
2.1 | 2000-04-12 | FHS [37] [38] [39] |
2.2 | 2001-05-23 | FHS [40] |
2.3 | 2004-01-29 | FHS [41] |
3.0 | 2015-05-18 | FHS [42] |
Легенда: Старая версия Старая версия, все еще поддерживается Последняя версия |
См. Также [ править ]
- Структура каталогов Unix
- Стандарт двоичной совместимости Intel (iBCS)
Заметки [ править ]
- ^ Исторически и строго в соответствии со стандартом,
/usr/local
это данные, которые должны храниться на локальном хосте (в отличие от данных/usr
, которые могут быть смонтированы по сети). Большую часть времени/usr/local
используется для установки программного обеспечения / данных, которые не являютсячастью стандартного дистрибутива операционной системы (в таком случае/usr
будут содержать только программное обеспечение / данные, которые являются частью стандартного дистрибутива операционной системы). Возможно, что в будущем стандарт FHS может быть изменен, чтобы отразить это фактическое соглашение.
Ссылки [ править ]
- ^ "Стандарт иерархии файловой системы - Debian Wiki" . wiki.debian.org . Проверено 6 июля +2016 .
- ^ «Выпущена версия FHS 3.0» . 3 июня 2015 г.
- ^ "hier (7) - страница руководства Linux" . man7.org . Проверено 6 января 2021 года .
- ^ J. DeFelicc (17 марта 1972). «E.0». Предварительный выпуск документа о реализации UNIX (PDF) . п. 8. IMO.1-1.
- ^ "/ etc: Конфигурация системы для конкретного хоста" . Стандарт иерархии файловой системы 2.3 . Проверено 18 февраля +2016 .
- ^ Определить - / etc? Автор: Клифф, 3 марта 2007 г. - Slashdot.
- ^ "/ opt: Дополнительные пакеты прикладного программного обеспечения" . Стандарт иерархии файловой системы 2.3 . Проверено 18 февраля +2016 .
- ^ "/ sys: виртуальная файловая система информации о ядре и системе" . Стандарт иерархии файловой системы 3.0 . Дата обращения 4 июня 2017 .
- ^ «Глава 4. Иерархия / usr» . Стандарт иерархии файловой системы 2.3 .
- ^ «Глава 4. Иерархия / usr, раздел 4.1. Назначение» . Стандарт иерархии файловой системы 3.0 .
- ^ "/ var / run: данные переменных времени выполнения" . Стандарт иерархии файловой системы 2.3 .
- ^ "5.13. / Var / run: данные переменных времени выполнения" . Стандарт иерархии файловой системы 3.0 .
- ^ "Стандарт файловой системы" (PDF) . Linux Foundation. п. 5.11.1.
- ^ Справочное руководство Red Hat по структуре файловой системы .
- ^ SuSE Linux Enterprise Server Administration, авторизованные Novell учебные программы, Джейсон В. Эккерт, Novell; Курс «Технология», 2006 г .; ISBN 1-4188-3731-8 , ISBN 978-1-4188-3731-0 .
- ^ Политика Debian в отношении соответствия FHS .
- ^ Обзор дерева файловой системы Ubuntu Linux - Документация сообщества Ubuntu.
- ↑ Хишам Мухаммад (9 мая 2003 г.). «Переосмысление дерева Unix: введение в GoboLinux» . Проверено 4 октября 2016 года .
- ^ Dolstra, E .; Лё, А. (сентябрь 2008 г.). NixOS: чисто функциональный дистрибутив Linux (PDF) . ICFP 2008: 13-я Международная конференция ACM SIGPLAN по функциональному программированию . Виктория, Британская Колумбия, Канада. С. 367–378.
- ^ «5.3 О виртуальной файловой системе / sys» . docs.oracle.com . Oracle. Архивировано из оригинала 8 июля 2016 года . Проверено 8 июля +2016 .
- ^ Lehey, Грег (май 2003). Полная FreeBSD: Документация из исходных текстов (Четвертое изд.). O'Reilly Media, Incorporated. стр. 188, 609. ISBN 9780596005160. Проверено 8 июля +2016 .
- ^ Аллан МакРэй. «Arch Linux - Новости: каталог / lib становится символической ссылкой» . archlinux.org . Архивировано 9 сентября 2014 года . Проверено 14 декабря 2019 .
- ^ Аллан МакРэй. «Arch Linux - Новости: двоичные файлы перемещаются в / usr / bin, требуя вмешательства при обновлении» . archlinux.org . Архивировано 10 сентября 2014 года . Проверено 15 декабря 2019 .
- ^ Поттеринг (30 марта 2011). «Что делает этот каталог / run в моей системе и откуда он берется?» . [email protected] (список рассылки).
- ^ "ReleaseGoalsRunDirectory" . Debian Wiki .
- ^ "Страница часто задаваемых вопросов FSSTND" . Проверено 10 мая 2016 .
- ^ - Руководство по разной информации FreeBSD .
- ^ Страница руководства SunOS 4.1.3 для файловой системы (7) от 10 января 1988 г. (из библиотеки FreeBSD Man Pages).
- ^ - Справочное руководство по стандартам, средам и макросам Solaris 10 .
- ^ "Справочная страница файловой системы - Справочные страницы Solaris 10 11/06" . Архивировано из оригинала 4 июля 2007 года . Проверено 15 октября 2011 года .
- ^ "Индекс /pub/Linux/docs/fsstnd/old/fsstnd-1.0/" . Ibiblio.org . Проверено 16 октября 2012 года .
- ^ "Индекс /pub/Linux/docs/fsstnd/old/fsstnd-1.1/" . Ibiblio.org . Проверено 16 октября 2012 года .
- ^ «Индекс / pub / Linux / docs / fsstnd / old /» . Ibiblio.org . Проверено 16 октября 2012 года .
- ^ «Объявление FHS 2.0» . Pathname.com . Проверено 16 октября 2012 года .
- ↑ Quinlan, Daniel (14 марта 2012 г.) [1997], «Объявление FHS 2.0» , BSD, Linux, Unix и Интернет - Исследование Кеннета Р. Саборио , Сан-Хосе, Коста-Рика: Кеннет Р. Саборио, заархивировано с оригинала 5 марта 2016 г. , дата обращения 18 февраля 2016 г..
- ^ "Индекс / pub / Linux / docs / fsstnd /" . Ibiblio.org . Проверено 16 октября 2012 года .
- ^ «Объявление FHS 2.1» . Pathname.com . Проверено 16 октября 2012 года .
- ^ "Выпущена версия FHS 2.1" . Lists.debian.org. 13 апреля 2000 . Проверено 16 октября 2012 года .
- ↑ Куинлан, Дэниел (12 апреля 2000 г.). «Стандарт иерархии файловой системы - версия 2.1, группа стандартов иерархии файловой системы» (PDF) . Учебники по Acadia Linux . Вулфвилл, Новая Шотландия, Канада: Школа компьютерных наук Джодри, Университет Акадии . Проверено 18 октября 2012 года .
- ^ Рассел, Расти ; Куинлан, Дэниел, ред. (23 мая 2001 г.). «Стандарт иерархии файловой системы - окончательная группа стандартов иерархии файловой системы версии 2.2» (PDF) . Стандарт иерархии файловой системы . Проверено 18 февраля +2016 .
- ^ Рассел, Расти ; Куинлан, Дэниел; Да, Кристофер, ред. (28 января 2004 г.). "Стандарт иерархии файловой системы - Группа стандартов иерархии файловой системы" (PDF) . Проверено 29 ноября 2014 года .
- ^ Да, Кристофер; Рассел, Расти; Куинлан, Дэниел, ред. (19 марта 2015 г.). «Стандарт иерархии файловой системы» (PDF) . Фонд Linux . Дата обращения 20 мая 2015 .
Внешние ссылки [ править ]
- Официальный сайт стандарта иерархии файловой системы (FHS) в Linux Foundation
- Полные тексты спецификаций
- objectroot - предложение для новой иерархии файловой системы, основанной на принципах объектно-ориентированного проектирования
- Пунктирная стандартная иерархия имен файлов, еще одна совершенно другая иерархия (используется в cLIeNUX) ( зеркало )
- - Руководство программиста Linux - Обзор, условные обозначения и разное