FAT32文件系统在嵌入式中被广泛使用,但其最多可以支持单个文件大小到4GB。NTFS和EXFAT两种文件系统能够支持超过4GB的文件,都是微软制定的协议标准。但两者面向的场景是不一样的,这里谈谈两个文件系统在嵌入式系统中的适用性。
文件系统主要的操作就是读写操作,而嵌入式系统一般使用闪存(nand flash或者nor flash)作为数据存储介质,每块闪存的读写次数都是一定的,因此文件系统在读写接口实现时操作闪存的次数是衡量某种文件系统在嵌入式系统中的优越性之一。
名称解释: 过程数据是指文件读写过程中,文件系统读写其系统内部管理数据,这些数据不是文件中的数据。
1. NTFS
NTFS是微软在window NT系列操作系统中广泛支持的,一个特别为网络和磁盘配额,文件加密等,在安全管理方面特性设计的磁盘文件系统格式。NTFS可以为系统提供用户权限管理,分类对文件进行操作,还提供文件级加密功能。NTFS同时提供日志系统功能,把每一个操作都记录在日志文件中。这些功能可以在最大限度上保证文件数据的安全。现有流行windows操作系统都支持NTFS。
缺点:在PC上,NTFS是一个非常好的文件系统,但对于FLASH类型的可移动设备来说,其并不是一个很优秀的文件系统。首先,可移动设备对数据安全性没有那么高的要求(这句话可能不太对了,智能终端已经不仅仅是娱乐电子了),其次,FLASH类型的可移动设备对数据读写次数非常敏感。对FLASH读写次数越多,意味着它的寿命变的越短。在PC上,NTFS为了保证数据读写的正确性,对文件读写操作插入很多过程数据。对大文件,这些过程数据占用FLASH读写数据的比例并不高,但对于小文件,过程数据占用FLASH读写数据的比例将非常的高,过程数据甚至是文件数据的几倍。
2. EXFAT
EXFAT是微软专门为可移动设备开发的文件系统格式,最先出现在WINCE6.0上。他的结构简单,过程数据比较少。针对可移动设备的特点,增加文件过程数据校验,避免像FAT32那样脆弱和不可靠。磁盘数据结构比较简单,使PC读写文件数据需要读写的过程数据比较少,最大限度减少对FLASH的损坏。现在windows7/8系统也支持EXFAT。