Стандарт иерархии файловой системы
Аббревиатура | ФХС |
---|---|
Статус | Опубликовано |
Год начался | 14 февраля 1994 г |
Последняя версия | 3.0 3 июня 2015 г |
Организация | Linux Фонд |
Домен | Структура каталогов |
Веб-сайт | Официальный сайт Официальный сайт (Исторический) |
Стандарт иерархии файловой системы ( FHS ) — это справочник, описывающий соглашения, используемые для компоновки Unix-подобных систем. Он стал популярным благодаря использованию в дистрибутивах Linux , но он также используется и в других Unix-подобных системах. [1] Он поддерживается Linux Foundation . Последняя версия — 3.0, выпущенная 3 июня 2015 года. [2]
Структура каталогов
[ редактировать ]В FHS все файлы и каталоги отображаются в корневом каталоге. /
, даже если они хранятся на разных физических или виртуальных устройствах. Некоторые из этих каталогов существуют только в конкретной системе, если определенные подсистемы, такие как X Window System установлены .
Большинство этих каталогов существуют во всех Unix-подобных операционных системах и обычно используются одинаково; однако приведенные здесь описания используются специально для FHS и не считаются авторитетными для платформ, отличных от Linux.
Каталог | Описание |
---|---|
/ | Корень первичной иерархии и корневой каталог всей иерархии файловой системы. |
/bin | Основные двоичные файлы команд , которые должны быть доступны в однопользовательском режиме , в том числе для запуска системы или ее восстановления, [3] для всех пользователей (например, cat , ls , cp ). |
/boot | загрузчика Файлы (например, ядра , initrd ). |
/dev | Файлы устройства (например, /dev/null , /dev/disk0 , /dev/sda1 , /dev/tty , /dev/random ). |
/etc | общесистемной конфигурации для конкретного хоста Файлы . Были споры по поводу значения самого имени. В ранних версиях документа по реализации UNIX от Bell Labs |
/etc/opt | Файлы конфигурации для дополнительных пакетов, хранящиеся в /opt . |
/etc/sgml | Файлы конфигурации, такие как каталоги, для программного обеспечения, обрабатывающего SGML . |
/etc/X11 | Файлы конфигурации для системы X Window , версия 11. |
/etc/xml | Файлы конфигурации, такие как каталоги, для программного обеспечения, обрабатывающего XML . |
/home | пользователей Домашние каталоги , содержащие сохраненные файлы, личные настройки и т. д. |
/lib | Библиотеки, необходимые для двоичных файлов в /bin и /sbin . |
/lib<qual> | Основные библиотеки альтернативного формата. Они обычно используются в системах, поддерживающих более одного формата исполняемого кода, например в системах, поддерживающих 32-битные и 64-битные версии набора команд . Такие каталоги не являются обязательными, но если они существуют, к ним предъявляются некоторые требования. |
/media | Точки монтирования съемных носителей, таких как компакт-диски (появились в FHS-2.3 в 2004 г.). |
/mnt | Временно смонтированные файловые системы. |
/opt | Дополнительные прикладного программного обеспечения пакеты . [7] |
/proc | Виртуальная файловая система, предоставляющая информацию о процессах и ядре в виде файлов. В Linux соответствует монтированию procfs . Как правило, автоматически генерируется и заполняется системой «на лету». |
/root | Домашний каталог для пользователя root . |
/run | Переменные данные времени выполнения: информация о работающей системе с момента последней загрузки, например, о вошедших в систему пользователях и запущенных демонах . Файлы в этом каталоге должны быть либо удалены, либо усечены в начале процесса загрузки, но это не обязательно в системах, которые предоставляют этот каталог в качестве временной файловой системы ( tmpfs ) (появилась в FHS-3.0 в 2015 году). |
/sbin | Основные системные двоичные файлы (например, fsck , init , маршрут ). |
/srv | Данные, специфичные для сайта, обслуживаемые этой системой, такие как данные и сценарии для веб-серверов, данные, предлагаемые FTP- серверами, и репозитории для систем контроля версий (появились в FHS-2.3 в 2004 году). |
/sys | Содержит информацию об устройствах, драйверах и некоторых функциях ядра. [8] |
/tmp | Каталог для временных файлов (см. также /var/tmp ). Часто не сохраняются между перезагрузками системы и могут иметь серьезные ограничения по размеру. |
/usr | Вторичная иерархия для пользовательских данных, доступных только для чтения; содержит большинство ( много )пользовательских утилит и приложений. Должен быть доступен для совместного использования и доступен только для чтения. [9] [10] |
/usr/bin | Необязательные двоичные файлы команд (не нужны в однопользовательском режиме ); для всех пользователей. |
/usr/include | Стандартные включаемые файлы . |
/usr/lib | Библиотеки для двоичных файлов в /usr/bin и /usr/sbin . |
/usr/libexec | Двоичные файлы, запускаемые другими программами, которые не предназначены для непосредственного выполнения пользователями или сценариями оболочки (необязательно). |
/usr/lib<qual> | Библиотеки альтернативного формата (например, /usr/lib32 для 32-битных библиотек на 64-битной машине (необязательно)). |
/usr/local | Третичная иерархия для локальных данных, специфичных для этого хоста. Обычно имеет дополнительные подкаталоги (например, bin , lib , share ). [Примечание 1] |
/usr/sbin | Необязательные системные двоичные файлы (например, демоны для различных сетевых служб ). |
/usr/share | Независимые от архитектуры (общие) данные. |
/usr/src | Исходный код (например, исходный код ядра с его заголовочными файлами). |
/usr/X11R6 | X Window System , версия 11, выпуск 6 (до FHS-2.3, опционально). |
/var | Файлы переменных: файлы, содержимое которых, как ожидается, будет постоянно меняться во время нормальной работы системы, например журналы, файлы буферизации и временные файлы электронной почты. |
/var/cache | Данные кэша приложения. Такие данные генерируются локально в результате трудоемкого ввода-вывода или вычислений. Приложение должно иметь возможность регенерировать или восстанавливать данные. Кэшированные файлы можно удалить без потери данных. |
/var/lib | Государственная информация. Постоянные данные, изменяемые программами во время их запуска (например, базы данных, метаданные системы упаковки и т. д.). |
/var/lock | Блокировка файлов. Файлы, отслеживающие ресурсы, используемые в данный момент. |
/var/log | Файлы журналов. Различные журналы. |
/var/mail | Файлы почтового ящика. В некоторых дистрибутивах эти файлы могут находиться в устаревшем каталоге. /var/spool/mail . |
/var/opt | Переменные данные из дополнительных пакетов, которые хранятся в /opt . |
/var/run | Переменные данные времени выполнения. Этот каталог содержит системные информационные данные, описывающие систему с момента ее загрузки. [11] В ФХС 3.0 |
/var/spool | Буферизация задач, ожидающих обработки (например, очереди печати и очереди исходящей почты). |
/var/spool/mail | Устаревшее расположение почтовых ящиков пользователей. [13] |
/var/tmp | Временные файлы, которые необходимо сохранять между перезагрузками. |
Соответствие требованиям FHS
[ редактировать ]Большинство дистрибутивов Linux следуют стандарту иерархии файловой системы и объявляют его собственной политикой обеспечения соответствия FHS. [14] [15] [16] [17] ГобоЛинукс [18] и НикОС [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. Согласно версии FHS 2.3, такие данные хранились в /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
История
[ редактировать ]Имя usr
[ редактировать ] /usr
первоначально означало «пользователь». [26] Это был артефакт раннего программирования Unix. В частности, когда Кен Томпсон и Деннис Ритчи переводили Unix на PDP-11, /bin, /lib
... каталоги, которые должны были быть первыми каталогами, которые монтируются при запуске и должны содержать все необходимое для функционирования ОС, стали больше, чем RK05 дисковод . Вот и поставили некоторые из них в первый RK05, в том числе и те, которые необходимы для загрузки второго диска RK05. Остальные были помещены в /usr
каталог. [27] Когда у них появился третий диск, файлы пользователей были перемещены в новый каталог с именем /home
. [28]
FHS был создан как FSSTND (сокращение от «Стандарт файловой системы»). [29] ), во многом основанный на аналогичных стандартах для других Unix-подобных операционных систем. Яркими примерами являются следующие: hier(7) описание структуры файловой системы, [30] который существует с момента выпуска версии 7 Unix (в 1979 году); [31] SunOS файловая система(7) [32] и его преемник Solaris файловая система(7) . [33] [34]
История выпусков
[ редактировать ]Версия | Дата выпуска | Примечания |
---|---|---|
1.0. | 1994-02-14 | ФССТНД [35] |
1.1. | 1994-10-09 | ФССТНД [36] |
1.2. | 1995-03-28 | ФССТНД [37] |
2.0. | 1997-10-26 | FHS 2.0 является прямым преемником FSSTND 1.2. Название стандарта было изменено на «Стандарт иерархии файловой системы». [38] [39] [40] |
2.1. | 2000-04-12 | ФХС [41] [42] [43] |
2.2. | 2001-05-23 | ФХС [44] |
2.3. | 2004-01-29 | ФХС [45] |
3.0. | 2015-05-18 | ФХС [46] |
Легенда: Старая версия Последняя версия |
См. также
[ редактировать ]Примечания
[ редактировать ]- ^ Исторически и строго по стандарту,
/usr/local
предназначен для данных, которые должны храниться на локальном хосте (в отличие от/usr
, который можно монтировать по сети). Большую часть времени/usr/local
используется для установки программного обеспечения/данных, которые не являются частью стандартного дистрибутива операционной системы (в таком случае/usr
будет содержать только программное обеспечение/данные, которые являются частью стандартного дистрибутива операционной системы). Вполне возможно, что в будущем стандарт FHS может быть изменен, чтобы отразить это фактическое соглашение.
Ссылки
[ редактировать ]- ^ «ФХС» . Wiki Фонда Linux . Проверено 4 января 2022 г.
- ^ "lsb:fhs-30 [Вики]" . wiki.linuxfoundation.org . Проверено 22 февраля 2023 г.
- ^ «hier(7) — страница руководства Linux» . man7.org . Проверено 6 января 2021 г.
- ^ Дж. ДеФелик (17 марта 1972 г.). «Е.0». Предварительный выпуск документа о реализации UNIX (PDF) . п. 8. ИМО.1-1 . Проверено 6 июня 2024 г.
- ^ «/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. п. 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 г.
- ^ Долстра, Э.; Лё, А. (сентябрь 2008 г.). NixOS: чисто функциональный дистрибутив Linux (PDF) . ICFP 2008: 13-я Международная конференция ACM SIGPLAN по функциональному программированию . Виктория, Британская Колумбия, Канада. стр. 367–378.
- ^ «5.3 О виртуальной файловой системе /sys» . docs.oracle.com . Оракул. Архивировано из оригинала 8 июля 2016 года . Проверено 8 июля 2016 г.
- ^ Лихи, Грег (май 2003 г.). Полная версия FreeBSD: Документация из источника (Четвертое изд.). О'Рейли Медиа, Инкорпорейтед. стр. 188, 609. ISBN. 9780596005160 .
- ^ Аллан Макрей. «Arch Linux – Новости: каталог /lib становится символической ссылкой» . Archlinux.org . Архивировано из оригинала 9 сентября 2014 года . Проверено 14 декабря 2019 г.
- ^ Аллан Макрей. «Arch Linux – Новости: Двоичные файлы перемещаются в /usr/bin, требуя обновления» . Archlinux.org . Архивировано из оригинала 10 сентября 2014 года . Проверено 15 декабря 2019 г.
- ^ Леннарт Пёттеринг (30 марта 2011 г.). «Что этот каталог /run делает в моей системе и откуда он?» . [электронная почта защищена] (список рассылки).
- ^ «ReleaseGoalsRunDirectory» . Дебиан Вики .
- ^ "/usr" . tldp.org . Проверено 10 декабря 2023 г.
- ^ Доктор медицины Макилрой (1987). «Исследовательская программа для чтения Unix: аннотированные выдержки из Руководства программиста, 1971–1986» (PDF) . Лаборатории Белла. ЦСТР 139.
- ^ Лэндли, Роб (9 декабря 2010 г.). «Понимание разделения bin, sbin, usr/bin, usr/sbin» . busybox (список рассылки).
- ^ «Страница часто задаваемых вопросов FSSTND» . Проверено 10 мая 2016 г.
- ^ по FreeBSD по разной информации Руководство . –
- ^ Unix версии 7. программиста Руководство –
- ^ Страница руководства SunOS 4.1.3 для файловой системы (7) от 10 января 1988 г. (из библиотеки страниц руководства FreeBSD).
- ^ по стандартам Solaris 11.4 , средам, макросам, наборам символов и прочему Справочное руководство . –
- ^ «Страница руководства по файловой системе – Страницы руководства Solaris 10 11/06» . Архивировано из оригинала 4 июля 2007 года . Проверено 15 октября 2011 г.
- ^ «Индекс /pub/Linux/docs/fsstnd/old/fsstnd-1.0/» . Ибиблио.орг . Проверено 16 октября 2012 г.
- ^ «Индекс /pub/Linux/docs/fsstnd/old/fsstnd-1.1/» . Ибиблио.орг . Проверено 16 октября 2012 г.
- ^ «Индекс /pub/Linux/docs/fsstnd/old/» . Ибиблио.орг . Проверено 16 октября 2012 г.
- ^ «Анонс FHS 2.0» . Имя пути.com . Проверено 16 октября 2012 г.
- ^ Куинлан, Дэниел (14 марта 2012 г.) [1997], «Объявление FHS 2.0» , BSD, Linux, Unix и Интернет - исследование Кеннета Р. Саборио , Сан-Хосе, Коста-Рика: Кеннет Р. Саборио, заархивировано из оригинала на 5 марта 2016 г. , дата обращения 18 февраля 2016 г.
- ^ «Индекс /pub/Linux/docs/fsstnd/» . Ибиблио.орг . Проверено 16 октября 2012 г.
- ^ «Анонс FHS 2.1» . Имя пути.com . Проверено 16 октября 2012 г.
- ^ «Выпущена версия FHS 2.1» . Lists.debian.org. 13 апреля 2000 года . Проверено 16 октября 2012 г.
- ^ Куинлан, Дэниел (12 апреля 2000 г.). «Стандарт иерархии файловой системы - версия 2.1, Группа стандартов иерархии файловой системы» (PDF) . Учебные пособия по Acadia Linux . Вольфвилл, Новая Шотландия, Канада: Школа компьютерных наук Джодри, Университет Акадии . Архивировано из оригинала (PDF) 27 марта 2012 года . Проверено 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 программиста Руководство – Обзор, условные обозначения и прочее –