您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
浅谈物联网操作系统
 
作者:潘爱民
   次浏览      
2020-10-28 
 
编辑推荐:
本文介绍了物联网操作系统,它特指在物联网设备的使用场景中,能够将各种物联网设备集合起来发挥作用的操作系统,及介绍了物联网操作系统的硬件环境和案例等。
本文来自于知乎,由火龙果Linda编辑推荐。

操作系统经过了几代的发展,从最早期的多任务操作系统,如MULTICS和UNIX,到适用于个人电脑的多处理器操作系统,如LINUX和Windows,再到最近十多年广泛流行的移动操作系统,如iOS和Android,其核心技术已经非常成熟,软件复杂度也达到了上亿行代码的规模。操作系统的每一次大发展必定跟计算机硬件的发展密切相关。随着物联网(IoT,Internet of Things)时代的到来,操作系统必将迎来新的发展。

下表总结了每一代操作系统的特征:

本文我们将介绍物联网操作系统,它特指在物联网设备的使用场景中,能够将各种物联网设备集合起来发挥作用的操作系统。

物联网需要什么样的基础软件

物联网的核心是各种物体连接到互联网:互联网仍然是基础,物联网并没有再造出一个独立的网络,但是对互联网进行了扩展和延伸,允许各种物体通过互联网交换信息和通信。大量的物体都连接到了网络,最直接的效果是,这些物体都可以被远程操控,比如,物体的状态显示在任何一个屏幕上、物体上的开关可以由远端的软件来控制。譬如,在下图中,体重计是一个物联网设备,它能够连接到后台服务器,上报数据和状态,远程用户可以通过连接服务器来获得体重计的数据和状态。

图1 联网的体重计

在这样的环境下,我们可以看到有三个地方需要软件:一是体重计上的软件;二是服务器上的软件,完成体重计设备的状态监测以及数据记录和报告;三是客户端的软件,显示所需要的信息或者接受用户的指令。

首先,体重计需要一个操作系统来完成基本硬件的能力,包括连接网络的能力。这样的系统很成熟,门槛也不高,对于体重计,用一个单片机就可以让它工作起来,或者也可以用一个嵌入式系统,功能更强大。其次,在后台服务器需要一个服务软件,一方面与体重计进行连接与通信,另一方面也允许远程用户连接上来并指定相应的体重计设备,以便查看信息(现状数据或历史数据)或者对它进行控制。客户端的功能通常用浏览器来完成,不需要额外安装软件;也可以用移动应用或者各种形态的小程序的形式来跟服务器通信。

几乎每一种物联网设备,为了让它们以联网的方式工作起来,都需要像体重计这样的软件架构。概括起来,物联网设备的软件分两部分(如图2):

l 在设备硬件上,用一个软件程序让设备工作起来,并且具备连接网络的能力;

l 需要有一个服务软件能够为这个设备提供各种便利的服务。

图2 设备软件与服务软件

在某些特定情况下,可以把以上两方面的软件功能都放在设备上完成,这样就不需要后台服务器,因而客户端可以直接连接设备。但这通常仅限于一些计算和存储能力较强的设备,并且对部署方式也有要求(比如智能路由器)。本文不讨论这样的设备实例和软件架构。

操作系统的意义在于,对硬件的基本功能进行抽象,从而做到各种应用软件无需直接跟硬件打交道就可以操控硬件。如果没有操作系统来支撑,那么所有的应用软件都需要操纵硬件接口来完成相应的功能。而针对如图2所示的软件划分,我们可以抽象出下面的操作系统来协同工作:

l 物联网设备操作系统,这是运行在设备上的软件,常见的是嵌入式操作系统,用恰当的软件把设备驱动起来,让它们正常地工作;

l 物联网操作系统,这是工作在设备之外的服务器上的软件,它提供了设备功能之外的扩展或延伸能力,譬如远程访问能力、历史数据记录和分析能力、多个设备的协同功能,等等。

物联网设备操作系统很容易理解,有大量的教科书来详细讲解现代操作系统的软件结构和相应的资源调度算法(不少大学生或研究生的毕业论文就是在搭建这样的设备操作系统)。物联网操作系统是一个相对比较新的概念,但事实上又广泛存在着大量的软件在完成这些功能。很多设备厂商都需要搭建一个后台服务系统,甚至还有不少厂商开发了客户端移动APP。这就是典型的,在操作系统缺位的情况下,硬件厂商不得不自己研发软件系统的情形。而理想的情况是,存在通用的物联网操作系统,可以让设备厂商专注于设备研发,他们只需开发基本的驱动软件以及简单的应用软件就可以让设备用起来。

物联网设备操作系统

物联网设备所在的硬件环境往往有以下特点:

连接。这是物联网设备的必要功能,以特定的方式连接到计算机网络,进而连接到互联网。常见的接入协议有ZigBee、蓝牙、WIFI、NB-IoT或RoLa等。

低功耗。这些设备需要长时间(几个月,甚至几年)运行,对电量的消耗有苛刻的要求,通常只能靠电池供电。

安全。设备要能报告自己的状态,并且有一定纠错和保密的能力,还要避免被仿冒和入侵。

标准。每一种设备都隶属于特定的行业,而成熟的行业往往已经形成了相应的工业标准,最起码也有事实上的参考标准。

运行在物联网设备上的操作系统往往有多种选择,取决于设备本身的计算和存储能力,一般地,可分为微控制器和中央处理器两大类。典型的有以下一些操作系统:

ARM Mbed OS,ARM公司专门针对IoT设备的开源操作系统,主要支持Cortex-M微处理器。(https://www.mbed.com)

FreeRTOS,针对嵌入式设备的开源实时操作系统,支持众多的微处理器。(https://freertos.org/)FreeRTOS有三个商业性质的衍生版本:SafeRTOS(安全保障方面的专业设计与增强)、Amazon RTOS(与AWS云服务的连接),以及OpenRTOS(商业许可方面的改进以及技术支持与咨询服务)。

RT-Thread,类似于FreeRTOS的设备侧实时操作系统,支持大量的微处理器架构。这是难得的国内成长起来的操作系统,且经营了良好的社区氛围。(https://www.rt-thread.org/)

LiteOS,是华为研发的轻量级开源实时操作系统,在设计上支持ARM、x86和RISC-V微处理器。(https://www.huawei.com/minisite/liteos/cn/index.html)

Zephyr,是Linux基金会的一个项目,针对资源受限和嵌入设备的实时操作系统,支持多种主流的微处理器架构。除了针对资源受限情况进行了优化,安全性也是它的一个优势。(https://www.zephyrproject.org/)

嵌入式Linux,是Linux操作系统的一个剪裁版本,它继承了Linux的优势(尤其是对TCP/IP网络协议的支持,以及对各种CPU的支持)和大量的社区资源,又具有嵌入式操作系统的特性。支持几乎所有的嵌入式CPU架构。

SylixOS,也是国内成长起来的实时操作系统,可支持众多处理器架构,并且有功能全面的开发平台支持。(http://www.sylixos.com/)

Android Things,Google针对物联网设备的开源操作系统,它是在Android基础上进行剪裁形成的,对系统资源的要求比Android低很多。(https://developer.android.com/things/)

VxWorks,是一个老牌的实时操作系统,支持众多处理器架构,广泛应用于军事、航空、航天等高精尖和实时性要求极高的领域,最经典的莫过于NASA的火星探测车上装载了VxWorks操作系统(如图3)。(https://www.windriver.com/products/vxworks/)

图3 搭载VxWorks的好奇号火星探测车和火星勘测轨道飞行器

图3 搭载VxWorks的好奇号火星探测车和火星勘测轨道飞行器

以上列举的设备操作系统,除了VxWorks,代码都是开源的,并且有相应的开发者工具和社区,背后有商业公司在支持。可以说,这些实时操作系统为物联网时代设备的繁荣提供了最核心的软件支撑,它们一方面吸收了操作系统领域的研究成果,另一方面也针对嵌入式设备或物联网设备进行了优化和剪裁。物联网设备厂商可以根据其产品的要求,选择合适的操作系统。

可喜的是,国内的技术团队也发展出了两个有竞争力的实时操作系统:RT-Thread和SylixOS,并且建立起了活跃的社区。这对于中国的软件技术发展无疑具有特殊的意义。

物联网操作系统

设备操作系统解决的是设备怎么联网、如何更方便地联网的问题,但没有解决联网之后做什么以及如何做的问题。从长远发展来看,后者无疑更为重要。

简单而言,设备联网以后,可以远程读取状态数据,可以远程进行故障诊断,甚至控制设备。这能够解决现场作业的痛点,甚至极端情况下现场作业是不可能做到的,比如火星上的仪器一旦故障,现场修复目前根本做不到。单个设备的能力往往有限,但一组设备联合起来,能发挥的作用可能大大超过联网能力简单叠加的效果。

我们来看一些场景(如图4):

一组智能灯的协同。单个智能灯可以具备开、关、调节灯光等基本功能,若跟具体场景结合起来,可以让这种联网控制能力具有更大的价值。譬如,在家庭场景,可以根据生活习性和作息时间进行自动调节;在野外路灯场景,可以根据户外光线做到自适应环境;在灯光秀场景,可以根据编排随音乐、舞蹈或动画来展示画面或效果;在地下停车场的场景,可以根据人和车的走动来调节光线明暗;等等。

支持人脸识别的闸机或门禁。前端的机器负责识别出人脸,而哪些人可以通行,则需要后台系统来管理,并且对样本进行学习。由后台系统将学习的结果及时地分发给前端机器。

酒店房间智能化。目前越来越多的酒店配备了智能设备,包括电视、灯控、空调、镜子,甚至窗帘、马桶等。单个设备若独立工作,联网的价值只是取代了遥控器或者墙面开关,而智能化真正的目标是,为住客提供舒适、贴心的室内环境。对于家庭的场景也是如此。

建筑体的健康检测。拿桥梁来举例,一座大桥的检测系统会有大量的传感器来采集数据,然后再通过专业的模型来分析桥梁的健康状况。单个传感器只反映一个局部状态,所有传感器集合起来进行分析可以获得关于桥梁的健康评价。对于隧道、公路、水坝、体育场馆等,也同样适用。

(a)楼道智能照明灯

(b)支持人脸识别的闸机

(c) 酒店房间

(d) 城市立交桥

图4 多智能设备的场景

以上列举的这些场景都需要数量众多的物联网设备协同起来发挥作用,不同的场景目前有各自独立的解决办法。有的开发专门的应用系统来解决场景中的设备协同工作需求,比如桥梁检测系统、灯光控制系统、人脸闸机系统等等。还有一种解决办法是,用云服务平台来连接所有的设备,然后利用云服务平台的功能来开发相应的场景智能系统。比如,针对智能家居的场景,只要所有的家电设备都连接到同一个云服务平台上,那就可以通过云服务平台来实现设备之间的协同。有些智能音箱厂商通过这种方式来实现语音控制电器。

这些解决办法在一定范围内可以工作,但每个应用系统都需要从最基础的应用功能到设备连接进行开发和调试,导致应用系统的可适应性差,开发和适配的成本高、周期长。而云服务平台对于场景的理解弱,只能完成一些基础性的功能,并且局限于云服务平台所支持的设备。另外,在实际使用过程中,场景中的需求通常会发生变化,而应用系统或者云服务平台难以适应这些变化。这也是实践中的一个痛点。

这就回到本节开始提到的问题:物联网设备连接以后做什么和如何做的问题。本质上,这需要一个软件系统,我们根据对各种场景进行抽象,按照两层架构来实现这样的软件系统:最基础的一层软件是通用的,可适用于各种物联网场景,包括设备连接和管理、数据采集和处理等;另一层是应用软件,用于实现各个场景中需要的功能逻辑。前者就是物联网操作系统,后者是物联网操作系统之上的应用软件。这与本文第一部分讲到的软件划分是一致的,如图5所示。

图5 从物联网场景中抽象出物联网操作系统

物联网操作系统承载的是通用的能力,包括但不限于以下功能:

设备接入。使得各种不同类型的设备通过局部的模块(驱动程序)连接到操作系统中,从而操作系统可以获取设备的状态信息;

反向控制设备。操作系统可以向设备发送命令,达到控制设备的目的;

设备管理。对于连接到一个操作系统上的设备进行管理,包括查看它们的状态、设置报警条件、设置位置、诊断驱动程序(包括驱动程序使用的协议、版本),等等;

数据采集。采集来自于物联网设备的数据,可定制表结构和数据目录。作为系统完整性,也要有扩展能力,可接受外部的数据;

数据分析和检索。操作系统提供功能对采集到的数据进行分析,并更新指标值。指标是一个业务相关的衡量单位或特征,有名称和值。指标子系统提供了对业务的数据计算支持,可以灵活定制。指标的计算既可以实时完成,也可以定时完成,或者通过事件或应用层命令来触发。操作系统也提供数据检索的能力,方便应用层引用或者搜索数据;

数据展示。操作系统提供常见的数据展示能力,包括结构化和非结构化数据的图形化显示,各种指标的统计图表等;

日志。日志是一个操作系统的基本能力,在物联网场景中尤为重要。完善的日志能力可便于诊断各个物联网设备的异常情形;

算法。操作系统提供一个基础的算法库,包括统计分析算法、AI算法等,便于应用程序实现各种业务逻辑。在物联网场景中,这相当于一个数据武器库;

系统服务。操作系统以系统服务的形式将能力提供给上层应用程序,系统服务的集合涵盖各种基础的功能,并且理想情况下,允许应用厂商扩展定义更多系统服务;

安全性。作为物联网操作系统,涉及到各个物联网设备连接到系统中,安全性尤为重要。一方面,操作系统自身必须安全,包括系统安全和数据安全;另一方面,也必须能诊断设备的安全问题,并及时进行告警、修复或隔离;

扩展功能。物联网操作系统的扩展性体现在多个方面:提供接入规范,允许非原生支持的设备也能够接入进来;系统服务可以扩展;数据采集格式可定制;数据处理和展示可扩展;算法库可以扩展,等等;

开发工具。需要应用程序样例和相应的开发工具,来帮助应用程序开发者理解和学习物联网操作系统。

图6 物联网操作系统的基础模块结构

对于一个具体的物联网场景,仅仅以上的通用功能往往不足以支撑这个场景中的基本需求,譬如,办公室环境还需要门禁和无线投屏的能力,酒店环境需要智能灯光调节、服务呼叫等功能。因此,物联网操作系统的定制和扩展能力非常重要,针对特定类型的场景,可以在基础系统之上叠加扩展包,形成针对场景的智能操作系统(比如智慧办公操作系统、智慧酒店操作系统等)。

而从物联网操作系统的角度,它存在的价值是:将设备与服务软件解除了耦合,不同类型或不同数量的设备可以动态链接进来,即使在不重新安装或启动操作系统的情况下,也能适应设备增删的变化。对于截然不同功能的场景,也可以使用同一个操作系统来提供基础服务。另一方面,从物联网应用的角度,应用开发可基于统一的一层服务,再辅助以操作系统的开发工具,可以极大地提高开发效率。随着物联网应用的不断丰富,物联网设备和技术有机会在各种现实场景中进一步发挥价值。

指令集智能操作系统

杭州指令集智能科技有限公司提出了商业智能操作系统(BI-OS,Business Intelligence Operating System)来实现物联网设备的互联互通,基本上符合上一节介绍的物联网操作系统的要求。图7显示了BI-OS的总体技术架构。(参考http://www.isyscore.com)

图7 指令集智能操作系统(BI-OS)的架构图

BI-OS运行系统分五层,由底向上分别是设备子系统、设备层、数据层、服务层,以及应用层。其中设备子系统是由设备厂商提供的,本质上就是运行物联网设备操作系统的那个设备侧软件;应用层是指建立在BI-OS上的应用软件,它们调用BI-OS所提供的系统服务,来满足客户的需求。而中间的三层是BI-OS的核心:

l 设备层:利用智能数字网关技术,将各种物联网设备采集的数据上传到数据层,与其他数据进行融合计算;同时以设备开放平台,通过标准化的组态工具,便于第三方开发商接入多样化的物联网设备;

l 数据层:这一层包括数据中心、计算中心和算法模型库。数据中心解决不同子系统之间的“数据孤岛”问题;计算中心能并发处理亿级海量数据,实现实时/准实时计算,可应用云端资源节省企业成本;算法模型库涵盖通用的人工智能算法(如人脸识别等)和针对业务场景的数据算法(如智能生产调度、销售预测等);

l 服务层:将不同场景中应用共有的基础性和关键性的服务进行抽象,统一在服务层夯实。例如核心数据服务包括用户画像、设备画像和标签体系等,又如报表引擎、指标系统、专家系统、3D引擎和流媒体等;核心业务服务包括用户权限管理、设备标识管理等。

BI-OS作为一个通用的物联网操作系统,可以应用到各种商业场景中,也可以应用于工业领域。一个典型的商业场景是智慧楼宇,通过BI-OS将一个大楼内的所有联网设备连接到一个系统中,这样不仅做到更高效的自动化管理,而且,随着大楼运营一段时间,数据累积起来,可以优化运营策略(譬如节省能耗、堵住安全缺陷,等等)。

而在工业场景中,物联网操作系统可以跟企业的生产管理系统挂钩起来,用于优化生产任务排班,甚至指导企业供应链和库存管理。通过操作系统的灵活部署和迭代升级,企业就可以用迭代的方式迈向真正的智能制造。

案例:用指令集智能操作系统来建设智慧楼宇

上一节提到了,指令集智能操作系统的一个典型商业场景是智慧楼宇,其中一个实例是,位于杭州的一栋4万平方米的商业楼宇通过指令集的BI-OS,将楼宇内上千个设备连接到一个系统中,包括公共区域照明灯、门禁、摄像头、人脸闸机、电表、空调、水泵、电梯、停车场、环保传感器等等。搭载在BI-OS上的楼宇系统不仅能够在一套界面中显示这些设备的运行状态,还可以实时地展示物业关心的重要指标,以及管理各种报警事件。图8是这一系统的桌面。

图8 采用指令集智能操作系统的楼宇系统主界面

BI-OS楼宇系统支持用3D模式显示大楼物理模型,每个设备都有物理位置属性,在界面上友好地指示出设备的位置。桌面是可定制的,各个应用对应的小程序(Widget)可以被添加到桌面上,从而物业管理人员通过桌面就能看到应用程序的运行状况。右下角的操作按钮是各个应用的快捷入口,通过它们可进入到各个应用程序中。当前版本支持的应用程序包括设备维度的管理程序,如照明、电梯、门禁、摄像头等,以及物业管理维度的应用程序,如入住商家管理、告警事件管理、停车管理、能耗管理等。

除了桌面和这些应用程序,BI-OS楼宇系统还提供了更进一步的能力。一是报表能力,BI-OS指标系统中的指标可以方便地转化成各种报表,物业管理人员可配置这些指标和报表;另一个重要能力是,BI-OS提供了一套可以让客户定制的规则系统,允许客户来定义设备联动规则,譬如当某一个或者一些设备的参数达到一定条件时,触发相应的动作,比如控制某些设备,或者触发告警等。

结束语

本文从操作系统发展的角度来看物联网时代需要什么样的操作系统,区分了物联网设备操作系统和物联网操作系统的职责,并且给出了物联网操作系统的基础功能模型。最后介绍了一个实际研发的物联网操作系统:指令集智能操作系统,以及用于智慧楼宇的案例展示和分析。

   
次浏览       
????

HTTP????
nginx??????
SD-WAN???
5G?????
 
????

??????????
IPv6???????
??????????
???????
????

????????
????????
???????????????
??????????
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]
 
最新文章
云原生架构概述
K8S高可用集群架构实现
容器云管理之K8S集群概述
k8s-整体概述和架构
十分钟学会用docker部署微服务
最新课程
云计算、微服务与分布式架构
企业私有云原理与构建
基于Kubernetes的DevOps实践
云平台架构与应用(阿里云)
Docker部署被测系统与自动化框架实践
更多...   
成功案例
北京 云平台与微服务架构设计
通用公司GE Docker原理与实践培训
某军工研究单位 MDA(模型驱动架构)
知名消费金融公司 领域驱动设计
深圳某汽车企业 模型驱动的分析设计
更多...