YAFFS

YAFFS
开发者Charles Manning
全称Yet Another Flash File System
功能
操作系统支持Android、Firefox OS、Linux、Windows CE、pSOS、eCos、ThreadX

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仍使用)。

YAFFS2

YAFFS2 是Aleph1的工程師Charles Manning 开发的NAND Flash 文件系统。YAFFS1和YAFFS2 主要差異還是在於page 讀寫 size的大小,YAFFS2可支援到2K per page, 遠高於YAFFS的512 bytes, 因此對大容量NAND Flash更具优势。其他與YAFFS1不同的是, YAFFS2不再寫spare area, sequenceNumber 用29 bits 表示。Yaffs2還擁有YAFFS1所缺乏的SuperBlock, 因此YAFFS1嚴重依賴檔案系統的read_super。

目前YAFFS 和YAFFS2 皆遵守GNU GPL開放原始码。Android 採用yaffs2作為MTD NAND flash檔案系統,位於fs/yaffs2/目錄下。

相關條目

  • JFFS2
  • UBIFS
  • LogFS

參考資料

外部連結

  • 官方網站
  • Introducing YAFFS, the first NAND-specific flash file system
  • Unyaffs (页面存档备份,存于互联网档案馆): A simple program to unpack YAFFS2 images.

磁盘
  • ADFS英语Advanced Disc Filing System
  • AdvFS
  • Amiga FFS英语Amiga Fast File System
  • Amiga OFS英语Amiga Old File System
  • APFS
  • AthFS英语AtheOS File System
  • Bcachefs
  • BFS
    • Be文件系统英语Be File System
    • 启动文件系统英语Boot File System
  • Btrfs
  • DFS英语Disc Filing System
  • EFS
  • Episode英语Episode filesystem
  • ext
  • FAT
  • Files-11英语Files-11
  • Fossil
  • HAMMER英语HAMMER
  • HFS
  • HFS+
  • HPFS
  • HTFS英语High Throughput File System
  • IBM通用并行文件系统英语IBM General Parallel File System
  • JFS
  • LFS英语Log-structured File System (BSD)
  • MFS
    • Macintosh文件系统英语Macintosh File System
    • Tivo媒体文件系统英语Tivo Media File System
  • MINIX
  • NetWare文件系统英语NetWare File System
  • Next3英语Next3
  • NILFS英语NILFS
    • NILFS2英语NILFS2
  • NSS英语Novell Storage Services
  • NTFS
  • OneFS英语OneFS distributed file system
  • PFS英语Professional File System
  • QFS英语QFS
  • QNX4FS英语QNX4FS
  • ReFS
  • ReiserFS
    • Reiser4英语Reiser4
  • Reliance英语Reliance (file system)
  • Reliance Nitro英语Reliance Nitro
  • RFS
  • SFS英语Smart File System
  • Soup英语Soup (Apple)
  • Tux3英语Tux3
  • UBIFS
  • UFS
  • VxFS英语Veritas File System
  • WAFL英语Write Anywhere File Layout
  • Xiafs英语Xiafs
  • XFS
  • Xsan英语Xsan
  • zFS英语zFS (z/OS file system)
  • ZFS
  • HSF英语High Sierra Format
  • ISO 9660
  • ISO 13490英语ISO 13490
  • UDF
  • CXFS英语CXFS
  • GFS2英语GFS2
  • Google檔案系統
  • OCFS2英语OCFS2
  • OrangeFS英语OrangeFS
  • PVFS英语Parallel Virtual File System
  • QFS英语Quantcast File System
  • Xsan英语Xsan
  • 更多...
NAS
特殊
  • Aufs
  • AXFS英语AXFS
  • 启动文件系统英语Boot File System
  • CDfs英语CDfs
  • 光盘文件系统英语Compact Disc File System
  • Cramfs
  • Davfs2英语Davfs2
  • EROFS
  • FTPFS
  • FUSE
  • GmailFS
  • Lnfs
  • LTFS英语Linear Tape File System
  • MVFS英语Rational MultiVersion File System
  • SquashFS
  • UMSDOS英语FAT filesystem and Linux
  • OverlayFS
  • UnionFS英语UnionFS
  • WBFS英语WBFS
  • configfs英语configfs
  • devfs英语Device file
  • debugfs英语debugfs
  • kernfs英语kernfs (BSD)
  • procfs
  • specfs
  • sysfs
  • tmpfs
  • WinFS
加密英语Filesystem-level encryption
类型
  • 集群
    • 全局英语Global file system
    • 网格英语Grid File System
    • 自我认证英语Self-certifying File System
  • 闪存
  • 日志
  • 日志结构英语Log-structured file system
  • 对象
  • 面向记录英语Record-oriented filesystem
  • 语义英语Semantic file system
  • 隐写英语Steganographic file system
  • 合成英语Synthetic file system
  • 版本英语Versioning file system
特性
访问控制英语Computer access control
接口