版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、本節(jié)以ARM平臺為例介紹了內(nèi)核移植的基本方法, 并且詳細(xì)分析了 Linux內(nèi)核啟動過程。通過本節(jié)學(xué)習(xí),可以明確內(nèi)核哪些代碼是與平臺相關(guān)的,在內(nèi)核啟動過程中代碼的執(zhí)行順序。只有掌握了這些代碼,在內(nèi)核移植過程中才能有的放矢地去修改代碼。本節(jié)目標(biāo)內(nèi)核源代碼移植Linux內(nèi)核啟動過程分析6.1移植內(nèi)核源碼所謂移植就是把程序代碼從一種運(yùn)行環(huán)境轉(zhuǎn)移到另 外一種運(yùn)行環(huán)境。對于內(nèi)核移植來說,主要是從一 種硬件平臺轉(zhuǎn)移到另外一種硬件平臺上運(yùn)行。6.1.1移植前的準(zhǔn)備工作內(nèi)核移植是嵌入式Linux系統(tǒng)中最常見的一項工作,內(nèi)核移植 工作主耍是修改跟硬件平臺相關(guān)的代碼,-般不涉及l(fā)inux 內(nèi)核通用程序。(1)選擇已
2、成功移植的并與目標(biāo)板類似的參考板CPU體系結(jié)構(gòu)相同、外圍接口電路相似、參考板Linux設(shè)備 驅(qū)動正常;(2)編譯測試參考板的Linux內(nèi)核(3)分析參考板的BSP代碼分析平臺相關(guān)的部分代碼實現(xiàn);分析內(nèi)核編譯組織方式;分析內(nèi)核啟動的初始化程序;分析驅(qū)動程序的實現(xiàn);分析驅(qū)動程序?qū)崿F(xiàn)。6.1.2開發(fā)板內(nèi)核移植對于內(nèi)核移植工作來說,主要是添加開發(fā)板初始化 和驅(qū)動程序的代碼。這部分代碼大部分是與體系結(jié) 構(gòu)相關(guān)的,在如ch目錄下按照不同的體系結(jié)構(gòu)管理。1.添加開發(fā)板平臺支持選項ARM平臺相關(guān)的選項都是在arch/arm目錄下實現(xiàn)的。 在內(nèi)核編譯過程中已經(jīng)說明,需要在頂層Makefile中 設(shè)置相應(yīng)的體系結(jié)
3、構(gòu)和工具鏈。這樣配置Linux內(nèi)核 的時候就會調(diào)用arch/arm/Kconfig文件。2.移植開發(fā)板驅(qū)動程序不同的開發(fā)板可以使用不同的SDRAM、Flash以太 網(wǎng)接口芯片等。這就需要根據(jù)硬件修改或者開發(fā)驅(qū) 動*呈序。6.1.3移植后的工作移植完成以后,就可以發(fā)布這個內(nèi)核源代碼了。 最常見的方式是發(fā)布內(nèi)核補(bǔ)丁?;谝粋€穩(wěn)定的 內(nèi)核版本制作補(bǔ)丁文件,可以方便地保存和分發(fā)6.2 Linux內(nèi)核啟動過程分析Linux內(nèi)核啟動就是引導(dǎo)內(nèi)核映像啟動的過程。典 型的內(nèi)核映像是zlmage,包含自引導(dǎo)程序和壓縮 的vmlinux兩部分。啟動過程也就是解壓和啟動 vmlinux的過稈。啟動過程從內(nèi)核映像入口
4、開始執(zhí)彳亍,解壓vmlinux 并且轉(zhuǎn)換到虛擬地址空間,再調(diào)用統(tǒng)一的內(nèi)核啟 動函數(shù)start-kemel(),從而啟動整個linux系統(tǒng)。 從內(nèi)核源代碼的角度分析,啟動過程是一系列匯 編子程序和C函數(shù)的調(diào)用過程。6.2.1內(nèi)核啟動流程分析<_1C-T <-> »- <i* Z K ><.« « 'B1 <>11«=? - B"B «=? 1 < >zC 二.<-r 1 h <">z ii t- < )i r-> i t. <
5、; ><-z i zt_ <_< >«« <= .n 二. > >z f-*> 二.< >' AXi B* * BB 'V 1>i C >6.2.2內(nèi)核自引導(dǎo)程序zlmage映像的入口代碼是自引導(dǎo)程序。自引導(dǎo)程 序包含一些初始化代碼,所以它是體系結(jié)構(gòu)相關(guān) 的,這個目錄是arch/$(ARCH)/booto第一條指令 所在的文件是自引導(dǎo)稈序中的head.So6.2.3 內(nèi)核vmlinux入口PC指針己經(jīng)指向vmlinux的入口地址,順序執(zhí)行內(nèi) 核啟動程序,vmlinux開始部分也有一
6、些匯編程序 ,對應(yīng)的程序文件為head.S,經(jīng)過一系列的初始 化過程,打開MMU,跳轉(zhuǎn)到start-kernel()函數(shù)。624 Linux系統(tǒng)初始化start_kernel函數(shù)是Linux內(nèi)核通用的初始化函數(shù)。 無論對于什么體系結(jié)構(gòu)的Linux,都要執(zhí)行這個函 數(shù)。start_kemel()是內(nèi)核初始化的基本過程。 start_kernel()函數(shù)負(fù)責(zé)初始化內(nèi)核各了系統(tǒng),最后 調(diào)用rest_init(),啟動init內(nèi)核線程,繼續(xù)初始化,在 init內(nèi)核線程中,將執(zhí)行init()函數(shù),負(fù)責(zé)完成掛接 根文件系統(tǒng)、初始化設(shè)備驅(qū)動程序和啟動用戶空 間的init進(jìn)程等重要工作。對于Linux系統(tǒng)來說
7、,掛接根文件系統(tǒng)、初始化設(shè) 備驅(qū)動程序和啟動用戶空間的程序是必要的3項工 作,分析這些重要工作的實現(xiàn)函數(shù),有助于理解 休核啟動過程。6.2.5掛接根文件系統(tǒng)Linux能夠在內(nèi)存中虛擬磁盤文件系統(tǒng),叫作 ramdisko如果為內(nèi)核配置了ramdisk設(shè)備和文件系 統(tǒng),就女裝好ramdisk文件系統(tǒng),然后再掛接根文 件系統(tǒng),在初始化設(shè)備驅(qū)動程序之后執(zhí)行 prepare_namespace()函數(shù),它負(fù)責(zé)為Linux系統(tǒng)掛 接一個糧文件系統(tǒng)。6.2.6初始化設(shè)備驅(qū)動內(nèi)核子系統(tǒng)已經(jīng)基本上初始化好了,CPU子系統(tǒng) 已經(jīng)正常工作,內(nèi)存管理和進(jìn)程管理已經(jīng)正常運(yùn) 轉(zhuǎn),但是還沒有使用任何設(shè)備。接下來繼續(xù)初始 化內(nèi)核設(shè)備驅(qū)動程序,然后才能訪問設(shè)備,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國加固交換機(jī)行業(yè)市場研究及投資戰(zhàn)略預(yù)測報告
- 2025年中國避孕藥行業(yè)市場深度研究及投資規(guī)劃建議報告
- 2025年中國醋酸阿托西班注射液行業(yè)發(fā)展監(jiān)測及投資前景展望報告
- 課程設(shè)計吸聲降噪
- 2025年中國速食連鎖行業(yè)市場全景分析及投資前景展望報告
- 2024-2025年中國網(wǎng)絡(luò)招聘市場運(yùn)行態(tài)勢及行業(yè)發(fā)展前景預(yù)測報告
- 2025年電筒項目可行性研究報告
- 2025年不銹鋼雙扣管項目投資可行性研究分析報告
- 2025年復(fù)合材料項目可行性研究報告
- 2025年農(nóng)業(yè)機(jī)械配件項目可行性研究報告
- 管道坡口技術(shù)培訓(xùn)
- OQC培訓(xùn)資料教學(xué)課件
- 2024年8月CCAA國家注冊審核員OHSMS職業(yè)健康安全管理體系基礎(chǔ)知識考試題目含解析
- 體育賽事組織與實施操作手冊
- 2024年浙江省公務(wù)員考試結(jié)構(gòu)化面試真題試題試卷答案解析
- 2023年航空公司招聘:機(jī)場安檢員基礎(chǔ)知識試題(附答案)
- 皮膚儲存新技術(shù)及臨床應(yīng)用
- 外研版七年級英語上冊《閱讀理解》專項練習(xí)題(含答案)
- 《現(xiàn)在完成時》語法復(fù)習(xí)課件(共44張-)
- 二年級下冊語文《第3單元 口語交際:長大以后做什么》課件
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫必考題
評論
0/150
提交評論