exFAT | |
---|---|
Розробник | Microsoft |
Повна назва | Extended File Allocation Table |
Представлено | листопад 2006 (Windows Embedded CE 6.0) |
Ідентифікатор розділу | |
Структура | |
Вміст директорій | хеш-таблиця |
Виділення простору під файли | Бітова мапа (bitmap), Зв'язаний список (linked list) |
Збійні сектори | Маркування кластерів |
Обмеження | |
Максимальний розмір файлу | ~16 ексбібайт |
Максимум файлів | До 2,796,202 на директорію |
Максимальна довжина імені файлу | 255 символів |
Максимальний розмір тому | ~128 петабайт |
Допустимі символи в назвах | всі символи Unicode за виключенням ascii-символів 0-31 та /\:*?"<>|
(закодовані в UTF-16) |
Можливості | |
Дати що записуються | дата створення, дата останньої зміни, дата останього доступу |
Діапазон дат | від 1 січня 1980 до 31 грудня 2107 |
Точність збереження дати | 10 мс для дати останьої зміни,
10 мс для дати створення, 2 секунди для дати останнього доступу |
Потоки метаданих | ні |
Атрибути | Тільки читання (Read-only), прихований (hidden), системний (system), підкаталог (subdirectory), архівний (archive) |
Управління правами доступу | ACL (тільки Windows CE 6) |
Стискання | Ні |
Шифрування | Так, підтримується EFS починаючи з Windows 10 v1607 та Windows Server 2016 і пізніших |
Операційні системи в яких підтримується |
|
exFAT (від англ. Extended File Allocation Table — «розширена таблиця розміщення файлів») — пропрієтарна файлова система, розроблена корпорацією Microsoft та оптимізована для використання на різних типах флеш-накопичувачів таких як USB-флеш-накопичувачі і картки пам’яті SD.[4] Вперше представлена у листопаді 2006 року в складі Windows CE 6.0[5], exFAT задумувалася як спадкоємець застарілої FAT32 з усуненням її обмежень на розмір файлів і томів. Ця файлова система забезпечує підтримку файлів більших за 4 ГБ (ліміт FAT32) і великих носіїв, не маючи високих накладних витрат NTFS. Завдяки цьому exFAT стала стандартним файловим форматом для карт пам’яті SDXC та SDUC великої місткості (понад 32 ГБ)[6], а також часто використовується для форматування USB-накопичувачів. Первинно формат exFAT був закритим і запатентованим, однак 28 серпня 2019 року Microsoft оприлюднила офіційну специфікацію exFAT і відкрила доступ до своїх патентів для учасників Open Invention Network.[7] Це дозволило реалізувати підтримку exFAT у відкритому програмному забезпеченні (зокрема, додати драйвер exFAT до ядра Linux) і зробило exFAT фактично загальнодоступним стандартом.
Станом на 2025 рік, exFAT це єдина, сучасна, файлова система що «з коробки» підтримується всіма популярними операційними системами — Windows, Linux, MacOS, Android, iOS.
Історія створення
Файлова система exFAT була створена компанією Microsoft наприкінці 2006 року, вперше реалізована у операційній системі Windows CE 6.0 для вбудованих пристроїв. У 2007–2008 рр. підтримку exFAT було додано і до настільних ОС Microsoft: драйвер включили до складу Windows Vista (починаючи з Service Pack 1), а згодом випустили оновлення для Windows XP та Windows Server 2003 (KB955704), що додавало сумісність з exFAT на цих платформах. Назва exFAT розшифровується як Extended File Allocation Table («розширена FAT»), також неофіційно цю систему інколи називали FAT64 через значно більшу розрядність адресації даних (64 біти).
Головною мотивацією розробки exFAT було розширення можливостей файлової системи FAT32 для нових носіїв інформації. Стандартна FAT32 обмежувала максимальний розмір файлу до 4 ГБ і розмір розділу до 2 ТБ (за умови розміру сектора 512 байт), що стало тісним місцем із появою все більших флеш-карт і жорстких дисків. NTFS, хоча й підтримує великі обсяги даних, не підходила для портативних носіїв через складність структури та журналювання, що може збільшувати знос пам’яті і вимагало більше ресурсів. Файлова система exFAT була спроектована як легковаге рішення «посередині»: вона зберігає простоту FAT, усуваючи її основні обмеження (розміри файлів/томів), і оптимізована для флеш-пам’яті (зменшення кількості операцій запису). Таким чином, exFAT придатна для сценаріїв, де NTFS недоцільна, але потрібна підтримка файлів більших за 4 ГБ.
У січні 2009 року Асоціація SD оголосила новий стандарт карт пам’яті SDXC (Secure Digital eXtended Capacity), який передбачав максимальну ємність карт до 2 ТБ і швидкості передачі даних до 300 МБ/с. Важливою частиною цього стандарту стала файлова система exFAT – саме її було обрано для забезпечення роботи з такими великими обсягами даних і сумісності між різними пристроями. За даними SD Association, використання exFAT у SDXC дозволяє картці пам’яті зберігати, наприклад, до 100 фільмів у HD-якості чи десятки тисяч фотографій, а також швидко передавати ці великі файли на комп’ютери і побутову електроніку. Таким чином, вже з кінця 2000-х років exFAT почала широко впроваджуватися в індустрії флеш-пам’яті та цифрових пристроїв (камери, камкордери, смартфони тощо) як наступник FAT32 для носіїв великої місткості.
Технічні характеристики
exFAT зберігає загальну архітектуру сімейства FAT, проте містить низку удосконалень та змін у форматі, що відрізняють її від попередників. Основні особливості та можливості файлової системи exFAT:[8]
- Збільшені ліміти розміру даних: максимальний розмір одного файлу становить ~16 ексбібайт (264 байт), а максимальний розмір тому (розділу) – ~128 петабайт (257 байт). Рекомендований Microsoft граничний розмір розділу – 512 ТБ. Це суттєве збільшення порівняно з FAT32 (де файл обмежений 4 ГБ, а том ~2 ТБ).
- Кількість файлів: один каталог exFAT може містити до 2 796 202 (223/3) файлів (це обмеження розраховане для оптимальної структури каталогу; на кореневий каталог ліміт не накладається)[9]. Загальна кількість файлів на одному томі теоретично може сягати ~4,29 млрд (232–11), що на порядок більше, ніж у FAT32. Довжина імені файлу може бути до 255 символів Unicode (UTF-16), причому exFAT не зберігає «короткі» імена 8.3 для сумісності з DOS (як це робила FAT16/32) – використовується лише повний варіант імені файлу.
- Оптимізація під флеш-пам’ять: для обліку вільного місця використовується спеціальна бітова карта (bitmap), що містить позначки вільних і зайнятих кластерів. Це рішення прискорює операції видалення та запису файлів, зменшує фрагментацію диска і знижує кількість перезаписів одних і тих самих осередків пам’яті (важливо для збільшення ресурсу флеш-накопичувачів).
- Розмір кластерів: exFAT допускає значно більші кластери даних – до 32 МБ (225 байт). Це дає змогу ефективно працювати з дуже великими томами, зменшуючи розмір таблиць розміщення файлів (FAT) та накладні витрати на їх обслуговування.
- Часові мітки: покращено точність зберігання часу зміни і створення файлу до 10 мс (у FAT32 – крок 2 с). Для часу останнього доступу введено точність до 2 с (у FAT32 взагалі зберігалася лише дата доступу). Починаючи з Windows Vista SP2, у exFAT також записується часовий пояс (зміщення від UTC) для кожної часової мітки, що дозволяє коректно інтерпретувати час створення/зміни файлів на різних пристроях.
- Додаткові можливості: exFAT передбачає (але не вимагає) підтримку списків контролю доступу (ACL) для файлів і тек та транзакційного режиму TexFAT (Transactional exFAT). TexFAT забезпечує своєрідне журналювання – дублювання важливих структур на носії – що підвищує надійність запису (корисно для випадків раптового вилучення носія). Зазначені функції наразі підтримуються переважно у вбудованих реалізаціях (Windows Embedded); у стандартних настільних версіях Windows доступу до ACL чи TexFAT для exFAT немає. Також у exFAT спрощено структуру каталогів: у підкаталогах більше не створюються службові записи
.
і..
(поточна та батьківська текa) на відміну від старих версій FAT.
Підтримка операційними системами
В таблиці нижче узагальнено підтримку файлової системи exFAT в різних операційних системах:
Операційна система | Підтримка exFAT |
---|---|
Microsoft Windows | Windows XP (SP2) та Windows Server 2003 (SP2) – підтримка після встановлення оновлення KB955704.
Windows Vista (SP1) та всі новіші версії Windows (7, 8, 10, 11) мають вбудовану повну підтримку exFAT (читання і запис).[10] |
macOS (OS X) | Підтримка додана починаючи з Mac OS X 10.6.5 Snow Leopard (листопад 2010) – штатні засоби macOS можуть читати, записувати, перевіряти і форматувати розділи exFAT[11] |
Linux | Нативна підтримка з’явилась у ядрі Linux 5.4 (листопад 2019)[7][12], після чого сучасні дистрибутиви Linux мають драйвер exFAT «з коробки». Раніше (з ~2009 р.) використовувались сторонні реалізації: зокрема, доступний користувацький драйвер fuse-exfat (FUSE) з можливістю читання/запису, а у 2013 р. Samsung відкрила власний модуль ядра exFAT під GPLv2[13]. |
Android | Офіційна підтримка exFAT з’явилася в Android 13 (2022) для пристроїв на ядрі Linux 5.10 і новіше.[14] На попередніх версіях Android підтримка залежала від виробника: деякі пристрої (наприклад, Samsung Galaxy) мали вбудовані пропрієтарні драйвери exFAT, тоді як інші не підтримували exFAT із коробки. |
iOS / iPadOS | Підтримка зовнішніх накопичувачів, відформатованих у exFAT, додана в Apple iOS 13 / iPadOS 13 (2019). iPhone та iPad з iOS 13 можуть читати і записувати на USB-носії exFAT через додаток «Файли» (Files). |
Chrome OS | Операційна система Chrome OS (на базі ядра Linux) має вбудовану можливість читати і записувати exFAT-розділи (реалізовано у випусках Chrome OS після інтеграції драйвера exFAT в ядро) |
Ліцензування та правові аспекти
Файлова система exFAT була запатентованою технологією Microsoft і тривалий час поширювалася на умовах ліцензування. Microsoft володіє низкою патентів, що охоплюють окремі елементи дизайну exFAT, тому для реалізації підтримки exFAT у будь-якому пристрої чи програмі формально вимагалася ліцензія від Microsoft. У 2009 році корпорація активно відстоювала свої права на файлові системи: зокрема, в лютому 2009 р. Microsoft подала позов проти компанії TomTom за порушення патентів, пов’язаних із технологіями FAT. Цей прецедент підтвердив серйозність намірів Microsoft захищати інтелектуальну власність, що було важливим сигналом для екосистеми відкритого ПЗ, де використання закритих форматів могло привести до судових позовів.
У середині 2009 року Microsoft оголосила про програму ліцензування exFAT для сторонніх виробників. Було повідомлено про укладання низки угод: зокрема, ліцензії на використання exFAT отримали такі компанії, як Sony, Canon, Sanyo (виробники фото- та відеотехніки), а також розробник файлесистемних рішень Tuxera[15]. Компанія SanDisk як член SD Association підтримала прийняття exFAT для нового стандарту карт SDXC[15]. За даними Microsoft, ліцензійний платіж за право інтеграції exFAT в певну категорію пристроїв (наприклад, камери, відеокамери, цифрові фоторамки) становив фіксовані $300 000, тоді як для інших сфер (смартфони, ПК тощо) застосовувалась модель оплати за одиницю продукції[15]. Надалі Microsoft продовжувала пропонувати ліцензії на exFAT усім зацікавленим сторонам, поряд із продовженням ліцензування попередньої FAT32[15].
Через закритість специфікацій та патентні обмеження розвиток відкритих (open-source) драйверів exFAT тривалий час гальмувався. Більшість дистрибутивів Linux не включали підтримку exFAT і навіть не могли прямо підказувати користувачам, як її додати, через ризик порушення патентів Microsoft. Перші неофіційні реалізації з’явилися у вигляді сторонніх модулів: у 2009 р. був випущений драйвер fuse-exfat (на основі FUSE) з підтримкою читання/запису, а ентузіасти здійснювали зворотне інженерування exFAT для створення відкритої реалізації. Втім, ці проекти існували напівлегально, оскільки Microsoft вважала несанкціоноване розповсюдження драйверів exFAT порушенням своїх патентних прав.
У 2013 році стався показовий інцидент, пов’язаний із ліцензуванням exFAT. Код власницького модуля exFAT, який Samsung використовувала у прошивках Android-пристроїв, випадково став загальнодоступним на GitHub[16]. Виявилося, що Samsung не дотрималась умов GPL при використанні фрагментів коду з ядра Linux у цьому драйвері. Після втручання організації Software Freedom Conservancy, Samsung оперативно розв’язала проблему: у серпні 2013 р. компанія офіційно відкрила вихідний код свого exFAT-драйвера під ліцензією GPLv2[16]. Цей крок зняв претензії щодо порушення GPL і вперше надав спільноті відкритий код реалізації exFAT (хоч і створений зворотним інженеруванням).
Переломним моментом у правовому статусі exFAT став 2019 рік. 28 серпня 2019 р. Microsoft оголосила про публікацію специфікації[17] exFAT для загального ознайомлення[7]. Одночасно компанія повідомила, що надає право використання своїх патентів на exFAT учасникам спільноти Open Invention Network (OIN)[7] – організації, що займається патентним захистом Linux та відкритого ПЗ. Фактично, це означало відкриття exFAT для вільного використання у Linux та інших системах, що безпосередньо зняло юридичні перешкоди. Після цього в ядро Linux вже у вересні 2019 були внесені початкові патчі з підтримкою exFAT, а у листопаді 2019 вийшов реліз Linux 5.4 з інтегрованим драйвером exFAT. Таким чином, через 13 років після створення exFAT стала відкритішою: тепер виробники пристроїв і розробники ПЗ можуть впроваджувати її без ризику патентних позовів і без сплати ліцензійних відрахувань (у межах використання, покритого OIN).
Див. також
- FAT — сімейство файлових систем що використовувались за замовчуванням в операційних системах компанії Microsoft, починаючи з DOS
- NTFS — файлова система за замовчуванням в операційних системах Microsoft, починаючи з Windows XP
- F2FS — відкрита файлова система для флеш-пам'яті і SSD-накопичувачів від Samsung
- Перелік файлових систем
Примітки
- ↑ corbet (25 листопада 2019). The 5.4 kernel has been released. LWN.net. Процитовано 1 грудня 2019.
- ↑ Andrew Nayenko (12 листопада 2015). mount.exFAT map page from FreeBSD ports (англ.). Процитовано 12 жовтня 2024.
- ↑ Eric Slivka (11 листопада 2010). Mac OS X 10.6.5 Notes: exFAT Support, AirPrint, Flash Player Vulnerability Fixes. MacRumors (англ.). Процитовано 26 грудня 2023.
- ↑ Windows File Systems. Microsoft TechNet Wiki Archive (англ.). 17 січня 2024. Процитовано 29 квітня 2025.
- ↑ SDXC memory card spec launched for 2TB capacity (англ.). 7 січня 2009. Процитовано 29 квітня 2025.
- ↑ Alisa Hicks. SDXC SIGNALS NEW GENERATION OF REMOVABLE MEMORY WITH UP TO 2 TERABYTES OF STORAGE (PDF). Процитовано 29 квітня 2025.
- ↑ а б в г Gossman, John (28 серпня 2019). exFAT in the Linux kernel? Yes!. Microsoft OpenSource (англ.). Процитовано 29 квітня 2025.
- ↑ Extended File Allocation Table (exFAT) // Windows File Systems / Microsoft. — Дата звернення: 14.09.2020.
- ↑ Robert Shullich. Reverse Engineering the Microsoft exFAT File (англійською) . The SANS Institute. Архів оригіналу за 6 жовтня 2012. Процитовано 11 жовтня 2012.
- ↑ Brandon LeBlanc. (28 августа 2007). Vista SP1 Whitepaper (англійською) . Microsoft. Архів оригіналу за 05-06-2012. Процитовано 15-10-2007.
- ↑ Файлова система ExFAT — універсальне вирішення для Mac OS X і Windows. Архів оригіналу за 27 вересня 2011. Процитовано 11 жовтня 2012.
- ↑ Larabel, Michael (30 серпня 2019). The Initial exFAT Driver Queued For Introduction With The Linux 5.4 Kernel. Phoronix (англ.). Phoronix Media. Процитовано 29 квітня 2025.
{{cite web}}
: Обслуговування CS1: Сторінки з параметром url-status, але без параметра archive-url (посилання) - ↑ Компания Samsung опубликовала Linux-драйвер exFAT под лицензией GPLv2 [Архівовано 27 вересня 2013 у Wayback Machine.] // opennet.ru 16.08.2013
- ↑ Android kernel file system support. Android OS Documentation (англ.). 04 квітня 2025. Процитовано 29 квітня 2025.
- ↑ а б в г Jo Foley, Mary (10 грудня 2009). Microsoft reannounces its exFAT file format is available for licensing. ZDNet (англ.). Процитовано 29 квітня 2025.
- ↑ а б Conservancy Helps Samsung Resolve GPL Compliance Matter Amicably (англ.). 16 серпня 2013. Процитовано 29 квітня 2025.
- ↑ exFAT file system specification (англ.). Процитовано 29 квітня 2025.
{{cite web}}
: Обслуговування CS1: Сторінки з параметром url-status, але без параметра archive-url (посилання)
Посилання
- TFAT Overview [Архівовано 11 квітня 2008 у Wayback Machine.](англ.)
- Extended FAT File System [Архівовано 13 квітня 2008 у Wayback Machine.](англ.)
- Оновлення Windows XP (KB955704) для підтримки файлової системи exFAT [Архівовано 4 жовтня 2010 у Wayback Machine.]
![]() |
Це незавершена стаття про Microsoft Windows. Ви можете допомогти проєкту, виправивши або дописавши її. |