Открыть сервис

FAT

FAT (File Allocation Table) — это простая и широко распространённая файловая система, разработанная для организации и хранения данных на различных носителях, таких как гибкие диски, жёсткие диски и флеш-накопители. Основной принцип её работы заключается в использовании таблицы размещения файлов (собственно, FAT-таблицы), которая отслеживает кластеры данных на диске и связывает их в цепочки, соответствующие каждому файлу. FAT известна своей совместимостью с большинством операционных систем (включая Windows, macOS, Linux и встраиваемые системы) и широко применяется в устройствах с ограниченными ресурсами, таких как цифровые камеры, MP3-плееры и автомобильные медиасистемы. Существует несколько версий FAT: FAT12, FAT16 и FAT32, различающиеся размером элементов таблицы и максимальным объёмом поддерживаемого диска. В 2019 году на смену FAT32 была предложена система exFAT, которая является её эволюцией, но формально не входит в линейку FAT.

История

Разработка и ранние версии

Файловая система FAT была создана Биллом Гейтсом и Марком Макдональдом (Mark MacDonald) в 1977 году для операционной системы Standalone Disk BASIC компании Microsoft. Первоначально она предназначалась для работы с 8-дюймовыми гибкими дисками в среде Microsoft MS-DOS и IBM PC DOS. Размер FAT-таблицы был ограничен 12 битами (отсюда название FAT12), что позволяло адресовать до 4084 кластеров (всего 65536, но из-за ограничений и служебных значений использовалось меньше). Эта версия использовалась в MS-DOS 1.0 (1981 год) и поддерживала объём до 32 мегабайт. FAT-таблица хранилась в загрузочном секторе диска и занимала всего несколько килобайт, что было эффективно для малых носителей того времени.

Появление FAT16

С ростом ёмкости жёстких дисков потребовалось увеличение адресного пространства. В 1984 году в MS-DOS 3.0 была представлена FAT16, где размер элемента таблицы вырос до 16 бит. Это позволило адресовать более 65 000 кластеров, что теоретически давало возможность работать с дисками объёмом до 2 ГиБ (гибибайт) при размере кластера 32 КБ. Однако из-за ограничений в размере загрузочного сектора и служебных полей на практике максимальный поддерживаемый объём для FAT16 в DOS составлял 2 ГиБ (с 512-байтными секторами). FAT16 стала основной файловой системой для MS-DOS 4.0 и ранних версий Windows (до Windows 95).

Эра FAT32

К середине 1990-х годов размеры жёстких дисков превысили 2 ГиБ, и требовалась более современная система. В 1996 году с выходом Windows 95 OSR2 (OEM Service Release 2) была представлена FAT32. В ней размер элемента таблицы оставался 32-битным формально, но только 28 бит использовались для адресации кластеров, а 4 бита были зарезервированы. Максимальный объём диска для FAT32 составляет 2 ТиБ (терабайта) при кластере в 32 КБ, а максимальный размер файла — 4 ГиБ (это ограничение связано с использованием 32-битных полей размера в записях каталога). FAT32 поддерживалась во всех версиях Windows начиная с 95 OSR2 и до Windows 11 (за исключением 64-битных версий, где её поддержка в установщике была поэтапно ограничена, но сама система читает и пишет FAT32).

Современное состояние

В 2006 году компания Microsoft представила exFAT (Extended File Allocation Table), которая сняла ограничение на размер файла в 4 ГиБ (до 16 ЭiБ) и увеличила максимальный объём диска до 128 ПiБ. exFAT широко используется для флеш-накопителей и SD-карт (стандарт SDXC), а также имеет открытую спецификацию (с 2019 года). Однако сама классическая FAT32 остаётся актуальной для совместимости: она поддерживается практически всеми операционными системами и встраиваемыми устройствами, даже старыми микроконтроллерами. Например, большинство автомобильных аудиосистем и фотокамер до сих пор используют FAT32. В 2010-х годах появились неофициальные расширения (например, FAT+), но они не стали стандартами.

Строение и принцип работы

Общая структура

Файловая система FAT состоит из нескольких областей:

  1. Загрузочный сектор (Volume Boot Record, VBR) — первый сектор тома. Содержит загрузочный код, параметры системы (размер сектора, количество FAT-таблиц, количество кластеров и т.д.) и — в классической FAT — поля для идентификации (OEM ID). В FAT32 загрузочный сектор расширен до 4 секторов, так как поле зарезервированных секторов увеличено.
  2. Область FAT (File Allocation Table) — собственно таблица размещения файлов, состоящая из записей (каждая длиной 12, 16 или 32 бита). Количество копий FAT обычно равно двум для резервирования (первичная и резервная копии), но может быть и одна.
  3. Корневой каталог (Root Directory) — в FAT12/FAT16 это фиксированная область, расположенная сразу после FAT, с ограниченным количеством записей (например, 256 для FAT12). В FAT32 корневой каталог может располагаться в любом месте тома, как обычная папка, и не имеет фиксированного размера — это позволяет хранить больше файлов в корне.
  4. Область данных (Data Region) — все остальное пространство, разбитое на кластеры (логические блоки, минимальные единицы выделения). Размер кластера кратен размеру сектора (обычно 512, 1024, 2048 или 4096 байт; в exFAT могут быть больше).

Таблица размещения файлов

Каждый файл и каталог (кроме корневого в FAT12/16) представлены последовательностью кластеров, адреса которых хранятся в FAT. Например:

Ограничения

Разновидности и технические характеристики

FAT12

FAT16

FAT32

exFAT (Extended FAT)

Сравнение версий

ПараметрFAT12FAT16FAT32exFAT
Год появления1977198419962006
Макс. объём тома32 МБ2 ГБ (4 ГБ с особыми секторами)2 ТБ128 ПБ (теор. до 64 ЗБ)
Макс. размер файла32 МБ4 ГБ4 ГБ16 ЭБ
Размер таблицы12 бит (10 рабочих)16 бит32 бита (28 полезных)32 бита + 64-битные поля
Кол-во записей в корневом каталогеФиксир. (до 256)Фикс. (до 512)ПлавающийПлавающий (до миллионов)
ФрагментацияВысокаяВысокаяВысокаяНизкая (оптимизация для случайного доступа)
Поддержка в WindowsТолько чтение (через драйверы)Чтение и запись (все версии)Чтение и записьЧтение и запись (Vista SP1+)
ОткрытостьПолностьюПолностьюПолностьюС 2019 года открытая спецификация

Применение

Персональные компьютеры и операционные системы

Встраиваемые системы

Прочие применения

Критика и недостатки

Ограничение размера файла до 4 ГБ

Самый заметный недостаток классической FAT — невозможность хранить файлы размером больше 4 ГиБ, что делает её непригодной для больших видеофайлов, образов дисков (например, ISO), дампов баз данных. Это ограничение стало особенно критичным в 2000-х годах с развитием HD-видео и 4K-видео. exFAT решает эту проблему.

Отсутствие журналирования

В отличие от NTFS, ext4 или HFS+, FAT не ведёт журнал изменений. При сбое питания или небезопасном извлечении носителя высока вероятность потери данных (файлы могут быть записаны частично, таблица размещения — повреждена). Система не может восстановить состояние на момент сбоя. Для снижения риска часто используют процедуру проверки (chkdsk / fsck), которая может занять часы на больших томах.

Фрагментация

Постоянная перезапись и удаление файлов приводит к фрагментации, особенно на дисках большого объёма. Дефрагментация под Windows (для FAT32) обязательна, но часто невозможна на устройствах с флеш-памятью (так как контроллер сам управляет физическими блоками). Фрагментация замедляет чтение, особенно на медленных носителях (например, USB 2.0).

Нет поддержки разрешений и безопасности

FAT не хранит никакой информации о правах доступа (владельце, группе, ACL). Это делает её неподходящей для многопользовательских ОС, где требуется контроль доступа (Windows NT, Linux, Unix). На флешках это редко проблема, но для системных разделов недопустимо.

Уязвимость к вирусам и вмешательству

Простота структуры делает FAT лёгкой мишенью для вирусов: они могут перезаписывать загрузочный сектор или FAT-таблицу, что выводит весь диск из строя. Из-за отсутствия шифрования и разрешений вредоностное ПО легко распространяется через FAT-носители.

Интересные и малознакомые факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →