开发者学堂课程【HaaS 物联网应用开发课程: AliOS Things 操作系统简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/801/detail/13818
AliOS Things 操作系统简介
一.AliOS Things 发展历史及特点
二.AliOS Things 应用场景
三.AliOS Things 系统架构
四.AliOS Things 关键特性
一.AliOS Things 发展历史及特点
1. AliOS Things 发展历史
众所周知,AliOS Things 的发展已经有一段时间,在2017年11月已经在联系大会上发明了 V1.1版本,V1.1版本支持rhino 的内核,rhino 的内核是阿里云把自己研制的一个在互联网设备非常精小的内核,非常适用于互联网产品,上面支持非常丰富的 loT 产品需要的一些协议,包括 SDS,MQTT,CoAP 等等,同时,在这个系统里 V1.1系统还支持KV存储系统,KV 存储系统是 KW 对存储的一种形式,同时还支持 TEE 安全组件,因为设备上的安全是非常重要的。时间来到2019年的2月,经过一年多的时间沉淀和打磨,推出了一个新的版本 V2.0,V2.0支持 RISC_V 芯片,RISC_V 芯片价格在当前也是非常火的,同时,在 V2.0设置电源管理功能,包括 OTA 差分升级。其实在中间还包括 V1.2,V1.3等等,不再多做赘述。在 V2.0中支持 OTA 差分升级有很大的改进。
众所周知,互联网设备的受率,如蓝牙等都不会特别高,设备构建的升级,可能会涉及到1M、2M,差分升级会把需要升级的部分,比如一个目前是一个 M,但事实上在修改时只有一小部分,不到百分之十的变化,只要把变化的部分升级即可。
所以 OTA 差分升级一个升级变化的部分,可以大量的节省流量包括节省的升级时间成率也会变高。在2020年4月发布了V3.1,V3.1的版本改变也是非常的大。它支持 APP 的开发框架,可以在其下边开发一些自己的组件,增加组件开发方式同时支持 RTP/HTTPDNS 等等,通过 HTTP 的方式支持 DNS。
DNS 是 name service,其实就是域名解析服务,域名解析服务是相当于打开,例如 www.taobao.com,它解析到你的 IP 地址就是通过 DNS,HTTPDNS 是通过 HTTP 的方式去解析 DNS。我们可以当普通的 DNS 是通过 UDP 的方式,这些都是网络上的基础知识。时间来到2020年9月,经过半年多时间,已发明 V4.0,V4.0支持了微内核和小程序还有 HaaS 这样一个大的生态,以上是发展历史。
2.AliOS Things 的主要特点
AliOS Things 是自主可控的,是国产自主 OS,从内核到上层的很多功能,包括组件都是自主研发的,且它的内核是永久开源,无 IP 的侵权风险。AliOS Things 的组件是很丰富的,当我们做一个操作系统时,它的兼容性是非常重要的。
众所周知,作为操作系统上面开发的软件,如果能遵循一件的标准的话,做到通用性就是最好的,所以我们也兼容了POSIX 标准,是通用的一些标准。 我就知道 Linux 下面有很多的应用程序都是基于 POSIX 标准来开发的,这里面兼容POSIX 标准,使得在 NEX 开发的应用程序可以非常方便的移植到 AliOS Things 操作系统之上,这样可以为我们带来很大的便利。
同时,AliOS Things 操作系统上支持三百多种组件,可以去选择我们所需要的组件来实现它的功能。同时,AliOS Things 操作系统它支持了四百多种芯片,大家常见的像 react 热芯等各种各样的芯片,AliOS Things 都已支持,包括mtk。甚至在天猫精灵的智能音箱里面也都是用到了 AliOS Things 的操作系统。同时他还支持了一百五十多种传感器,刚刚我们已经了解到在 AliOS Things 里面都已经有支持了。
同时它的场景是非常丰富的,经过几年的发展,在许多的设备里都有使用,包括智能家居的智能家电,小至灯泡插座,大至空调,冰箱,洗衣机等等,里面都是有使用 AliOS Things 操作系统。
同时在阿里云 IoT 的工农业的场景里面有大量使用 AliOS Things 的操作系统,包括技能风箱,智能电动车等等。
并且在医疗设备,还有包括在智慧城市里面的充电桩,各种各样的设备,智能设备里面都可以看到 AliOS Things 的身影。
同时支持了很多丰富的组件,支持了很多种芯片,又支持了很多场景,整个服务业都是全面发展跟上的。在阿里云 loT 有一个 Haas 技术社区里面有非常多的专家在为我们进行服务。
同时这个操作系统更重要的是它有非常齐全的开发调试诊断工具。同时,刚刚叙述在群里面有非常多快速的响应以及特性定制等等。
二.AliOS Things 应用场景
1.智能生活
在智能生活场景中,它的品类,平台,连接型号,连接品牌都是非常多的。在连接品类这一块,我们可以看到它在智能家居和智能生活这种场景里面包括空调,冰箱,窗帘,插座等等,可能一个一个空调就是一个品类,一个窗帘就是一个品类,其实它已经有八十多种品类。包括连接的平台,例如阿里云 loT 平台,媒体的平台,欧瑞博的平台播等等。
这里面平台连接是非常多的,可能冰箱会有多种型号,空调有多种型号,这些也是非常常见的,我们可以看见在天猫上面,淘宝上面买得到的产品的型号也是非常的多,同时的品牌也是非常多的,例如美的等。
已经有非常多的品牌支持 AliOS Things 的操作系统,2.72亿的可连接设备是保守估计,并且是之前的一些数据,是之前联系大会上发布出来的数据,到现在会有增加,但整体来说我们要知道的是 AliOS Things 的规模是非常大的。
2.智慧工农业
我们每天在日常生活当中用得到的之外,是在工农业场景当中也是用的非常多的,包括我们可以用作一个感知的节点,用作一个摄像头,就会用到 AliOS Things 的操作系统。
同时我们也可以用在我们的协议网关节点,做到功能约数据采集里。住在工农业数据采集里,例如我们可以做个蓝牙的网关,这些都可以用到 AliOS Things 的操作系统。
更往上走,我们还可以做到机器视觉以及分布式语音正常场景。我们刚刚提及的 AliOS Things 的操作系统已经运用在天猫精灵智能音箱里,在其分布是语音以及机械视觉能力也是 AliOS Things 的一些应用场景。
三.AliOS Things 系统构架
在上图中大家可以看到,主流的互联网的芯片已经支持了近有四百多种芯片,八十多款。有很多种芯片的型号 AliOS Things 都可以支持着,例如 ARM,CSky,RSIC-V 等。还有一些专用的加速器 AI 的芯片,包括易购的芯片也都是支持的。但在在芯片之上,我们自研的内核 OS 内核。在内核之上,提供了 AliOS Things API,除此之外,还提供了 AOS API 和 POSIX API 的标准。
在内核和 API 的基础之上,采取了非常丰富的系统组件,包括网络连接的协议栈 lwip,BLE,Lora,uMesh,NB-loT 等网络连接的协议。这里能够支持非常丰富的网络协议栈,同时支持轻量级的图形用户界面,后续会有课程介绍,同时支持文件系统,包括 kv 的格式等。
VES 虚拟文件系统也是支持的,在其上面有一些应用,是可以去 VES 进行挂载。包括 TEE 的加密的引擎也都是安全的一些引擎,这些引擎也都是支持的。在它之上提供了更多的应用主线,是基础系统能力。在它之上还有丰富的应用组件,可以实现各种丰富的功能,包含云端连接的 Linkkit SDK 就可以连接到阿里云 loT 的互联网平台。若所有的设备想通过手机,天猫精灵的语音去控制这个设备,就会通过 AI SDK。另一个是 Link Vision,Link Vision 是视觉部分的能力,可以连接到阿里云 loT 的平台
例如你是 IP camera,可以制备一个智能摄像头,包括采集一些数据就可以通过连接到 Link Vsion 的平台。同时除了支持云端的连接,还有很多丰富的真实的中间件,包括 OTA 的升级,支持差分升级。同时互联网与平台可以同时下发给很多个设备,同时进行 OTA 的升级都是可以的。
不需要用户已经把设备在家里使用的过程中,我们也可以通过空中的模式连接,在用户家里进行设备升级。包括家里的灯泡,我们都可以通过云端下发的方式去进行设备的升级。同时还支持智能的语音与 voice,上述提及我们可以做个小的智能音箱,支持定位的框架,包括高德的定位,还有传感器的管理框架。我们是支持丰富的传感器的 AliOS Things 支持一百五十多种传感器。还有一个大的传感器的管理框架,有的是在中间件里面。
同时,在设备服务端连接云端以及设备操作当中都有丰富的日志保存下来。这里有非常丰富的系统架构,里面有丰富的日志管理系统。同时还有一个轻量级的存储以及计算引擎,可以去进行实时的一些视频分析,包括数据库实时流的管理。这是一个非常简单的一个系统架构图,整体的系统架构远比这个复杂。在这个图上面我们可以了解到整体来说整个 OS 的层次和结构都是是非常的清晰的。如果我们想要了解网络,可以在网络连接协议站进行深入了解,如果我们对于界面感兴趣,可以在图形前面进行深入的了解。
后续在 OS 的课程的部分会有更为详细的介绍。在 AI 的课程中,也会针对 AI 的部分去做连续
四. AliOS Things 关键特性
在 AliOS Things 的关键特性中,在整个复杂的系统,这么大的框架,这么多功能中,关键特性如下。
1. 极简开发。即使它有很多丰富的组件,但它是极简单开发,开发起来非常的方便。它支持多种语言开发,如传统的c 语言,是可以用来开发 AliOS Things 操作系统的一些能力的。同时还支持 POSIX,可以用 POSUX 语言来进行开发上面的一些应用,我们叫做轻应用。同时还支持用 JavaScript 去进行开发。JavaScript 是 Haas 的轻应用,是非常的方便的。
同时它是是组件式的模式,突出的是引入,可以直接引用主线,打开主线。同时,系统还支持 POSIX 的接口,在POSIX 接口开发的一些应用程序可以非常方便的移植到 AliOS Things 操作系统里。同时支持 IDE 的开发调试工具,这是非常方便的。
在后续的课程会为我们去展示如何用 IDE 开发调试工具去开发系统的设备。
开发也是非常方便的,它的性能也是做到非常极致的,我们看到 reno 的内核是非常的小,它能够运转非常小心的 ID设备上面几 k,几十 k,几百 k的这样的设备,loT 设备也是可以运用 AliOS Things 操作系统的。同时它是实时的,实时性是 AliOS Things 的实时操作系统。它可以支持多任务,它的内存占用小,低功能消耗也是非常小的,因为 AliOS Things 操作系统还用着 WiFi,带电池,蓝牙的小型设备上,这种小型的 IoT 设备,一个小电池就可以撑数月。这是对于整个系统的性能,包括低功能消耗要求是非常高的。AliOS Things 的操作系统在互联网设备上面运用的很多,所以它整个工号管理,包括调教都已经做的非常优秀了。
除了做到极致性能之外,在升级的过程当中,我们也可以做到细颗粒度的更新,整个差分系统中细颗粒度的更新。可以差分升级 AB 面的升级,防止设备变专等,即使一个灯泡在用户家里,它在升级的过程当中,如果断电或者断网,此时升级到一半也不会挂,也不会变专。因为整个设备基本上都会有 AB 面,那如果 A 面升级挂了,就会用 B 面切换回来,在 B 面做升级的时候,其实它升级到的事 A 面,所以永远会有一个可用状态。
除了细颗粒度的更新之外,还有丰富的网络服务,包括整个系统里面提供的丰富的 SAL 层,SAL 层是软件抽象层,包括 LwlP,LoRa,uMesh 等,有如此丰富的网络服务,当然会有安全问题,在 AliOS Things 操作系统里面还提供了全方位的安全服务,包括 TEE,TLS,Link ID2等等,若我们对整个 AliOS Things 操作系统里的各个组件想要去了解或者想要去更深入的学习,可以去关注的 OS 的课程。
在 AI 的课程当中会有更多的急性开发机制性能,网络服务等等。