1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 一種實(shí)現(xiàn)嵌入式Linux的新方法

        時(shí)間:2024-09-25 12:39:44 計(jì)算機(jī)畢業(yè)論文 我要投稿
        • 相關(guān)推薦

        一種實(shí)現(xiàn)嵌入式Linux的新方法

        摘要 在Linux中會(huì)遇到由于文件系統(tǒng)損壞,需要人工修復(fù)而導(dǎo)致系統(tǒng)無法正常啟動(dòng)的現(xiàn)象。本文采用Linux初始化內(nèi)存盤(INITRD)技術(shù),并把內(nèi)存的一部分作為Linux的根目錄,每次啟動(dòng)把完整的文件系統(tǒng)解壓到這里,避免了系統(tǒng)從損壞的文件系統(tǒng)啟動(dòng)。這不僅使系統(tǒng)能正常啟動(dòng),而且提高了系統(tǒng)性能。

        關(guān)鍵詞 Linux 嵌入式 INITRD ramdisk

        【Abstract】In course of building embedded Linux, the system will not start because of the bad filesystem . The paper describes a new method, which adopts INITial Ramdisk Disk and assigns part of memories as root directory of Linux. It avoids startup from a bad filesystem because it uncompresses integral filesystem to ramdisk every time. With this method, the system can not only start normally, but also it’s performance is very good.

        【Keyword】Linux embedded INITRD ramdisk

        引言
        在Linux操作系統(tǒng)中,有一項(xiàng)特殊的功能——初始化內(nèi)存盤INITRD(INITial Ram Disk)技術(shù),而且內(nèi)核支持壓縮的文件系統(tǒng)映像。有了這兩項(xiàng)功能,我們可以讓Linux系統(tǒng)從小的初始化內(nèi)存盤啟動(dòng),并把系統(tǒng)內(nèi)存的一部分作為根文件系統(tǒng)掛載,而且不使用交換分區(qū)(如果不運(yùn)行X Windows這是完全可以的),即把Linux系統(tǒng)完全嵌入到內(nèi)存中,而不依賴于任何其他硬盤,F(xiàn)在PC機(jī)內(nèi)存至少128M,而根文件系統(tǒng)所用的只有30M,因此不僅不會(huì)使整機(jī)性能下降,反而有很大的提高。
        由于系統(tǒng)不工作在硬盤上,所以系統(tǒng)消除了由于機(jī)械驅(qū)動(dòng)而導(dǎo)致的問題;因?yàn)橄到y(tǒng)運(yùn)行于內(nèi)存中,根文件系統(tǒng)和操作完全在CPU/RAM環(huán)境下,系統(tǒng)性能在速度和可靠性方面非常好;它不會(huì)由于非法關(guān)機(jī)而破壞文件系統(tǒng),因?yàn)槲覀兠恳淮螁?dòng)是把壓縮的文件系統(tǒng)解壓至內(nèi)存盤中作為根文件系統(tǒng)掛載。
        1 硬件要求
        對(duì)于這樣一個(gè)系統(tǒng),硬件不需要特別的設(shè)計(jì),只是通過普通的PC機(jī)上的組件實(shí)現(xiàn)。值得一提是系統(tǒng)的內(nèi)存的大小,它至少應(yīng)該有64M。因?yàn)?0M作為Ramdisk使用,剩下30多兆作為系統(tǒng)運(yùn)行,才能保證系統(tǒng)的正常工作,我們現(xiàn)在的計(jì)算機(jī)內(nèi)存一般為128M,這個(gè)條件都能滿足。唯一特別的是一個(gè)flash盤 ,它相當(dāng)于一個(gè)IDE接口的硬盤,大小為20M,主要用它作為啟動(dòng)LILO和放置根文件系統(tǒng)壓縮包。
        2 Ramdisk的使用
        Ramdisk就是將內(nèi)存的一部分分配為一個(gè)分區(qū)并作為硬盤來使用。對(duì)于系統(tǒng)運(yùn)行時(shí)不斷使用的程序,將它們放在Ramdisk中將加快計(jì)算機(jī)的操作,如大數(shù)據(jù)量的網(wǎng)絡(luò)服務(wù)器、無盤工作站等。為了能夠使用Ramdisk,我們?cè)诰幾g內(nèi)核時(shí)須將block device中的Ramdisk支持選上,它下面還有兩個(gè)選項(xiàng),一個(gè)是設(shè)定Ramdisk的大小,默認(rèn)是4096k;另一個(gè)是initrd的支持。它既可以直接編譯進(jìn)內(nèi)核,也可以編譯成模塊,在需要的時(shí)候加載。我們由于在啟動(dòng)時(shí)就用它,所以必須將它直接編譯進(jìn)內(nèi)核。
        如果對(duì)Ramdisk的支持已經(jīng)編譯進(jìn)內(nèi)核,我們就可以使用它了。首先在/mnt目錄下創(chuàng)建目錄ram,運(yùn)行mkdir /mnt/ram;然后對(duì)/dev/ram0創(chuàng)建文件系統(tǒng),運(yùn)行mke2fs /dev/ram;最后掛載上/dev/ram,運(yùn)行mount /dev/ram /mnt/ram,就可以象對(duì)普通硬盤一樣對(duì)它進(jìn)行操作了。值得注意的是,在創(chuàng)建文件系統(tǒng)的時(shí)候,在屏幕上輸出1024 inodes ,4096 blocks,即ramdisk大小為4M=4096個(gè)塊,但是我們掛載上之后,用命令df –k /dev/ram查看時(shí),顯示出來ramdisk大小只有3963K,這是由于文件系統(tǒng)本身占用了一些空間。
        我們能根據(jù)需要改變r(jià)amdisk地大小。如我們要把默認(rèn)的4M增大到10M,當(dāng)ramdisk是直接編譯進(jìn)內(nèi)核的情況下,可在LILO配置文件lilo.conf中加入一行:append=“ramdis_size=10000”,運(yùn)行LILO后,重啟計(jì)算機(jī)后,ramdisk大小變?yōu)?0M,或者在啟動(dòng)是作為啟動(dòng)行參數(shù)ramdis_size=10000;當(dāng)ramdisk是作為可加載模塊編譯時(shí),需要在模塊加載配置文件/etc/modules.conf中加入一行:options rd rd_size=10000,或者在加載rd模塊是在后面加上說明,即insmod rd rd_size=10000.
        3 實(shí)現(xiàn)過程
        3.1創(chuàng)建壓縮的文件系統(tǒng)
        我們的實(shí)現(xiàn)過程是依賴于存在的Linux系統(tǒng)。首先啟動(dòng)一般的Linux系統(tǒng),在這個(gè)系統(tǒng)中根據(jù)自己的需要,創(chuàng)建一個(gè)適合功能的文件系統(tǒng)。例如我們要實(shí)現(xiàn)Apache網(wǎng)絡(luò)服務(wù)器,那么只要把完成系統(tǒng)啟動(dòng)和基本維護(hù)需要的一些命令、腳本、配置文件和庫函數(shù)留下,再加上實(shí)現(xiàn)Apache服務(wù)器所需要的。具體過程為:
        在Linux下建立目錄/minlinux,我們?cè)诖四夸浵聞?chuàng)建的文件系統(tǒng)。系統(tǒng)的所有靜態(tài)鏈接庫,幫助手冊(cè)(man pages),信息頁(info pages),頭文件,內(nèi)核源碼對(duì)于系統(tǒng)運(yùn)行是完全無用的,所以不需要它們。在目錄bin下放系統(tǒng)維護(hù)的一些基本工具,如ls、mv、grep、chown、chmod、chgrp、ln、rm等;在sbin下是系統(tǒng)啟動(dòng)過程通常需要的命令,如bash、e2fsck、mke2fs、fdisk、insmod、rmmod、depmod、modprobe、lsmod、shutdown、reboot、login、init、getty、mount、umount、等;usr/bin下放置Apache應(yīng)用程序http和其他一些特殊工具。然后根據(jù)這些可執(zhí)行文件需要的動(dòng)態(tài)鏈接庫來確定lib目錄下的內(nèi)容。當(dāng)然目錄etc下的配置文件,dev下的設(shè)備文件需要的都必須要有,它們都是和可執(zhí)行文件對(duì)應(yīng)的,因?yàn)樵S多可執(zhí)行文件執(zhí)行時(shí),一般是打開設(shè)備,根據(jù)配置文件來運(yùn)行。有一個(gè)特殊的目錄proc應(yīng)該設(shè)置,在內(nèi)核編譯選項(xiàng)文件系統(tǒng)選擇中,我們選

        【一種實(shí)現(xiàn)嵌入式Linux的新方法】相關(guān)文章:

        一種實(shí)現(xiàn)嵌入式Linux的新法子03-23

        基于嵌入式Linux的終端AVI視頻編碼器的實(shí)現(xiàn)03-07

        在嵌入式linux2.4.18內(nèi)核中實(shí)現(xiàn)CS8900A網(wǎng)卡驅(qū)動(dòng)03-07

        嵌入式Linux技術(shù)的現(xiàn)狀與發(fā)展動(dòng)向03-19

        嵌入式Linux系統(tǒng)及其應(yīng)用前景03-18

        嵌入式Linux系統(tǒng)下Microwindows的應(yīng)用03-19

        嵌入式Linux的MiniGUI研究和移植03-18

        基于linux的網(wǎng)絡(luò)對(duì)講機(jī)的研究與實(shí)現(xiàn)03-07

        嵌入式Linux系統(tǒng)中的GUI系統(tǒng)的研究與移植03-18

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>