版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、、什么是文件系統(tǒng) (Filesystem)文件系統(tǒng)是包括在一個(gè)磁盤(pán)(包括光盤(pán)、 軟盤(pán)、閃盤(pán)及其它存儲(chǔ)設(shè)備 )或分區(qū)的目錄結(jié)構(gòu);一個(gè)可應(yīng)用的磁盤(pán)設(shè)備可以包含一個(gè)或多個(gè)文件系統(tǒng); 如果您想進(jìn)入一個(gè)文件系統(tǒng), 首先您 要做的是掛載 (mount) 文件系統(tǒng);為了掛載 (mount) 文件系統(tǒng),您必須指定一個(gè)掛載點(diǎn)。二、主要嵌入式采用的文件系統(tǒng)* Linux 中, rootfs 是必不可少的。 PC 上主要實(shí)現(xiàn)有 ramdisk 和直接掛載 HD(Harddisk , 硬盤(pán) ) 上的根文件系統(tǒng);嵌入式中一般不從 HD 啟動(dòng),而是從 Flash 啟動(dòng),最簡(jiǎn)單的方法 是將rootfs load至U RAM
2、的RAMDisk,稍復(fù)雜的就是直接從Flash讀取的Cramfs,更復(fù)雜的是在Flash上分區(qū),并構(gòu)建JFFS2等文件系統(tǒng)。* RAMDisk將制作好的rootfs壓縮后寫(xiě)入 Flash,啟動(dòng)的時(shí)候由Bootloader load 到RAM, 解壓縮,然后掛載至 /。這種方法操作簡(jiǎn)單,但是在 RAM 中的文件系統(tǒng)不是壓縮的,因此 需要占用許多嵌入式系統(tǒng)中稀有資源 RAM。ramdisk 就是用內(nèi)存空間來(lái)模擬出硬盤(pán)分區(qū) ,ramdisk 通常使用磁盤(pán)文件系統(tǒng)的壓縮存放 在flash中,在系統(tǒng)初始化時(shí),解壓縮到SDRAM并掛載根文件系統(tǒng),在linux系統(tǒng)中,ramdisk有 二種 ,一種就是可以格
3、式化并加載,在 linux 內(nèi)核 2.0/2.2 就已經(jīng)支持 ,其不足之處是大小固定 ;另一種是2.4的內(nèi)核才支持,通過(guò),ramfs來(lái)實(shí)現(xiàn),他不能被格式化,但用起來(lái)方便,其大小隨所需 要的空間增加或減少 ,是目前 linux 常用的 ramdisk 技術(shù) .* initrd 是 RAMDisk 的格式, kernel 2.4 之前都是 image-initrd , Kernel 2.5 引入了 cpio-initrd ,大大簡(jiǎn)化了 Linux 的啟動(dòng)過(guò)程,附合 Linux 的基本哲學(xué): Keep it simple, stupid(KISS). 不過(guò) cpio-initrd 作為新的格式,還沒(méi)
4、有經(jīng)過(guò)廣泛測(cè)試,嵌入式 Linux 中主要采 用的還是 image-initrd 。* Cramfs 是 Linus 寫(xiě)的很簡(jiǎn)單的文件系統(tǒng), 有很好的壓縮綠, 也可以直接從 Flash 上運(yùn)行,不須load到RAM中,因此節(jié)約了RAM。但是Cramfs是只讀的,對(duì)于需要運(yùn)行時(shí)修改的目錄 (如: /etc, /var, /tmp) 多有不便,因此,一般將這些目錄做成 ramfs 等可寫(xiě)的 fs。* SquashFS是對(duì)Cramfs的增強(qiáng)。突破了 Cramfs的一些限制,在 Flash和RAM的使用量方面也具有優(yōu)勢(shì)。不過(guò),據(jù)開(kāi)發(fā)者介紹,在性能上可能不如 Cramfs。這也是一種新方法,在嵌入式系統(tǒng)
5、采用之前,需要經(jīng)過(guò)更多的測(cè)試三、建一個(gè)包含所有文件的目錄1。建一個(gè)目錄 rootfs 用來(lái)裝文件系統(tǒng)2。mkdir bin devetc lib procsbintmpusrvar3. ln -fs bin/busyboxlinuxrc( 使用 busybox)4. 到系統(tǒng) /dev 把所有的 device 打一個(gè)包,拷貝到 dev 下面 ( 最省事的做法 );或者使用 mknod 來(lái)自己建所需要的 device, 我自己用的如下:crw-rw-rw- 1 root root 5, 1 2006-02-24 13:12 consolecrw-rw-rw- 1 root root 5, 64 2
6、006-02-24 13:12 cua0crw-rw-rw- 1 root root 63, 0 2006-02-24 13:12 dk0crw-rw-rw- 1 root root 63, 1 2006-02-24 13:12 dk1drwxr-xr-x 2 root root 4096 2006-02-24 13:12 flashbrw-rw-rw- 1 root root 3, 0 2006-02-24 13:12 hdacrw-rw-rw- 1 root root 36, 10 2006-02-24 13:12 ipseccrw-rw-rw- 1 root root 241, 0 20
7、06-02-24 13:12 ixNpecrw-rw-rw- 1 root root 1, 2 2006-02-24 13:12 kmemcrw-rw-rw- 1 root root 126, 0 2006-02-24 13:12 ledmanlrwxrwxrwx 1 root root 16 2007-09-19 14:08 log -> /tmp/var/log/logcrw-rw-rw- 1 root root 1, 1 2006-02-24 13:12 memcrw-rw-rw- 1 root root 90, 0 2006-02-24 13:12 mtd0brw-rw-rw-
8、1 root root 31, 0 2006-02-24 13:12 mtdblock0brw-rw-rw- 1 root root 31, 1 2006-02-24 13:12 mtdblock1brw-rw-rw- 1 root root 31, 2 2006-02-24 13:12 mtdblock2brw-rw-rw- 1 root root 31, 3 2006-02-24 13:12 mtdblock3brw-rw-rw- 1 root root 31, 4 2006-02-24 13:12 mtdblock4brw-rw-rw- 1 root root 31, 5 2006-02
9、-24 13:12 mtdblock5brw-rw-rw- 1 root root 31, 6 2006-02-24 13:12 mtdblock6crw-rw-rw- 1 root root 90, 1 2006-02-24 13:12 mtdr0crw-rw-rw- 1 root root 1, 3 2006-02-24 13:12 nullcrw-rw-rw- 1 root root 108, 0 2006-02-24 13:12 pppcrw-r-r- 1 root root 5, 2 2006-03-29 15:56 ptmxdrwxr-xr-x 2 root root 4096 2
10、006-03-29 15:56 ptscrw-rw-rw- 1 root root 2, 0 2006-02-24 13:12 ptyp0brw-rw-rw- 1 root root 1, 0 2006-02-24 13:12 ram0crw-rw-rw- 1 root root 1, 8 2006-02-24 13:12 randomcrw-rw-rw- 1 root root 5, 0 2006-02-24 13:12 ttycrw-rw-rw- 1 root root 4, 0 2006-02-24 13:12 tty0crw-rw-rw- 1 root root 3, 0 2006-0
11、2-24 13:12 ttyp0crw-rw-rw- 1 root root 4, 64 2006-02-24 13:12 ttyS0crw-rw-rw- 1 root root 1, 9 2006-02-24 13:12 urandomcrw-rw-rw- 1 root root 1, 5 2006-02-24 13:12 zero 舉例: mknod console c 5 1 這樣 crw-rw-rw- 1 root root 5, 1 2006-02-24 13:12 console5。將編譯好的 busybox 拷貝到 /bin 下面,除了 busybox 外,所有其他的命令都是他的
12、 linkash chgrp clear dd echo fgrepgzipiplsmodprobe mv ping pwdsedstty tar true zcatbusyboxchmodcpdfegrepgrep hostname kill mkdir more netstat ping2file rmsh sync tftpumount cat chown date dmesg false gunzipifconfiglnmknod mount pidofpsrmdir sleep sysinfo touch uname所有的命令你可以在 busybox 下面用 make menucon
13、fig 來(lái)增減6。同樣 /sbin 下面也是 busybox 的 linkhalt ifconfiginitinsmodklogdlosetuplsmodmkswapmodprobe reboot rmmod route swapoffswapon7。同樣 /usr/bin 下面也是 busybox 的 linkbasenamedirnameenv free id logger reset tail trtty uptime which xargsawk cut du expr head killallmkfifo sort test tracerouteuniqwcwhoami yes上面幾
14、乎是最全的 link ,各個(gè)看官可以酌情刪減,不過(guò)link 也不占什么空間!8。同樣 /usr/sbin 下面放著所有編譯完的可執(zhí)行文件,具體就不多說(shuō)了9。非常重要之 /lib ,務(wù)必重視找到你編譯環(huán)境的 target 目錄,把需要的 lib 文件先用 strip 壓縮 (非 target 目錄下的, 而 已編譯環(huán)境提供的 strip) ,先把最基本的 libc, ld 等等,必須同樣做跟 target/lib 里面一樣的 link。然后根據(jù)特定的應(yīng)用加相應(yīng)的lib,不要把不用的加進(jìn)去,lib比較占空間。10。在 /etc 下面加上需要的配置文件,最最重要的是rcS#!/bin/shexpor
15、t PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/sbin/scriptsUTC=yesmount -n -t procproc /procmount -n -t ramfsramfs /tmpmount -n -t devptsdevpts /dev/pts# build var directories/bin/mkdir -m 0777 /tmp/var/bin/mkdir -m 0777 /var/lock/bin/mkdir -m 0777 /var/log/bin/mkdir -m 0777 /var/run/bin/mkdir -m 0777 /v
16、ar/tmp#/bin/mkdir -m 0777 /tmp/etc#/bin/cp -a /usr/etc/* /etc#/bin/cp -a /usr/dev/* /dev/# loads the NPE ethernet modules into the kernel.insmod /lib/modules//intel/ixp400.ko# Firmware code for NPE Engine.cat /etc/IxNpeMicrocode.dat > /dev/ixNpeinsmod /lib/modules//intel/ixp400_et
17、h.ko netdev_max_backlog=500insmod /lib/modules/led.koinsmod /lib/modules/push_button.ko 下面的具體應(yīng)用沒(méi)有再舉例加上了,這個(gè)是系統(tǒng) init 必須的。其他的情況類似如此了,下面里面給了一個(gè)lunksys的GPL項(xiàng)目的target。四、生成一個(gè) ramdisk#!/bin/shMODULE_NAME=ramdiskRAMPATH='pwd'TMPPATH=$RAMPATH/tmpSOURCE=$RAMPATH/./targetif ! -d $TMPPATH thenmkdir $TMPPAT
18、Hfiif 'whoami' != 'root' then echo "You should run the shell as root, Please rerun as a root."echo "Aborting."exit 1fi# Clear in tmp pathrm -rf $TMPPATH/tmpmntrm -rf $TMPPATH/ramrootfsmkdir $TMPPATH/tmpmnt# Clear the old ramdiskrm -f $RAMPATH/$MODULE_NAME# Make a temp file which size is suitabledd if=/dev/zero of=$TMPPATH/ramrootfsbs=1k count=6144# Create a ext2 filesystemmk
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年甘肅會(huì)展中心有限責(zé)任公司招聘筆試參考題庫(kù)含答案解析
- 2025年全球及中國(guó)醫(yī)用協(xié)作機(jī)器人行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球鄰氯苯腈(氯化法)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球觸控?zé)粜袠I(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 遠(yuǎn)程教育中如何培養(yǎng)學(xué)生的自我約束力
- 運(yùn)動(dòng)療法在醫(yī)療領(lǐng)域的新突破
- 教學(xué)創(chuàng)新與科研突破的相互關(guān)系研究
- 數(shù)據(jù)安全保衛(wèi)戰(zhàn)網(wǎng)絡(luò)安全教育專題研討與執(zhí)行總結(jié)
- 茶藝技能在商業(yè)領(lǐng)域的應(yīng)用與拓展
- 二零二五年度網(wǎng)絡(luò)安全技術(shù)支持與服務(wù)合同6篇
- 2024年全國(guó)職業(yè)院校技能大賽高職組(研學(xué)旅行賽項(xiàng))考試題庫(kù)(含答案)
- 2025年溫州市城發(fā)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 2025年中小學(xué)春節(jié)安全教育主題班會(huì)課件
- 2025版高考物理復(fù)習(xí)知識(shí)清單
- 除數(shù)是兩位數(shù)的除法練習(xí)題(84道)
- 2025年度安全檢查計(jì)劃
- 2024年度工作總結(jié)與計(jì)劃標(biāo)準(zhǔn)版本(2篇)
- 全球半導(dǎo)體測(cè)試探針行業(yè)市場(chǎng)研究報(bào)告2024
- 反走私課件完整版本
- 2024年注冊(cè)計(jì)量師-一級(jí)注冊(cè)計(jì)量師考試近5年真題附答案
- 四年級(jí)下冊(cè)數(shù)學(xué)知識(shí)點(diǎn)總結(jié)
評(píng)論
0/150
提交評(píng)論