首页 > 技术文章 > 鸿蒙系统之我见

iterationjia 2020-11-16 16:59 原文

鸿蒙OS

1 简介

Harmony OS是一款面向全场景的分布式操作系统。提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。

2 发展原因

2.1 直接原因

受美国制裁,华为不再能获得GMS服务的授权,导致华为手机没有了对海外应用的移动服务支持和Google全家桶。此外,华为手机不再能接受新版Android的更新。这些使得华为手机失去了竞争力。因此,华为加紧了HMS的开发,同时也愈加重视面向多场景的鸿蒙操作系统。

2.2 深层原因

考虑到只是断供了GMS,我也曾想过华为是否可以只做好HMS,同时基于AOSP的基础框架做开发。并且EMUI也优化了这么多年,没有必要从零开始。但经过资料查询和仔细思考后,我觉得应该开发鸿蒙还有如下深层原因。

  • 物联网时代,华为需要发展一款面向多场景的操作系统,当然也包括智能手机。

  • Android虽然遵从开源协议,但基于Apache 许可证分发的软件也受美国出口管制,存在政治上不确定性,因而基于AOSP做开发不是没有风险。

  • 华为自身需要进步,在系统层面做到自给自足。并且使用Harmony OS和HMS更适合华为设备,就像麒麟芯片比高通、联发科芯片更适合华为手机。这一点,是Android难以做到的。

  • 与其同国内厂商一起吃安卓份额,华为可以做成除IOS、Android之外的第三个主流手机操作系统,打破二分天下局面,并且学习IOS用生态圈给自己带来巨额的利润。

3 系统特点

3.1 IOT系统

Harmony OS是适用于IOT的全场景、多设备系统,其适用范围远大于Android OS,可以用于各式各样的智能设备上。其设计理念接近于Fuchsia OS。

3.2 分布式架构

分布式架构首次用于终端OS,可以实现跨终端无缝协同体验。并且Harmony OS采用的多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关,降低了开发难度和成本,有利于一次开发,多端部署。

3.3 安全流畅

保证“正确的人,通过正确的设备,正确地使用数据”。此外,确定性延时引擎和高性能IPC技术实现系统天生流畅。

3.4 基于微内核

不同于Android的宏内核,Harmony OS将系统分成小模块,有利于系统的设计与修改和架构的可信安全,但微内核也有通信失效率过高的问题。

3.5 灵活裁剪

Harmony OS采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。

4 系统架构

Harmony OS整体为分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。按照“系统 > 子系统 > 功能/模块”逐级展开,并且可支持裁剪子系统或模块。

4.1 内核层

  • 内核子系统:采用多内核设计,支持针对设备类型选择合适OS内核,如Linux Kernel和Lite OS。内核抽象层可屏蔽多内核差异,向上层提供包括内存管理、文件系统、进程管理等能力。
  • 驱动子系统:作为硬件生态开放基础,提供统一外设访问能力以及驱动开放管理框架。

4.2 系统服务层

作为系统核心能力集合,通过框架层对应用程序提供服务,包括系统基本能力子系统集(支持运行、调度、迁移等操作)、基础软件服务子系统集(提供公共的、通用的软件服务)、增强软件服务子系统集(提供针对不同设备的差异化服务)、硬件服务子系统集(提供硬件服务)。支持按子系统粒度裁剪,也支持子系统内部按功能粒度裁剪

4.3 框架层

  • 为应用程序提供多语言用户程序框架和Ability框架,以及各种对外开放的多语言框架API。
  • 为设备提供多语言框架API,不同设备支持的API与系统的组件化裁剪程度相关。

4.4 应用层

包括系统应用和第三方非系统应用。由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA提供后台运行任务的能力和数据访问抽象。

5 总结

  • 优点:与华为设备、华为芯片协同能力优于安卓;符合IOT发展趋势,支持灵活裁剪;微内核与分布式,实践创新;支持兼容安卓,免去二次开发。
  • 缺点:在手机领域,IOS和Android迭代了很多版本,而鸿蒙才到2.0;还需要先让HMS做好移动服务,大力发展生态链;

推荐阅读