Стандарт иерархии файловой системы - Filesystem Hierarchy Standard
Положение дел | Опубликовано |
---|---|
Год начался | 14 февраля 1994 г. |
Последняя версия | 3.0 3 июня 2015 г. |
Организация | Linux Foundation |
Домен | Структура каталогов |
Сокращение | FHS |
Интернет сайт | Официальный веб-сайт Официальный сайт (Исторический) |
В Стандарт иерархии файловой системы (FHS) определяет структура каталогов и содержимое каталога в Linux раздачи.[1] Он поддерживается Linux Foundation. Последняя версия - 3.0, выпущенная 3 июня 2015 года.[2]
Структура каталогов
В FHS все файлы и каталоги появляются под корневая директория /
, даже если они хранятся на разных физических или виртуальных устройствах. Некоторые из этих каталогов существуют только в определенной системе, если определенные подсистемы, такие как X Window System, установлены.
Большинство этих каталогов существует во всех Unix-подобный операционные системы и обычно используются примерно так же; однако приведенные здесь описания используются специально для FHS и не считаются официальными для платформ, отличных от Linux.
Каталог | Описание |
---|---|
| Первичная иерархия корень и корневая директория всей иерархии файловой системы. |
| Существенная команда двоичные файлы которые должны быть доступны в однопользовательский режим; для всех пользователей, например, Кот, ls, cp. |
Загрузчик файлы, например, ядра, initrd. | |
Файлы устройства, например, / dev / null , / dev / disk0 , / dev / sda1 , / dev / tty , / dev / случайный . | |
| Для всей системы файлы конфигурации По поводу значения самого имени возникли разногласия. В ранних версиях документа о реализации UNIX от Bell labs, |
| Файлы конфигурации для дополнительных пакетов, которые хранятся в / opt . |
| Файлы конфигурации, например каталоги, для программного обеспечения, обрабатывающего SGML. |
| Файлы конфигурации для X Window System, версия 11. |
| Файлы конфигурации, например каталоги, для программного обеспечения, обрабатывающего XML. |
| Пользователи домашние каталоги, содержащий сохраненные файлы, личные настройки и т. д. |
| Библиотеки необходимо для двоичные файлы в / bin и / sbin . |
| Необходимые библиотеки альтернативного формата. Обычно они используются в системах, которые поддерживают более одного формата исполняемого кода, например в системах, поддерживающих 32-битный и 64-битный версии Набор инструкций. Такие каталоги необязательны, но если они существуют, к ним предъявляются некоторые требования. |
| Точки монтирования для съемные медиа Такие как CD-ROM (появился в FHS-2.3 в 2004 году). |
| Временно установленный файловые системы. |
| Необязательный программное обеспечение пакеты.[6] |
Виртуальный файловая система предоставление процесс и ядро информация в виде файлов. В Linux соответствует procfs устанавливать. Как правило, автоматически генерируется и заполняется системой на лету. | |
| Домашний каталог для корень Пользователь. |
| Данные переменных времени выполнения: информация о запущенной системе с момента последней загрузки, например, пользователи, вошедшие в систему и работающие демоны. Файлы в этом каталоге должны быть либо удалены, либо усечены в начале процесса загрузки, но это не обязательно в системах, которые предоставляют этот каталог как временная файловая система (tmpfs ). |
| Основные системные двоичные файлы, например, fsck, в этом, маршрут. |
| Данные сайта, обслуживаемые этой системой, такие как данные и сценарии для веб-серверов, данные, предлагаемые FTP серверы и репозитории для системы контроля версий (появился в FHS-2.3 в 2004 году). |
| Содержит информацию об устройствах, драйверах и некоторых функциях ядра.[7] |
| Каталог для временных файлов (смотрите также / var / tmp ). Часто не сохраняется между перезагрузками системы и может быть сильно ограничен по размеру. |
| Вторичная иерархия для пользовательских данных только для чтения; содержит большинство (мульти- ) пользовательские утилиты и приложения. Должен быть доступен только для чтения.[8][9] |
| Несущественная команда двоичные файлы (не требуется в однопользовательский режим ); для всех пользователей. |
| Стандарт включать файлы. |
| Библиотеки для двоичные файлы в / usr / bin и / usr / sbin . |
| Библиотеки альтернативного формата, например / usr / lib32 для 32-битных библиотек на 64-битной машине (необязательно). |
| Третичная иерархия для локальных данных, специфичных для этого хоста. Обычно имеет дополнительные подкаталоги, например, мусорное ведро , lib , Поделиться .[NB 1] |
| Несущественные системные двоичные файлы, например, демоны для различных сетевые услуги. |
| Независимые от архитектуры (общие) данные. |
| Исходный код, например, исходный код ядра с его заголовочными файлами. |
| X Window System, Версия 11, Выпуск 6 (до FHS-2.3, опционально). |
| Файлы с переменными: файлы, содержимое которых, как ожидается, будет постоянно меняться во время нормальной работы системы, например журналы, файлы спула и временные файлы электронной почты. |
| Данные кеша приложения. Такие данные генерируются локально в результате длительных операций ввода-вывода или вычислений. Приложение должно иметь возможность регенерировать или восстанавливать данные. Кешированные файлы можно удалить без потери данных. |
| Государственная информация. Постоянные данные, изменяемые программами по мере их выполнения, например, базы данных, метаданные системы упаковки и т. Д. |
| Заблокируйте файлы. Файлы, отслеживающие используемые в данный момент ресурсы. |
| Лог-файлы. Различные журналы. |
| Файлы почтового ящика. В некоторых дистрибутивах эти файлы могут находиться в устаревшем / var / spool / mail . |
| Переменные данные из дополнительных пакетов, которые хранятся в / opt . |
| Данные переменных времени выполнения. Этот каталог содержит данные системной информации, описывающие систему с момента ее загрузки.[10] В FHS 3.0 |
| Катушка для задач, ожидающих обработки, например, очереди печати и очередь исходящей почты. |
| Не рекомендуется расположение почтовых ящиков пользователей.[12] |
| Временные файлы для сохранения между перезагрузками. |
Соответствие FHS
Наиболее Дистрибутивы Linux следуйте Стандарту иерархии файловой системы и объявите его собственной политикой по поддержанию соответствия FHS.[13][14][15][16] GoboLinux[17] и NixOS[18] предоставить примеры намеренно несовместимых реализаций файловых систем.
Некоторые дистрибутивы обычно следуют стандарту, но в некоторых областях отклоняются от него. FHS - это «конечный стандарт», который документирует общепринятые практики на определенный момент времени. Конечно, времена меняются, и цели и потребности распространения требуют экспериментов. Некоторые общие отклонения включают:
- Современные дистрибутивы Linux включают
/ sys
каталог как виртуальная файловая система (sysfs, сравним с/ proc
, что является procfs ), который хранит и позволяет изменять устройства, подключенные к системе,[19] тогда как многие традиционные Unix-подобный операционные системы используют/ sys
как символическая ссылка к ядро исходное дерево.[20] - Многие современные Unix-подобные системы (например, FreeBSD через его порты system) установить сторонние пакеты в
/ usr / местный
, сохраняя код, считающийся частью операционной системы, в/ usr
. - Некоторые дистрибутивы Linux больше не делают различий между
/ lib
и/ usr / lib
и имеют/ lib
символическая ссылка на/ usr / lib
.[21] - Некоторые дистрибутивы Linux больше не делают различий между
/ bin
и/ usr / bin
и между/ sbin
и/ usr / sbin
. Они могут быть символическими ссылками/ bin
к/ usr / bin
и/ sbin
к/ usr / sbin
. Другие дистрибутивы решили объединить все четыре, символизируя их/ usr / bin
.[22]
Современные дистрибутивы Linux включают /пробег
каталог как временная файловая система (tmpfs ), в котором хранятся изменчивые данные времени выполнения, следуя FHS версии 3.0. Согласно версии 2.3 FHS, такие данные хранились в / var / run
, но в некоторых случаях это было проблемой, потому что этот каталог не всегда доступен при ранней загрузке. В результате этим программам пришлось прибегнуть к хитрости, например, используя /dev/.udev
, /dev/.mdadm
, /dev/.systemd
или же /dev/.mount
каталоги, даже если каталог устройства не предназначен для таких данных.[23] Среди других преимуществ, это упрощает использование системы в обычном режиме с корневой файловой системой, смонтированной только для чтения. Например, ниже приведены изменения. Debian в версии Wheezy 2013 года:[24]
/dev/.*
→/пробег/*
/ dev / shm
→/ бег / шм
/ dev / shm / *
→/пробег/*
/так далее/*
(записываемые файлы) →/пробег/*
/ lib / init / rw
→/пробег
/ var / lock
→/ запустить / заблокировать
/ var / run
→/пробег
/ tmp
→/ запустить / tmp
История
FHS был создан как FSSTND (сокращение от «Стандарт файловой системы»).[25]), во многом основанный на аналогичных стандартах для других Unix-подобный операционные системы. Яркими примерами являются: hier (7) описание структуры файловой системы,[26] который существует с момента выпуска Версия 7 Unix (в 1979 г.); в SunOS файловая система (7)[27] и его преемник, Солярис файловая система (5).[28][29]
История выпуска
Версия | Дата выхода | Примечания |
---|---|---|
1.0 | 1994-02-14 | FSSTND[30] |
1.1 | 1994-10-09 | FSSTND[31] |
1.2 | 1995-03-28 | FSSTND[32] |
2.0 | 1997-10-26 | FHS 2.0 является прямым преемником FSSTND 1.2. Название стандарта было изменено на Стандарт иерархии файловой системы.[33][34][35] |
2.1 | 2000-04-12 | FHS[36][37][38] |
2.2 | 2001-05-23 | FHS[39] |
2.3 | 2004-01-29 | FHS[40] |
3.0 | 2015-05-18 | FHS[41] |
Легенда: Старая версия Старая версия, все еще поддерживается Последняя версия |
Смотрите также
Примечания
- ^ Исторически и строго по стандарту,
/ usr / местный
предназначен для данных, которые должны храниться на локальном хосте (в отличие от/ usr
, который может быть установлен по сети). Большую часть времени/ usr / местный
используется для установки программного обеспечения / данных, которые нет часть стандартного дистрибутива операционной системы (в таком случае/ usr
будет содержать только программное обеспечение / данные, которые находятся часть стандартного дистрибутива операционной системы). Возможно, что в будущем стандарт FHS может быть изменен, чтобы отразить это фактическое соглашение.
Рекомендации
- ^ «Стандарт иерархии файловой системы - Debian Wiki». wiki.debian.org. Получено 6 июля 2016.
- ^ «Выпущена FHS 3.0». 3 июня 2015 г.
- ^ Дж. ДеФеличк (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.
- ^ Красная шляпа справочное руководство по структура файловой системы.
- ^ 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.
- ^ Лехи, Грег (май 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.
- ^ Куинлан, Даниэль (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
- объект - предложение по новой иерархии файловой системы, основанной на принципах объектно-ориентированного проектирования
- Пунктирная стандартная иерархия имен файлов, еще одна совершенно другая иерархия (используется в cLIeNUX) (зеркало )
- Linux Программиста Руководство - Обзор, условные обозначения и разное –