Visitar URL original
FAT — Вікіпедія
Перейти до вмісту

FAT

Очікує на перевірку
Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з FAT16)

FAT (від англ. File Allocation Table — «таблиця розміщення файлів») — родина файлових систем, у яких розміщення вмісту файлів на носії описується спеціальною таблицею. Її найвідоміші різновиди — FAT12, FAT16 і FAT32 — відрізняються насамперед розрядністю записів у таблиці та максимальною кількістю кластерів даних. Назвою FAT також позначають саму таблицю розміщення файлів, що є головною структурою цих файлових систем.[1]

Перший варіант FAT було створено 1977 року для інтерпретатора BASIC компанії Microsoft. На початку 1980-х років 12-бітовий різновид FAT12 став файловою системою 86-DOS, а згодом — MS-DOS та PC DOS. FAT12 особливо широко застосовувалася на дискетах, зокрема 5,25- та 3,5-дюймових. Для більших накопичувачів були розроблені FAT16 та FAT32. Родина FAT відіграла важливу роль у поширенні персональних комп'ютерів і досі підтримується багатьма операційними системами, пристроями та засобами роботи з дисковими образами.[2][3]

Слово FAT іноді вживають і щодо спорідненої exFAT, однак вона має інший формат службових структур і не є безпосередньо сумісною з FAT12, FAT16 чи FAT32.[4]

Історія

[ред. | ред. код]
Altair 8800 — один із ранніх персональних комп'ютерів, для якого Microsoft розробляла програмне забезпечення мовою BASIC. Файлова система FAT виникла з подальшого розвитку дискових версій BASIC.

Виникнення FAT

[ред. | ред. код]

У 1970-х роках мікрокомп'ютери поступово переходили від введення програм із перемикачів і паперової стрічки до використання гнучких магнітних дисків. Для дискових версій BASIC знадобився механізм, який міг би зберігати файли змінної довжини, знаходити їхні частини на носії та повторно використовувати звільнений простір. У 1977 році програміст Microsoft Марк Макдональд (Marc McDonald) створив для Stand-alone Disk BASIC систему обліку дискових блоків за допомогою таблиці. За свідченням історії Microsoft, викладеної у The MS-DOS Encyclopedia, цей підхід виник під час обговорень Макдональда з Біллом Гейтсом. Ранні реалізації ще не були тотожними пізнішому формату FAT12.[2]

Наприкінці 1970-х років FAT використовувалася також у розробках Microsoft для процесорів Intel 8080 та Zilog Z80. Її основна ідея — відокремити від запису каталогу інформацію про всі частини файлу — згодом перейшла до операційних систем для процесорів Intel 8086.[2]

Від FAT12 до FAT32

[ред. | ред. код]

У 1980 році Тім Патерсон, розробляючи операційну систему QDOS (пізніше 86-DOS) у компанії Seattle Computer Products, використав модель FAT, з якою раніше ознайомився в Microsoft. У 1981 році похідна від 86-DOS операційна система PC DOS 1.0 постачалася з першим IBM PC. Для дискет у ній використовувався 12-бітовий формат, який отримав назву FAT12. Перші версії DOS не підтримували ієрархію підкаталогів; у DOS 2.0 (1983) до файлової системи додали роботу з підкаталогами й жорсткими дисками.[2]

Зі збільшенням місткості жорстких дисків обмежена кількість адресованих кластерів у FAT12 стала незручною. У DOS 3.0 (1984) з'явилася FAT16 із 16-бітовими записами таблиці. Пізніші варіанти DOS розширили поля опису тому, що дало змогу створювати більші розділи без зміни самого принципу FAT. У 1996 році разом із Windows 95 OSR2 з'явилася FAT32 із 32-бітовими записами, у яких для номера кластера використовують 28 бітів. При цьому FAT12 продовжувала залишатися звичайним форматом для дискет.[1][5]

Принцип роботи

[ред. | ред. код]

Кластери та таблиця розміщення

[ред. | ред. код]

У FAT дисковий простір поділяється на сектори, а сектори області даних об'єднуються в кластери — найменші одиниці, які виділяють файлам. Кластер складається з одного або кількох послідовних секторів. Якщо файл займає кілька кластерів, вони не обов'язково мають розташовуватися поруч: запис у FAT містить номер наступного кластера ланцюжка. Останній запис позначає кінець ланцюжка, а окремі значення використовують для вільних або пошкоджених кластерів.[1]

Каталог містить ім'я файлу, його атрибути, розмір, часові позначки та номер першого кластера. Для читання файлу драйвер починає з цього номера й послідовно переходить за записами таблиці. Завдяки цьому файл можна збільшувати без пошуку єдиної великої неперервної ділянки, але розміщення його частин у різних місцях диска створює фрагментацію. Якщо виділений кластер заповнений не повністю, невикористані байти все одно вважаються зайнятими файлом.[1]

Структура тому

[ред. | ред. код]

Томи FAT12 і FAT16 зазвичай мають чотири послідовні області:

  1. Зарезервовану область із початковим сектором, який у пізніших версіях формату містить BIOS Parameter Block (BPB) з параметрами тому.
  2. Область однієї або кількох копій таблиці FAT; типовий формат дискет містить дві копії.
  3. Кореневий каталог, для якого під час форматування відводиться фіксована кількість записів.
  4. Область даних, розбита на кластери для файлів і підкаталогів.

У FAT32 кореневий каталог зберігається в області даних як звичайний ланцюжок кластерів, а структура початкових службових секторів розширена. Додаткові копії FAT підвищують можливість відновлення після окремих пошкоджень, але не замінюють резервного копіювання й не забезпечують автоматичної узгодженості всіх службових структур після збою живлення.[1]

Імена, атрибути та часові позначки

[ред. | ред. код]

Класичний запис каталогу FAT має довжину 32 байти. Первісна схема іменування відома як 8.3: до восьми символів в основній частині імені та до трьох у розширенні. Звичайні атрибути дозволяють позначати файли як приховані, системні, призначені лише для читання або архівні; окремим атрибутом позначають каталоги. Структура також зберігає дату й час модифікації файлу. У класичному форматі час модифікації має двосекундну точність.[1][6]

Розширення VFAT запровадило довгі імена файлів (LFN) до 255 символів, зберігаючи для сумісності короткий запис 8.3. Довге ім'я розміщується в додаткових 32-байтових записах перед основним записом файлу. Тому на FAT12 також можуть існувати довгі імена, якщо операційна система їх підтримує; наявність таких імен не змінює розрядності FAT.[1][7]

Різновиди FAT

[ред. | ред. код]
РізновидРозрядність запису FATКількість кластерів даних за правилом визначення типуОсновне застосування
FAT1212 бітівМенше ніж 4085 (до 4084)Дискети, невеликі томи, образи дисків
FAT1616 бітівВід 4085 до 65 524Ранні жорсткі диски, невеликі флешносії
FAT3232 біти, з них 28 для номера кластераВід 65 525Жорсткі диски й змінні носії більшої місткості

Таблиця відображає правило розрізнення форматів за кількістю кластерів, викладене в специфікації Microsoft. Фактична місткість тому залежить також від розміру сектора, кількості секторів у кластері та обмежень конкретної реалізації. Напис FAT12, FAT16 або FAT32 у службовому секторі є підказкою, але сам по собі не визначає формат.[8]

FAT12
РозробникMicrosoft
Повна назваFile Allocation Table (12-bit)
Представлено1980 (86-DOS)
Ідентифікатор розділуMBR: 0x01 (для розділів)
Структура
Вміст директорій32-байтові записи; кореневий каталог фіксованого розміру
Виділення простору під файлиЛанцюжки кластерів у 12-бітовій FAT
Збійні секториПозначка 0xFF7 у FAT
Обмеження
Максимальна довжина імені файлу8.3; до 255 символів із VFAT
Можливості
Управління правами доступуНе передбачено базовим форматом
СтисканняНе передбачено базовим форматом
ШифруванняНе передбачено базовим форматом
Операційні системи в яких підтримуєтьсяDOS, Windows, Linux

FAT12 — 12-бітовий різновид родини FAT, призначений передусім для невеликих томів. Він став стандартним форматом дискет у системах DOS і використовувався для найрізноманітніших гнучких носіїв: від ранніх 5,25-дюймових дискет на 160–360 КБ до поширених 3,5-дюймових на 720 КБ, 1,44 МБ і 2,88 МБ. FAT12 не обмежена певним фізичним розміром дискети: її можуть використовувати будь-які достатньо малі за кількістю кластерів томи, зокрема файли-образи.[2][9][8]

Адресація кластерів

[ред. | ред. код]

На відміну від FAT16, де один запис займає два байти, у FAT12 кожен запис займає 12 бітів — півтора байта. Записи упаковуються попарно: два номери або службові значення вміщуються у трьох байтах. Наприклад, пара 12-бітових значень 0x123 і 0x456 зберігається як послідовність байтів 23 61 45 (шістнадцятковий запис). Така організація заощаджує місце в таблиці, але потребує окремої обробки парних і непарних номерів кластерів.[6]

Хоча 12 бітів дозволяють представити 4096 різних значень, не всі вони можуть позначати кластери файлів. Перші два записи таблиці мають службове призначення; інші спеціальні значення позначають, зокрема, вільний кластер (0x000), пошкоджений кластер (0xFF7) і завершення ланцюжка. За правилом Microsoft том визначається як FAT12, якщо його область даних містить менше 4085 кластерів, тобто максимум 4084. Через це розмір FAT12 не має однієї незмінної межі в мегабайтах: вона залежить від розміру кластера.[8][10]

Таблицю FAT12 драйвер читає як послідовність 12-бітових полів; у разі роботи з непарним номером кластера потрібні старші 12 бітів відповідної пари байтів. Інформація про початок файлу міститься в його записі каталогу, тому пошкодження таблиці може порушити зв'язки між частинами одразу багатьох файлів.[10]

Будова тому FAT12

[ред. | ред. код]

На типовій дискеті FAT12 перший сектор відведений під завантажувальний запис та параметри тому; за ним ідуть дві копії FAT, фіксований кореневий каталог і область даних. На відміну від FAT32, кореневий каталог FAT12 не може динамічно розширюватися: максимальну кількість його 32-байтових записів задають під час форматування. Підкаталоги, підтримка яких з'явилася у DOS 2.0, розташовуються в області даних і можуть займати декілька кластерів.[1][2]

Для стандартної 3,5-дюймової дискети високої щільності місткістю 1,44 МБ типовими є такі параметри:[9]

ПараметрЗначення
Розмір сектора512 байтів
Загальна кількість секторів2880
Секторів у кластері1
Зарезервовані сектори1
Копії FAT2, по 9 секторів кожна
Записи кореневого каталогу224 (14 секторів)
Сектори області даних2847
Кластери даних2847

Отже, на такій дискеті область даних займає 2847 × 512 = 1 457 664 байти. Решта простору використовується для завантажувального сектора, двох таблиць FAT і кореневого каталогу. Число 224 обмежує кількість записів безпосередньо в кореневому каталозі, але не загальну кількість файлів на дискеті: додаткові файли можуть міститися в підкаталогах. Довгі імена VFAT займають кілька записів каталогу на один файл.[9][1]

Пошкоджені кластери та відновлення

[ред. | ред. код]

Для позначення пошкодженого кластера FAT12 використовує значення 0xFF7. Якщо перевірка диска виявляє кластер, який не слід надалі використовувати, програма може позначити його цим значенням у таблиці. Це не відновлює дані, які вже були в пошкодженому кластері. Дві копії FAT створюють додаткову можливість для перевірки, але не гарантують успішного відновлення: якщо відмінності між копіями виникли через незавершений запис, сам факт їх наявності ще не вказує, яка копія правильна.[10]

Сумісність та обмеження

[ред. | ред. код]

Головна перевага FAT12 на дискетах — невелика службова таблиця й широке поширення програмного забезпечення для читання традиційних форматів. Її основні обмеження — мала кількість кластерів, фіксований розмір кореневого каталогу та відсутність у базовому форматі розвиненої системи прав доступу, журналювання і механізмів перевірки цілісності вмісту файлів. Максимальний розмір окремого файлу в практичному застосуванні FAT12 обмежений передусім місткістю самого тому.[1][6]

Завдяки сумісності FAT12 залишилася корисною для доступу до історичних дискет, створення образів дисків, ретрокомп'ютерів і невеликих завантажувальних носіїв. Програми dosfstools у Linux можуть створювати й перевіряти файлові системи FAT12, FAT16 і FAT32.[3]

FAT16
РозробникMicrosoft
Повна назваFile Allocation Table (16-bit)
Представлено1984 (MS-DOS 3.0)
Ідентифікатор розділуMBR: 0x04, 0x06, 0x0E
Структура
Вміст директорій32-байтові записи; кореневий каталог фіксованого розміру
Виділення простору під файлиЛанцюжки кластерів у 16-бітовій FAT
Збійні секториПозначка 0xFFF7 у FAT
Обмеження
Максимальна довжина імені файлу8.3; до 255 символів із VFAT
Максимальний розмір томуБлизько 2 ГіБ у типових реалізаціях із кластерами до 32 КіБ
Можливості
Управління правами доступуНе передбачено базовим форматом
СтисканняНе передбачено базовим форматом
ШифруванняНе передбачено базовим форматом
Операційні системи в яких підтримуєтьсяDOS, Windows, Linux

FAT16 — 16-бітовий різновид FAT, який почали використовувати у MS-DOS 3.0 (1984) у зв'язку зі збільшенням місткості жорстких дисків. Формат зберіг основні принципи FAT12: таблиця вказує на наступний кластер файлу, кореневий каталог має фіксоване розташування, а основні записи каталогів займають по 32 байти. Завдяки двобайтовим записам таблиці кількість кластерів даних стала значно більшою, ніж у FAT12. За правилом визначення типу Microsoft том FAT16 містить від 4085 до 65 524 кластерів даних.[2][8][1]

Перші реалізації

[ред. | ред. код]

Перші версії FAT16 у DOS 3.x використовували 16-бітове поле загальної кількості секторів тому. Для секторів розміром 512 байтів це обмежувало том приблизно 32 МіБ, навіть якщо 16-бітова таблиця могла описати більшу кількість кластерів. Власне розрядність FAT і ширина поля кількості секторів — незалежні параметри, тому усунення цього обмеження не потребувало переходу до нового формату записів таблиці.[1]

Пізніші реалізації, пов'язані з DOS 3.31 (1987), запровадили 32-бітовий лічильник секторів у структурі BIOS Parameter Block (BPB). Такі томи зазвичай називають FAT16B, а в окремих історичних джерелах — BigFAT або BIGDOS. Записи самої FAT залишилися 16-бітовими. Для розділів FAT16 в таблиці розділів MBR використовували, зокрема, коди 0x04 (старіші томи) та 0x06 (розширений формат). Код 0x0E застосовують для FAT16 з логічною адресацією блоків (LBA).[1][11]

Розміри та каталоги

[ред. | ред. код]

За поширених параметрів — 512-байтовий сектор, до 32 КіБ на кластер — максимальний обсяг тому FAT16 становить приблизно 2 ГіБ. Використання 64-кібібайтових кластерів у деяких реалізаціях дає змогу збільшити місткість, але не всі драйвери та старі програми правильно працюють із такими томами. Зі зростанням розміру кластера посилюється й внутрішня фрагментація: навіть невеликий файл, який займає лише частину кластера, резервує його повністю.[1]

Кореневий каталог FAT16 створюється в окремій фіксованій області після таблиць FAT. Кількість його записів задається під час форматування; типовим значенням для жорстких дисків було 512 записів, або 16 КіБ. Це обмеження стосується саме кореневого каталогу. Підкаталоги розміщуються в області даних і можуть зростати, доки вистачає вільних кластерів. За використання VFAT довгі імена файлів займають додаткові записи каталогу, тому фактична кількість файлів у корені може бути меншою за кількість доступних записів.[1]

Сумісність та історичне значення

[ред. | ред. код]

FAT16 стала поширеним форматом жорстких дисків у MS-DOS, PC DOS і ранніх версіях Windows. Її підтримка зберігалася і після появи FAT32, зокрема для невеликих томів та змінних носіїв. На FAT16 могли працювати програми дискового стиснення, як-от DriveSpace, однак стиснення забезпечувалося окремим програмним шаром і не було властивістю самої файлової системи.[2][1]

Серед основних недоліків FAT16 — обмеження кількості кластерів, фіксований кореневий каталог, збільшення втрат простору на великих томах і відсутність у базовому форматі журналювання та повноцінного розмежування прав доступу. Саме обмеження місткості тому стало однією з причин появи FAT32.

FAT32
РозробникMicrosoft
Повна назваFile Allocation Table (32-bit)
Представлено1996 (Windows 95 OSR2)
Ідентифікатор розділуMBR: 0x0B, 0x0C
Структура
Вміст директорій32-байтові записи; кореневий каталог у кластерному ланцюжку
Виділення простору під файлиЛанцюжки кластерів у 32-бітовій FAT (28 бітів адреси)
Збійні секториПозначка 0x0FFFFFF7 у FAT
Обмеження
Максимальний розмір файлу4 294 967 295 байтів (4 ГіБ мінус 1 байт)
Максимальна довжина імені файлу8.3; до 255 символів із VFAT
Максимальний розмір томуБлизько 2 ТіБ у типових реалізаціях із 512-байтовими секторами
Можливості
Управління правами доступуНе передбачено базовим форматом
СтисканняНе передбачено базовим форматом
ШифруванняНе передбачено базовим форматом
Операційні системи в яких підтримуєтьсяWindows, Linux

FAT32 — різновид файлової системи FAT, запроваджений у 1996 році разом із Windows 95 OEM Service Release 2 (OSR2). Він був створений для роботи з томами більшої місткості, ніж у FAT16, та для зменшення втрат дискового простору на великих накопичувачах. FAT32 зберігає модель таблиці кластерних ланцюжків та 32-байтові основні записи каталогів, але має змінену структуру службових областей.[1]

Адресація кластерів та службові структури

[ред. | ред. код]

Запис у таблиці FAT32 займає чотири байти, але чотири старші біти зарезервовані; для номера наступного кластера використовують молодші 28 бітів. Нумерація кластерів області даних починається з 2. Значення 0x00000000 позначає вільний кластер, 0x0FFFFFF7 — пошкоджений, а значення наприкінці допустимого діапазону, зокрема 0x0FFFFFFF, — кінець ланцюжка. При читанні запису драйвер має враховувати лише молодші 28 бітів.[10]

На відміну від FAT12 і FAT16, FAT32 не має окремої фіксованої області кореневого каталогу. Його перший кластер задається в BPB, а сам каталог зберігається в області даних як звичайний кластерний ланцюжок. Таким чином, кореневий каталог може збільшуватися в міру потреби й не обмежується наперед визначеними 224 або 512 записами. Службові поля початкового сектора FAT32 розширені: вони описують, зокрема, розмір FAT, номер першого кластера кореневого каталогу та розташування допоміжних структур.[1]

У зарезервованій області FAT32 міститься структура FSInfo, у якій можуть зберігатися остання відома кількість вільних кластерів і підказка щодо наступного вільного кластера. Ці значення мають допоміжний характер: драйвер не повинен покладатися на них без перевірки. Формат також передбачає резервну копію завантажувального сектора. Зазвичай на томі зберігають дві копії FAT, але їхня кількість і використання визначаються параметрами тому та реалізацією драйвера.[1]

Будова каталогів та файлів

[ред. | ред. код]

Каталоги FAT32 складаються з 32-байтових записів. Основний запис зберігає коротке ім'я 8.3, атрибути, часові позначки, номер першого кластера й розмір файлу. Додаткові записи VFAT можуть містити його довге ім'я. Видалений запис позначається байтом 0xE5 на початку, а 0x00 у першому байті запису означає, що далі в каталозі немає чинних записів. Такі позначки дозволяють повторно використовувати місце в каталозі, але самі по собі не забезпечують надійного стирання вмісту файлу.[1]

Щоб знайти дані файлу, драйвер бере номер першого кластера з каталогу й проходить його ланцюжок у FAT. Для кластера з номером N відносний номер першого сектора обчислюють, додаючи до початку області даних добуток (N − 2) на кількість секторів у кластері. Саме початок області даних, а не початок фізичного диска, є базою цього обчислення. Розділ із FAT32 може починатися не з нульового сектора диска, оскільки перед ним можуть міститися MBR та інші розділи.[1]

Обмеження місткості

[ред. | ред. код]

Кількість кластерів FAT32 може бути значно більшою, ніж у FAT16. Типові реалізації з 512-байтовими секторами мають граничну місткість тому близько 2 ТіБ; за інших дозволених розмірів секторів і кластерів теоретична межа може бути вищою. Реальні обмеження залежать від файлового драйвера, засобу форматування та способу розмітки накопичувача. Для розділів FAT32 у MBR поширені коди 0x0B і 0x0C (останній — для LBA). Ці коди описують тип розділу, але не замінюють аналізу службових структур файлової системи.[1][11]

Незалежно від місткості тому, поле розміру окремого файлу в стандартному записі каталогу FAT32 залишається 32-бітовим беззнаковим числом. Максимальний розмір одного файлу становить 4 294 967 295 байтів (4 ГіБ мінус 1 байт). Це важливо, зокрема, під час зберігання великих відеозаписів і образів дисків: на томі може вистачати вільного місця, але один файл не може перевищити зазначеної межі.[12]

Підтримка в операційних системах

[ред. | ред. код]

FAT32 початково підтримували Windows 95 OSR2, Windows 98 і Windows Me, а надалі — системи сімейства Windows NT та інші операційні системи. Старі версії DOS і Windows, драйвери яких знали лише FAT12 і FAT16, не могли без додаткового програмного забезпечення читати FAT32. У Windows XP стандартний засіб форматування обмежував створення FAT32-томів обсягом 32 ГБ, хоча сама система могла працювати з більшими томами, створеними іншими програмами. Це було обмеженням засобу форматування, а не максимального розміру формату FAT32.[13]

У серпні 2024 року Microsoft повідомила про збільшення межі форматування FAT32 з командного рядка до 2 ТБ у попередній збірці Windows 11 Canary. У квітні 2026 року таке збільшення також анонсували для збірок Windows 11 у каналі Release Preview. Ці повідомлення стосуються штатної команди форматування і не усувають обмеження розміру окремого файлу до 4 ГіБ мінус 1 байт.[13][14]

FAT32 застосовується на USB-накопичувачах, картах пам'яті SDHC та в системних розділах UEFI. Її переваги — широка підтримка, відносно прості службові структури й можливість обміну файлами між різними системами; недоліки — відсутність у базовому форматі журналювання, повноцінної системи прав доступу та підтримки файлів понад 4 ГіБ мінус 1 байт.[15][5]

Використання та стандартизація

[ред. | ред. код]

Операційні системи та змінні носії

[ред. | ред. код]

Упродовж 1980-х і 1990-х років FAT була основним форматом локальних дисків у DOS і Windows 9x. У сімействі Windows NT було запроваджено NTFS, яка згодом стала типовою файловою системою для системних дисків Windows. Проте сумісність FAT зберігалася: різні її версії підтримуються Windows, Linux, низкою вбудованих систем і програм для роботи зі змінними носіями.[7][3]

На картах пам'яті вибір файлової системи залежить від класу носія. За рекомендаціями SD Association, стандартні картки SD місткістю до 2 ГБ використовують FAT12 або FAT16, картки SDHC — FAT32, а SDXC і SDUC — exFAT. Отже, не всі сучасні карти SD форматуються в FAT12, хоча ця назва й трапляється в описах сумісності родини FAT.[15]

У специфікації UEFI визначено використання формату, заснованого на FAT: для системного розділу EFI на жорсткому диску передбачено FAT32, а для знімних завантажувальних носіїв допускаються FAT12, FAT16 або FAT32 відповідно до параметрів носія. Це ще одна причина збереження підтримки класичних різновидів FAT у сучасному програмному забезпеченні.[5]

Стандарти

[ред. | ред. код]

Формат розміщення файлів на дискетах описано в міжнародних стандартах ECMA-107 та ISO/IEC 9293. Друга редакція ECMA-107 (1995) охоплює 12- і 16-бітові таблиці, описує початкові службові структури, 32-байтові записи каталогів, правила розміщення файлів та обробки пошкоджених кластерів. Ці стандарти не визначають усіх пізніших розширень, зокрема формату FAT32 або довгих імен VFAT.[6][16]

Розширення та споріднені системи

[ред. | ред. код]

VFAT і метадані

[ред. | ред. код]

Введене разом із Windows 95 розширення VFAT дозволило використовувати довгі імена файлів на томах FAT12, FAT16 та FAT32. Системи, які не розпізнають додаткові записи, можуть працювати з короткими іменами 8.3, але за певних операцій зі старими програмами довгі імена можуть бути втрачені.[1]

Системи OS/2 і ранні реалізації Linux використовували додаткові файли або спеціальні структури для зберігання властивостей, яких у класичній FAT немає: розширених атрибутів, прав доступу та інших метаданих. Зокрема, проєкт UMSDOS дозволяв представляти том FAT із частиною звичних для Unix атрибутів. Подібні розширення залежали від конкретного драйвера і не ставали властивостями базового формату FAT.[7]

exFAT та інші похідні

[ред. | ред. код]
Докладніше: ExFAT

exFAT — окрема файлова система Microsoft, створена для змінних накопичувачів великої місткості. Вона зберегла деякі принципи родини FAT, але має інші службові структури, 64-бітові поля розміру файлу та бітову карту розміщення кластерів. Звичайний драйвер FAT12/FAT16/FAT32 не може безпосередньо читати том exFAT.[4]

Для окремих платформ створювали й інші файлові системи, споріднені з FAT, зокрема FATX для консолей Xbox. Їх не слід ототожнювати зі стандартними різновидами FAT: спільний принцип розміщення файлів не означає повної сумісності дискових форматів.

Обмеження та надійність

[ред. | ред. код]

Простота структури FAT полегшує реалізацію драйверів і обмін файлами між різними системами. Водночас базовий формат не містить журналу операцій, повноцінної моделі користувачів і прав доступу чи контрольних сум вмісту файлів. Пошкодження службових записів може призвести до втрати ланцюжків кластерів; особливо вразливим є некоректно завершений запис. Для відновлення застосовують перевірку файлової системи, зіставлення копій FAT і пошук загублених ланцюжків, але жоден із цих методів не гарантує відновлення даних.[1]

Обмеження обсягу залежать від конкретного різновиду: для FAT12 вирішальним є число кластерів, для FAT16 — також допустимий розмір кластера, для FAT32 — додатково чотирибайтове поле розміру файлу. З огляду на ці межі вибір файлової системи визначають насамперед сумісність із пристроєм, місткість носія та розміри файлів, які потрібно зберігати.[8][12]

Патентні питання

[ред. | ред. код]

У 1990–2000-х роках предметом патентних суперечок були окремі рішення для підтримки довгих імен файлів у FAT, а не лише базова ідея таблиці розміщення файлів. У 2009 році Microsoft і виробник навігаційних пристроїв TomTom уклали угоду про врегулювання патентних спорів; за її умовами TomTom мав прибрати зі своїх виробів функції, пов'язані з двома патентами Microsoft на довгі імена FAT. Ця справа стосувалася саме запатентованих розширень, тому її не варто трактувати як заборону використання будь-якої реалізації FAT.[17]

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Microsoft FAT Specification (PDF) (англ.). Microsoft Corporation. 2004. розд. 2–4. Процитовано 11 листопада 2026.
  2. 1 2 3 4 5 6 7 8 Duncan, Ray (1988). Section I: The Development of MS-DOS. The MS-DOS Encyclopedia: Versions 1.0 Through 3.2 (англ.). Microsoft Press. ISBN 1-55615-049-0.
  3. 1 2 3 dosfstools — FAT filesystem tools (англ.). dosfstools. Процитовано 11 листопада 2026.
  4. 1 2 exFAT file system specification (англ.). Microsoft. розд. 1, 3–5. Процитовано 11 листопада 2026.
  5. 1 2 3 UEFI Specification 2.10: Protocols — Media Access (англ.). UEFI Forum. 2022. розд. 13.3. Процитовано 11 листопада 2026.
  6. 1 2 3 4 Standard ECMA-107: Volume and File Structure of Disk Cartridges for Information Interchange (PDF) (англ.). Ecma International. 1995–06. розд. 8–12. Процитовано 11 листопада 2026.{{cite web}}: Обслуговування CS1: Сторінки з неправильним форматом в діапазонах дат (посилання)
  7. 1 2 3 VFAT (англ.). The Linux Kernel documentation. Процитовано 11 листопада 2026.
  8. 1 2 3 4 5 Microsoft FAT Specification (PDF) (англ.). Microsoft Corporation. 2004. розд. 3.5 «Determination of FAT type». Процитовано 11 листопада 2026.
  9. 1 2 3 FreeDOS kernel: initdisk.c (таблиця параметрів дискет) (англ.). FreeDOS. Процитовано 11 листопада 2026.
  10. 1 2 3 4 Microsoft FAT Specification (PDF) (англ.). Microsoft Corporation. 2004. розд. 4 «FAT Region». Процитовано 11 листопада 2026.
  11. 1 2 dosfstools: mkfs.fat.c — визначення коду розділу FAT (англ.). dosfstools. Процитовано 11 листопада 2026.
  12. 1 2 Microsoft FAT Specification (PDF) (англ.). Microsoft Corporation. 2004. розд. 6.4 «File/Directory Size». Процитовано 11 листопада 2026.
  13. 1 2 Announcing Windows 11 Insider Preview Build 27686 (Canary Channel) (англ.). Windows Insider Blog. 15 серпня 2024. Процитовано 11 листопада 2026.
  14. ↑ Releasing Windows 11 Builds 26100.8313 and 26200.8313 to the Release Preview Channel (англ.). Windows Insider Blog. 17 квітня 2026. Процитовано 11 листопада 2026.
  15. 1 2 Capacity (SD/SDHC/SDXC/SDUC) (англ.). SD Association. Процитовано 11 листопада 2026.
  16. ↑ ECMA-107 (англ.). Ecma International. Процитовано 11 листопада 2026.
  17. ↑ Microsoft and TomTom Settle Patent Infringement Cases (англ.). Microsoft. 30 березня 2009. Процитовано 11 листопада 2026.

Література

[ред. | ред. код]
  • Duncan, Ray (ed.). The MS-DOS Encyclopedia: Versions 1.0 Through 3.2. Microsoft Press, 1988. ISBN 1-55615-049-0.
  • Microsoft Corporation. Microsoft FAT Specification. 2004.
  • Ecma International. Standard ECMA-107: Volume and File Structure of Disk Cartridges for Information Interchange. 2nd ed. June 1995.