畢業(yè)設(shè)計(論文)Linux內(nèi)核編譯論文_第1頁
畢業(yè)設(shè)計(論文)Linux內(nèi)核編譯論文_第2頁
畢業(yè)設(shè)計(論文)Linux內(nèi)核編譯論文_第3頁
畢業(yè)設(shè)計(論文)Linux內(nèi)核編譯論文_第4頁
畢業(yè)設(shè)計(論文)Linux內(nèi)核編譯論文_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要本文以linux-2.6.23內(nèi)核的編譯過程為例介紹了linux內(nèi)核的編譯方法,并對配置過程中的選項作了詳細注釋,力求將常用的、實用的功能注釋清楚。linux操作系統(tǒng)自從其誕生以來,就以其開放自由的精神,開放內(nèi)核源代碼的方式,得到了全世界程序愛好者的擁護與支持。學(xué)習(xí)linux,可以對計算機有一個較為整體的認(rèn)識,對于硬件與軟件如何配合工作等,一些操作系統(tǒng)的基本知識有一定的認(rèn)識。隨著電子類消費產(chǎn)品的不斷發(fā)展,嵌入式系統(tǒng)已經(jīng)成為一個研究的熱門方向,利用有限的資源構(gòu)造一個可以嵌入到其他產(chǎn)品中實現(xiàn)相應(yīng)功能的小型系統(tǒng)成為了一種主流的設(shè)計方法。在這些系統(tǒng)中,免費開放的linux成為了首選。學(xué)習(xí)內(nèi)核編譯

2、就是要根據(jù)應(yīng)用環(huán)境的條件和客戶的需求來訂制內(nèi)核。使得嵌入式系統(tǒng)更為高效、穩(wěn)定地運行。本文先對linux操作系統(tǒng)及其內(nèi)核、起源與發(fā)展等做一些背景知識介紹;而后對內(nèi)核編譯所需要的準(zhǔn)備條件、編譯的步驟與操作等做一定的說明;然后對內(nèi)核的配置選項中,一些比較常用的、實用的功能進行了注釋;而對于一些個人計算機中比較不需要的、少用的功能,則只做了概括性地說明。關(guān)鍵詞:linux、內(nèi)核編譯、內(nèi)核配置目錄摘 要1第一章 linux簡介31.1 linux簡介與特性31.2linux的發(fā)行版本5第二章linux內(nèi)核與內(nèi)核編譯72.1內(nèi)核簡介72.2內(nèi)核版本號72.3為什么要重新編譯內(nèi)核72.4內(nèi)核編譯前的準(zhǔn)備工作

3、82.5內(nèi)核編譯的步驟8第三章內(nèi)核配置注釋173.1code maturity level options(代碼成熟度選項)173.2 loadable module support (可加載模塊選項)183.3 processor type and features(處理器類型與特性)183.4 general setup(常用設(shè)置)193.5 parallel port support(并口支持)223.6 plug and play configuration(即插即用配置)223.7 block devices(塊設(shè)備)233.8 networking options(網(wǎng)絡(luò)選項)243

4、.9 telephony support(電話通信支持)273.10 scsi support(小型計算機系統(tǒng)接口支持)273.11 i20 device support(智能輸入輸出設(shè)備支持)283.12 network devices support(網(wǎng)絡(luò)設(shè)備支持)293.13 irda (infrared) support(配置紅外線(無線)通訊支持)303.14 isdn subsystem(綜合服務(wù)數(shù)字網(wǎng))303.15 old cd-rom drivers(not scsi not ide)(舊式光驅(qū)支持)303.16 input core support(輸入核心支持)303.17

5、 character devices(字符設(shè)備支持)313.18 multimedia devices(多媒體設(shè)備)333.19 files system support(文件系統(tǒng)支持)333.20 console drivers(控制臺設(shè)備)363.21 sound(聲音配置)363.22 usb support(通用串行總線架構(gòu)支持)37第一章 linux簡介1.1 linux簡介與特性linux是一套免費使用和自由傳播的類unix操作系統(tǒng),它速度快,運行穩(wěn)定,對硬件的配置要求低,兼具了其他操作系統(tǒng)的優(yōu)點,最關(guān)鍵是可以免費使用,所以近幾年內(nèi)linux得到了迅猛地發(fā)展。說到linux,不得不

6、提起unix。由于unix的龐大的支持基礎(chǔ)和發(fā)行系統(tǒng),使得它(指unix)成為世界范圍內(nèi)最有影響和最廣泛使用的操作系統(tǒng)之一。起初unix是作為小型機和大型機上的多任務(wù)系統(tǒng)而開發(fā)的,盡管它有一些含糊不清的接口和缺少標(biāo)準(zhǔn)化等缺點,但是它仍然很快地發(fā)展成為廣泛使用的操作系統(tǒng)。 許多計算機愛好者感到unix正是他們想要的東西。但是由于商業(yè)版unix非常昂貴,而且源代碼是有專利的,所以很難在計算機愛好者中廣泛使用。于是,出現(xiàn)這樣一群人,他們是一支由編成高手、業(yè)余計算機玩家、黑客們組成的奇怪隊伍,完全獨立地開發(fā)出一個在功能上毫不遜色于商業(yè)unix操作系統(tǒng)的全新免費unix操作系統(tǒng)linux。linux操作

7、系統(tǒng)在短短的幾年之內(nèi)得到了非常迅猛的發(fā)展,這與linux具有的良好特性是分不開的。linux包含了unix的全部功能和特性。簡單的說,linux具有以下主要特性: 1 開放性 開放性是指系統(tǒng)遵循世界標(biāo)準(zhǔn)規(guī)范,特別是遵循開放系統(tǒng)互連(osi)國際標(biāo)準(zhǔn)。凡遵循國際標(biāo)準(zhǔn)所開發(fā)的硬件和軟件,都能彼此兼容,可方便地實現(xiàn)互連。2 多用戶 多用戶是指系統(tǒng)資源可以被不同用戶各自擁有使用,即每個用戶對自己的資源(例如:文件、設(shè)備)有特定的權(quán)限,互不影響。linux和unix都具有多用戶的特性。 3 多任務(wù) 多任務(wù)是現(xiàn)代計算機的最主要的一個特點。它是指計算機同時執(zhí)行多個程序,而且各個程序的運行互相獨立。linux

8、系統(tǒng)調(diào)度每一個進程平等地訪問微處理器。由于cpu的處理速度非???,其結(jié)果是,啟動的應(yīng)用程序看起來好像在并行運行。事實上,從處理器執(zhí)行一個應(yīng)用程序中的一組指令到linux調(diào)度微處理器再次運行這個程序之間只有很短的時間延遲,用戶是感覺不出來的。 4 良好的用戶界面 linux向用戶提供了兩種界面:用戶界面和系統(tǒng)調(diào)用。linux的傳統(tǒng)用戶界面是基于文本的命令行界面,即shell,它既可以聯(lián)機使用,又可存在文件上脫機使用。shell有很強的程序設(shè)計能力,用戶可方便地用它編制程序,從而為用戶擴充系統(tǒng)功能提供了更高級的手段??删幊蘳hell是指將多條命令組合在一起,形成一個shell程序,這個程序可以單獨

9、運行,也可以與其他程序同時運行。系統(tǒng)調(diào)用給用戶提供編程時使用的界面。用戶可以在編程時直接使用系統(tǒng)提供的系統(tǒng)調(diào)用命令。系統(tǒng)通過這個界面為用戶程序提供低級、高效率的服務(wù)。linux還為用戶提供了圖形用戶界面。它利用鼠標(biāo)、菜單、窗口、滾動條等設(shè)施,給用戶呈現(xiàn)一個直觀、易操作、交互性強的友好的圖形化面。 5 設(shè)備獨立性 設(shè)備獨立性是指操作系統(tǒng)把所有外部設(shè)備統(tǒng)一當(dāng)作成文件來看待,只要安裝它們的驅(qū)動程序,任何用戶都可以象使用文件一樣,操縱、使用這些設(shè)備,而不必知道它們的具體存在形式。具有設(shè)備獨立性的操作系統(tǒng),通過把每一個外圍設(shè)備看作一個獨立文件來簡化增加新設(shè)備的工作。當(dāng)需要增加新設(shè)備時、系統(tǒng)管理員就在內(nèi)核

10、中增加必要的連接。這種連接(也稱作設(shè)備驅(qū)動程序)保證每次調(diào)用設(shè)備提供服務(wù)時,內(nèi)核以相同的方式來處理它們。當(dāng)新的及更好的外設(shè)被開發(fā)并交付給用戶時,操作允許在這些設(shè)備連接到內(nèi)核后,就能不受限制地立即訪問它們。設(shè)備獨立性的關(guān)鍵在于內(nèi)核的適應(yīng)能力。其他操作系統(tǒng)只允許一定數(shù)量或一定種類的外部設(shè)備連接。而設(shè)備獨立性的操作系統(tǒng)能夠容納任意種類及任意數(shù)量的設(shè)備,因為每一個設(shè)備都是通過其與內(nèi)核的專用連接獨立進行訪問。linux是具有設(shè)備獨立性的操作系統(tǒng),它的內(nèi)核具有高度適應(yīng)能力,隨著更多的程序員加入linux編程,會有更多硬件設(shè)備加入到各種linux內(nèi)核和發(fā)行版本中。另外,由于用戶可以免費得到linux的內(nèi)核源

11、代碼,因此,用戶可以修改內(nèi)核源代碼,以便適應(yīng)新增加的外部設(shè)備。 6 供了豐富的網(wǎng)絡(luò)功能 完善的內(nèi)置網(wǎng)絡(luò)是linux的一大特點。 linux在通信和網(wǎng)絡(luò)功能方面優(yōu)于其他操作系統(tǒng)。其他操作系統(tǒng)不包含如此緊密地和內(nèi)核結(jié)合在一起的連接網(wǎng)絡(luò)的能力,也沒有內(nèi)置這些聯(lián)網(wǎng)特性的靈活性。而linux為用戶提供了完善的、強大的網(wǎng)絡(luò)功能。支持internet是其網(wǎng)絡(luò)功能之一。linux免費提供了大量支持internet的軟件,internet是在unix領(lǐng)域中建立并繁榮起來的,在這方面使用linux是相當(dāng)方便的,用戶能用linux與世界上的其他人通過internet網(wǎng)絡(luò)進行通信。文件傳輸是其網(wǎng)絡(luò)功能之二。用戶能通過

12、一些linux命令完成內(nèi)部信息或文件的傳輸。遠程訪問是其網(wǎng)絡(luò)功能之三。linux不僅允許進行文件和程序的傳輸,它還為系統(tǒng)管理員和技術(shù)人員提供了訪問其他系統(tǒng)的窗口。通過這種遠程訪問的功能,一位技術(shù)人員能夠有效地為多個系統(tǒng)服務(wù),即使那些系統(tǒng)位于相距很遠的地方。7 可靠的系統(tǒng)安全 linux采取了許多安全技術(shù)措施,包括對讀、寫進行權(quán)限控制、帶保護的子系統(tǒng)、審計跟蹤、核心授權(quán)等,這為網(wǎng)絡(luò)多用戶環(huán)境中的用戶提供了必要的安全保障。8 良好的可移植性 可移植性是指將操作系統(tǒng)從一個平臺轉(zhuǎn)移到另一個平臺使它仍然能按其自身的方式運行的能力。linux是一種可移植的操作系統(tǒng),能夠在從微型計算機到大型計算機的任何環(huán)境

13、中和任何平臺上運行??梢浦残詾檫\行l(wèi)inux的不同計算機平臺與其他任何機器進行準(zhǔn)確而有效的通信提供了手段,不需要另外增加特殊的和昂貴的通信接口。1.2linux的發(fā)行版本一些組織或廠家為了方便用戶使用,將linux系統(tǒng)內(nèi)核與應(yīng)用軟件及文檔包裝在一起,并提供一些安裝界面和系統(tǒng)設(shè)定與管理工具,這就構(gòu)成了一個發(fā)行套件。相對于內(nèi)核版本,發(fā)行套件的版本號是隨著發(fā)布者的不同而不同,與系統(tǒng)內(nèi)核的版本號是相對獨立的。1、slackware linux 這是最早出現(xiàn)的linux發(fā)行套件。它比較適合有經(jīng)驗的linux老手,對于那些想學(xué)習(xí)系統(tǒng)是怎么工作的并想安裝和編譯他們自己的軟件的人說這是最好的。不過,現(xiàn)在使用這

14、一套件的人越來越少了。不建議大家使用。 2、redhat linux 這是最風(fēng)行的一種發(fā)行套件。其因為采用一個頭帶紅帽子的人作為吉祥物而得名。它一度成為linux的代名詞。它支持的硬件平臺多,具有優(yōu)秀的安裝界面,獨特的rpm升級方式,豐富的軟件包,安全性能好,方便的系統(tǒng)管理界面。這是很優(yōu)秀的一個套件?,F(xiàn)在最常見的有6.2、6.5、7.0、7.1四個版本,目前的最新版本是9(2005年5月),它比較穩(wěn)定。而本文所使用的linux就是redhat 9。3、debian linux 基于標(biāo)準(zhǔn)linux內(nèi)核,包含了數(shù)百軟件包,如gnu軟件,tex,x windows系統(tǒng)等。每一個軟件包均為獨立的模塊單

15、元,不依賴于任何特定的系統(tǒng)版本,每個人都能創(chuàng)建自己的軟件包。debian linux是一套非商業(yè)化的由眾多志愿者共同努力而成的linux。4、mandarke linux 它的圖標(biāo)是一個黑色的魔術(shù)帽,它其實參照了redhat的基礎(chǔ)上制成的,它繼承了許多redhat的優(yōu)點,還加上了許多迎合linux初學(xué)者的功能,如美麗的圖形化安裝界面。7.0版本開始走向成熟,贏得了不少用戶。而且現(xiàn)在剛推出的版本,使得mandarke一舉坐上了linux發(fā)行版第一的寶座。剛從windows中走出來的朋友,可以一試。挺不錯的。 5、bluepoint linux 這做得比較成功的一款中文linux發(fā)行版,藍點還是挺

16、有創(chuàng)新,挺挖得深的一個linux廠商。但是其穩(wěn)定性不是太好,比較適于桌面,而不適于做服務(wù)器。 6、turbo linux 一款做得還不錯的中文linux發(fā)行版,企業(yè)應(yīng)用推廣較好,逐漸成長為一個成熟的linux發(fā)行版。 7、紅旗linux (紅旗linux)是linux的一個發(fā)展產(chǎn)品,由中科紅旗軟件技術(shù)有限公司開發(fā)研制的以 intel和alpha芯片為cpu構(gòu)成的服務(wù)器平臺上第一個國產(chǎn)的操作系統(tǒng)版本。它標(biāo)志著我國在發(fā)展國產(chǎn)操作系統(tǒng)的道路上邁出了堅實的一步。 相對于windows操作系統(tǒng)及unix操作系統(tǒng)來講,linux憑借其開放性及低成本,已 經(jīng)在服務(wù)器操作系統(tǒng)市場獲得了巨大發(fā)展。但由于其操作界

17、面復(fù)雜,一時難以讓普通 pc用戶接受。gnome是gnu組織中專門開發(fā)桌面環(huán)境的項目。gnome作為開放源代碼的 軟件開發(fā)成果,基于兼容性良好的corba技術(shù),與linux系統(tǒng)相輔相成,帶給用戶更加 友好的界面,更多的使用、檢查、修改及分發(fā)自由。與同是開放源代碼圖形用戶界面 的kde相比較,gnome表現(xiàn)得更能減輕其他公司創(chuàng)建linux桌面應(yīng)用的勞動。gnome已經(jīng) 成為業(yè)內(nèi)人士普遍看好的一個趨勢性軟件。繼服務(wù)器版1.0、桌面版2.0、嵌入式linux之后,紅旗最近又推出了新產(chǎn)品-紅 旗服務(wù)器2.0和紅旗網(wǎng)絡(luò)商務(wù)通等多種發(fā)行版本和相關(guān)。第二章linux內(nèi)核與內(nèi)核編譯2.1內(nèi)核簡介內(nèi)核,是一個操

18、作系統(tǒng)的核心。它負責(zé)管理系統(tǒng)的進程、內(nèi)存、設(shè)備驅(qū)動程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。linux的一個重要的特點就是其源代碼的公開性,所有的內(nèi)核源程序都可以在/usr/src/linux下找到,大部分應(yīng)用軟件也都是遵循gpl而設(shè)計的,你都可以獲取相應(yīng)的源程序代碼。擁有了內(nèi)核的源程序意味著很多東西。首先,我們可以了解系統(tǒng)是如何工作的。通過通讀源代碼,我們就可以了解系統(tǒng)的工作原理,這在windows下簡直是天方夜譚。其次,我們可以針對自己的情況,量體裁衣,定制適合自己的系統(tǒng),這樣就需要重新編譯內(nèi)核。在windows下是不可能做到這一點的。再次,我們可以對內(nèi)核進行修改,以符合自己的需要。

19、這相當(dāng)于自己開發(fā)了一個操作系統(tǒng),但是大部分的工作已經(jīng)做好了,你所要做的就是要增加并實現(xiàn)自己需要的功能。在windows下,除非你是微軟的核心技術(shù)人員,否則就不用癡心妄想了。2.2內(nèi)核版本號由于linux的源程序是完全公開的,任何人只要遵循gpl,就可以對內(nèi)核加以修改并發(fā)布給他人使用。linux的開發(fā)采用的是集市模型(bazaar,與cathedral教堂模型對應(yīng)),為了確保這些無序的開發(fā)過程能夠有序地進行,linux采用了雙樹系統(tǒng)。一個樹是穩(wěn)定樹(stable tree),另一個樹是非穩(wěn)定樹(unstable tree)或者開發(fā)樹(development tree)。一些新特性、實驗性改進等都

20、將首先在開發(fā)樹中進行。如果在開發(fā)樹中所做的改進也可以應(yīng)用于穩(wěn)定樹,那么在開發(fā)樹中經(jīng)過測試以后,在穩(wěn)定樹中將進行相同的改進。一旦開發(fā)樹經(jīng)過了足夠的發(fā)展,開發(fā)樹就會成為新的穩(wěn)定樹。開發(fā)數(shù)就體現(xiàn)在源程序的版本號中;源程序版本號的形式為x.y.z:對于穩(wěn)定樹來說,y是偶數(shù);對于開發(fā)樹來說,y比相應(yīng)的穩(wěn)定樹大一個數(shù)(因此是奇數(shù))。下載內(nèi)核版本可訪問。2.3為什么要重新編譯內(nèi)核linux作為一個自由軟件,在廣大愛好者的支持下,內(nèi)核版本不斷更新。新的內(nèi)核修訂了舊內(nèi)核的bug,并增加了許多新的特性。如果用戶想要使用這些新特性,或想根據(jù)自己的系統(tǒng)度身定制一個更高效,更穩(wěn)定

21、的內(nèi)核,就需要重新編譯內(nèi)核。通常,更新的內(nèi)核會支持更多的硬件,具備更好的進程管理能力,運行速度更快、更穩(wěn)定,并且一般會修復(fù)老版本中發(fā)現(xiàn)的許多漏洞等,經(jīng)常性地選擇升級更新的系統(tǒng)內(nèi)核是 linux使用者的必要操作內(nèi)容。為了正確的合理地設(shè)置內(nèi)核編譯配置選項,從而只編譯系統(tǒng)需要的功能的代碼,一般主要有下面四個考慮:自己定制編譯的內(nèi)核運行更快(具有更少的代碼)系統(tǒng)將擁有更多的內(nèi)存(內(nèi)核部分將不會被交換到虛擬內(nèi)存中)不需要的功能編譯進入內(nèi)核可能會增加被系統(tǒng)攻擊者利用的漏洞將某種功能編譯為模塊方式會比編譯到內(nèi)核內(nèi)的方式速度要慢一些2.4內(nèi)核編譯前的準(zhǔn)備工作首先是對自己機上的比較重要的數(shù)據(jù)進行備份,之后安裝一

22、個linux系統(tǒng),本文以在虛擬機上安裝fedora 7為例。接下來要收集自身計算機上硬件的信息:如cpu類型、內(nèi)存容量、主板插槽以及相應(yīng)網(wǎng)卡、聲卡、顯卡的設(shè)備生產(chǎn)型號和相應(yīng)參數(shù)、顯示器型號、鼠標(biāo)鍵盤接口類型等所有設(shè)備。這些信息在內(nèi)核配置過程中需要使用。2.5內(nèi)核編譯的步驟備份完電腦的重要數(shù)據(jù)之后,就要進行l(wèi)inux的安裝。本文介紹的是在虛擬機上安裝fedora 7,首先先下載一個vmware 虛擬機,它的安裝跟普通軟件一樣。安裝完之后運行虛擬機,出現(xiàn)如下畫面。下面介紹fedora 7的安裝,由于過程比較簡單,只列出一些過程中的圖片和簡要說明。 放入光盤, 點擊vmware中的"sta

23、rt this virtual machine",此時啟動了此vm。進入了安裝步驟。檢查光盤介質(zhì),然后語言選英語,鍵盤為us美國。使用默認(rèn)分區(qū)分區(qū)情況 選擇grub作為引導(dǎo)程序,為以后進入編譯后的系統(tǒng)做準(zhǔn)備 配置網(wǎng)絡(luò),ipv4。自動配置ip時區(qū)亞洲上海 設(shè)置密碼 選擇安裝模式 等待上述安裝過程結(jié)束之后,重啟虛擬機,你便得到了一個新的系統(tǒng)。下面一步需要做的是下載內(nèi)核文件。linux內(nèi)核版本發(fā)布的官方網(wǎng)站是。下載的內(nèi)核源文件一般是 tar.gz或者是.bz2格式的,二者分別可以是用gzip或者bzip2進行壓縮的文件,使用時需要解壓縮。編譯內(nèi)核需要

24、root權(quán)限,以下操作都假定你是root用戶。請把你需要編譯的內(nèi)核拷貝到/usr/src/下(下文中以2.6.23的內(nèi)核的linux-2.6.23.tar.gz為例)原系統(tǒng)版本號可以用uname看到1. 解壓下載的源程序文件。運用命令tar zxvf linux-.tar.gz解壓下載的內(nèi)核文件。可以看到usr/src目錄下的文件。2. 清除冗余文件cd 在/usr/src/ linux-/ linux-目錄下執(zhí)行命令“make rmpoper”,它將刪除所有不穩(wěn)定的.o目標(biāo)文件(object)和附屬文件(dependencies)以及內(nèi)核配置文

25、件.config。如果是初次編譯,此步驟可以省略。3. 內(nèi)核配置在/usr/src/ linux-/ linux-目錄下執(zhí)行命令“make xcongfig”或者“make menucongfig”進行編譯項目的選擇。這涉及到很多配置選項的選擇,是整個內(nèi)核編譯的核心,將在下一章對各個選項進行詳細的注釋。菜單配置畫面如下。在這個界面中,有的讓您選擇*,有的讓您選擇m,有的讓你選擇,*表示選中直接加載進kernel,而m則表示會在后面的make modules中編譯成modules,以后可隨時通過insmod和modprobe調(diào)入內(nèi)核,表示不進行編譯。需要注意的是命

26、令“make xcongfig” 只適用于裝有x window system 的linux系統(tǒng)。在選項中,“y”表示將會把所選項目編譯并放入內(nèi)核中;“n”則表示相反;“m”指“可模塊化(module)”,表示系統(tǒng)會編譯它,但不會直接放入內(nèi)核中,而是做成可裝入模塊。當(dāng)用戶需要時可將它裝載入內(nèi)核中。配置完之后保存退出。4. 設(shè)置依賴關(guān)系完成配置之后保存退出,就可以開始編譯內(nèi)核了,在/usr/src/ linux-/ linux-目錄下執(zhí)行命令“make dep”來正確設(shè)定所有的附屬文件,以確保所有include file的依賴關(guān)系。5. 清理工作在/usr/src/

27、 linux-/ linux-目錄下執(zhí)行命令“make clean”,清除以前編譯出來的舊系統(tǒng)內(nèi)核與驅(qū)動程序。6. 編譯系統(tǒng)模塊make modules和make modules_install分別生成相應(yīng)的模塊和把模塊拷貝到需要的目錄中。depmod -a命令和編譯過程并沒有關(guān)系,它是生成模塊間的依賴關(guān)系,這樣你啟動新內(nèi)核之后,使用modprobe命令加載模塊時就能正確地定位模塊。這個過程需要較長的時間。7. 生成映像文件在2.6以前的版本中,編譯需要使用“make bzimage”語句,這條語句僅僅生成了內(nèi)核文件bzimage,后面還要將之拷貝到/boot目

28、錄下,修改grub.conf文件等工作,比較麻煩。而在最近的內(nèi)核發(fā)布版本中,只需要使用一個“make install”就可以把這些工作都搞定。這個過程比上面的模塊編譯時間更長一些,大概需要一個小時左右。編譯完成之后就可以在/usr/src/ linux-/下看到system.map文件。在/usr/src/ linux-/ linux-/arch/i386/boot下可以看到bzimage文件。在/root目錄下可以看到增加了system.map-,vmlinuz-和initrd-.img三個文件。

29、8. 重啟計算機重啟計算機,進入grub引導(dǎo)程序菜單后,即可看到新內(nèi)核的系統(tǒng)。選擇新內(nèi)核進入,可以利用uname看到內(nèi)核版本號已經(jīng)發(fā)生了變化,變?yōu)榱?。第三章?nèi)核配置注釋在這里只對一些常用的非專業(yè)需要的內(nèi)容進行了注釋,如一些比較少用的選項則不進行進一步的具體注釋。有些則是對一些涉及的內(nèi)容進行一定的基礎(chǔ)說明及簡介等,并不深入介紹相關(guān)的技術(shù)與內(nèi)容。這部分內(nèi)容是按照內(nèi)核的版本來進行的。3.1code maturity level options(代碼成熟度選項)prompt for development and/or incomplete code/drivers我們

30、從內(nèi)核的版本號就已經(jīng)知道內(nèi)核發(fā)展是兩條路線的,其中奇數(shù)號測試的內(nèi)容,如文件系統(tǒng)、驅(qū)動程序、網(wǎng)絡(luò)協(xié)議等,這些內(nèi)容被稱為alpha-test(阿爾法測試),你可以允許內(nèi)核的一些試驗選項(experimental options),但這些功能還不是很完整與安全,也存在一些漏洞與風(fēng)險。如果想使用這些功能的話,此選項就應(yīng)該選上。如果不是熱衷于新功能的測試與發(fā)展或有特殊用途,一般不選。3.2 loadable module support (可加載模塊選項)可加載模塊是指內(nèi)核代碼(kernel code)的一些片斷,比如驅(qū)動程序,當(dāng)編譯內(nèi)核的時候它們也被單獨編譯(make modules;make mod

31、ules_install)。因此,這些代碼不是內(nèi)核的一部分,但是當(dāng)你需要它的時候,它可以被加載并使用。通常的建議是如果可能,將內(nèi)核代碼編譯成可加載模塊,因為這樣可以使內(nèi)核更小,而且更穩(wěn)定。注意:有些選項不可以編譯成可加載模塊,例如文件系統(tǒng)(file system),若將此選項編譯成可加載模塊,結(jié)果將是內(nèi)核無法讀取它自己的文件系統(tǒng),然后內(nèi)核無法加載它自己的配置文件,一些很明顯是在正常啟動linux時所必需的東西。enable loadable modules support可加載模塊支持如果你有編譯可加載模塊,又想要使用它們的話,就要選上這個選項。set version information

32、on all symbols for modules設(shè)置模塊版本信息通常,當(dāng)你切換到其他內(nèi)核時模塊會被重新編譯,這里選上的話可以在你編譯一個新內(nèi)核后安全地重新使用原來的舊模塊,需要用到modprobe程序(模塊需要的軟件在documentation/changes中)。注意:如果你選此項但沒有g(shù)enksyms程序的話,你的內(nèi)核將無法建立。如果你的模塊是建立在沒有內(nèi)核的基礎(chǔ)上的話,這個選項會對你有幫助。通常用戶不選此項。kernel module loader support內(nèi)核模塊加載支持正常情況下你選擇了一些驅(qū)動程度或文件系統(tǒng)做為可加載模塊時,你在使用這些模塊之前也有必要加載相應(yīng)的模塊(通過

33、程序insmod或者modprobe)。這里選此項的話,內(nèi)核將會自動為自身加載模塊:當(dāng)部分內(nèi)核需要模塊時,它會根據(jù)相應(yīng)參數(shù)調(diào)用modprobe程序加載可用的模塊。通常此項應(yīng)選上。3.3 processor type and features(處理器類型與特性)processor family處理器類型選擇這里的選項包括:386,486,586/k5/5x86/6x86/6x86mx,pentium-classic, pentium-mmx, pentium-pro/celeron/pentium-ii,pentium-iii/celeron(coppermine), pentium-4,k6/

34、k6-ii/k6_iii, athlon/duron/k7,crusoe, winchip-c6, winchip-2, winchip-2a/ winchip-3, cyrixiii/c3,根據(jù)自己的cpu類型進行選擇。toshiba laptop support這個選項是針對toshiba筆記本的,可以用來訪問toshiba的系統(tǒng)管理模式,也就是可以直接設(shè)置bios。不過要注意它只在toshiba自己的 bios中起作用。dell inspiron 8000 support戴爾處理器支持,與上一項基本相同。/dev/cpu/microcode intel ia32 cpu microcod

35、e suppot這個選項將讓你可以更新intel ia32系列處理器的微代碼,當(dāng)然你還必須在文件系統(tǒng)選項中選擇devfs才能正常的使用它。如果你把它譯為模塊,則還需要在modprobe.conf中加上這一行alias char-major-10-184 microcode。 內(nèi)核本身并不帶有微代碼的二進制文件。/dev/cpu/*/msr model-specific register support這個選項桌面用戶一般用不到,它主要用在intel的嵌入式cpu中的,這個寄存器的作用也依賴與不同的cpu類型而有所不同,一般可以用來改變一些cpu原有物理結(jié)構(gòu)的用途,但不同的cpu用途差別也很大。

36、/dev/cpu/*/cupid cpu information support這會在/dev/cpu中建立一系列的設(shè)備文件,讓進程去訪問指定的cpu。high memory support大容量內(nèi)存支持可以支持4g、64g,用戶根據(jù)自身機器硬件選擇。現(xiàn)在流行pc內(nèi)存容量多為256m或512m,所以此項一般選為off。math emulation數(shù)學(xué)協(xié)處理器仿真在你的cpu上如果沒有數(shù)學(xué)協(xié)處理器的話,打開這個選項可以讓內(nèi)核模擬一個,以提升浮點計算能力。協(xié)處理器是386時代的產(chǎn)物,現(xiàn)在大多數(shù)處理器已經(jīng)內(nèi)嵌了浮點運算功能,此選項一般不選。mttr (memory type range regist

37、er)support內(nèi)存類型范圍寄存器在intel p6家族的處理器中(ppro、 pii和更新的)有一個內(nèi)存類型范圍寄存器,可用來控制處理器訪問的內(nèi)存范圍。打開它一般可以提升顯卡的顯示性能,運行x windows等,所以可以選上此項。symmetric multi-processing support對稱多處理器支持如果你裝有對稱多處理器,則應(yīng)選上此項。如果是多處理器而又不選此項,則系統(tǒng)會只使用其中的一個處理器。注意:如果你選了此項,并在之前的processor family中選擇了586或pentium,則內(nèi)核不會在486架構(gòu)上運行。類似地,基于ppro架構(gòu)的多處理器內(nèi)核可能無法工作在所有

38、pentium主板上。若選此項,在接下來的enhanced real time clock support也應(yīng)選上,而advanced power management則變?yōu)椴豢蛇x。一般單處理器用戶不選此項local apic support on uniprocessors內(nèi)嵌高級可編程中斷控制器apic是advanced programmable interrupt controller(高級可編程中斷控制器)的縮寫。如果你的cpu中集成了這個控制器,選上此項的話就可以激活和使用該功能。若你用的是多處理器,則此項不必選,因為系統(tǒng)會自動使用這項功能。3.4 general setup(常用設(shè)

39、置)這里是最普通的一些屬性與性能的設(shè)置。networking support網(wǎng)絡(luò)支持linux的發(fā)展離不開網(wǎng)絡(luò),因此此項一般選上。注意:對于部分不能上網(wǎng)的用戶,也建議選上此項,因為內(nèi)核中的一些功能會與網(wǎng)絡(luò)設(shè)置有關(guān)聯(lián),若不選可能會使內(nèi)核工作不穩(wěn)定。pci support周邊元件擴展接口支持pci是peripheral component interconnect的縮寫?,F(xiàn)今絕大多數(shù)主板都使用pci插槽,此項一般選上。pci access modepci存取模式檢測pci插槽上的硬件設(shè)備信息。有三個選擇:bios、direct和any,前兩項分別對應(yīng)兩種不同的存取方式。選any系統(tǒng)將優(yōu)先使用mmc

40、onfig,然后使用bios,最后使用direct檢測pci設(shè)備。此項建議選any。pci device name databasepci設(shè)備的名稱數(shù)據(jù)庫將pci設(shè)備的名稱數(shù)據(jù)庫整合到內(nèi)核,以便在/proc/pci中提供設(shè)備名稱。視自身情況而選擇。eisa support 擴展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)支持eisa是extended industry standard architecturer的縮寫,是isa是高級版本。有些主板現(xiàn)在還有這類插槽,但已經(jīng)逐漸被淘汰,視自身主板設(shè)備情況而選擇。mca support微通道結(jié)構(gòu)支持mca是microchannel architecture的縮寫。也是逐漸被淘汰的

41、插槽,視自身主板設(shè)備情況而選擇。support for hot-pluggabel devices熱插拔設(shè)備支持一般來講只有服務(wù)器上會有熱插拔的設(shè)備,如果你使用的是臺式機,你可以不選擇此項并跳過這一部份。pcmcia/cardbus support pcmcia插槽支持pcmcia是personal computer memory card international association的縮寫,是一個電腦制造商的公會。它們制定了使用在筆記型電腦上信用卡狀的通用轉(zhuǎn)接卡的型式。如果你的是筆記本移動電腦,并有這樣的插槽,則應(yīng)選上此選項。對于臺式機則不必選。若選擇了的話,就會有如下芯片組擴展選項:

42、cardbus yenta-compatible bridge support (new)i82092 compatible bridge supporti82365 compatible bridge supportdatabook tcic host bridge support不同產(chǎn)家的pcmcia芯片的驅(qū)動支持,如果你知道你的筆記本用的是什么芯片組的話,可以只選它而不選其它的。要是你不知道可以全部地選上,然后用modprobe一種一種的試。注意:16-bit pcmcia support,16位的pcmcia總線支持,32-bit cardbus support,32位的pcmcia總

43、線支持,通常也叫pcmcia ii總線,pci hotplug supportpci熱挺拔支持,如果你需要常更換pci插槽上的硬件,則此項應(yīng)選。system v ipc進程間通訊為進程提供通信機制,這將使系統(tǒng)中各進程間有交換信息與保持同步的能力。有些程序只有在選上的情況下才能運行,所以不用考慮,這里一定要選。bsd process accounting 這里選擇將會讓內(nèi)核為用戶層的進程建立一個帳目(進程通過一個特殊的系統(tǒng)調(diào)用來通知內(nèi)核),當(dāng)程序退出時內(nèi)核會將進程的相關(guān)信息記錄到帳目文件中,主要包括進程的創(chuàng)建時間、 創(chuàng)建者,內(nèi)存占用等信息。如果用戶需要就選上。注意:bsd是一種軟件許可證,是be

44、rkeley source distribution的縮寫。system v和bsd是unix發(fā)展的兩個不同的分支。redhat屬于system v分支。sysctl support 這將提供一個接口讓你可以動態(tài)的更改一些核心參數(shù)與變量,而不需要重新啟動系統(tǒng)。如果你的內(nèi)核僅用制作安裝與恢復(fù)系統(tǒng)系統(tǒng)盤,那么可以不選,以減少對內(nèi)存的占用。kernel core (/proc/kcore) format此處可選elf或是a.out兩種格式。kernel support for a.out binaries這是早期unix系統(tǒng)的可執(zhí)行文件格式,目前已經(jīng)被elf格式取代,kernel support f

45、or elf binarieself是開放平臺下最常用的二進制文件,它支持不同的硬件平臺。elf是excutive linked file的縮寫,是一種為linux系統(tǒng)所采用的通用文件格式,支持動態(tài)連接。kernel support for misc binaries此選項允許插入二進制的封裝層到內(nèi)核中,當(dāng)使用java、.net、python、lisp等語言編寫的程序時非常有用。power management support電源管理支持如果你想讓你的linux支持高級電源管理(也就是平常我們說的軟關(guān)機、系統(tǒng)休眠等)需要選擇它,特別是筆記本電腦。advanced power managemen

46、t bios support高級電源管理biod支持一般來說筆記本應(yīng)該選上,臺式機可以不選。apm為advanced power management的縮寫。接下來有一些細節(jié)選項:ignore user suspend只有nec versa m系列的筆記本需要選擇這一項。enable pm at boot time啟動時支持電源管理,選上這個選項能讓系統(tǒng)自動的進行電源管理,除非在啟動時死機,才不要選這項。make cpu idle calls when idle系統(tǒng)空閑時調(diào)用空閑指令。只有老式的cpu才用這項。其實調(diào)用空閑指令還是讓cpu執(zhí)行了一條指令。這個選項在內(nèi)核循環(huán)中調(diào)用空閑指令。ena

47、ble console blanking using apm支持關(guān)閉監(jiān)視器。據(jù)說這項功能對所有的筆記本都無效。如果按建議配置,系統(tǒng)是能自動休眠的(使用acpi)。用戶則不用擔(dān)心顯示器一直亮著的。rtc stores time in gmt按unix的標(biāo)準(zhǔn),real time clock硬件的時鐘應(yīng)該設(shè)為greenwich mean time(格林尼治標(biāo)準(zhǔn)時間)。各時區(qū)定不同,不必統(tǒng)一,因此不用選上。allow interrupts during apm bios calls允許apm的bios調(diào)用時中斷。多數(shù)的機器不需要這項,thinkpad(ibm公司生產(chǎn)的筆記本電腦)的一些新機器需要這項。

48、如果休眠時掛機(包括休眠下去就醒不來),再把這項選上。use real mode apm bios call to power off建議最好選上此項,保證軟件關(guān)機。注意:如果既選擇了acpi又選擇了apm,先加載的將被使用。3.5 parallel port support(并口支持)如果你想使用連接到你計算機上的并口設(shè)備(計算機外部的25針的那種接口)如打印機、zip(一種程序的檔案文件格式)驅(qū)動、plid(parallel line internet protocol)連接(主要用于通過連接兩個本地計算機的并口而組成的一個小型計算機網(wǎng)絡(luò)),則應(yīng)選上此選項。將幾個不同設(shè)備共享一個并口是可行

49、的,將相應(yīng)設(shè)備的程序編譯進內(nèi)核也是安全的。pc-style hardware(new)如果你有pc-style并口,則應(yīng)選上。所有的ibm兼容機和部分alphas機有這種并口。support foreign hardware(new)如果你想加載驅(qū)動模塊以支持其它非標(biāo)準(zhǔn)并口類型,則應(yīng)選上些選項。不過這將導(dǎo)致一定程度的失真。因此大部分用戶不選此選項。ieee1284 transfer modes(new)如果你有一個支持狀態(tài)回讀功能或id設(shè)備的打印機,或想使用一個支持并口傳輸模式的設(shè)備如epp或ecp,選此項則可以使用高級ieee1284傳輸模式。3.6 plug and play config

50、uration(即插即用配置)plug and play supportplug and play(pnp)是一個允許軟件配置外設(shè)的標(biāo)準(zhǔn),如分配irq(中斷請求)或其它參數(shù)??ㄉ喜恍枰€,而是通過bios、操作系統(tǒng)或一個用戶可用空間來給卡提供信息。選此項則可以使你的linux系統(tǒng)配置即插即用設(shè)備。你也必須選以下的“isa plug and play support”。另外的選擇,不選些選項,可以通過isapnptools軟件包里的用戶可用空間來配置你的即插即用設(shè)備。isa plug and play support如果你想使用isa即插即用設(shè)備,則應(yīng)選此選項。3.7 block device

51、s(塊設(shè)備)normal pc floppy disc support如果你想在linux環(huán)境下使用軟驅(qū),則應(yīng)選上此選項。xt hard disc support非常老的8位硬盤控制器,在過去的ibm型xt電腦中使用過,如果用戶有這種則選上此選項。compaq smart2 support康柏公司出產(chǎn)的智能陣列控制器,根據(jù)用戶自身情況選擇。compaq smart array 5xxx support康柏公司出產(chǎn)的智能5xxx陣列控制器,根據(jù)用戶自身情況選擇。mylex dac960/dac1100 pci raid controller supportraid是英文redundant arr

52、ay of independent disks的縮寫,中文意思是“獨立磁盤冗余陣列”,有時也簡稱磁盤陣列(disk array)。如果你機上有mylex dac 960、acceleraid、extreme raid pci raid控制器的話,則選上些選項。一般用戶不選。loopback device support選上此項可以讓你像使用塊設(shè)備一樣使用一個常規(guī)文件,你還可以在那個塊設(shè)備上創(chuàng)建一個文件系統(tǒng),并且可以像加載其它塊設(shè)備(如硬盤、光驅(qū)、軟驅(qū))一樣加載它。環(huán)設(shè)備是特殊塊設(shè)備文件,主要以7表示,典型地寫為/dev/loop0,/dev/loop1或其它。這對于你想在燒錄cd之前檢查一個i

53、so9660文件系統(tǒng)很有幫助,或想使用軟驅(qū)鏡像而不是先將內(nèi)容寫進軟驅(qū),另外,一些linux版本通過使用這種環(huán)設(shè)備驅(qū)動而保存它們完整的根目錄文件系統(tǒng)到一個dos fat文件中,避免了建立一個專用linux分區(qū)的需要。network block device support選上此項功能,可以使你的計算機成為網(wǎng)絡(luò)塊設(shè)備中的一個客戶端,特別地,它將通過服務(wù)器(加載文件系統(tǒng)到它們)使用塊設(shè)備。客戶端與服務(wù)器通過tcp/ip協(xié)議連接,但對于客戶端軟件隱藏,這看起來像一個本地機器上的常規(guī)文件如/dev/nd0,若不確定則可以不選。ram disc support選上此項功能,可以使你機上的部分內(nèi)存當(dāng)作一個塊

54、設(shè)備,這樣你就可以在此空間上創(chuàng)建文件系統(tǒng)、讀寫數(shù)據(jù),做所有的塊設(shè)備(如硬盤)上可以做的操作。這常用來從軟驅(qū)到內(nèi)存加載或存儲一個很小的根文件系統(tǒng),在初始化或安裝linux時使用。絕大多數(shù)用戶不需要此項功能,因此可以不選。3.8 networking options(網(wǎng)絡(luò)選項)packet socket 選上此項,則一些應(yīng)用程序?qū)⑹褂胮acket協(xié)議直接同網(wǎng)絡(luò)設(shè)備通訊,而不通過內(nèi)核中的其它中介協(xié)議。packet socket: mmapped io 此項可以使packet協(xié)議驅(qū)動程序使用一個io體系,加快網(wǎng)絡(luò)通信,如不確定的話,可以不選。kernel/user netlink socket 這個驅(qū)

55、動程序可以讓內(nèi)核與用戶進程使用雙通道通信,它通過創(chuàng)建一個新的socket體系,pf_netlink,通過這個socket,內(nèi)核可以發(fā)送和接收帶信息的數(shù)據(jù)報文。到上前為止,如你選上接下來的擴展選項“routing messages (new)”的話,內(nèi)核可以使用這一特性發(fā)布一些與網(wǎng)絡(luò)想著的信息。如果你想用arpd的daemon來保持arp內(nèi)部緩存(在局域網(wǎng)中同步ip地址與硬件地址)足夠小。選擇此項后會擴展出兩個選項:routing messages (new)如果你想用iproute2接收路由器信息的話,就選上。netlink device emulateion (new)任何想使用字符串的如/

56、dev/tap0或/dev/route的程序應(yīng)選上些選項。不過這個選項會很快將被real netlink socket取代。network packet filtering (replaces ipchains)netfilter是一個通過你機上的linux過濾與壓縮網(wǎng)絡(luò)數(shù)據(jù)包的架構(gòu)。數(shù)據(jù)包過濾最常用的情況是作為局域網(wǎng)內(nèi)的一個防火墻使用。內(nèi)核提供與支持的防火墻稱為“數(shù)據(jù)包過濾器”,它可以攔截基于類型、源對象、目標(biāo)對象等的個人網(wǎng)絡(luò)數(shù)據(jù)包。另一種防火墻是proxy-based,它更安全,但建立起來也更繁瑣更復(fù)雜。proxy-based能更緊密地檢測網(wǎng)絡(luò)傳輸,它能支持更高級的網(wǎng)絡(luò)協(xié)議,而數(shù)據(jù)包過濾器

57、不具備此功能。而且,proxy-based防火墻常需要根據(jù)本地客戶端程序而作改變,它不需要內(nèi)核支持,只有當(dāng)你將此項編譯進內(nèi)核時,它才可與數(shù)據(jù)包過濾器一起工作。此項可以作為沒有ip地位子機的網(wǎng)關(guān),當(dāng)子機需要向外部網(wǎng)發(fā)信息時,像是網(wǎng)關(guān)在發(fā)送而不是子機在發(fā)送一樣。它有兩種方式:一是向外部網(wǎng)發(fā)送信息且得到回應(yīng)時,子機不會被識別,只認(rèn)為是響應(yīng)網(wǎng)關(guān)發(fā)送的信息;二是作為一個暫時的代理服務(wù)器。注意:如果想讓你的計算機作路由器的話,此選項應(yīng)選上。選上此選項后還有一個擴展選項:network packet filtering debugging (new)用于調(diào)試作用的。socket filtering linux socket filter來源于berkeley的packet filter,選此項則可以使用戶空間程序添加過濾器到任何類型的socket,并且告訴內(nèi)核哪些類型數(shù)據(jù)應(yīng)該過濾。linux socket filter除了tcp插口類型外都支持。若

溫馨提示

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

評論

0/150

提交評論