对于物联网发展而言,“碎片化”是主要的问题,其中芯片、传感器、通信协议、应用场景千差万别,“山头林立”。比如无线通信标准,就有蓝牙、Wi-Fi、ZigBee、PLC、Z-Wave、RF、Thread、Z-Wave、NFC、UWB、LiFi、NB-IoT、LoRa等等。很明显,技术方案不统一,体系结构不一致,阻碍了物联网的发展,也局限了互联互通的范围。
然而,各种操作系统可以支持不同的硬件、通信标准、应用场景。开源,有利于打破技术障碍和壁垒,提高互操作性和可移植性,减小开发成本,同时也适合开源社区的开发人员参与进来。
那么,对于物联网开源操作系统,你了解有多少呢?
什么是开源操作系统?
开源操作系统(open source operating system),是指源代码公开的操作系统软件,遵循开源协议进行使用、编译和再发布。在遵守相关开源协议的前提下,任何人都可以免费使用,随意控制软件的运行方式。开源操作系统最大的特点就是开放源代码和自由定制。
在国际开源操作系统中最著名的一种为“Linux操作系统”,它是一种计算机操作系统的泛称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。
开源操作系统的历史是和GNU紧密联系在一起的。从1983年开始的GNU计划致力于开发一个自由并且完整的类Unix操作系统,包括软件开发工具和各种应用程序。到1991年 Linux内核发布的时候,GNU已经几乎完成了除了系统内核之外的各种必备软件的开发。在Linus Torvalds和其他开发人员的努力下,GNU组件可以运行于Linux内核之上。整个内核是基于 GNU 通用公共许可,也就是GPL(GNU General Public License,GNU通用公共许可证)的,但是Linux内核并不是GNU 计划的一部分。1994年3月,Linux1.0版正式发布,Marc Ewing成立了 Red Hat软件公司,成为最著名的 Linux 分销商之一。
下面列举开源操作系统的一些优势:
易理解:开源操作系统源代码公开,开发人员更容易查看理解代码,获取相关知识。
公开透明:操作系统漏洞和缺陷更容易曝光,同时代码的开发和维护也是公开的。
可定制:用户可以根据需求,依照不同的硬件平台和应用场景进行定制。
低成本:无商业版权费,节省了相关开发管理和人力投入成本。
可持续:即使之前开发的公司因为各种原因无法支持,依靠开源社区广大的开发人员的参与,系统还可以持续维护下去。
集思广益:因为开源操作系统公开,可以让更多的开发者参与开发,集中更多的智慧和想法。
介绍10款经典的物联网操作系统
1、Andorid Things
Andorid Things 是谷歌上周刚推出的物联网操作系统,是去年推出的“Brillo”操作系统的更新版本,作为 Andorid 系统的一个分支版本,类似于可穿戴和智能手表用的Andorid Wear(实际上它也是一种物联网操作系统)。
它使用一种名为 Weave的通信协议,实现设备与云端相连,并且与谷歌助手等服务交互。Android Things 面向所有Java开发者,不管开发者有没有移动开发经验。该操作系统将能够支持一系列物联网设备的计算平台,其中包括英特尔Edison 平台,NXP公司的Pico平台,以及“黑莓派3”。
2、Contiki
Contiki,是一个开源的、容易移植的多任务操作系统,适用于内存受限的网络任务。Contiki 项目的作者是瑞典计算机科学研究所的网络嵌入式系统小组的Adam Dunkels 博士。
该系统只需要几千字节或者几百字节的内存,就能提供多任务操作系统环境和TCP/IP支持。它已经移植并成功运行于嵌入式微控制器平台(TI MSP430,Atmel AVR)以及电脑、游戏机等平台。它支持的协议有全标准 IPv6 和 IPv4,以及低功耗网络标准:6lowpan、RPL、CoAP。
3、eLinuxi
eLinux,也称为Embedded Linux,即嵌入式Linux 操作系统,该操作系统基于Linux 内核,是Linux 对于嵌入式系统的裁剪版,支持该操作系统的厂家、芯片和产品比较广泛。该操作系统的维基主页提供了开发、硬件、产品、厂家、社区等一系列相关信息。
4、FreeRTOS
FreeRTOS 是一个迷你的实时操作系统内核,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
FreeRTOS 操作系统是完全开源你的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点。目前,该操作系统已经数百万设备上部署,它号称是“市场上领先的嵌入式实时操作系统”,能够为微控制器和微处理器提供很好的解决方案。
5、mbed OS
这款操作系统由ARM开发,专门为运行ARM处理器的物联网设备而设计。它包含了C++应用程序网络,公司也提供其他开发工具和相关的设备服务器。
默认情况下,mbed 操作系统是事件驱动的单线程架构,而非多线程(实时操作系统)环境。 这确保了它可以扩展到尺寸最小、成本最低且功耗最低的物联网设备。
ARM在移动设备端有着强大的市场占有率,所以这款操作系统实力和前景不可小觑。
6、Raspbian
Raspbian 是一款基于Debian,为树莓派硬件而设计的操作系统。这个操作系统包括一些列的基础程序和工具,保证树莓派硬件的运行。
7、RIOT
RIOT,将自己称为“友好的物联网操作系统”,致力于开发者友好、资源友好、物联网友好,关键的功能包括C/C++支持、多线程、能量效率、部分遵守POSIX等等。RIOT 开源社区自2008年以来就启动了。RIOT能够在众多平台上运行包括嵌入式设备、PC、传感器等。
8、Ubuntu Core
Ubuntu 是目前最流行的Linux 版本,而Ubuntu Core旨在将Ubuntu 带向物联网世界。它可以运行例如微软Azure、 谷歌计算引擎、 亚马逊弹性云计算服务,也可以运行在例如BeagleBone Black 和树莓派等硬件上。
9、Huawei LiteOS
Huawei LiteOS 是华为面向IoT领域,构建的“统一物联网操作系统和中间件软件平台”,具有轻量级(内核小于10k)、低功耗、互联互通、安全等关键能力。Huawei LiteOS 目前主要应用于智能家居、穿戴式、车联网、智能抄表、工业互联网等 IoT 领域的智能硬件上,还可以和LiteOS生态圈内的硬件互联互通,提高用户体验。
Liteos操作系统具有能耗最低,尺寸小、响应快等特点,也建立了开源社区,能够支持的芯片例如海思的PLC芯片HCT3911、媒体芯片3798M/C、IPCamera芯片Hi3516A,以及LTE-M芯片等。
10、Tizen
Tizen,Linux基金会和LiMo基金会,联合英特尔和三星电子,共同开发的开源操作系统,它可以满足物联网设备生态系统(包括设备制造商、手机运营商、应用开发者、独立软件服务提供商)的需求,应用于手机、电视、穿戴等多个产品。
Tizen底层平台相关API按照HTML5的形式公开出来,服务将涵盖通信、多媒体、相机、网络、社区媒体等。三星已经售卖了几款搭载该操作系统的产品,是它的最大支持者。
开源操作系统究竟解决了什么问题?
连接:操作系统通过集成常见的网络协议栈,例如TCP/IP、ZigBee、蓝牙、WiFi驱动等,算是为解决连接问题作出了贡献。
智能硬件间的区别和识别:这两个问题,似乎真的跟操作系统没啥关系,基本上只能为同一厂家产品之间的“区别和识别”提供部分帮助。
沟通和互操作:物和物之间的沟通和互操作,操作系统基本上看热闹而已,同样只能对使用同一个厂商提供的开发工具开发的特定应用提供一些帮助,其互操作,基本仅限于使用它们的开发工具开发的智能硬件,且主要是物和人之间;人和物之间的互操作,支持支持远程桌面和webserver的操作系统能够提供比较完善的帮助。
小结
在物联网时代,大家都在谈论物联网操作系统,我们要分析物联网的核心问题是什么,操作系统对于物联网,能做什么,不能做什么,它如何影响操作系统设计。设计操作系统,要服务于物联网应用的话,就要分析清楚物联网面临的问题,要集中精力于解决核心问题,有的放矢,不要人云亦云地跟着感觉走。
本文来源:“开源”为何对于IoT如此重要?