<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 現場(chǎng)總線(xiàn)的開(kāi)關(guān)量I/O模塊設計:操作系統移植與驅動(dòng)開(kāi)發(fā)

現場(chǎng)總線(xiàn)的開(kāi)關(guān)量I/O模塊設計:操作系統移植與驅動(dòng)開(kāi)發(fā)

作者: 時(shí)間:2013-05-27 來(lái)源:網(wǎng)絡(luò ) 收藏

5. 4嵌入式根文件系統的構建

Linux的一個(gè)最重要特點(diǎn)就是它支持許多不同的文件系統。這使Linux非常靈活,能夠與許多其他的共存。Linux支持的常見(jiàn)的文件系統有:JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。隨著(zhù)時(shí)間的推移,Linux支持的文件系統數還會(huì )增加。

Linux是通過(guò)把系統支持的各種文件系統鏈接到一個(gè)單獨的樹(shù)形層次結構中,來(lái)實(shí)現對多文件系統的支持的。該樹(shù)形層次結構把文件系統表示成一個(gè)整個(gè)的獨立實(shí)體。無(wú)論什么類(lèi)型的文件系統,都被裝配到某個(gè)目錄上,由被裝配的文件系統的文件覆蓋該目錄原有的內容。該個(gè)目錄被稱(chēng)為裝配目錄或裝配點(diǎn)。在文件系統卸載時(shí),裝配目錄中原有的文件才會(huì )顯露出來(lái)。

文件系統都會(huì )被燒錄在與某一存儲設備上。在嵌入式設備上很少使用大容量的ID E硬盤(pán)作為自己的存儲設備,嵌入式設備往往選用ROM、閃存( flash memory )等作為它的主要存儲設備。在嵌入式設備上選用哪種文件系統格式與閃存的特點(diǎn)是相關(guān)的。

本硬件平臺是以NAND Flash (閃存)作為主要的存儲媒介,這類(lèi)存儲器與傳統存儲器最大的不同在于其是按扇區擦除、按位編程。Flash存儲介質(zhì)的這種技術(shù)特點(diǎn)使得傳統的Linux文件系統已經(jīng)不再適合在其上構建,比如Ext2文件系統,是專(zhuān)為像IDE那樣的塊設備的,沒(méi)有提供很好的扇區擦寫(xiě)支持,不支持損耗平衡,沒(méi)有掉電保護,也沒(méi)有很好的扇區管理。這些缺點(diǎn)都表明,在Flash存儲介質(zhì)上應用為設備的傳統文件系統不是一個(gè)很好的選擇?;谶@樣的原因,產(chǎn)生了很多專(zhuān)為Flash設備而的文件系統。

利用BusyBox構建嵌入式根文件系統

Linux下的根文件系統目錄結構如下:

目錄 習慣用法

/bin 用戶(hù)命令所在目錄

/dev 硬件設備文件及其它特殊文件

/etc 系統配置文件,包括啟動(dòng)文件等

/home 多用戶(hù)主目錄

/lib 鏈接庫文件目錄

/mnt 裝配點(diǎn),用于裝配臨時(shí)文件系統或其他的文件系統

/opt 附加的軟件套件目錄

/proc 虛擬文件系統,用來(lái)顯示內核及進(jìn)程信息

/root root用戶(hù)主目錄

/sbin 系統管理員命令目錄

/tmp 臨時(shí)文件目錄/usr用戶(hù)命令目錄

/var 監控程序和工具程序所存放的可變數據

對于用途單一的嵌入式系統,上邊的一些用于多用戶(hù)的目錄可以省略,例如/home、/opt、/root目錄等。而/bin、/dev、/etc、/lib、/proc、/sbin和/usr目錄,是幾乎每個(gè)系統必備的目錄,也是不可或缺的目錄。

制作根文件系統,就是創(chuàng )建各種目錄,并在里面創(chuàng )建各種文件。比如在/bin、/sbin目錄下存放各種可執行程序,在/etc目錄下存放配置文件,在/lib目錄下存放庫文件。使用Busy box制作根文件系統,就是利用Busy box來(lái)創(chuàng )建/bin、/sbin等目錄下的可執行的文件。

5.4.1 Buybox簡(jiǎn)介

Buybox被非常形象地稱(chēng)為嵌入式Linux系統中的“瑞士軍刀”,它是一個(gè)Uinx工具集。它可提供一百多種GNU常用工具、shell腳本工具等。雖然Buybox中的這些工具相對于GNU提供的完全工具有所簡(jiǎn)化,但是它們都很實(shí)用。

Buybox在設計上就充分考慮了硬件資源受限的特殊工作環(huán)境。它采用化設計,使得它很容易被定制和裁剪??梢愿鶕?shí)際的用途,裁剪出一個(gè)最精簡(jiǎn)的工具集。

Buybox的特色是所有命令都編譯成一個(gè)文件:Buybox,其他命令工具(如sh、cp、ls等)都是指向Buybox文件的鏈接。在使用Buybox生成的工具時(shí),會(huì )根據工具的文件名鏈接到特定的處理程序。這樣,所有這些程序只需被加載一次,而所有的Buybox工具組件都可以共享相同的代碼段,這在很大程度上節省了系統的內存資源也提高了應用程序的執行速度。

Buybox僅需要幾百KB的空間就可以運行,這使得Buybox很適合嵌入式系統使用。同時(shí),Buybox的安裝腳本也使得它很容易建立基于Buybox的根文件系統。通常只需要添加/dev、/etc等目錄以及相關(guān)的配置腳本,就可以實(shí)現一個(gè)簡(jiǎn)單的根文件系統。

5.4.2 Buybox的配置編譯

將Buybox的源碼從網(wǎng)站上下載到本地目錄,運行命令:

$tarzxvf Buybox-1.1.3.tar.gz

$cd Buybox-1.1.3

$make menuconfig

在虛擬機上配置界面如圖5.3所示

典型的Buybox文件大小在動(dòng)態(tài)鏈接的情況下是300KB左右,靜態(tài)鏈接為800KB左右,用它實(shí)現的文件系統完全可以控制在1MB以下。

5.4.3根文件系統鏡像構建

通常情況下根文件系統鏡像是系統構建的最后一步。利用交叉編譯工具將應用程序、內核分別配置和編譯之后,把獲得的C鏈接庫、內核以及應用程序按照FHS規則放到相應位置,利用文件系統自帶的工具mkyaffs image來(lái)最終生成一個(gè)根文件系統鏡像file system.yaffs.

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux相關(guān)文章:linux教程



上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>