开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯(http://yyds.recan-li.cn)和 瑞萨MCU (https://www.renesas.cn/cn/zh) 联合发起的「 致敬未来的攻城狮计划 」的第 4 天,点击查看活动计划详情 (https://bbs.csdn.net/topics/613916237)!
目前在学的课是华为云的,因此对华为的介绍较多。
课程安排前面是理论,因此目前笔记内容这方面也占的多。
物联网操作系统发展历史
操作系统概述
操作系统(Operating System
)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理:管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
从计算机用户的角度来说,计算机操作系统体现为其提供的各项服务。
从程序员的角度来说,其主要是指用户登录的界面或者接口。
从设计人员的角度来说,就是指各式各样模块和单元之间的联系。
命令行界面交互
伴随着个人主机和个人终端的出现,打字机键盘解决了人机交互文字输入的问题,衍生出基于命令行界面交互的终端操作系统。如:
- DOS:微软公司开发的单任务操作系统,运行在
Intel x86
个人电脑上,是早期个人电脑中最普遍使用的操作系统。 - Linux:一个多用户、多人的操作系统,有各类发行版。Linux发行版可作为个人计算机的操作系统,同时在服务器领域也已经成为主流操作系统。
图形界面交互
随着PC终端的普及,鼠标的出现解决了图形界面的交互问题,衍生出各种桌面终端操作系统。如:
- mac OS:
mac OS
是一套运行于苹果Macintosh系列电脑上的操作系统,它包含两个主要的部分:以BSD原始代码和Mach微核心为基础构建的Darwin核心系统;苹果开发的图形用户界面。 - Windows:微软公司开发的多任务的操作系统,采用图形窗口界面,用户对计算机的各种复杂操作只需通过点击鼠标就可以实现。
移动互联网操作系统
伴随着具备强大计算能力、丰富外接器件和高度便携性设备的普及,触摸屏输入问题的解决,衍生出各种移动互联网操作系统。如:
- IOS:Apple公司开发的手持设备操作系统。IOS与mac OS类似也是以Darwin为基础的类Unix商业操作系统,2010年WWDC苹果全球开发者大会上由起初的iPhoneOS改名为IOS。
- Android:一种基于Linux的开源操作系统,主要应用于便携设备。Android操作系统最初由Andy Rubin开发,2005年被Google收购。Google通过组建开放手机联盟,持续对Android进行改良,逐渐从手机扩展到平板电脑和其他领域上。
操作系统变化
华为物联网操作系统定位
万物互联时代终端用户面临的挑战:
- 体验不一致:手机上丰富的应用无法在其他终端上使用。
- 体验不连续:视频播放无法跨设备迁移,进度不同步。
- 硬件互割裂:手机无法使用车机上的GPS进行辅助定位。
- 内容不协同:手机的地图信息无法与车机的地图协同使用。
开发者开发应用面临的挑战:
- 多操作系统
- 多设备类型
- 多语言开发
- 开发复杂UI/UX
- 代码库维护
- 数据源集成
初始OpenHarmony
- OpenHarmony是由开放原子开源基金会孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
- OpenHarmony的基本设计理念是在个人设备多样性场景下,突破单设备的能力局限,加速信息在设备间顺畅的流动,向用户提供完整、一致和便携的分布式体验。
- OpenHarmony需要天生具备系统级的分布式能力,能适应各种终端设备,能为用户提供一致化的用户体验。
- 在传统的单设备系统能力基础上,OpenHarmony提出了基于同一套系统能力,适配多种终端形态的分布式理念,能够支持多种终端设备,提供全场景业务能力。
超级终端的用户体验
- OpenHarmony旨在为用户提供超级终端体验。
- 超级终端是相对于传统的单一终端而言的,包含了多种类型的终端,通过软件技术将他们整合在一起,给用户的感觉就像“一个终端”一样。
- 传统的单机系统提供了对插接在物理主板的硬件设备进行管理的能力,而超级终端不再依赖于物理接口的连接,其管理的是通过网络连接在一起的物理设备。
- 超级终端:全新的交互体验,不再受制于硬件。
OpenHarmony超级终端涉及的设备范围
华为物联网操作系统技术架构
OpenHarmony的逻辑架构
系统服务层
内核层包括内核子系统和驱动子系统两个部分。
- 内核子系统:OpenHarmony采用多内核设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,
Kernel Abstract Layer
)通过屏蔽多内核差异,对上层提供基础的内核能力,包括:进程/线程管理、内存管理、文件系统、网络管理和外设管理等。 - 驱动子系统:硬件驱动框架(HDF)是OpenHarmony硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
根据不同设备形态的部署环境,各个子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。
框架层
框架层为OpenHarmony应用开发提供:
- 用户程序框架:支持Java/C/C++/JS等多种语言。
- Ability框架:应用所具备能力的抽象。
- ArkUI:适用于JS语言UI框架。
- 以及各种软硬件服务对外开放的多语言框架API。
根据系统的组件化裁剪程度,OpenHarmony设备支持的API也会有所不同。
应用层
应用层包括系统应用和扩展/第三方非系统应用。
OpenHarmony的应用分为一个或多个FA(Feature Ability)或PA(Particle Ability)组成。
- FA有UI界面,提供与用户交互的能力;PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。
- FA在进行用户交互时所需的后台访问数据也需要由对应的PA提供支撑。
- 基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,与用户提供一致、高效的应用体验。
硬件互助,资源共享
分布式特性给用户带来全新的使用体验:服务迁移和多端协同。
多种设备之间能够实现硬件互助、资源共享。主要依赖以下四个关键分布式技术。
分布式逻辑架构
一次开发,多端部署
OpenHarmony提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发,多端部署,提升了跨设备应用的开发效率。
采用业界主流设计方式,提供多种响应式布局方案,支持栅格化布局,满足不同屏幕的界面适配能力。
统一OS,弹性部署
OpenHarmony应用场景
OpenHarmony的应用已覆盖到生活、学习、办公等各个场景中。