一. 鴻蒙OS整體介紹
HarmonyOS簡(jiǎn)介
華為發(fā)布了HarmonyOS 2.0,俺也趕個(gè)時(shí)髦,給大家簡(jiǎn)單介紹下HarmonyOS。
定義
首先,我們來看一下官方對(duì)HarmonyOS的定義。根據(jù)官方的定義,HarmonyOS是一款“面向未來”、面向全場(chǎng)景(移動(dòng)辦公、運(yùn)動(dòng)健康、社交通信、媒體娛樂等)的分布式操作系統(tǒng)。在傳統(tǒng)的單設(shè)備系統(tǒng)能力的基礎(chǔ)上,HarmonyOS提出了基于同一套系統(tǒng)能力、適配多種終端形態(tài)的分布式理念,能夠支持多種終端設(shè)備的能力。
對(duì)消費(fèi)者而言,HarmonyOS能夠?qū)⑸顖?chǎng)景中的各類終端進(jìn)行能力整合,形成一個(gè)“超級(jí)虛擬終端”,可以實(shí)現(xiàn)不同的終端設(shè)備之間的快速連接、能力互助、資源共享,匹配合適的設(shè)備、提供流暢的全場(chǎng)景體驗(yàn)。
對(duì)應(yīng)用開發(fā)者而言,HarmonyOS采用了多種分布式技術(shù),使得應(yīng)用程序的開發(fā)實(shí)現(xiàn)與不同終端設(shè)備的形態(tài)差異無關(guān),降低了開發(fā)難度和成本。這能夠讓開發(fā)者聚焦上層業(yè)務(wù)邏輯,更加便捷、高效地開發(fā)應(yīng)用。
對(duì)設(shè)備開發(fā)者而言,HarmonyOS采用了組件化的設(shè)計(jì)方案,可以根據(jù)設(shè)備的資源能力和業(yè)務(wù)特征進(jìn)行靈活裁剪,滿足不同形態(tài)的終端設(shè)備對(duì)于操作系統(tǒng)的要求。
技術(shù)特性
硬件互助,資源共享
1,分布式軟總線
分布式軟總線是多種終端設(shè)備的統(tǒng)一基座,為設(shè)備之間的互聯(lián)互通提供了統(tǒng)一的分布式通信能力,能夠快速發(fā)現(xiàn)并連接設(shè)備,高效地分發(fā)任務(wù)和傳輸數(shù)據(jù),分布式軟總線示意圖如下圖所示。
2,分布式設(shè)備虛擬化
分布式設(shè)備虛擬化平臺(tái)可以實(shí)現(xiàn)不同設(shè)備的資源融合、設(shè)備管理、數(shù)據(jù)處理,多種設(shè)備共同形成一個(gè)超級(jí)虛擬終端。針對(duì)不同類型的任務(wù),為用戶匹配并選擇能力合適的執(zhí)行硬件,讓業(yè)務(wù)連續(xù)地在不同設(shè)備間流轉(zhuǎn),充分發(fā)揮不同設(shè)備的資源優(yōu)勢(shì),分布式設(shè)備虛擬化示意圖如下圖所示。
3,分布式數(shù)據(jù)管理
分布式數(shù)據(jù)管理基于分布式軟總線的能力,實(shí)現(xiàn)應(yīng)用程序數(shù)據(jù)和用戶數(shù)據(jù)的分布式管理。用戶數(shù)據(jù)不再與單一物理設(shè)備綁定,業(yè)務(wù)邏輯與數(shù)據(jù)存儲(chǔ)分離,應(yīng)用跨設(shè)備運(yùn)行時(shí)數(shù)據(jù)無縫銜接,為打造一致、流暢的用戶體驗(yàn)創(chuàng)造了基礎(chǔ)條件。分布式數(shù)據(jù)管理示意圖如下圖所示。
4,分布式任務(wù)調(diào)度
分布式任務(wù)調(diào)度基于分布式軟總線、分布式數(shù)據(jù)管理、分布式Profile等技術(shù)特性,構(gòu)建統(tǒng)一的分布式服務(wù)管理(發(fā)現(xiàn)、同步、注冊(cè)、調(diào)用)機(jī)制,支持對(duì)跨設(shè)備的應(yīng)用進(jìn)行遠(yuǎn)程啟動(dòng)、遠(yuǎn)程調(diào)用、遠(yuǎn)程連接以及遷移等操作,能夠根據(jù)不同設(shè)備的能力、位置、業(yè)務(wù)運(yùn)行狀態(tài)、資源使用情況,以及用戶的習(xí)慣和意圖,選擇合適的設(shè)備運(yùn)行分布式任務(wù)。以下圖的應(yīng)用遷移為例,簡(jiǎn)要地展示了分布式任務(wù)調(diào)度能力。
一次開發(fā),多端部署
HarmonyOS提供了用戶程序框架、Ability框架以及UI框架,支持應(yīng)用開發(fā)過程中多終端的業(yè)務(wù)邏輯和界面邏輯進(jìn)行復(fù)用,能夠?qū)崿F(xiàn)應(yīng)用的一次開發(fā)、多端部署,提升了跨設(shè)備應(yīng)用的開發(fā)效率。一次開發(fā)、多端部署示意圖如下圖所示。
統(tǒng)一OS,彈性部署
HarmonyOS通過組件化和小型化等設(shè)計(jì)方法,支持多種終端設(shè)備按需彈性部署,能夠適配不同類別的硬件資源和功能需求。支撐通過編譯鏈關(guān)系去自動(dòng)生成組件化的依賴關(guān)系,形成組件樹依賴圖,支撐產(chǎn)品系統(tǒng)的便捷開發(fā),降低硬件設(shè)備的開發(fā)門檻。
支持各組件的選擇(組件可有可無):根據(jù)硬件的形態(tài)和需求,可以選擇所需的組件。
支持組件內(nèi)功能集的配置(組件可大可?。焊鶕?jù)硬件的資源情況和功能需求,可以選擇配置組件中的功能集。例如,選擇配置圖形框架組件中的部分控件。
支持組件間依賴的關(guān)聯(lián)(平臺(tái)可大可?。焊鶕?jù)編譯鏈關(guān)系,可以自動(dòng)生成組件化的依賴關(guān)系。例如,選擇圖形框架組件,將會(huì)自動(dòng)選擇依賴的圖形引擎組件等。
技術(shù)架構(gòu)
HarmonyOS整體遵從分層設(shè)計(jì),從下向上依次為:內(nèi)核層、系統(tǒng)服務(wù)層、框架層和應(yīng)用層。系統(tǒng)功能按照“系統(tǒng) > 子系統(tǒng) > 功能/模塊”逐級(jí)展開,在多設(shè)備部署場(chǎng)景下,支持根據(jù)實(shí)際需求裁剪某些非必要的子系統(tǒng)或功能/模塊。HarmonyOS技術(shù)架構(gòu)如下圖所示。
內(nèi)核層
HarmonyOS系統(tǒng)分為內(nèi)核子系統(tǒng)和驅(qū)動(dòng)子系統(tǒng)。
內(nèi)核子系統(tǒng):HarmonyOS采用多內(nèi)核設(shè)計(jì),支持針對(duì)不同資源受限設(shè)備選用適合的OS內(nèi)核。內(nèi)核抽象層(KAL,KernelAbstract Layer)通過屏蔽多內(nèi)核差異,對(duì)上層提供基礎(chǔ)的內(nèi)核能力,包括進(jìn)程/線程管理、內(nèi)存管理、文件系統(tǒng)、網(wǎng)絡(luò)管理和外設(shè)管理等。
驅(qū)動(dòng)子系統(tǒng):HarmonyOS驅(qū)動(dòng)框架(HDF)是HarmonyOS硬件生態(tài)開放的基礎(chǔ),提供統(tǒng)一外設(shè)訪問能力和驅(qū)動(dòng)開發(fā)、管理框架。
系統(tǒng)服務(wù)層
系統(tǒng)服務(wù)層是HarmonyOS的核心能力集合,通過框架層對(duì)應(yīng)用程序提供服務(wù)。該層包含以下幾個(gè)部分:
系統(tǒng)基本能力子系統(tǒng)集:為分布式應(yīng)用在HarmonyOS多設(shè)備上的運(yùn)行、調(diào)度、遷移等操作提供了基礎(chǔ)能力,由分布式軟總線、分布式數(shù)據(jù)管理、分布式任務(wù)調(diào)度、方舟多語言運(yùn)行時(shí)、公共基礎(chǔ)庫、多模輸入、圖形、安全、AI等子系統(tǒng)組成。其中,方舟運(yùn)行時(shí)提供了C/C++/JS多語言運(yùn)行時(shí)和基礎(chǔ)的系統(tǒng)類庫,也為使用方舟編譯器靜態(tài)化的Java程序(即應(yīng)用程序或框架層中使用Java語言開發(fā)的部分)提供運(yùn)行時(shí)。
基礎(chǔ)軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供公共的、通用的軟件服務(wù),由事件通知、電話、多媒體、DFX、MSDP&DV等子系統(tǒng)組成。
增強(qiáng)軟件服務(wù)子系統(tǒng)集:為HarmonyOS提供針對(duì)不同設(shè)備的、差異化的能力增強(qiáng)型軟件服務(wù),由智慧屏專有業(yè)務(wù)、穿戴專有業(yè)務(wù)、IoT專有業(yè)務(wù)等子系統(tǒng)組成。
硬件服務(wù)子系統(tǒng)集:為HarmonyOS提供硬件服務(wù),由位置服務(wù)、生物特征識(shí)別、穿戴專有硬件服務(wù)、IoT專有硬件服務(wù)等子系統(tǒng)組成。
根據(jù)不同設(shè)備形態(tài)的部署環(huán)境,基礎(chǔ)軟件服務(wù)子系統(tǒng)集、增強(qiáng)軟件服務(wù)子系統(tǒng)集、硬件服務(wù)子系統(tǒng)集內(nèi)部可以按子系統(tǒng)粒度裁剪,每個(gè)子系統(tǒng)內(nèi)部又可以按功能粒度裁剪。
框架層
框架層為HarmonyOS的應(yīng)用程序提供了Java/C/C++/JS等多語言的用戶程序框架和Ability框架,以及各種軟硬件服務(wù)對(duì)外開放的多語言框架API;同時(shí)為采用HarmonyOS的設(shè)備提供了C/C++/JS等多語言的框架API,不同設(shè)備支持的API與系統(tǒng)的組件化裁剪程度相關(guān)。
應(yīng)用層
應(yīng)用層包括系統(tǒng)應(yīng)用和第三方非系統(tǒng)應(yīng)用。HarmonyOS的應(yīng)用由一個(gè)或多個(gè)FA(Feature Ability)或PA(Particle Ability)組成。其中,F(xiàn)A有UI界面,提供與用戶交互的能力;而PA無UI界面,提供后臺(tái)運(yùn)行任務(wù)的能力以及統(tǒng)一的數(shù)據(jù)訪問抽象?;贔A/PA開發(fā)的應(yīng)用,能夠?qū)崿F(xiàn)特定的業(yè)務(wù)功能,支持跨設(shè)備調(diào)度與分發(fā),為用戶提供一致、高效的應(yīng)用體驗(yàn)。
系統(tǒng)安全
在搭載HarmonyOS的分布式終端上,可以保證“正確的人,通過正確的設(shè)備,正確地使用數(shù)據(jù)”。
通過“分布式多端協(xié)同身份認(rèn)證”來保證“正確的人”。
通過“在分布式終端上構(gòu)筑可信運(yùn)行環(huán)境”來保證“正確的設(shè)備”。
通過“分布式數(shù)據(jù)在跨終端流動(dòng)的過程中,對(duì)數(shù)據(jù)進(jìn)行分類分級(jí)管理”來保證“正確地使用數(shù)據(jù)”。
正確的設(shè)備
在分布式終端場(chǎng)景下,只有保證用戶使用的設(shè)備是安全可靠的,才能保證用戶數(shù)據(jù)在虛擬終端上得到有效保護(hù),避免用戶隱私泄露。
安全啟動(dòng)確保源頭每個(gè)虛擬設(shè)備運(yùn)行的系統(tǒng)固件和應(yīng)用程序是完整的、未經(jīng)篡改的。通過安全啟動(dòng),各個(gè)設(shè)備廠商的鏡像包就不易被非法替換為惡意程序,從而保護(hù)用戶的數(shù)據(jù)和隱私安全。
可信執(zhí)行環(huán)境提供了基于硬件的可信執(zhí)行環(huán)境(TEE,Trusted Execution Environment)來保護(hù)用戶的個(gè)人敏感數(shù)據(jù)的存儲(chǔ)和處理,確保數(shù)據(jù)不泄露。由于分布式終端硬件的安全能力不同,對(duì)于用戶的敏感個(gè)人數(shù)據(jù),需要使用高安全等級(jí)的設(shè)備進(jìn)行存儲(chǔ)和處理。HarmonyOS使用基于數(shù)學(xué)可證明的形式化開發(fā)和驗(yàn)證的TEE微內(nèi)核,獲得了商用OS內(nèi)核CC EAL5+的認(rèn)證評(píng)級(jí)。
設(shè)備證書認(rèn)證支持為具備可信執(zhí)行環(huán)境的設(shè)備預(yù)置設(shè)備證書,用于向其他虛擬終端證明自己的安全能力。對(duì)于有TEE環(huán)境的設(shè)備,通過預(yù)置PKI(Public Key Infrastructure)設(shè)備證書給設(shè)備身份提供證明,確保設(shè)備是合法制造生產(chǎn)的。設(shè)備證書在產(chǎn)線進(jìn)行預(yù)置,設(shè)備證書的私鑰寫入并安全保存在設(shè)備的TEE環(huán)境中,且只在TEE內(nèi)進(jìn)行使用。在必須傳輸用戶的敏感數(shù)據(jù)(例如密鑰、加密的生物特征等信息)時(shí),會(huì)在使用設(shè)備證書進(jìn)行安全環(huán)境驗(yàn)證后,建立從一個(gè)設(shè)備的TEE到另一設(shè)備的TEE之間的安全通道,實(shí)現(xiàn)安全傳輸,如下圖所示。
正確地使用數(shù)據(jù)
在分布式終端場(chǎng)景下,需要確保用戶能夠正確地使用數(shù)據(jù)。HarmonyOS圍繞數(shù)據(jù)的生成、存儲(chǔ)、使用、傳輸以及銷毀過程進(jìn)行全生命周期的保護(hù),從而保證個(gè)人數(shù)據(jù)與隱私、以及系統(tǒng)的機(jī)密數(shù)據(jù)(如密鑰)不泄漏。
數(shù)據(jù)生成:根據(jù)數(shù)據(jù)所在的國(guó)家或組織的法律法規(guī)與標(biāo)準(zhǔn)規(guī)范,對(duì)數(shù)據(jù)進(jìn)行分類分級(jí),并且根據(jù)分類設(shè)置相應(yīng)的保護(hù)等級(jí)。每個(gè)保護(hù)等級(jí)的數(shù)據(jù)從生成開始,在其存儲(chǔ)、使用、傳輸?shù)恼麄€(gè)生命周期都需要根據(jù)對(duì)應(yīng)的安全策略提供不同強(qiáng)度的安全防護(hù)。虛擬超級(jí)終端的訪問控制系統(tǒng)支持依據(jù)標(biāo)簽的訪問控制策略,保證數(shù)據(jù)只能在可以提供足夠安全防護(hù)的虛擬終端之間存儲(chǔ)、使用和傳輸。
數(shù)據(jù)存儲(chǔ):HarmonyOS通過區(qū)分?jǐn)?shù)據(jù)的安全等級(jí),存儲(chǔ)到不同安全防護(hù)能力的分區(qū),對(duì)數(shù)據(jù)進(jìn)行安全保護(hù),并提供密鑰全生命周期的跨設(shè)備無縫流動(dòng)和跨設(shè)備密鑰訪問控制能力,支撐分布式身份認(rèn)證協(xié)同、分布式數(shù)據(jù)共享等業(yè)務(wù)。
數(shù)據(jù)使用:HarmonyOS通過硬件為設(shè)備提供可信執(zhí)行環(huán)境。用戶的個(gè)人敏感數(shù)據(jù)僅在分布式虛擬終端的可信執(zhí)行環(huán)境中進(jìn)行使用,確保用戶數(shù)據(jù)的安全和隱私不泄露。
數(shù)據(jù)傳輸:為了保證數(shù)據(jù)在虛擬超級(jí)終端之間安全流轉(zhuǎn),需要各設(shè)備是正確可信的,建立了信任關(guān)系(多個(gè)設(shè)備通過華為帳號(hào)建立配對(duì)關(guān)系),并能夠在驗(yàn)證信任關(guān)系后,建立安全的連接通道,按照數(shù)據(jù)流動(dòng)的規(guī)則,安全地傳輸數(shù)據(jù)。當(dāng)設(shè)備之間進(jìn)行通信時(shí),需要基于設(shè)備的身份憑據(jù)對(duì)設(shè)備進(jìn)行身份認(rèn)證,并在此基礎(chǔ)上,建立安全的加密傳輸通道。
數(shù)據(jù)銷毀:銷毀密鑰即銷毀數(shù)據(jù)。數(shù)據(jù)在虛擬終端的存儲(chǔ),都建立在密鑰的基礎(chǔ)上。當(dāng)銷毀數(shù)據(jù)時(shí),只需要銷毀對(duì)應(yīng)的密鑰即完成了數(shù)據(jù)的銷毀。
二. 子系統(tǒng)架構(gòu)
三. 關(guān)鍵技術(shù)
華為鴻蒙OS的四大技術(shù)特性
鴻蒙OS的設(shè)計(jì)初衷是為滿足全場(chǎng)景智慧體驗(yàn)的高標(biāo)準(zhǔn)的連接要求,為此華為提出了4大特性的系統(tǒng)解決方案。
分布式架構(gòu)首次用于終端OS,實(shí)現(xiàn)跨終端無縫協(xié)同體驗(yàn)
鴻蒙OS的“分布式OS架構(gòu)”和“分布式軟總線技術(shù)”通過公共通信平臺(tái),分布式數(shù)據(jù)管理,分布式能力調(diào)度和虛擬外設(shè)四大能力,將相應(yīng)分布式應(yīng)用的底層技術(shù)實(shí)現(xiàn)難度對(duì)應(yīng)用開發(fā)者屏蔽,使開發(fā)者能夠聚焦自身業(yè)務(wù)邏輯,像開發(fā)同一終端一樣開發(fā)跨終端分布式應(yīng)用,也使最終消費(fèi)者享受到強(qiáng)大的跨終端業(yè)務(wù)協(xié)同能力為各使用場(chǎng)景帶來的無縫體驗(yàn)。
確定時(shí)延引擎和高性能IPC技術(shù)實(shí)現(xiàn)系統(tǒng)天生流暢
鴻蒙 OS通過使用確定時(shí)延引擎和高性能IPC兩大技術(shù)解決現(xiàn)有系統(tǒng)性能不足的問題。確定時(shí)延引擎可在任務(wù)執(zhí)行前分配系統(tǒng)中任務(wù)執(zhí)行優(yōu)先級(jí)及時(shí)限進(jìn)行調(diào)度處理,優(yōu)先級(jí)高的任務(wù)資源將優(yōu)先保障調(diào)度,應(yīng)用響應(yīng)時(shí)延降低25.7%。鴻蒙微內(nèi)核結(jié)構(gòu)小巧的特性使IPC(進(jìn)程間通信)性能大大提高,進(jìn)程通信效率較現(xiàn)有系統(tǒng)提升5倍。
基于微內(nèi)核架構(gòu)重塑終端設(shè)備可信安全
鴻蒙OS采用全新的微內(nèi)核設(shè)計(jì),擁有更強(qiáng)的安全特性和低時(shí)延等特點(diǎn)。微內(nèi)核設(shè)計(jì)的基本思想是簡(jiǎn)化內(nèi)核功能,在內(nèi)核之外的用戶態(tài)盡可能多地實(shí)現(xiàn)系統(tǒng)服務(wù),同時(shí)加入相互之間的安全保護(hù)。微內(nèi)核只提供最基礎(chǔ)的服務(wù),比如多進(jìn)程調(diào)度和多進(jìn)程通信等。
鴻蒙OS將微內(nèi)核技術(shù)應(yīng)用于可信執(zhí)行環(huán)境(TEE),通過形式化方法,重塑可信安全。形式化方法是利用數(shù)學(xué)方法,從源頭驗(yàn)證系統(tǒng)正確,無漏洞的有效手段。傳統(tǒng)驗(yàn)證方法如功能驗(yàn)證,模擬攻擊等只能在選擇的有限場(chǎng)景進(jìn)行驗(yàn)證,而形式化方法可通過數(shù)據(jù)模型驗(yàn)證所有軟件運(yùn)行路徑。 鴻蒙OS首次將形式化方法用于終端TEE,顯著提升安全等級(jí)。同時(shí)由于鴻蒙OS微內(nèi)核的代碼量只有Linux宏內(nèi)核的千分之一,其受攻擊幾率也大幅降低。
通過統(tǒng)一IDE支撐一次開發(fā),多端部署,實(shí)現(xiàn)跨終端生態(tài)共享
鴻蒙OS憑借多終端開發(fā)IDE,多語言統(tǒng)一編譯,分布式架構(gòu)Kit提供屏幕布局控件以及交互的自動(dòng)適配,支持控件拖拽,面向預(yù)覽的可視化編程,從而使開發(fā)者可以基于同一工程高效構(gòu)建多端自動(dòng)運(yùn)行App,實(shí)現(xiàn)真正的一次開發(fā),多端部署,在跨設(shè)備之間實(shí)現(xiàn)共享生態(tài)。華為方舟編譯器是首個(gè)取代Android虛擬機(jī)模式的靜態(tài)編譯器,可供開發(fā)者在開發(fā)環(huán)境中一次性將高級(jí)語言編譯為機(jī)器碼。此外,方舟編譯器未來將支持多語言統(tǒng)一編譯,可大幅提高開發(fā)效率。
四. 參考資料
通過以下材料可進(jìn)一步了解:
1)微內(nèi)核和宏內(nèi)核的差異,為什么鴻蒙選擇微內(nèi)核;
2)方舟編譯器的原理和作用,已經(jīng)它所解決的核心技術(shù)問題。
HarmonyOS鴻蒙操作系統(tǒng)的研發(fā)歷程:微內(nèi)核、方舟編譯器、IOT生態(tài)等
編輯:hfy
-
IPC
+關(guān)注
關(guān)注
3文章
335瀏覽量
51712 -
鴻蒙系統(tǒng)
+關(guān)注
關(guān)注
183文章
2630瀏覽量
66043
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論