3_3_AliOS Things 操作系统架构|学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习3_3_AliOS Things 操作系统架构。

开发者学堂课程【HaaS 物联网应用开发课程3_3_AliOS Things 操作系统架构】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/801/detail/13828


3_3_AliOS Things 操作系统架构

 

内容介绍

一、系统架构图

二、系统能力说明

 

一、系统架构图

本节课程的主题是 AliOS Things 操作系统架构本节课程主要是让大家对 AliOS Things 操作系统的整体架构有一个概念,之后再针对系统能力进行详细的说明。

图片27.png

这是 AliOS Things 一个简单的架构图。从下面来说起,前面有提到 AliOS Things 可以跑在四百多种物联网芯片上,一共是八十多款,每款会调用到多种芯片。从体系结构来说,包括主流的 arm、

mips、 five 等都是支持的,还有这边有一些 AI 的芯片,然后安全专用的芯片以及其他的一些的芯片上都有 AliOS Things  的操作系统,在芯片之上是阿里云自主研发的具有自主知识产权的 rhino 的内核,在内核之上封装了AliOS Things 的 API,包括像 AOS API、HAL API 以及 POST API。

AOS API 主要针对的是操作系统能力的封装,HAL API 主要针对的是硬件功能进行抽象的 API ,这个POST API是常见的  API 的封装,方便基于 POST API 开发的组件或者是应用程序,比如说 AliOS Things 的移植,在 API 层之上是一些 AOS 通用的系统组件,比如说网络功能的组件,作为天生就具有物联网基因的操作系统,AliOS Things 对网络的支持是非常全面的,同时这边还支持亲爱的图形界面系统,后面也会有课程针对图形系统做介绍,稍微复杂的物联网应用开发都会需要用到文件系统,那也是支持丰富的文件系统,包括 fs、kv 分区等等。后面也会有专门的一节一一介绍,同时也支持 VFS ,VFS 虚拟文件系统就可以基本统一应用或者是组建对文件或者对设备节点的操作,从而简化应用程序或者是组件的开发了。

这次之外还支持 TEE ,这是对操作系统安全非常重要的安全加密引擎。在通用系统组之上还有丰富的应用组件,像云端连接的 sdk ,通过 sdk 操作系统可以安全的连接到阿里云物联网平台,使用云平台提供的服务。那如果手机或者是天猫精灵需要去控制物联网设备,其实就需要运行这个组件。

LINK VISION SDK 可以连接到阿里云的 link vision 的平台,如果你想做一个 camera 或者是想做一些图像采集或者视频采集的数据上传到云平台之后进行监控或者是数据处理,就会需要用到 LINK VISION SDK 。

除了连接云平台的功能之外,还有丰富的中间键,比如说 ota,它不仅仅支持整包升级,还支持差分升级,升级过程安全可靠,有了 ota 功能之外,就是设备已经部署到用户的家里或者是生产环境中,也可以远程对它进行升级,同时还有支持智能语音的 uvoice,在做智能音箱的时候就会用到 uvoice 服务。除此之外支持 location 的定位服务,u data 的传感器服务。

AliOS Things 支持一百五十多种传感器,这一百五十多种传感器就是通过传感器管理框架,然后进行管理的。目的就是为了让系统运行的时候能够方便调试,包括在出货之后同样能够看到设备端的日志。这边有一个 u log 的组建,它不光可以对日志进行级别的管理,还可以管理日志的存储。

这边还有一个轻量级的存储和计算引擎,可以做到实时音视频分析以及对数据库实时流的管理,那这样其实只是一个简单的架构图,然后整个系统的架构远远比这张图片表现出来的要复杂,但是从这张图片当中可以看出系统的分层结构是非常清楚的,然后 AliOS Things 基于组件化的思想,很方便大家进行查阅。

如果你想进行网络相关的学习,只需要进到操作系统的component nike work 这个目录下边,网络连接功能的组件绝大部分都集中在这个地方,但如果想针对文件系统的专门的学习,也可以听到操作系统的 components fs 这个目录下面,这样就可以看到支持所有的文件系统的功能。

 

二、系统能力说明

图片26.png

接下来对系统的通用能力做展开介绍,不仅仅支持局域网连接,比如说 Wi-Fi、蓝牙、BLE,mesh、以太网、ZigBee等。支持广域网连接,比如说 NB-IoT、LoRa、2G/3G/4G 等,这样不管是在家里等固定的场所还是在移动端的场景需求,AliOS Things 都是可以满足的。比如说经常听说的 http/https、MQTT、CoAP、LwM2M 等常用物联网协议,AliOS Things 也是支持的。

常见的物联网应场景对网络协议的需求应该已经能做到全覆盖了。如果你做过 Linux 的网络开发,那应该知道 Linux 系统提供了非常丰富的网络调试手段,那在遇到网络相关的问题的时候,可以对它进行诊断。那 AliOS Things 同样做了很多网络调试的工具,比如说 ping/iperf/ifconfig/pktprint 等。

之外也提供了网络管理框架,可以对上面的这些网络写进进行管理,可以对 Wi-Fi,广域,有线等网络进行管理,实现高效共存支持 Mesh 组网支持,针对蓝牙和Wi-Fi均适用。在文件系统方面,支持标准 POSIX 文件/目录操作接口支持,方便应用移植,也具有丰富的存储介质支持(NOR/NAND/SD卡/eMMC),在设备访问控制层,适用众多场景完善的掉电保护、坏块管理、磨损平衡、垃圾回收机制,最大限度保护用户的数据或者说存储介质的安全。在文件系统这层,支持 littlefs 、fatfs、 ramfs 等等。

和其他的互联网操作系统相比是非常有优势的,文件系统是挂在 VFS 之上的,这样就非常方便应用层通过 POSIX 的接口对文件系统提供的服务进行访问,对于文件系统性能方面的性能调优,实现 NAND 上读写 KB 至 MB 级别文件速率3-4MB/s,在文件系统的相关组件都是基于 HAL 编写驱动,这样的可移植性强,除此之外还提供了丰富的工具支持(镜像制作、镜像 dump 分析、运行调试、性能测试)。

其实 POSIX API 实际上是 API 的集合,Linux 系统在20世纪90年代就已经支持了 POSIX ,自从那时候开始,Linux 应用程序的可移植性上了一个很大的台阶,AliOS Things 支持的目的之一就是为了尽量兼容 Unix或 Linux 软件生态,然后方便 POSIX API 的移植,另一方面也是朝着标准化和应用性的方向进行发展, POSIX API 本身就是由 IEEE 和 iso 国际标准化组织定义的,对于每一个 API 的数据参数、输出参数以及每个 API 的数据结构所包含的头文件以及 API 的行为都进行了详细的定义,在应用性方面,POSIX API 是已经被 Unix 或 Linux unix 系统广泛的使用和验证了,也为广大的开发者所熟悉。每个 API 都有标准的文档说明,非常方便开发者使用。

图片25.png

举个例子来说,业界首款的音箱就是基于 AliOS Things 进行开发的,这款音箱跟 Linux 结构的音箱相比,然后它的flash 跟 RAM 占用量降低了百分之五十,系统的启动时间也缩短了百分之五十以上。再举一个例子,一款从 Linux 系统切到 AliOS Things 系统的智能摄像头,它的系统启动时间从6秒降到500毫秒以下,然后同时也降低了系统功耗,电池的待机时间也大幅提升,至少是提升30%以上。

端云一体化的 OTA 升级支持,主要有高安全保障、自然差分升级以及场景支持丰富这几个方面。在高安全保障这方面,主要体现在对固件进行了数字签名,防止固件被篡改,然后升级的通道是经过加密的,然后支持断电保护以及断电续传,这样就可以防止固件在升级通道上被截获了,即使断网也不会出现丢失,因为独创的乒乓升级自动回滚机制在如果升级失败的情况出现以后,可以快速还原到升级之前的一个固件,然后保证系统呃不会因为升级导致不可恢复的问题,同时还对 OTA 的功能进行全方面的压测,以保证 OTA 升级的可靠性,升级成功率在99.7%以上。

AliOS Things 还自主研发了差分升级体系,差分升级的机制可以显著地节省 OTA下载耗费的流量,对于蓝牙等低宽带场景的福音。支持的场景也是非常丰富的,对于能直接连到互联网的WiFi、2G,3G 的芯片都可以直接对它进行升级,然后也支持复杂组合芯片的升级,比如说通过模组对 MCU 进行升级,通过网关对网关下面的子设备进行升级,通过手机对蓝牙设备升级等等,这些场景都是支持的。

AliOS Things 操作系统也继承了AI框架,在智能语音类的应用中,端上不仅可以运行本地的唤醒算法,也可以使用云端的识别服务,那在这种智能仪表识别方面,运行 AliOS Things 的 WiFi soc,然后它的识别速度可以在300毫秒每次,然后准确率高达98%,然后对 RAM 的占用量也是非常小的。右边这张图是 AI 框架的一个整体结构图,训练模型运行在阿里云平台,云端支持非常多的模型,像这种语音识别模型,图像识别、运动检测模型等等,它们都是支持的。

模型在云端训练完成之后,通过 PTA 的功能把它下发到设备端,通过设备端的 AI 框架进行运行,同时设备端的 AI 数据又可以经过网络上传到云端对模型进行优化,然后将优化后的模型在 OTA 升级到设备端,然后形成一个完整的一个闭环。

前面有提到说 AliOS Things 是基于一切皆组建的思想进行设计和开发的,除了文件系统、系统信息、电源管理等这些基本的系统组件之外,然后支持非常多的像这种外设等等,还有刚刚有提到的非常多的网络协议,这些都是支持的,除了这些基础组件之外,然后我们也支持了非常多的高级组件,可以通过优惠的组件使用支付宝的支付服务,然后 us组件可以使用像智能语音组件,这个智能语音组件包含 GPS、播放网络音乐等等,还有前面提到的传感器服务的管理组件、定位服务组件等等。

然后那开发者可以使用 AliOS Things 提供的组件管理工具,对这些组件进行下载或者是在线使用,或者是给开发者贡献的应用组件到本地的开发环境中,快速补齐自己应用场景有需求组建的能力,通过这样的方式来加速设备端的开发。那当然开发者可以使用 AliOS Things 构建工具 create 创建自己的算法组件或者是外设组件,这样就会实现高效的复用甚至是实现商业输出,然后也是非常欢迎开发者能够将自己开发的新功能贡献给 AliOS Things ,后面会有一个专门的章节来介绍如何贡献 patch 给 AliOS Things ,有专门的同学对开发者贡献的 patch 进行 review ,然后跟开发者沟通看怎么样能尽快将开发者提供的一些组建弄到操作系统的源代码里面去。对于一个操作系统来说除了提供丰富的功能之外,还需要给开发者提供配套的使用工具,来简化开发者的开发和调试的过程,然后提供更便利的操作系统服务,那 aos- cube 就是 AliOS Things 提供的构建系统,包括代码下载、组建或者共同的创建工程的安装、编译等等。

都是使用 aos- cube 工具的,后面会有一个专门的章节针对 aos- cube 进行详细的介绍,因为 aos- cube 是一个命令行的方式,那除了命令行的方式还提供常见的经常用的q或者r上边进行 AliOS Things 的开发,然后还提供了基于VS code d 的20s studio 图形化的 IDE 插件,然后通过这套集成开发环境可以完成构建的下载调试等非常实用的功能,也给开发者提供了拖拽式的服务来对 AliOS Things 的组件进行选择和裁剪,然后也是非常方便。这边对于尝试 ALIOS 系统的开发者来说,其实调试功能的欠缺往往会把很多开发者挡在门外,所以 AliOS Things 提供了异常分析工具,可以快速的回溯系统异常发生的原因,可以精确到问题代码的行数,然后方便开发者遇到问题之后的分析。

图片24.png

那下边一点是开发维测工具,除了上面几个功能之外,然后 AliOS Things 提供了强大的维测工具,比如说在出现问题的时候,由 os 接管 CPU 的异常向量,对各种问题进行统一的处理,同时也提供给用户自定义异常入口的选择,系统快照的功能是指在系统出现问题的时候,不仅会打印丰富的现场信息,包括占信息、计算器信息、各任务的内存分配以及整个系统的内存消耗等详细情况都会打印出来。然后还有强大的栈回溯功能,那 PC 端的解析工具也可以帮助自动化的解析日志,然后并且提供精确导航号的这种分析报告。然后这边的 CLI 自查机制是指一般操作系统在死机之后就会彻底的卡死了,不会再想要任何用户的输入,但是在 AliOS Things 上边系统死机之后, CLI 组件会接管整个串口,即使系统死机之后还是可以通过 CLI 组件提供的交互界面给开发者,这样就可以通过 OS 自带的很多调试功能进行调试,加速问题分析和解决的过程。

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
8月前
|
资源调度 前端开发 算法
鸿蒙OS架构设计探秘:从分层设计到多端部署
本文深入探讨了鸿蒙OS的架构设计,从独特的“1+8+N”分层架构到模块化设计,再到智慧分发和多端部署能力。分层架构让系统更灵活,模块化设计通过Ability机制实现跨设备一致性,智慧分发优化资源调度,多端部署提升开发效率。作者结合实际代码示例,分享了开发中的实践经验,并指出生态建设是未来的关键挑战。作为国产操作系统的代表,鸿蒙的发展值得每一位开发者关注与支持。
|
4月前
|
达摩院 安全 Anolis
Anolis OS 23 架构支持家族新成员:Anolis OS 23.3 版本及 RISC-V 预览版发布
Anolis OS 23.3在保障基础功能持续演进、完善安全漏洞的修复的同时,实现了对 RISC-V 的初步支持。
|
12月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
存储 安全 物联网
操作系统的心脏:深入理解现代操作系统架构与核心技术
本文旨在为读者提供一个关于现代操作系统(OS)架构和核心技术的全面概述。通过分析OS的主要组件、功能以及它们如何协同工作,本文揭示了操作系统在计算机系统中的核心地位及其复杂性。我们将探讨进程管理、内存管理、文件系统和输入/输出(I/O)等关键技术,并讨论它们对系统性能的影响。此外,本文还将涵盖一些最新的操作系统趋势和技术,如云计算、虚拟化和物联网(IoT)。通过阅读本文,读者将获得对操作系统内部运作方式的深刻理解,这对于软件开发人员、IT专业人士以及对计算机科学感兴趣的任何人来说都是宝贵的知识。
|
安全 调度 开发者
探索操作系统的心脏:现代内核架构与挑战
【10月更文挑战第7天】 本文深入探讨了现代操作系统内核的复杂性和功能性,从微观角度剖析了内核在系统运行中的核心作用及其面临的主要技术挑战。通过浅显易懂的语言解释专业概念,旨在为读者提供一个关于操作系统内核的全面视角。
194 2
|
11月前
|
自然语言处理 JavaScript Java
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS架构介绍
HarmonyOS采用分层架构设计,从下至上分为内核层、系统服务层、框架层和应用层。内核层支持多内核设计与硬件驱动;系统服务层提供核心能力和服务;框架层支持多语言开发;应用层包括系统及第三方应用,支持跨设备调度,确保一致的用户体验。
914 81
|
存储 人工智能 物联网
探索现代操作系统的架构与演进
【10月更文挑战第5天】 本文旨在深入探讨现代操作系统的核心架构及其在技术演进中的变革。通过对操作系统的基本概念、关键组成部分以及它们如何相互协作的分析,为读者提供一个全面且易于理解的视角。同时,本文还将回顾操作系统从单任务到多任务、从单用户到多用户的发展过程,并展望未来可能的技术趋势。
|
8月前
|
人工智能 前端开发 Java
DDD四层架构和MVC三层架构的个人理解和学习笔记
领域驱动设计(DDD)是一种以业务为核心的设计方法,与传统MVC架构不同,DDD将业务逻辑拆分为应用层和领域层,更关注业务领域而非数据库设计。其四层架构包括:Interface(接口层)、Application(应用层)、Domain(领域层)和Infrastructure(基础层)。各层职责分明,避免跨层调用,确保业务逻辑清晰。代码实现中,通过DTO、Entity、DO等对象的转换,结合ProtoBuf协议,完成请求与响应的处理流程。为提高复用性,实际项目中可增加Common层存放公共依赖。DDD强调从业务出发设计软件,适应复杂业务场景,是微服务架构的重要设计思想。
|
10月前
|
安全 Linux 网络安全
车载操作系统信息安全架构
本次分享的主题是车载操作系统信息安全架构,由中兴通讯操作系统产品部张兵分享。主要分为以下四个部分: 1. 背景 2. 现状 3. 实践 4. 展望
310 1
|
12月前
|
IDE 安全 Android开发
深入探索Android与iOS操作系统的架构差异
本文旨在对比分析Android和iOS两大主流移动操作系统在架构设计上的根本差异。通过详细解读两者的系统架构、开发环境、以及安全性等方面,揭示它们各自的特点及优势,为开发者选择合适的平台提供参考。

热门文章

最新文章

推荐镜像

更多