Системное и прикладное программное обеспечение. Общая классификация ПО. Принципы построения ОС. Управление ресурсами: файловые системы, страница 7

Разделы, описанные в MBR, называются первичными, их может быть не более четырех. При необходимости иметь большее число логических дисков, создаются вторичные разделы. Для этого один из первичных разделов помечается как расширенный (EXTEND). Первый сектор расширенного раздела содержит собственную таблицу разделов, в которой может быть описано до 4-х вторичных разделов (среди которых один снова может быть расширенным и содержать свои подразделы). Общее число разделов на диске не ограничено.

Каждый раздел (кроме расширенных) образует логический диск, в пределах которого принята своя сквозная логическая нумерация секторов (начиная с 0). На каждом разделе может быть сформирована своя файловая система.

Файловую систему (ФС) можно определить как организацию хранения файлов на дисковом накопителе.

1.3.2. Файловая система FAT.

Файловая система FAT названа по своему отличительному структурному элементу — таблице размещения файлов (FAT – file allocation table).

Элементы файловой системы:

boot record — загрузочный сектор,

FAT1 — первая копия таблицы размещения,

FAT2 — резервная копия таблицы размещения,

root dir — корневой каталог,

data area — область данных.

Загрузочный сектор хранит параметры ФС:

размер кластера в секторах,

разрядность FAT,

размер корневого каталога.

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

Рис. 3. Область  FAT  в программе diskeditor.

В таблице размещения файлов FAT (см. Рис. 3) каждая ячейка соответствует кластеру и содержит число, которое может означать:

0 – кластер свободен,

<EOF> – кластер последний в файле,

<BAD> – плохой кластер,

иначе – номер следующего кластера, принадлежащего файлу.

Назначение FAT: определяет расположение фрагментов файлов.

Каталог представляет собой массив записей вида:

имя файла (8 символов),

расширение (3 символа),

время создания,

размер файла в байтах,

номер начального кластера,

атрибуты (r/o, системный, каталог, метка).

Специальные значения первого символа имени:

0xE5 – файл удален,

0 – конец каталога.

Каталоги имеют специальный атрибут и нулевой размер.

Длинные имена файлов используют несколько записей каталогов и записываются в особом формате.

На рис. 4 приведен скриншот программы diskeditor, где отображено содержимое корневого каталога.

Рис. 4. Корневой каталог в программе diskeditor.

Область данных содержит файлы и каталоги, кроме корневого. Разбита на кластеры, которые нумеруются с 2. Кластер представляет собой более крупную единицу адресации данных по сравнению с сектором и объединяет 2n секторов, где n задается при форматировании.

Таблица размещения файлов может иметь разрядность 12, 16 или 32 бит. Версия FAT32 имеет некоторые особенности, в частности, корневой каталог находится в области данных и, соответственно, может иметь произвольный размер.

1.3.3. Файловая система UNIX (ext2fs).

Общая структура. Диск разбит на блоки заданного размера (от 512б до 8 кб)

Основные элементы:

– суперблок,

– область INOD-s (8% объема),

– область данных.

Суперблок. Содержит:

– тип ФС,

– размер всей ФС в блоках,

– размер массива INOD,

– количество свободных блоков,

– размер блока,

– список номеров свободных INOD,

– список адресов свободных блоков.

INOD. Index node – индексный дескриптор. Сопоставлен каждому файлу или каталогу. INOD содержит:

– номер,

– тип файла (каталог, файл, канал),

– права доступа,

– количество ссылок из каталогов,

– ID пользователя и группы владельца,

– время,

– указатели на блоки (13 штук).

Указатели на блоки файла.

С 1 по 10 – непосредственные указатели – номера блоков,

11-й – косвенный блок 1-го уровня,

12-й – косвенный блок 2-го уровня,

13-й – косвенный блок 3-го уровня,

Пример: 199865 = 5 + 12*256 + 3*256*256.

Рис. 5. Просмотр INOD в программе lde.

На рис. 5 приведен пример просмотра содержимого индексного дескриптора в программе lde — Linux disk editor.