关键内容:操作系统、协同、智能。 作者:小步 篇幅:全文约4979字 阅读时长:约10分钟 提示:以下内容仅为个人分享,有兴趣交流的伙伴可在下方讨论区留言。

知识库首页

产品API:进阶全栈PM手册

提示:上方链接属于全手册首页,伙伴们打开后可以关注或收藏,用于日常工作查看,其中关注后,可以实时收到文档更新通知,希望对你有所帮助。

正文

物联网的飞速发展,必然会演化出垂直于物联网领域的操作系统,就像手机和电脑,初期也充斥着各类操作系统,但由于领域差异陆续出现了寡头状态,但物联网领域却还在发展当中,因此采用不同的物联网操作系统,也需要根据实际的应用场景进行选择,基于此,操作系统的基本知识必不可少。

本文主要聚焦对操作系统的理解和知识的汇总,内容持续迭代,欢迎交流沟通

操作系统基本知识

操作系统(Operating System, OS)是一个协调、管理、控制计算机硬件资源和软件资源的控制程序

操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务,操作系统还提供了一个让用户与系统交互的操作界面,同时为计算机应用程序提供相关服务。

操作系统由操作系统的内核及系统调用两部分组成。

操作系统的定位

物联网操作系统OS - 图1

操作系统的组成部分

  • 驱动程序:最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。
  • 内核:通常运行在最高特权级,负责提供基础性、结构性的功能。
  • 支持库:一系列特殊的程序库,它们的职责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(API),是最靠近应用程序的部分。
  • 外围组件:用于提供特定高级服务的部件。

操作系统的分类

操作系统的分类没有单一的标准,可以根据工作方式分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统等;根据架构可以分为单内核操作系统等;根据运行的环境,可以分为桌面操作系统、嵌入式操作系统等;根据指令的长度分为8bit、16bit、32bit和64bit的操作系统。

  • 通用操作系统:一般是面向没有特定应用需求的操作系统。由于没有特定的应用需求,通用操作系统为了适应更广泛的应用,需要支持更多的硬件与软件,需要针对所有的用户体验,对系统进行更新。通用操作系统是一个工程量繁重的操作系统。
  • 实时操作系统(Real Time OS):泛指所有据有一定实时资源调度及通信能力的操作系统。实时性在某些领域非常重要,比如在工业控制、医疗器材、影音频合成及军事领域,实时性都是无可或缺的特性。常用实时操作系统有QNX、VxWorks、RTLinux等。
  • 非实时操作系统:Linux、多数UNIX,以及多数Windows家族成员等都属于非实时操作系统。

实时的含义

“实时”的真正含义是指任务的完成时间可确定、可预知。操作系统面对的负载通常是变化的,有时任务少,有时任务多,实时操作系统要求无论负载多少,都必须保证满足时间要求。实时操作系统要求的不是运行速度,而是任务执行时间的确定性。

“实时”的真正含义是指任务的完成时间可确定、可预知。

实时操作系统要求的不是运行速度,而是任务执行时间的确定性

嵌入式操作系统

嵌入式操作系统(Embedded Operating System, EOS)是一种用途广泛的系统软件,通常包括与硬件的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面和标准化浏览器等

嵌入式操作系统分为4层:硬件层、驱动层、操作系统和应用层。嵌入式操作系统负责嵌入式系统的全部软件和硬件资源的分配、任务调度、控制和协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是用途广泛的系统软件。
image.png

小知识:“感知”描述和定义了物联网产业的内涵,感是信息采集(传感器),知是信息处理(运算、处理、控制、通信并通过互联网进行信息传递和控制)

手机操作系统

手机的系统主要有Android、iOS、Firefox OS、BlackBerry、Windows Phone、Symbian、Palm、BADA、Windows Mobile、Ubuntu, Sailfish OS和三星Tizen。

Android操作系统

Android由操作系统、中间件、用户界面和应用软件组成。
image.png
Android操作系统架构

物联网操作系统

物联网操作系统有不同于其他操作系统的特点,最主要的是其伸缩性;物联网操作系统的内核应该能够适应各种配置的硬件环境,从小到几十KB内存的低端嵌入式应用,到高达几十MB内存的复杂应用领域,物联网操作系统内核都应该可以适应。同时,物联网操作系统的内核应该足够节能,确保在一些能源受限的应用下,能够持续足够长的时间。

物联网首先要解决的是“连接”“区别”“识别”“沟通”和“操作”5大问题,

物联网有3个层次:终端应用层、网络层和感知层。其中最能体现物联网特征的就是物联网的感知层。感知层由各种传感器、协议转换网关、通信网关和智能终端设备组成。物联网操作系统就是运行在物联网终端上,对终端进行控制和管理,并提供统一编程接口的操作系统软件。

国际上常见的嵌入式操作系统大约有40种,如:Linux、uClinux、WinCE、PalmOS、Symbian、uCOS-II、VxWorks、Nucleus、ThreadX和QNX等。它们基本可以分为两类:一类是面向控制、通信等领域的实时操作系统,如windriver公司的vxWorks、QNX系统软件公司的QNX、ATI的Nucleus等;另一类是面向消费电子产品的非实时操作系统,这类产品包括个人数字助理(PDA)、移动电话、机顶盒、电子书、Webphone等,操作系统有Microsoft的WinCE,3Com的Palm,Google的Android,以及Symbian等。

现状

对于物联网发展而言,碎片化是主要的问题,其中,芯片、传感器、通信协议、应用场景千差万别,厂商、学派山头林立。比如无线通信标准就有蓝牙、Wi-Fi、ZigBee、PLC、Z-Wave、RF、Thread、Z-Wave、NFC、UWB、LiFi、NB-IoT和LoRa等。很明显,技术方案不统一,体系结构不一致,阻碍了物联网的发展,也局限了互联互通的范围。

物联网操作系统的特点:连接、协同、智能

1.连接

连接是各种各样的终端设备能够通过某种网络技术,连接到一个统一的网络上,任何终端之间都可以相互访问。下一代的基础通信网络,包括5G通信技术和网络架构重构,核心目标是为物联网提供泛连接网络。目前已经有很多厂商推出了相应的解决方案,比如Google的thread/wave,华为的Hi-Link,以及NB-IoT

image.png
含有物联网网关的连接方式

最理想的连接方式

物联网设备之间也建立连接,同时保留与云平台的连接。这样的好处就是,一旦云平台的连接中断,物联网终端可以采用本地之间的终端连接,继续提供服务。同时,物联网设备本地之间的交流和通信,直接通过本地连接完成,而不用再上升到云端。
image.png

2.协同

协同是指接入网络的任何设备之间,能够通过学习,实时地了解自己和对方的能力与状态,能够根据特定的输入条件或者特定的环境状态,多种设备间实现有效互动、协调工作,完成某种单一设备无法完成的工作。协同是物联网的核心和本质,主要表现在下面几个方面:

物联网设备之间的自动发现,尤其是不同功能、不同类别的设备的相互发现
比如在智慧交通领域,汽车靠近信号灯时,应该可以快速发现信号灯并建立联系。这样,信号灯就可以根据与自己建立联系的汽车数量,来灵活调度信号灯的切换时间。

物联网设备之间的能力交互。
设备之间,只有相互了解对方的能力,了解对方能干什么,才能实现有效的交互和协同。类似中国人之间的“找关系”,只有知道对方是干什么的,有哪些能力,才会有目的地发起请求,从而一起协作互动达到目标。

新增物联网成员(设备、功能)的自动传播。
在一个局域网(智慧家庭)中,加入了一个新(成员)的功能设备,这个新的(成员)设备需要尽快地“融入”原有的(网络组织)设备群之中。新设备有能够广播自己的能力,同时原有的设备也可以快速地“理解”新加入的(成员)设备的功能和角色,达到一种统一的新网络状态。

3.智能

智能是指物联网设备具备类似于人的智慧,比如根据特定条件和环境的自我调节能力,能够通过持续的学习不断优化和改进,以便更人性化地为人类服务。

物联网系统的架构

image.png
物联网操作系统是由操作系统内核、外围功能组件、物联网协同框架、通用智能引擎和集成开发环境等几个大的子系统组成。

目前主流的物联网操作系统,比如Google的Brillo、Linux开放基金会的Ostro项目,以及HelloX项目,都遵循这种框架。

1.系统内核

内核是操作系统的核心组件,线程、任务管理、内存管理、内核安全和同步等机制,都是在内核中实现的
image.png
内核功能结构

2.外围组件

物联网操作系统内核只是提供最基本的操作系统功能,供物联网应用程序调用。但只有物联网操作系统内核是远远不够的,在很多情况下,还需要很多其他功能模块的支持,比如文件系统、TCP/IP网络协议栈和数据库等。把这些功能组件从物联网操作系统内核中独立出来,组成一个独立的功能系统,称为外围组件。

物联网操作系统内核和外围组件结合起来可以解决物联网的“连接”需求。
image.png

3.物联网协同框架

物联网协同框架实现物联网“协同”功能,是物联网系统架构的组成部分。物联网操作系统的内核和外围组件实现了物联网设备之间的“连接”功能。但是,仅仅实现物联网设备的连接网络,是远远不够的。物联网的精髓在于,物联网设备之间能够相互交互和协同,使物联网设备能够充分合作,相互协调一致,以达到单一物联网设备无法完成的功能。物联网协同框架,就是为物联网设备之间的协同提供技术支撑。
image.png
物联网协同框架包括如下功能:

(1)物联网设备发现机制
物联网设备一般不提供直接的用户交互界面,需要通过如智能手机或计算机等设备连接,然后对设备进行管理和配置。在物联网设备第一次加电并连接网络之后,智能手机/计算机等如何快速准确地找到这个物联网设备,就是物联网设备发现机制要解决的问题。尤其是在物联网设备数量众多、功能多样的情况下,如何准确快速地发现和连接到物联网设备上,是一个很大的挑战。设备发现机制的另外一个应用场景是设备与设备之间的直接交互。比如在同一个局域网内的物联网设备,可以相互发现并建立关联,在必要的时候能够直接通信,相互协作,实现物联网设备之间的协同。

(2)物联网设备的初始化与配置管理
包括设备在第一次使用时的初始化配置、设备的认证和鉴权,以及设备的状态管理等。

(3)物联网设备之间的协同交互,包括物联网设备之间的直接通信机制
物联网协同框架需要能够提供一套标准或规范,使得建立关联关系的物联网设备之间能够直接通信,不需要经过后台服务器。

(4)云端服务
大部分情况下,物联网服务需要云端的支持。物联网设备要连接到云端平台上,就需要进行认证和注册。物联网设备在运行期获取的数据,也需要传送到云端平台上进行存储。如果用户与物联网设备距离很远,无法直接连接,则用户也需要经过云端平台来间接控制或操作物联网设备。物联网协同框架至少要定义并实现一套标准的协议来支撑这些操作。

4.公共智能引擎

通过物联网协同框架,可以使物联网设备之间建立关联,充分协作,完成单一物联网设备无法完成的功能。但是这种协同的功能,还是局限于事先定义好的逻辑
image.png
物联网智能引擎,是指包含了如语音与语义识别、机器学习等功能模块,以使得物联网能够超出事先定义好的活动规则,能够像人一样具备智慧的能力

5.集成开发环境

集成开发环境是任何一个完备的操作系统所必需提供的功能组件,程序员通过集成开发环境的辅助,完成具体应用的开发,这些应用最终运行在目标操作系统上。比如针对Linux操作系统的GCC开发工具套件,面向Windows操作系统的MicrosoftVisual Studio集成开发环境,以及跨平台的Eclipse集成开发环境等,集成开发环境。
image.png

6.领域应用

领域应用是面向不同物联网领域,通过综合利用物联网操作系统的各层功能模块,借助物联网操作系统集成开发环境,开发出来的可以完成一项或多项具体功能的应用程序。

小结

物联网操作系统分为内核、公共智能引擎、协同框架和外围组件4个层次,这些层次之间并不是严格的泾渭分明,而是具备一些依赖关系的
image.png
物联网研发系统平台抽象描述

常见物联网操作系统清单

物联网操作系统(The Internet of Things Operating System, IoT OS),是由嵌入式操作系统(Embedded Operating System, EOS)和实时操作系统(RealTime Operating System, RTOS)演变而来。

物联网设备的RTOS需要处理数据时没有缓冲延迟。RTOS的功能包括:能够实现多任务处理,能够调度和优先处理任务,能够管理资源在多个任务之间的共享

微软 VxWorks是如今最流行的商用ROTS
谷歌 谷歌Brillo
基于Linux内核,比如,Linux内核对运行内存的要求较高,同时Linux还需要CPU硬件支持MMU(内存管理单元)功能等。这样就间接导致Brillo的运行内存要求较高,按照官方说法,要至少32MB内存,同时要求CPU支持MMU功能。

Android Things
谷歌推出的物联网操作系统,是Brillo操作系统的更新版本,作为Android系统的一个分支版本,类似于可穿戴和智能手表用的Android Wear(Android Wear也是一种物联网操作系统)
ARM mbed OS
ARM表示,如果要求操作系统能够在尺寸最小、功耗最低的设备上运行,那么非mbed OS莫属。
华为 Huawei LiteOS
华为面向IoT领域构建的统一物联网操作系统和中间件软件平台,具有轻量级(内核小于10KB)、低功耗、互联互通和安全等关键能力。

Liteos操作系统具有能耗最低、尺寸小和响应快等特点,也建立了开源社区,能够支持的芯片有海思的PLC芯片HCT3911、媒体芯片3798M/C、IPCamera芯片Hi3516A,以及LTE-M芯片等。

参考资料

联系我

交流与反馈