FAT 32


Еще раз о FAT 32




Михаил Тычков aka Hard



Доброго времени суток.

Вот все говорят: "FAT, FAT"! А ведь многие даже не представляют толком, что это. В этой статье я хочу дать Вам графическое изображение того, как работает FAT (File Allocation Table).

Итак, для работы жесткого диска необходима специальная структура для работы с файлами, которая называется файловая система. Не будь ее, файлы бы записывались черт знает куда, и соответственно фиг бы их кто нашел на "винте". А так, файловая система хранит данные о каждом файле, его типе и месте расположения. Скажем ей за это большое спасибо.

FAT - это таблица расположения файлов. От этой таблицы и получилось название всей файловой системы, в которой FAT является лишь одним из элементов. С чего начинается ФС FAT? Давайте по порядку:

FAT 32


MBR

Master Boot Record - этот сектор несет информацию о разделах, существующих на диске, с каких цилиндров, головок и секторов они начинаются (partition table). Есть также указание для BIOS, где надо искать основные файлы операционной системы.

PT

Partition Table - таблица разделов. Этот сектор содержит информацию о дорожках, секторах, головках "винта". И конечно же содержит информацию о типе самой ФС.

VBS

Volume Boot Sector - загрузочный сектор тома. Этот сектор отвечает за инфу о размере кластера, тип и размер используемой таблицы расположения файлов.

FAT

File Allocation Table - таблица расположения (размещения) файлов. Этот раздел содержит инфу о расположении файлов на диске. На "винте" она содержится в двух экземплярах.

RD

Root Directory - корневой каталог. Этот раздел несет информацию о типе файлов, их названиях, размерах, дате создания. Кроме этого, для каждого файла в корневом каталоге есть номер кластера, с которого начинается файл.

Замечу такую фишку, что если ваш "винт" разбит на разделы, то FAT и RD будут записаны в начале каждого раздела. То есть, для каждого раздела диска используются свои таблицы и корневые каталоги.

Ну и как же это все работает? Хороший вопрос :) ФС FAT создается утилитой FORMAT. Как правило, она идет вкупе с такой утилитой, как FDISK. Для начала Вы с помощью FDISK'а разбиваете "винт" на разделы, а потом FORMAT'ом создаете файловую систему FAT. Затем устанавливаете операционную систему. При записи файла на диск, информация о нем записывается в Root Directory. В поле "указатель" записывается номер начального кластера. По этому номеру, система обращается в ячейку таблицы, с таким же номером, где будет записан номер следующего кластера. И так далее, до тех пор, пока не будет описано расположение всего файла на диске. Запись закончится командой "стоп", то есть на этом кластере файл заканчивается.

Считывание происходит так же. Сначала считывается информация о файле, затем по указателю система переходит в таблицу и там, считывает остальные номера кластеров, которые занимает файл. Чтобы понять весь механизм работы, внимательно просмотрите рисунок:

FAT32

Возьмем, к примеру, файл mydoc.txt. В поле "указатель" стоит номер 01. По этому номеру, обратившись в FAT (номера ячеек написаны сверху), находим следующий номер 03. Обратившись по номеру 03, находим номер 04. Но номеру 04 находим номер 05, где записана команда "стоп". Итак, получилось, что файл находится в кластерах с номерами 01, 03, 04 и 05 (на самом деле файл mydoc.txt никак не может находится в кластере 01, так как там записана служебная информация, просто я взял такие номера для примера, чтобы облегчить понимание темы). Может так случится, что файл занимает всего один кластер. Посмотрите на файл zopa.sys. Это как раз тот самый случай.

А теперь посмотрите, как эти файлы будут расположены на жестком диске. Я специально окрасил каждый файл своим цветом.

FAT32

Если кто хочет узнать о логическом строении жесткого диска на базе FAT побольше, то может заглянуть вот сюда.

Вот, собственно, и все. Более простого объяснения работы FAT, вряд ли где еще найдете. Ну а если Вы так ничего и не поняли, то не кажется ли Вам, что пора слезть с бронепоезда :)

Удачи.

04.07.03

читать еще по теме