一、HarmonyOS介绍

系统定义

HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。


1.对消费者而言,鸿蒙系统能够将生活场景中的各类终端进行能力整合,形成一个“超级虚拟终端”,可以实现不同的终端设备之间的快速连接、能力互助、资源共享,匹配合适的设备、提供流畅的全场景体验。


2.对应用开发者而言,鸿蒙系统采用了多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关,降低了开发难度和成本。这能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发应用。


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

技术特性

HarmonyOS四大技术特性

1.分布式架构首次用于终端OS,实现跨终端无缝协同体验

2.确定时延引擎和高性能IPC技术实现系统天生流畅

3.基于微内核架构重塑中断设备可信安全

4.通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享

分布式软总线示意图 如下:

技术特性

技术架构

HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块,技术架构如下:

技术架构

系统安全

在搭载HarmonyOS的分布式终端上,可以保证“正确的人,通过正确的设备,正确地使用数据”。

通过“分布式多端协同身份认证”来保证“正确的人”。

通过“在分布式终端上构筑可信运行环境”来保证“正确的设备”。

通过“分布式数据在跨终端流动的过程中,对数据进行分类分级管理”来保证“正确地使用数据”。


在分布式终端场景下,“正确的人”指通过身份认证的数据访问者和业务操作者。“正确的人”是确保用户数据不被非法访问、用户隐私不泄露的前提条件。通过以下三个方面来实现协同身份认证:

零信任模型:鸿蒙系统基于零信任模型,实现对用户的认证和对数据的访问控制。当用户需要跨设备访问数据资源或者发起高安全等级的业务操作(例如,对安防设备的操作)时,操作系统会对用户进行身份认证,确保其身份的可靠性。

多因素融合认证:鸿蒙系统通过用户身份管理,将不同设备上标识同一用户的认证凭据关联起来,用于标识一个用户,来提高认证的准确度。

协同互助认证:鸿蒙系统通过将硬件和认证能力解耦(即信息采集和认证可以在不同的设备上完成),来实现不同设备的资源池化以及能力的互助与共享,让高安全等级的设备协助低安全等级的设备完成用户身份认证。

功能亮点

先进性:多终端统一 OS;分布式设备虚拟化;一次开发多端部署。


兼容性:POSIX 标准接口,兼容三方库;HDF 统一驱动框架,方便适配和移植;兼容业界主流芯片,支持快速产品化。


安全可信:HarmonyOS 内核通过形式化验证,软件技术全栈开源。


二、IDE

概述

HUAWEI DevEco Device Tool:HarmonyOS 智能设备一站式集成开发环境,支持组件按需定制、一键编译和烧录、可视化调试、分布式能力集成等,帮助开发者高效开发和创新新硬件。



HUAWEI DevEco Device Tool(以下简称DevEco Device Tool)是为智能设备开发者提供的一站式集成开发环境,支持组件按需定制,支持代码编辑、烧录和调试等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。该工具具有以下特点:


DevEco Device Tool以Visual Studio Code插件形式提供,体积小巧。

支持代码查找、代码高亮、代码自动补齐、代码输入提示、代码检查等,开发者可以轻松、高效编码。

支持ARM架构的Hi3516/Hi3518系列和RISC-V架构的Hi3861系列开发板,提供一键式的烧录和调试GUI界面。

支持单步调试能力和查看内存、变量、调用栈、寄存器、汇编等调试信息。

用户指南

DevEco Device Tool工具主要分为如下4个功能区域。

1.工具控制区:提供工程的导入、配置、烧录、调试等功能。

2.代码编辑区:提供代码的查看、编写和调试等功能。

3.输出控制台:提供操作日志的打印、调试命令的输入及命令行工具等功能。

3.快捷控制功能:提供DevEco Device Tool工具的快捷操作命令,如配置模板选择、工具检查、编译等快捷功能。

用户指南资料下载:https://bbs.elecfans.com/jishu_1989330_1_1.html

DevEco Device Tool工具图解

三、设计

定义了HarmonyOS的产品兼容性规范,使用鸿蒙系统的设备开发者有责任保证其设备的实现必须包含兼容性规范,确保其设备的兼容性。本文中的出现 “MUST(必须)”, “MUST NOT(禁止)”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” 根据RFC2119中定义的IETF标准。

兼容性规范目录

四、开发介绍

内核

HarmonyOS轻内核基础功能,进程,从系统的角度看,进程是资源管理单元。进程可以使用或等待CPU、使用内存空间等系统资源,并独立于其它进程运行。内核的进程模块可以给用户提供多个进程,实现了进程之间的切换和通信,帮助用户管理业务程序流程。这样用户可以将更多的精力投入到业务功能的实现中。内核使用musl libc库,支持标准POSIX接口,开发者可基于POSIX标准接口开发内核之上的组件及应用。

驱动

HDF(HarmonyOS Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载、驱动服务管理和驱动消息机制。旨在构建统一的驱动架构平台,为驱动开发者提供更精准、更高效的开发环境,力求做到一次开发,多系统部署。


HDF框架以组件化的驱动模型作为核心设计思路,为开发者提供更精细化的驱动管理,让驱动开发和部署更加规范。我们可以通过HarmonyOS驱动文档系统的了解驱动开发。HDF框架将一类设备驱动放在同一个host里面,驱动内部实现开发者也可以将驱动功能分层独立开发和部署,支持一个驱动多个node,HDF框架管理驱动模型如下图所示:

HDF驱动框架

子系统

分布式任务调度模块,通过主从设备服务代理机制,在鸿蒙操作系统上建立起分布式服务平台,支持主设备(智慧屏设备)启动从设备(IP Camera、运动手表等小内存HarmonyOS设备)FA的能力。


以智慧屏节目开播提醒为例,智慧屏上在喜欢的节目菜单中,点击“开播后提醒我”按钮,等节目开播后,智慧屏会拉起运动手表上的节目开播提醒FA。通过该FA用户可以快速知道喜欢的节目已经开始,达到协同互助的作用。

组件

HarmonyOS软件以组件(bundle)作为基本单元,从系统角度看,凡是运行在HarmonyOS上的软件都可以定义为组件;一般来讲,根据组件的应用范围,可以分为:板级组件:如board、arch、mcu这些与设备硬件相关的组件;系统组件:一组独立功能的集合,如内核、文件系统、框架等;应用组件:直接面向用户提供服务的应用(如wifi_iot,ip_camera)。通常情况下,您可以在HPM网站找到您开发常用的组件。


从形式上看,组件是为复用而生,一切可以复用的模块都可以定义为组件,可以分为:源代码、二进制、代码片段、发行版。

设备开发

HarmonyOS设备开发可以分为三种不同的产品类型,WLAN连接类产品无屏幕摄像头类产品带屏幕摄像头类产品,我们可以通过开发示例进一步加深对于产品的理解。

API参考

智慧视觉设设备与联接类模组,API参考地址

五、开发快速入门

Hi3861开发板

Δ Hi3861开发板介绍: Hi3861 WLAN模组的开发环境搭建、版本编译构建、烧录、源码修改、调试验证等方法。

Δ Hi3861开发板搭建环境: 介绍搭建环境所需要的硬件要求,并提供编译工具安装包。

Δ Hi3861开发板第一个示例程序: 本示例将演示如何通过AT命令完成WLAN模组配网。

Δ Hi3861开发板第二个示例程序: 本示例将演示如何编写简单业务,输出“Hello World”。

Hi3516开发板介绍

Δ Hi3516开发板介绍: Hi3516DV300在低码率、高画质、智能处理和分析、低功耗等方面引领行业水平。

Δ Hi3516开发板环境搭建: 介绍搭建环境所需要的硬件要求,并提供编译工具安装包。

Δ 开发Hi3516第一个应用程序示例: 本示例指导开发者在单板上运行第一个应用程序,其中包括修改应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。

Δ 开发Hi3516第一个驱动程序示例: 本示例指导开发者在单板上运行第一个驱动程序,其中包括驱动程序介绍、编译、烧写、运行等步骤。

Hi3518开发板

Δ Hi3518开发板介绍: 新一代智慧视觉处理SOC,集成新一代ISP(Image Signal Processor)以及业界最新的H.265视频压缩编码器,同时采用先进低功耗工艺和低功耗架构设计。

Δ Hi3518开发板环境搭建: 介绍搭建环境所需要的硬件要求,并提供编译工具安装包。

Δ 开发Hi3518第一个示例程序: 本示例指导开发者在单板上运行第一个应用程序,其中包括修改应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。

六、源码下载

OpenHarmony是HarmonyOS的开源版,第一个开源版本支持在128KB~128MB设备上运行。


那么如何获取OpenHarmony源码并说明OpenHarmony的源码目录结构。OpenHarmony的代码以组件的形式开放,开发者可以通过如下其中一种方式获取:


获取方式1:从镜像站点下载压缩文件(推荐)


获取方式2:从hpm网站组件式获取。通过HPM,查找满足需求的解决方案,挑选/裁剪组件后下载。


获取方式3:用包管理器命令行工具获取。通过HPM的hpm-cli命令行工具,执行命令下载。


获取方式4:从代码仓库获取。通过repo或git工具从代码仓库中下载。

七、典型产品

HarmonyOS WLAN模组

基于Hi3861平台提供了丰富的外设操作能力,包含I2C、I2S、ADC、UART、SPI、SDIO、GPIO、PWM、FLASH等。本文介绍如何通过调用HarmonyOS的NDK接口,实现对GPIO控制,达到LED闪烁的效果。其他的IOT外设控制,开发者可根据API指导文档完成,此处不逐一介绍。

摄像头类产品

介绍如何基于IoT Camera开发板,利用开发套件中自带的摄像头,完成拍照、录像功能。开发者可通过执行示例应用,对开发板的外设控制有了更深入了解后,可使用开发板完成“监控摄像头”等设备。

摄像头与屏幕类产品

将介绍如何基于IoT Camera开发板,利用开发套件中自带的摄像头和屏幕,完成拍照、录像和视频预览功能。开发者可通过执行示例应用,对开发板的外设控制有了更深入了解后,可使用开发板完成“智能猫眼”、“智能后视镜”、“智能带屏音箱”等设备。

八、安全

安全指南,HarmonyOS操作系统是一个开放的系统,开发者可以开发灵活的服务和应用,为开发者和使用者带来便利和价值。为了达到这一目的,鸿蒙系统提供了一个可以有效保护应用和用户数据的执行环境。


在这个执行环境中,芯片的安全能力、系统的安全能力、以及上层的安全服务一起协作,从硬件安全、系统安全、数据安全、设备互联安全、应用安全、安全更新多个维度提供安全保障。

安全指南

九、认证

HarmonyOS认证价值为保障世界各地的消费者产品制造商开发出高质量的产品和业应用,同时确保这些设备受到安全保护,用户获得良好、一致的分布式业务体验的目标,鸿蒙系统团队对这些设备进行测试认证。认证内容如下:

HarmonyOS认证

直播LIVE更多

在IMX6ULL上移植Harmony系统liteos-a(三)

在IMX6ULL上移植Harmony系统liteos-a(三)

2020-9-25 19:50-21:00 进入直播
基于HiSpark Wi-Fi IoT套件HarmonyOS物联网应用开发实战分享(二)

HarmonyOS物联网应用开发实战分享(二)

2020-9-25 19:50-21:00 进入直播
基于HiSpark Wi-Fi IoT套件HarmonyOS物联网应用开发实战分享(二)

HarmonyOS物联网应用开发实战分享(三)

2020-9-28 20:00-21:00 进入直播
基于HiSpark Wi-Fi IoT套件HarmonyOS物联网应用开发实战分享(一)

HarmonyOS物联网应用开发实战分享(一)

2020-9-23 20:00-21:00 进入直播

开发板试用DEVELOPMENT BOARD TRIAL更多

HiSpark AI Camera HarmonyOS 鸿蒙OS开发板免费试用

HiSpark AI Camera HarmonyOS 鸿蒙OS开发板免费试用

免费申请
HiSpark Wi-Fi IoT 智能家居套件 鸿蒙开发板 免费试用

HiSpark Wi-Fi IoT 智能家居套件 鸿蒙开发板 免费试用

免费申请

众筹THERAISE更多

【HarmonyOS + Linux双系统】HarmonyOS ARM开发板嵌入式IMX6ULL

【HarmonyOS + Linux双系统】HarmonyOS ARM开发板嵌入式IMX6ULL

免费申请
“Harmony OS”应用开发及驱动开发实战

“Harmony OS”应用开发及驱动开发实战

免费申请

课程COURSE更多

Harmony内核liteos-a移植

Harmony内核liteos-a移植

韦东山 立即学习
HarmonyOS开发软件介绍及使用方法

HarmonyOS开发软件介绍及使用方法

张飞 立即学习
【华为特辑】HarmonyOS 2.0生态案例大揭秘

【华为特辑】HarmonyOS 2.0生态案例大揭秘

电子发烧友网 立即学习
“HarmonyOS” 应用开发与驱动开发实战

“HarmonyOS” 应用开发与驱动开发实战

疯壳 立即学习