關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 現場總線的開關量I/O模塊設計:操作系統移植與驅動開發

        現場總線的開關量I/O模塊設計:操作系統移植與驅動開發

        作者: 時間:2013-05-27 來源:網絡 收藏

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

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

        Linux是通過把系統支持的各種文件系統鏈接到一個單獨的樹形層次結構中,來實現對多文件系統的支持的。該樹形層次結構把文件系統表示成一個整個的獨立實體。無論什么類型的文件系統,都被裝配到某個目錄上,由被裝配的文件系統的文件覆蓋該目錄原有的內容。該個目錄被稱為裝配目錄或裝配點。在文件系統卸載時,裝配目錄中原有的文件才會顯露出來。

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

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

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

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

        目錄 習慣用法

        /bin 用戶命令所在目錄

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

        /etc 系統配置文件,包括啟動文件等

        /home 多用戶主目錄

        /lib 鏈接庫文件目錄

        /mnt 裝配點,用于裝配臨時文件系統或其他的文件系統

        /opt 附加的軟件套件目錄

        /proc 虛擬文件系統,用來顯示內核及進程信息

        /root root用戶主目錄

        /sbin 系統管理員命令目錄

        /tmp 臨時文件目錄/usr用戶命令目錄

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

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

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

        5.4.1 Buybox簡介

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

        Buybox在設計上就充分考慮了硬件資源受限的特殊工作環境。它采用化設計,使得它很容易被定制和裁剪。可以根據實際的用途,裁剪出一個最精簡的工具集。

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

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

        5.4.2 Buybox的配置編譯

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

        $tarzxvf Buybox-1.1.3.tar.gz

        $cd Buybox-1.1.3

        $make menuconfig

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

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

        5.4.3根文件系統鏡像構建

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

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

        linux相關文章:linux教程



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洞口县| 伊宁县| 丰都县| 民权县| 巴塘县| 汾阳市| 尼玛县| 托里县| 安徽省| 兴业县| 甘孜县| 墨竹工卡县| 顺昌县| 潢川县| 永德县| 遵义县| 江门市| 东阿县| 乐清市| 大石桥市| 宝清县| 邢台县| 伊吾县| 从江县| 桂林市| 五常市| 德钦县| 烟台市| 吐鲁番市| 丰原市| 枝江市| 乐都县| 阳新县| 新竹县| 襄城县| 津南区| 芜湖县| 岳阳县| 凤冈县| 庆阳市| 翼城县|