最近跟物联网行业和移动互联网行业的一些资深从业人员做了深入交流,就物联网操作系统的概念和必要性、定位等进行了充分深入的沟通。首先说明的是,物联网操作系统的概念被广泛认同。同时,对物联网操作系统在整个物联网领域的功能和地位,又有了更进一步的认识。下面简单总结,供业界的朋友们参考评论。
物联网操作系统的最基本功能,与Android操作系统在移动互联网领域的地位和作用类似。先看一下Android,其最大的贡献在于,实现了智能终端硬件和软件的分离。任何应用程序开发者,基本不用考虑智能终端的物理硬件配置(CPU型号、内存、各种外设等),只需根据Android提供的编程接口编写应用程序,就可以运行在所有基于Android的智能终端上。硬件的功能是有限的,如果软件和硬件紧密捆绑不分离,则整个系统的功能也是有限的。但是一旦把硬件功能剥离出来,则通过软件的变动,可以使得整个系统的功能大大扩充。举例来说,带闪光灯的拍照手机,如果硬件和软件捆绑,则其功能就仅仅局限于一台照相机和一部手机。但是软硬件分离后,就可以变成手电筒、信号灯等原来无法实现的功能。对于物联网来说,要实现类似移动互联网一样的良性发展,也需要达到软硬件分离的效果。物联网终端的硬件功能很有限,比如一个传统的车载OBD模块,仅仅提供定位、GPRS、车辆信息读取等功能。但是通过额外的应用软件,则可以把OBD模块变成一个防盗器(事先划定位置范围,超出后报警),甚至其它功能设备。保险公司也可以定制开发自己的程序,安装到OBD上,获取必要的数据。这种通过软件创新,把已知(硬件功能)变成未知(软件功能)的能力,才是激发人类兴趣的源泉,也是为行业带来活力的关键。
除此之外,物联网还需要达到另外一种分离:硬件驱动程序与操作系统内核的分离。考虑这样一种场景:电冰箱的内置摄像头坏了,重新更换了一个新型号、功能更强大的摄像头。这时候运行在冰箱内的操作系统,必须能够根据新摄像头的硬件特征(比如设备ID等),自动从网上下载对应的驱动程序,然后安装。这个过程对运行在操作系统上的应用程序来说是透明的。Android貌似是无法做到硬件驱动程序与操作系统内核分离的,一旦增加一个新的硬件,必须编写对应的驱动程序,然后重新编译Android内核。
下图示意了基于这两种分离思想(应用软件与硬件分离、设备驱动与操作系统内核分离),构筑的一个物联网生态体系:
图中的实线表示永久逻辑连接,虚线表示临时的逻辑交互。大概过程是这样的:
1、 物联网终端(大到汽车、冰箱,小到门锁、追踪卡、手环等)上运行物联网操作系统,以及基于物联网操作系统的应用(APP)。APP从“M2M APP Store”上下载;
2、 物联网终端上运行的应用程序,由用户通过智能手机进行控制。智能手机通过本地通道(比如蓝牙、WiFi、Zigbee等)连接到物联网终端,控制终端上的APP的安装和卸载,以及M2M终端的相关配置(安全信息等);