最小的Linux系統(tǒng)制作過程詳解_第1頁
最小的Linux系統(tǒng)制作過程詳解_第2頁
最小的Linux系統(tǒng)制作過程詳解_第3頁
最小的Linux系統(tǒng)制作過程詳解_第4頁
最小的Linux系統(tǒng)制作過程詳解_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、一什么是二為什么要做這樣一個(gè)三什么人適合讀這篇文檔四應(yīng)該具備的知識(shí)五系統(tǒng)引導(dǎo)過程簡介六編譯內(nèi)核七編譯八制作根文件系統(tǒng)九制作映象文件十內(nèi)核與的整合十一安裝測試和內(nèi)容調(diào)整十二中的十三接下來要做的事情十四參考文獻(xiàn)一什么是不是一個(gè)完整的發(fā)行版他是利用原有的一套完整的系統(tǒng)的內(nèi)核原代碼和編譯工具利用內(nèi)建的強(qiáng)大功能在一張軟盤上做的一個(gè)很小的系統(tǒng)他具備一個(gè)系統(tǒng)的基本特征支持系統(tǒng)最常用的一百多個(gè)命令,支持多種文件系統(tǒng),支持網(wǎng)絡(luò)等等,你可以把他當(dāng)做一張起動(dòng)盤和修復(fù)盤來用你也可以把他當(dāng)做一個(gè)靜態(tài)路由的路由器軟件當(dāng)然你也可以把他當(dāng)做一個(gè)玩具向你的朋友炫耀可以做的多么小我把他叫做因?yàn)樗苄∏尚〉暮芸蓯巯褚粋€(gè)剛剛出生的小

2、二為什么要作這樣一個(gè)先說說我一開始的想法當(dāng)我一開始接觸的時(shí)候看到書上說通常安裝只需要左右的空間但是我發(fā)現(xiàn)裝在我硬盤上的確要占據(jù)好幾百的空間為什么我的這么大呢后來我發(fā)現(xiàn)裝在我機(jī)器上的那么多東西只有不到30是%我平時(shí)常用的,還有30是%我極少用到的,另外的基本上是不用的于是我和大多數(shù)初學(xué)者一樣開始抱怨為什么不能做的精簡一點(diǎn)呢?于是,我萌發(fā)了自己裁減系統(tǒng)的想法.可惜那個(gè)時(shí)候我還沒有聽說過有和等到我積累了足夠的知識(shí)后我開始制作這樣一個(gè)小系統(tǒng)制作這樣一個(gè)小系統(tǒng)最大的意義在于你可以通過制作系統(tǒng)了解的啟動(dòng)過程學(xué)會(huì)的使用讓你在短時(shí)間內(nèi)學(xué)到更多的知識(shí)當(dāng)然你會(huì)得到很大的樂趣這個(gè)項(xiàng)目只是做一個(gè)具有基本特征的系統(tǒng)如果

3、你想自己做一個(gè)具有完整功能的請閱讀文檔三什么人適合讀這篇文檔如果你是一個(gè)愛好者并且很想了解的啟動(dòng)過程和系統(tǒng)的基本結(jié)構(gòu),而且是一個(gè)喜歡動(dòng)手研究小玩意的人,那么這個(gè)文檔可以滿足你的需求.如果你僅僅是用來做一些普通的日常工作而不在乎你的到底怎么工作那么這份文檔也許不太適合你另外如果你是愛好者但是目前還是一個(gè)剛剛?cè)腴T的我建議你先把命令學(xué)好不過我想我會(huì)盡可能的把這份文檔寫詳細(xì)一些如果你有足夠的毅力或許一個(gè)也能成功做一個(gè)或者你遇到一件很不巧的事情比如你的老婆來例假了你的這個(gè)周末就泡湯了那么閱讀這篇文檔并做一個(gè)小玩具可以打發(fā)你的時(shí)間四,應(yīng)該具備的知識(shí)在做一個(gè)之前你應(yīng)當(dāng)已經(jīng)會(huì)應(yīng)用最常用的命令并且至少有一次成功

4、編譯并安裝系統(tǒng)內(nèi)核的經(jīng)歷議會(huì)通過編譯源代碼來安裝軟件.如果你具備了這些條件議那么做這樣一個(gè)小系統(tǒng)會(huì)很順利議如果你還沒有掌握這些知識(shí)議你可能會(huì)遇到一些困難.但是只要有毅力議也可以成功.你不需要具備編程的知識(shí)因?yàn)槲业哪繕?biāo)是讓具有中等以上水平的愛好者可以通過閱讀文檔輕松完成這個(gè)項(xiàng)目關(guān)于一張軟盤上的還有一個(gè)很著名的叫但是他是由比較專業(yè)的人員需要編寫很多程序完成的而且沒有關(guān)于他制作過程的文檔一什么是二為什么要做這樣一個(gè)三什么人適合讀這篇文檔四應(yīng)該具備的知識(shí)五系統(tǒng)引導(dǎo)過程簡介六編譯內(nèi)核七編譯八制作根文件系統(tǒng)九制作映象文件十內(nèi)核與的整合十一安裝測試和內(nèi)容調(diào)整十二中的十三接下來要做的事情十四參考文獻(xiàn)一什么是不

5、是一個(gè)完整的發(fā)行版他是利用原有的一套完整的系統(tǒng)的內(nèi)核原代碼和編譯工具利用內(nèi)建的強(qiáng)大功能在一張軟盤上做的一個(gè)很小的系統(tǒng)他具備一個(gè)系統(tǒng)的基本特征支持系統(tǒng)最常用的一百多個(gè)命令議支持多種文件系統(tǒng)議支持網(wǎng)絡(luò)等等議你可以把他當(dāng)做一張起動(dòng)盤和修復(fù)盤來用你也可以把他當(dāng)做一個(gè)靜態(tài)路由的路由器軟件當(dāng)然你也可以把他當(dāng)做一個(gè)玩具向你的朋友炫耀可以做的多么小我把他叫做因?yàn)樗苄∏尚〉暮芸蓯巯褚粋€(gè)剛剛出生的小為什么要作這樣一個(gè)先說說我一開始的想法當(dāng)我一開始接觸的時(shí)候看到書上說通常安裝只需要左右的空間但是我發(fā)現(xiàn)裝在我硬盤上的確要占據(jù)好幾百的空間為什么我的這么大呢后來我發(fā)現(xiàn)裝在我機(jī)器上的那么多東西只有不到30是%我平時(shí)常用的

6、,還有30是%我極少用到的,另外的基本上是不用的于是我和大多數(shù)初學(xué)者一樣開始抱怨為什么不能做的精簡一點(diǎn)呢?于是,我萌發(fā)了自己裁減系統(tǒng)的想法.可惜那個(gè)時(shí)候我還沒有聽說過有和等到我積累了足夠的知識(shí)后我開始制作這樣一個(gè)小系統(tǒng)制作這樣一個(gè)小系統(tǒng)最大的意義在于你可以通過制作系統(tǒng)了解的啟動(dòng)過程學(xué)會(huì)的使用讓你在短時(shí)間內(nèi)學(xué)到更多的知識(shí)當(dāng)然你會(huì)得到很大的樂趣這個(gè)項(xiàng)目只是做一個(gè)具有基本特征的系統(tǒng)如果你想自己做一個(gè)具有完整功能的請閱讀文檔三什么人適合讀這篇文檔如果你是一個(gè)愛好者并且很想了解的啟動(dòng)過程和系統(tǒng)的基本結(jié)構(gòu),而且是一個(gè)喜歡動(dòng)手研究小玩意的人,那么這個(gè)文檔可以滿足你的需求.如果你僅僅是用來做一些普通的日常工作

7、而不在乎你的到底怎么工作那么這份文檔也許不太適合你另外如果你是愛好者但是目前還是一個(gè)剛剛?cè)腴T的我建議你先把命令學(xué)好不過我想我會(huì)盡可能的把這份文檔寫詳細(xì)一些如果你有足夠的毅力或許一個(gè)也能成功做一個(gè)或者你遇到一件很不巧的事情比如你的老婆來例假了你的這個(gè)周末就泡湯了那么閱讀這篇文檔并做一個(gè)小玩具可以打發(fā)你的時(shí)間四應(yīng)該具備的知識(shí)在做一個(gè)之前你應(yīng)當(dāng)已經(jīng)會(huì)應(yīng)用最常用的命令并且至少有一次成功編譯并安裝系統(tǒng)內(nèi)核的經(jīng)歷議會(huì)通過編譯源代碼來安裝軟件.如但果你具備了這些條件議那么做這樣一個(gè)小系統(tǒng)會(huì)很順利議如果你還沒有掌握這些知識(shí)議你可能會(huì)遇到一些困難.但是只要有毅力議也可以成功.你不需要具備編程的知識(shí)因?yàn)槲业哪繕?biāo)是

8、讓具有中等以上水平的愛好者可以通過閱讀文檔輕松完成這個(gè)項(xiàng)目關(guān)于一張軟盤上的還有一個(gè)很著名的叫但是他是由比較專業(yè)的人員需要編寫很多程序完成的而且沒有關(guān)于他制作過程的文檔五系統(tǒng)引導(dǎo)過程簡介首先主板的會(huì)讀取硬盤的主引導(dǎo)記錄中存放的是一段很小的程序議他的功能是從硬盤讀取操作系統(tǒng)核心文件并運(yùn)行議因?yàn)檫@個(gè)小程序太小了議因此通常這個(gè)小程序不具備直接引導(dǎo)系統(tǒng)內(nèi)核的能力議他先去引導(dǎo)另一個(gè)稍微大一點(diǎn)的小程序再由這個(gè)大一點(diǎn)的小程序去引導(dǎo)系統(tǒng)內(nèi)核在系統(tǒng)中這樣的小程序有和在這個(gè)項(xiàng)目中我決定用來做系統(tǒng)引導(dǎo)程序在軟盤上啟動(dòng)系統(tǒng)的過程和在硬盤上啟動(dòng)的過程相似系統(tǒng)i內(nèi)核被引導(dǎo)程序裝入內(nèi)核并運(yùn)行后,lin內(nèi)核會(huì)檢測系統(tǒng)中的各種硬

9、件.并做好各種硬件的初始化工作,使他們在系統(tǒng)正式運(yùn)行后能正常工作.之后內(nèi)核做的最后一個(gè)工作是運(yùn)行下的init程序,init是英文單詞initiliti初始化)的簡稱,init程序的工作是讀取etinitt文件中描述的指令,對系統(tǒng)的各種軟硬件環(huán)境做最初化設(shè)定最后運(yùn)行inett等待用戶輸入用戶名登錄系統(tǒng)所有的工作就這么簡單,雖然lin啟動(dòng)的時(shí)候有很多內(nèi)容,看上去十分高深,但是都不過是對這個(gè)過程的擴(kuò)充.明白了這個(gè)道理,你可以寫一些腳本程序讓他在系統(tǒng)啟動(dòng)的特定時(shí)間運(yùn)行完成任務(wù)事實(shí)上系統(tǒng)內(nèi)核并不關(guān)心下的init是不是真的init,只要是放在下名叫init的可執(zhí)行程序他都可以執(zhí)行可以做以下實(shí)驗(yàn)編寫一個(gè)非常

10、簡單的程序main()printf(“hello,world!n”);保存后以init保存他,并用編譯-ttioinitinit這里的t參數(shù)告訴把這個(gè)程序靜態(tài)聯(lián)接,這樣這個(gè)程序不倚賴任何庫就能運(yùn)行把編譯好的init程序拷貝到下n備份好原來的那個(gè)重新啟動(dòng)系統(tǒng)最后系統(tǒng)的輸出結(jié)果是hello,world!然后停在那里.做這個(gè)實(shí)驗(yàn)以前先確定你知道如何把系統(tǒng)恢復(fù)到原來的狀態(tài),有一個(gè)簡單的方法,在內(nèi)核啟動(dòng)前給他加上init參數(shù),比如你原先的init被你改成了init只要在啟動(dòng)的時(shí)候給內(nèi)核加上initininit就可以用原來的init程序啟動(dòng)系統(tǒng)做完以上實(shí)驗(yàn),就明白了內(nèi)核和init程序之間的關(guān)系此外,ini

11、t程序不一定是一個(gè)二進(jìn)制可執(zhí)行程序,他可以是一個(gè)Sh本,一個(gè)指向另一個(gè)程序的聯(lián)接,他的位置也并不一定要在下只要在啟動(dòng)內(nèi)核時(shí),給內(nèi)核加上init參數(shù)就能被運(yùn)行,比如,開始時(shí)給內(nèi)核加上initin參數(shù),內(nèi)核在最后一步就直接運(yùn)行給出提示符,不用登錄系統(tǒng)就可以輸入命令了其功能類似單用戶模式啟動(dòng)系統(tǒng)in程序只是內(nèi)核默認(rèn)運(yùn)行的第一個(gè)程序六,編譯一個(gè)lin系統(tǒng)內(nèi)核編譯前的規(guī)劃和準(zhǔn)備在編譯內(nèi)核前,請先確定你的需求,把你的需求羅列成一張?jiān)敿?xì)的表格你需要讓內(nèi)核支持什么硬件,支持多少種分區(qū)類型和文件系統(tǒng),支持哪些網(wǎng)卡,支持哪些網(wǎng)絡(luò)協(xié)議等等請盡可能詳細(xì)的羅列這些內(nèi)容,但是你也不要太貪心,因?yàn)槟闼心芾玫目臻g只有如果

12、你編譯出一個(gè)大于或很接近這個(gè)數(shù)字的內(nèi)核,你的這個(gè)項(xiàng)目就不能完成了,你已經(jīng)沒有空間再放rdi映象文件,除非你原意再多出一張軟盤,做一個(gè)兩張軟盤的小lin系統(tǒng)對于聲卡驅(qū)動(dòng)之類,我勸你還是放棄吧,因?yàn)橐粋€(gè)聲卡驅(qū)動(dòng)也許只讓你的內(nèi)核增大了十多果,但是你有了一個(gè)聲卡驅(qū)動(dòng)就務(wù)必要有一個(gè)播放器吧,否則聲卡驅(qū)動(dòng)就沒有意義,可一個(gè)播放器的大小可不是一張軟盤可以裝得下的在我先前制作的內(nèi)核有多其中文件系統(tǒng)部分站了大部分因?yàn)槲业哪繕?biāo)是把他做成一個(gè)系統(tǒng)修復(fù)盤.因此我在內(nèi)核中編譯7種文件系統(tǒng)的支持,每減少一個(gè)文件系統(tǒng)就可以減小幾十甚至多的內(nèi)核大小越是復(fù)雜越是安全的文件系統(tǒng)其支持模塊也越大比如在下模塊只有只有但是的模塊就有達(dá)

13、到模塊是可以想像編譯一個(gè)支持個(gè)文件系統(tǒng)的90多0但的內(nèi)核,文件系統(tǒng)部分就占了600以但上的空間,所以如果某一個(gè)文件系統(tǒng)是你根本不用的,那么還是不要編譯進(jìn)內(nèi)核把,這樣至少可以省下10多但的空間.對于其他的驅(qū)動(dòng),比如網(wǎng)卡,通常大小只有8,9最但大,的也不過10多但因,此可以把常用的網(wǎng)卡芯片的驅(qū)動(dòng)都編譯進(jìn)去.另外如果你想讓你的支持盤那么的驅(qū)動(dòng)模塊也是不可小看的他通常要接近因?yàn)楸P是被當(dāng)做設(shè)備來驅(qū)動(dòng)的另外你還需要讓你的內(nèi)核支持即插即用這些都是不小的空間開銷,我的建議是你放棄一兩個(gè)你不用的文件系統(tǒng).總之,你最后編譯出來的內(nèi)核大小最好不要超過否則你在里只能編譯進(jìn)去很少的命令在我編譯的中我編譯進(jìn)去多個(gè)命令基本

14、上把支持的命令都包括進(jìn)去了加上小系統(tǒng)所必需的文件系統(tǒng)目錄下的設(shè)備文件以及下幾個(gè)必需的配置文件做成壓縮后的大小是多加上900左但右的內(nèi)核剛好可以放入一張144軟0盤但,請注意,你應(yīng)該留下至少50的但空間因?yàn)槲覀円谲洷P上創(chuàng)建一個(gè)文件系統(tǒng)而文件系統(tǒng)本生需要占據(jù)大概的磁盤空間另外的引導(dǎo)文件的大小是還有裝上后自動(dòng)產(chǎn)生的文件也要多的空間文件的具體大小由內(nèi)核安裝的實(shí)際大小決定通常不會(huì)超過綜上所述,請遵循下面的公式:內(nèi)核大小+文件系統(tǒng)壓縮印象文件+50但=1440但另外一點(diǎn)需要說明的是:以上所羅列的文件系統(tǒng)模塊大小是察看我現(xiàn)在使用的的下的模塊文件得到的實(shí)際編譯進(jìn)內(nèi)核大小會(huì)小一點(diǎn)因?yàn)槲覀冇迷趦?nèi)核源代碼目錄樹下

15、生成的內(nèi)核是經(jīng)過壓縮過的如果你對以上說的內(nèi)容不太明白也沒有關(guān)系,我會(huì)在下面的內(nèi)容中做詳細(xì)的說明2必,需編譯進(jìn)內(nèi)核的內(nèi)容首先,我們制作的這個(gè)小系統(tǒng)是基于一張軟盤的,因此,你的內(nèi)核必需支持軟盤另外對硬盤和的支持也是不可少的否則做出來的就沒有實(shí)用價(jià)值因?yàn)樗荒茉L問硬盤和光盤上的內(nèi)容這樣的雖然可以做的更小但是制造一個(gè)完全沒有用的東西是浪費(fèi)時(shí)間其他的包括等,如果你需要支持在字符界面下以高分辨率顯示,以看到更多的屏幕內(nèi)容,那么就必需把支持編譯進(jìn)內(nèi)核此外在高分辨率下使用的字體也必需編譯進(jìn)去否則即使你給內(nèi)核傳遞了參數(shù)內(nèi)核會(huì)因?yàn)闆]有可用的小字體而自動(dòng)轉(zhuǎn)跳到低分辨率模式下,這是以前困擾我好幾天想不明白的事情,后來

16、通過反復(fù)試驗(yàn)才明白原來是缺少字體的文體.這里我先大致提一下需要注意的事情在下一小節(jié)具體編譯時(shí)我會(huì)繼續(xù)就某些細(xì)節(jié)問題說明關(guān)于內(nèi)核的版本我是在系統(tǒng)下打造的小系統(tǒng)使用的是自帶的版的內(nèi)核為什么我不用最新的2.的6內(nèi)核?一開始我也企圖用最新的內(nèi)核,但是通過試驗(yàn)我發(fā)現(xiàn),在用最新的2.6內(nèi).核9的情況下我編譯一個(gè)的即所有內(nèi)容都選不支持任何硬件只有一個(gè)最基本的內(nèi)核最小化內(nèi)核就要左右如果我在這個(gè)基礎(chǔ)上再加入幾種文件系統(tǒng)和必要的驅(qū)動(dòng)那么內(nèi)核的大小就不能裝下一張的軟盤而我用的內(nèi)核編譯一個(gè)最小化的內(nèi)核只需要的大小如果優(yōu)化了參數(shù)他還能再小些這樣我就立即省下了多的空間在平時(shí)多的內(nèi)容微不足道但是在里這個(gè)數(shù)目是整個(gè)空間的相當(dāng)

17、于一個(gè)文件系統(tǒng)模塊的大小當(dāng)然我也嘗試了以及更老的內(nèi)核但是他們?nèi)鄙傥倚枰臇|西,因此最后權(quán)衡下來用2.的4內(nèi)核是比較合理的.如果你用的是內(nèi)核的系統(tǒng)那么最好還是去下載一個(gè)版的內(nèi)核有各個(gè)時(shí)期的內(nèi)核可以下載4不內(nèi)核的配置如果你對內(nèi)核的配置和編譯已經(jīng)很熟悉了請?zhí)^這一段直接看的編譯以身份登錄系統(tǒng)進(jìn)入目錄如果你下載了一個(gè)版本的內(nèi)核為了避免麻煩請將他拷貝到下然后接壓縮再做一個(gè)指向他的名為的鏈接雖然這并不是必需的但是根據(jù)我以往的經(jīng)驗(yàn)如果我把源代碼放在其他目錄下解開并編譯偶然會(huì)有一些莫名其妙的小問題發(fā)生如果是格式可以這樣解開為了方便做一個(gè)到目錄的連接進(jìn)入源代碼目錄清理源代碼樹運(yùn)行配置程序先選擇當(dāng)我們配置好常規(guī)的

18、東西要加入支持時(shí)再將這一項(xiàng)選擇因?yàn)樵谥兄С稚袑儆趯?shí)驗(yàn)性代碼如果不在選擇為將不能配置選擇為了簡化系統(tǒng)的制作我在這個(gè)項(xiàng)目中不選擇可加載內(nèi)核模塊的支持中選擇你需要的都能運(yùn)行那么請選擇類型如果你想讓老至新到的中選擇你需要的都能運(yùn)行那么請選擇類型如果你想讓老至新到的否則請按自己的實(shí)際情況選擇其他選項(xiàng)都選擇這些在中都是不需要的其他選項(xiàng)都選擇這些在中都是不需要的選擇選擇除非你不用設(shè)備不過一般人都是需要的因?yàn)楝F(xiàn)在網(wǎng)卡大部分是的選擇選擇選擇其余內(nèi)容都可以選擇如果有特殊需求比如的網(wǎng)卡是的那么請將相應(yīng)的內(nèi)容選上但是不能貪心時(shí)刻牢記我們能利用的空間只有內(nèi)核的大小絕不能超過任何不必要的東西都應(yīng)該從內(nèi)核中去除以上三個(gè)大項(xiàng)

19、中的所有內(nèi)容選擇以上幾項(xiàng)選擇其余全部選擇這里的選項(xiàng)比較重要,我想重點(diǎn)說明一下.對于軟盤的支持,那是不必說的,那是必備的即回環(huán)設(shè)備我們平時(shí)用命令掛裝光盤映象文件或者其他文件系統(tǒng)映象文件時(shí)就用到了內(nèi)核中的模塊,如果沒有編譯進(jìn)這個(gè)模塊,你將不能用上面的命令掛裝光盤映象和文件系統(tǒng)映象個(gè)人認(rèn)為這個(gè)功能是非常重要的,所以編譯了進(jìn)去.即內(nèi)存磁盤比較貼切的說法是虛擬磁盤即撥出一部分內(nèi)存當(dāng)做磁盤用這是制作項(xiàng)目中的核心內(nèi)容由于一張軟盤的空間有限的根文件系統(tǒng)是用壓縮法高度壓縮的在運(yùn)行時(shí)將解壓縮后的文件拷貝到一個(gè)運(yùn)行所以在運(yùn)行時(shí)你在根文件系統(tǒng)上的所有操作實(shí)際上是在內(nèi)存上進(jìn)行的.但是在形式上和在真正的磁盤上運(yùn)行一樣.只

20、不過放在上的所有內(nèi)容會(huì)在系統(tǒng)關(guān)機(jī)后全部消失不僅在運(yùn)行時(shí)用到我們在制作壓縮的根文件系統(tǒng)時(shí)也要用到學(xué)習(xí)的使用是做一個(gè)的重要目的之一在中還支持另外一種虛擬磁盤叫做這種虛擬磁盤機(jī)制比更加先進(jìn)的大小是固定的由編譯內(nèi)核時(shí)候的決定默認(rèn)為也可以在內(nèi)核裝載前加上參數(shù)來決定他的大小但是系統(tǒng)一旦啟動(dòng)的大小是不能改變的而的大小卻動(dòng)態(tài)的改變默認(rèn)情況下為物理內(nèi)存的一半制當(dāng)系統(tǒng)需要更多內(nèi)存的時(shí)制他就自動(dòng)縮小.系統(tǒng)內(nèi)存富余時(shí)制他自動(dòng)增大這樣可以充分靈活的利用內(nèi)存空間通常用來作為系統(tǒng)的磁盤高速緩存存放系統(tǒng)運(yùn)行中的臨時(shí)文件等的在默認(rèn)情況下都有的支持可以用和察看他的掛裝點(diǎn)和大小如下命令文件系統(tǒng)容量已用可用已用%掛載點(diǎn)雖然有這么多的

21、優(yōu)點(diǎn)我還是選擇了因?yàn)榭梢院芊奖愕卦谙到y(tǒng)啟動(dòng)的時(shí)候加載而卻沒那么容易下面就來講一下關(guān)于內(nèi)核啟動(dòng)時(shí)加載映象的相關(guān)內(nèi)容即初始化支持這個(gè)選項(xiàng)讓內(nèi)核有能力在內(nèi)核加載階段就能裝入并運(yùn)行其中的內(nèi)容否則只能在系統(tǒng)運(yùn)行階段用我們平時(shí)在編譯了一個(gè)新內(nèi)核后如果你的根文件系統(tǒng)用的是而你沒有把編譯進(jìn)內(nèi)核而只作為一個(gè)模塊編譯了那么就需要用命令做一個(gè)這個(gè)里放了的模塊這樣內(nèi)核在加載根文件系統(tǒng)前就能正確識(shí)別文件系統(tǒng)否則內(nèi)核加載的最后一步就會(huì)出現(xiàn)的錯(cuò)誤在項(xiàng)目中這個(gè)選項(xiàng)是必需的這里的作用是把解壓的根文件系統(tǒng)映象裝入這個(gè)選項(xiàng)不是必需的,但是我發(fā)現(xiàn)如果我不把這個(gè)功能編譯進(jìn)內(nèi)核,那么當(dāng)我在掛裝文件系統(tǒng)的時(shí)候會(huì)有些小問題,比如我不能以簡寫

22、的掛裝命令來掛裝文件系統(tǒng)我不確定到底是不是這個(gè)選項(xiàng)的關(guān)系但是把這個(gè)選項(xiàng)編譯進(jìn)內(nèi)核只增大一點(diǎn)點(diǎn)內(nèi)核空間,所以為了避免麻煩,我把他編譯了進(jìn)去.這兩個(gè)大項(xiàng)全部選擇因?yàn)樵趥€(gè)人用上及少牽涉到這兩項(xiàng)如果你真的有設(shè)備或者那么就自己摸索著配置一下吧這一大項(xiàng)中因只需要把下列項(xiàng)目編譯進(jìn)內(nèi)核對于這項(xiàng)如果你想重點(diǎn)把用做靜態(tài)路由軟件那么把這項(xiàng)編譯進(jìn)去而對于這一項(xiàng)沒有必要編譯進(jìn)去了因?yàn)闆]有提供工具來設(shè)置包過濾防火墻.同樣這項(xiàng)也不必選擇只有運(yùn)行的情況下才需要選這項(xiàng)選擇按鈕就被激活上請把控制芯片大多有莫名按鈕就被激活上請把控制芯片大多有莫名F面幾項(xiàng)請選擇其余都可以是如果你的內(nèi)核要運(yùn)行在一臺(tái)很老的或編譯進(jìn)去因?yàn)槟菚r(shí)候主板的其妙

23、的把這項(xiàng)編譯進(jìn)去會(huì)修復(fù)這個(gè)面幾個(gè)大項(xiàng)全部選擇這里可能有你想要的好東西比如接口驅(qū)動(dòng)但是在上意義不大而且我們的空間只有下面一個(gè)大項(xiàng):選擇這樣就可以支持網(wǎng)卡了其余都選擇然后點(diǎn)按鈕選擇你需要的網(wǎng)卡驅(qū)動(dòng)你可以把最常見的幾種等網(wǎng)卡編譯進(jìn)內(nèi)核雖然網(wǎng)卡的驅(qū)動(dòng)通常都很小但是不要太貪心選個(gè)就足夠了否則你的內(nèi)核就會(huì)一下子多出幾十在我先前編譯的內(nèi)核中我把網(wǎng)卡編譯了進(jìn)去是因?yàn)槲掖蛟斓臋C(jī)器上只有一塊那個(gè)芯片的網(wǎng)卡如果你發(fā)現(xiàn)你需要的網(wǎng)卡是灰色的然不能點(diǎn)然那么先確定他上一級(jí)的選項(xiàng)已經(jīng)點(diǎn)了比如你想選的網(wǎng)卡就必需先選擇如果還不能點(diǎn)那么請確定是否已經(jīng)把的支持選項(xiàng)選上了在里沒有的支持的網(wǎng)卡將不能選可能你是個(gè)有錢人在自己的上用千兆網(wǎng)卡

24、那么請?jiān)谇д拙W(wǎng)卡那一欄選擇接下來幾個(gè)大項(xiàng)全部選擇接下來的我將重點(diǎn)講述除了是很重要的一項(xiàng)他和一樣重要兩項(xiàng)其他全選接下來的我將重點(diǎn)講述除了是很重要的一項(xiàng)他和一樣重要兩項(xiàng)其他全選即虛擬終端這是一般必備選項(xiàng)否則你的啟動(dòng)后在屏幕看不到任何東西另外還負(fù)責(zé)鍵盤輸入信息等等只有在某些嵌入式應(yīng)用場合才會(huì)不要這個(gè)選項(xiàng)因?yàn)檫@些通常都不用操作在虛擬終端上的控制臺(tái).他支持在終端上各種信息的輸出,這也是必備的接下來的幾個(gè)大項(xiàng)全部選擇再接下來的那部分可是重頭戲喔這部分不用我太羅嗦了吧,自己需要支持什么就選什么.但是其中有三個(gè)是你必需選的:缺了他很多命令和軟件就不能運(yùn)行的基本文件系統(tǒng)除非你不想用光盤另外諸如磁盤限額的模式等就

25、不用編譯進(jìn)去了.這些東西意義不大,確要無端的增大內(nèi)核大小.請牢記一點(diǎn)編譯出來的內(nèi)核大小不要超過是不是看的很累啊我寫得更累別急內(nèi)核配置部分馬上要好了最后一個(gè)這是支持在字符模式下高分辨率顯示的內(nèi)核模塊前面三個(gè)全部選擇按鈕是灰色的不能選別急回到第一個(gè)大選項(xiàng)選擇就可以激活這個(gè)按鈕了面幾個(gè)選項(xiàng)需要選擇你也可以選擇其他的顯卡驅(qū)動(dòng)比如的但是和是通用性最好的只要不是幾十年前的黑白顯卡我只聽說過沒見過都兼容和因此為了制作好的的通用性請選擇這個(gè)驅(qū)動(dòng)這個(gè)一定要選否當(dāng)你給內(nèi)核傳遞參數(shù)讓在字符界面下高分辨率顯示的時(shí)候系統(tǒng)會(huì)因?yàn)檎也坏胶线m的小字體而返回到低分辨率模式好了所有內(nèi)核的配置工作到這里就全部完成了剩下的幾個(gè)大項(xiàng)全

26、部選就行了保存后退出配置程序會(huì)自動(dòng)生成一個(gè)隱藏的配置文件下面是我配置好的文件內(nèi)容如果你懶的自己去配置那么直接把這個(gè)拷貝到你的源代碼目錄下就能直接用了已經(jīng)去掉了開頭的注釋行編,譯內(nèi)核面是最后編譯結(jié)果我用上面的配置得到了一個(gè)的內(nèi)核下將他拷貝在編譯好的內(nèi)核放在下將他拷貝在一個(gè)安全的地方備用建立一個(gè)專放材料的目錄建立一個(gè)做根文件系統(tǒng)的目錄備份內(nèi)核七編譯簡介是一個(gè)集成了一百多個(gè)最常用命令和工具的軟件他甚至還集成了一個(gè)服務(wù)器和一個(gè)服務(wù)器而所有這一切功能卻只有區(qū)區(qū)左右的大小我們平時(shí)用的那些命令就好比是分力式的電子元件而就好比是一個(gè)集成電路,把常用的工具和命令集成壓縮在一個(gè)可執(zhí)行文件里,功能基本不變而大小卻小

27、很多倍在嵌入式應(yīng)用中有非常廣的應(yīng)用另外大多數(shù)發(fā)行版的安裝程序中都有的身影安裝的時(shí)候案就能得到一個(gè)控制臺(tái)而這個(gè)控制臺(tái)中的所有命令都是指向的鏈接的小身材大作用的特性給制作一張軟盤的帶來了及大方便的用法可以這樣用他的功能就相當(dāng)運(yùn)行命令最常用的用法是建立指向的鏈接不同的鏈接名完成不同的功能然后分別運(yùn)行這三個(gè)鏈接就可以分別完成了和命令的功能雖然他們都指向同一個(gè)可執(zhí)行程序但是只要鏈接名不同完成的功能就不同就是這么的神奇很多網(wǎng)站都提供的源代碼下載目前版本是正式版配,置的配置程序和方式配置內(nèi)核菜單配置方式簡直一模一樣熟悉用內(nèi)核的朋友很容易上手下面是需要編譯進(jìn)要太貪心的功能選項(xiàng)其他的可以根據(jù)需要自選但是同樣不應(yīng)

28、該選的選項(xiàng)這個(gè)選項(xiàng)是一定要選擇的這樣才能把編譯成靜態(tài)鏈接的可執(zhí)行文件運(yùn)行時(shí)才獨(dú)立于其他函數(shù)庫否則必需要其他庫文件才能運(yùn)行在單一個(gè)內(nèi)核不能使他正常工作這個(gè)選項(xiàng)也一定要選否則后將安裝在原系統(tǒng)的下這將覆蓋掉系統(tǒng)原有的命令選擇這個(gè)選項(xiàng)后后會(huì)在目錄下生成一個(gè)叫的目錄里面有和指向他的鏈接其他選項(xiàng)都是一些默認(rèn)的就可以了基本命令選項(xiàng)自己需要哪些命令就編譯進(jìn)去一般用配置好后退出并保存編譯并安裝編譯好后在目錄下生成子目錄里面的內(nèi)容其中可執(zhí)行文件月月月在目錄下其他的都是指向他的符號(hào)鏈接我編譯出來的可執(zhí)行文件是加上符號(hào)鏈接整個(gè)目錄是加上的內(nèi)核不是已經(jīng)超過了嗎別擔(dān)心我們將對整個(gè)根文件系統(tǒng)做大幅度的壓縮八,制作根文件系統(tǒng)

29、1基,本目錄結(jié)構(gòu)其中和是一定要建的和不用建因?yàn)橹幸呀?jīng)有了其他的可以象征性的建幾個(gè)就可以了拷貝建,立設(shè)備文件名你可以用手工建立也可以直接從原系統(tǒng)的目錄下拷貝過來手工建立的方法:月這樣就查看到了設(shè)備的主設(shè)備號(hào)是輔設(shè)備號(hào)是是一個(gè)標(biāo)記為的字符設(shè)備于是我們可以用建立一個(gè)同樣的設(shè)備文件但是手工方法建立太麻煩了通常直接從下把需要的設(shè)備文件拷貝過來這些設(shè)備文件是特殊文件在拷貝時(shí)一定要加上參數(shù)才能拷貝以下是我認(rèn)為需要的設(shè)備名其中等是必備的其它的等可以根據(jù)實(shí)際需要決定但是上表中的選擇是比較合理的即能滿足大部分的需要有沒有不用的設(shè)備浪費(fèi)空間注意千萬不要把下的設(shè)備全拷貝過來那將產(chǎn)生大約的目錄這對來說太大了建立目錄下的

30、配置文件其中是一個(gè)目錄從源其中是一個(gè)目錄從源-代1碼.目0錄0下拷貝過來是一個(gè)空文件其他文件的內(nèi)容如下其中有很多是從原系統(tǒng)的下拷貝過來修改的如果你是一個(gè)具有中等以上水平的愛好者那么應(yīng)該一看就明白了當(dāng)然你也可以根據(jù)自己的需要修改這些文件其中最重要的是和內(nèi)建的程序用到的文件的語法和一般的不一樣不能直接把原系統(tǒng)下文件拷貝過來可以把目錄下的示例文件拷貝過來修改用具體請看的文檔的也可以不用但是在我制作過程中有一個(gè)非常奇怪的所有下的鏈接在做成壓縮的根文件系統(tǒng)解壓后都不能正常運(yùn)行顯示找不到該命令只有當(dāng)我在下做這些鏈接時(shí)才能運(yùn)行具體原因還不太清除所以你需要做下面的工作查看到F有上述鏈接轉(zhuǎn)到下重新做這些鏈接然后

31、把下的鏈接刪除以節(jié)省空間再把原先中所有的改成下的文件請確保這個(gè)文件是可執(zhí)行的,否則請改成可執(zhí)行的的內(nèi)容ece+asalinuxandwindowsrescuedisk.Besidealecho-en+containedriversofReltek8139,NEethernettecho-en+adpater.canguretheIPaddressanech-oen+ifconanfdicgonftihgdeefaulgtatewwayitchommandroute.echoden+Isthereanythingelse?Haha,thisisateechoenapetelnetdartdita

32、ndthcanechoenouremohelpolvetechoeemeglreatfeaturesarepoweredby1.06mttechoensisafreesystemtooldevelopedbechoenpleaseechoenmatno2l:inu_1j3o.yc!o!mechoeneemamea可以自己作相應(yīng)的修改以上是a根文件系統(tǒng)的所有內(nèi)容他的總大小應(yīng)該在1左右read1.1M.九制作ramd映象文件a根文件系統(tǒng)所有東西都放在/a下r我們將利用ramd把這些內(nèi)容做成ramd映象文件并壓縮他以下主要是ramd的用法看完以下內(nèi)容你應(yīng)當(dāng)學(xué)會(huì)ramd的使用rootgucuiwenb

33、abylinux#ddif=/dev/zeroof=/dev/ram1dd:正在寫入/dev/ram1:設(shè)備上沒有空間讀入了8193+個(gè)0塊輸出了8192+個(gè)0塊er是一個(gè)特殊的設(shè)備表示全部為的字符塊上面這條命令的意思是把系統(tǒng)的第一個(gè)ramd用全部為的數(shù)據(jù)填充因?yàn)閞amd默認(rèn)大小為因此當(dāng)讀滿819個(gè)2塊(每塊512字節(jié))后,顯示設(shè)備上沒空間這.很正常,/dev/ram1已經(jīng)被填充滿了.如果指定塊的大小讀入了4+個(gè)0塊輸出了4+個(gè)0塊不會(huì)有錯(cuò)誤提示這里演示了的一般用法接下來還要頻繁用到命令在下有很多設(shè)備一般用第一個(gè)就可以了填充后就有可空間可以在這個(gè)空間上創(chuàng)見一個(gè)文件系統(tǒng)將掛裝到文件系統(tǒng)中先建立一個(gè)掛裝點(diǎn):掛上將先前做好的根文件系統(tǒng)拷貝到上

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論