exFAT (Extended FAT)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 21:16, 27 июня 2016.

exFAT
Полное название Extended File Allocation Table
Содержимое каталога Table
Распределение файлов bitmap, linked list
Сбойные блоки Cluster tagging
Limits
Макс. размер тома ca. 128 PiB, 512 TiB recommended[1]
Макс. размер файла ca. 128 PiB (theoretical 16 EiB–1)
Макс. количество файлов up to 2,796,202 per directory[2]
Макс. длина имени файла 255 UTF-16 characters
Разрешенные символы
в именах файлов
Unicode UTF-16 except U+0000 (NUL) through U+001F (US) / (slash) \ (backslash) : (colon) * (asterisk) ? (Question mark) " (quote) < (less than) > (greater than) and | (pipe)
Features
Даты зарегистрирован Creation, modified, last access
Диапазон дат 1980-01-01 to 2107-12-31
Дата резолюции 10 ms
Вилка No
Признаки Read-only, hidden, system, subdirectory, archive
Разрешения файловой системы ACL (Windows CE 6 only)
Прозрачное сжатие No
Транспорантное шифрование No
Другие
Операционная система Windows Embedded CE 6.0
Windows XP (including x64) SP2 and later (optional[1])
Windows Server 2003 SP2 (optional[1])
Windows Vista SP1 and later
Windows 7
Windows 8
Windows 10
Windows Server 2008
Windows Server 2008 R2
Linux (via FUSE or non-mainline kernel driver)
Mac OS X 10.6.5 and later
Some Android OS devices like the Sony Xperia Z (running the latest firmware)

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

История

exFAT была впервые представлена в 2008 году и является наиболее современной из рассматриваемых в этой статье файловых систем, её поддержка была добавлена в Windows начиная с версии XP при помощи обновлений ОС. Файловая система exFAT была создана и оптимизирована для использования на внешних накопителях — флешках, SD-картах и внешних жестких дисках, и призвана заменить собой устаревшую систему FAT32. Она является самой легкой и простой файловой системой благодаря отсутствию различных специализированных особенностей, присущих NTFS, равно как и практически полному отсутствию ограничений на размер файла и раздела, которые имеет FAT32. Также exFAT обладает лучшей совместимостью с различными операционными системами, чем NTFS, и устройства с ней отлично читаются и перезаписываются как на Windows и Mac OS, так и на Linux (при условии установки некоторого программного обеспечения). Так как exFAT поддерживается операционной системой Mac OS по умолчанию, то вероятно она будет поддерживаться и большинством других современных девайсов, с которым работают устройства от Apple, например, цифровыми камерами. Современные версии игровых консолей, такие как Xbox One и Playstation 4, также поддерживают устройства с файловой системой exFAT, в отличие от их предыдущих версий (Xbox 360 и Playstation 3). Некоторые производители флэш-носителях, с USB-интерфейсом, к примеру, Compact Flash (CF) и твердотельных накопителей (SSD) с высокой емкостью носителя поставляются с завода-изготовителя интегрированной файловой системой exFAT. Например, производитель Sandisk с их моделями на 256 Гб.

Технические особенности

Предварительное резервирование файлов в кластере

Как и NTFS,exFAT можно предварительно выделяет место на диске для файла, просто отмечая произвольное пространство на диске как "выделено". Для каждого файла exFAT использует два отдельных 64-битовых поля в каталоге: действительная длина блока данных (VDL), которая указывает на реальный размер файла, и физическую длину данных.

Набор файлов каталога

exFAT и остальная часть семейства FAT файловых систем не использует индексы для имен файлов, в отличие от NTFS, которая использует B-деревья для поиска файлов. При обращении к файлу, каталог должен быть фрагментально просканирована, пока не будет найдено совпадение. Для имен файлов короче 16 символов, требуется запись о названии файла , но весь файл представлена тремя 32 байтными записями в каталоге. Это называется набор файлов каталога, и подкаталог размером в 256 Мб может вместить до 2,796,202 наборов файлов. (Если файлы имеют более длинные имена, это число будет уменьшаться). Для того, чтобы помочь улучшить последовательный поиск директорий (включая корень) хэш-значения файла выводится для каждого файл и хранится в записи каталога. При поиске файла, имя файла сначала преобразуется в верхний регистр с помощью Upcase таблицы (имена файлов чувствительны к регистру), а затем хэшируются с использованием фирменной запатентованного алгоритма в хэш-значение размером в 16-бит (2 байта). Каждая запись в каталоге ищется путем сравнения хэш-значение. Когда обнаруживается совпадение, имена файлов сравниваются, чтобы удостовериться, что правильный файл был найден. Это повышает производительность, поскольку только 2 байта, должны быть сравнены для каждого файла. Это позволяет значительно сократить циклы CPU, так как большинство именем файлов имеет размер более 2-х символов (байт), и каждое сравнение фактически выполняется только на 2 байта, в то время, пока нужный файл не находится.

Метаданные и контрольные суммы

exFAT разрешает использование метаданные посредством использования контрольных сумм. В настоящее время существует три контрольные суммы. Volume Boot Record (VBR) представляет собой область рамером в 12 сектором, который содержит загрузочные записи, блок параметров BIOS (BPB), параметры OEM и контрольная сумма сектора. (Есть два региона типа VBR, основной VBR и резервный VBR). Сектор контрольных сумм является контрольной суммой предыдущих 11 секторов, за исключением трех байтов в загрузочном секторе. Это обеспечивает целостность VBR путем определения, если VBR был изменен. Наиболее распространенной причиной может быть вирус в загрузочном секторе, но он также может повредить и VBR. Вторая контрольная сумма используется для UPCASE таблицы. Это статическая таблица и никогда не должны измениться. Любое повреждение в таблице приведет к ошибке обнаружения файла, поскольку эта таблица используется для преобразования имен файлов в верхний регистр при поиске. Третья контрольная сумма находится в наборах файлов каталога. Несколько записей каталога используются для определения одного файла, и это называется набор файлов. Этот файл имеет набор метаданных, включая имя файла, временные метки, атрибуты, адрес первого кластера расположения данных, длины файлов, а также имя файла. Контрольная сумма берется по всему множеству файлов и ошибка в выборе нужного файла может произойти, если набор файлов каталога был случайно или намеренно изменен. Когда файловая система смонтирована, и проводится проверка целостности, эти хэши проверяются. Вмонтирование также включает в себя сравнение версии exFAT файловой системы драйвером, чтобы убедиться, что драйвер совместим с файловой системой, который он пытается смонтировать, и убедиться в том, что все из требуемых записей каталогов на месте (например, запись каталога для Upcase таблицы и распределения Bitmap требуются для того чтобы файловая система работала). Если какой-либо из этих проверок не дает положительного результата, файловая система не устанавливается, хотя в некоторых случаях она может быть смонтирована только для чтения.

Файловая система обеспечивает расширяемость с помощью шаблонов на основе определений метаданных с использованием основных макетов и общие закономерности.

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

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

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

Ограничения

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

Особенности

Технические характеристики, особенности и требования файловой системы exFAT включают в себя следующие:

  • Предельный размер файла 16 EIB - 1 байт ( в противном случае ограничивается максимальным размером объема 128 ПИБ - 1 байт), повышен с 4 Гб - 1 байт в стандартном FAT32 . Таким образом, для типичного пользователя обеспечили полную совместимость между платформами Windows и OS X для файлов свыше 4 Гб.
  • Масштабируемость до больших размеров диска: ок 128 PiB максимум, 512 TiB рекомендуется максимум, поднятый из 32-битного значения (2 TiB для размера сектора 512 байт) стандартных FAT32 разделов.
  • Поддержка до 2,796,202 файлов в каталоге. Microsoft документы предел 65534 файлов в подкаталоге для их реализации с файловой системой FAT32, но и другие операционные системы не имеют специального ограничения на количество файлов в директории с файловой системой FAT32 , Реализации с файловой системой FAT32 в других операционных системах позволяют неограниченное количество файлов до количества доступных кластеров (то есть до 268,304,373 файлов на томах без длинных имен файлов ).
  • Максимальное количество файлов на томе 232 - 11 ( по сравнению с примерно 228 - 11 в стандартной файловой системе FAT32)
  • Свободное распределение пространства и удаление улучшена производительность за счет введения свободного пространства растрового изображения .
  • Отметка зернистость 10 мс для создания и модифицированными раз (но не так хорошо , как 0,1 мс файловой системой NTFS).
  • Отметка зернистость для времени последнего доступа к двойной секунд (FAT была только дата)
  • Дополнительная поддержка UTC меток времени (начиная с Vista SP2 ).
  • Дополнительная поддержка списков контроля доступа ( в настоящее время не поддерживается в ОС Windows Desktop / Server версий).
  • Дополнительная поддержка TexFAT , стандарт транзакционной файловой системы (необязательно WinCE активирована функция, функция не поддерживается в версиях / Server Windows Desktop).
  • Граница выравнивания смещения для таблицы FAT
  • Граница выравнивания смещения для области данных
  • Проводка для OEM Определяемые параметры для настройки файловой системы для конкретных характеристик устройства.
  • На диске хранения длины файла правильные данные (VDL) за счет использования двух различных длин полей, которые могут быть использованы для предварительно выделить файл.
  • Кластер размером до 32 Мбайт.
  • Целостности метаданных с контрольными суммами
  • Шаблон на основе структуры метаданных
  • Удаление физического "." и ".." элементы каталога, которые появляются в подкаталогах
  • EXFAT не поддерживает короткие (формат 8.3) имена файлов
  • Windows XP требует обновления KB955704 для установки и Windows Vista требуется установить его SP2.
  • Windows Vista не может использовать EXFAT приводы для ReadyBoost . Windows 7 снимает это ограничение, позволяя ReadyBoost кэширует больше 4 Гб.
  • Стандартная реализация EXFAT не Журнализированная и использует только одну таблицу размещения файлов и свободного пространства карты. FAT файловой системы используется вместо чередуя таблицы, как это допускается восстановление файловой системы, если носитель был извлечен во время записи (который часто встречается на практике со сменными носителями). Необязательный TexFAT компонент добавляет поддержку для дополнительных таблиц резервного копирования и карты, но может не поддерживаться.

Сравнение с FAT32

При тестировании на Windows 7 показала такую же производительность, как и FAT32, однако NTFS все таки немного быстрее. Заменит ли exFAT FAT32? Вероятно, это произойдёт только после массового переходу на Windows 7 или более новые версии Windows. Для потребителей же основное преимущество exFAT будет заключаться в преодолении файловых ограничений FAT32 (увеличение размера файла в exFat). Нужно не забывать так же, что файловая система exFAT требует более новой версии ОС (может потребоваться апгрейд железа), а также тот факт, что на старых устройствах (фотоаппараты, mp3-плееры) exFAT может просто не поддерживаться.

Сравнение с NTFS

ExFAT можно считать конкурентом NTFS на системах с ограниченной вычислительной мощности и памяти. Кроме того файловую систему NTFS на флэш-картах использовать очень неудобно и неэффективно (падает скорость работы и уменьшается срок службы флеш памяти), и именно ExFAT будет идеальной файловой системой для таких устройств.

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

Лицензионный статус сначала был не определён. Однако Microsoft успешно запатентовала файловую систему FAT, и в феврале 2009 года подала в суд на компанию TomTom, обвиняя её в нарушении патента. Существует также сторонняя реализация exFAT для Windows XP / Windows Server 2003, однако она предназначена для непосредственной интеграции в дистрибутив продукта без возможности ручной установки драйвера. Данный порт выполнен на базе драйвера Windows Vista. В декабре 2009 года Microsoft начала лицензировать файловую систему exFAT для сторонних производителей.

Поддержка

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

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

Windows 7

Новая версия ОС Microsoft Windows 7 полностью поддерживает файловую систему exFAT и все ее функции как в 32- так и в 64-битной версии. Кроме того, внешние флешки, отформатированные в exFAT можно использовать для работы с технологией ReadyBoost (причем лимита на 4 Гб больше не будет).

Windows Vista

Windows Vista поддерживает exFAT только начиная с Service Pack 1. Кроме того некоторые фичи, такие как управление доступом также не поддерживаются. В отличии от Windows 7, устройства с exFAT в Vista не поддерживаются для ReadyBoost.

Windows XP

ExFAT в Windows XP не поддерживается, однако на сайте Microsoft можно скачать драйвер (ссылка ниже), однако он требует установленного Service Pack 2. Для более старых версий Windows официальная поддержка exFAT отсутствует.

Windows Server

ExFAT целиком поддерживается в Windows Server 2008, а при установке вышеуказанного драйвера и в Windows Server 2003.

Snow Leopard

Mac OS X поддерживает exFAT начиная с версии 10.6.4 (15 июня 2010), однако только на Mac-ах с кард-ридером SDXC. Mac mini и iMac совместимы с exFAT.

Linux

На системах семейства Linux поддержка exFAT отсутствует, хотя и есть несколько решений, но большинство из них платно или неудобно, кроме того еще и Microsoft со своей пропри тарной лицензией вставляет палки в колеса независимым разработчикам.

exFAT и FAT32

При тестировании на Windows 7 показала такую же производительность, как и FAT32, однако NTFS все таки немного быстрее. Заменит ли exFAT FAT32? Вероятно, это произойдёт только после массового переходу на Windows 7 или более новые версии Windows. Для потребителей же основное преимущество exFAT будет заключаться в преодолении файловых ограничений FAT32 (увеличение размера файла в exFat). Нужно не забывать так же, что файловая система exFAT требует более новой версии ОС (может потребоваться апгрейд железа), а также тот факт, что на старых устройствах (фотоаппараты, mp3-плееры) exFAT может просто не поддерживаться.

exFAT или NTFS

exFAT можно считать конкурентом NTFS на системах с ограниченной вычислительной мощности и памяти. Кроме того файловую систему NTFS на флэш-картах использовать очень неудобно и неэффективно (падает скорость работы и уменьшается срок службы флеш памяти), и именно ExFAT будет идеальной файловой системой для таких устройств.

Применение exFAT

Эта файловая система отлично подходит для использования на различных съемных носителях, размер файлов на которых может превышать 4 GB (внешние жесткие диски, флешки большого объема). Если все устройства, с которыми вы работаете, являются современными, вы вполне можете отказаться от FAT32 на съемных накопителях в пользу exFAT.

Подводя итог можно сделать следующие выводы: NTFS отлично подходит для системного жесткого диска с ОС Windows, exFAT лучше использовать на съемных носителях информации, а FAT32 стоит использовать лишь в том случае, если вы хотите добиться максимальной совместимости со всем разнообразием ваших устройств.

Ссылки

  • 1,0 1,1 1,2 "KB955704". January 27, 2009. Description of the exFAT file system driver update package [for Windows XP and Windows Server 2003] 
  • Шаблон:Citation/patentШаблон:P2 contains Microsoft exFAT specification (revision 1.00)