Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Стандарт иерархии файловой системы ( FHS ) определяет структуру каталогов и содержимого каталога в Linux распределений. [1] Поддерживается Linux Foundation . Последняя версия - 3.0, выпущенная 3 июня 2015 года. [2]

Дистрибутивы Linux (и другие операционные системы) могут частично или полностью соответствовать FHS на добровольной основе. Проект Freedesktop.org вводит переменные, чтобы сделать иерархию файловой системы настраиваемой.

Структура каталогов [ править ]

Типичная иерархия файловой системы Ubuntu

В FHS все файлы и каталоги появляются в корневом каталоге / , даже если они хранятся на разных физических или виртуальных устройствах. Некоторые из этих каталогов существуют только в определенной системе, если установлены определенные подсистемы, такие как X Window System .

Большинство этих каталогов существуют во всех Unix-подобных операционных системах и обычно используются одинаково; однако приведенные здесь описания используются специально для FHS и не считаются авторитетными для платформ, отличных от Linux.

Соответствие 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]

История выпусков [ править ]

См. Также [ править ]

  • Структура каталогов Unix
  • Стандарт двоичной совместимости Intel (iBCS)

Заметки [ править ]

  1. ^ Исторически и строго в соответствии со стандартом,/usr/localэто данные, которые должны храниться на локальном хосте (в отличие от данных/usr, которые могут быть смонтированы по сети). Большую часть времени/usr/localиспользуется для установки программного обеспечения / данных, которые не являютсячастью стандартного дистрибутива операционной системы (в таком случае/usrбудут содержать только программное обеспечение / данные, которые являются частью стандартного дистрибутива операционной системы). Возможно, что в будущем стандарт FHS может быть изменен, чтобы отразить это фактическое соглашение.

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Официальный сайт стандарта иерархии файловой системы (FHS) в Linux Foundation
    • Полные тексты спецификаций
  • objectroot - предложение для новой иерархии файловой системы, основанной на принципах объектно-ориентированного проектирования
  • Пунктирная стандартная иерархия имен файлов, еще одна совершенно другая иерархия (используется в cLIeNUX) ( зеркало )
  • hier(7) -  Руководство программиста Linux - Обзор, условные обозначения и разное