W5 實驗五 文件系統(tǒng)制作實驗.doc_第1頁
W5 實驗五 文件系統(tǒng)制作實驗.doc_第2頁
W5 實驗五 文件系統(tǒng)制作實驗.doc_第3頁
W5 實驗五 文件系統(tǒng)制作實驗.doc_第4頁
W5 實驗五 文件系統(tǒng)制作實驗.doc_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實驗五 嵌入式文件系統(tǒng)的構建【實驗目的】1、了解嵌入式操作系統(tǒng)中文件系統(tǒng)的類型和作用2、了解JFFS2文件系統(tǒng)的優(yōu)點及其在嵌入式系統(tǒng)中的作用3、掌握利用BusyBox軟件制作嵌入式文件系統(tǒng)的方法4、掌握嵌入式Linux文件系統(tǒng)的的掛載過程【實驗原理】1、Linux文件系統(tǒng)的類型(1)、EXT文件系統(tǒng)Ext2fs是Linux的標準文件系統(tǒng),它已經取代了擴展文件系統(tǒng)(或 Extfs)。擴展文件系統(tǒng)Extfs支持的文件大小最大為2 GB,支持的最大文件名稱大小為255個字符,而且它不支持索引節(jié)點(包括數(shù)據(jù)修改時間標記)。Ext2fs取代Extfs具有一些優(yōu)點:l Ext2fs支持達4 TB的內存。l Ext2fs文件名稱最長可以到1012個字符。l 在創(chuàng)建文件系統(tǒng)時,管理員可以根據(jù)需要選擇存儲邏輯塊的大?。ㄍǔ4笮】蛇x擇 1024、2048和4096字節(jié))。l Ext2fs可以實現(xiàn)快速符號鏈接(相當windows文件系統(tǒng)的快捷方式),不需為符號鏈接分配數(shù)據(jù)塊,并且可將目標名稱直接存儲在索引節(jié)點(inode)表中。這使文件系統(tǒng)的性能有所提高,特別在訪問速度上。 由于 Ext2fs文件系統(tǒng)的穩(wěn)定性、可靠性和健壯性,所以幾乎在所有基于Linux 的系統(tǒng)(包括臺式機、服務器和工作站,并且甚至一些嵌入式設備)上都使用Ext2fs文件系統(tǒng)。(2)、NFS文件系統(tǒng)NFS是一個RPC service ,它是由SUN公司開發(fā),并于1984年推出。NFS文件系統(tǒng)能夠使文件實現(xiàn)共享,它的設計是為了在不同的系統(tǒng)之間使用,所以NFS文件系統(tǒng)的通信協(xié)議設計與作業(yè)系統(tǒng)無關。當使用者想使用遠端文件時只要用“mount”命令就可以把遠端文件系統(tǒng)掛載在自己的文件系統(tǒng)上,使遠端的文件在使用上和本地機器的文件沒有區(qū)別。NFS的具體配置可參考實驗一的網絡文件系統(tǒng)nfs的配置。(3)、JFFS2文件系統(tǒng)JFFS文件系統(tǒng)是瑞典Axis通信公司開發(fā)的一種基于Flash的日志文件系統(tǒng),它在設計時充分考慮了Flash的讀寫特性和電池供電的嵌入式系統(tǒng)的特點,在這類系統(tǒng)中必需確保在讀取文件時,如果系統(tǒng)突然掉電,其文件的可靠性不受到影響。 對Red Hat的Davie Woodhouse進行改進后,形成了JFFS2。主要改善了存取策略以提高FLASH的抗疲勞性,同時也優(yōu)化了碎片整理性能,增加了數(shù)據(jù)壓縮功能。需要注意的是,當文件系統(tǒng)已滿或接近滿時,JFFS2會大大放慢運行速度。這是因為垃圾收集的問題。相對于EXT2fs而言,JFFS2在嵌入式設備中更受歡迎。JFFS2文件系統(tǒng)通常用來當作嵌入式系統(tǒng)的文件系統(tǒng)。JFFS2克服了JFFS的一些缺點:使用了基于哈希表的日志節(jié)點結構,大大加快了對節(jié)點的操作速度l 支持數(shù)據(jù)壓縮l 提供了“寫平衡”支持l 支持多種節(jié)點類型l 提高了對閃存的利用率,降低了內存的消耗我們只需要在自己的嵌入式Linux中加入JFFS2文件系統(tǒng)并做少量的改動,就可以使用JFFS文件系統(tǒng)。通過JFFS2文件系統(tǒng),可以用Flash存儲器來保存數(shù)據(jù),即將Flash存儲器作為系統(tǒng)的硬盤來使用。可以像操作硬盤上的文件一樣操作Flash芯片上的文件和數(shù)據(jù)。同時系統(tǒng)運行的參數(shù)可以實時保存到Flash存儲器芯片中,在系統(tǒng)斷電后數(shù)據(jù)不會丟失。作為一種EEPROM,F(xiàn)lash可分為NOR Flash 和NAND Flash兩種主要類型。一片沒有使用過的Flash存儲器,每一位的值都是邏輯1,對Flash的寫操作就是將特定位的邏輯1改變?yōu)檫壿?。而擦除就是將邏輯0改變?yōu)檫壿?。Flash的數(shù)據(jù)存儲是以塊(Block)為單位進行組織,所以Flash在進行擦除操作時只能進行整塊擦除。Flash的使用壽命是以擦除次數(shù)進行計算,一般是每塊100,000次。為了保證flash存儲芯片的某些塊不早于其他塊到達其壽命,有必要將在所有塊中盡可能地平均分配擦除次數(shù),這就是“損耗平衡”。JFFS2文件系統(tǒng)是一種“追加式”的文件系統(tǒng),新的數(shù)據(jù)總是被追加到上次寫入數(shù)據(jù)的后面。這種“追加式”的結構就自然實現(xiàn)了“損耗平衡”。1、文件系統(tǒng)的制作(1)、Busybox介紹 Busybox是Debian GNU/Linux著名的Bruce Perens 首先開發(fā),主要使用在 Debian 的安裝程序中。后來又有許多 Debian 開發(fā)者對Busybox貢獻力量。Busybox 編譯成一個叫做 busybox獨立執(zhí)行程序,并且可以根據(jù)配置,執(zhí)行 ash shell 的功能,以及幾十個小應用程序。這其中包括一個迷你的 vi 編輯器,系統(tǒng)不可或缺的 /sbin/init 程序,以及其他諸如 sed, ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat等等,所有這些都是一個正常的系統(tǒng)必不可少的,但如果把這些程序的原件拿過來的話,大小在一個嵌入式系統(tǒng)中無法承受。busybox 具有全部這些功能,大小也不過 100K 左右。而且用戶還可以根據(jù)自己的需要對busybox的應用程序功能進行配置選擇。這樣可以使busybox 的大小進一步縮小。BusyBox支持多種體系結構,它可以靜態(tài)或動態(tài)鏈接glic或者uclibc庫,以滿足不同的需要,也可以修改BusyBox默認的編譯配置以移除不想使用的命令的支持。(2)、busybox的編譯從網上下載BusyBox軟件包,這里下載的是busybox-1.00-pre05.tar.bz2。首先把它放在/root/Xsbase270_Linux/Filesystem目錄下并進行解壓縮。rootlocalhost$cd /root/Xsbase270_Linux/FilesystemrootFilesystem$ tar jxf busybox-1.00-pre05.tar.bz2rootFilesystemcd busybox-1.00-pre05rootFilesystemmake menuconfig 在busybox的頂層目錄下的Makefile中包含一些選項來控制BusyBox的創(chuàng)建。其中大部分選項是在開發(fā)busybox時為了調試而使用的。圖5-1是BusyBox的配置界面。圖5-1 配置BusyBox的主界面在Build Option菜單下,可以選擇靜態(tài)庫編譯方式,設置如下:* Build BusyBox as a static binary (no shared libs)由于為ARM系統(tǒng)制作文件系統(tǒng),所以在交叉編譯選項中需要使用帶glibc庫的支持的交叉編譯器arm-linux-gcc,具體配置如圖5-2所示:(假設ARM交叉編譯工具所在的目錄為/opt/xscalev1/bin) 圖5-2 配置BusyBox交叉編譯選項busybox默認的安裝路徑為_install,用戶可以根據(jù)需要在Installation Options配置中輸入自定義路徑。圖5-3文件系統(tǒng)安裝路徑用戶可以根據(jù)需要對文件系統(tǒng)的功能選項進行配置,這樣可以減少文件系統(tǒng)的大小,以節(jié)省存儲空間,圖5-4 其中一配置選項界面。當用戶對文件系統(tǒng)的配置選項配置完畢后,需要對配置選項進行保存操作,如圖5-5所示。圖5-3 文件系統(tǒng)安裝路徑圖5-4 選擇編譯命令圖5-6 保存配置配置完成后便可對BusyBox進行編譯。rootFilesystem$ make dep rootFilesystem$ make install編譯和安裝完后生成_install目錄。并且可以看到bin、sbin和usr 三個目錄,在這三個目錄,可以看到一個busybox應用程序和許多符號鏈接,并且還可以看出所有這些符號鏈接都指向busybox應用程序。2、配置文件系統(tǒng)在_install下建立etc目錄:rootlocalhost _install# mkdir etc下面我們要在此etc下分別建立rc,inittab,motd三個文件。進入剛新建的etc,在其下用vi rc命令建立rc文件:#!/bin/shhostname emdoor mount -t proc proc /proccat /etc/motd保存后退出,用chmod命令改變rc文件屬性rootlocalhost etc$chmod 777 rc在etc下新建一個inittab文件,內容如下: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文件,其內容用戶隨意。Welcome to = ARM-LINUX WORLD =Base on : Xsbase270-EDRPartner : emdoor()在etc下建立init.d目錄,而后在init.d目錄下建立rc文件的符號連接文件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)建設備文件。在本實驗中一些設備文件是必需的,比如系統(tǒng)控制臺console,MTD 塊設備 mdblock3等,可以使用mknod命令來創(chuàng)建。#mknod console c 5 1#mknod mdblock3 b 31 3除了使用mknod命令來手工創(chuàng)建設備文件外,還可以復制主機平臺/dev目錄下一些必要的設備文件/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ù)表示復制過程中保證鏈接文件保持不變,但不會復制鏈接所指的原文件,而且屬性不變,然后刪除不必要的設備文件。3、制作JFFS2文件映像將光盤的filesystem下的mkfs.jffs2拷貝到buybox下返回到busybox的根目錄下,運行命令mkfs.jffs2# ./mkfs.jffs2 -o rootfs270.img -e 0x40000 -r _install -p -l生成映像文件rootfs270.img,拷貝到/tftpboot中燒寫到flash中,啟動后運行結果。【實驗儀器】1、裝有Linux操作系統(tǒng)的PC機一臺;2、XSBase270或XSBase255 ARM實驗開發(fā)平臺一套【實驗內容】1、根據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論