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

Filesystem Hierarchy Standard - 6.1 Linux


Filesystem Hierarchy Standard - 6.1 Linux Стандарт на структуру каталогов файловой системы. (Filesystem Hierarchy Standard) Linux

Настоящее дополнение к стандарту относится только к операционной системе Linux. / : Корневой каталог

В Linux-системах, если ядро расположено в /, мы рекомендуем использовать для него названия vmlinux или vmlinuz, которые используются в последних версиях исходных кодов ядра Linux. /bin : Основные исполняемые файлы команд пользователя (доступные всем пользователям)

Linux-системы, в которых следующие файлы требуются, должны помещать их в /bin.

  • { setserial }

/dev : Устройства и специальные файлы

Все устройства и специальные файлы в /dev должны соответствовать документу Linux Allocated Devices, который поставляется в составе исходных кодов ядра. Он поддерживается Питером Анвином (H. Peter Anvin) <адрес пропущен>.

Символические ссылки в каталоге /dev должны устанавливаться в Linux-системах не иначе как в соответствии с документом Linux Allocated Devices. НАЧАЛО ПОЯСНЕНИЙ
Требование не создавать символических ссылок произвольным образом выдвигается потому, что локальные установки часто отличаются от ссылок, создаваемых программами установки от разработчиков. Кроме того, если установочный скрипт дистрибутива создает символические ссылки во время инсталляции, эти ссылки часто не обновляются при локальных изменениях в аппаратном обеспечении. Если же ответственно относиться к ним на локальном уровне, они могут использоваться.
КОНЕЦ ПОЯСНЕНИЙ
/etc : Специфичная для данного хоста конфигурационная информация

Если в Linux-системе следующие файлы требуются, они должны размещаться в /etc.

  • { lilo.conf }

/proc : Виртуальные файловые системы для хранения информации о ядре и процессах

Файловая система proc является фактически стандартным для Linux методом обработки информации о системе и процессах, в отличие от других систем, использующих /dev/kmem и другие подобные методы. Мы настоятельно рекомендуем использовать proc для хранения и получения информации о процессах, а также информации о ядре и памяти. /sbin : Основные системные утилиты

В Linux-системах следующие дополнительные файлы размещаются в /sbin.

  • Команды для управления файловой системой ext2fs (Second extended filesystem) (optional):
    • { badblocks, dumpe2fs, e2fsck, mke2fs, mklost+found, tune2fs }
  • Программа установки загрузчика системы (optional):
    • { lilo }
Дополнительные файлы в /sbin:
  • Неизменяемые исполняемые файлы:


    • { ldconfig, sln, ssync }
    Статические исполняемые файлы ln (sln) и sync (ssync) используются в тех случаях, когда нормальный ход вещей нарушается. Основное назначение sln (восстанавливать некорректные символические ссылки в /lib после плохо организованного обновления) потеряло теперь былую важность, потому что имеется программа ldconfig (обычно расположенная в /usr/sbin), которая используется для обновления динамических библиотек. Программа sync полезна в некоторых критических ситуациях. Заметим, что эти файлы не обязаны, но могут быть ссылками на стандартные программы ln и sync. Программа ldconfig не обязана размещаться в /sbin, поскольку сайт может использовать запуск ldconfig на этапе начальной загрузки, а не только во время обновления разделяемых библиотек. (Не ясно, имеются ли какие-то преимущества в запуске ldconfig при каждой загрузке системы.) Но даже если это так, некоторые люди любят использовать ldconfig в следующих (часто встречающихся) ситуациях:
    1. Я только что удалил /lib/<file>.
    2. Я не могу узнать (разыскать) имя библиотеки, потому что ls связано динамически (is dynamically linked), я использую оболочку, которая не имеет встроеной команды ls, а я не знаю, что вместо нее можно использовать "echo *".
    3. У меня есть статическая ссылка sln, но я не знаю, что она вызывает.
  • Разное:
    • { ctrlaltdel, kbdrate }
    Чтобы найти выход из ситуации, когда некоторые клавиатуры поставляются с такой высокой скоростю повторения, что оказываются непригодны к использованию, kbdrate может быть в некоторых системах установлена в /sbin. Поскольку действием, которое ядро по умолчанию связывает с нажатием комбинации клавиш Ctrl-Alt-Del, является немедленная перезагрузка, обычно рекомендуется отменить отменить такое поведение перед монтированием корневой файловой системы в режиме только для чтения. Некоторые варианты демона init способны отменить действие Ctrl-Alt-Del, а другие требуют наличия программы ctrlaltdel, которая может быть установлена в таких системах в каталоге /sbin.
/usr/include : Файлы заголовков, включаемые в программы на C Эти символические ссылки требуются, если компиляторы языков C или C++ установлены и только для систем, не основанных на glibc. /usr/include/asm -> /usr/src/linux/include/asm-<arch> /usr/include/linux -> /usr/src/linux/include/linux /usr/src : Исходные коды Для систем, основанных на glibc, нет никаких специфических правил для этого каталога.


Для систем, основанных на версиях библиотеки libc, предшествующих glibc, применяются следующие правила: Единственными исходными кодами, которые должны быть размещены в определенном месте, являются исходные коды ядра Linux. Они размещаются в /usr/src/linux. Если установлен компилятор C или C++, а полная версия исходных кодов ядра не установлена, то подключаемые файлы из исходных кодов ядра должны размещаться в следующих каталогах: /usr/src/linux/include/asm-<arch> /usr/src/linux/include/linux где <arch> - название архитектуры системы (например, i386). Замечание: /usr/src/linux может быть символической ссылкой на дерево каталогов с исходными кодами ядра. НАЧАЛО ПОЯСНЕНИЙ
Важно, чтобы подключаемые файлы ядра были расположены в /usr/src/linux, а не в /usr/include, так чтобы не было проблем, когда системные администраторы обновляют версию ядра в первый раз.
КОНЕЦ ПОЯСНЕНИЙ
/var/spool/cron : Задания для демонов cron и at Этот каталог содержит переменные данные для программ-демонов cron и at.

Содержание раздела