物联网操作系统应该怎么选?

物联网大致可分为感知层、网络层、设备管理层、应用层等四个层次。其中最能体现物联网特征的,就是物联网的感知层。感知层由各种各样的传感器、协议转换网关、通信网关、智能终端等终端设备组成。这些终端大部分都是具备计算能力的微型计算机。运行在这些终端上最重要的系统软件就是所谓的物联网操作系统。对于物联网发展而言,“碎片化”是主要的问题,其中芯片、传感器、通信协议、应用场景千差万别。比如无线通信标准,有Wi-Fi、BLE、ZigBee、NFC、Thread、NB-IoT、LoRa、Sigfox、Gprs、4G等。很明显,技术方案不统一,体系结构不一致,阻碍了物联网的发展,也局限了物联网的互联互通。但从已有产品和宣传信息来看,其基本的技术特征已初显端倪。概括来讲,物联网操作系统应具有以下技术特征:

1、跨硬件平台

物联网应用最重要的是必须跨硬件平台运行,即编写的物联网应用程序,能够在多种不同的目标硬件设备上运行,而不用重新修改甚至编译应用程序。如果开发语言不是跨硬件平台的,只针对一种硬件平台开发,当面对硬件配置各不相同和物联网设备的千差万别时,就需要针对不同的CPU类型,不同的硬件配置,分别进行开发和部署,这显然是无法满足物联网硬件碎片化特征的需要。由于物联网设备硬件配置千差万别,硬件与软件不匹配则导致的错误会大大增加。而采用跨硬件平台开发语言的好处,就是可以限制错误范围,不会因为应用程序层面的错误,而导致整个系统崩溃。安卓系统就是采用去跨硬件平台的构架,才能够在不同硬件配置的手机上运行相同的应用程序,大大降低了应用程序的开发工作量。

2、面向对象机制

所谓的面向对象,就是在编程的时候尽可能去模拟真实的现实世界,按照现实世界中的逻辑去处理问题,分析问题,更容易解决大型的复杂的业务逻辑。在物联网领域,面向对象编程方法,可以让程序员以更接近现实世界的方式来理解应用场景,建立程序开发模型,把每个物体都可以抽象为程序开发领域的一个对象,通过不同对象之间的消息交互,可以快速完成复杂的应用系统开发,同时也可以简化开发维护过程,降低开发成本,加快开发速度。相比传统的模块化编程,面向对象编程更适合物联网应用开发,也更具有价值。

3、高效的开发方式

C和C++都更接近底层设计,当你在需要对硬件进行非常精细的监测和控制时,他们都是很好的选择,但这也意味着所写出的代码移植性比较差。而Java是一种面向对象的开发语言,拥有非常好的移植性,编译器中几乎不存在任何硬件依赖性。为了实现对特定硬件部分的精准控制,Java需要借助硬件所支持的库并从中调用通用代码。从经济角度上看,Java是一门非常强大的语言,对Java代码的一次投入可以在多个不同的平台收获果实。Java同时也是当前人气最高的主流编程语言之一,被应用于成千上万计算机科学与电子工程技术项目当中。因此懂得Java的人才可以从市场上轻松找到。

4、开发组件丰富

物联网操作系统因为是对物应用场景的感知和控制,感知的方式千差万别,应用场景各不相同,同时哪怕最简单的物联网设备也要具无线和有线的联网功能,网络通信协议的多样性,云端接入的复杂性,都要求物联网操作系统具备丰富组件支持,把常用的传感器和联网协议和云接入方案,全部按照组件的形式开放出来,使用者不需要关心太多的物理层功能,专心进行业务逻辑处理,加快物联网产品上市速度。

5、占用极低的硬件资源

物联网是一个数以千亿计设备总量的市场,他的特点就是品种多,数量多,对硬件成本要求苛刻,这就要求物联网操作系统运行的硬件平台不能太高,要平衡开发效率和硬件成本的关系。

物联网操作系统应该怎么选?_第1张图片

物联网碎片化特点必将导致物联网操作系统的多样性。短时间内,很难形成像智能手机中Android和ios两家独占市场的局面,以下简单介绍几款物联网操作系统。

1.  AliOS Things

面向IoT领域的轻量级物联网嵌入式操作系统,搭建云端一体化IoT基础设备。 基于Linux平台,提供MCU虚拟化环境,开发者直接在Linux平台上开发硬件无关的IoT应用和软件库,使用GDB/Valgrind/SystemTap等PC平台工具诊断开发问题。

2.  Andorid Things

作为 Andorid 系统的一个分支版本,类似于可穿戴和智能手表用的Andorid Wear。使用一种名为 Weave的通信协议,实现设备与云端相连,并且与谷歌助手等服务交互,面向所有Java开发者。该操作系统能够支持一系列物联网设备的计算平台,其中包括英特尔Edison 平台,NXP公司的Pico平台,以及“黑莓派3”。

3.  RUFF

采用JavaScript语言,专为硬件开发而设计,兼容多个平台的运行环境,不仅支持嵌入式Linux,还支持MCU单片机领域等。拥有大量的开发API接口,也能在Rapsberry Pi等常见开发板上运行。

4.  mbed OS

由ARM开发,专门为运行ARM处理器的物联网设备而设计。包含了C++应用程序网络,公司也提供其他开发工具和相关的设备服务器。默认情况下,mbed OS是事件驱动的单线程架构,而非多线程(实时操作系统)环境。

5.  钛极OS

该系统基于Java语言进行嵌入式开发,将Java虚拟机移植到低资源MCU芯片中,由内核掌管底层硬件资源,实现软硬件分离,伸缩性非常强,可以在编译时,裁剪掉不需要的模块,来匹配低端硬件的需求。不仅可以更好的扩大物联网应用程序的运行范围,而且能够降低开发难度提高开发效率,快速推动物联网生态圈发展。

物联网操作系统应该怎么选?_第2张图片

从技术层面看,物联网操作系统仍处在研发阶段,至今尚无一个比较完善的可商业应用的物联网标准操作系统,物联网时代最大的问题之一就在于沟通,不同设备之间不同标准的沟通、软件与硬件的沟通。而采用Java来开发智能硬件的钛极OS实现了这种沟通的可行性,并保证了沟通的实效性和高效化。全球又有大量的Java开发者,根据Oracle和ARM估计,全球大约有45万的嵌入式软件工程师,而IT业约有900万的Java开发人员。这无疑是给物联网行业带来了巨大的增长潜力。

 

你可能感兴趣的:(物联网操作系统应该怎么选?)