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