Перейти до вмісту

exFAT

Очікує на перевірку
Матеріал з Вікіпедії — вільної енциклопедії.
exFAT
РозробникMicrosoft
Повна назваExtensible File Allocation Table (також Extended File Allocation Table)
Представленолистопад 2006; 20 років тому (2006-11) (Windows Embedded CE 6.0)
Ідентифікатор розділу
  • MBR: 0x07
  • GPT: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Структура
Вміст директорійІєрархія каталогів; записи з хешами імен
Виділення простору під файлиБітова карта зайнятих кластерів; FAT для ланцюжків кластерів
Збійні секториПозначення непридатних кластерів у FAT
Обмеження
Максимальний розмір файлу264 − 1 байт (теоретична межа поля розміру)
Максимум файлівДо 2 796 202 файлів в одному каталозі
Максимальна довжина імені файлу255 символів Unicode
Максимальний розмір томуБлизько 128 ПіБ за максимального розміру кластерів; рекомендовано близько 512 ТіБ
Допустимі символи в назвахUTF-16, без керівних символів U+0000—U+001F та символів " * / : < > ? \ |
Можливості
Дати що записуютьсяСтворення, остання зміна, останній доступ
Діапазон дат1 січня 1980 — 31 грудня 2107
Точність збереження дати10 мс (створення й зміна); 2 с (доступ)
Потоки метаданихНемає
АтрибутиЛише читання, прихований, системний, каталог, архівний
Управління правами доступуУ базовому форматі немає списків контролю доступу
СтисканняНемає вбудованого стиснення
ШифруванняНемає вбудованого шифрування; можливе шифрування всього носія зовнішніми засобами
Операційні системи в яких підтримується

exFAT (від англ. extensible File Allocation Table — «розширювана таблиця розміщення файлів»; також розшифровується як Extended File Allocation Table, іноді — FAT64) — файлова система сімейства FAT, розроблена корпорацією Microsoft для флешпам'яті та інших змінних носіїв. Уперше з'явилася 2006 року у Windows Embedded CE 6.0. Вона підтримує файли обсягом понад 4 ГіБ, на відміну від FAT32, і має порівняно нескладну структуру без обов'язкового журналювання метаданих.[1][2]

exFAT використовують у USB-накопичувачах, зовнішніх дисках, фотокамерах та інших пристроях для обміну файлами між різними операційними системами. За специфікаціями SD Association вона є файловою системою карт пам'яті SDXC (місткість понад 32 ГБ до 2 ТБ) та SDUC (понад 2 до 128 ТБ).[3] Її підтримують Windows, macOS, Linux, ChromeOS та багато мобільних пристроїв; доступність на конкретному пристрої залежить від його програмного забезпечення.[4][5]

Специфікацію exFAT Microsoft оприлюднила 2019 року, одночасно підтримавши включення драйвера до ядра Linux і поширення відповідних патентних гарантій через Open Invention Network. Водночас exFAT залишається запатентованою технологією, для окремих комерційних реалізацій якої Microsoft пропонує ліцензії.[6][2]

Історія

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

Microsoft створила exFAT для вбудованих систем і змінних накопичувачів, яким бракувало можливостей FAT32, насамперед через обмеження розміру окремого файлу. Замість переходу на складнішу NTFS розробники зберегли основні принципи FAT, але змінили механізм обліку вільного простору, структуру каталогів і формат зберігання розміру файлів. Першою операційною системою з exFAT стала Windows Embedded CE 6.0, випущена в листопаді 2006 року.[2][1]

Підтримку exFAT згодом додали до Windows Vista SP1, а для Windows XP і Windows Server 2003 випустили окреме оновлення KB955704. В Mac OS X Snow Leopard вона з'явилася у версії 10.6.5 (2010).[7]

У січні 2009 року SD Association оголосила про використання exFAT у новому поколінні карт SDXC, розрахованому на зберігання великих фотографій і відеофайлів.[8] Пізніше використання exFAT поширили й на стандарт SDUC, що передбачає місткість до 128 ТБ.[3]

Спочатку реалізації exFAT для вільного програмного забезпечення створювали поза основною гілкою ядра Linux; серед них були драйвери на основі FUSE. У 2013 році Samsung опублікувала код свого драйвера для Linux під ліцензією GPLv2 після врегулювання порушення умов ліцензії ядра Linux.[9]

28 серпня 2019 року Microsoft оголосила про відкриту публікацію технічної специфікації exFAT і підтримку її включення до Linux. В експериментальній підсистемі драйверів ядра Linux 5.4, випущеного в листопаді 2019 року, з'явилася початкова реалізація exFAT; у Linux 5.7 (травень 2020 року) її замінив новий драйвер, розроблений на основі реалізації Samsung і включений до основного дерева файлових систем.[6][10][2]

Будова та принципи роботи

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

Організація тому

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

Файлова система exFAT поділяє том на завантажувальну область, її резервну копію, область таблиці розміщення файлів (FAT) та область даних (cluster heap). У завантажувальних областях містяться параметри тому й контрольні суми. Область даних складається з кластерів — мінімальних одиниць виділення простору для файлів і каталогів.[1]

На відміну від попередніх систем FAT, зайняті та вільні кластери exFAT обліковує окрема бітова карта (allocation bitmap). Таблиця FAT зберігає послідовність кластерів, якщо файл розташований фрагментовано. Для файлів, записаних суцільною ділянкою, передбачено прапорець NoFatChain: тоді достатньо знати початковий кластер і довжину даних, не читаючи ланцюжок FAT. Це зменшує кількість операцій над службовими структурами, хоча не гарантує відсутності фрагментації.[1]

Каталоги та імена файлів

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

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

Назви файлів записуються в UTF-16 і можуть містити до 255 кодових одиниць. Система зберігає написання великих і малих літер, але зазвичай не розрізняє їх під час пошуку. Для цього використовується окрема таблиця перетворення регістру (up-case table). На відміну від FAT32, exFAT не створює коротких псевдонімів імен у форматі 8.3. Заборонені керівні символи U+0000—U+001F, а також " * / : < > ? \ |; назви . і .. зарезервовано.[1]

Часові мітки й атрибути

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

Для кожного файлу та каталогу передбачено дати створення, останньої зміни й останнього доступу. Формат часу охоплює 1980—2107 роки; точність міток створення й зміни може становити 10 мс, доступу — 2 с. Окремі поля зберігають зміщення від UTC. Наявність полів не означає, що кожна операційна система оновлює всі три мітки після кожної дії: наприклад, оновлення часу останнього доступу під час читання специфікація лише рекомендує.[1]

Передбачено атрибути «лише читання», «прихований», «системний», «каталог» і «архівний». Базовий формат не забезпечує зберігання власників, списків контролю доступу (ACL), символьних і жорстких посилань чи альтернативних потоків даних, притаманних NTFS.[11]

Межі формату

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

Поле довжини файлу має 64 біти, тому його теоретична межа — 264 − 1 байт (майже 16 ЕіБ). Насправді розмір файлу додатково обмежений місткістю тому й реалізацією драйвера.[11]

Допустимий розмір кластера — від одного сектора (512—4096 байтів) до 32 МіБ. Уміст області кластерів обмежений величиною 232 − 11 кластерів, що за найбільшого кластера відповідає приблизно 128 ПіБ. Офіційна специфікація рекомендує не перевищувати 224 − 2 кластерів, тобто близько 512 ТіБ за найбільшого кластера. Поле загальної довжини тому має іншу, значно вищу формальну межу; ототожнювати її з реально доступним обсягом даних не слід.[1]

Максимальна довжина даних каталогу за специфікацією — 256 МіБ. Оскільки опис одного файлу потребує щонайменше трьох записів по 32 байти, один каталог теоретично вміщує до 2 796 202 файлів. Це стосується й кореневого каталогу; довгі імена або додаткові записи зменшують цей показник.[1]

Переваги та обмеження

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

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

У стандартній exFAT немає журналу змін метаданих, вбудованого стиснення, EFS або повноцінної моделі прав доступу на окремі файли. Порівняно з NTFS це спрощує формат, але обмежує його можливості для системних дисків і багатокористувацьких середовищ. Наявність резервної завантажувальної області та контрольних сум не замінює журналювання: у разі від'єднання носія під час запису можливе пошкодження файлової системи.[11][1]

Для шифрування змінних носіїв із exFAT можна застосувати зовнішнє шифрування тому, зокрема BitLocker To Go у відповідних версіях Windows. Це не є власною функцією exFAT й може впливати на доступність носія в інших операційних системах.[12]

Окреме розширення TexFAT (transaction-safe exFAT) було розроблене для Windows CE. Воно використовує дві таблиці FAT і дві карти розміщення кластерів для виконання транзакційних операцій; базова специфікація exFAT не вимагає цих можливостей від звичайних реалізацій.[1]

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

[ред. | ред. код]
Операційна система Підтримка
Microsoft Windows Вбудована підтримка читання, запису й форматування починаючи з Windows Vista SP1, зокрема у Windows 7, 8, 10 і 11. Для Windows XP та Windows Server 2003 існувало оновлення KB955704; ці версії вже не підтримуються виробником.[2]
macOS Штатна підтримка читання та запису з Mac OS X 10.6.5 (2010); exFAT доступна в програмі «Дискова утиліта» для форматування носіїв.[7][13]
Linux Драйвер на основі FUSE доступний для старих систем; початковий драйвер ядра з'явився в Linux 5.4, а новий — у Linux 5.7. Сучасний драйвер забезпечує читання й запис; для створення та перевірки томів використовують, зокрема, пакет exfatprogs.[10][4]
FreeBSD Доступні сторонні засоби монтування exFAT, зокрема порт exfat-fuse на основі FUSE.[14]
Android Підтримка на окремих пристроях існувала раніше через драйвери виробників. У документації Android Open Source Project exFAT зазначено серед підтримуваних файлових систем ядра Linux 5.10 і новіших; починаючи з Android 13 підсистема користувацького простору спирається на файлові системи, включені до GKI. Сумісність залежить від конкретного пристрою.[5]
iOS і iPadOS З iOS 13 та iPadOS 13 додано роботу із зовнішніми накопичувачами в програмі «Файли»; exFAT належить до підтримуваних форматів. Для підключення можуть знадобитися перехідник і додаткове живлення.[15]
ChromeOS Підтримує доступ до зовнішніх носіїв із exFAT поряд із FAT16 і FAT32.[16]

Ліцензування та відкриті реалізації

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

Microsoft володіє патентами на технології exFAT і з кінця 2000-х років пропонувала виробникам пристроїв ліцензійні угоди. Партнерами ліцензійної програми ставали, зокрема, виробники фото- й відеотехніки, а також розробники драйверів. Це сприяло поширенню формату на пристроях різних виробників, але патентні умови становили перешкоду для деяких незалежних реалізацій із відкритим кодом.[2]

2013 року Software Freedom Conservancy допомогла Samsung узгодити поширення драйвера exFAT з умовами GPLv2: компанія оприлюднила вихідний код, раніше присутній у бінарній формі в пристрої з Linux. Публікація цього коду не скасовувала автоматично патентів Microsoft на сам формат.[9]

У серпні 2019 року Microsoft оприлюднила специфікацію exFAT і підтримала додавання її реалізації до Linux. Компанія також схвалила включення відповідного коду до визначення Linux System організації Open Invention Network — механізму взаємних патентних зобов'язань його учасників. Цей крок поліпшив правові умови використання exFAT у відкритому програмному забезпеченні, але не означав переходу всіх патентів exFAT у суспільне надбання чи надання будь-якій реалізації необмеженої безплатної патентної ліцензії.[6][17]

Microsoft і надалі описує exFAT як запатентовану файлову систему й пропонує комерційне ліцензування, зокрема через постачальників готових реалізацій. Водночас відкритий драйвер Linux поширюється за GPLv2. Отже, умови використання залежать від того, про яку саме реалізацію, програмну ліцензію та патентні права йдеться.[2]

Див. також

[ред. | ред. код]
  • FAT — сімейство файлових систем із таблицею розміщення файлів
  • FAT32 — попередня файлова система сімейства FAT
  • NTFS — файлова система Microsoft із журналюванням, списками контролю доступу та іншими можливостями
  • F2FS — файлова система, орієнтована на флешпам'ять
  • Список файлових систем

Примітки

[ред. | ред. код]
  1. 1 2 3 4 5 6 7 8 9 10 11 12 exFAT file system specification. Microsoft Learn (англ.). Microsoft. Процитовано 11 листопада 2026.
  2. 1 2 3 4 5 6 7 8 Tech Licensing Programs: exFAT and more. Microsoft Legal (англ.). Microsoft. Процитовано 11 листопада 2026.
  3. 1 2 Capacity (SD/SDHC/SDXC/SDUC). SD Association (англ.). Процитовано 11 листопада 2026.
  4. 1 2 The Linux exFAT filesystem driver. The Linux Kernel documentation (англ.). Процитовано 11 листопада 2026.
  5. 1 2 Android kernel file system support. Android Open Source Project (англ.). Google. Процитовано 11 листопада 2026.
  6. 1 2 3 Gossman, John (28 серпня 2019). exFAT in the Linux kernel? Yes!. Microsoft Open Source Blog (англ.). Процитовано 11 листопада 2026.
  7. 1 2 Slivka, Eric (11 листопада 2010). Mac OS X 10.6.5 Notes: exFAT Support, AirPrint, Flash Player Vulnerability Fixes. MacRumors (англ.). Процитовано 11 листопада 2026.
  8. ↑ SDXC Signals New Generation of Removable Memory with up to 2 Terabytes of Storage (PDF) (англ.). SD Association. 7 січня 2009. Процитовано 11 листопада 2026.
  9. 1 2 Conservancy Helps Samsung Resolve GPL Compliance Matter Amicably (англ.). Software Freedom Conservancy. 16 серпня 2013. Процитовано 11 листопада 2026.
  10. 1 2 Linux 5.7. KernelNewbies (англ.). 3 червня 2020. Процитовано 11 листопада 2026.
  11. 1 2 3 File System Functionality Comparison. Microsoft Learn (англ.). Microsoft. Процитовано 11 листопада 2026.
  12. ↑ BitLocker FAQ. Microsoft Learn (англ.). Microsoft. Процитовано 11 листопада 2026.
  13. ↑ File system formats available in Disk Utility on Mac. Apple Support (англ.). Процитовано 11 листопада 2026.
  14. ↑ mount.exfat-fuse(8). FreeBSD Manual Pages (англ.). Процитовано 11 листопада 2026.
  15. ↑ Connect external storage devices to iPhone. Apple Support (англ.). Процитовано 11 листопада 2026.
  16. ↑ Які типи файлів і зовнішні пристрої підтримує Chromebook. Довідка Chromebook. Google. Процитовано 11 листопада 2026.
  17. ↑ Microsoft & exFAT: One Step on a Long Journey. Software Freedom Conservancy (англ.). 30 серпня 2019. Процитовано 11 листопада 2026.

Посилання

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