Новичку — Краткий перевод описания стандарта иерархии файловой системы Unix-like ОС (Часть 1)
Наткнулся тут недавно на описание стандарта иерархии файловой системы для Unix подобных систем.
Крайний стандарт датируется 29 января 2004 года и обозначен версией 2.3. Решил вот его немного перевести и чуть ужать. Собственно небольшая первая часть.
Введение
Собственно зачем нужен данный стандарт. А нужен он для того, чтобы:
Таким образом, данный стандарт определяет:
Стандарт предполагает, что операционная система, совместимая с описываемым стандартом, поддерживает базовые возможности обеспечения безопасности, которые можно обнаружить в большинстве файловых систем UNUX.
Так же, должно быть возможно провести разделение на две независимых группы, относящихся к файлам: "разделяемые и не "разделяемые", "изменяемые" и "статичные(не изменяемые)".
В основном это означает, что файлы, которые относятся к различным группам должны быть расположены в различных директориях. Такое разделение упрощает хранение файлов, предназначенных для различных целей в различных файловых системах.
Под "разделяемым" файлом подразумевается, что он может храниться на одном хосте и использоваться на других. Под "не разделяемым" файлом подразумевается, что файл используется только на том хосте, где он хранится. Например, файлы, располагаемые в домашней директории пользователя являются "разделяемыми", в то время как файлы "блокировки" устройств таковыми не являются.
Под "статичными" файлами понимают двоичные файлы, файлы библиотек, файлы документации и другие файлы, которые изменяются только в результате действий администратора системы.
Под "изменяемыми" файлами понимают же все остальные файлы, не относящиеся к "статичным".
Поясню вышеописанное на примере:
2. Корневая файловая система
2.1 Назначение и общая структура
Корневая файловая система должна обеспечивать возможность загрузки системы и ее восстановления.
Корневая файловая система должна содержать следующие директории или символические ссылки:
Следующие директории или символические ссылки так же должны находиться в корневой ФС, если конечно установлена и используется соответствующая подсистема:
3.1 Назначение
/bin содержит команды, которые могут быть использованы как администратором системы, так и рядовым пользователем, но которые требуются тогда, когда не подмонтированы другие файловые системы (например в однопользовательском режиме). Директория так же может содержать команды, которые используются скриптами не напрямую.
3.2 Требования, предъявляемые к /bin
В каталоге /bin не должно быть подкаталогов.
Следующие команды или символические ссылки на команды должны присутствовать в /bin:
Если /bin/sh в действительности не является командны интерпретатором Bourne, то /bin/sh должно быть символической или жесткой ссылкой на реальный командный интерпретатор.
Команды [ и test должны располагаться как в /bin так и в /usr/bin.
3.3 Дополнительные сведения
Следующие программы или символические ссылки на них должны находиться в /bin, если они установлены:
Если программы gunzip и zcat существуют в системе, то они должны быть представлнеы символическими или жесткими ссылками на утилиту gzip. /bin/csh может быть ссылкой на /bin/tcsh или /usr/bin/tcsh.
4. /boot: неизменяемые файлы загрзчика
4.1 Назначение
Данная директория содержит все, что необходимо для процесса загрузки, за исключением конфигурационных файлов, не требуемых во время загрузи и отображения инсталятора. Таким образом /boot хранит данные, которые используются перед тем, как ядро начнет выполнять программы из пространства пользователя. Эти данные могут включать в себя сохраненую главную загрузочную запись (MBR) или файл карты секторов.
4.2 Дополнительные сведения
Ядро операционной системы должно быть расположено как в / так и в /boot.
5. /dev: файлы устройств
5.1 Назначение
Директория /dev предназначена для хранения специальных файлов или файлов устройств.
5.2 Дополнительная информация
Если это возможно, то файлы устройств в /dev должны создаваться вручную, /dev/ должна содержать команду с именем MAKEDEV, которая может создавать устройства если это необходимо. Директория /dev так же может включать в себя MAKEDEV.local для любых локальных устройств.
Если необходимо, то для MAKEDEV должны быть обеспечены условия для создания любого устройства, которое может быть обнаружено в системе, за исключением тех устройств, которые были установлены какой-то спецефической реализацией системы.
Перевод и трактовка - моя :).
Ссылка на полное описание стандарта (англ.): http://www.pathname.com/fhs/.
Надеюсь, продолжение следует :).
Крайний стандарт датируется 29 января 2004 года и обозначен версией 2.3. Решил вот его немного перевести и чуть ужать. Собственно небольшая первая часть.
Введение
Собственно зачем нужен данный стандарт. А нужен он для того, чтобы:
- софт мог определять, где находятся необходимые ему файлы и директории;
- пользователь мог определять местоположение установленных файлов и директорий.
Таким образом, данный стандарт определяет:
- предназначение каждой области файловой системы;
- минимально необходимый набор файлов и директорий;
- список исключений из правил формирования иерархии;
- список ситуаций где могут случиться конфликты в силу исторических причин.
Стандарт предполагает, что операционная система, совместимая с описываемым стандартом, поддерживает базовые возможности обеспечения безопасности, которые можно обнаружить в большинстве файловых систем UNUX.
Так же, должно быть возможно провести разделение на две независимых группы, относящихся к файлам: "разделяемые и не "разделяемые", "изменяемые" и "статичные(не изменяемые)".
В основном это означает, что файлы, которые относятся к различным группам должны быть расположены в различных директориях. Такое разделение упрощает хранение файлов, предназначенных для различных целей в различных файловых системах.
Под "разделяемым" файлом подразумевается, что он может храниться на одном хосте и использоваться на других. Под "не разделяемым" файлом подразумевается, что файл используется только на том хосте, где он хранится. Например, файлы, располагаемые в домашней директории пользователя являются "разделяемыми", в то время как файлы "блокировки" устройств таковыми не являются.
Под "статичными" файлами понимают двоичные файлы, файлы библиотек, файлы документации и другие файлы, которые изменяются только в результате действий администратора системы.
Под "изменяемыми" файлами понимают же все остальные файлы, не относящиеся к "статичным".
Поясню вышеописанное на примере:
1 2 3 4 5 6 7 8 |
|
2. Корневая файловая система
2.1 Назначение и общая структура
Корневая файловая система должна обеспечивать возможность загрузки системы и ее восстановления.
Корневая файловая система должна содержать следующие директории или символические ссылки:
- bin - необходимые двоичные командные файлы
- boot - неизменяемые файлы загрузчика
- dev - файлы устройств
- etc - системные файлы конфигурации
- lib - необходимые разделяемые библиотеки и модули ядра
- media - точка монтирования для съемных устройств (CD\DVD-ROM диски, Flash диски и т.п.)
- mnt - точка для временного монтирования файловых систем
- opt - для хранения файлов различного прикладного ПО
- sbin - необходимые системные двоичные файлы
- srv - данные от служб, предоставляемых системой
- tmp - временные файлы
- usr - вторичная(или вторая) иерархия
- var - для изменяемых данных
Следующие директории или символические ссылки так же должны находиться в корневой ФС, если конечно установлена и используется соответствующая подсистема:
- home - директория для хранения личных данных пользователей (опционально)
- lib[qual] - альтернативный формат необходимых разделяемых библиотек (опционально, например это может быть /lib32 на 64 разрядных системах для хранения 32 разрядных разделяемых библиотек)
- root - директория для хранения личных данных суперпользователя (опционально)
3.1 Назначение
/bin содержит команды, которые могут быть использованы как администратором системы, так и рядовым пользователем, но которые требуются тогда, когда не подмонтированы другие файловые системы (например в однопользовательском режиме). Директория так же может содержать команды, которые используются скриптами не напрямую.
3.2 Требования, предъявляемые к /bin
В каталоге /bin не должно быть подкаталогов.
Следующие команды или символические ссылки на команды должны присутствовать в /bin:
- cat - утилита для конкатенации файлов в стандартный поток вывода
- chgrp - утилита для смены группы владельца файла
- chmod - утилита для смены прав доступа к файлу
- chown - утилита для смены владельца и группы файла
- cp - утилита для копирования файлов и директорий
- date - утилита для печати или установки системной даты и времени
- dd - утилита для конвертирования и копирования файла
- df - утилита для печати используемого места файловой системой на диске
- dmesg - утилита для печати или управления буфером сообщений ядра
- echo - утилита для отображения текстовой строки
- false - утилита которая ничего не делает, возвращает ложное значение
- hostname - утилита для печати или установки имени хоста
- kill - утилита для посылки сигналов процессам
- ln - утилита для создания ссылок между файлами
- login - утилита для создания сессии для входа в систему
- ls - утилита для получения списка содержимого директории
- mkdir - утилита для создания директорий
- mknod - утилита для создания блочных или символьных специальных файлов
- more - утилита для постраничного перелистывания текста
- mount - утилита для монтирования файловых систем
- mv - утилита для перемещения/переименования файлов
- ps - утилита для получения состояния процессов
- pwd - утилита для печати текущей рабочей директории
- rm - утилита для удаления файлов или директорий
- rmdir - утилита для удаления пустых директорий
- sed - потоковый текстовый редактор "sed"
- sh - командный интерпретатор Bourne (The Bourne command shell)
- stty - утилита для изменения или печати строки настроек терминала
- su - утилита для смены идентификатора пользователя
- sync - утилита для сброса содержимого буфера файловой системы на носитель
- true - утилита которая ничего не делает, возвращает истинное значение
- umount - утилита для размонтирования примонтированных файловых систем
- uname - утилита для вывода системной информации
Если /bin/sh в действительности не является командны интерпретатором Bourne, то /bin/sh должно быть символической или жесткой ссылкой на реальный командный интерпретатор.
Команды [ и test должны располагаться как в /bin так и в /usr/bin.
3.3 Дополнительные сведения
Следующие программы или символические ссылки на них должны находиться в /bin, если они установлены:
- csh - оболочка C (опционально)
- ed - редактор "ed" (опционально)
- tar - утилита архивирования tar (опционально)
- cpio - утилита архивирования cpio (опционально)
- gzip - GNU утилита сжатия(упаковки) (опционально)
- gunzip - GNU утилита распаковки
- zcat - GNU утилита распаковки
- netstat - утилита отображающая сетевую статистику
- ping - утилита проверки сети по протоколу ICMP
Если программы gunzip и zcat существуют в системе, то они должны быть представлнеы символическими или жесткими ссылками на утилиту gzip. /bin/csh может быть ссылкой на /bin/tcsh или /usr/bin/tcsh.
4. /boot: неизменяемые файлы загрзчика
4.1 Назначение
Данная директория содержит все, что необходимо для процесса загрузки, за исключением конфигурационных файлов, не требуемых во время загрузи и отображения инсталятора. Таким образом /boot хранит данные, которые используются перед тем, как ядро начнет выполнять программы из пространства пользователя. Эти данные могут включать в себя сохраненую главную загрузочную запись (MBR) или файл карты секторов.
4.2 Дополнительные сведения
Ядро операционной системы должно быть расположено как в / так и в /boot.
5. /dev: файлы устройств
5.1 Назначение
Директория /dev предназначена для хранения специальных файлов или файлов устройств.
5.2 Дополнительная информация
Если это возможно, то файлы устройств в /dev должны создаваться вручную, /dev/ должна содержать команду с именем MAKEDEV, которая может создавать устройства если это необходимо. Директория /dev так же может включать в себя MAKEDEV.local для любых локальных устройств.
Если необходимо, то для MAKEDEV должны быть обеспечены условия для создания любого устройства, которое может быть обнаружено в системе, за исключением тех устройств, которые были установлены какой-то спецефической реализацией системы.
Перевод и трактовка - моя :).
Ссылка на полное описание стандарта (англ.): http://www.pathname.com/fhs/.
Надеюсь, продолжение следует :).