OpenHarmony內(nèi)核學(xué)習(xí)(一)—單獨(dú)編譯OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核
??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??
??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??
內(nèi)核是操作系統(tǒng)的核心,學(xué)習(xí)掌握OpenHarmony內(nèi)核對(duì)于開(kāi)發(fā)人員至關(guān)重要。筆者整理學(xué)習(xí)OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核筆記如下:
OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核
- OpenHarmony標(biāo)準(zhǔn)系統(tǒng)類(lèi)設(shè)備(參考內(nèi)存≥128MiB),OpenHarmony選擇Linux內(nèi)核作為標(biāo)準(zhǔn)系統(tǒng)內(nèi)核。
- OpenHarmony標(biāo)準(zhǔn)系統(tǒng)從Linux內(nèi)核LTS版本中選擇合適的版本作為內(nèi)核的基礎(chǔ)版本,目前已完成對(duì)Linux-4.19及Linux-5.10的適配及支持。
Linux內(nèi)核版本
Linux內(nèi)核版本分為穩(wěn)定版本以及長(zhǎng)期支持LTS(long term support)版本。
穩(wěn)定版本大約每三個(gè)月發(fā)布一個(gè)新版本,包含最新硬件支持、性能改進(jìn)以及bug修復(fù)等。其缺點(diǎn)是整體維護(hù)生命周期較短,產(chǎn)品軟件不能得到長(zhǎng)期穩(wěn)定的支持。
LTS為長(zhǎng)期支持版本,“長(zhǎng)期支持”體現(xiàn)在對(duì)該版本內(nèi)核的長(zhǎng)期維護(hù)(對(duì)bug和安全方面的修復(fù)),一般維護(hù)周期達(dá)到6年之久。相較于維護(hù)周期從6個(gè)月到2年不等非LTS內(nèi)核版本,對(duì)一款商用產(chǎn)品來(lái)說(shuō)并不能覆蓋其產(chǎn)品完整的生命周期,很有可能會(huì)使產(chǎn)品暴露于安全的風(fēng)險(xiǎn)之中。且LTS版本更新不會(huì)包含新的特性升級(jí),保證了版本的穩(wěn)定。
OpenHarmony的Linux內(nèi)核基于開(kāi)源Linux內(nèi)核LTS 4.19.y / 5.10.y 分支演進(jìn),在此基線基礎(chǔ)上,回合CVE補(bǔ)丁及OpenHarmony特性,作為OpenHarmony Common Kernel基線。針對(duì)不同的芯片,各廠商合入對(duì)應(yīng)的板級(jí)驅(qū)動(dòng)補(bǔ)丁,完成對(duì)OpenHarmony的基線適配。
- Linux社區(qū)LTS 4.19.y分支信息請(qǐng)查看??kernel官網(wǎng)??。
- Linux社區(qū)LTS 5.10.y分支信息請(qǐng)查看??kernel官網(wǎng)??。
- 內(nèi)核的Patch組成模塊,在編譯構(gòu)建流程中,針對(duì)具體芯片平臺(tái),合入對(duì)應(yīng)的架構(gòu)驅(qū)動(dòng)代碼,進(jìn)行編譯對(duì)應(yīng)的內(nèi)核鏡像。所有補(bǔ)丁來(lái)源均遵守GPL-2.0協(xié)議。
目前OpenHarmony Beta3使用的內(nèi)核版本為5.10.93,Beta4使用的內(nèi)核版本為5.10.97。
OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核源碼目錄
單獨(dú)編譯OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核(以rk3568為例)
- 筆者編譯環(huán)境:wsl2+Ubuntu18.04+OpenHarmony Beta3源碼。
- 首先在out/kernel/src_tmp/linux-5.10目錄下打開(kāi)終端執(zhí)行如下語(yǔ)句:
單獨(dú)編譯結(jié)果
結(jié)果是在如下目錄下生成resource.img內(nèi)核鏡像和boot_linux.img。
/home/jiajiahao/ohos3.2beta3/sources/out/kernel/OBJ/linux-5.10/resource.img。
home\jiajiahao\ohos3.2beta3\sources\out\kernel\src_tmp\linux-5.10\boot_linux.img
重新編譯OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核
刪除源碼下out目錄
然后重新編譯出全部的鏡像文件
知識(shí)附送
編譯rk64位:
用DevEco Device Tool工具可以編譯64位的鏡像
安裝最新依賴包:
OpenHarmony環(huán)境重置
??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??