訂閱
糾錯
加入自媒體

一文了解如何制作rootfs?

2021-04-26 14:06
一口Linux
關注

粉絲問題

如何制作rootfs?安排!想直奔主題的,直接跳到第四章。

一、分析

1. 文件系統簡介

理論上說一個嵌入式設備如果內核能夠運行起來,且不需要運行用戶進程的話,是不需要文件系統的,文件系統簡單的說就是一種目錄結構,由于 linux操作系統的設備在系統中是以文件的形式存在,將這些文件進行分類管理以及提供和內核交互的接口,就形成一定的目錄結構也就是文件系統,文件系統是為用戶反映系統的一種形式,為用戶提供一個檢測控制系統的接口。

根文件系統,我認為根文件系統就是一種特殊的文件系統,那么根文件系統和普通的文件系統有什么區別呢?

由于根文件系統是內核啟動時掛在的第一個文件系統,那么根文件系統就要包括Linux啟動時所必須的目錄和關鍵性的文件;

例如Linux啟動時都需要有init目錄下的相關文件,在 Linux掛載分區時Linux一定會找/etc/fstab這個掛載文件等,根文件系統中還包括了許多的應用程序bin目錄等,任何包括這些Linux 系統啟動所必須的文件都可以成為根文件系統。

Linux支持多種文件系統,包括ext2、ext3、vfat、ntfs、iso9660、jffs、yaffs、romfs和nfs等,為了對各類文件系統進行統一管理,Linux引入了虛擬文件系統VFS(Virtual File System),為各類文件系統提供一個統一的操作界面和應用編程接口。

Linux啟動時,第一個必須掛載的是根文件系統;若系統不能從指定設備上掛載根文件系統,則系統會出錯而退出啟動。之后可以自動或手動掛載其他的文件系統。因此,一個系統中可以同時存在不同的文件系統。

不同的文件系統類型有不同的特點,因而根據存儲設備的硬件特性、系統需求等有不同的應用場合。在嵌入式Linux應用中,主要的存儲設備為 RAM(DRAM, SDRAM)和ROM(常采用FLASH存儲器),常用的基于存儲設備的文件系統類型包括:jffs2, yaffs, cramfs, romfs,ramdisk, ramfs/tmpfs等。

2.    基于FLASH的文件系統

2.1 Cramfs:Compressed ROM File System

它的速度快,效率高,其只讀的特點有利于保護文件系統免受破壞,提高了系統的可靠性。由于以上特性,Cramfs在嵌入式系統中應用廣泛。

但是它的只讀屬性同時又是它的一大缺陷,使得用戶無法對其內容對進行擴充。Cramfs映像通常是放在Flash中。

2.2 jffs2

Jffs2: 日志閃存文件系統版本2 (Journalling Flash FileSystem v2)

主要用于NOR型閃存,基于MTD驅動層,特點是:可讀寫的、支持數據壓縮的、基于哈希表的日志型文件系統,并提供了崩潰/掉電安全保護,提供“寫平衡”支持等。

缺點主要是當文件系統已滿或接近滿時,因為垃圾收集的關系而使jffs2的運行速度大大放慢。jffs不適合用于NAND閃存主要是因為NAND閃存的容量一般較大,這樣導致jffs為維護日志節點所占用的內存空間迅速增大,另外,jffs 文件系統在掛載時需要掃描整個FLASH的內容,以找出所有的日志節點,建立文件結構,對于大容量的NAND閃存會耗費大量時間。

2.3.yaffs:Yet Another Flash File System

yaffs/yaffs2是專為嵌入式系統使用NAND型閃存而設計的一種日志型文件系統。與jffs2相比,它減少了一些功能(例如不支持數據壓縮),所以速度更快,掛載時間很短,對內存的占用較小。另外,它還是跨平臺的文件系統,除了Linux和eCos,還支持WinCE, pSOS和ThreadX等。yaffs/yaffs2自帶NAND芯片的驅動,并且為嵌入式系統提供了直接訪問文件系統的API,用戶可以不使用Linux中的MTD與 VFS,直接對文件系統操作。當然,yaffs也可與MTD驅動程序配合使用。

yaffs與yaffs2的主要區別在于,前者僅支持小頁(512 Bytes) NAND閃存,后者則可支持大頁(2KB) NAND閃存。同時,yaffs2在內存空間占用、垃圾回收速度、讀/寫速度等方面均有大幅提升。

2.4. 網絡文件系統NFS (Network File System)

NFS是由Sun開發并發展起來的一項在不同機器、不同操作系統之間通過網絡共享文件的技術。

在嵌入式Linux系統的開發調試階段,可以利用該技術在主機上建立基于NFS的根文件系統,掛載到嵌入式設備,可以很方便地修改根文件系統的內容。

所采用的工具:mkfs.cramfs,mkfs.jffs2,mkfs.yaffs

image.png

1  2  3  4  下一頁>  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

發表評論

0條評論,0人參與

請輸入評論內容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續

暫無評論

暫無評論

    人工智能 獵頭職位 更多
    掃碼關注公眾號
    OFweek人工智能網
    獲取更多精彩內容
    文章糾錯
    x
    *文字標題:
    *糾錯內容:
    聯系郵箱:
    *驗 證 碼:

    粵公網安備 44030502002758號