1.Linux
linux存在几十个文件系统类型:ext2、ext3、ext4、xfs和brtfs等类型
不同文件系统采用不同的方法管理磁盘空间,各有优劣;文件系统是具体到分区的,所以格式化针对的是分区,分区格式化是指采用指定的文件系统类型对分区空间进行登记、索引兵建立相应的管理表格的过程。
(a)ext2具有极快的速度和极小的CPU占用率,可用于硬盘和移动存储设备
(b)ext3增加日志功能,可回溯追踪
(c)ext4日志式文件系统,支持1EB(1024*1024TB),最大单文件16TB,支持连续写入可减少文件碎片。
(d)xfs可以管理500T的硬盘。
(e)brtfs文件系统针对固态盘做优化
2.Windows
(a)FAT16:MS-DOS和win95采用的磁盘分区格式,采用16位的文件分配表,只支持2GB的磁盘分区,最大单文件2GB,且磁盘利用率低
(b)FAT32:采用32位的文件分配表,支持最大分区128GB,最大文件4GB
(e)NTFS:支持最大分区2TB,最大文件2TB,安全性和稳定性非常好,不易出现文件碎片。
3.Flash文件系统
不同于传统机械硬盘,NAND或者eMMC应该使用更适合Flash的文件系统:
(a)JFFS/JFFS2:JFFS是linux上第一个针对于闪存开发的文件系统。初期只针对与NOR Flash,后来在JFFS2上也开始支持NAND Flash。JFFS文件系统是一种log-structured的文件系统,其把flash看作一组circular log,并且自带wear-levelling功能。JFFS最大的问题在于对于flash的擦出操作太过频繁,比其他文件系统更容易耗尽flash的擦写寿命。
(b)YAFFS: YAFFS是2002年推出的,针对NAND Flash开发的文件系统。YAFFS/YAFFS2在RAM中建立并维护一个tree,用于代表NAND的block。YAFFS最大的特点在于mount或者umount的时间非常短,这是其最大的优势。
(b)UBIFS: UBIFS中UB的全称是Unsorted Block Images,由NOKIA的工程师开发,并专门针对NAND Flash。不同于其他文件系统,UBIFS并不工作在block device上,而是直接作用于raw flash上。这样,UBIFS中就自带逻辑到物理块的映射的功能,并且其自带的wear-levelling可以在整个flash上进行。
(d)LogFS:LogFS是linux上最近兴起的一类文件系统,其在flash中创建并管理了一个B+ tree用于garbage collection,即垃圾回收,这样其比较节省RAM的使用。这对于大容量的NAND Flash具有比较大的价值。
(e)ext4: ext4应用于PC,Server等computing应用。但在手机应用中,很多时候eMMC上的分区都会被格式成为ext4格式。