exFAT

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

exFAT
Разработчик Microsoft
Файловая система Расширенная таблица размещения файлов (англ. Extended File Allocation Table)
Дата представления Ноябрь 2006 (Windows Embedded CE 6.0)
Метка тома 0x07 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Структура
Содержимое папок Таблица
Размещение файлов Битовые поля, Связный список
Сбойные сектора Пометка кластеров
Ограничения
Максимальный размер файла 16 эксабайт
Возможности
Диапазон дат 1 января 1980 — 31 декабря 2107
Атрибуты Только для чтения, скрытый, системный, метка тома, подкаталог, архивный
Права доступа Не поддерживаются[источник не указан 1518 дней]
Поддерживается ОС Windows Embedded CE 6.0 (для встроенных систем)
Windows XP SP2 или более поздний с обновлением KB955704, (настольная версия)
Windows Vista SP1 или более поздний (настольная версия)
Windows Server 2008 RTM (серверная версия)
Windows 7 (сборка 7601 или более поздняя)
Windows 8
Windows 10
Mac OS X с версии 10.6.5, Linux (сторонний патч, либо через FUSE драйвер)

exFAT (от англ. Extended FAT — «расширенная FAT»), иногда называется FAT64 — проприетарная файловая система, предназначенная главным образом для флэш-накопителей. Впервые представлена фирмой Microsoft для встроенных устройств в Windows Embedded CE 6.0. Размер кластера по умолчанию для файловой системы exFAT составляет от 4 КБ до 128 КБ в зависимости от размера тома[1], максимальный допустимый по спецификации - 32 МБ[2].

Преимущества

[править | править код]

Основными преимуществами exFAT перед предыдущими версиями FAT являются:

  • Уменьшение количества перезаписей одного и того же сектора, что важно для флеш-накопителей, у которых ячейки памяти необратимо изнашиваются после определённого количества операций записи (это сильно смягчается выравниванием износа (англ. wear leveling), встроенным в современные USB-накопители и SD-карты). Это было основной причиной разработки exFAT.
  • Теоретический лимит на размер файла 264 байт (16 эксабайт).
  • Максимальный размер кластера увеличен до 225 байт (32 мегабайта).
  • Улучшение распределения свободного места за счёт введения бит-карты свободного места, что может уменьшать фрагментацию диска.
  • Введена поддержка списка прав доступа[3].
  • Поддержка транзакций (опциональная возможность, должна поддерживаться устройством).

Недостатки и ограничения

[править | править код]
  • Более старые версии Windows NT, вплоть до Windows Vista без Service Pack 1, не поддерживают exFAT. Однако существуют официальные обновления от Microsoft, которые позволяют запускать exFAT на Windows XP SP2 и более поздних версиях.
  • Windows Vista не способна использовать exFAT-размеченные устройства под ReadyBoost. В Windows 7 это ограничение устранено[4].
  • Более сложная структура, в сравнении с FAT, вызывает большее потребление вычислительных ресурсов.
  • Количество файлов в подкаталогах ограничено числом 2 796 202 (223/3). Для корневого каталога ограничения нет[5].

Поддержка exFAT имеется в Windows XP с Service Pack 2 и 3 с обновлением KB955704, Windows Vista с Service Pack 1[6], Windows Server 2008, Windows 7, Windows 8, Windows 10, в Mac OS X начиная с версии 10.6.5[7], а также Linux (требуется компиляция исходного кода Samsung).

Существует свободный драйвер exFAT в виде патча для ядра Linux, поддерживающий только чтение этой файловой системы[8]. Также существует драйвер, работающий через FUSE, в том числе для ОС FreeBSD и OpenBSD (sysutils/fuse-exfat). Данный драйвер поддерживает как чтение, так и запись[9]. Кроме того, в августе 2013 года Samsung опубликовала драйвер для ядра Linux под лицензией GPL[10].

Лицензирование

[править | править код]

Лицензионный статус сначала был не определён. Однако Microsoft успешно запатентовала файловую систему FAT[11], и в феврале 2009 года подала в суд на компанию TomTom, обвиняя её в нарушении патента[12].

Существует также сторонняя реализация exFAT для Windows XP[13] / Windows Server 2003, однако она предназначена для непосредственной интеграции в дистрибутив продукта без возможности ручной установки драйвера. Данный порт выполнен на базе драйвера Windows Vista[14].

В декабре 2009 года Microsoft начала лицензировать файловую систему exFAT для сторонних производителей[15].

exFAT использовалась для sd-карт на Android устройствах (ОС которых работает на ядре Linux). Производители реализовали драйвер exFAT для linux-ядра, оставив код драйвера закрытым, но некто опубликовал этот код на сайте GitHub[16]. Опубликованный код считался украденным у компании Samsung до тех пор, пока в этом коде сообщество не нашло фрагменты кода, защищённого GPL-лицензией, что требовало раскрытия всех исходников, иначе это было воровство у сообщества со стороны компании Samsung. Через некоторое время компания Samsung выпустили код exFAT под GPL-лицензией.[источник не указан 1887 дней]

В конце августа 2019 года корпорация Microsoft после длительного внутреннего обсуждения опубликовала спецификацию ФС (удалив из нее уведомление о конфиденциальности[17]) и выступила с заявлением о поддержке инициативы по добавлению драйвера exFAT в ядро Linux. Ранее, в октябре 2018 года, корпорация присоединилась к Open Invention Network, но, вероятно, так и не передала патенты на exFAT в организацию[18]. Кроме того, в марте 2019 года она потребовала с Foxconn отчислений по патентному соглашению, заключённому в 2013 году[19][20] — речь может идти о заключённом тогда соглашении о выплатах за Android и Chrome OS.[21]

Примечания

[править | править код]
  1. Default cluster size for NTFS, FAT, and exFAT  (англ.), 2015 (Размер кластера по умолчанию для FAT, NTFS и exFAT)
  2. exFAT file system specification, Microsoft 2008-2010, 2019  (англ.) "3.1.15 SectorsPerClusterShift Field .. At most .. cluster size of 32MB"
  3. Windows File Systems
  4. exFAT Versus FAT32 Versus NTFS (27 февраля 2008). Дата обращения: 2 октября 2009. Архивировано 2 февраля 2013 года.
  5. Robert Shullich. Reverse Engineering the Microsoft exFAT File (англ.). The SANS Institute.
  6. Brandon LeBlanc. Vista SP1 Whitepaper (англ.). Microsoft (28 августа 2007). Дата обращения: 15 октября 2007. Архивировано 5 июня 2012 года.
  7. Файловая система ExFAT — универсальное решение для Mac OS X и Windows. Дата обращения: 5 августа 2011. Архивировано из оригинала 27 сентября 2011 года.
  8. Fat64 / exFat fs and Linux — fa.linux.kernel | Google Groups
  9. exfat — Project Hosting on Google Code
  10. Conservancy Helps Samsung Resolve GPL Compliance Matter Amicably — Software Freedom Conservancy
  11. Elizabeth Montalbano. Microsoft FAT patents upheld (англ.). Computerworld (11 января 2006). Дата обращения: 2 ноября 2008. Архивировано 5 июня 2012 года.
  12. Ryan Paul. Microsoft suit over FAT patents could open OSS Pandora's Box (англ.). Ars Technica. Condé Nast Publications (25 февраля 2009). Дата обращения: 9 марта 2009. Архивировано 22 августа 2011 года.
  13. После 26 января 2009 года она утратила смысл с вводом в обновлении KB955704 официальной поддержки данной файловой системы
  14. ricktendo64. exFAT File System Driver for XP/2k3, Ported from Vista. WinCert.net (28 августа 2007). Дата обращения: 1 июля 2008. Архивировано 29 февраля 2012 года.
  15. Microsoft лицензирует файловую систему exFAT для сторонних производителей. Ferra.ru. Ferra.ru (11 декабря 2009). Дата обращения: 13 декабря 2009.
  16. GitHub - dorimanx/exfat-nofuse: Android ARM Linux non-fuse read/write kernel driver for exFat and VFat Android file systems
  17. exFAT file system specification, Microsoft 2008-2010, 2019  (англ.)
  18. Microsoft опубликовала спецификацию exFAT и одобрила её поддержку в Linux. 3DNews (29 августа 2019). Дата обращения: 3 сентября 2019.
  19. "Foxconn rejects Microsoft patent lawsuit, says never had to pay royalties". Reuters. 19 марта 2019.
  20. Dr. Roy Schestowitz. Microsoft is Complaining About Android and Chrome OS (GNU/Linux) Vendor Not Paying for Microsoft Patents (Updated) (англ.). Techrights (12 марта 2019). Дата обращения: 6 июня 2020.
  21. Microsoft and Foxconn Parent Hon Hai Sign Patent Agreement For Android and Chrome Devices : пресс-релиз // Microsoft News Center. — Microsoft, 2013. — 17 April.

Литература

[править | править код]

exFAT file system specification, Microsoft 2008-2010, 2019  (англ.)