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
Атрибуты Только для чтения, скрытый, системный, метка тома, подкаталог, архивный
Права доступа Не поддерживаются[источник не указан 1569 дней]
Поддерживается ОС Windows Embedded CE 6.0 (для встроенных систем)
Windows XP SP2 или более поздний с обновлением KB955704 (настольная версия),
Windows Vista SP1 или более поздний (настольная версия)
Windows Server 2008 RTM (серверная версия)
Windows 7 (сборка 7601 или более поздняя)
Windows 8
Windows 10
Windows 11
Mac OS X с версии 10.6.5
Linux (mainline ядро и FUSE)

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

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

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

  • Уменьшение количества перезаписей одного и того же сектора, что важно для флеш-накопителей, у которых ячейки памяти необратимо изнашиваются после определённого количества операций записи (это сильно смягчается выравниванием износа (англ. wear leveling), встроенным в современные USB-накопители и SD-карты).
  • Теоретический лимит на размер файла 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-лицензией[17].

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

См. также

Примечания

  1. Default cluster size for NTFS, FAT, and exFAT Архивная копия от 3 сентября 2019 на Wayback Machine (англ.), 2015 (Размер кластера по умолчанию для FAT, NTFS и exFAT)
  2. exFAT file system specification Архивная копия от 19 июля 2020 на Wayback Machine, Microsoft 2008—2010, 2019 (англ.) «3.1.15 SectorsPerClusterShift Field .. At most .. cluster size of 32MB»
  3. Windows File Systems. Дата обращения: 31 июля 2014. Архивировано 10 августа 2014 года.
  4. exFAT Versus FAT32 Versus NTFS (27 февраля 2008). Дата обращения: 2 октября 2009. Архивировано 2 февраля 2013 года.
  5. Robert Shullich. Reverse Engineering the Microsoft exFAT File (англ.). The SANS Institute. Дата обращения: 17 августа 2012. Архивировано 6 октября 2012 года.
  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. Дата обращения: 2 февраля 2009. Архивировано 9 мая 2012 года.
  9. exfat — Project Hosting on Google Code. Дата обращения: 3 июня 2010. Архивировано 22 сентября 2012 года.
  10. Conservancy Helps Samsung Resolve GPL Compliance Matter Amicably — Software Freedom Conservancy. Дата обращения: 25 августа 2013. Архивировано 20 ноября 2013 года.
  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 апреля 2013 года.
  16. GitHub — dorimanx/exfat-nofuse: Android ARM Linux non-fuse read/write kernel driver for exFat and VFat Android file systems. Дата обращения: 2 июля 2018. Архивировано 26 марта 2019 года.
  17. Samsung has made a source release available on their Open Source Release Center website.. — 2013. — 16 August.
  18. exFAT file system specification Архивная копия от 19 июля 2020 на Wayback Machine, Microsoft 2008—2010, 2019 (англ.)
  19. Microsoft опубликовала спецификацию exFAT и одобрила её поддержку в Linux. 3DNews (29 августа 2019). Дата обращения: 3 сентября 2019. Архивировано 31 августа 2019 года.
  20. Foxconn rejects Microsoft patent lawsuit, says never had to pay royalties, Reuters (19 марта 2019). Архивировано 1 августа 2020 года. Дата обращения 6 июня 2020.
  21. 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. Архивировано 6 июня 2020 года.
  22. 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 (англ.)

Ссылки