最近好多家都宣布推出自己的物联网操作系统。
1. Google将要在Google I/O大会发布的Brillo;
2. 三星推出的Artik芯片搭载Mentor Graphics的Nucleus;
3. 华为最近推出的LiteOS。
Brillo
从36氪的报道看“Google正在打造自己的物联网操作系统,名为Brillo,最低能在配置32MB或64MB内存的设备上运行,既适用于冰箱这样的家电,又适用于小型的传感器及相关设备”。这个描述可以看出,Google的Brillo并不是定位于MCU及内存在KB级别的操作系统。
LiteOS
而LiteOS的名字很早就被使用了,是美国伊利诺思大学发布的一个开源物联网平台。而华为推出的LiteOS当前只限于海思平台,这基本上限制了它的应用。
5月23号访问其在Github上的代码仓库并没有提交源代码。代码的最后更新时间是2015.04.23。距离发布有一个月的时间,但是到发布也没有上传源代码。而且,华为提供的LiteOS社区的注册过程有异常,邮箱的校验一直提示有问题,其实可以注册。从这些细节来看,华为并没有做好将其开发的LiteOS开源的准备。所以说其噱头大于实质,并非夸大其词。
Nucleus RTOS
由Mentor Graphics公司开发的Nucleus RTOS需要付费使用。
Contiki
物联网操作系统,肯定要提到Contiki的。在Github上的Contiki的代码更新很快。这个操作系统已经开发了10多年,主要开发者Adam博士(LwIP和uIP的设计与开发者), 而且Contiki本身也已经被使用。 更有丰富的资料供参考。 单是围绕Contiki的论文就有很多,从Contiki的软件架构,到其协议栈的实现都有论文介绍。 而且源码在Github上可以直接获取。 国内玩Contiki的人也已经有很多了,国内的开发者写的关于Contiki的博客也有很多。
应用
不同的硬件资源决定了能够运行多大的软件。对于物联网节点而言,其功能要求简单,所以采用的硬件资源极为有限。这种情况下要求软件足够小。是否采用操作系统也不一定,裸奔(没有操作系统)也未尝不是一种选择。
但是,对于一些功能要求更多一些的设备,需要采用的硬件资源较多,可以运行较大的软件。这种情况下,选择操作系统是必须的。这样可以减小开发的工作量,提高开发效率。
由于物联网本身的复杂性,决定了必然会存在很多硬件资源差异很大的设备。每一种操作系统都有其使用的范围,如果非要使用一种操作系统跑在所有的硬件上不太现实。
所以每一种操作系统都要想好自己的应用范围。做好自己的事情,并做好(一个程序只做一件事情,并做好)。