Задачи файловой системы
Основные функции любой файловой системы нацелены на решение следующих задач:
· именование файлов;
· программный интерфейс работы с файлами для приложений;
· отображения логической модели файловой системы на физическую организацию хранилища данных;
· организация устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств;
· содержание параметров файла, необходимых для правильного его взаимодействия с другими объектами системы (ядро, приложения и пр.)
В многопользовательских системах появляется еще одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя, а также обеспечение совместной работы с файлами, к примеру, при открытии файла одним из пользователей, для других этот же файл временно будет доступен в режиме «только чтение».
Твердотельные носители, такие, как флеш-диски, своим интерфейсом данных похожи на обычные жёсткие диски, но имеют свои проблемы и недостатки. Когда проходит время поиска они нуждаются в особой обработке такими алгоритмами как, Wear leveling и Error detection and correction.
· FAT — исходно дисковая файловая система — теперь часто используется на флеш-дисках. Имеет ограничение на размер файла в 4 гигабайта.
· exFAT — Расширенная версия FAT, используемая для флеш-дисков. Запатентована Microsoft, часто называется как FAT64 — ограничение 264 байт (16 эксабайт).
· FFS2 — Продолжение файловой системы FFS1, Одна из ранних файловых систем для флеш-карт. Разработана и запатентована Microsoft в начале 1990х годов. U.S. Patent 5392427 (англ.)
· TFAT — Транзакционная версия FAT файловой системы.
· JFFS — Оригинальная лог-структурированная Linux файловая система для NOR-флеш-носителей.
· JFFS2 — Продолжение JFFS для NAND- и NOR-флеш-носителей.
· LogFS — Предназначена для замены JFFS2, лучшая расширяемость. Находится на ранней стадии разработки.
· Non-Volatile File System — файловая система для флеш-дисков, разработанная Palm, Inc..
· YAFFS — Лог структурированная файловая система, предназначенная для NAND-флеш, но может использоваться в NOR-флеш-дисках.
ExFAT
exFAT (от англ. Extended FAT — «расширенная FAT») — проприетарная файловая система, предназначенная главным образом для флэш-накопителей. Впервые представленная Microsoft для встроенных устройств в Windows Embedded CE 6.0.
Используется в операционных системах от Microsoft в тех случаях, когда использование других поддерживаемых ими файловых систем (FAT и NTFS) нецелесообразно.
Основными преимуществами перед всеми текущими версиями FAT является:
· Теоретический лимит на размер файла 264 байт (16 эксбибайт).
· Максимальный размер кластера увеличен до 225 байт (32 мебибайта).
· Улучшено распределение свободного места за счёт введения бит-карты свободного места, что уменьшает фрагментацию диска.
· Устранён лимит на количество файлов в одной директории.
· Введена поддержка списка прав доступа.
· Введена поддержка транзакций (опциональная возможность, должна поддерживаться устройством).
Поддержка exFAT имеется в Windows XP с Service Pack 2 и 3 с обновлением KB955704, Windows Vista с Service Pack 1, Windows Server 2008, Windows 7.
Технология ReadyBoost в Windows Vista не совместима с устройствами с файловой системой exFAT.
Существует свободный драйвер exFAT в виде патча для ядра Linux, поддерживающий только чтение этой файловой системы.
Лицензионный статус не ясен. Однако известно, что Microsoft успешно запатентовала файловую систему FAT, и в феврале 2009 года подала в суд на компанию TomTom, обвиняя её в их нарушении.
Существует также сторонняя реализация exFAT для Windows XP/ Windows Server 2003, однако она предназначена для непосредственной интеграции в дистрибутив продукта без возможности ручной установки драйвера. Данный порт выполнен на базе драйвера Windows Vista.
В декабре 2009 года Microsoft начала лицензировать файловую систему exFAT для сторонних производителей.