想要了解更多请访问:Harmonyos技术社区https://harmonyos.51cto.comHarmonyOS是一个面向万物互联时代的全新分布式操作系统。HarmonyOS在传统单设备系统能力的基础上,提出了基于同一套系统能力,适配多种终端形态的分布式概念。为实现“基于同一套系统能力,适配多种终端形态”,HarmonyOS采用“组件化”的设计方案,根据设备的资源能力和业务特性实现灵活裁剪,满足不同形式的终端设备对操作系统的要求。1、为什么采用“组件”设计方案?分层体系结构是目前最流行、应用最广泛的软件体系结构设计方法,它将整个软件系统从上到下垂直划分为若干个层次。抽象特定行为。层与层之间的单向依赖,上层使用下层的各种服务,而下层不知道上层。虽然每一层都为其上层提供接口,但它隐藏了内部实现细节。对于中小型系统,基于架构的分层可以更好地解决系统架构解耦和跨团队协作的问题。每一层都提供一定的业务功能,不同的小团队可以负责每一层不同的业务交付。但是,对于操作系统这么大的软件系统,仅仅有架构层是不够的,因为每一层都非常复杂,同一层的不同模块相互依赖,调用无序。如果没有进一步的组件化架构,必将给软件工程和项目管理带来巨大的灾难。图1架构分层基于以上原因,HarmonyOS采用了组件化的设计方案,先将复杂的操作系统架构分层,再将每一层组件化。让我们详细了解HarmonyOS的“组件化”设计方案。二、“组件化”设计方案详解1、HarmonyOS架构分层首先,我们来看看HarmonyOS系统是如何分层的。图2HarmonyOS架构层次如图2所示,HarmonyOS分为以下几层:应用层:由应用开发者交付,为最终消费者提供UI界面,负责消费者体验。应用层只依赖框架层提供的API,应用开发只依赖HarmonyOS发布的SDK。框架层、系统服务层、内核层:这三层属于HarmonyOS基础平台,由HarmonyOS平台开发者交付。为北向应用生态提供API和SDK,为南向设备生态提供DriverInterface和DDK(DriverDevelopmentKit,驱动开发包)。驱动程序开发包)。驱动层:由设备开发者交付,为HarmonyOS提供设备驱动实现。驱动层只依赖驱动框架提供的DriverInterface,驱动开发只依赖HarmonyOS发布的DDK。我们通过架构分层的方式解构鸿蒙操作系统的大粒度体系,方便不同的生态参与者。参与者可以相对独立,也可以相互合作,共同打造各类智能终端设备和丰富的应用软件,为消费者带来全场景的智能服务体验。2、HarmonyOS基础平台的组件化HarmonyOS基础平台包括框架层、系统服务层和内核层三部分。HarmonyOS在这三层上进行了进一步的组件化设计。内核层的组件化如图3所示。内核层包括三个组件:LiteOS、Linux和驱动框架。LiteOS和Linux组件可以根据需要部署在不同的设备上。这两个组件向系统服务层提供POSIX(PortableOperatingSystemInterface,便携式操作系统接口)和CMSIS(CommonMicrocontrollerSoftwareInterfaceStandard,通用微处理器软件接口标准)接口,用于屏蔽不同内核实现的差异。驱动框架组件向驱动层提供DriverInterface和DDK,向系统服务层提供标准化的硬件操作接口HDI(HarmonyOSDriverInterface)。图3内核层组件化框架层/系统服务层组件化HarmonyOS系统架构分层按照功能定位区分系统服务层和框架层。系统服务层是所有系统服务的汇总,通过框架层将API暴露给应用程序。单个系统能力的实现通常分布在系统服务层和框架层。考虑到系统服务与框架的紧耦合,系统服务层与框架层的层间接口在HarmonyOS中并没有统一定义。如图4所示,HarmonyOS将系统服务和同一个功能实现的框架组合在一起,形成独立的“组件”。每个组件提供一个系统能力和相应的API接口。基于InnerSDK完成组件间的解耦,支持组件独立代码下载、独立编译、独立测试和组件组装。图4框架层/系统服务层组件化3.如何在多终端上部署HarmonyOS?经过“组件化”设计,HarmonyOS支持根据设备的资源能力和业务特性灵活裁剪,满足不同类型终端设备的操作系统需求。也就是说,一套HarmonyOS可以部署到不同的终端设备上。为了部署在不同形态的终端设备上,HarmonyOS细分为以下四种基本系统规格:128KiB,如智能家居领域的连接模块、传感器设备、可穿戴设备等。可提供多种轻量级网络协议、轻量级图形框架、丰富的物联网总线读写组件等。小系统是面向应用处理器的设备,最小支持1MiB内存,如IPCamera、电子窥视孔、智能家居领域的路由器、行车记录仪等。它可以为视频编解码器提供更高的安全能力、标准的图形框架和多媒体能力。标准系统是针对带有应用处理器的设备,设备支持的最小内存为128MiB,比如带有屏幕的物联网设备和智能手机。它可以提供增强的交互能力、3DGPU和硬件合成能力、更多的控件和图形能力以及更丰富的动画效果,以及完整的应用程序框架。大型系统(largesystem)是面向应用处理器的设备,最小支持1GiB内存,比如智慧屏、智能手表等。可提供支持兼容第三方OS系统的应用框架。根据不同的系统规范,HarmonyOS分别定义了最小系统必备组件集和对应的可选组件集。产品部署HarmonyOS时,根据系统规格类型选择对应的最小系统必备组件集,根据不同产品的差异化功能需求选择可选组件。基于组件间依赖管理,如果选择了一个可选组件,则该组件所依赖的其他组件将自动打包到HarmonyOS系统中。图5选择组件在开发者资源中心DevEcoMarketplace,您可以管理组件,灵活组合不同的产品方案。关于DevEcoMarketplace的详细介绍可以参考之前的推文。DevEcoMarketplace链接如下:https://repo.harmonyos.com组件是组装HarmonyOS的部件。每个组件都提供了一定的系统能力,有的组件还涉及为应用程序暴露API接口。不同的组件组合部署在特定的设备上,为应用提供的API能力也会有所不同。在这篇文章中,我们详细讲解了组件的部署原理。后续我们将进一步详细分析组件架构下组件运行状态管理、SDK管理和应用分发的原理。敬请期待!更多信息请访问:https://harmonyos.51cto.com,与华为共同打造的鸿蒙技术社区
