闪存文件系统(英语:Flash file system),是一种为了在闪存设备上存储数据而设计的文件系统,如JFFS2与YAFFS等。随着移动设备的日渐增加,闪存的存储能力增加以及价格下降,这类型的文件系统变得越来越普遍。
电脑上通行的大部分文件系统,都是针对碟盘存储设备设计的,应用到闪存上并不适合。一般的文件系统,可以透过闪存转换层(Flash Translation Layer,FTL)写入闪存,但是它的缺点是写入的效率较差。因此,设计闪存文件系统仍然是有必要的。
闪存设备跟碟盘存储设备,在硬件上有不同的特性,例如:
设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时期将原有的区块抺除。例如JFFS2与YAFFS,都是这样设计。
最早的闪存文件系统之一,是微软所研发的FFS2(Flash File System 2),在1990年代,它被应用在MS-DOS上。
在1994年间,PCMCIA组织,通过了闪存转换层(Flash Translation Layer,FTL)的规格,允许Linear Flash设备能够看起来像是FAT磁盘设备,但是仍然保有耗损平均技术的能力。应用相同概念,但为了避免专利争议,数据光公司(Datalight)创造了FlashFX与FlashFX Pro,作为商业产品。
在Linux上实现的闪存转换层,称为MTD。MTD是一个硬件的抽象层,能够让闪存设备看起来像是一种区块设备,因此能够将既有的文件系统,如FAT、Ext、XFS等,直接应用在闪存上。