华为鸿蒙操作系统全景解构
从技术、生态两角度看,操作系统对于 ICT 厂商而言具有重要意义,鸿蒙操作系统的推出,对华为、对我国自主可控进程的意义不言而喻。
微内核、方舟编译器是鸿蒙生态的两大核心要素。微内核更适应复杂的程序功能,且能够更灵活地移植至不同硬件平台;方舟编译器通过将编译过程提前至开发者环节提升应用执行效率,这一点对于多终端尤其是物联网边缘计算而言尤为重要。结合以上两大要素看,鸿蒙生而为 IoT 设计。
车联网、智慧城市、工业是华为 IoT 的三大应用方向,目前三大应用成熟度各有不同,鸿蒙操作系统预计将在三大领域起催化作用。
本文参考自“华为鸿蒙操作系统全景解构”报告,全文详细介绍微内核、方舟编译器两大鸿蒙生态核心要素,以及鸿蒙完善的IoT生态,目录和下载链接如下:
下载链接:华为鸿蒙操作系统全景解构
本号资料全部上传至知识星球,更多内容请登录全栈云技术知识星球下载全部资料。
操作系统(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 的发布进一步稳固了微软在操作系统领域的领先地位。
尽管芯片是 ICT 生态的底层核心,但 Windows 背后庞大的应用生态决定了微软对芯片商有较高话语权。微软于 2018 年公布 Win10 操作系统已拥有 3500 万个应用、超 1.75亿个软件版本,支持 1600 万个硬件/驱动组合。微软三十余年积累海量开发者,拥有庞大的应用基础,因此对芯片架构的选择拥有一定话语权。在 x86 以外微软已针对 ARM 架构推出新一代操作系统,英特尔以外的芯片商将受益 Win 生态的拓展。
另外,ICT 领域自主可控不仅体现在以芯片为代表的硬件层,更需要操作系统带动生态可持续。“基础软件的短板主要在操作系统,芯片的短板主要在 EDA(电子设计自动化)设计工具等领域”。芯片层的创新与投入一直是产业与资本的关注重点,但持续研发需要商用以及操作系统带动应用软件同步推进,如果没有商用阶段的现金流再投资,则芯片层的创新难以持续迭代。
华为“鸿蒙”概念的公开时点虽受到外部环境影响,但实际已积淀大量商用经验。鸿蒙操作系统的发布时点体现重大意义,但并非是“从无到有”的过程,2012 年华为就已开发物联网操作系统 LiteOS,并在可穿戴设备、智能家居、车联网、LPWA 等领域应用,是鸿蒙操作系统的雏形。
LiteOS 解决物联网应用成本、连接、安全三大痛点,体现华为早期就已探索布局 IoT领域。
(1)低成本、低功耗。物联网需要海量终端接入,且大多数边缘设备为小型化、可移动,因此对续航能力与单位成本提出较高要求。LiteOS 内核小于 10k,同时通过 MCU 和通信模组二合一的 OpenCPU 架构,能够显著降低终端体积和终端成本。且超低功耗,甚至 1 节 5 号电池可工作 5 年。
(2)连接多样。物联网终端在不同场景下需要不同形式的网络连接,尤其进入到 5G时代后,对系统的连接性能和兼容性要求严格。连接拓展性能强,支持 6LoWPAN、WiFi、BTE、Zigbee 等多种协议,且设备间可以自组网、自发现、互操作,能够满足物联网应用的不同连接需求。
(3)安全。物联网边缘计算需要“云”+“端”协同,互联互通后数据泄露成为物联网系统的重大隐患。LiteOS 以极小体积的内核实现了双向认证、差分升级、DTLS/DTLS+等机制。
未来成熟商用的LiteOS 将逐步融入鸿蒙操作系统,逐步增强鸿蒙生态的多终端开发能力。在鸿蒙之前,华为已形成 HiLink(连接标准)+LiteOS(操作系统)+芯片(算力)的IoT“三件套”体系。进一步 LiteOS 与鸿蒙结合,将在 IoT 领域形成强大合力。
鸿蒙从设计之初就为多终端(如边缘计算 IoT、服务器等)而生,微内核、方舟编译器作为鸿蒙操作系统生态的两大核心要素。微内核乃操作系统的一种结构形式,将系统实现各功能的模块化,更灵活,易于拓展、易于维护与更新迭代;编译器可视为人与机器的“翻译”,将人的程序语言翻译给计算机可理解并执行,是人与计算机之间实现沟通的桥梁。
微内核与宏内核相对应,是操作系统的一种结构形式。操作系统的核心功能包括文件系统、内存和 I/O 设备管理、CPU 调度等,宏内核即指操作系统将上述功能全部“打包集成”在内核里,不同的功能模块之间耦合度高,所以具有高效率的优点,代表系统包括 Linux、Unix 等)。微内核则将系统分为各个小的功能模块,仅将最核心的调度、内存管理功能保留在内核中,驱动、文件系统等以“外部模块”的形式与内核连接,相应的优势是易于拓展、易于维护与更新、稳定性高,代表系统包括 Windows、Mac OS X 等。
鸿蒙微内核从底层即为物联网设计。上述可知,微内核的最大特性是仅在内核中保留最核心功能,因此对于鸿蒙而言:连接实时性更好(响应时延降低 25.7%、时延波动率降低 55.6%),同时结合 5G 低时延场景,尤其适用于工业控制、智能交通等物联网领域;可以做到故障隔离,最大程度保证系统的稳定性与安全性,在 5G 超多连接场景下更能满足万物互联的要求。
鸿蒙微内核体现分布式的特点,解决 IoT 生态协同的痛点。目前已有操作系统基本只对应于某一种硬件,如 Windows 对应 x86 PC、iOS 对应苹果手机等。但 IoT 时代终端种类数量极大拓展,难以针对每种硬件分别开发操作系统或应用程序,不同硬件终端的生态无法共享协同,开发效率低。而鸿蒙实现了硬件解耦,即可针对应不同设备进行弹性部署(例如智慧屏、穿戴设备、车机、音箱、手机等)。同时创新的分布式软总线使得拥有不同功能的硬件可以彼此协同。
微内核是 IoT 操作系统演进方向,鸿蒙微内核之效率、安全性业内领先。一般微内核系统,由于驱动、文件系统等进程被外置,各模块之间的通信需要经过内核“搭桥”,因而效率往往比宏内核要低。但鸿蒙微内核对进程间通信进行了高度优化,使得鸿蒙相比QNX、Fuchisia 效率提升 3 至 5 倍。此外,由于微内核的代码数量远远少于宏内核,因此鸿蒙能够以对每行代码进行充分的“形式化”的安全验证,显著提升了内核安全性。
方舟编译器最早系华为于 2019 年 4 月在 P30 系列手机发布会上公布,但实际积淀十年,定位是多终端系统。华为早期表示方舟编译器将大幅提升手机端安卓系统的运行效率,而开发编译器其实是协助鸿蒙操作系统更深层次布局边缘计算、服务器等领域。对传统编译器而言,编译时点、跨语言编译是制约应用程序执行效率的瓶颈。应用程序的执行要经过字节码到机器码的转换,程序员在编程时使用上述 C、C++、Java、C#等程序语言,但硬件的执行逻辑是基于 0 和 1 的二进制。因此要让硬件能够“读懂”指令,就需要编译器把“程序语言”转译成“机器语言”。
方舟编译器对以上两大瓶颈的解决方案是:将编译过程提前至开发者环节。在安卓的体系下,一些复杂动态语义的编译仍需交由虚拟机完成。方舟编译器开发团队通过梳理 Java的动态语义,进行了大规模的数据建模,尤其是在跨语言编译时,大大提高了动态语义分析的精度;另外,华为设计了一套具有核心专利的动态语义匹配机制,有效降低了运行时动态语义的开销。最终结果是,方舟编译器能够在应用程序执行之前,就将 Java 代码编译成机器语言,极大释放了硬件资源,这一点对于多终端尤其是物联网边缘计算而言尤为重要。
方舟编译器对开发者友好,利于形成良好生态。过去安卓等系统避免在开发者环节涉及编译,一大原因是为了降低开发难度,开发者只需完成代码编写即可,而无需考虑如何跨语言编译。但方舟方案下将编译过程提前至开发环节,并不增加开发者负担,相反开发者还能通过方舟预置算法进行代码优化,还可自行开发代码优化算法,未来代码优化甚至有可能迁移至云端。开发环境友好是鸿蒙搭建良好生态的重要因素。
对于方舟编译器,也可类比如下:过去 ART 虚拟机搭配安卓系统,相当于经验丰富的司机驾驶传统的手动挡汽车;而方舟编译器搭配鸿蒙操作系统,则相当于搭载了 L4 级别自动驾驶的车辆,车辆行驶可以随时根据车况、路况灵活调整,保证所有乘客的乘车体验均为最佳。兼容 Java 和 C、C++等多种语言增强了鸿蒙即战力,并与自有麒麟、鲲鹏等硬件架构协同,形成类似 Win-tel 的软硬件格局。
产业互联网新蓝海下,“华为之于物联网”可类比“苹果之于移动互联网”。
①生态。鸿蒙与方舟编译器将开源,拥抱海量开发者。以手机端为例,方舟编译器与超过 40 个高质量 App 合作,明显优化 Android 操作系统的流畅度。在更广泛的 IoT 领域,方舟编译器支持多语言统一编译,也支持混合编程,实现“一次编程,多端使用”,极大降低了开发者负担(例如对于某款应用,只需要一次性完成代码,就可以适配于手机、电视、车机等多种终端)。因此借助方舟编译器,鸿蒙将搭建完善的 IoT 生态。
②硬件。华为拥有强大 ICT 硬件基因,已推出从底层硬件到中间件、操作系统,再到到编译工具、应用软件的全栈软硬件方案。类比苹果产业链,华为内部已基本形成核心硬件环节的自研,例如新发布的前端昇腾 310+后端鲲鹏 920 的安防软硬标准化解决方案,又如自研基于鲲鹏 920 的 Taishan 服务器等全栈软硬件系统在山东移动 BSS 实现国产替代等。因此鸿蒙相比谷歌 Fushcia 等纯软件体现出硬件优势(苹果于 2019 年 7 月收购英特尔 5G 基带部门也体现自研芯片对系统生态的重要性)。
③先发优势+持续创新。鸿蒙前身 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+IoT 的巨头。
下载链接:华为鸿蒙操作系统全景解构
2、信创产业研究框架
3、ARM行业研究框架
4、CPU研究框架
5、国产CPU研究框架
6、行业深度报告:GPU研究框架
本号资料全部上传至知识星球,更多内容请登录全栈云技术知识星球下载全部资料。
免责申明:本号聚焦相关技术分享,内容观点不代表本号立场,可追溯内容均注明来源,发布文章若存在版权等问题,请留言联系删除,谢谢。
电子书<服务器基础知识全解(终极版)>更新完毕,知识点深度讲解,提供182页完整版下载。
获取方式:点击“阅读原文”即可查看PPT可编辑版本和PDF阅读版本详情。
温馨提示:
请搜索“AI_Architect”或“扫码”关注公众号实时掌握深度技术分享,点击“阅读原文”获取更多原创技术干货。