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

Введение
Информация в информационных системах (ИС) возникает в процессе обработки хранящихся данных. На компьютерах, используемых для создания ИС, данные хранятся на постоянном запоминающем устройстве (ПЗУ) в виде именованных последовательностей, называемых файлами. Хранение файлов подобно хранению книг в библиотеке, и для организации доступа к ним требуется специальная система, обеспечивающая минимизацию времени доступа и удобство работы. Файловая система представляет совокупность служебных структур на носителе и средств операционной системы, обеспечивающих манипуляцию файлами. (Исторически сложилось, что операционные системы семейства Windows развиваются в двух направлениях (Windows 95, Windows 98 и Windows Ме составляют одно направление, а Windows NT и Windows 2000 второе направление), предоставляющих различные средства для работы со служебными структурами и файлами). Файловая система FAT (File Allocation Table) была разработана Биллом Гейтсом и Марком МакДональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS. Чтобы добиться переносимости программ из операционной системы CP/M в 86-DOS, в ней были сохранены ранее принятые ограничения на имена файлов. В дальнейшем 86-DOS была приобретена Microsoft и стала основой для ОС MS-DOS 1.0, выпущенной в августе 1981 года. Эта файловая система была изначально создана для обеспечения произвольного доступа к файлам на гибких дисках относительно небольшого размера. Сейчас существует четыре версии FAT — FAT8, FAT12, FAT16 и FAT32. Они отличаются разрядностью записей в дисковой структуре, то есть количеством бит, отведённых для хранения номера кластера. FAT12 применяется в основном для дискет, FAT16 — для дисков малого объёма, FAT32- для жестких дисков. На основе FAT была разработана новая файловая система exFAT (extended FAT), используемая преимущественно для флеш-накопителей.
Структура FAT
В файловой системе FAT дисковое пространство любого логического диска делится на две области:
- системную область и
- область данных.
Системная область создается и инициализируется при форматировании, а впоследствии обновляется при манипулировании файловой структурой. Системная область состоит из следующих компонентов:
- загрузочного сектора, содержащего загрузочную запись (boot record);
- зарезервированных секторов (их может и не быть);
- таблицы размещения файлов (FAT, File Allocation Table);
- корневого каталога (Root directory, ROOT). Эти компоненты расположены на диске друг за другом. Область данных содержит файлы и каталоги, подчиненные корневому. Область данных разбивают на так называемые кластеры. Кластер - это один или несколько смежных секторов области данных. С другой стороны, кластер - это минимальная адресуемая единица дисковой памяти, выделяемая файлу. Т.е. файл или каталог занимает целое число кластеров. Для создания и записи на диск нового файла операционная система отводит для него несколько свободных кластеров диска. Эти кластеры не обязательно должны следовать друг за другом. Для каждого файла хранится список всех номеров кластеров, которые предоставлены данному файлу. Разбиение области данных на кластеры вместо использования секторов позволяет:
- уменьшить размер таблицы FAT;
- уменьшить фрагментацию файлов;
- сокращается длина цепочек файла и ускоряется доступ к файлу. Однако слишком большой размер кластера ведет к неэффективному использованию области данных, особенно в случае большого количества маленьких файлов (ведь на каждый файл теряется в среднем полкластера). В современных файловых системах (FAT32, HPFS, NTFS) эта проблема решается за счет ограничения размера кластера (максимум 4 Кбайта)
Картой области данных является Таблица размещения файлов (File Allocation Table - FAT) Каждый элемент таблицы FAT (12, 16 или 32 бит) соответствует одному кластеру диска и характеризует его состояние: свободен, занят или является сбойным кластером (bad cluster).
- Если кластер распределен какому-либо файлу (т.е., занят), то соответствующий элемент FAT содержит номер следующего кластера файла;
- последний кластер файла отмечается числом в диапазоне FF8h - FFFh (FFF8h - FFFFh);
- если кластер является свободным, он содержит нулевое значение 000h (0000h);
- кластер, непригодный для использования (сбойный), отмечается числом FF7h (FFF7h). Таким образом, в таблице FAT кластеры, принадлежащие одному файлу, связываются в цепочки. Таблица размещения файлов хранится сразу после загрузочной записи логического диска, ее точное расположение описано в специальном поле в загрузочном секторе. Она хранится в двух идентичных экземплярах, которые следуют друг за другом. При разрушении первой копии таблицы используется вторая. В связи с тем, что FAT используется очень интенсивно при доступе к диску, она обычно загружается в ОП (в буфера ввода/вывода или кэш) и остается там настолько долго, насколько это возможно.
Для просмотра и редактирования таблицы FAT можно использовать утилиту Disk Editor.
Подробная информация о самом файле хранится в другой структуре, которая называется корневым каталогом. Каждый логический диск (Жесткий диск является физическим устройством, т.е. его можно физически установить, заменить или удалить. Для удобства работы жесткий диск разбивают на логические диски, которые являются виртуальными и их нельзя, что называется, потрогать руками. На одном жестком диске может быть: • либо несколько логических дисков, • либо один-единственный логический диск.) имеет свой корневой каталог (ROOT, англ. - корень). Корневой каталог описывает файлы и другие каталоги. Элементом каталога является дескриптор (описатель) файла. Дескриптор каждого файла и каталога включает его
- имя
- расширение
- дату создания или последней модификации
- время создания или последней модификации
- атрибуты (архивный, атрибут каталога, атрибут тома, системный, скрытый, только для чтения)
- длину файла (для каталога - 0)
- зарезервированное поле, которое не используется
- номер первого кластера в цепочке кластеров, отведенных файлу или каталогу; получив этот номер, операционная система, обращаясь к таблице FAT, узнает и все остальные номера кластеров файла.
Итак, пользователь запускает файл на выполнение. Операционная система ищет файл с нужным именем, просматривая описания файлов в текущем каталоге. Когда найден требуемый элемент в текущем каталоге, операционная система считывает номер первого кластера данного файла, а затем по таблице FAT определяет остальные номера кластеров. Данные из этих кластеров считываются в оперативную память, объединяясь в один непрерывный участок. Операционная система передает управление файлу, и программа начинает работать.
Для просмотра и редактирования корневого каталога ROOT можно также использовать утилиту Disk Editor.
Разновидности FAT
Файловая система VFAT Файловая система VFAT (виртуальная FAT) впервые появилась в Windows for Workgroups 3.11 и была предназначена для файлового ввода/вывода в защищенном режиме. Используется эта файловая система в Windows 95. Поддерживается она также и в Windows NT 4. VFAT - это «родная» 32-разрядная файловая система Windows95. Ее контролирует драйвер VFAT.VXD. VFAT использует 32-разрядный код для всех файловых операций, может использовать 32-разрядные драйверы защищенного режима. НО, элементы таблицы размещения файлов остаются 12- или 16-разрядными, поэтому на диске используется та же структура данных (FAT). Т.е. формат таблицы VFAT такой же, как и формат FAT. VFAT наряду с именами «8.3» поддерживает длинные имена файлов. (Часто говорят, что VFAT - это FAT с поддержкой длинных имен). Основной недостаток VFAT - большие потери на кластеризацию при больших размерах логического диска и ограничения на сам размер логического диска.
Файловая система FAT32 Это новая реализация идеи использования таблицы FAT. FAT32 — последняя версия файловой системы FAT и улучшение предыдущей версии, известной как FAT16. Она была создана, чтобы преодолеть ограничения на размер тома в FAT16, позволяя при этом использовать старый код программ MS-DOS и сохранив формат. FAT32 - это полностью самостоятельная 32-разрядная файловая система. Впервые использовалась в Windows OSR2 (OEM Service Release 2). В настоящее время FAT32 используется в Windows 98 и Windows ME. Она содержит многочисленные усовершенствования и дополнения по сравнению с предыдущими реализациями FAT.
- Намного эффективнее расходует дисковое пространство за счет того, что использует кластеры меньшего размера (4 Кб) - подсчитано, что экономится до 15%.
- Имеет расширенную загрузочную запись, которая позволяет создавать копии критических структур данных, что повышает устойчивость диска к нарушениям структур диска
- Может использовать резервную копию FAT вместо стандартной.
- Может перемещать корневой каталог, другими словами, корневой каталог может находиться в произвольном месте, что снимает ограничение на размер корневого каталога (512 элементов, т.к. ROOT должен был занимать один кластер).
- Усовершенствована структура корневого каталога Появились дополнительные поля, например, время создания, дата создания, дата последнего доступа, контрольная сумма. По-прежнему для длинного имени файла используется несколько дескрипторов. exFAT Обновленная файловая система созданная компанией microsoft на замену FAT32. Начала использоваться в Windows Vista SP1 и имеет максимальный размер файла 16 эксабайт (ЭБ), который равен 1 Эб = 1018 байтам. Совместима с Mac OS и Windows, является очень хорошей системой для обмена большими файлами. Минусы: • Она не имеет никакой функциональности журналирования, в которой все изменения файлов на диске, отмечены в журнале прежде, чем они на самом деле выполнены. • Не поддерживается Time Machine в Apple. Одним словом, вы не сможете сделать резервную копию от Apple с помощью программного обеспечения Time Machine. • Очень сложная структура, требующая больше вычислительных мощностей. Плюсы: • Перезаписывает меньшее количество раз один и тот же сектор, что важно для флешек, продлевая жизнь ячейкам памяти. Как известно флешки имеют N-количества перезаписей, потом выходят из строя. • Большой лимит на размер файла 16 эксабайт. • Размер кластера 32 мегабайта. • Улучшено распределение свободного место, что уменьшает дефрагментацию
Достоинства и недостатки FAT
Достоинства FAT:
- для эффективной работы требуется немного оперативной памяти;
- быстрая работа с малыми и средними каталогами;
- меньшее перемещение головок;
- эффективная работа на медленных дисках. Недостатки FAT:
- большая потеря быстродействия с увеличением фрагментации;
- сложность с произвольным доступом к большим файлам;
- очень медленная работа с каталогами, содержащими большое количество файлов. При создании файла работает правило - выделяется первый свободный кластер. Это ведет к фрагментации диска и сложным цепочкам файлов. Отсюда следует замедление работы с файлами.