鴻蒙開(kāi)源嗎?這個(gè)問(wèn)題其實(shí)早已有了定論,早在2020年,部分鴻蒙系統(tǒng)的代碼就已經(jīng)在開(kāi)放原子開(kāi)源基金會(huì)中公開(kāi),任何開(kāi)發(fā)者都可以自由下載、使用和修改開(kāi)源代碼,實(shí)質(zhì)上已經(jīng)是開(kāi)源系統(tǒng)。
但是,開(kāi)源的是哪一部分系統(tǒng)?什么時(shí)候?qū)崿F(xiàn)完全開(kāi)源?卻因?yàn)槿A為不同部門(mén)的不同說(shuō)法而產(chǎn)生了各種各樣的誤解,有的說(shuō)僅僅捐贈(zèng)部分代碼,有的則說(shuō)是完全開(kāi)放。
華為已經(jīng)于2020年、2021年分兩次將鴻蒙系統(tǒng)的所有基礎(chǔ)能力全部捐獻(xiàn)給開(kāi)放原子開(kāi)源基金會(huì),形成OpenHarmony開(kāi)源項(xiàng)目,該項(xiàng)目已有245位貢獻(xiàn)者,最新的版本為OpenHarmony2.0。
OpenHarmony整體遵從分層設(shè)計(jì),從下向上依次為:內(nèi)核層、系統(tǒng)服務(wù)層、框架層和應(yīng)用層。系統(tǒng)功能按照“系統(tǒng) 》 子系統(tǒng) 》 組件”逐級(jí)展開(kāi),在多設(shè)備部署場(chǎng)景下,支持根據(jù)實(shí)際需求裁剪某些非必要的組件。
首先要澄清一下這次開(kāi)源的內(nèi)容,這個(gè)代碼庫(kù)和很多用戶最新手機(jī)升級(jí)的鴻蒙系統(tǒng)不是一個(gè)東西,如果按照正常的開(kāi)發(fā)流程,這個(gè)開(kāi)源的庫(kù)應(yīng)該是手機(jī)用戶升級(jí)的系統(tǒng)HarmonyOS2.0的一部分,需要添加AOSP部分和其它一些功能模塊之后才可能構(gòu)建出來(lái)手機(jī)上推送的系統(tǒng)。開(kāi)源部分如果構(gòu)建僅僅可以構(gòu)建出用于IOT設(shè)備上的系統(tǒng),或是手機(jī)上的一個(gè)裸系統(tǒng),不能運(yùn)行安卓apk和華為hap應(yīng)用的裸系統(tǒng),應(yīng)該可以運(yùn)行基于html+js的小程序。
主要源碼目錄功能
1. Third_party目錄功能最大,包含的是第三方庫(kù)和功能模塊。
2. Kernel包含的是內(nèi)核模塊,包含linux內(nèi)核和鴻蒙的嵌入式內(nèi)核
其中liteos_a是適用包含mmu模塊芯片的內(nèi)核,liteos_m是適用無(wú)mmu模塊的芯片的內(nèi)核。其實(shí)內(nèi)核源碼目錄華為放了很多編譯好的工具,內(nèi)核代碼本身并沒(méi)有那么大。一個(gè)有意思的現(xiàn)象是risc-v目錄相關(guān)的代碼量很大,是不是意味著華為已經(jīng)要在risc-v上加大投入了。
3. Applications 目錄是一些官方提供的示例app,其中基于js的小程序是有源碼的,基于java的hap是沒(méi)有源碼的。而且同時(shí)也應(yīng)該支持c++與js混編,不過(guò)我沒(méi)找到相關(guān)的SDK介紹。
4. Base是系統(tǒng)服務(wù)層一系列簡(jiǎn)單封裝目地是為上層提供簡(jiǎn)單的接口,目前主要包括賬號(hào)、傳感器、安全、電源管理等模塊。不過(guò)感覺(jué)這塊目前非常簡(jiǎn)陋,估計(jì)只有嵌入式IoT設(shè)備會(huì)采用這些資源相對(duì)少的管理方式
5. Developtools主要是包含了開(kāi)發(fā)輔助工具,并沒(méi)有什么特別的東西。其中讓我感興趣的是其中的profiler模塊,這個(gè)模塊的完善程度讓人震驚,估計(jì)是華為很早有有所積累從其它項(xiàng)目經(jīng)驗(yàn)中搬運(yùn)過(guò)來(lái)的。
6. Drivers 是驅(qū)動(dòng)接口中間層,如果要移植新新設(shè)備上,可以在底層通過(guò)系統(tǒng)相關(guān)的匯編和C語(yǔ)言對(duì)接這些驅(qū)動(dòng)中間層,這樣可以降低移植成本并提供良好的兼容性。對(duì)于要假如鴻蒙生態(tài)的IoT設(shè)備廠商,應(yīng)該主要去研究這塊。
7. Foundation 這塊應(yīng)該是這次開(kāi)源最重要的部分,這塊是驅(qū)動(dòng)鴻蒙獨(dú)家應(yīng)用的主體部分,包括接口設(shè)計(jì)和執(zhí)行引擎的部分。
這部分的設(shè)計(jì)應(yīng)該借鑒了蘋(píng)果的Core Foundation的設(shè)計(jì),同時(shí)提供了與蘋(píng)果不同的一些組件,比如軟總線部分。同時(shí)華為把js框架底層封裝的執(zhí)行引擎也放到了Foundation之中,這點(diǎn)其實(shí)是有些不合理的。
不管從哪個(gè)角度來(lái)看OpenHarmony的開(kāi)源都有著重大意義,不管是對(duì)國(guó)家而言還是對(duì)于整個(gè)中國(guó)互聯(lián)網(wǎng)生態(tài)而言皆是如此,至少在未來(lái)我們不需要擔(dān)心在失去了Android和iOS后,整個(gè)互聯(lián)網(wǎng)生態(tài)難以為繼。
責(zé)任編輯:lq
-
開(kāi)源
+關(guān)注
關(guān)注
3文章
3336瀏覽量
42487 -
鴻蒙系統(tǒng)
+關(guān)注
關(guān)注
183文章
2634瀏覽量
66331 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3719瀏覽量
16297
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論