FHS
| FHS | |
|---|---|
| |
| Создатель | The Linux Foundation |
| Опубликован | 14 февраля 1994 |
| Последняя версия | |
| Официальный сайт | specifications.freedesktop.org/… (англ.) |
FHS (англ. Filesystem Hierarchy Standard, «стандарт иерархии файловой системы») — стандарт, унифицирующий местонахождение файлов и каталогов с общим назначением в файловой системе ОС Linux. На данный момент большинство UNIX-подобных систем в той или иной степени следует этим правилам[2]. Например, обычная база данных о пользователях всегда хранится в файле /etc/passwd.
FHS разрабатывает и публикует организация Linux Foundation[2].
Актуальная версия стандарта — 3.0, она анонсирована 3 июня 2015 года.
Для получения справки об используемой в ОС системе каталогов иногда существует команда hier либо man hier.
История
Процесс разработки стандарта иерархии файловой системы начался в августе 1993 года с попыток упорядочить структуру каталогов и файлов в операционной системе GNU/Linux.
14 февраля 1994 года Linux-активистами, координатором которых стал Дэниел Куинлан (англ. Daniel Quinlan), был выпущен FSSTND (акроним словосочетания Filesystem Standard), стандарт файловой системы, специфичной для GNU/Linux[3]. Последующие версии были выпущены 9 октября 1994 года и 28 марта 1995 года.
В начале 1996 года сообщество разработчиков BSD присоединилось к разработке новой версии FSSTND с целью разработать стандарт, пригодный для всех UNIX-подобных операционных систем. Имя стандарта при этом было изменено на Filesystem Hierarchy Standard (FHS).
Основные сведения
FHS поддерживается Free Standards Group — некоммерческой организацией, в составе которой находятся крупные разработчики программного и аппаратного обеспечения, такие как HP, Red Hat, IBM и Dell. Однако основная часть разработчиков дистрибутивов, включая и тех, кто входит в состав Free Standards Group, не следует стандарту полностью. В частности, пути, специально созданные группой, такие как /srv, практически нигде не используются. Некоторые Linux-системы отвергают FHS и следуют своему собственному стандарту, как, например, GoboLinux.
Так как FHS начиналась как инициатива Linux-сообщества, другие UNIX и UNIX-подобные операционные системы полностью игнорируют её в пользу своих собственных систем, которые иногда распространены довольно широко. Например, Mac OS X использует такие имена, как /Library/, /Applications/ и /Users/ вместе с традиционными именами UNIX-иерархии.
Структура каталогов

В FHS все файлы и каталоги находятся внутри корневого каталога[2], даже если они расположены на различных физических носителях. Однако некоторые из каталогов могут присутствовать только в случае, если установлено определённое программное обеспечение, такое как, например, X Window System.
Большая часть этих каталогов существует во всех UNIX-подобных операционных системах, в том числе BSD и MacOS и используется похожим образом[2].
| Каталог | Описание |
|---|---|
/
|
Корневой каталог, содержащий всю файловую иерархию. |
| Основные утилиты, необходимые как в однопользовательском режиме, так и при обычной работе всем пользователям (например: cat, ls, cp). | |
Загрузочные файлы (в том числе файлы загрузчика, ядро, initrd, System.map). Часто выносится на отдельный раздел.
| |
Основные файлы устройств (например, /dev/null, /dev/zero).
| |
| Общесистемные конфигурационные файлы (имя происходит от лат. et cetera). | |
|
Файлы конфигурации для /opt.
|
|
Файлы конфигурации X Window System версии 11. |
|
Конфигурационные файлы SGML. |
|
Конфигурационные файлы XML. |
| Содержит домашние каталоги пользователей, которые в свою очередь содержат персональные настройки и данные пользователя. Часто размещается на отдельном разделе. | |
Каталог для статических и динамических библиотек, необходимых для запуска программ, находящихся в директориях /bin и /sbin, с такими именами файлов библиотеки как: ld* или lib*.so.*
| |
|
Точки монтирования для сменных носителей, таких как CD-ROM, DVD-ROM (впервые описано в FHS-2.3). |
|
Содержит временно монтируемые файловые системы. |
|
Дополнительное программное обеспечение. |
| Виртуальная файловая система, представляющая состояние ядра операционной системы и запущенных процессов в виде файлов. | |
| Домашний каталог пользователя root. | |
|
Информация о системе с момента её загрузки, в том числе данные, необходимые для работы демонов (pid-файлы, UNIX-сокеты и т. д.)[4]. |
|
Основные системные программы для администрирования и настройки системы, например, init, iptables, ifconfig. |
|
Данные для сервисов, предоставляемых системой (например, www или ftp). |
|
Содержит информацию об устройствах, драйверах, а также некоторых свойствах ядра[5]. |
|
Временные файлы (см. также /var/tmp).
|
| Вторичная иерархия файловой системы, доступная пользователям только для чтения и предназначенная для хранения пользовательских программ и данных. Она содержит большинство пользовательских приложений и утилит, используемых в многопользовательском режиме, может быть смонтирована по сети только для чтения и быть общей для нескольких машин[6]. | |
|
Дополнительные программы для всех пользователей, не являющиеся необходимыми в однопользовательском режиме. |
|
Стандартные заголовочные файлы. |
|
Библиотеки для программ, находящихся в /usr/bin и /usr/sbin.
|
|
Третичная иерархия файловой системы, предназначена для специфичных для конкретного хоста данных. Обычно /usr/local содержит подкаталоги bin, lib, share[a].
|
|
Дополнительные системные программы (такие как демоны различных сетевых сервисов). |
|
Архитектурно-независимые общие данные. |
|
Исходные коды (например, здесь располагаются исходные коды ядра). |
| Изменяемые файлы, такие как файлы регистрации, временные почтовые файлы, файлы спулеров. | |
|
Кэш приложений. Такие данные генерируются локально в результате ресурсозатратных вычислений или операций ввода-вывода. Приложение обязано уметь регенерировать эти данные. Данные файлы могут быть удалены без потери данных. |
|
Информация о состоянии. Постоянные данные, изменяемые программами в процессе работы (например, базы данных, метаданные пакетного менеджера и др.). |
|
Файлы блокировки, указывающие на занятость некоторого ресурса. |
|
Различные файлы регистрации. |
|
Почтовые ящики пользователей. |
|
Каталог для хранения информации о системе с момента её загрузки, в 3 версии FHS указан как устаревший. В FHS 3.0 допускается делать /var/run символической ссылкой на /run. Этот каталог оставлен для обратной совместимости с программами, которые всё ещё используют каталог /var/run[7].
|
|
Задачи, ожидающие обработки (например, очереди печати, непрочитанные или неотправленные письма). |
|
Местоположение пользовательских почтовых ящиков (устаревшее). |
|
Временные файлы, которые должны быть сохранены между перезагрузками. |
Разделение на системные и пользовательские каталоги
Разделение на системные (например, /etc, /bin) и пользовательские каталоги необходимо для следующих целей:
- Упрощение резервного копирования. Системные файлы обычно просто установлены с дистрибутива и наибольшую ценность представляют личные файлы пользователя.
- Безопасность. Обычно пользователь имеет доступ на запись только в домашний каталог, так что в случае запуска «червя» он не сможет заразить системные файлы.
- Совместный доступ из разных ОС:
- можно установить несколько систем на один компьютер, назначив им один домашний надкаталог;
- можно хранить системные файлы на отдельном сервере, а на тонком клиенте хранить только каталог /home;
- можно обеспечить сотруднику доступ с любого компьютера фирмы, разместив каталог /home на сервере с домашними каталогами всех сотрудников.
Домашний каталог суперпользователя (root) находится в /root, а не в /home/root, так как учётная запись суперпользователя предназначена исключительно для администрирования операционной системы. Это помогает повысить надёжность системы: /root обычно располагается на том же разделе, где и система, что позволяет производить обслуживание и настройку операционной системы, смонтировав лишь корневой раздел.
Комментарии
- ↑ Исторически и строго следуя стандарту,
/usr/localявляется хранилищем данных, которые должны храниться на локальном хосте в противоположность/usr, которая может монтироваться по сети. Однако обычно/usrредко монтируется удалённо, а/usr/localчаще используется для установки программного обеспечения и данных, которые не являются частью дистрибутива Linux (в этом случае/usrдолжен содержать программы и данные только из стандартного дистрибутива). Возможно, в будущем стандарт FHS будет изменён для отражения этой устоявшейся практики.
Примечания
- ↑ https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf
- ↑ 1 2 3 4 Prakash, 2023.
- ↑ McCloghrie, 1994.
- ↑ 3.15. /run : Run-time variable data // Filesystem Hierarchy Standard : [англ.] : [арх. 8 марта 2018]. — Ver. 3.0. — The Linux Foundation, 2015. — 3 June.
- ↑ /sys : Kernel and system information virtual filesystem // Filesystem Hierarchy Standard : [англ.] : [арх. 1 июня 2017]. — Ver. 3.0. — The Linux Foundation, 2015. — 3 June.
- ↑ FHS2.3, 2004, 4.1. Purpose, p. 18.
- ↑ 5.13. /var/run : Run-time variable data // Filesystem Hierarchy Standard : [англ.] : [арх. 4 февраля 2018]. — Ver. 3.0. — The Linux Foundation, 2015. — 3 June.
Литература
- McCloghrie, I. FSSTND FAQ. — 1994. — 9 октября.
- Стандарт на структуру каталогов файловой системы. (Filesystem Hierarchy Standard) = Filesystem Hierarchy Standard, 2001 : [пер. с англ.] / Ред.: П. Рассел (Paul 'Rusty' Russell), Д. Квинлан (Daniel Quinlan) Filesystem Hierarchy Standard Group; пер.: В. А. Костромин // OpenNET. — 2003.
- Filesystem Hierarchy Standard : [англ.]. — Ver. 3.0. — The Linux Foundation, 2015. — 19 March. — [2]+v+43 p.
- Filesystem Hierarchy Standard : [англ.]. — Ver. 2.3. — The Linux Foundation, 2004. — 29 January. — [2]+vi+46 p.
- 3.2. Overview of File System Hierarchy Standard (FHS) // Red Hat Enterprise Linux 4 Reference Guide : [англ.]. — Red Hat.
- Браун, Крис. Тур по файловой системе Linux // Linux Format : журн. — 2007. — № 95 (август). — С. 48—51.
Ссылки
- pathname.com/fhs/ (англ.) — официальный сайт Filesystem Hierarchy Standard
- refspecs.linuxfoundation.org/fhs.shtml (англ.) — официальный сайт Filesystem Hierarchy Standard Linux Foundation
- Зарубин, И. Для чего нужен каждый каталог в Linux или структура директорий ОС Линукс // IT Shaman. — 2009. — 3 мая.
- Linux Directory Structure and File System Hierarchy : [англ.] // Linux Training Academy.
- Prakash, A. Linux Directory Structure Explained for Beginners : [англ.] // Linux Handbook. — 2023. — 19 October.
- 04-E.12.1: Linux Directory Structure - Hierarchy : [англ.] : [арх. 23 января 2022] // LibreTexts. — 2021. — 23 April.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
