<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 軟盤(pán)上的Linux系統(tǒng)方案

          軟盤(pán)上的Linux系統(tǒng)方案

          作者: 時(shí)間:2011-05-20 來(lái)源:網(wǎng)絡(luò) 收藏

          本文將介紹一種兩張上的,它可以當(dāng)作應(yīng)急修復(fù)盤(pán)、路由器或防火墻等許多地方,通過(guò)對(duì)它的研究,也可以加深對(duì)嵌入式的理解。
            
            一.前言

          本文引用地址:http://www.ex-cimer.com/article/150724.htm

            嵌入式是由一個(gè)幾百KB的內(nèi)核和一個(gè)根據(jù)需要制定的文件系統(tǒng)所構(gòu)成了, 由于Linux是開(kāi)放源代碼的操作系統(tǒng),所以在嵌入式領(lǐng)域有著非常廣闊的前景,并已經(jīng)廣泛應(yīng)用在許多手機(jī)、PDA、MP3播放器等許多電子產(chǎn)品中。本文將介紹一種兩張上的Linux系統(tǒng),它可以當(dāng)作系統(tǒng)應(yīng)急修復(fù)盤(pán)、路由器或防火墻等許多地方,通過(guò)對(duì)它的研究,也可以加深對(duì)嵌入式系統(tǒng)的理解。
            
            二.Linux啟動(dòng)過(guò)程

            所有的PC機(jī)在加電之后,BIOS會(huì)尋找到啟動(dòng)盤(pán)第一個(gè)扇區(qū),并將其復(fù)制到RAM中來(lái)執(zhí)行它,對(duì)于兩種不同的啟動(dòng)方式,這個(gè)扇區(qū)通常含有兩種不同的代碼:引導(dǎo)程序(比如Lilo或Grub等)的代碼,引導(dǎo)程序會(huì)幫助定位內(nèi)核的位置。內(nèi)核的代碼,這通常是從啟動(dòng)時(shí)使用的引導(dǎo)的方式。對(duì)于前者,通常需要內(nèi)核支持initrd。如果是后者,使用的Boot Loader就是arch/i386/boot/bootsect.S。當(dāng)內(nèi)核被編譯的時(shí)候,這段執(zhí)行代碼就被鏈接到內(nèi)核image的最開(kāi)始的地方。這樣很容易就能只要把內(nèi)核復(fù)制到起始位置為第一個(gè)扇區(qū)的軟盤(pán)上就能得到可自啟動(dòng)的軟盤(pán)。內(nèi)核會(huì)初始化設(shè)備驅(qū)動(dòng)和內(nèi)部的數(shù)據(jù)結(jié)構(gòu),之后它會(huì)到一個(gè)特定的位置DDRamdisk Word來(lái)獲得根文件系統(tǒng)的位置。內(nèi)核必須知道去那里尋找這個(gè)根文件系統(tǒng),否則它將停機(jī)。
            
            在使用軟盤(pán)啟動(dòng)的方式時(shí),內(nèi)核可以把一個(gè)壓縮的文件系統(tǒng)釋放到RAM中,稱之為Ramdisk,這是一個(gè)內(nèi)存區(qū)域,但內(nèi)核會(huì)把它當(dāng)作磁盤(pán)一樣使用。
            
            本文中介紹的例子使用Grub做為引導(dǎo)程序,并使用initrd來(lái)輔助Linux的啟動(dòng)。兩張軟盤(pán)分別命名為bootldr盤(pán)和rootfs盤(pán),在bootldr盤(pán)中內(nèi)容為grub、內(nèi)核、initrd,rootfs盤(pán)中是壓縮過(guò)的根文件系統(tǒng)。系統(tǒng)啟動(dòng)時(shí)bootldr盤(pán)的Grub定位并執(zhí)行內(nèi)核,然后內(nèi)核解開(kāi)initrd,并執(zhí)行l(wèi)inuxrc文件,這個(gè)文件負(fù)責(zé)提示用戶更換rootfs盤(pán)并將其中內(nèi)容解壓至內(nèi)存中,然后執(zhí)行剛剛解壓的init繼續(xù)啟動(dòng)過(guò)程。
            
            為了方便理解這個(gè)例子,先介紹目錄結(jié)構(gòu)如下:
            
            /home/papaya
            ├─bootldr/
            │ ├─grub/
            │ ├─kernel/
            │ │ ├─images/
            │ │ └─linux-2.4.21/
            │ └─initrd/
            │   ├─mkinitrd.sh
            │   ├─local/
            │   └─ramdisk/
            ├─rootfs/
            │ ├─mkrootfs.sh
            │ ├─ramdisk/
            │ └─local/
            └─lib/

            三.定制Grub引導(dǎo)程序

            插入一張軟盤(pán),然后將其格式化,然后加載到/mnt/floppy
            
            #mke2fs /dev/fd0
            #mount -t ext2 /dev/fd0 /mnt/floppy -o loop
            在其中創(chuàng)建/boot/grub目錄
            #mkdir -p /mnt/floppy/boot/grub
            
            將系統(tǒng)中/boot/grub下的device.map, stage1, stage2 復(fù)制到/mnt/floppy/boot/grub中,然后在/mnt/floppy/boot/grub目錄下創(chuàng)建grub.conf文件:
            
            default=0
            timeout=10
            title Floppy Linux
            kernel (fd0)/bzImage root=/dev/ram0
            initrd (fd0)/initrd.gz
            
            然后創(chuàng)建一個(gè)鏈接
            
            #ln -s grub.conf menu.lst
            
            執(zhí)行
            
            /sbin/grub --batch --device-map=/dev/null   device (fd0) /dev/fd0
            root (fd0)
            setup (fd0)
            quit
            EOF
            
            這樣grub就被安裝到bootldr盤(pán)上了。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: 方案 系統(tǒng) Linux 軟盤(pán)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();