日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

嵌入式根文件系统制作

發布時間:2023/12/10 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式根文件系统制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1:文件系統分類:
?? 基于flash的文件系統:flash有兩種一種是NOR,另一種NANDNOR型 FLASH主要用于存放程序NAND型 FLASH主要用于存放數據NOR的特點是可在芯片內執行。這樣應用程序可以直接在flash內存內運行,不必再把代碼讀到系統的RAM中。NOR的傳輸效率很高,但寫入和擦除速度較低而NAND結構能提供極高的單元密度。并且寫入和擦除也很快。是提高數據存儲密度的最佳選擇JFFS2型文件系統主要用于NOR型flash。其特點為可讀寫,支持數據壓縮的日志型文件系統.而yaffs文件系統一般是基于NAND FLASH上。yaffs文件系統與jffs相比,減少了一些功能(如支持數據壓縮),所以掛載時間更短,速度更快,對內存占用更小。cramfs文件系統既可以用在NOR型flash上,也可以用在NAND型FLASH上。其特點為只讀的壓縮文件系統

??? 基于RAM的文件系統:ramdisk文件系統,嚴格的講ramdisk并不是一種文件系統,而只是一種磁盤訪問技術。是將內存中一塊區域當作磁盤來用。是一種將實際的文件系統(如ext2)裝入內存的機制。還有一種initramfs文件系統,也是基于RAM的。不做介紹了。進入主題。

?? cramfs是一個壓縮式的文件系統,它并不需要一次性地將文件系統中的所有內容都解壓縮到內存中,
而只是在系統需要訪問到某個位置的數據的時候,馬上計算出該數據在cramfs中的位置,將其實時地
解壓縮到內存之中,然后通過對內存的訪問來獲取文件中需要讀取的數據
cramfs中的解壓縮以及解
壓縮之后的內存中數據存放位置都是由cramfs文件系統本身進行維護的,用戶并不需要了解具體的實現
過程,因此這種方式增強了透明度,對開發人員來說,既方便、又節省了存儲空間。
cramfs擁有以下一些特性:
1、采用實時解壓縮方式,但解壓縮的時候有延遲
2、cramfs的數據都是經過處理、打包的,對其進行寫操作有一定困難。所以cramfs不支持寫操作,這個特性
剛好適合嵌入式應用中使用Flash存儲文件系統的場合
3、在cramfs中,文件最大不能超過16MB

2.1 Linux根文件系統

  根文件系統不同于普通文件系統,它是在內核啟動時掛載(mount)的第一個文件系統, 內核代碼映像文件保存在根文件系統中,而系統引導啟動程序會在根文件系統掛載之后把一 些基本的初始化腳本和服務程序等加載到內存中。

  Linux 根文件系統是樹型結構組織[1,3],它包含了內核和系統管理所需要的各種文檔和程序等。一般來說,根目錄“/”下頂層目錄都有一些比較固定命名和用途,下面列出一

  個Linux 根文件系統中的比較常見的目錄結構。

  /bin:存放二進制可執行命令的目錄。

  /dev:存放設備文件和目錄。

  /etc:存放系統管理和配置文件和目錄。

  /home:用戶主目錄,比如用戶user 的主目錄就是/home/user,可以用~user 來表示。

  /lib:存放動態鏈接共享庫的目錄。

  /sbin:存放系統管理員使用的管理程序的目錄。

  /tmp:公用的臨時文件存儲點。

  /root:系統管理員的主目錄。

  /mnt:用以臨時掛載其他的文件系統。

  /proc:虛擬文件系統,可直接訪問這個目錄來獲取系統信息。

  /var:某些大文件溢出區。

  /usr:存放應用程序和文件。

  對于嵌入式 Linux 系統的根文件系統來說,由于受系統資源的限制,一般沒有上述 那么復雜僅保留一些常用的目錄即可。如/bin、/dev、/etc、/lib、/proc、/var、/tmp、/usr、 /mnt 等[2]。 由于嵌入式系統的設計冗余度小、系統緊湊,通常存儲容量有限,因此,必須選擇 一個合適的根文件系統以使系統運行最佳。目前嵌入式Linux 根文件系統主要的根文件系 統類型有Romfs, JFFS2, RAMDISK, YAFFS/YAFFS2, Cramfs, Squashfs 等[1]。本文主要對 Cramfs 根文件系統進行討論

?

?

3:根文件系統的制作

(1):新建一個目錄,取名為rootfs,在其文件夾下創建根文件系統必須的目錄。這些目錄有:bin,dev,etc,lib,proc,sbin,sys,usr,mnt,tmp,var.usr/bin,usr/lib,usr/sbin,lib/modules。

(2):創建設備文件,以下兩個設備文件必須創建。

?? mknod -m 666 console c 5 1 (說明:C為字符型設備的意思,5為主設備號,1為次設備號)

?? mknod -m 666 null c 1 3

(3)在/etc目錄下裝以上文件。inittab ,profile,fstab,init.d(文件夾),init.d/rcS.這幾個文件必須要有,我做實驗的時候是直接拷的開發箱上的這幾個文件。

(4)編譯內核模塊????????? make modules

(5)安裝內核模塊

make modules_install INSTALL_MOD_PATH=/XXX/rootfs(后面跟根文件系統路徑,為什么要安裝模塊到根文件系統,是因為這些模塊是用的時候才加入內核中。保存在根文件系統的lib/modules目錄中)

(6)配置busybox

? busybox主要是制作根文件系統下面的命令,如ls,mkdir等。這是一個很好用的工具。最后編譯成功會生成一個busybox文件,然后這些命令最后都是鏈結到這個busybox文件上。busybox配置中注意的選項有:編譯選項中選擇使用靜態鏈接庫,交叉編譯環境的選擇。特別注意里面有一個installation option.里面有一個busybox installation prefix,把你建的rootfs的路徑填進去。

(7)如果busybox成功配置好,那么你轉到rootfs下的bin目錄就可以看到很多的命令和一個busybox文件。最后一步就是把rootfs打包成適合開發板的鏡像文件了,這一步根據你要選擇的文件系統,開發板的文件系統地址有關。我用的是jffs2文件系統。最后的命令為./mkfs.jffs2 -r rootfs -o rootfs.img -e 0x20000 --pad=0xd00000

?

總結

以上是生活随笔為你收集整理的嵌入式根文件系统制作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。