多如牛毛的物联网操作系统
前言
今天 PC 和手机时代的操作系统霸主未必能在物联网时代延续霸业。操作系统产业的规律是,当垄断已经形成,后来者就很难颠覆,只有等待下一次产业浪潮。如今,一个全新的、充满想象空间的操作系统市场机会正在开启。
如此关键的产业环节必然是兵家必争之地。ARM、谷歌、微软、华为、阿里、海尔等国内外著名的 IT 企业纷纷推出物联网操作系统,整个产业呈现出群雄逐鹿的壮观景象。传统的嵌入式系统公司也不甘示弱,纷纷通过开源和并购策略推出面向物联网软件平台,比如 Intel、风河、芯科和 Micrium。在一轮新的产业浪潮中,国内创业公司也走在风口浪尖上,他们纷纷推出自己的物联网操作系统,比如庆科、Ruff 和 RT-thread。
回溯物联网操作系统的发展历程,2014年是个重要的、标志性的起点。正是从这一年开始,ARM、谷歌、微软等国际巨头陆续登场,形形色色物联网操作系统进入我们的视野。
ARM Mbed OS
mbed OS 是 ARM 公司专门为 IoT 设计的一个操作系统平台,它支持所有基于 Cortex M 系列的控制器,mbed OS 是开源的操作系统,详情源代码请看:https://github.com/ARMmbed/mbed-os,更多介绍请看官网:https://mbed.com。
简单来说,Mbed 是一个开发平台,一个基于 ARM cortex M 系列的单片机开发平台。
Mbed 提供 C/C++ SDK,因此使用者可以专注于应用程序的设计,而不用过多关注底层硬件,这使得它用起来有点像 Arduino。
AndroidIoT/Brillo
Android Things 是谷歌为 Google Brillo 更改名称后的新版系统,后者是谷歌在2015年宣布的一款物联网操作系统。尽管 Brillo 的核心是 Android 系统,但是它的开发和部署明显不同于常规 Android 开发。Brillo 把 C++ 作为主要开发环境,而 Android Things 则面向所有 Java 开发者,不管开发者有没有移动开发经验。
Android Things 整合了物联网设备通讯平台 Weave,Weave SDK 将嵌入到设备中进行本地和远程通讯。Weave Server 是用来处理设备注册、命令传送、状态存储以及与谷歌助手等谷歌服务整合的云服务。
从硬件资源的角度来看,Android Things 属于土豪级的系统,动辄上百 MB 的内存显然不适合单片机,这也正常,因为它的主要竞争对手其实是 Windows 10 IoT。
顺便说一下谷歌秘密研发而又众所周知的 Fuchsia 系统,它没有基于 Linux 内核,而是基于一种叫 Magenta 的内核,是一种轻量级的内核,适用于嵌入式系统。虽然 Android 占了移动设备端的大半江山,但 Android 仍然存在不少问题,比如:碎片化问题严重,在大屏幕设备上表现糟糕,以及被很多用户诟病的卡顿与体验问题。虽然卡顿的本质原因是很多无良应用的后台互相唤醒,无节制的权限、内存使用等,但是这也恰恰反映了 Android 的底层架构设计是有瑕疵的。所以谷歌想着干脆抛弃 Linux,开发自己的 Fuchsia,同时还避开了 GPL。按照谷歌的性格,还真不是不可能,看看 Java 和 Kotlin 就知道了。我等码农只能寄希望于 Fuchsia 能像它的中文名那样,未来能大红大紫,造福人类吧。
Windows 10 IoT Core
Windows 10 IoT 是面向各种智能设备的 Windows 10 版本系列,涵盖了从小的行业网关到大的更复杂的设备(如销售点终端和 ATM),种类繁多。结合最新的 Microsoft 开发工具和 Azure IoT 服务,合作伙伴可以收集、存储和处理数据,从而打造可行的商业智能和有效的业务结果。在构建基于 Windows 10 IoT 的解决方案后,合作伙伴将在利用一系列 Microsoft 技术提供端到端的解决方案时发现更多机会。
由于 Windows 10 for IoT 是全新产品,它在用户群和经验丰富的开发者方面显然落后于其他许多物联网操作系统。话虽如此,这款操作系统大有潜力,如果你想在内部开发应用程序,更是如此。最终,那些习惯于使用 Visual Studio 和 Azure 物联网服务,针对 Windows 从事开发工作的人会被整套的 Windows 10 for IoT 方案吸引过去。
WatchOS
说了那么多巨头,怎么少得了苹果公司呢,苹果在桌面端有 OS X,在移动端有 iOS。虽然苹果目前还没有在物联网市场扮演重要的角色,但苹果已利用了其操作系统平台的变种,开发了多款物联网设备,比如苹果电视、CarPlay(借助 BlackBerry QNX)和苹果手表。
Ubuntu Core 16
Ubuntu 已经向外界透露了它们对于物联网的最新想法,那就是让 Linux 成为让物联网更智能和可扩展的核心。Snappy Ubuntu Core 是面向智能设备的最新平台,其承诺可以运行存储在本地或依赖于云端的相同软件。显然,后者的最大好处就是可以让使用者避开频繁的定期升级。
Ubuntu Core 团队意识到,“联网设备”的数量将会激增。虽然手机和计算机的定期维护和更新已深入人心,但是对于洗衣机、温控器、以及智能开关来说,大家却很容易忽略掉它们。
此外,在频发的黑客攻击面前,联网设备的安全性也需要慎重考虑。如果没有最新的安全补丁和固件修复,那么必将会给联网设备的使用者留下巨大的隐患。
更重要的是,Ubuntu Core 既可以在设备上、也可以依赖云端而运行。并且无论他们运行于 ARM 或 x86 平台,开发者都会得到相同的 API 和安全更新。
截至目前,Ubuntu 母公司 Canonical 已经拥有了21家合作伙伴,我们希望这一数字可以在今年迎来更高的增长。
网址:http://www.ubuntu-china.cn/internet-of-things/
镜像下载:http://releases.ubuntu.com/ubuntu-core/16/
μCLinux
μClinux 是一种优秀的嵌入式Linux版本,其全称为 micro-control Linux,从字面意思看是指微控制 Linux。同标准的 Linux 相比,μClinux 的内核非常小,但是它仍然继承了 Linux 操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的 API,以及 TCP/IP 网络协议等。因为没有 MMU 内存管理单元,所以其多任务的实现需要一定技巧。
与 Linux 一样,μClinux 操作系统将中断处理分为两部分:顶半处理和底半处理。在顶半处理中,必须关中断运行,且仅进行必要的、非常少、速度快的处理,其他处理交给底半处理;底半处理执行那些复杂、耗时的处理,而且接受中断。因为系统中存在有许多中断的底半处理,所以会引起系统中断处理的延时。
μClinux 最大特点在于针对无 MMU 处理器设计,可以利用功能强大的 Linux 资源,因此适合开发对事件要求不高的小容量、低成本的各类产品,特别适用于开发与网络应用密切相关的嵌入式设备或者 PDA 设备。
下载地址:http://www.uclinux.org/pub/uClinux/ 或者 https://sourceforge.net/projects/uclinux/ 。
QNX
QNX是一个分布式、嵌入式、可规模扩展的硬实时操作系统。它遵循POSⅨ.1 (程序接口)和POSⅨ.2 (Shell和工具)、部分遵循POSⅨ.1b(实时扩展)。它诞生于1980年,距今已37年的历史。
QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。
QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一。它具有独一无二的微内核实时平台,建立在微内核和完全地址空间保护基础之上,实时、稳定、可靠,已经完成到PowerPC、MIPS、ARM等内核的移植,成为在国内广泛应用的嵌入式实时操作系统。虽然QNX本身并不属于UNIX,但由于其提供了POSIX的支持,使得多数传统UNIX程序在微量修改(甚至不需修改)后即可在QNX上面编译与运行。
在具有高可靠性内核的基础上,QNX的创新设计使它同样具有很高的效率。QNX最为引人注目的地方是,它是UNⅨ的同胞异构体,保持了和UNⅨ的高度相似性,绝大多数UNⅨ或LINUX应用程序可以在QNX下直接编译生成。这意味着为数众多的稳定成熟的UNⅨ、LINUX应用可以直接移植到QNX这个更加稳定高效的实时嵌入式平台上来。
TRON
TRON 是一项开放式的实时操作系统内核设计项目,它是”The Real-time Operating system Nucleus”(实时操作系统内核)的缩写。该项目由东京大学的坂村健教授于1984年发起,宗旨是为全社会的需要开发一套理想的计算机结构和网络。
担任日本东京大学(University of Tokyo)教授的坂村一直是个跳脱框架的思想家、大胆敢言,并热烈支持下一代运算架构;他的大部分学术生命都投入于开发TRON,以及在日本推广普及、无所不在的运算之概念。坂村表示,他所构想的“智慧物联网(Intelligent Object Network)”──类似于当红的物联网──可追溯至1987年他所开发的TRON目标之一。
TRON 在国内的知名度不高,但其实它的应用非常广,有兴趣的可以搜索相关文章进行了解,比如《TRON 伴随生活的另一个操作系统世界》。
μT/OS
大连悠龙软件科技有限公司从2008年开始借鉴谷歌在 Android 上的成功商业模式,以 μT-Kernel 规范为基础,2009年底在世界上第一个研发出支持 Cortex M3 和 μT-Kernel 规范的实时操作系统内核,后来逐渐加上 Linux 上的成熟轻量级开源中间件,推出了中国人自己的物联网开源实时操作系统——μTenux,在 μTenux 中遵循 μT-Kernel 规范的内核被命名为 μT/OS。μTenux 支持 CortexM0/3/4、ARMV4T、ARMV5E 等多种32位内核微控制器,在2010年和2011年陆续成为 ATMEL 和 ARM 公司全球操作系统战略合作伙伴。
近期 uT/OS V3.0 启动了,支持 ST 全系列 Nucleo 板子,支持 STM32 Cube 库,支持动态下载程序,增加安全 API。
Github 地址:https://github.com/TenuxOS。
μCOS-II/μCOS-III
相信国内做嵌入式开发的应该都听过 μCOS,μCOS 在国内的应用也非常广泛,这得益于其代码的良好风格和开放性,以及配套的中间件和文档的完整性,并且在北京麦克泰公司及国内一些嵌入式专家的支持下,出版了很多关于 μCOS 的中文书籍。
μC/OS-II 的前身是 μC/OS,最早出自于1992 年美国嵌入式系统专家Jean J.Labrosse 在《嵌入式系统编程》杂志的5月和6月刊上刊登的文章连载,并把 μC/OS 的源码发布在该杂志的 BBS 上。μC/OS-II 是在 μC-OS 的基础上发展起来的,是用 C 语言编写的一个结构小巧、抢占式的多任务实时内核。μC/OS-II 能管理 64 个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。
μC/OS-II 中断处理比较简单。一个中断向量上只能挂一个中断服务子程序 ISR,而且用户代码必须都在 ISR 中完成。ISR 需要做的事情越多,中断延时也就越长,内核所能支持的最大嵌套深度为 255。
Micrium 宣布在它的嵌入式产品中增加 μC/OS-MMU 和μC/OS-MPU 两款产品。这两种产品增加了嵌入式系统中的关键内存函数。μC/OS-MMU 通过为多个独立的应用提供时间和空间的保护,为带有内存管理单元(MMU)的中央处理器提供了内存保护功能。μC/OS-MPU通过保护任务的内存防止对未被授权的系统内存的访问,破坏内存的内容,为带有内存保护单元的CPU提供了保护机制。
关于 μCOS-II 和 μCOS-III 的区别和性能对比,可以搜索相关文章进行了解,比如《UCOS-II和UCOS-III的性能对比》。
2016 年,为了强化自身嵌入式物联网设计方案,Silicon Labs 宣布收购物联网(IoT)即时操作系统(RTOS)软件供应商Micrium,来增进物联网嵌入式解决方案的完整性。
FreeRTOS
FreeRTOS 是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
FreeRTOS 的特点包括:
用户可配置内核功能
多平台的支持
提供一个高层次的信任代码的完整性
目标代码小,简单易用
遵循MISRA-C标准的编程规范
强大的执行跟踪功能
堆栈溢出检测
没有限制的任务数量
没有限制的任务优先级
多个任务可以分配相同的优先权
队列,二进制信号量,计数信号灯和递归通信和同步的任务
优先级继承
免费开源的源代码
FreeRTOS 的创始人是 Richard Barry,他编写了大量的移植代码和配套文档,我们可以从 FreeRTOS 官网(www.freertos.org)获取相关的学习资料和源代码。
SafeRTOS 便是基于 FreeRTOS 而来,前者是经过安全认证的 RTOS,因此对于 FreeRTOS 的安全性也有了信心。
RT-Thread(国产)
RT-Thread 是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread 也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。RT-Thread 具备一个 IoT OS 平台所需的所有关键组件,例如 GUI、网络协议栈、安全传输、低功耗组件等等。经过11年的累积发展,RT-Thread 已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过两千万台,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS。
RT-Thread 拥有良好的软件生态,支持市面上所有主流的编译工具如 GCC、Keil、IAR等,工具链完善、友好,支持各类标准接口,如 POSIX、CMSIS、C++ 应用环境、Javascript 执行环境等,方便开发者移植各类应用程序。商用支持所有主流 MCU 架构,如 ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V,几乎支持市场上所有主流的 MCU 和 Wi-Fi 芯片。
RT-Thread 实时操作系统遵循 GPLv2+ 许可证,实时操作系统内核及所有开源组件可以免费在商业产品中使用,不需要公布应用程序源码,没有潜在商业风险。
官方网站:http://www.rt-thread.org/
Nucleus OS
Nucleus 是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%的代码是用 ANSIC 写成的,因此非常便于移植并能够支持大多数类型的处理器。从实现角度来看,NucleusPLUS 是一组 C 函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的 RAM 中或直接烧录到目标板的 ROM 中执行。
Nucleus 是 Mentor Graphics 公司开发的一种嵌入式操作系统。这家公司声称,其软件目前在30多亿个设备上运行,这是个相当庞大的安装群。该操作系统为众多嵌入式架构提供了有力的支持,在汽车、医疗、公用事业、工业和消费类电子产品等行业垂直领域大受欢迎。共享单车 Bluegogo 用的就是 Nucleus OS。
官网地址:https://www.mentor.com/embedded-software/nucleus/
NuttX
NuttX 是一个实时嵌入式操作系统(Embedded RTOS),它很小巧,在微控制器环境中使用。Nuttx完全可扩展,可从从小型(8位)至中型嵌入式(32位)系统。它的设计目的还在于完全符合POSIX标准,完全实时,并完全开放。
NuttX 的第一个版本由 Gregory Nutt 于 2007 年在宽松的 BSD 许可证下发布。
我是在四轴飞行器的论坛上第一次听到 NuttX 的,NuttX 支持 Allwinner、Atmel、Freescale、MicroChip、nuvoTon、NXP、Hitachi、STMicroelectronics、Texas Instruments 等多款微控制器和板卡,对文件系统和网络有良好的支持,还提供一个类似 bash 的 shell。
官方网站:http://www.nuttx.org
Wiki:http://www.nuttx.org/doku.php?id=wiki
下载:http://sourceforge.net/projects/nuttx
SylixOS
SylixOS 是一款嵌入式硬实时操作系统,同其类似的操作系统,全球比较知名的还有 VxWorks(主要应用于航空航天、军事与工业自动化领域)、RTEMS(起源于美国国防部导弹与火箭控制实时系统)、ThreadX(主要应用于航空航天与数码通讯)等。
从全球范围上看,SylixOS 作为实时操作系统的后来者,在设计思路上借鉴了众多实时操作系统的设计思想,其中就包括 RTEMS、VxWorks、ThreadX 等,使得具体性能参数上达到或超过了众多实时操作系统的水平,成为国内实时操作系统的最优秀代表之一。
SylixOS 的主要特点有:
兼容IEEE 1003(ISO/IEC 9945)操作系统接口规范
兼容POSIX 1003.1b(ISO/IEC 9945-1)实时编程的标准
优秀的实时性能(任务调度与切换、中断响应算法都是O(1)时间复杂度算法)
支持无限多任务
支持进程、线程、协程三种多任务模型
支持优先级继承,防止优先级翻转
极其稳定的内核,内核CPU占用率低
支持紧耦合同构多处理器(SMP)
支持标准I/O、多路I/O复用与异步I/O接口
支持多种新型异步事件同步化接口,例如:signalfd、timerfd、hstimerfd、eventfd等
支持众多标准文件系统:FAT、YAFFS、ROOTFS、PROCFS、NFS、ROMFS等
支持文件记录锁,可为各种类型实时数据库提供支持(SQL、NoSQL、In-Mem DB)
支持动态应用程序装载、动态链接库以及内核模块
支持标准TCP/IPv4/v6双网络协议栈
支持AF_UNIX、AF_PACKET、AF_INET、AF_INET6协议域
集成众多网络工具,例如:FTP、TFTP、NAT、PING、TELNET、NFS等
支持众多标准设备抽象,如:TTY、BLOCK、DMA、ATA、GRAPH、RTC、PIPE等
支持多种工业设备或总线模型,如:CAN、I2C、SPI、USB、PCI、SDIO等
提供内核行为跟踪器方便调试
可支持众多图形界面系统,例如:Qt、ftk、ucGUI等
官方网站:http://www.sylixos.com/
代码下载:http://git.sylixos.com/cgit/
相关文档:http://wiki.sylixos.com/
liteOS
华为物联网操作系统 Huawei LiteOS 是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。本项目属于华为物联网操作系统 Huawei LiteOS 基础内核源码,现有代码支持任务调度,内存管理,中断机制,队列管理,事件管理,IPC机制,时间管理,软定时器以及双向链表等常用数据结构。
Huawei LiteOS 的代码将以 BSD 3-Clause License,除非华为另选其他许可证(“可适用的许可证”)。接收者可以访问 http://opensource.org/licenses/BSD-3-Clause 查看该许可证的详细内容。
Lite OS 目前世界上最轻量级的物联网操作系统,其系统体积轻巧到10KB级,具备零配置、自组网、跨平台的能力,可广泛应用于智能家居、穿戴式、工业等领域。由于 LiteOS 实行开源,合作伙伴便可以快速构建自己的物联网产品,这将让智能硬件的开发变得更加简单,从而加快实现万物的互联互通。Lite OS 的模式与牛津大学研究人员发明的 Contiki 系统、加州大学伯克利分校发明的 TinyOS 相似,同样具备轻量化、开源的特性。
LiteOS 操作系统具有能耗最低,体积最小、响应最快的特点,已推出全开放开源社区,提供芯片、模块和开源硬件板,如海思的 PLC 芯片 HCT3911、媒体芯片 3798M/C、IPCamera 芯片 Hi3516A,以及 LTE-M 芯片等(开发者也可以选择第三方芯片,如STM32等)。
LiteOS 主要应用于智能家居、穿戴式、车联网、智能抄表、工业互联网等 IoT 领域的智能硬件上,数据采集、实时控制等是其典型使用环境。
Huawei LiteOS 快速入门:http://developer.huawei.com/ict/cn/site-iot/article/liteos-start/
代码下载:https://github.com/LITEOS/LiteOS_Kernel
AliOS/YunOS
据了解,新的阿里巴巴操作系统事业部将在 IoT 领域持续增加投入,面向汽车、IoT 终端、IoT 芯片和工业领域研发物联网操作系统,并整合原 YunOS 移动端业务。过去的 YunOS 即进化为 AliOS。
YunOS 基于 Linux 研发,搭载自主研发的核心操作系统功能和组件,支持 HTML5 生态和独创的 CloudCard 应用环境,增强了云端服务能力。
针对此次操作系统升级,阿里内部人士表示,此轮动作主要是为整体品牌升级。之前互联网汽车业务、物联网业务、手机业务等都各有叫法,现在统一为 AliOS,同时明确重点,整合原有 YunOS移 动端业务,定位物联网操作系统,重点研发汽车操作系统、IoT 等领域。
阿里巴巴集团资深副总裁、AliOS 总裁胡晓明则表示:“阿里集团将持续深耕汽车操作系统领域,携手斑马网络和更多汽车全产业链的合作伙伴,共同推动汽车行业的智能化转型。今天,不智能的手机已经成了古董。未来,不智能的汽车也将成为古董。汽车是 AliOS 驱动万物智能的开始,我们将定义一个不同于 PC 和移动时代的物联网操作系统。”
前不久,阿里巴巴也兑现了承诺,将AliOS-Things 开放出来了,github 地址:https://github.com/alibaba/AliOS-Things
MiCO
MiCO IoT OS 由上海庆科联合阿里智能云于2014年7月发布,是国内首款真正意义上的物联网操作系统。简单的说它是基于 MCU 的全实时物联网操作系统,是面向智能硬件设计、运行在微控制器上的高度可移植的操作系统和中间件开发平台,已被广泛应用于智能家电、照明、医疗、安防、娱乐等物联网应用市场。
MiCO 的全称是:Micro-controller based Internet Connectivity Operating system。是基于微控制器的互联网接入操作系统。 开发者可以在各种微控制器平台上基于 MiCO 来设计接入互联网的创新智能产品,实现人,物互联。
MiCO 是针对智能硬件优化设计而运行在微控制器上高度可移植的实时操作系统,包含了各种软件中间件,从而降低智能硬件开发成本,提高开发效率是国内首款物联网操作系统。MiCO 拥有完整的解决方案,包括了建议的无线网络配置、智能硬件的初次设置、快速无线网络接入、本地设备与服务发现、身份认证等组件。这些都能够降低研发投入和维护的成本,缩短研发周期。
MiCO 物联网工程师开发服务平台:http://mico.io/
Ruff
Ruff 是一个支持 JavaScript 开发应用的物联网操作系统,为软件开发者提供开放、高效、敏捷的物联网应用开发平台,让 IoT 应用开发更简单。
Ruff 对硬件进行了抽象,使用了基于事件驱动、异步 I/O 的模型,使硬件开发变得轻量而且高效。除了使用 JavaScript 作为开发语言,它还拥有自己的软件仓库,从模块到驱动一应俱全。提高软件兼容性、降低硬件开发门槛。
整个 Ruff 开发体系包括 Ruff OS、Ruff SDK、Ruff 软件仓库、Ruff Kit 开发套件。 只要您有软件开发经验,就可以用 Ruff 开发硬件应用。
Ruff 的特点有:
JavaScript 编程——采用开发者众多的唯一全栈语言作为编程语言
硬件抽象——调用程序库即可操作硬件,降低开发入门门槛
跨平台——忽略板卡差异,同一份应用代码可以运行在不同板卡上
高效便捷开发——告别交叉编译、烧写板卡,PC 上完成测试,一键部署
官方网站:https://ruff.io/zh-cn/
Zephyr
Linux 基金会宣布了一个微内核项目——Zephyr,由 Intel 主导, 风河提供技术。Zephyr 微内核将被用于开发针对物联网设备的实时操作系统(RTOS)。Zephyr 项目得到了英特尔、 NXP 半导体、Synopsys 和 UbiquiOS 等公司的支持,英特尔子公司 Wind River 向 Zephyr 项目捐赠了它的 Rocket RTOS 内核。
Wind River 的 Rocket RTOS 将转变成基于 Zephyr 内核的下游商业发行版。Zephyr 微内核能运行在只有 10KB RAM 的32位微控制器上,相比之下基于Linux的微控制器项目 uClinux 需要200KB RAM。
Zephyr 项目在设备和通信协议栈的两个层次提供安全特性,除此之外,社区也对安全问题严肃看待,计划成立专门安全工作组并委派一位安全维护者。
官方网站:https://www.zephyrproject.org/
Ostro
Ostro 操作系统是特别为物联网建造的操作系统,开发者可以马上用,节省了很多时间,功能也非常完善,包括覆盖全面的连接标准,支持包含蓝牙、WiFi 和 NFC 等连接方式,并且支持多种如 IoTivity 的设备对设备互联互通标准;包含安全启动、强制访问控制、加密标准和软件安全更新协议等安全措施;先进的设备管理以及直观的开发工具。
是一套基于 Linux 并且为物联网智能设备特别量身订做的开源操作系统,它可以为任意数量的物联网使用案例特别定制功能,包含 Linux 参考设计、软件包安装和管理机制。除此之外,它的开发工具可以让设备上的连接潜力扩展到最大。Ostro 项目不但提供管理众多设备的工具,最重要的是,它能保障物联网世界安全无虞。
Ostro 操作系统的适应性非常强,既可直接用于受支持的设备,也可以按照需求进行定制,而且开发环境提供了多种语言选择(Native (C/C++) 和 Node.js),可以轻松找到新设备的驱动程序,并充分利用 Linux 社区的所有资源。最后,它还提供了从引导/内核到中间件和应用的自上而下的安全性选项。
Ostro 操作系统包含易用的工具,让开发和原型制作都变得容易。它利用 Yocto 项目的工具组环境来进行操作系统和应用包的配置,开发者可以先创建出一个理想的配置再根据需求修改。当使用基于 Linux 的开发工具时,对于既有的 Linux 和安卓开发者,完全不需要额外的学习过程,开发者可以直接用交互编译工具来生成程序。
官方网站:https://ostroproject.org/
TinyOS
Tiny OS 是 UC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,操作系统基于构件(component-based)的架构使得快速的更新成为可能,而这又减小了受传感网络存储器限制的代码长度。Tiny OS 是一个具备较高专业性,专门为低功耗无线设备设计的操作系统,主要应用于传感器网络、普适计算、个人局域网、智能家居和智能测量等领域。
Tiny OS的如下特性决定了其在传感器网络中的广泛应用,使其在物联网中占据了举足轻重的地位。
相对于主流操作系统成百上千MB的庞大体积来说,Tiny
OS显得十分迷你,只需要几KB的内存空间和几十KB的编码空间就可以运行的起来,而且功耗较低,特别适合传感器这种受内存、功耗限制的设备。
Tiny
OS本身提供了一系列的组件,包括:网络协议、分布式服务器、传感器驱动及数据识别工具等,使用者可以通过简单方便的编制程序将多个组件连接起来,用来获取和处理传感器的数据并通过无线电来传输信息。
Tiny OS在构建无线传感器网络时,通过一个基地控制台控制各个传感器子节点,聚集和处理各子节点采集到的信息。Tiny
OS只要在控制台发出管理信息,然后由各个节点通过无线网络互相传递,最后达到协同一致的目的。
更多请看:http://tinyos.stanford.edu/tinyos-wiki/index.php/Main_Page
eCOS(GNU)
eCos(embedded Configurable operating system),中文翻译为嵌入式可配置操作系统或嵌入式可配置实时操作系统。适合于深度嵌入式应用,主要应用对象包括消费电子、电信、车载设备、手持设备以及其他一些低成本和便携式应用。eCos 是一种开放源代码软件,无需支付任何版税。
它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。最大特点是配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用 eCos 提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。
eCos 使用了分层式中断处理机制,把中断处理分为传统的 ISR 和滞后中断服务程序 DSR。类似于 μClinux 的处理机制,这种机制可以在中断允许时运行 DSR,因此在处理较低优先级中断时允许高优先级的中断和处理。为了极大地缩短中断延时,ISR 应当可以快速运行。如果中断引起的服务量少,则 ISR 可以单独处理中断;如果中断服务复杂,则 ISR 只屏蔽中断源,然后交由 DSR 处理。
官方网站:http://ecos.sourceware.org/
Contiki
Contiki 系统的名字来自于托尔·海尔达尔的康提基号,由牛津大学研究人员发明。
Contiki 是一个适用于有内存的嵌入式系统的开源的、高可移植的、支持网络的多任务操作系统。包括一个多任务核心、TCP/IP 堆栈、程序集以及低能耗的无线通讯堆栈。Contiki 采用 C 语言开发的非常小型的嵌入式操作系统,运行只需要几K的内存。
Contiki 拥有出色的 TCP/IP 网络支持,包括IPv4和IPv6,还有 6Lowpan 报文压缩、RPL路由、CoAP应用层,已经成为无线传感器网络和物联网感知层低功耗无线组网协议研发和实验的主要平台,其中6Lowpan已经成为IETF规范,也被zigbee SEP2.0标准以及ISA100.11a标准所采纳。
作者:阿基米东
原文:https://blog.csdn.net/lu_embedded/article/details/78363460
版权声明:本文为博主原创文章。