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

Логический раздел, отформатированный под файловую систему FAT (File Allocation Table), состоит из следующих областей.

1. Загрузочный сектор содержит программу начальной загрузки операционной системы. Вид этой программы зависит от типа операционной системы.

2. Основная копия FAT содержит информацию о размещении файлов и каталогов на диске.

3. Резервная копия FAT

4. Корневой каталог – занимает фиксированную область размером в 32 сектора (16 Кбайт), что позволяет хранить 512 записей о файлах и каталогах, т.к. каждая запись каталога состоит из 32 байт.

5. Область данных предназначена для размещения всех файлов и всех каталогов, кроме корневого каталога.

Файловая система FAT поддерживает всего 2 типа файлов: обычный файл и каталог. Таблица FAT (как основная, так и резервная) состоит из массива индексных указателей, количество которых равно количеству кластеров области данных. Между кластерами и индексными указателями имеется взаимно однозначное соответствие – нулевой указатель соответствует нулевому кластеру и т.д.

Индексный указатель может принимать следующие значения, характеризующие состояние связанного с ним кластера:

§ кластер свободен (не используется);

§ кластер используется файлом и не является последним кластером файла; в этом случае индексный указатель содержит номер следующего кластера файла;

§ последний кластер файла;

§ дефектный кластер;

§ резервный кластер.

Файл представляет собой связанный список всех кластеров, входящих в его состав. Когда программа отправляет запрос к операционной системе с требованием предоставить ей содержимое какого-то файла ОС просматривает запись каталога для него, чтобы найти первый кластер этого файла. Затем она обращается к элементу FAT для данного кластера, чтобы найти следующий кластер в цепочке. Повторяя этот процесс, пока не обнаружит последний кластер файла, ОС точно определяет, какие кластеры принадлежат данному файлу и в какой последования. Таким путем система может предоставить программе любую часть запрашиваемого ею файла. Такой способ организации файла носит название цепочки FAT.

 

Рисунок 3 Списки индексных указателей FAT

Существует несколько разновидностей FAT, отличающихся разрядностью индексных указателей, которая и используется в качестве условного обозначения: FAT12, FAT16 и FAT32. В файловой системе FAT12 используются 12 разрядные указатели, что позволяет поддерживать до 4096 кластеров, в FAT16 до 65536 и в FAT32 более 4 миллиардов кластеров.

 

Ввиду того, что разрядность ФС величина постоянная, для форматирования дисков различных размеров будут применяться разные размеры кластеров. Например, чтобы отформатировать диск более 1 Гб, нужно применять кластер 32 Кб. Поскольку такой размер кластера является максимально допустимым в этой ФС, то можно определить, что максимальный размер раздела, форматируемый под FAT, равен 2 Гб. FAT12 применяется в основном для дискет, FAT16 — для дисков малого объёма.

 

Одной из важнейших характеристик исходной файловой системы FAT12 и FAT16 было использование имен файлов формата 8.3. К стандартной системе FAT (имеется в виду прежде всего реализация FAT16) добавились еще две разновидности, используемые в широко распространенных ОС от Microsoft (конкретно — в Windows 95 и Windows NT): VFAT (виртуальная система FAT) и система FAT32. Файловая система VFAT впервые появилась в Windows 3.11 (Windows for Workgroups). С выходом Windows 95 в VFAT добавилась поддержка длинных имен файлов (Long File Name, LFN). Тем не менее, VFAT сохраняет совместимость с исходным вариантом FAT; это означает, что наряду с длинными именами в ней поддерживаются имена формата 8.3, а также существует специальный механизм для преобразования имен 8.3 в длинные имена, и наоборот.

 

 

Рисунок 4 Физическая структура файловой системы FAT

 

Основными недостатками файловых систем FAT и VFAT, которые привели к разработке новой реализации файловой системы, основанной на той же идее (таблице размещения файлов), являются большие потери на кластеризацию при больших размерах логического диска и ограничения на сам размер логического диска. Поэтому в Microsoft Windows 95 OEM Service Release 21 на смену системе VFAT пришла файловая система FAT32, которая является полностью самостоятельной 32-разрядной файловой системой и содержит многочисленные усовершенствования и дополнения по сравнению с предыдущими реализациями FAT. Даже для дисков размером до 8 Гбайт FAT32 может использовать 4-килобайтные кластеры. В результате по сравнению с дисками FAT16 экономится значительное дисковое пространство (в среднем 10-15 %).

FAT32 также может перемещать корневой каталог и использовать резервную копию FAT вместо стандартной. Расширенная загрузочная запись FAT32 позволяет создавать копии критически важных структур данных; это повышает устойчивость дисков FAT32 к нарушениям структуры таблицы размещения файлов по сравнению с предыдущими версиями. Корневой каталог в FAT32 представлен в виде обычной цепочки кластеров, следовательно, он может находиться в произвольном месте диска, что снимает действовавшее ранее ограничение на размер корневого каталога (512 элементов). Максимальный размер файла для FAT16 - 2 Гб, для FAT32 – 4Гб.

Вы не можете отформатировать том объемом более 32 гигабайт (ГБ) в файловой системе FAT32 во время установки операционной системы Windows XP. Windows XP допускает подключение и поддерживает тома FAT32 размером более 32 GB (с учетом всех прочих ограничений), но вы не можете создать том FAT32 объемом более 32 ГБ путем использования утилиты Format в процессе выполнения программы установки Windows XP.