Различные варианты FAT
Сокращение FAT означает «таблица размещения файлов» (File Allocation Table). Этот термин относится к линейной табличной структуре со сведениями о файлах — именами файлов, их атрибутами и другими данными, определяющими местонахождение файлов (или их фрагментов) в среде FAT. Элемент FAT определяет фактическую область диска, в которой хранится начало физического файла.
Исходная FAT
Файловая система FAT изначально использовалась в DOS. Ее история прослеживается практически до самых ранних моделей PC на базе DOS. Таблица размещения файлов, по имени которой была названа FAT, представляет собой простую табличную структуру. Когда пользователь обращается к каталогам или находящимся в них файлам, эта структура поэлементно просматривается от начала к концу.
Внимание
Невзирая на свою простоту и даже примитивность, FAT распространена достаточно широко и встречается в различных версиях DOS, Windows З.х, Windows NT, Macintosh и многих разновидностях Unix. Ряд других, более экзотических операционных систем также поддерживают файловую структуру FAT. По этой причине Microsoft рекомендует использовать тома FAT в Windows NT Server или Workstation в тех случаях, когда различные типы клиентов должны обмениваться данными через единую файловую систему (о томах более подробно рассказано в главе 4).
Одной из важнейших характеристик исходной FAT было использование имен файлов формата 8.3 (произносится «восемь-точка-три»). Это означает, что имя файла имеет длину до восьми символов, перед расширением ставится точка, а само расширение имеет длину не более трех символов. Многие пользователи считают это ограничение отличительным признаком DOS, но на самом деле оно связано с файловой системой FAT.
Поскольку размеры файлов и разделов, находящихся под управлением FAT, росли с каждой новой версией DOS, в таблицах размещения FAT используется два типа указателей. Для разделов объемом менее 50 Мбайт используются 12-разрядные указатели, а для больших разделов — 16-разрядные. Вот почему тома FAT иногда обозначаются FAT12 (для томов с 12-разрядными элементами) или FAT16 (для томов с 16-разрядными элементами). Как видно из рис. 3.1, метка FAT12 или FAT16 отображается в утилитах для работы с разделами диска (например, в утилите FDISK, входящей в большинство версий DOS). В DOS версий от 3.0 до 6.22 использовались 16-разрядные драйверы FAT (хотя это никак не отражается на размере элементов FAT — пометка FAT12 или FAT16 определяется исключительно размерами тома FAT).
Рис. 3.1. Утилита DOS FDISK выводит тип тома FAT (FAT12 или FAT16)
В наши дни к стандартной FAT добавились еще две разновидности, используемые в самых современных операционных системах Microsoft (конкретно — в Windows 95 и Windows NT): VFAT (виртуальная FAT) и FAT32. Они будут подробно описаны в следующих разделах.
Таблица 3.1. Основные характеристики файловой системы FAT
Характеристика | Значение/максимум |
Максимальный размер тома | 2 Гбайт |
Максимальный размер файла | 2 Гбайт |
Максимальное количество файлов в корневом каталоге | 512 |
Максимальное количество файлов в некорневом каталоге | 65535 |
Безопасность на уровне файлов | Нет |
Поддержка длинных имен файлов | Нет |
Самовосстановление | Нет |
Ведение журналов транзакций | Нет |
Сжатие на уровне файлов | Нет |
Поддержка файловых ветвлений (Macintosh) |
Нет |
Соответствие стандарту POSIX | Нет |
Файловая система VFAT впервые появилась в Windows for Workgroups 3.11 и была предназначена для выполнения файлового ввода/ вывода в защищенном режиме. С выходом Windows 95 в VFAT добавилась поддержка длинных имен файлов (LFN). Тем не менее VFAT сохраняет совместимость с исходным вариантом FAT; это означает, что наряду с длинными именами в ней поддерживаются имена формата 8.3, а также существует специальный механизм для преобразования имен 8.3 в длинные имена, и наоборот.
Внимание
Именно файловая система VFAT поддерживается исходными версиями Windows 95, Windows NT 3.51 и Windows NT 4. При работе с VFAT крайне важно использовать файловые утилиты, поддерживающие VFAT вообще и длинные имена в частности. Дело в том, что более ранние файловые утилиты DOS запросто модифицируют то, что кажется им исходной структурой FAT. Это может привести к потере или порче длинных имен из таблицы FAT, поддерживаемой VFAT (или FAT32). Следовательно, для томов VFAT необходимо пользоваться файловыми утилитами, которые понимают и сохраняют файловую структуру VFAT.
В исходной версии Windows 95 основной файловой системой была 32-разрядная VFAT. VFAT может использовать 32-разрядные драйверы защищенного режима или 16-разрядные драйверы реального режима. При этом элементы FAT остаются 12- или 16-разрядными, поэтому на диске используется та же структура данных, что и в предыдущих реализациях FAT. VFAT обрабатывает все обращения к жесткому диску и использует 32-разрядный код для всех файловых операций с дисковыми томами.
Внимание
Как видно из табл. 3.2, VFAT отличается от исходной FAT в первую очередь увеличением максимального размера тома и отдельных файлов, увеличением количества файлов в некорневых каталогах и поддержкой длинных имен наряду с именами формата 8.3. VFAT также поддерживает 16-и 32-разрядные обращения, тогда как исходная FAT ограничивалась 16-разрядными.
Файловая система FAT32
32-разрядная файловая система FAT32 пришла на смену VFAT в Microsoft Windows 95 OEM Service Release 2. В публикациях Microsoft эта версия Windows 95 иногда называется Windows 95 OSR2. FAT32 является полностью самостоятельной 32-разрядной файловой системой (как NTFS) и содержит многочисленные усовершенствования и дополнения по сравнению с предыдущими реализациями FAT.
Таблица 3.2. Основные характеристики файловой системы VFAT
Характеристика | Значение/максимум |
Максимальный размер тома | 4 Гбайт |
Максимальный размер файла | 4 Гбайт |
Максимальное количество файлов в корневом каталоге | 512 |
Максимальное количество файлов в некорневом каталоге | Неограничено |
Безопасность на уровне файлов | Нет |
Поддержка длинных имен файлов | Да |
Самовосстановление | Нет |
Ведение журналов транзакций | Нет |
Сжатие на уровне файлов | Нет |
Поддержка файловых ветвлений (Macintosh) |
Нет |
Соответствие стандарту POSIX | Нет |
FAT32 также может перемещать корневой каталог и использовать резервную копию FAT вместо стандартной. Расширенная загрузочная запись FAT32 позволяет создавать копии критических структур данных; это повышает устойчивость дисков FAT32 к нарушениям структуры FAT по сравнению с предыдущими версиями. Корневой каталог в FAT32 представлен в виде обычной цепочки кластеров. Следовательно, корневой каталог может находиться в произвольном месте диска, что снимает действовавшее ранее ограничение на размер корневого каталога (512 элементов). Возможно, в будущих реа-лизациях FAT32 появится возможность динамического изменения размеров разделов FAT32, но в Windows 95 OSR2 она не поддерживается. Внимание
В настоящее время Windows 95 OSR2 является единственной операционной системой Microsoft с поддержкой FAT32. Даже Windows NT 4 с новейшим Service Pack не поддерживает эту файловую систему. Если организовать многовариантную загрузку на компьютере с установленными Windows 95 OSR2 и Windows NT, то NT не сможет работать с файлами, находящимися в разделе FAT32. Тем не менее при этом Windows 95 OSR2 сможет работать с разделами VFAT, созданными Windows NT. То, что говорилось ранее об использовании файловых утилит VFAT с томами VFAT, относится и к FAT32. Поскольку прежние утилиты FAT (для FAT32 в эту категорию входят обе файловые системы, FAT и VFAT) могут повредить или уничтожить важную служебную информацию, для томов FAT32 нельзя пользоваться никакими файловыми утилитами, кроме утилит FAT32.
Кроме повышения емкости FAT до головокружительной величины (до 4 Тбайт для томов и отдельных файлов) FAT32 вносит ряд необходимых усовершенствований в структуру корневого каталога. Предыдущие реализации требовали, чтобы вся информация корневого каталога FAT находилась в одном дисковом кластере. При этом корневой каталог мог содержать не более 512 файлов.
Таблица 3.3. Основные характеристики файловой системы FAT32
Характеристика | Значение/максимум |
Максимальный размер тома | 4 Тбайт |
Максимальный размер файла | 4Тбайт |
Максимальное количество файлов в корневом каталоге | Неограничено |
Максимальное количество файлов в некорневом каталоге | Неограничено |
Безопасность на уровне файлов | Нет |
Поддержка длинных имен файлов | Да |
Самовосстановление | Да* |
Ведение журналов транзакций | Нет |
Сжатие на уровне файлов | Нет |
Поддержка файловых ветвлений (Macintosh) |
Нет |
Соответствие стандарту POSIX | Нет |
Появление длинных имен фактически привело к дальнейшему уменьшению количества файлов, находящихся в корневом каталоге. Поскольку длинное имя может содержать до 256 символов, всего один файл с полным длинным именем занимает до 25 элементов FAT (1 для имени 8.3 и еще 24 для самого длинного имени). Таким образом, количество элементов корневого каталога VFAT уменьшается до 21. Microsoft советует избегать длинных имен в корневых каталогах FAT при отсутствии FAT32.
Помните и о том, что длина полной файловой спецификации, включающей путь и имя файла (длинное или 8.3), тоже ограничивается 260 символами. FAT32 успешно справляется с проблемой длинных имен в корневом каталоге, но проблема с ограничением длины полной файловой спецификации остается. По этой причине Microsoft рекомендует ограничивать длинные имена 75-80 символами, чтобы оставить достаточно места для пути (180-185 символов).
Наконец, FAT32 повышает отказоустойчивость FAT. Во-первых, в загрузочных записях FAT32 хранятся важнейшие данные файловой системы (например, сведения о таблице разделов). Во-вторых, в FAT32 можно отключить зеркальное копирование FAT, чтобы для поиска файлов и работы с ними использовалась вторая копия FAT. Вот почему в строке «Самовосстановление» табл. 3.3 стоит значение «Да» (а звездочка показывает, что средства самовосстановления FAT при всей полезности уступают своим аналогам в NTFS).