版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Linux內(nèi)核移植所謂Linux內(nèi)核移植就是把Linux操作系統(tǒng)針對(duì)具體的目標(biāo)機(jī)做必要裁剪之后,安裝到目標(biāo)機(jī)使其正確的運(yùn)行起來(lái)。這個(gè)概念目前在嵌入式開發(fā)領(lǐng)域流傳比較廣泛。嵌入式Linux移植是指對(duì)Linux經(jīng)過(guò)小型化裁剪后,能夠固化在容量只有幾K字節(jié)或幾十K字節(jié)的存儲(chǔ)器芯片或單片機(jī)中,應(yīng)用于特定嵌入式場(chǎng)合的專用Linux操作系統(tǒng)。選擇Linux內(nèi)核內(nèi)核(kernel)是所有Linux系統(tǒng)的主要軟件組件。內(nèi)核既是操作系統(tǒng)的心臟,也是它的大
2、腦,因?yàn)閮?nèi)核控制著基本的硬件。內(nèi)核是操作系統(tǒng)的核心,具有很多最基本功能,如虛擬內(nèi)存、多任務(wù)和TCPIP網(wǎng)絡(luò)等功能。Linux內(nèi)核本身并不是操作系統(tǒng),它是一個(gè)完整操作系統(tǒng)的組成部分。RedHat、Novell、Debian和Gentoo等Linux發(fā)行商都采用Linux內(nèi)核,然后加入更多的工具、庫(kù)和應(yīng)用程序來(lái)構(gòu)建一個(gè)完整的操作系統(tǒng)。Linux內(nèi)核移植前準(zhǔn)備對(duì)于嵌入式Linux系統(tǒng)來(lái)說(shuō),有各種體系結(jié)構(gòu)的處理器和硬件平臺(tái),并且用戶需要根據(jù)需求
3、自己定制硬件板。只要是硬件平臺(tái)發(fā)生變化,即使非常小,可能也需要做一些移植工作。內(nèi)核移植是嵌入式Linux系統(tǒng)中最常見的一項(xiàng)工作。當(dāng)然,移植嵌入式Linux系統(tǒng)并不意味著該內(nèi)核使用了任何特定的鏈接庫(kù)或用戶工具,建立嵌入式系統(tǒng)并不需要特別的內(nèi)核。嵌入式系統(tǒng)中使用的內(nèi)核與工作站或服務(wù)器上使用的內(nèi)核主要的不同在于內(nèi)核的配置方面。Linux內(nèi)核移植是在Linux原內(nèi)核基礎(chǔ)上,通過(guò)對(duì)平臺(tái)的選擇設(shè)計(jì)來(lái)實(shí)現(xiàn)針對(duì)特定系統(tǒng)的內(nèi)核版本。Linux內(nèi)核的移植包
4、含啟動(dòng)代碼的修改、內(nèi)核的鏈接及裝入、參數(shù)傳遞、內(nèi)核引導(dǎo)幾個(gè)部分。其基本過(guò)程如下:(1)首先,獲取某一版本的Linux內(nèi)核源碼,根據(jù)具體目標(biāo)平臺(tái)對(duì)源碼進(jìn)行必要的改寫(主要是修改體系結(jié)構(gòu)相關(guān)部分);(2)然后添加一些外設(shè)的驅(qū)動(dòng)(如網(wǎng)卡驅(qū)動(dòng),USB驅(qū)動(dòng)),打造一款適合于目標(biāo)平臺(tái)(可以是嵌入式便攜設(shè)備也可以是其它體系結(jié)構(gòu)的PC機(jī))的新操作系統(tǒng),也就是常說(shuō)的內(nèi)核配置或內(nèi)核定制;(3)對(duì)該系統(tǒng)進(jìn)行針對(duì)目標(biāo)平臺(tái)的交叉編譯,生成一個(gè)內(nèi)核映象文件(如zI
5、mage,uImage,bzImage);(4)最后通過(guò)一些手段(如TFTP)把該映象文件燒寫到目標(biāo)平臺(tái)中。個(gè)目錄下的各個(gè)體系結(jié)構(gòu)目錄中。init:內(nèi)核初始化代碼。包括main函數(shù)也是在這個(gè)目錄下實(shí)現(xiàn)的。ipc:進(jìn)程間通信的代碼。kernel:內(nèi)核的最核心部分,包括進(jìn)程調(diào)度、定時(shí)器等,和平臺(tái)相關(guān)的一部分代碼放在archkernel目錄下。lib:各種庫(kù)文件代碼。mm:內(nèi)存管理代碼,和平臺(tái)相關(guān)的一部分代碼放在archmm目錄下。:網(wǎng)絡(luò)相關(guān)
6、代碼,實(shí)現(xiàn)了各種常見的網(wǎng)絡(luò)協(xié)議。s:用于配置內(nèi)核文件的腳本文件。security:主要是一個(gè)SELinux的模塊。sound:常用音頻設(shè)備的驅(qū)動(dòng)程序等。usr:用戶的代碼。在以上布局中,linux內(nèi)核主要分為特定于體系結(jié)構(gòu)的部分和與體系結(jié)構(gòu)無(wú)關(guān)的部分。在Linux啟動(dòng)的第一階段,內(nèi)核與體系結(jié)構(gòu)相關(guān)部分(arch目錄下)首先執(zhí)行,在這部分它要做的工作有:內(nèi)核解壓縮、解壓縮內(nèi)核重定位;內(nèi)存硬件初始化檢測(cè);參數(shù)表的分析;初始化頁(yè)表目錄的制作等
7、工作,然后把控制權(quán)轉(zhuǎn)給內(nèi)核中與系統(tǒng)結(jié)構(gòu)無(wú)關(guān)部分。所以操作系統(tǒng)內(nèi)核移植中要改動(dòng)的代碼主要集中在與體系結(jié)構(gòu)相關(guān)的啟動(dòng)初始化部分。從上面的目錄結(jié)構(gòu)介紹可知,如果要添加新的開發(fā)板或者尋找體系結(jié)構(gòu)相關(guān)的文件首先就是到arch目錄下去尋找。在arch目錄中我們可以看到有許多子目錄,它們往往是用芯片命名的,表示是針對(duì)該芯片體系結(jié)構(gòu)的代碼。為ARM系列芯片編譯內(nèi)核,就應(yīng)修改ARM目錄下的相關(guān)文件。內(nèi)核配置及方法Linux內(nèi)核源代碼支持二十多種體系結(jié)構(gòu)的
8、處理器,還有各種各樣的驅(qū)動(dòng)程序等選項(xiàng)。因此,在編譯之前必須根據(jù)特定平臺(tái)配置內(nèi)核源代碼。Linux內(nèi)核有上千個(gè)配置選項(xiàng),配置相當(dāng)復(fù)雜,所以,Linux內(nèi)核源代碼組織了一個(gè)配置系統(tǒng)。配置系統(tǒng)主要包含Makefile、Kconfig和配置工具。它可以生成內(nèi)核配置菜單,方便內(nèi)核配置。配置界面是通過(guò)工具來(lái)生成的,工具通過(guò)Makefile編譯執(zhí)行,選項(xiàng)則是通過(guò)各級(jí)目錄的Kconfig文件定義。頂層目錄的Makefile是整個(gè)內(nèi)核配置編譯的核心文件,
9、整體管理Linux內(nèi)核的配置編譯,負(fù)責(zé)組織目錄樹中子目錄的編譯管理,其定義了配置和編譯的規(guī)則,還可以設(shè)置體系結(jié)構(gòu)和版本號(hào)等。Kconfig文件是Linux2.6內(nèi)核引入的配置文件,是內(nèi)核配置選項(xiàng)的源文件。內(nèi)核源碼中的Documentationkbuildkconfiglanguage.txt文檔有詳細(xì)說(shuō)明。對(duì)內(nèi)核進(jìn)行配置的方法有好幾種,而且配置時(shí)需要對(duì)許多選項(xiàng)進(jìn)行選擇。不管用哪種方法來(lái)配置,或者選擇哪些配置選項(xiàng),在配置好之后,內(nèi)核都會(huì)產(chǎn)
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- ucos的內(nèi)核移植課程設(shè)計(jì)
- linux_內(nèi)核移植方法及錯(cuò)誤
- SPARC結(jié)構(gòu)與實(shí)時(shí)內(nèi)核移植.pdf
- Linux內(nèi)核移植與USB驅(qū)動(dòng)開發(fā).pdf
- Nucleus內(nèi)核移植技術(shù)研究及應(yīng)用.pdf
- 基于arm7tdmi的μclinux內(nèi)核移植的proteus仿真
- Linux 內(nèi)核移植及無(wú)線網(wǎng)卡驅(qū)動(dòng)程序的開發(fā).pdf
- 基于ARM的嵌入式系統(tǒng)內(nèi)核移植及實(shí)時(shí)性研究.pdf
- 嵌入式Linux操作系統(tǒng)內(nèi)核移植的研究與實(shí)踐.pdf
- 基于CK810的Linux內(nèi)核移植profiling驅(qū)動(dòng)開發(fā)及加密應(yīng)用.pdf
- Linux內(nèi)核移植與USB無(wú)線網(wǎng)卡驅(qū)動(dòng)的研究與實(shí)現(xiàn).pdf
- 基于arca3處理器的linux2.6內(nèi)核移植
- 基于ep9315的linux2.6內(nèi)核移植及l(fā)cd驅(qū)動(dòng)程序開發(fā)
- uC-OS-Ⅱ嵌入式操作系統(tǒng)內(nèi)核移植研究及其實(shí)現(xiàn).pdf
- 基于ARM9的Linux內(nèi)核移植及USB設(shè)備驅(qū)動(dòng)程序開發(fā).pdf
- 基于ARM Cortex-A9的嵌入式Linux內(nèi)核移植研究與實(shí)現(xiàn).pdf
- 核移植技術(shù)及應(yīng)用
- 動(dòng)物細(xì)胞核移植
- 基于Unity805plus SOC平臺(tái)上嵌入式Linux內(nèi)核移植的實(shí)現(xiàn).pdf
- 46309.小鼠體細(xì)胞核移植和雞兔異種核移植的研究
評(píng)論
0/150
提交評(píng)論