新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux文件系統的構建

        嵌入式Linux文件系統的構建

        作者: 時間:2016-10-08 來源:網絡 收藏

        嵌入式產品已經滲透到人們生活的方方面面,特別是在數字信息技術和網絡技術高速發展的今天,手持信息產品正拓展著一片越來越大的市場,PDA、手機、掌上電腦、信息家電等各式手持產品已擁有了龐大的用戶群。手持信息產品所運用的最關鍵的核心技術就是嵌入式操作系統。人們對嵌入式產品的需求也不再僅僅是功能單一的電子詞典類產品,嵌入式操作系統逐步成為嵌入式產品的核心。而其中,Linux以其開源的內核和免費的應用程序、能夠自由地移植和開發的優勢,更迎合嵌入式市場。嵌入式Linux的開發大致可分為三個層次:引導裝載內核、構造文件系統和圖形用戶界面。作為操作系統重要組成部分的文件系統,決定了操作系統本身的信息和用戶的數據在存儲設備上的組織形式。對嵌入式文件系統的研究、設計和開發也逐漸成為嵌入式系 統研究領域的一個方向。

        本文引用地址:http://www.104case.com/article/201610/305864.htm

        嵌入式Linux 文件系統

        文件系統是指在一個物理設備上的任何文件組織和目錄,它構成了Linux系統上所有數據的基礎,Linux程序、庫、系統文件和用戶 文件都駐留其中,因此,它是系統中龐大復雜且又是最為基本和重要的資源。值得提出的是,Linux系統中的文件不僅包括普通的 文件和目錄,每個和設備相關的實際實體也都被映射為一個文件,例如磁盤、打印機、終端等等。這樣的設備文件又稱為特殊文件 。所以,Linux下的文件是操作系統服務和設備的簡單而又統一的接口,從某種意義上可以說,Linux里的一切事物都是文件。

        在Linux中,文件系統的結構是基于樹狀的,根在頂部,各個目錄和文件從樹根向下分支。目錄樹的最頂端被稱為根目錄(/)。在后面介紹的所構造文件系統結構圖(圖1)即顯示了樹狀的文件系統。Linux操作系統由一些目錄和許多文件組成,例如,圖中的/bi n目錄包含二進制文件的可執行程序,/sbin目錄用于存儲管理系統的二進制文件,/etc目錄包含絕大部分的Linux系統配置文件 ,/lib目錄存儲程序運行時使用的共享庫,/dev目錄包含稱為設備文件的特殊文件,/proc目錄實際上是一個虛擬文件系統,/tmp目錄用于存儲程序運行時生成的臨時文件,/home目錄是用戶起始目錄的基礎目錄,/var目錄保存要隨時改變大小的文件,/usr目錄及其子目錄對Linux系統的操作非常重要,它保存著系統上的一些最重要的程序以及包含你安裝的大型軟件包。

        由于Linux是一個多任務、多用戶的操作系統,因此它里面的文件還都被賦予了一定的權限,權限決定誰能讀、寫或執行一個文件,以及這個文件的類型和如何執行。例如下面的文件列表:

        -rw-r-r-- 1 root root 1756 Sep 9 2005 inittab

        其表示:這個名為inittab的文件是普通文件,所有者有讀寫的權限,所在組和其他人都只有讀的權限,它的連接數為1,所有者及 文件所屬的組都是root,文件中字節數為1756,文件創建日期是2005年9月9日。我們可以通過對文件屬性的設置,來滿足文件在不同用戶組、不同用戶操作下的不同狀態。

        由于嵌入式設備的一些特殊性,使得嵌入式文件系統除了滿足一般文件系統的基本要求外,還有一些自身的特性:

        文件系統面對的存儲介質特殊;

        文件系統有快速恢復的特殊要求;

        物理文件系統的多樣性和動態可裝配性;

        需要文件系統具有跨操作平臺的安全性;

        文件系統要能滿足整個系統的實時性要求。

        嵌入式文件系統有安全性和均衡負載這樣的要求,而日志型文件系統可以很好地解決安全性的問題。經過幾年來的發展。日志型的嵌入式文件系統已成為嵌入式文件系統的主流。1999年。Axis

        Communications AB發布了JFFS(JournalingFlash File System)的 第一個版本。這是一個專門為嵌入式系統的Flash設備而設計的文件系統,同時它也是一個日志型的文件系統。JFFS2是JFFS的第二 個版本,于2001年發布,并得到了Red Hat的支持,成為Red Hat嵌入式操作系統eCos的文件系統。Flash存儲容量的有限性決定了J FFS是一個小尺寸的文件系統。因而在文件系統的內部設計上采用了許多簡化處理。同時,它們結合了Flash設備的讀寫特性和嵌入式文件系統的防斷電特性,使得JFFS成為適合于嵌入式系統上針對Flash設備的文件系統的理想選擇。

        嵌入式Linux 文件系統的設計

        ● 實驗主機和目標平臺的連接

        實驗主機和目標平臺的連接有兩種方法。一種是以太網連接,這種連接方式可以進行內核文件、根文件系統映像文件的下載。另一 種是串口連接,這樣的連接方式可以供調試之用。對于以太網連接,作者使用一根普通網線,將實驗主機和目標平臺都連接在Hub 上。這樣做既簡單,也不妨礙實驗主機與外部網絡的通訊。對于串口連接,用一根串口線連接目標平臺的Ful Function UART(FFUA RT)串口和實驗主機的串口。主要是在調試階段使用這種連接方式,在目標平臺的標準輸入還未被驅動的情況下。用實驗主機的標準輸入控制目標平臺,向目標平臺發控制命令。

        ● 構建文件系統

        首先建立一個文件系統的工作空間。創建目錄/bome/work,我們所構造的文件系統就在work這個目錄中。建立基本目錄,如:bin,dev,etc,lib,mnt,proc,sbin,tmp,usr,vat,tools具體結構圖見圖1(圖中所顯示的文件都是目錄文件)。其中,tools是便于開發而創建的目錄。因為整個系統要求盡量小,所以應只包含一些必須的二進制程序。而開發過程中需要用到的命令就放在 tools中,將PATH 包含tools即可。/etc目錄下只包含了一些啟動過程的配置文件,/lib目錄下的modules于目錄包含了可動態加載到核心的各種模塊。另外,目錄var下還應創建兩個子目錄log和run,負責記錄系統的日志和運行狀態。整個文件系統中除了tmp 和var目錄放在SDRAM內以外,其他所有目錄都放在Flash中,因為trap和var中的內容需要經常寫入,所以放在可讀寫的RAM里。

        插圖1: 構建文件系統的樹狀結構

        當在目標平臺實現了一個嵌入式Linux之后,為了很好地管理操作系統和用戶的數據文件,引入了文件系統。物理文件系統是JFFS2 ,考慮到擴充物理文件系統的要求,保留了Linux的VFS層次??紤]到存儲設備擴充的要求,在Linux內核中加入了對MTD設備的支持。根據上面的敘述,可給出整個文件系統的體系結構圖,見圖2所示。


        上一頁 1 2 3 下一頁

        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 静海县| 湘潭县| 侯马市| 甘南县| 滦南县| 镇坪县| 靖西县| 龙州县| 乐陵市| 鄱阳县| 寿光市| 梅河口市| 宁城县| 二连浩特市| 应用必备| 托里县| 城固县| 吉水县| 平乡县| 万全县| 自治县| 福建省| 温泉县| 隆安县| 霍林郭勒市| 桓仁| 社旗县| 泉州市| 宣汉县| 砀山县| 全州县| 永胜县| 河间市| 延津县| 开江县| 宜城市| 鱼台县| 安溪县| 明溪县| 阜新市| 收藏|