Flash Memory 目前分为两种:NOR Flash Memory 及 NAND Flash Memory,尤于 NAND Flash
Memory 有较快的 Erase Time、Small Size 及成本较低的特性下,使得 NAND 更适用于
Embedded System。Flash Memory 是一储存装置,若要使用此储存装置,亦须要在 Flash
Memory 上使用 File System。在一般的 Block Device(e.g. Disk)上使用的 File System,如:
NTFS、FAT32和 ext2等等,都可用于 Flash Memory 上,但是这些 File System 并非专为 Flash
所设计的,所以无针对 Flash 的特性去操作,因些需要透用 FTL(Flash Translation Layer)
将其做转换的动作,如下图所示:
图一
使用非专为 Flash 所设计的 File System(Flash-Specific File System),则需要透过 FTL 做转
换,才能存取 Flash Memory,但使用 FTL 会多了一个转换的过程,会浪费转换的时间,对
于相当要求效率的 Embedded System 来说,不太适用,因此则有专为 Flash Memory 所设计
(Flash-Specific File System)的 File System,如:JFFS、JFFS2和 YAFFS 等等。使用此种
Flash-Specific File System 则不再需要透过 FTL 来做转换,如图二所示:
图二
JFFS 主要用于 NOR Flash Memory 上面,YAFFS 则是用于 NAND Flash Memory 上。YAFFS
是由 Aleph One 公司所制作,适用于相当多的 Embedded Operation System,如:eCOS、WinCE
等等,并且在 GNU GPL 的条款下,开放其原始码,因此可自 Aleph One 公司取得 YAFFS
之原始码并可加以修改,使之符合自己的需要。在此我们主要探讨使用 NAND Flash Memory
的 Flash-Specific File System-YAFFS。