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

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

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

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

Содержание
  • 1 Структура каталогов
  • 2 Соответствие FHS
  • 3 История
    • 3.1 История выпуска
  • 4 См. Также
  • 5 Примечания
  • 6 Ссылки
  • 7 Внешние ссылки
Структура каталогов
Типичная иерархия файловой системы Ubuntu

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

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

КаталогОписание
/
Корень первичной иерархии и корневой каталог всей иерархии файловой системы.
/ bin
Основные команды двоичные файлы, которые должны быть доступны в однопользовательском режиме ; для всех пользователей, например, cat, ls, cp.
/ boot
Файлы загрузчика, например, ядра, initrd.
/ dev
Файлы устройств, например, / dev / null , / dev / disk0, / dev / sda1, / dev / tty, / dev / random .
/ etc
Специфичные для хоста системные файлы конфигурации.

Существуют разногласия по поводу значения самого имени. В ранних версиях документа о реализации UNIX от Bell labs, / etcупоминается как каталог etcetera, поскольку этот каталог исторически хранил все, что нигде не принадлежало (однако, FHS ограничивает / etcстатическими файлами конфигурации и не может содержать двоичные файлы). После публикации ранней документации имя каталога было объяснено различными способами. Недавние интерпретации включают backronyms, такие как «Конфигурация редактируемого текста» или «Расширенный набор инструментов».

/ etc / opt
Файлы конфигурации для дополнительных пакетов, которые хранятся в / opt.
/ etc / sgml
Файлы конфигурации, например каталоги, для программного обеспечения, обрабатывающего SGML.
/ etc / X11
Файлы конфигурации для X Window System, версия 11.
/ etc / xml
Файлы конфигурации, такие как каталоги, для программного обеспечения, которое обрабатывает XML.
/ home
пользовательские домашние каталоги, содержащие сохраненные файлы, личные настройки и т. д.
/ lib
Библиотеки необходимы для двоичных файлов в / binи / sbin.
/ lib
Необходимые библиотеки альтернативного формата. Обычно они используются в системах, которые поддерживают более одного формата исполняемого кода, например в системах, поддерживающих 32-битные и 64-битные версии набора команд. Такие каталоги необязательны, но если они существуют, к ним предъявляются некоторые требования.
/ media
Точки монтирования для съемных носителей, таких как CD-ROM (появились в FHS-2.3 в 2004 году).
/ mnt
Временно смонтированные файловые системы.
/ opt
Дополнительное прикладное программное обеспечение пакеты.
/ proc
Виртуальная файловая система, обеспечивающая процесс и ядро информация в виде файлов. В Linux соответствует монтированию procfs. Обычно автоматически генерируется и заполняется системой на лету.
/ root
Домашний каталог для пользователя root.
/ run
Данные переменных времени выполнения: информация о запущенной системе с момента последней загрузки, например, пользователи, вошедшие в систему в данный момент, и запущенные демоны. Файлы в этом каталоге должны быть удалены или усечены в начале процесса загрузки, но это не обязательно в системах, которые предоставляют этот каталог в качестве временной файловой системы (tmpfs ).
/ sbin
Основные системные двоичные файлы, например, fsck, init, route.
/ srv
Данные сайта, обслуживаемые этой системой, такие как данные и сценарии для веб-серверов, данные, предлагаемые серверами FTP, и репозитории для систем управления версиями (появились в FHS-2.3 в 2004 году).
/ sys
Содержит информацию об устройствах, драйверах и некоторых функциях ядра.
/ tmp
Каталог временных файлов (см. Также / var / tmp). Часто не сохраняется между перезагрузками системы и может быть сильно ограничен по размеру.
/ usr
Вторичная иерархия для пользовательских данных, доступных только для чтения; содержит большинство (много- ) пользовательских утилит и приложений. Должен быть доступен только для чтения и общего доступа.
/ usr / bin
Несущественная команда двоичные файлы (не требуется в однопользовательском режиме ); для всех пользователей.
/ usr / include
Стандартные включаемые файлы.
/ usr / lib
Библиотеки для двоичных файлов в / usr / binи / usr / sbin.
/ usr / lib
Библиотеки альтернативного формата, например / usr / lib32для 32-битных библиотек на 64-битной машине (необязательно).
/ usr / local
Третичная иерархия для локальных данных, специфичная для этого хоста. Обычно имеет дополнительные подкаталоги, например, bin, lib, share.
/ usr / sbin
Несущественные системные двоичные файлы, например, daemons для различных сетевых служб.
/ 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
Данные переменных времени выполнения. Этот каталог содержит данные системной информации, описывающие систему с момента ее загрузки..

В FHS 3.0 / var / runзаменяется на / run; система должна либо продолжать предоставлять каталог / var / run, либо предоставлять символическую ссылку с / var / runна / runдля обратной совместимости.

/ var / spool
Спул для задач, ожидающих обработки, например, очереди печати и очередь исходящей почты.
/ var / spool / mail
Устарело расположение почтовых ящиков пользователей.
/ var / tmp
Временные файлы, которые должны сохраняться между перезагрузками.
Соответствие FHS

Большинство дистрибутивов Linux следуют Стандарту иерархии файловой системы и декларируют его собственную политику для поддержания соответствия FHS. GoboLinux и NixOS предоставить примеры намеренно несовместимых реализаций файловых систем.

Некоторые дистрибутивы обычно следуют стандарту, но в некоторых областях от него отклоняются. FHS - это «конечный стандарт», который документирует общепринятые практики на определенный момент времени. Конечно, времена меняются, и цели и потребности распространения требуют экспериментов. Некоторые общие отклонения включают:

  • Современные дистрибутивы Linux включают каталог / sysв качестве виртуальной файловой системы (sysfs, сопоставимо с / proc, который является procfs ), который хранит и позволяет изменять устройства, подключенные к системе, тогда как многие традиционные Unix-подобные операционные системы используют / sysкак символическая ссылка на дерево исходных текстов ядра .
  • Многие современные Unix-подобные системы (например, FreeBSD через его порты system) устанавливайте сторонние пакеты в / usr / local, сохраняя код, считающийся частью операционной системы, в / usr.
  • Некоторые дистрибутивы Linux больше не различают / libи / usr / libи имеют символическую ссылку / libна / usr / lib.
  • Некоторые дистрибутивы Linux больше не различают / binи / usr / binи между / sbinи / usr / sbin. Они могут создавать символические ссылки / binна / usr / binи / sbinна / usr / sbin. Другие дистрибутивы решили объединить все четыре, привязав их к / usr / bin.

. Современные дистрибутивы Linux включают каталог / runв качестве временной файловой системы (tmpfs ), в котором хранятся энергозависимые данные времени выполнения, соответствующие FHS версии 3.0. Согласно версии 2.3 FHS, такие данные хранились в / var / run, но в некоторых случаях это было проблемой, поскольку этот каталог не всегда доступен при ранней загрузке. В результате этим программам пришлось прибегнуть к уловкам, например с использованием /dev/.udev, /dev/.mdadm, /dev/.systemdили /dev/.mount, даже если каталог устройства не предназначен для таких данных. Среди других преимуществ это упрощает использование системы в обычном режиме с корневой файловой системой, смонтированной только для чтения. Например, ниже приведены изменения Debian, внесенные в его выпуск Wheezy 2013 года:

  • /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 (сокращение от «Стандарт файловой системы»), в значительной степени основанный на аналогичных стандартах для других Unix-подобные операционные системы. Примечательные примеры: hier (7) описание структуры файловой системы, существовавшее с момента выпуска версии 7 Unix (в 1979 году); файловая система SunOS (7) и ее преемник, Solaris filesystem(5).

История выпусков

ВерсияДата выпускаПримечания
Старая версия, больше не поддерживается: 1.014.02.1994FSSTND
Старая версия, больше не поддерживается : 1.11994-10-09FSSTND
Старая версия, больше не поддерживается: 1.21995-03-28FSSTND
Старая версия, больше не поддерживается: 2.026.10.1997FHS 2.0 является прямым преемником FSSTND 1.2. Название стандарта было изменено на Стандарт иерархии файловой системы.
Старая версия, больше не поддерживается: 2.12000-04-12FHS
Старая версия, больше не поддерживается: 2.223.05.2001FHS
Старая версия, но все еще поддерживается: 2.32004-01-29FHS
Текущая стабильная версия: 3.018.05.2015FHS
Обозначения: Старая версия Старая версия, все еще поддерживается Последняя версия Последняя предварительная версия Будущий выпуск
См. Также
Примечания
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-20 03:43:03
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте