2020年9月12日——鸿蒙:新的时代机遇
一、鸿蒙2.0开源
2020年注定不是一个平淡的年:中美局势、打压华为、国际疫情。。。。
但2020年9月10日却是一个非常不寻常的一天:华为宣布鸿蒙2.0开源了!
中国自己的又一个操作系统问世,非常鼓舞人心,激动、激动。鸿蒙2.0开源的新闻记录如下:
- https://www.ifanr.com/1364693
- 鸿蒙首页、文档、下载
- 华为 鸿蒙系统(HarmonyOS)
- 开放源码,华为鸿蒙HarmonyOS 2.0来了
二、鸿蒙2.0的核心特点
从各方网站、信息了解到,鸿蒙2.0系统,主要有如下特点:
1. 与鸿蒙2.0一起亮相的还有EMUI 11和HMS Core 5.0,共同组成华为软件生态的[三板斧];
2. 鸿蒙2.0系统对标的是类似Window、Android、IOS的系统,而不仅仅只是Linux操作系统;
3. 鸿蒙2.0并不只是一个替代Android的操作系统(备胎转正),它是面向全场景的,包括硬件和应用软件开发,通过系统层面的分布式技术,**打破了硬件边界融入全场景智慧生态的互联互通,让多设备融为一体**;
4. 鸿蒙2.0的核心三大特点:**分布式软总线、分布式数据管理、分布式安全**;
5. 2020年9月10日发布的三大屏、手表、车机版本,包括SDK、文档、工具、模拟器;在12月还将推出手机版本的SDK、文档、工具和模拟器;
6. 当前开原的代码是面向128MB以下的IoT设备整机,128MB以上的IoT设备整机需要申请定向代码;
7. OpenHarmony开源路标,2020年9月10日面向内存为128KB-128MB的终端设备,2021年4月面向128MB-4GB的终端设备,2021年10月将面向4GB以上的所有设备进行全面开源;
8. 鸿蒙2.0系统,**不仅仅是一个系统,更是一个生态**!
9. 鸿蒙2.0主要包括17个子系统,共134个代码仓,以及3个参考用例,便于开发者利用鸿蒙系统去构建硬件设备和软件应用;
10. 鸿蒙安全的核心,就是「让正确的人,在正确的设备上,正确的使用数据」。
鸿蒙HarmonyOS 2.0生态主要是对南向硬件设备厂商和北向应用开发者的赋能。对于南向硬件设备厂商,可以选择三种不同方式加入全场景智慧生态:
- 第一,厂商可以集成华为的分布式SDK,在非常短的时间内就可以具备分布式能力,与搭载鸿蒙系统的设备做连接,目前已有1200多万台设备接入鸿蒙系统;
- 第二,厂商可以下载鸿蒙的源码,根据自身业务状况和能力去做相应的Harmony设备;
- 第三,华为提供多个模组、芯片以及开发板,可以供厂商快速理解鸿蒙系统的工作原理,缩减做产品的时间,提供一站式的完整解决方案。
鸿蒙OS的设计初衷是为满足全场景智慧体验的高标准的连接要求,为此华为提出了4大特性的系统解决方案。
1. 分布式架构首次用于终端OS,实现跨终端无缝协同体验
2. 确定时延引擎和高性能IPC技术实现系统天生流畅
3. 基于微内核架构重塑终端设备可信安全
4. 通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享
三、学习方法和系统介绍
通过前面的梳理,可以看出鸿蒙是时代的一大机遇(以前的塞班系统、IOS、Android),大家一定要努力去抓住和把握。
我做嵌入式开发多年,接下来将从零开始学习和使用鸿蒙2.0系统,并记录整体的使用情况和学习总结,希望能和大家一起成长。
3.1 学习网站分享
从目前获取到的信息来看,可以获取第一手资料的聚焦在如下三个地方:
当然,最最直接,也是最重要的资料就是源代码了(Read the fucking source code!):
- 鸿蒙官方开源网站:https://gitee.com/openharmony
- 鸿蒙官方指导文档:https://gitee.com/openharmony/docs
最后,也可以看我接下来写的文章啦,绝对带你一行一行代码的学习鸿蒙2.0,抓住下一个猪都会飞的浪潮机遇。
3.2 开发系统介绍
相信很多人做开发的人员,都是使用的Ubuntu16的系统,当然官方指导文档也都是使用的Ubuntu16.04的64位系统。但是我从学校开始就一直使用的Red Hat系统,后面转向了CentOS系统。因为它不仅稳定,而且还是很多后台服务器的首选系统。所以,接下来我所有开发和使用的系统基础就是在CentOS7.6之上完成的,也算是为鸿蒙2.0贡献CentOS系统开发的微薄之力吧。
下面是我的操作系统介绍:
[konishi@localhost ~]$ uname -a
Linux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[konishi@localhost ~]$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
我学习的方法,一般是推荐去看源代码的,不过像鸿蒙这样庞大的系统,还是建议先了解整体,从学会使用(是什么),再到熟练掌握(为什么),最后再不断深入不同子系统(深入为什么)。至于怎么样的事情,就看个人能力和追求了。
后续,我会基于CentOS7.6系统,从开发环境搭建、鸿蒙2.0系统源码获取、移植编译与构建、应用程序开发、鸿蒙子系统深入学习的节奏,把我的完整学习过程记录下来,并分享给Everyone。