鴻蒙OS架構及關鍵技術整理
鴻蒙OS架構及關鍵技術整理
一. 鴻蒙OS整體介紹
HarmonyOS簡介
原作者:xiangzhihong8
前兩天,華為釋出了HarmonyOS 2.0,俺也趕個時髦,給大家簡單介紹下HarmonyOS。
定義
首先,我們來看一下官方對HarmonyOS的定義。根據官方的定義,HarmonyOS是一款“面向未來”、面向全場景(移動辦公、運動健康、社交通訊、媒體娛樂等)的分散式作業系統。在傳統的單裝置系統能力的基礎上,HarmonyOS提出了基於同一套系統能力、適配多種終端形態的分散式理念,能夠支援多種終端裝置的能力。
對消費者而言,HarmonyOS能夠將生活場景中的各類終端進行能力整合,形成一個“超級虛擬終端”,可以實現不同的終端裝置之間的快速連線、能力互助、資源共享,匹配合適的裝置、提供流暢的全場景體驗。
對應用開發者而言,HarmonyOS採用了多種分散式技術,使得應用程式的開發實現與不同終端裝置的形態差異無關,降低了開發難度和成本。這能夠讓開發者聚焦上層業務邏輯,更加便捷、高效地開發應用。
對裝置開發者而言,HarmonyOS採用了元件化的設計方案,可以根據裝置的資源能力和業務特徵進行靈活裁剪,滿足不同形態的終端裝置對於作業系統的要求。
技術特性
硬體互助,資源共享
1,分散式軟匯流排
分散式軟匯流排是多種終端裝置的統一基座,為裝置之間的互聯互通提供了統一的分散式通訊能力,能夠快速發現並連線裝置,高效地分發任務和傳輸資料,分散式軟匯流排示意圖如下圖所示。
2,分散式裝置虛擬化
分散式裝置虛擬化平臺可以實現不同裝置的資源融合、裝置管理、資料處理,多種裝置共同形成一個超級虛擬終端。針對不同型別的任務,為使用者匹配並選擇能力合適的執行硬體,讓業務連續地在不同裝置間流轉,充分發揮不同裝置的資源優勢,分散式裝置虛擬化示意圖如下圖所示。
3,分散式資料管理
分散式資料管理基於分散式軟匯流排的能力,實現應用程式資料和使用者資料的分散式管理。使用者資料不再與單一物理裝置繫結,業務邏輯與資料儲存分離,應用跨裝置執行時資料無縫銜接,為打造一致、流暢的使用者體驗創造了基礎條件。分散式資料管理示意圖如下圖所示。
4,分散式任務排程
分散式任務排程基於分散式軟匯流排、分散式資料管理、分散式Profile等技術特性,構建統一的分散式服務管理(發現、同步、註冊、呼叫)機制,支援對跨裝置的應用進行遠端啟動、遠端呼叫、遠端連線以及遷移等操作,能夠根據不同裝置的能力、位置、業務執行狀態、資源使用情況,以及使用者的習慣和意圖,選擇合適的裝置執行分散式任務。以下圖的應用遷移為例,簡要地展示了分散式任務排程能力。
一次開發,多端部署
HarmonyOS提供了使用者程式框架、Ability框架以及UI框架,支援應用開發過程中多終端的業務邏輯和介面邏輯進行復用,能夠實現應用的一次開發、多端部署,提升了跨裝置應用的開發效率。一次開發、多端部署示意圖如下圖所示。
統一OS,彈性部署
HarmonyOS通過元件化和小型化等設計方法,支援多種終端裝置按需彈性部署,能夠適配不同類別的硬體資源和功能需求。支撐通過編譯鏈關係去自動生成元件化的依賴關係,形成元件樹依賴圖,支撐產品系統的便捷開發,降低硬體裝置的開發門檻。
支援各元件的選擇(元件可有可無):根據硬體的形態和需求,可以選擇所需的元件。
支援元件內功能集的配置(元件可大可小):根據硬體的資源情況和功能需求,可以選擇配置元件中的功能集。例如,選擇配置圖形框架元件中的部分控制元件。
支援元件間依賴的關聯(平臺可大可小):根據編譯鏈關係,可以自動生成元件化的依賴關係。例如,選擇圖形框架元件,將會自動選擇依賴的圖形引擎元件等。
技術架構
HarmonyOS整體遵從分層設計,從下向上依次為:核心層、系統服務層、框架層和應用層。系統功能按照“系統 > 子系統 > 功能/模組”逐級展開,在多裝置部署場景下,支援根據實際需求裁剪某些非必要的子系統或功能/模組。HarmonyOS技術架構如下圖所示。
核心層
HarmonyOS系統分為核心子系統和驅動子系統。
核心子系統:HarmonyOS採用多核心設計,支援針對不同資源受限裝置選用適合的OS核心。核心抽象層(KAL,KernelAbstract Layer)通過遮蔽多核心差異,對上層提供基礎的核心能力,包括程式/執行緒管理、記憶體管理、檔案系統、網路管理和外設管理等。
驅動子系統:HarmonyOS驅動框架(HDF)是HarmonyOS硬體生態開放的基礎,提供統一外設訪問能力和驅動開發、管理框架。
系統服務層
系統服務層是HarmonyOS的核心能力集合,通過框架層對應用程式提供服務。該層包含以下幾個部分:
系統基本能力子系統集:為分散式應用在HarmonyOS多裝置上的執行、排程、遷移等操作提供了基礎能力,由分散式軟匯流排、分散式資料管理、分散式任務排程、方舟多語言執行時、公共基礎庫、多模輸入、圖形、安全、AI等子系統組成。其中,方舟執行時提供了C/C++/JS多語言執行時和基礎的系統類庫,也為使用方舟編譯器靜態化的Java程式(即應用程式或框架層中使用Java語言開發的部分)提供執行時。
基礎軟體服務子系統集:為HarmonyOS提供公共的、通用的軟體服務,由事件通知、電話、多媒體、DFX、MSDP&DV等子系統組成。
增強軟體服務子系統集:為HarmonyOS提供針對不同裝置的、差異化的能力增強型軟體服務,由智慧屏專有業務、穿戴專有業務、IoT專有業務等子系統組成。
硬體服務子系統集:為HarmonyOS提供硬體服務,由位置服務、生物特徵識別、穿戴專有硬體服務、IoT專有硬體服務等子系統組成。
根據不同裝置形態的部署環境,基礎軟體服務子系統集、增強軟體服務子系統集、硬體服務子系統集內部可以按子系統粒度裁剪,每個子系統內部又可以按功能粒度裁剪。
框架層
框架層為HarmonyOS的應用程式提供了Java/C/C++/JS等多語言的使用者程式框架和Ability框架,以及各種軟硬體服務對外開放的多語言框架API;同時為採用HarmonyOS的裝置提供了C/C++/JS等多語言的框架API,不同裝置支援的API與系統的元件化裁剪程度相關。
應用層
應用層包括系統應用和第三方非系統應用。HarmonyOS的應用由一個或多個FA(Feature Ability)或PA(Particle Ability)組成。其中,FA有UI介面,提供與使用者互動的能力;而PA無UI介面,提供後臺執行任務的能力以及統一的資料訪問抽象。基於FA/PA開發的應用,能夠實現特定的業務功能,支援跨裝置排程與分發,為使用者提供一致、高效的應用體驗。
系統安全
在搭載HarmonyOS的分散式終端上,可以保證“正確的人,通過正確的裝置,正確地使用資料”。
通過“分散式多端協同身份認證”來保證“正確的人”。
通過“在分散式終端上構築可信執行環境”來保證“正確的裝置”。
通過“分散式資料在跨終端流動的過程中,對資料進行分類分級管理”來保證“正確地使用資料”。
正確的裝置
在分散式終端場景下,只有保證使用者使用的裝置是安全可靠的,才能保證使用者資料在虛擬終端上得到有效保護,避免使用者隱私洩露。
安全啟動確保源頭每個虛擬裝置執行的系統韌體和應用程式是完整的、未經篡改的。通過安全啟動,各個裝置廠商的映象包就不易被非法替換為惡意程式,從而保護使用者的資料和隱私安全。
可信執行環境提供了基於硬體的可信執行環境(TEE,Trusted Execution Environment)來保護使用者的個人敏感資料的儲存和處理,確保資料不洩露。由於分散式終端硬體的安全能力不同,對於使用者的敏感個人資料,需要使用高安全等級的裝置進行儲存和處理。HarmonyOS使用基於數學可證明的形式化開發和驗證的TEE微核心,獲得了商用OS核心CC EAL5+的認證評級。
裝置證照認證支援為具備可信執行環境的裝置預置裝置證照,用於向其他虛擬終端證明自己的安全能力。對於有TEE環境的裝置,通過預置PKI(Public Key Infrastructure)裝置證照給裝置身份提供證明,確保裝置是合法製造生產的。裝置證照在產線進行預置,裝置證照的私鑰寫入並安全儲存在裝置的TEE環境中,且只在TEE內進行使用。在必須傳輸使用者的敏感資料(例如金鑰、加密的生物特徵等資訊)時,會在使用裝置證照進行安全環境驗證後,建立從一個裝置的TEE到另一裝置的TEE之間的安全通道,實現安全傳輸,如下圖所示。
正確地使用資料
在分散式終端場景下,需要確保使用者能夠正確地使用資料。HarmonyOS圍繞資料的生成、儲存、使用、傳輸以及銷燬過程進行全生命週期的保護,從而保證個人資料與隱私、以及系統的機密資料(如金鑰)不洩漏。
資料生成:根據資料所在的國家或組織的法律法規與標準規範,對資料進行分類分級,並且根據分類設定相應的保護等級。每個保護等級的資料從生成開始,在其儲存、使用、傳輸的整個生命週期都需要根據對應的安全策略提供不同強度的安全防護。虛擬超級終端的訪問控制系統支援依據標籤的訪問控制策略,保證資料只能在可以提供足夠安全防護的虛擬終端之間儲存、使用和傳輸。
資料儲存:HarmonyOS通過區分資料的安全等級,儲存到不同安全防護能力的分割槽,對資料進行安全保護,並提供金鑰全生命週期的跨裝置無縫流動和跨裝置金鑰訪問控制能力,支撐分散式身份認證協同、分散式資料共享等業務。
資料使用:HarmonyOS通過硬體為裝置提供可信執行環境。使用者的個人敏感資料僅在分散式虛擬終端的可信執行環境中進行使用,確保使用者資料的安全和隱私不洩露。
資料傳輸:為了保證資料在虛擬超級終端之間安全流轉,需要各裝置是正確可信的,建立了信任關係(多個裝置通過華為帳號建立配對關係),並能夠在驗證信任關係後,建立安全的連線通道,按照資料流動的規則,安全地傳輸資料。當裝置之間進行通訊時,需要基於裝置的身份憑據對裝置進行身份認證,並在此基礎上,建立安全的加密傳輸通道。
資料銷燬:銷燬金鑰即銷燬資料。資料在虛擬終端的儲存,都建立在金鑰的基礎上。當銷燬資料時,只需要銷燬對應的金鑰即完成了資料的銷燬。
二. 子系統架構
三. 關鍵技術
華為鴻蒙OS的四大技術特性
鴻蒙OS的設計初衷是為滿足全場景智慧體驗的高標準的連線要求,為此華為提出了4大特性的系統解決方案。
1. 分散式架構首次用於終端OS,實現跨終端無縫協同體驗
鴻蒙OS的“分散式OS架構”和“分散式軟匯流排技術”通過公共通訊平臺,分散式資料管理,分散式能力排程和虛擬外設四大能力,將相應分散式應用的底層技術實現難度對應用開發者遮蔽,使開發者能夠聚焦自身業務邏輯,像開發同一終端一樣開發跨終端分散式應用,也使最終消費者享受到強大的跨終端業務協同能力為各使用場景帶來的無縫體驗。
2. 確定時延引擎和高效能IPC技術實現系統天生流暢
鴻蒙 OS通過使用確定時延引擎和高效能IPC兩大技術解決現有系統效能不足的問題。確定時延引擎可在任務執行前分配系統中任務執行優先順序及時限進行排程處理,優先順序高的任務資源將優先保障排程,應用響應時延降低25.7%。鴻蒙微核心結構小巧的特性使IPC(程式間通訊)效能大大提高,程式通訊效率較現有系統提升5倍。
3. 基於微核心架構重塑終端裝置可信安全
鴻蒙OS採用全新的微核心設計,擁有更強的安全特性和低時延等特點。微核心設計的基本思想是簡化核心功能,在核心之外的使用者態儘可能多地實現系統服務,同時加入相互之間的安全保護。微核心只提供最基礎的服務,比如多程式排程和多程式通訊等。
鴻蒙OS將微核心技術應用於可信執行環境(TEE),通過形式化方法,重塑可信安全。形式化方法是利用數學方法,從源頭驗證系統正確,無漏洞的有效手段。傳統驗證方法如功能驗證,模擬攻擊等只能在選擇的有限場景進行驗證,而形式化方法可通過資料模型驗證所有軟體執行路徑。 鴻蒙OS首次將形式化方法用於終端TEE,顯著提升安全等級。同時由於鴻蒙OS微核心的程式碼量只有Linux單核心的千分之一,其受攻擊機率也大幅降低。
4. 通過統一IDE支撐一次開發,多端部署,實現跨終端生態共享
鴻蒙OS憑藉多終端開發IDE,多語言統一編譯,分散式架構Kit提供螢幕佈局控制元件以及互動的自動適配,支援控制元件拖拽,面向預覽的視覺化程式設計,從而使開發者可以基於同一工程高效構建多端自動執行App,實現真正的一次開發,多端部署,在跨裝置之間實現共享生態。華為方舟編譯器是首個取代Android虛擬機器模式的靜態編譯器,可供開發者在開發環境中一次性將高階語言編譯為機器碼。此外,方舟編譯器未來將支援多語言統一編譯,可大幅提高開發效率。
四. 參考資料
可進一步瞭解微核心、方舟編譯器。
HarmonyOS鴻蒙作業系統的研發歷程:微核心、方舟編譯器、IOT生態等
2019-08-19 18:49:28
原作者:燚智慧物聯網小編
簡介
上週,華為於開發者大會發布基於微核心的全場景分散式鴻蒙作業系統,同時宣佈方舟編譯器開源。從技術角度看,作業系統作為管理分配硬體資源、實現應用軟體功能的重要載體,技術含金量之高決定了其”金字塔尖“的地位。從生態角度看,作業系統廠商更是相應產業生態的主導者。鴻蒙作業系統的推出,對華為、對我國自主可控程式的意義不言而喻。
全文導讀
• 七年沉澱,發力“鴻蒙”
• 1、ICT 領域之“大腦”,得系統者得天下
• 2、早期鴻蒙雛形 LiteOS 就已體現華為發力 IoT
• 兩大核心要素 :微核心、方舟編譯器
• 1、鴻蒙微核心從底層即為物聯網設計
• 2、 方舟編譯器是鴻蒙的取勝關鍵
• 5G+IoT 時代的蘋果
• 鴻蒙將完善華為 IoT 生態,催化產業程式
原文來自:物聯網智庫
上週,華為於開發者大會發布基於微核心的全場景分散式鴻蒙作業系統,同時宣佈方舟編譯器開源。從技術角度看,作業系統作為管理分配硬體資源、實現應用軟體功能的重要載體,技術含金量之高決定了其”金字塔尖“的地位。從生態角度看,作業系統廠商更是相應產業生態的主導者。鴻蒙作業系統的推出,對華為、對我國自主可控程式的意義不言而喻。
本期的智慧內參,我們推薦申萬巨集源的研究報告《華為鴻蒙作業系統全景解構》,全面解析鴻蒙作業系統的研發歷程,技術特點和華為“5G+IoT” 時代的野心。
七年沉澱,發力“鴻蒙”
1、ICT 領域之“大腦”,得系統者得天下
作業系統(OS,Operating System)是管理計算機軟硬體資源的“大腦”。常見 ICT系統包括硬體和軟體兩部分,軟體又可分為作業系統軟體和應用軟體。其中作業系統是介於硬體和應用軟體之間的一層重要部分,是管理分配硬體資源、實現應用軟體功能的重要載體。
作業系統在 ICT 領域扮演重要角色,其作用可從技術、生態兩方面佐證:
技術角度看,作業系統在程式執行的過程中起重要作用。 一般而言,軟體程式的執行需要四大要素:程式設計語言、編譯系統、作業系統、指令集。粗略理解:1)程式設計語言是程式設計的工具基礎,包括常見的 C、C++、Java、C#等;2)編譯系統的作用是將編寫好的程式語言“翻譯”成機器能夠識別的二進位制碼;③作業系統是排程資源、執行程式的“大腦”;④指令集則決定了程式以何種方式來執行。
可作以下類比:硬體相當於高速公路、鐵路等基礎設施資源,軟體相當於駕駛員/旅客,而作業系統則相當於各種型別的交通工具。汽車、火車等交通工具藉助公路、鐵路等基礎設施得以行駛,駕駛員/旅客在交通工具上方能到達不同目的地。作業系統則是向下對接硬體,使硬體資源的存在有實際意義,同時向上承載各類應用程式,得以實現各種應用功能;編譯系統在程式執行的過程中,起到方向盤或導航儀的作用,將駕駛員(軟體)的操作(程式指令)轉化為車輛的位移(機器語言)。
▲作業系統在程式執行的過程中起重要作用
生態角度看,總結 Win-tel 與我國自主可控歷程,作業系統廠商處於 ICT 產業鏈的核心環節 。Win-tel 聯盟下,微軟股價隨 Win95、WinXP 等版本的釋出屢創新高。1980s 微軟與英特爾組成 Win-tel 聯盟,使得 Windows 系統搭配 x86 的 Intel 處理器成為 PC 領域的絕對主流,二者結合後,在軟硬體版本迭代、生產、銷售等環節協同,一時形成“雙寡頭壟斷”的格局。1995 年 Win95 的釋出首創了“桌面”的概念,使人機互動介面更加友好;Windows XP 的釋出進一步穩固了微軟在作業系統領域的領先地位。
▲Win-tel發展歷程
儘管晶片是 ICT 生態的底層核心,但 Windows 背後龐大的應用生態決定了微軟對晶片商有較高話語權。微軟於 2018 年公佈 Win10 作業系統已擁有 3500 萬個應用、超 1.75億個軟體版本,支援 1600 萬個硬體/驅動組合。微軟三十餘年積累海量開發者,擁有龐大的應用基礎,因此對晶片架構的選擇擁有一定話語權。在 x86 以外微軟已針對 ARM 架構推出新一代作業系統,英特爾以外的晶片商將受益 Win 生態的擴充。
另外,ICT 領域自主可控不僅體現在以晶片為代表的硬體層,更需要作業系統帶動生態可持續。“基礎軟體的短板主要在作業系統,晶片的短板主要在 EDA(電子設計自動化)設計工具等領域”。晶片層的創新與投入一直是產業與資本的關注重點,但持續研發需要商用以及作業系統帶動應用軟體同步推進,如果沒有商用階段的現金流再投資,則晶片層的創新難以持續迭代。
▲國內已出現一批商用作業系統,且初具生態
2、早期鴻蒙雛形 LiteOS 就已體現華為發力 IoT
華為“鴻蒙”概念的公開時點雖受到外部環境影響,但實際已積澱大量商用經驗。鴻蒙作業系統的釋出時點體現重大意義,但並非是“從無到有”的過程,2012 年華為就已開發物聯網作業系統 LiteOS,並在可穿戴裝置、智慧家居、車聯網、LPWA 等領域應用,是鴻蒙作業系統的雛形。
▲華為早在 2012 年就已開始研發名為 LiteOS 的物聯網作業系統
LiteOS 解決物聯網應用成本、連線、安全三大痛點,體現華為早期就已探索佈局 IoT領域 。
(1)低成本、低功耗。物聯網需要海量終端接入,且大多數邊緣裝置為小型化、可移動,因此對續航能力與單位成本提出較高要求。LiteOS 核心小於 10k,同時通過 MCU 和通訊模組二合一的 OpenCPU 架構,能夠顯著降低終端體積和終端成本。且超低功耗,甚至 1 節 5 號電池可工作 5 年。
(2)連線多樣。物聯網終端在不同場景下需要不同形式的網路連線,尤其進入到 5G時代後,對系統的連線效能和相容性要求嚴格。連線擴充效能強,支援 6LoWPAN、WiFi、BTE、Zigbee 等多種協議,且裝置間可以自組網、自發現、互操作,能夠滿足物聯網應用的不同連線需求。
(3)安全。物聯網邊緣計算需要“雲”+“端”協同,互聯互通後資料洩露成為物聯網系統的重大隱患。LiteOS 以極小體積的核心實現了雙向認證、差分升級、DTLS/DTLS+等機制。
▲LiteOS 眾多特性表明該系統專為物聯網設計
未來成熟商用的 LiteOS 將逐步融入鴻蒙作業系統,逐步增強鴻蒙生態的多終端開發能力。在鴻蒙之前,華為已形成 HiLink(連線標準)+LiteOS(作業系統)+晶片(算力)的IoT“三件套”體系。在這一體系下,華為 2C 的智慧家居、智慧手機、手錶手環等裝置出貨量已累計超過 2 億件,2B 的水電錶、攝像頭、單車等裝置出貨量已累計超過 1 億件,擁有成熟穩定的商用方案。進一步 LiteOS 與鴻蒙結合,將在 IoT 領域形成強大合力。
▲華為已形成 HiLink+LiteOS+晶片的 IoT“三件套”體系
兩大核心要素 :微核心、方舟編譯器
鴻蒙從設計之初就為多終端(如邊緣計算 IoT、伺服器等)而生,微核心、方舟編譯器作為鴻蒙作業系統生態的兩大核心要素。
微核心乃作業系統的一種結構形式,將系統實現各功能的模組化,更靈活,易於擴充、易於維護與更新迭代;編譯器可視為人與機器的“翻譯”,將人的程式語言翻譯給計算機可理解並執行,是人與計算機之間實現溝通的橋樑。
▲微核心、方舟編譯器是鴻蒙生態的兩大核心要素
華為 10 年來在編譯器與系統核心的佈局演進,已經為鴻蒙作業系統和進軍物聯網做好了充足的鋪墊。
▲華為 10 年佈局多終端系統,為進軍物聯網做好鋪墊
1、鴻蒙微核心從底層即為物聯網設計
微核心與單核心相對應,是作業系統的一種結構形式。作業系統的核心功能包括檔案系統、記憶體和 I/O 裝置管理、CPU 排程等,單核心即指作業系統將上述功能全部“打包整合”在核心裡,不同的功能模組之間耦合度高,所以具有高效率的優點,代表系統包括 Linux、Unix 等)。微核心則將系統分為各個小的功能模組,僅將最核心的排程、記憶體管理功能保留在核心中,驅動、檔案系統等以“外部模組”的形式與核心連線,相應的優勢是易於擴充、易於維護與更新、穩定性高,代表系統包括 Windows、Mac OS X 等。
微核心更適應複雜的程式功能,且能夠更靈活地移植至不同硬體平臺。微核心僅在作業系統的核心中保留最基本功能,大大降低了核心的開發難度;分散式思維,將非核心的程式和模組隔離在核心之外,因此當單一程式出現錯誤時不會影響系統整體功能;同時,微核心相比單核心更易於移植,開發、更新週期也得以縮短。
仿照第一部分,同樣可作以下類比:若作業系統類比為車輛等交通工具,則不同核心結構相當於車輛的不同定製方式。單核心相當於商用整車,而微核心則類似支援深度定製車。在行駛過程中,商用整車雖整體執行效率高,但如果某一部件出現故障,則需要專人、同款備件才能維修;而定製車的很多模組可替代性本身就非常強,且能夠通過簡單改裝在不同路況下行駛(不同硬體環境)。
▲微核心在結構形式上比單核心更扁平化,也更靈活
鴻蒙微核心從底層即為物聯網設計。上述可知,微核心的最大特性是僅在核心中保留最核心功能,因此對於鴻蒙而言:連線實時性更好(響應時延降低 25.7%、時延波動率降低 55.6%),同時結合 5G 低時延場景,尤其適用於工業控制、智慧交通等物聯網領域;可以做到故障隔離,最大程度保證系統的穩定性與安全性,在 5G 超多連線場景下更能滿足萬物互聯的要求。
鴻蒙微核心體現分散式的特點,解決 IoT 生態協同的痛點。目前已有作業系統基本只對應於某一種硬體,如 Windows 對應 x86 PC、iOS 對應蘋果手機等。但 IoT 時代終端種類數量極大擴充,難以針對每種硬體分別開發作業系統或應用程式,不同硬體終端的生態無法共享協同,開發效率低。而鴻蒙實現了硬體解耦,即可針對應不同裝置進行彈性部署(例如智慧屏、穿戴裝置、車機、音響、手機等)。同時創新的分散式軟匯流排使得擁有不同功能的硬體可以彼此協同。
例如:傳統的相機、電視、音響等裝置原本相互獨立;但在鴻蒙的分散式軟匯流排下,這些裝置被“虛擬化”成攝像模組、顯示模組、外放模組,併成為有機整體,使用者無需另行設定即可按需呼叫各種功能,硬體終端之間形成相互協同。
▲未來基於微核心的鴻蒙作業系統將廣泛應用於 IoT 領域
微核心是 IoT 作業系統演進方向,鴻蒙微核心之效率、安全性業內領先。一般微核心系統,由於驅動、檔案系統等程式被外接,各模組之間的通訊需要經過核心“搭橋”,因而效率往往比單核心要低。但鴻蒙微核心對程式間通訊進行了高度優化,使得鴻蒙相比QNX、Fuchisia 效率提升 3 至 5 倍。此外,由於微核心的程式碼數量遠遠少於單核心,因此鴻蒙能夠以對每行程式碼進行充分的“形式化”的安全驗證,顯著提升了核心安全性。
2、 方舟編譯器是鴻蒙的取勝關鍵
方舟編譯器最早系華為於 2019 年 4 月在 P30 系列手機釋出會上公佈,但實際積澱十年,定位是多終端系統。華為早期表示方舟編譯器將大幅提升手機端安卓系統的執行效率,而開發編譯器其實是協助鴻蒙作業系統更深層次佈局邊緣計算、伺服器等領域。
對傳統編譯器而言,編譯時點、跨語言編譯是制約應用程式執行效率的瓶頸。應用程式的執行要經過位元組碼到機器碼的轉換,程式設計師在程式設計時使用上述 C、C++、Java、C#等程式語言,但硬體的執行邏輯是基於 0 和 1 的二進位制。因此要讓硬體能夠“讀懂”指令,就需要編譯器把“程式語言”轉譯成“機器語言”。
(1)編譯時點:根據編譯器工作時點的不同,編譯方式可分為兩種,但執行效率仍有提升空間。一種是“邊執行、邊翻譯”,程式呼叫了某一句指令,編譯器就實時將其轉譯為二進位制碼(早期版本安卓使用該方案,程式執行效率低下);另一種是引進高效能虛擬機器(在安卓系統中為 ART,即 Android Run Time),在程式安裝時或系統空閒時就提前將程式碼轉譯完畢,進一步提升了程式執行效率,但新的問題在於程式安裝時間長。
(2)跨語言編譯:程式往往使用不同語言編寫,對編譯效率產生較大影響。例如採用Java 和 C/C++等多種語言混合開發的應用程式,在執行時需要藉助通用介面來協調不同程式碼(即 Java Native Interface,JNI)。通用介面需要佔用硬體資源,同時不同程式碼的協調本身就低效,所以傳統編譯器下跨語言應用的執行效率較低。
方舟編譯器對以上兩大瓶頸的解決方案是:將編譯過程提前至開發者環節。在安卓的體系下,一些複雜動態語義的編譯仍需交由虛擬機器完成。方舟編譯器開發團隊通過梳理 Java的動態語義,進行了大規模的資料建模,尤其是在跨語言編譯時,大大提高了動態語義分析的精度;另外,華為設計了一套具有核心專利的動態語義匹配機制,有效降低了執行時動態語義的開銷。最終結果是,方舟編譯器能夠在應用程式執行之前,就將 Java 程式碼編譯成機器語言,極大釋放了硬體資源,這一點對於多終端尤其是物聯網邊緣計算而言尤為重要。
方舟編譯器對開發者友好,利於形成良好生態。過去安卓等系統避免在開發者環節涉及編譯,一大原因是為了降低開發難度,開發者只需完成程式碼編寫即可,而無需考慮如何跨語言編譯。但方舟方案下將編譯過程提前至開發環節,並不增加開發者負擔,相反開發者還能通過方舟預置演算法進行程式碼優化,還可自行開發程式碼優化演算法,未來程式碼優化甚至有可能遷移至雲端。開發環境友好是鴻蒙搭建良好生態的重要因素。
對於方舟編譯器,也可類比如下:過去 ART 虛擬機器搭配安卓系統,相當於經驗豐富的司機駕駛傳統的手動擋汽車;而方舟編譯器搭配鴻蒙作業系統,則相當於搭載了 L4 級別自動駕駛的車輛,車輛行駛可以隨時根據車況、路況靈活調整,保證所有乘客的乘車體驗均為最佳。
相容 Java 和 C、C++等多種語言增強了鴻蒙即戰力,並與自有麒麟、鯤鵬等硬體架構協同,形成類似 Win-tel 的軟硬體格局。
▲華為 IoT 已形成類似 x86 領域成體系的晶片家族
因此綜合微核心、方舟編譯器兩大要素看,鴻蒙生而為物聯網設計,並非單純以手機作業系統為主要陣地。一方面,對於華為成熟的手機業務而言,做系統容易,但建生態難,當前安卓和蘋果已構建了幾乎不可打破的生態系統,在條件允許的情況下繼續使用安卓對於華為是一種資源節約。
進一步更通俗地解釋:對於開發者編寫的不同程式,只需經過方舟編譯器的處理,鴻蒙作業系統即可順利執行;且微核心下的鴻蒙可移植於不同平臺。這樣的系統特性天然適配於物聯網時代的海量終端與海量應用。
5G+IoT 時代的蘋果
蘋果曾是 3G、4G 移動網際網路時代成長的新興巨頭,回顧蘋果的崛起路程,在生態、硬體、先發優勢+持續創新三方面體現優勢。
1、生態。在蘋果之前,微軟曾於 1996 年釋出可執行於手機的 Windows CE 作業系統;塞班於 2001 年釋出 symbian S60 作業系統,一度獲得諾基亞、三星、索尼愛立信、摩托羅拉、西門子等眾多手機大廠支援,但由於 symbian 系統對開發者不友好、核心臃腫,在3G 時代到來後蘋果抓住移動網際網路的機會推出iOS,並搭建擁有高質量應用的 AppStore,強大的開發者生態不斷增強蘋果公司的生命力 。
2、硬體。相較之前的手機品牌,蘋果擁有體系完整的硬體產業鏈,且在上下游擁有極強的議價能力,並在手機之外推出 Macbook、iPod、iPad 等產品,不斷拓寬硬體“能力圈”。在優質生態的基礎上,緊密的硬體產業鏈一方面可以提升公司盈利能力,另一方面軟硬協同也極大提升了方案本身的使用體驗。
3、 先發優勢+持續創新。通過良性迴圈的生態+軟硬體協同形成護城河之後,蘋果不斷前瞻移動裝置領域的新技術、新應用,且能夠持續迭代,逐步把持了行業的發展方向,最終成為移動網際網路時代的一大巨頭。
但隨著 C 端移動網際網路紅利見頂,蘋果在 5G+IoT 時代增長乏力。隨著技術演進,蘋果近年來也暴露出一些問題:生態不如安卓開源;核心硬體受制於外部(比如基帶依賴高通、英特爾);後續創新乏力(新款 iPhone 難言成功)。在 5G+IoT 時代,其他 ICT 廠商開始面臨新的機會。
產業網際網路新藍海下,“華為之於物聯網”可類比“蘋果之於移動網際網路”。 生態。鴻蒙與方舟編譯器將開源,擁抱海量開發者。以手機端為例,方舟編譯器與超過 40 個高質量 App 合作,明顯優化 Android 作業系統的流暢度。在更廣泛的 IoT 領域,方舟編譯器支援多語言統一編譯,也支援混合程式設計,實現“一次程式設計,多端使用”,極大降低了開發者負擔(例如對於某款應用,只需要一次性完成程式碼,就可以適配於手機、電視、車機等多種終端)。因此藉助方舟編譯器,鴻蒙將搭建完善的 IoT 生態。
硬體。華為擁有強大 ICT 硬體基因,已推出從底層硬體到中介軟體、作業系統,再到到編譯工具、應用軟體的全棧軟硬體方案。類比蘋果產業鏈,華為內部已基本形成核心硬體環節的自研,例如新發布的前端昇騰 310+後端鯤鵬 920 的安防軟硬標準化解決方案,又如自研基於鯤鵬 920 的 Taishan 伺服器等全棧軟硬體系統在山東移動 BSS 實現國產替代等。因此鴻蒙相比谷歌 Fushcia 等純軟體體現出硬體優勢(蘋果於 2019 年 7 月收購英特爾 5G 基帶部門也體現自研晶片對系統生態的重要性)。
▲包括網路晶片在內,華為海思已形成全系列晶片組平臺
▲華為全棧軟硬體已在運營商 CRM 核心系統應用
先發優勢+持續創新。鴻蒙前身 LiteOS 早已推出,擁有商用經驗和先發優勢。物聯網基礎是網路,華為在 5G 領域的深厚積澱。例如,其於 2019 年初發布首款商用 5G 多模終端晶片 Balong 5000 和首款 5G 商用終端華為 5G CPE Pro。Balong 5000 在 Sub-6GHz頻段實現 4.6Gbps、在毫米波頻段達 6.5Gbps 的峰值下載速率,並支援 SA 和 NSA 組網,已經完全滿足未來 5G 產業不同階段的商業需求,相比行業標杆的高通 X50 已取得領先。華為 5G 技術的先發優勢與持續創新是鴻蒙作為 IoT 多終端作業系統取得成功的保障。
▲華為 5G 宣告專利量排名居各廠商第一位
作業系統意味著應用平臺與流量入口。上述從生態、硬體、先發優勢+持續創新三方面看,擁有作業系統將幫助華為在物聯網領域擁有更強話語權,將沿蘋果在移動網際網路時代的路徑,成長為 5G+IoT 的巨頭。
鴻蒙將完善華為 IoT 生態,催化產業程式
IoT 是華為在產業物聯網時代的重要佈局,華為主要聚焦於基礎設施領域。海量低成本終端裝置連線需要保證聯接可管可控,且全網連續覆蓋,以及端側(終端)、傳輸、雲端安全。華為多年深耕 ICT 基礎設施,全棧軟硬體保證 IoT 方案穩定性。據華為 2018 年全聯接大會,華為物聯網聯接數超過 2 億,每月增長 600 萬聯接,日均 API 呼叫超過 1.3億,方案成熟度高。
鴻蒙作業系統與華為“雲+端”晶片形成強大合力,形成殺手鐗應用。華為優質網路裝置是 IoT 的連線基礎,連線獲得了大量資料,但只有通過智慧分析才能夠形成殺手鐗應用。華為已在雲側和端測擁有昇騰、鯤鵬、麒麟等晶片,具備強大算力,疊加鴻蒙作業系統高效、靈活的執行能力,將培育大量高價值應用。
車聯網、智慧城市、工業是華為 IoT 的三大應用方向,目前三大應用成熟度各有不同,鴻蒙作業系統預計將在三大領域起催化作用。
▲華為已培育車聯網、智慧城市、工業三大 IoT 方向
車聯網:快速興起的 IoT 場景。當前車聯網更多是實現車與路的主動協同溝通,逐步實現從輔助駕駛到自動駕駛,並做到大大降低成本。基於 C-V2X,華為已擁有完整的車聯網硬體體系,具體包括晶片、OBU 盒子、RSU 實現路邊感知裝置、雲端蒐集資料和資料處理的 V2X 伺服器等。我們預計未來終端的前裝和後裝市場、定位與地圖(華為已獲得甲級測繪資質,未來鴻蒙+巴龍 5000 晶片+高精地圖具有想象空間)、後端資料處理(鴻蒙+Taishan 伺服器+鯤鵬晶片的強大算力組合)將是重要的產業方向。
智慧城市:較為成熟,從網際網路向物聯網過渡。智慧城市是城市級網路接入、NB-IoT 廣覆蓋、低成本低功耗特點的體現,我們預計未來擴充方向包括智慧園區(鴻蒙+安防領域基於鯤鵬/昇騰的 Huawei HoloSens)、智慧家居(鴻蒙+基於鴻鵠 818 晶片的榮耀智慧屏)等。
工業:5G 提供新機會。工業網際網路痛點之一在於網路連線,痛點之二在於行業Knowhow。網路連線的難題將在 5G 商用與網路切片推廣後迎刃而解,華為將是網路基礎設施的核心供應商;對於行業 Knowhow,鴻蒙強調搭建生態圈,且具備開發者友好的特性,利於培育不同垂直行業客戶並積累經驗。此外華為已面向各行業推出“華為雲 EI 智慧體”,華為雲已擁有超過 100 萬開發者和企業使用者4,初步形成良性生態。
綜上,鴻蒙作業系統的推出將對華為各業務板塊產生積極作用,並推動 IoT 產業程式,預計華為產業鏈眾多公司將受益。
智東西認為,華為創始人任正非曾在接受法國媒體採訪時詳細介紹了鴻蒙作業系統。他表示,鴻蒙系統的處理延遲小於5毫秒,將完美地適應物聯網,還能夠應用於自動駕駛。現在,隨著華為在全球開發者大會上正式釋出鴻蒙系統,鴻蒙作業系統的神祕面紗也已被揭開。作為一款微核心面向全場景的分散式作業系統,鴻蒙誕生之初似乎就是為了物聯網準備的,但是,一款作業系統的成功與否最重要的還是生態系統的搭建,未來,華為若想不負眾望,在5G萬物互聯時代搭建起強大的生態系統,成為5G+IoT 時代的“蘋果”,還需要加倍努力。
相關文章
- 運營級WLAN網路架構及關鍵技術探討架構
- 現代資料架構的7個關鍵技術架構
- Docker技術全景:推動雲原生架構的關鍵力量Docker架構
- 鴻蒙系統系列教程3-鴻蒙OS的技術特徵講解鴻蒙特徵
- 技術架構的關注點架構
- 掘金技術整理(一)掘金的後端架構後端架構
- 直播CDN排程技術關鍵挑戰與架構設計架構
- Spring Cloud分散式微服務架構技術整理SpringCloud分散式微服務架構
- 移動域全鏈路可觀測架構和關鍵技術架構
- 快應用技術架構及業務分析架構
- 餘額寶技術架構及演進架構
- QTP關鍵技術QT
- WEB 架構技術Web架構
- 鴻蒙OS學習資料整理,持續更新中鴻蒙
- 視訊通訊關鍵技術探索及實踐
- 美團容器平臺架構及容器技術實踐架構
- 網站技術架構網站架構
- 大型網站技術架構(三)--架構模式網站架構模式
- 大型網站技術架構(二)--架構模式網站架構模式
- 鴻蒙的技術特性鴻蒙
- 微服務框架相關技術整理微服務框架
- 大資料處理的關鍵技術及應用大資料
- 衝頂大會APP技術選型及架構設計APP架構
- 業務架構、資訊架構、技術架構三位一體架構
- 我的“技術架構”之旅架構
- springcloud技術架構理解SpringGCCloud架構
- BOSS系統技術架構架構
- 大型網站技術架構(四)--核心架構要素網站架構
- 品讀鴻蒙HDF架構(二)鴻蒙架構
- 架構圖整理架構
- 高德客戶端及引擎技術架構演進與思考客戶端架構
- 區塊鏈不談技術的都是韭菜——區塊鏈技術組成及架構區塊鏈架構
- 快速搭建微服務架構的關鍵微服務架構
- 現代前端架構:關鍵概念指南前端架構
- 袋鼠雲:基於Flink構建實時計算平臺的總體架構和關鍵技術點架構
- 大型網站技術架構(三)--架構核心要素網站架構
- 學習-zabbix架構及術語架構
- 大資料的關鍵技術大資料