Jump to content

Стандарт иерархии файловой системы

Стандарт иерархии файловой системы
Аббревиатура ФХС
Статус Опубликовано
Год начался 14 февраля 1994 г .; 30 лет назад ( 14.02.1994 )
Последняя версия 3.0
3 июня 2015 г .; 9 лет назад ( 03.06.2015 )
Организация Linux Фонд
Домен Структура каталогов
Веб-сайт Официальный сайт
Официальный сайт (Исторический)

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

Структура каталогов

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

В 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 называется и так далее каталогом , [4] поскольку в этом каталоге исторически хранилось все, что не принадлежало другим местам (однако FHS ограничивает /etc в статические файлы конфигурации и не могут содержать двоичные файлы). [5] С момента публикации ранней документации имя каталога объяснялось по-разному. Недавние интерпретации включают такие бэкронимы , как «Конфигурация редактируемого текста» или «Расширенный ящик для инструментов». [6]

/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/X11R6X 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/run заменяется на /run; система должна либо продолжать обеспечивать /var/run каталог или предоставить символическую ссылку из /var/run к /run для обратной совместимости. [12]

/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 первоначально означало «пользователь». [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]
Легенда:
Старая версия
Older version, still maintained
Последняя версия
Latest preview version
Future release

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ Исторически и строго по стандарту, /usr/local предназначен для данных, которые должны храниться на локальном хосте (в отличие от /usr, который можно монтировать по сети). Большую часть времени /usr/local используется для установки программного обеспечения/данных, которые не являются частью стандартного дистрибутива операционной системы (в таком случае /usr будет содержать только программное обеспечение/данные, которые являются частью стандартного дистрибутива операционной системы). Вполне возможно, что в будущем стандарт FHS может быть изменен, чтобы отразить это фактическое соглашение.
  1. ^ «ФХС» . Wiki Фонда Linux . Проверено 4 января 2022 г.
  2. ^ "lsb:fhs-30 [Вики]" . wiki.linuxfoundation.org . Проверено 22 февраля 2023 г.
  3. ^ «hier(7) — страница руководства Linux» . man7.org . Проверено 6 января 2021 г.
  4. ^ Дж. ДеФелик (17 марта 1972 г.). «Е.0». Предварительный выпуск документа о реализации UNIX (PDF) . п. 8. ИМО.1-1 . Проверено 6 июня 2024 г.
  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. п. 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. ^ Долстра, Э.; Лё, А. (сентябрь 2008 г.). NixOS: чисто функциональный дистрибутив Linux (PDF) . ICFP 2008: 13-я Международная конференция ACM SIGPLAN по функциональному программированию . Виктория, Британская Колумбия, Канада. стр. 367–378.
  20. ^ «5.3 О виртуальной файловой системе /sys» . docs.oracle.com . Оракул. Архивировано из оригинала 8 июля 2016 года . Проверено 8 июля 2016 г.
  21. ^ Лихи, Грег (май 2003 г.). Полная версия FreeBSD: Документация из источника (Четвертое изд.). О'Рейли Медиа, Инкорпорейтед. стр. 188, 609. ISBN.  9780596005160 .
  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 делает в моей системе и откуда он?» . [электронная почта защищена] (список рассылки).
  25. ^ «ReleaseGoalsRunDirectory» . Дебиан Вики .
  26. ^ "/usr" . tldp.org . Проверено 10 декабря 2023 г.
  27. ^ Доктор медицины Макилрой (1987). «Исследовательская программа для чтения Unix: аннотированные выдержки из Руководства программиста, 1971–1986» (PDF) . Лаборатории Белла. ЦСТР 139.
  28. ^ Лэндли, Роб (9 декабря 2010 г.). «Понимание разделения bin, sbin, usr/bin, usr/sbin» . busybox (список рассылки).
  29. ^ «Страница часто задаваемых вопросов FSSTND» . Проверено 10 мая 2016 г.
  30. ^ hier(7) по FreeBSD по разной информации Руководство .
  31. ^ hier(7) Unix версии 7. программиста Руководство
  32. ^ Страница руководства SunOS 4.1.3 для файловой системы (7) от 10 января 1988 г. (из библиотеки страниц руководства FreeBSD).
  33. ^ filesystem(7) по стандартам Solaris 11.4 , средам, макросам, наборам символов и прочему Справочное руководство .
  34. ^ «Страница руководства по файловой системе – Страницы руководства Solaris 10 11/06» . Архивировано из оригинала 4 июля 2007 года . Проверено 15 октября 2011 г.
  35. ^ «Индекс /pub/Linux/docs/fsstnd/old/fsstnd-1.0/» . Ибиблио.орг . Проверено 16 октября 2012 г.
  36. ^ «Индекс /pub/Linux/docs/fsstnd/old/fsstnd-1.1/» . Ибиблио.орг . Проверено 16 октября 2012 г.
  37. ^ «Индекс /pub/Linux/docs/fsstnd/old/» . Ибиблио.орг . Проверено 16 октября 2012 г.
  38. ^ «Анонс FHS 2.0» . Имя пути.com . Проверено 16 октября 2012 г.
  39. ^ Куинлан, Дэниел (14 марта 2012 г.) [1997], «Объявление FHS 2.0» , BSD, Linux, Unix и Интернет - исследование Кеннета Р. Саборио , Сан-Хосе, Коста-Рика: Кеннет Р. Саборио, заархивировано из оригинала на 5 марта 2016 г. , дата обращения 18 февраля 2016 г.
  40. ^ «Индекс /pub/Linux/docs/fsstnd/» . Ибиблио.орг . Проверено 16 октября 2012 г.
  41. ^ «Анонс FHS 2.1» . Имя пути.com . Проверено 16 октября 2012 г.
  42. ^ «Выпущена версия FHS 2.1» . Lists.debian.org. 13 апреля 2000 года . Проверено 16 октября 2012 г.
  43. ^ Куинлан, Дэниел (12 апреля 2000 г.). «Стандарт иерархии файловой системы - версия 2.1, Группа стандартов иерархии файловой системы» (PDF) . Учебные пособия по Acadia Linux . Вольфвилл, Новая Шотландия, Канада: Школа компьютерных наук Джодри, Университет Акадии . Архивировано из оригинала (PDF) 27 марта 2012 года . Проверено 18 октября 2012 г.
  44. ^ Рассел, Расти ; Куинлан, Дэниел, ред. (23 мая 2001 г.). «Стандарт иерархии файловой системы - окончательная группа стандартов иерархии файловой системы версии 2.2» (PDF) . Стандарт иерархии файловой системы . Проверено 18 февраля 2016 г.
  45. ^ Рассел, Расти ; Куинлан, Дэниел; Да, Кристофер, ред. (28 января 2004 г.). «Стандарт иерархии файловой системы — группа стандартов иерархии файловой системы» (PDF) . Проверено 29 ноября 2014 г.
  46. ^ Да, Кристофер; Рассел, Расти; Куинлан, Дэниел, ред. (19 марта 2015 г.). «Стандарт иерархии файловой системы» (PDF) . Фонд Linux . Проверено 20 мая 2015 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a97bc032a327c74b774e1419257190d8__1721307540
URL1:https://arc.ask3.ru/arc/aa/a9/d8/a97bc032a327c74b774e1419257190d8.html
Заголовок, (Title) документа по адресу, URL1:
Filesystem Hierarchy Standard - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)