




已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)五 嵌入式文件系統(tǒng)的構(gòu)建【實(shí)驗(yàn)?zāi)康摹?、了解嵌入式操作系統(tǒng)中文件系統(tǒng)的類型和作用2、了解JFFS2文件系統(tǒng)的優(yōu)點(diǎn)及其在嵌入式系統(tǒng)中的作用3、掌握利用BusyBox軟件制作嵌入式文件系統(tǒng)的方法4、掌握嵌入式Linux文件系統(tǒng)的的掛載過程【實(shí)驗(yàn)原理】1、Linux文件系統(tǒng)的類型(1)、EXT文件系統(tǒng)Ext2fs是Linux的標(biāo)準(zhǔn)文件系統(tǒng),它已經(jīng)取代了擴(kuò)展文件系統(tǒng)(或 Extfs)。擴(kuò)展文件系統(tǒng)Extfs支持的文件大小最大為2 GB,支持的最大文件名稱大小為255個(gè)字符,而且它不支持索引節(jié)點(diǎn)(包括數(shù)據(jù)修改時(shí)間標(biāo)記)。Ext2fs取代Extfs具有一些優(yōu)點(diǎn):l Ext2fs支持達(dá)4 TB的內(nèi)存。l Ext2fs文件名稱最長可以到1012個(gè)字符。l 在創(chuàng)建文件系統(tǒng)時(shí),管理員可以根據(jù)需要選擇存儲(chǔ)邏輯塊的大?。ㄍǔ4笮】蛇x擇 1024、2048和4096字節(jié))。l Ext2fs可以實(shí)現(xiàn)快速符號(hào)鏈接(相當(dāng)windows文件系統(tǒng)的快捷方式),不需為符號(hào)鏈接分配數(shù)據(jù)塊,并且可將目標(biāo)名稱直接存儲(chǔ)在索引節(jié)點(diǎn)(inode)表中。這使文件系統(tǒng)的性能有所提高,特別在訪問速度上。 由于 Ext2fs文件系統(tǒng)的穩(wěn)定性、可靠性和健壯性,所以幾乎在所有基于Linux 的系統(tǒng)(包括臺(tái)式機(jī)、服務(wù)器和工作站,并且甚至一些嵌入式設(shè)備)上都使用Ext2fs文件系統(tǒng)。(2)、NFS文件系統(tǒng)NFS是一個(gè)RPC service ,它是由SUN公司開發(fā),并于1984年推出。NFS文件系統(tǒng)能夠使文件實(shí)現(xiàn)共享,它的設(shè)計(jì)是為了在不同的系統(tǒng)之間使用,所以NFS文件系統(tǒng)的通信協(xié)議設(shè)計(jì)與作業(yè)系統(tǒng)無關(guān)。當(dāng)使用者想使用遠(yuǎn)端文件時(shí)只要用“mount”命令就可以把遠(yuǎn)端文件系統(tǒng)掛載在自己的文件系統(tǒng)上,使遠(yuǎn)端的文件在使用上和本地機(jī)器的文件沒有區(qū)別。NFS的具體配置可參考實(shí)驗(yàn)一的網(wǎng)絡(luò)文件系統(tǒng)nfs的配置。(3)、JFFS2文件系統(tǒng)JFFS文件系統(tǒng)是瑞典Axis通信公司開發(fā)的一種基于Flash的日志文件系統(tǒng),它在設(shè)計(jì)時(shí)充分考慮了Flash的讀寫特性和電池供電的嵌入式系統(tǒng)的特點(diǎn),在這類系統(tǒng)中必需確保在讀取文件時(shí),如果系統(tǒng)突然掉電,其文件的可靠性不受到影響。 對Red Hat的Davie Woodhouse進(jìn)行改進(jìn)后,形成了JFFS2。主要改善了存取策略以提高FLASH的抗疲勞性,同時(shí)也優(yōu)化了碎片整理性能,增加了數(shù)據(jù)壓縮功能。需要注意的是,當(dāng)文件系統(tǒng)已滿或接近滿時(shí),JFFS2會(huì)大大放慢運(yùn)行速度。這是因?yàn)槔占膯栴}。相對于EXT2fs而言,JFFS2在嵌入式設(shè)備中更受歡迎。JFFS2文件系統(tǒng)通常用來當(dāng)作嵌入式系統(tǒng)的文件系統(tǒng)。JFFS2克服了JFFS的一些缺點(diǎn):使用了基于哈希表的日志節(jié)點(diǎn)結(jié)構(gòu),大大加快了對節(jié)點(diǎn)的操作速度l 支持?jǐn)?shù)據(jù)壓縮l 提供了“寫平衡”支持l 支持多種節(jié)點(diǎn)類型l 提高了對閃存的利用率,降低了內(nèi)存的消耗我們只需要在自己的嵌入式Linux中加入JFFS2文件系統(tǒng)并做少量的改動(dòng),就可以使用JFFS文件系統(tǒng)。通過JFFS2文件系統(tǒng),可以用Flash存儲(chǔ)器來保存數(shù)據(jù),即將Flash存儲(chǔ)器作為系統(tǒng)的硬盤來使用。可以像操作硬盤上的文件一樣操作Flash芯片上的文件和數(shù)據(jù)。同時(shí)系統(tǒng)運(yùn)行的參數(shù)可以實(shí)時(shí)保存到Flash存儲(chǔ)器芯片中,在系統(tǒng)斷電后數(shù)據(jù)不會(huì)丟失。作為一種EEPROM,F(xiàn)lash可分為NOR Flash 和NAND Flash兩種主要類型。一片沒有使用過的Flash存儲(chǔ)器,每一位的值都是邏輯1,對Flash的寫操作就是將特定位的邏輯1改變?yōu)檫壿?。而擦除就是將邏輯0改變?yōu)檫壿?。Flash的數(shù)據(jù)存儲(chǔ)是以塊(Block)為單位進(jìn)行組織,所以Flash在進(jìn)行擦除操作時(shí)只能進(jìn)行整塊擦除。Flash的使用壽命是以擦除次數(shù)進(jìn)行計(jì)算,一般是每塊100,000次。為了保證flash存儲(chǔ)芯片的某些塊不早于其他塊到達(dá)其壽命,有必要將在所有塊中盡可能地平均分配擦除次數(shù),這就是“損耗平衡”。JFFS2文件系統(tǒng)是一種“追加式”的文件系統(tǒng),新的數(shù)據(jù)總是被追加到上次寫入數(shù)據(jù)的后面。這種“追加式”的結(jié)構(gòu)就自然實(shí)現(xiàn)了“損耗平衡”。1、文件系統(tǒng)的制作(1)、Busybox介紹 Busybox是Debian GNU/Linux著名的Bruce Perens 首先開發(fā),主要使用在 Debian 的安裝程序中。后來又有許多 Debian 開發(fā)者對Busybox貢獻(xiàn)力量。Busybox 編譯成一個(gè)叫做 busybox獨(dú)立執(zhí)行程序,并且可以根據(jù)配置,執(zhí)行 ash shell 的功能,以及幾十個(gè)小應(yīng)用程序。這其中包括一個(gè)迷你的 vi 編輯器,系統(tǒng)不可或缺的 /sbin/init 程序,以及其他諸如 sed, ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat等等,所有這些都是一個(gè)正常的系統(tǒng)必不可少的,但如果把這些程序的原件拿過來的話,大小在一個(gè)嵌入式系統(tǒng)中無法承受。busybox 具有全部這些功能,大小也不過 100K 左右。而且用戶還可以根據(jù)自己的需要對busybox的應(yīng)用程序功能進(jìn)行配置選擇。這樣可以使busybox 的大小進(jìn)一步縮小。BusyBox支持多種體系結(jié)構(gòu),它可以靜態(tài)或動(dòng)態(tài)鏈接glic或者uclibc庫,以滿足不同的需要,也可以修改BusyBox默認(rèn)的編譯配置以移除不想使用的命令的支持。(2)、busybox的編譯從網(wǎng)上下載BusyBox軟件包,這里下載的是busybox-1.00-pre05.tar.bz2。首先把它放在/root/Xsbase270_Linux/Filesystem目錄下并進(jìn)行解壓縮。rootlocalhost$cd /root/Xsbase270_Linux/FilesystemrootFilesystem$ tar jxf busybox-1.00-pre05.tar.bz2rootFilesystemcd busybox-1.00-pre05rootFilesystemmake menuconfig 在busybox的頂層目錄下的Makefile中包含一些選項(xiàng)來控制BusyBox的創(chuàng)建。其中大部分選項(xiàng)是在開發(fā)busybox時(shí)為了調(diào)試而使用的。圖5-1是BusyBox的配置界面。圖5-1 配置BusyBox的主界面在Build Option菜單下,可以選擇靜態(tài)庫編譯方式,設(shè)置如下:* Build BusyBox as a static binary (no shared libs)由于為ARM系統(tǒng)制作文件系統(tǒng),所以在交叉編譯選項(xiàng)中需要使用帶glibc庫的支持的交叉編譯器arm-linux-gcc,具體配置如圖5-2所示:(假設(shè)ARM交叉編譯工具所在的目錄為/opt/xscalev1/bin) 圖5-2 配置BusyBox交叉編譯選項(xiàng)busybox默認(rèn)的安裝路徑為_install,用戶可以根據(jù)需要在Installation Options配置中輸入自定義路徑。圖5-3文件系統(tǒng)安裝路徑用戶可以根據(jù)需要對文件系統(tǒng)的功能選項(xiàng)進(jìn)行配置,這樣可以減少文件系統(tǒng)的大小,以節(jié)省存儲(chǔ)空間,圖5-4 其中一配置選項(xiàng)界面。當(dāng)用戶對文件系統(tǒng)的配置選項(xiàng)配置完畢后,需要對配置選項(xiàng)進(jìn)行保存操作,如圖5-5所示。圖5-3 文件系統(tǒng)安裝路徑圖5-4 選擇編譯命令圖5-6 保存配置配置完成后便可對BusyBox進(jìn)行編譯。rootFilesystem$ make dep rootFilesystem$ make install編譯和安裝完后生成_install目錄。并且可以看到bin、sbin和usr 三個(gè)目錄,在這三個(gè)目錄,可以看到一個(gè)busybox應(yīng)用程序和許多符號(hào)鏈接,并且還可以看出所有這些符號(hào)鏈接都指向busybox應(yīng)用程序。2、配置文件系統(tǒng)在_install下建立etc目錄:rootlocalhost _install# mkdir etc下面我們要在此etc下分別建立rc,inittab,motd三個(gè)文件。進(jìn)入剛新建的etc,在其下用vi rc命令建立rc文件:#!/bin/shhostname emdoor mount -t proc proc /proccat /etc/motd保存后退出,用chmod命令改變r(jià)c文件屬性rootlocalhost etc$chmod 777 rc在etc下新建一個(gè)inittab文件,內(nèi)容如下:sysinit:/etc/init.d/rcS# Start an askfirst shell on the console (whatever that may be):askfirst:/bin/sh# /sbin/getty invocations for selected ttystty4:respawn:/sbin/getty 38400 tty5tty5:respawn:/sbin/getty 38400 tty6# Example of how to put a getty on a serial line (for a terminal)#:respawn:/sbin/getty -L ttyS0 9600 vt100#:respawn:/sbin/getty -L ttyS1 9600 vt100# Example how to put a getty on a modem line.#:respawn:/sbin/getty 57600 ttyS2# Stuff to do when restarting the init process:restart:/sbin/init# Stuff to do before rebooting:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount -a -r:shutdown:/sbin/swapoff -a 繼續(xù)在etc下建立motd文件,其內(nèi)容用戶隨意。Welcome to = ARM-LINUX WORLD =Base on : Xsbase270-EDRPartner : emdoor()在etc下建立init.d目錄,而后在init.d目錄下建立rc文件的符號(hào)連接文件rcS。rootlocalhost etc$ ls inittab motd rc rootlocalhost etc$ mkdir init.drootlocalhost etc$cd init.drootlocalhost init.d$ ln -s ./rc rcS在_install下建立dev目錄,創(chuàng)建設(shè)備文件。在本實(shí)驗(yàn)中一些設(shè)備文件是必需的,比如系統(tǒng)控制臺(tái)console,MTD 塊設(shè)備 mdblock3等,可以使用mknod命令來創(chuàng)建。#mknod console c 5 1#mknod mdblock3 b 31 3除了使用mknod命令來手工創(chuàng)建設(shè)備文件外,還可以復(fù)制主機(jī)平臺(tái)/dev目錄下一些必要的設(shè)備文件/root/Xsbase270_Linux/Filesystem/busybox-1.00-pre5/_install/dev目錄下:# cp -dpR /dev/* /root/Xsbase270_Linux/Filesystem/busybox-1.00-pre5/_install/dev-dp參數(shù)表示復(fù)制過程中保證鏈接文件保持不變,但不會(huì)復(fù)制鏈接所指的原文件,而且屬性不變,然后刪除不必要的設(shè)備文件。3、制作JFFS2文件映像將光盤的filesystem下的mkfs.jffs2拷貝到buybox下返回到busybox的根目錄下,運(yùn)行命令mkfs.jffs2# ./mkfs.jffs2 -o rootfs270.img -e 0x40000 -r _install -p -l生成映像文件rootfs270.img,拷貝到/tftpboot中燒寫到flash中,啟動(dòng)后運(yùn)行結(jié)果。【實(shí)驗(yàn)儀器】1、裝有Linux操作系統(tǒng)的PC機(jī)一臺(tái);2、XSBase270或XSBase255 ARM實(shí)驗(yàn)開發(fā)平臺(tái)一套【實(shí)驗(yàn)內(nèi)容】1、根據(jù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一入隊(duì)活動(dòng)方案
- 六一尋寶活動(dòng)方案
- 六一患兒活動(dòng)方案
- 六一果凍活動(dòng)方案
- 六一活動(dòng)具體活動(dòng)方案
- 六一活動(dòng)方案
- 六一活動(dòng)跆拳道活動(dòng)方案
- 六一童裝禮物活動(dòng)方案
- 六一贈(zèng)送文具活動(dòng)方案
- 六一送氣球活動(dòng)方案
- 【中考真題】2023年浙江嘉興中考?xì)v史與社會(huì).道德與法治試題及答案
- GB/T 42599-2023風(fēng)能發(fā)電系統(tǒng)電氣仿真模型驗(yàn)證
- 《電子技術(shù)基礎(chǔ)》期末考試復(fù)習(xí)題庫(含答案)
- TD-T 1070.1-2022 礦山生態(tài)修復(fù)技術(shù)規(guī)范 第1部分:通則
- 平壓平模切機(jī)安全操作規(guī)程、風(fēng)險(xiǎn)告知卡、應(yīng)急處置
- 紅樓夢思辨讀寫導(dǎo)學(xué)全案
- GB/T 17626.4-2018電磁兼容試驗(yàn)和測量技術(shù)電快速瞬變脈沖群抗擾度試驗(yàn)
- 活性炭改性及吸附條件研究性實(shí)驗(yàn)
- PPT用中國地圖(可編輯)
- 小學(xué)體育教研活動(dòng)記錄(有內(nèi)容)
- 《戲劇鑒賞》專題教學(xué)課件
評(píng)論
0/150
提交評(píng)論