文件系統是一個實現了數據的存儲、組織、處理和獲取等操作的抽象數據類型。一般分爲磁盤文件系統,網絡文件系統和特定功能的文件系統。
磁盤文件系統主要包括FAT(FAT12、FAT16、FAT32),NTFS、HFS、ext2、ext3,現在ext4也出來了。
FLASH文件系統是針對FLASH存儲器設計的文件系統。隨着移動設備的不斷普及,和FLASH存儲空間的不斷增長,FLASH文件系統也流行起來。在嵌入式系統中,絕大多數都使用FLASH文件系統。
數據庫文件系統是基於數據庫的文件系統。與分層結構的管理不同,在數據庫文件系統中,文件由描述符來標識,如文件的類型、主題、作者或其他一些元數據。
網絡文件系統是用來訪問服務器中文件的文件系統,常見的協議有NFS、AFS和SMB。
現代操作系統都集成了文件系統,WinCE也不例外。與桌面Windows的文件系統不同,WinCE的文件系統中沒有分區的概念。所有的文件系統,都被Mount到根目錄“/”下面。編程時需要注意,WinCE中也沒有當前目錄的概念,所有的目錄都以根目錄爲參考。
WinCE中支持的文件系統有如下幾種:
文件系統 |
概要 |
FAT或FATFS |
標準的FAT文件系統。單個文件不能超過4G,分區大小也有限制。 |
exFAT |
FAT的升級版,取消了文件和分區大小的限制。 |
TFAT |
基於exFAT的文件系統,支持交互操作,需要驅動的支持。 |
BinFS |
支持將bin文件Mount成一個文件系統,WinCE中的Multi-BIN需要用到該文件系統。 |
CDFS/UDFS |
用來支持CD和DVD的文件系統。 |
RAM(對象存儲) |
RAM文件系統由FSD Manager管理。 |
RELFSD |
在開發的過程中,將開發主機的release目錄mount到設備上。 |
WinCE文件系統的配置,由註冊表實現,一般在[HKLM/System/StorageManager]中。
在定製
Linux的文件系統有ext、XFS、JFS和ReiserFS。嵌入式Linux的文件系統主要有rootfs、RAMDisk、Cramfs、JFFS2(基於日誌的FLASH FS)、YAFFS2(Yet Another FLASH FS)等。
所以,想要Linux和WinCE共用一個NAND FLASH有沒有可能呢?兩個想法,簡單而又方便的是讓Linux直接掛在WinCE下的FAT分區,第二個想法是WinCE中留一些BLOCK,給Linux處理。先MARK一下,有時間再來求證。