嵌入式檔案系統

嵌入式檔案系統

嵌入式檔案系統(Embedded file system)是指嵌入式系統中實現檔案存取、管理等功能的模組,提供一系列檔案輸入輸出等檔案管理功能,為嵌入式系統和設備提供檔案系統支持。在嵌入式系統中,應用程式通常需要對信息進行存取操作,當任務運行的時候,任務可以在其任務堆疊中存放少量信息,但是存儲量要受到記憶體空間的嚴格限制,而且在記憶體空間中的信息隨著任務的退出而消失,不適於存放要長期保存的信息。

基本介紹

  • 中文名:嵌入式檔案系統
  • 外文名:Embedded file system
  • 學科:計算機套用
  • 實例:QNX,FFS等
  • 特點:可移植性等
  • 定義:嵌入式系統中檔案存取管理的模組
技術介紹,組件分類,特點,

技術介紹

嵌入式檔案系統是指嵌入式系統中實現檔案存取、管理等功能的模組,提供一系列檔案輸入輸出等檔案管理功能,為嵌入式系統和設備提供檔案系統支持。在嵌入式系統中,應用程式通常需要對信息進行存取操作,當任務運行的時候,任務可以在其任務堆疊中存放少量信息,但是存儲量要受到記憶體空間的嚴格限制,而且在記憶體空間中的信息隨著任務的退出而消失,不適於存放要長期保存的信息。另一方面,一些公共信息為多個任務所共享,需要這些信息獨立於具體的任務而存在。
嵌入式系統和桌面系統一樣,為用戶提供檔案系統以方便信息的處理。嵌。入式檔案系統以普通桌面作業系統的檔案系統為基礎發展而來,但兩種檔案系統的套用環境和自身的要求又有很大的不同:在普通桌面作業系統中,檔案系統不僅要管理檔案,提供檔案系統調用API,還要管理各種設備,支持對設備和檔案操作的一致性。而在嵌入式檔案系統中,由於大部分嵌入式系統都是針對特殊目的定製的,因而對嵌入式作業系統的系統功能的模組化和可裁減性提出了更高的要求。
嵌入式系統的套用條件往往比桌面計算機惡劣的多,在惡劣使用環境下系統的穩定性、安全性還要得到足夠的保障,通用的檔案系統對於可靠性和檔案系統自身的安全性並沒有特殊的保障機制,因此無法保證這些性能。所以,雖然有許多已經較為成熟的桌面作業系統下的檔案系統,如DOS下的FAT檔案系統、WINDOWS NT下的NTFS檔案系統以及UNⅨ下的inocde檔案系統等,但這些檔案系統都不能直接適用於嵌入式系統。要想適用於嵌入式系統,必須進行重新設計。嵌入式檔案系統應該借鑑成熟的桌面檔案系統,並且進一步根據具體的硬體環境以及套用需求來設計檔案系統的體系結構和實現方法。嵌入式檔案系統作為嵌入式作業系統的重要組成部分,對於實現嵌入式系統中大量數據的存儲和各種操作的管理,有著不可替代的作用。
嵌入式檔案系統雖然繼承了通用檔案系統的組織結構,但由於功能和作用與普通桌面作業系統的檔案系統不同,同時又有自己的特點:
  1. 在嵌入式系統中,檔案系統是嵌入式系統的一個組成模組。它是作為系統的一個可載入選項提供給用戶,由用戶決定是否需要載入它。
  2. 需要滿足結構緊湊、代碼量小的特點,合理地對檔案存儲器進行管理。嵌入式系統中的檔案存儲器空間相對不會太大,必須對其進行高效的管理,以避免對資源的浪費。
  3. 使用簡單便捷。用戶只要知道檔案名稱、檔案路徑等簡單信息特徵,就可以方便地對檔案進行操作,不必知道檔案在具體物理存儲空間的運作過程。
  4. 安全可靠。對檔案、數據的保護是檔案系統的基本功能。嵌入式系統的套用通常要求系統必須有較高的可靠性。
  5. 支持多種存儲設備、可伸縮、可剪裁、可移植等特點。嵌入式套用的領域相當廣泛,其採用的硬體環境和作業系統也各不相同。為了適應這種差異性,檔案系統應降低對具體硬體環境和作業系統的依賴,具備良好的可移植性。

組件分類

國內外流行的嵌入式作業系統中,多數均具有可根據套用需求而進行定製的檔案系統組件,下面對幾個主流的嵌入式作業系統的檔案系統組件做一個簡要介紹。
  • QNX的檔案系統組件
QNX被稱為X86平台上最好的嵌入式作業系統。它提供多種資源管理器,包括各種檔案系統和設備管理,支持多個檔案系統同時運行,包括提供完全的POSIX.1以及UNIX語法的POSIX檔案系統,支持多種快閃記憶體設備的嵌入式檔案系統,支持對多種檔案伺服器(WINDOWS NT/95、LANManager等)的透明訪問的SMB檔案系統、DOS檔案系統、CD-ROM檔案系統等,並支持多種外部設備,如USB舢ART,IDE及SCSI磁碟等。
  • VxWorks的檔案系統組件FFS
VxWorks是使用最廣泛的嵌入式作業系統。它提供的檔案系統組件.“快速檔案系統”(FFS)非常適合於實時系統的套用。它包括幾種支持使用塊設備(如磁碟)的本地檔案系統,這些設備都使用一個標準的接口從而使得檔案系統能夠被靈活的在設備驅動程式上移植。另外,VxWorks也支持SCSI磁帶設備的本地檔案系統【101。VxWorks的I/O體系結構甚至還支持一個單獨的VxWorks系統上同時並存幾個不同的檔案系統,VxWorks支持四種檔案系統:FAT、TRLlFS、rawFS、tapeFS。VxWorks借鑑了UNIX設計中“設備即檔案”的重要思想,將外部設備作為一個特殊的數據檔案進行處理,使得普通數據檔案和外部設備在用戶面前有相同語法定義,使用相同的保護機制,便於系統管理和套用設計。
  • uCLinux的檔案系統
uCLinux繼承了Linux完善的檔案系統性能,其採用的是romfs檔案系統。這種檔案系統相對於一般的ext2檔案系統要求更少的空間,空間的節約來自於兩個方面:首先,核心支持romfs檔案系統比支持ext2檔案系統需要更少的代碼;其次,romfs速度檔案系統相對簡單,在建立檔案系統超級塊(superblock)需要更少的存儲空間。Romfs檔案系統不支持動態擦寫保存,對於系統需要動態保存的數據採用虛擬ram盤的方法進行處理(ram盤將採用ext2檔案系統)。
  • pSOS檔案管理系統
pSOS檔案管理系統稱為pHILE+,它提供了檔案系統管理和對塊設備的管理。pSOS可以通過pHILE+有效的訪問各種不同的存儲設備,包括本地設備和網路設備。檔案系統包括CD.ROM設備、FAT兼容檔案系統和pSOSytem特有的快速檔案系統。以上幾種嵌入式檔案系統是現在商用嵌入式檔案系統的主流,占領大部分的市場,也代表了這個領域的先進技術,但是由於商業機密的限制,原始碼和核心技術不可能公開,購買和維護費用昂貴,而且由於嵌入式系統的專用性。無法形成統一的標準。

特點

可移植性
移植性是判定嵌入式軟體,特別是作業系統組件實用性的一大重要指標。檔案系統組件在設計開始就注重了軟體的移植性。首先,整個實時檔案系統模組和設備驅動管理模組主體由C語言構建,可以較為方便地移植到不同體系結構的CPU之上;此外,檔案系統組件與實時作業系統核心的接口為有限的信號量、定時器、中斷、記憶體等系統調用。由於幾乎所有的實時作業系統核心都提供了上述機制,因此檔案系統組件只需針對實際情況作少量修改就可以非常方便的移植到不同的實時核心之上。
資源消耗
檔案系統組件的資源消耗主要包括程式代碼本身占用的存儲空間開銷、運行時記憶體動態分配引起的開銷、處理器時間占用開銷等。由於在不同平台下使用不同編譯器編譯生成的代碼長度有微小的差別,表1以ARM-7晶片為硬體平台,列出了GNU C編譯器下實時檔案系統(包括FAT12/FAT16/FAT32邏輯檔案系統代碼,不包括具體的設備驅動和設備高速快取)引起的記憶體資源開銷。設備驅動程式占用空間大小由取決於具體套用。由於檔案系統組件設備驅動管理層對各種設備驅動程式對上層的接口作了統一的抽象處理,支持在運行中方便的掛載各種不同的設備驅動程式,因此檔案系統組件除了上表所列的記憶體資源開銷外,還包括使用的設備驅動程式引起的開銷。表2列出了目前檔案系統實現的主要設備驅動的記憶體空間占用量。不難看出,整個實時檔案系統組件結構緊湊、代碼量小,並且可以根據套用的需求作進一步裁剪。在一個典型的套用環境下,整個檔案系統(含設備驅動)的代碼不超過100KB完全可以固化在ROM中,用於各種嵌入式套用。
FAT表存取最佳化
檔案系統中借鑑了Linux中得以廣泛套用的虛擬檔案系統(Virtual File System)的實現機制,理論上可以掛載不同邏輯格式的檔案系統,目前已完全支持FAT全系列(FAT12/FAT16/FAT32)。由於FAT是一類點陣圖型的檔案系統格式,對檔案的讀寫操作需要不斷的訪問和修改FAT表,因此對FAT表的讀寫效率在一定意義上影響了檔案系統的性能。對於FAT12/FAT16兩種FAT表較小的檔案系統,採用將FAT表一次全部緩衝到物理記憶體中的方式;FAT32檔案系統的FAT表較大(最壞情況下可達數兆之多),在嵌入式套用中完全緩衝顯然不現實,因此採取了折中的機制,根據目標環境可以配置FAT cache的大小,以提高FAT表的存取效率。

相關詞條

熱門詞條

聯絡我們