YAFFS(Yet Another Flash File System)是由Aleph One公司所發展出來的NAND flash 嵌入式檔案系統。
在YAFFS中,最小存儲單位為一個Page,檔案內的數據是存儲在固定512 bytes的Page中,每一個Page亦會有一個對應的16 bytes的Spare(OOB,Out-Of-Band)。YAFFS採用Tree Node Structure,由多個Tree Node(Tnode)所組成,Tnode又分成Internal Tnode與Lowest-Level Tnode,其中Internal Tnode由8個Pointers所組成,Lowest-Level Tnode由16個Entries所組成,其時間複雜度(Time Complexity)相當於O(log N),故地址轉換時間較迅速。一旦Flash Memory掛載(mount)之時,YAFFS會為每個檔案在RAM中創建一個Tree, 並隨時提供Chunk(即Page, 由yaffs_Object所配置),可是 YAFFS並未完全實現耗損平均技術(wear-leveling)算法,因此還是會造成部份的Block過度訪問。
目前YAFFS在將Data寫入Flash Memory時會運行Garbage Collection,YAFFS Garbage Collection分成兩種Mode:Aggressive Mode及Passive Mode, 而且找尋Dirtiest Block(最多Invalid Chunk)及查找Empty Block都是通過Linear Search的方式(JFFS2是Link List的方式)。YAFFS2不再使用Partial Page Programming(YAFFS仍使用)。