С точки зрения пользователя, любой диск можно представить как совокупность доступных ему блоков данных, которые он может использовать для хранения данных, для считывания или записи информации. Каждый блок данных имеет свой уникальный адрес, определяемый способом CHS (цилиндр, поверхность, сектор) или LBA (адрес логического блока). Блок данных может быть записан и считан (только целиком) независимо от других. Однако для большинства прикладных программ интерес представляет не обращение к отдельным блокам, а возможность обращения к файлам, которые могут занимать произвольное, причем, возможно, и не целое количество блоков данных. На дисках информация хранится в виде файлов. Для облегчения обращения к файлам и упорядочения использования пространства секторов диска в состав любой операционной системы входит файловая система, тесно связанная с логической структурой диска. В разделах диска (в блоках данных ряда определенных секторов) создаются служебные структуры необходимые для работы соответствующей файловай системы (рис. 1).
FAT12/16. FAT32.
1) Раздел FAT12/16 состоит из четырех логических областей: BOOT-сектора, FAT1 и ее копии FAT2, корневого каталога и области данных, которая состоит из кластеров.
Раздел FAT32 состоит из области резервных секторов (BOOT-сектор, FS INFO и копия BOOT-сектора), FAT1 и ее копии FAT2, и области данных в которой находится корневой каталог.
2) Кластер - это непрерывная последовательность секторов (фиксированного размера). Это адресуемая «порция» файла.
3) Файл в разделе FAT - это последовательность кластеров, указанных с помощью строки каталога и элементов таблицы FAT.
4) Каждому элементу таблицы FAT (начиная со второго) соответствует кластер в области данных с таким же номером.
5) Номер начального кластера файла указывается в каталожной строке, определяющей файл. Этот номер является и ссылкой на элемент таблицы FAT, который содержит номер следующего кластера файла, и является ссылкой на элемент таблицы FAT, который содержит номер следующего кластера файла и т. д.
6) Код в элементе таблицы FAT может еще определять свободный кластер, дефектный кластер и признак конца файла.
NTFS.
1. Раздел NTFS весь состоит из кластеров, они пронумерованы от 0 (кластер - это непрерывная последовательность секторов заданного фиксированного размера).
2. В разделе NTFS все хранится в виде файлов (каталоги, программы, данные ...). Системная информация для работы файловой системы - хранится в виде метафайлов (системных файлов), имена их начинаются со знака $ и они недоступны пользователю с помощью обычных средств операционной системы.
3. Файл в разделе NTFS состоит из экстентов (экстент - это непрерывная последовательность кластеров; размер экстента задается номером начального кластера и количеством кластеров в экстенте).
4. Основой для организации хранения информации в виде файлов является метафайл $MFT. Файл $MFT состоит из записей фиксированного размера (обычно 1 Кбайт), и каждая запись определяет соответствующий ей файл (либо маленький файл находится внутри записи, либо файл состоит из экстентов, которые определяются последовательностью блоков VCN). Файл $MFT занимает непрерывную область (12% объема раздела NTFS).
5. Блок VCN содержит номер начального кластера экстента и количество кластеров в экстенте.
6. Нужную запись файла $MFT находят через каталог по имени файла в каталожном блоке. Номер записи находится в шести начальных байтах каталожного блока (имя файла находится в конце каталожного блока и занимает различное количество байтов).