FAT16
FAT16 (File Allocation Table 16, рус. таблица размещения файлов, 16-битная) — это файловая система, разработанная корпорацией Microsoft в 1987 году для операционной системы MS-DOS 3.31. Является эволюционным развитием файловой системы FAT12 и предшественницей FAT32. Основная особенность FAT16 — использование 16-битных указателей в таблице размещения файлов, что позволяет адресовать до 65 536 кластеров. Максимальный поддерживаемый размер тома (раздела) составляет 4 гигабайта (ГБ) при стандартном размере кластера (32 килобайта, КБ), хотя в некоторых реализациях этот предел может быть расширен до 16 ГБ. FAT16 широко применялась в операционных системах семейства DOS и ранних версиях Windows (вплоть до Windows 95), а также в съёмных носителях (дискетах, флеш-накопителях) и встраиваемых устройствах. В настоящее время считается устаревшей, но сохраняет совместимость с большинством современных операционных систем.
История
Предпосылки и создание
К середине 1980-х годов файловая система FAT12, использовавшаяся в MS-DOS, столкнулась с ограничениями по объёму адресуемого пространства. Жёсткие диски ёмкостью более 32 мегабайт (МБ) стали распространёнными, и 12-битная адресация (4096 кластеров) не позволяла эффективно использовать их. В 1987 году Microsoft выпустила MS-DOS 3.31, в которой была представлена FAT16. Новая система использовала 16-битные записи в таблице размещения файлов, что увеличило максимальное количество кластеров до 65 536. Это позволило создавать разделы размером до 2 ГБ при стандартном размере кластера 32 КБ.
Развитие и распространение
FAT16 стала основной файловой системой для MS-DOS 4.0, 5.0, 6.x и Windows 3.x. В 1995 году с выходом Windows 95 (OEM Service Release 2) была представлена FAT32, которая сняла ограничение на размер раздела в 2 ГБ (для FAT16) и 4 ГБ (для FAT16 с кластером 32 КБ). Однако FAT16 продолжала использоваться в Windows 95, 98 и Me для разделов размером менее 512 МБ, а также на дискетах (1,44 МБ — FAT12, 2,88 МБ — FAT16). В Windows NT 4.0 и Windows 2000 FAT16 поддерживалась наряду с NTFS.
Упадок и современное использование
С начала 2000-х годов FAT16 была вытеснена FAT32, NTFS и exFAT. Однако она сохранилась в ряде нишевых применений:
- Встраиваемые системы (микроконтроллеры, цифровые камеры, аудиоплееры) — из-за простоты реализации и низких требований к ресурсам.
- Загрузочные разделы — в некоторых операционных системах (например, Windows 95/98) загрузчик мог располагаться на FAT16.
- Совместимость — FAT16 читается практически всеми операционными системами (Windows, macOS, Linux, FreeBSD) без дополнительных драйверов.
Структура и устройство
Общая организация
Том FAT16 логически делится на несколько областей, расположенных последовательно:
- Загрузочный сектор (Boot Sector) — первый сектор раздела (сектор 0). Содержит загрузчик операционной системы и параметры файловой системы: размер кластера, количество секторов на кластер, количество копий FAT, количество корневых записей и другие.
- Зарезервированные сектора — область, следующая за загрузочным сектором. Обычно включает загрузочный код и может содержать дополнительные служебные данные. В FAT16 количество зарезервированных секторов обычно равно 1 (только загрузочный сектор) или 2 (в некоторых реализациях).
- Таблица размещения файлов (FAT) — основная структура, хранящая информацию о расположении файлов на диске. FAT16 содержит две копии FAT (основную и резервную) для повышения надёжности. Каждая запись в FAT — 16-битное значение (2 байта). Значения могут быть:
0x0000— свободный кластер.0x0002–0xFFEF— номер следующего кластера в цепочке.0xFFF0–0xFFF6— зарезервированные значения.0xFFF7— дефектный кластер.0xFFF8–0xFFFF— последний кластер файла (конец цепочки).
- Корневой каталог (Root Directory) — область, содержащая записи о файлах и подкаталогах, находящихся в корне тома. В FAT16 корневой каталог имеет фиксированный размер (обычно 512 записей, по 32 байта каждая, что составляет 16 КБ). Каждая запись содержит: имя файла (8 символов) и расширение (3 символа), атрибуты (архивный, скрытый, системный, метка тома, каталог), дату и время создания/модификации, номер первого кластера и размер файла.
- Область данных — занимает основную часть тома. В ней хранятся содержимое файлов и подкаталогов (которые в FAT16 также являются файлами специального типа, содержащими записи о своих элементах). Данные организованы в кластеры — минимальные адресуемые единицы.
Кластеры и адресация
Кластер — это группа последовательных секторов (обычно 1, 2, 4, 8, 16, 32 или 64 сектора по 512 байт). Размер кластера определяется размером тома и задаётся при форматировании. В FAT16 количество кластеров ограничено 65 536, поэтому максимальный размер тома составляет 4 ГБ (при кластере 32 КБ). Для томов меньшего размера кластеры могут быть меньше (например, 512 байт для тома 32 МБ). Адресация кластеров начинается с номера 2 (кластеры 0 и 1 зарезервированы).
Ограничения
- Максимальный размер тома: 4 ГБ (при 32-КБ кластере). В некоторых реализациях (например, в Windows 95 OSR2) — до 2 ГБ.
- Максимальный размер файла: 4 ГБ (ограничение размера тома).
- Максимальное количество файлов в корневом каталоге: 512 (фиксировано).
- Максимальная длина имени файла: 8 символов + 3 символа расширения (в стандартной реализации). Для длинных имён используется механизм VFAT (Virtual FAT), который создаёт несколько записей в каталоге.
- Фрагментация: FAT16 не имеет механизмов дефрагментации на уровне файловой системы, что приводит к снижению производительности при интенсивной записи/удалении.
Классификация и варианты
FAT16B
Расширенная версия FAT16, представленная в MS-DOS 3.31. Поддерживает тома до 2 ГБ (при кластере 32 КБ). В некоторых источниках обозначается как FAT16.
FAT16X
Вариант FAT16, используемый в Windows NT 4.0 и Windows 2000. Отличается поддержкой длинных имён файлов (через VFAT) и расширенными атрибутами безопасности (ACL). Однако в целом FAT16X не получила широкого распространения.
VFAT (Virtual FAT)
Не отдельная файловая система, а расширение, реализованное в Windows 95 для поддержки длинных имён файлов (до 255 символов) на томах FAT12, FAT16 и FAT32. VFAT использует дополнительные записи в каталоге (по 32 байта каждая), которые хранят части длинного имени в кодировке Unicode. Эти записи помечаются специальными атрибутами (объём, системный, скрытый, архивный). VFAT обратно совместима с программами, не поддерживающими длинные имена (они видят только короткое имя в формате 8.3).
Применение
Операционные системы
- MS-DOS (3.31 и выше) — основная файловая система.
- Windows 3.x, 95, 98, Me — поддерживалась для загрузки и работы с разделами.
- Windows NT 4.0, 2000, XP — поддерживалась для совместимости, но не рекомендовалась из-за ограничений.
- Linux — поддерживается через драйвер
msdosилиvfat(для VFAT). - macOS — поддерживается для чтения и записи (в некоторых версиях — только чтение).
- FreeBSD — поддерживается через драйвер
msdosfs.
Съёмные носители
- Дискеты — FAT12 (1,44 МБ) и FAT16 (2,88 МБ).
- Флеш-накопители — в ранних моделях использовалась FAT16, но с ростом ёмкости (более 4 ГБ) перешли на FAT32 или exFAT.
- Карты памяти — некоторые старые цифровые камеры и плееры использовали FAT16 для карт CompactFlash и SD (до 2 ГБ).
Встраиваемые системы
FAT16 часто используется в микроконтроллерах (например, ARM Cortex-M, AVR) и системах реального времени из-за простоты реализации и минимальных накладных расходов. Библиотеки для работы с FAT16 (например, FatFs) доступны для многих платформ.
Сравнение с другими файловыми системами
| Характеристика | FAT12 | FAT16 | FAT32 | exFAT | NTFS |
|---|---|---|---|---|---|
| Макс. размер тома | 32 МБ | 4 ГБ (2 ГБ в некоторых реализациях) | 2 ТБ (теоретически до 16 ТБ) | 128 ПБ (теоретически) | 256 ТБ (в Windows 10) |
| Макс. размер файла | 32 МБ | 4 ГБ | 4 ГБ | 16 ЭБ (теоретически) | 16 ЭБ (теоретически) |
| Макс. количество кластеров | 4 096 | 65 536 | 268 435 456 | 2^32 | 2^64 |
| Поддержка длинных имён | Нет (только 8.3) | Да (через VFAT) | Да | Да | Да |
| Журналирование | Нет | Нет | Нет | Нет | Да |
| Размер кластера по умолчанию | 512 байт – 4 КБ | 512 байт – 32 КБ | 512 байт – 32 КБ | 512 байт – 32 МБ | 512 байт – 2 МБ |
| Совместимость | Высокая | Высокая | Высокая | Средняя (требует драйверов в старых ОС) | Низкая (ограничена Windows) |
Критика и недостатки
- Ограничение на размер тома — 4 ГБ (или 2 ГБ) является серьёзным недостатком для современных носителей.
- Фиксированный корневой каталог — максимальное количество файлов в корне (512) может быть превышено, что приведёт к ошибкам.
- Фрагментация — FAT16 не имеет механизмов предотвращения фрагментации, что снижает производительность при работе с большими файлами.
- Отсутствие журналирования — при сбое питания или ошибке записи возможно повреждение файловой системы.
- Неэффективное использование пространства — при большом размере кластера (32 КБ) даже маленький файл (например, 1 байт) занимает целый кластер, что приводит к потерям дискового пространства (slack space).
Интересные факты
- FAT16 была первой файловой системой, которая поддерживала разделы размером более 32 МБ на жёстких дисках.
- В некоторых реализациях FAT16 (например, в Windows 95) максимальный размер тома был ограничен 2 ГБ из-за использования 16-битных указателей на сектора.
- FAT16 до сих пор используется в некоторых автомобильных мультимедийных системах и навигаторах.
- Формат дискет 2,88 МБ (ED — Extra High Density) использовал FAT16, но не получил широкого распространения из-за дороговизны дисководов и носителей.
Источники
- Microsoft. «FAT: General Overview of On-Disk Format». Microsoft Knowledge Base, 1999.
- Microsoft. «Windows 95 OSR2: FAT32 File System». Microsoft Knowledge Base, 1997.
- Tanenbaum, A. S. «Modern Operating Systems» (4th ed.). Pearson, 2014.
- «File Allocation Table» — Wikipedia (англ.), версия от 15.10.2023.
- «FAT16» — OSDev Wiki, 2022.
- «FatFs — Generic FAT Filesystem Module» — Elm Chan, 2023.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →