Флэш -файловая система — это файловая система , предназначенная для хранения файлов на устройствах хранения данных с флэш-памятью . Хотя флэш-файловые системы тесно связаны с файловыми системами в целом, они оптимизированы с учетом характера и характеристик флэш-памяти (например, чтобы избежать усиления записи ), а также для использования в определенных операционных системах .
Хотя уровень блочного устройства может эмулировать диск, чтобы на флэш-устройстве хранения можно было использовать файловую систему общего назначения, это неоптимально по нескольким причинам:
Файловые системы с журнальной структурой обладают всеми желаемыми свойствами флэш-файловой системы. [1] К таким файловым системам относятся JFFS2 и YAFFS .
Из-за особых характеристик флэш-памяти ее лучше всего использовать либо с контроллером для выравнивания износа и исправления ошибок , либо со специально разработанными флэш- файловыми системами , которые распределяют записи по носителю и справляются с длительным временем стирания флэш-блоков NAND. Основная концепция флэш-файловых систем такова: когда флэш-память должна быть обновлена, файловая система записывает новую копию измененных данных в новый блок, переназначает указатели файлов, а затем стирает старый блок позже, когда он будет время.
На практике флэш-файловые системы используются только для устройств памяти (MTD), которые представляют собой встроенную флэш-память, не имеющую контроллера. Съемные карты флэш-памяти и USB-накопители имеют встроенные контроллеры для управления MTD с помощью специальных алгоритмов, [2] [3] таких как выравнивание износа, восстановление поврежденных блоков, восстановление при потере питания, сбор мусора и исправление ошибок , поэтому используйте флэш-файл. система имеет ограниченную выгоду.
Устройства флэш-памяти становятся все более распространенными по мере увеличения количества мобильных устройств, снижения стоимости объема памяти и увеличения емкости микросхем флэш-памяти.
Самой ранней файловой системой флэш-памяти, управляющей массивом флэш-памяти как свободно записываемым диском, была TrueFFS израильской компании M-Systems , представленная как программный продукт на выставке PC-Card Expo в Санта-Кларе, Калифорния , в июле 1992 года и запатентованная в 1993 году. [4]
Одной из первых флэш-файловых систем была Microsoft FFS2 для использования с MS-DOS , выпущенная осенью 1992 года. [5] FFS2 предшествовал более ранний продукт под названием «FFS», который, однако, не был флэш-файлом. системе, управляя флэш-массивом как пространством для записи и однократного чтения (WORM), а не как свободно записываемым диском.
Примерно в 1994 году промышленная группа PCMCIA утвердила спецификацию Flash Translation Layer (FTL), основанную на конструкции TrueFFS компании M-Systems. Спецификация была написана и предложена совместно M-Systems и SCM Microsystems, которые также предоставили первые рабочие реализации FTL. Одобренная Intel, [6] FTL стала популярной разработкой флэш-файловой системы и на носителях, отличных от PCMCIA.
Overlayfs, Unionfs и aufs — это объединенные файловые системы, которые позволяют объединять несколько файловых систем и представлять их пользователю как одно дерево. Это позволяет разработчику системы размещать части операционной системы, которые номинально доступны только для чтения, на разных носителях в обычных областях чтения и записи. OpenWrt обычно устанавливается на сырые флэш-чипы без FTL. Он использует overlayfs для объединения сжатой SquashFS, доступной только для чтения, с JFFS2 .