Файловая система - это набор файлов, каталогов и других структур. Файловые системы предназначены для хранения информации и распределения по дискам данных файлов и каталогов. Помимо файлов и каталогов файловые системы включают главный блок, карты размещения, а также одну или несколько групп размещения. Группа размещения состоит из i-узлов и областей. Каждая файловая система занимает один логический том.
Главный блок занимает 4096 байт на диске и располагается, начиная с байта со смещением 32768. В следующих полях главного блока хранится информация обо всей файловой системе:
В файловой системе предусмотрено две карты размещения:
Логический блок содержит данные одного файла или каталога. Дисковая память логического блока выделяется блоками файловой системы. Каждому файлу и каталогу соответствует i-узел, содержащий информацию о доступе, такую как тип файла, права доступа, ИД владельца и число связей с данным файлом. Кроме того, i-узлы содержат "двоичное (B+) дерево", позволяющее найти расположение на диске любого участка файла.
Группы размещения делят пространство файловой системы на участки. Группы размещения - чисто эвристическое понятие; они позволяют стратегиям размещения ресурсов JFS2 применять стандартные способы для увеличения производительности ввода-вывода. Стратегия размещения сначала пытается объединить блоки и i-узлы связанных данных для увеличения локальности доступа к диску. Чтение и запись файлов часто происходит последовательно, и файлы в одном каталоге часто используются один за другим. Затем стратегия размещения пытается распределить несвязанные данные по файловой системе также для увеличения локальности доступа.
Группы размещения файловой системы идентифицируются по индексу, или номеру группы (начинается с нуля).
Размеры групп размещения должны выбираться таким образом, чтобы обеспечить последовательный доступ к большому объему данных. Всего может быть не больше 128 групп размещения. Минимальный размер группы размещения - 8192 блоков файловой системы.
Файловая система, размер которой не кратен размеру группы размещения, содержит одну неполную группу размещения; последняя группа размещения файловой системы содержит меньшее число блоков, чем остальные. Эта неполная группа размещения ничем не отличается от обычной, кроме того, что несуществующие блоки в ее карте размещения помечены как занятые.
При работе с файловой системой наиболее часто используются следующие
функции:
fscntl | Выполняет операции по управлению файловой системой |
getfsent, getfsspec, getfsfile , getfstype, setfsent и endfsent | |
Позволяют получать информацию о файловой системе | |
lseek | Перемещает указатель чтения/записи |
mntctl | Возвращает информацию о состоянии монтирования |
vmount и mount | Переводят файловую систему в состояние готовности к работе |
statfs, fstsfs и ustat | Позволяют получить статистическую информацию о файловой системе |
sync | Записывает обновления в файловой системе на диск |
Для работы с виртуальными файловыми
системами (VFS) предназначены следующие функции:
getvfsent, getvfsbytype, getvfsbyname, getvfsbyflag, sevfsent и endvfsent | |
Считывают запись VFS | |
umount и uvmount | Удаляют VFS из дерева файлов |
Команда mkfs
Глава 5, Файловые системы и каталоги
Глава 13, Создание программ, работающих с логическими томами
Создание журнализированной файловой системы на новом логическом томе
Создание новых типов файловых систем