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

Эта глава основана на стандарте файловой системы Linux FSSTND версии 1.2, разработанном для стандартизации организации структуры каталогов в Linux. Он помогает упростить разработку и портирование программного обеспечения для Linux, а также облегчает администрирование системы. При создании FSSTND учитывались традиции и актуальные тенденции развития Unix, что приближает Linux к профессиональным Unix-системам.

Эта глава не является столь подробным руководством, как сам FSSTND. Для полного понимания всех аспектов рекомендуется изучить оригинальный стандарт.

В данной главе не рассматриваются форматы файлов и другие технические детали. Основная цель — дать обзор структуры файловой системы в целом.

Построение структуры каталогов предполагает её деление на отдельные части, каждая из которых может быть размещена на разных дисках или их разделах. Это облегчает контроль за объемом дискового пространства, создание резервных копий и другие задачи системного администратора. К основным частям относятся файловые системы root, /usr, /var и /home. Структура каталогов разработана с учётом работы в сетевом режиме, позволяя распределять её части с помощью различных устройств или через сеть с использованием NFS.

Далее рассматривается предназначение разных частей структуры каталогов. Файловая система root содержит все необходимые файлы для загрузки и старта системы, после чего могут быть смонтированы другие файловые системы. Она также включает инструменты для восстановления поврежденных файловых систем и работы с резервными копиями.

В файловой системе /usr расположены все команды, программы, библиотеки, документация и другие файлы, необходимые для стандартной работы системы. Ни один из файлов этой системы не должен быть специфичным для конкретной машины или изменяться в процессе работы. Это позволяет распределять файлы по сети, экономя дисковое пространство и упрощая администрирование. Даже если /usr расположена на локальном диске, рекомендуется монтировать её в режиме read-only для предотвращения случайных повреждений.

Файловая система /var содержит различные изменяемые в процессе работы файлы, такие как буферные каталоги, журналы, отформатированные страницы руководств и временные файлы. Вся информация в /var обычно извлекается из /usr, что позволяет монтировать /usr в режиме read-only.

В файловой системе /home находятся пользовательские каталоги. Размещение /home в отдельной директории или файловой системе облегчает создание резервных копий. При увеличении объема данных, его можно разделить на несколько файловых систем, например, /home/students или /home/staff.

Хотя выше различные части назывались файловыми системами, они могут быть расположены на одном диске. Структура каталогов может быть различной в зависимости от объема дискового пространства и его распределения. Главное, чтобы стандартные пути файлов соответствовали действительности.

В Unix-системах файлы группируются по назначению: все команды находятся в одном месте, файлы данных — в другом, документация — в третьем и так далее. Альтернативой этому является группировка файлов по программам. Это может затруднить поиск файлов, например, документации к программе.