前言
今天PC和手机时代的操作系统霸主未必能在物联网时代延续霸业。操作系统产业的规律是,当垄断已经形成,后来者就很难颠覆,只有等待下一次产业浪潮。如今,一个全新的、充满想象空间的操作系统市场机会正在开启。
如此关键的产业环节必然是兵家必争之地。ARM、谷歌、微软、华为、阿里、海尔等国内外著名的IT企业纷纷推出物联网操作系统,整个产业呈现出群雄逐鹿的壮观景象。传统的嵌入式系统公司也不甘示弱,纷纷通过开源和并购策略推出面向物联网软件平台,比如Intel、风河、芯科和Micrium。在一轮新的产业浪潮中,国内创业公司也走在风口浪尖上,他们纷纷推出自己的物联网操作系统,比如庆科、Ruff和RT-thread。
回溯物联网操作系统的发展历程,年是个重要的、标志性的起点。正是从这一年开始,ARM、谷歌、微软等国际巨头陆续登场,形形色色物联网操作系统进入我们的视野。
ARMMbedOS
mbedOS是ARM公司专门为IoT设计的一个操作系统平台,它支持所有基于CortexM系列的控制器,mbedOS是开源的操作系统,详情源代码请看:
简单来说,Mbed是一个开发平台,一个基于ARMcortexM系列的单片机开发平台。
Mbed提供C/C++SDK,因此使用者可以专注于应用程序的设计,而不用过多
AndroidThings是谷歌为GoogleBrillo更改名称后的新版系统,后者是谷歌在年宣布的一款物联网操作系统。尽管Brillo的核心是Android系统,但是它的开发和部署明显不同于常规Android开发。Brillo把C++作为主要开发环境,而AndroidThings则面向所有Java开发者,不管开发者有没有移动开发经验。
AndroidThings整合了物联网设备通讯平台Weave,WeaveSDK将嵌入到设备中进行本地和远程通讯。WeaveServer是用来处理设备注册、命令传送、状态存储以及与谷歌助手等谷歌服务整合的云服务。
从硬件资源的角度来看,AndroidThings属于土豪级的系统,动辄上百MB的内存显然不适合单片机,这也正常,因为它的主要竞争对手其实是Windows10IoT。
顺便说一下谷歌秘密研发而又众所周知的Fuchsia系统,它没有基于Linux内核,而是基于一种叫Magenta的内核,是一种轻量级的内核,适用于嵌入式系统。虽然Android占了移动设备端的大半江山,但Android仍然存在不少问题,比如:碎片化问题严重,在大屏幕设备上表现糟糕,以及被很多用户诟病的卡顿与体验问题。虽然卡顿的本质原因是很多无良应用的后台互相唤醒,无节制的权限、内存使用等,但是这也恰恰反映了Android的底层架构设计是有瑕疵的。所以谷歌想着干脆抛弃Linux,开发自己的Fuchsia,同时还避开了GPL。按照谷歌的性格,还真不是不可能,看看Java和Kotlin就知道了。我等码农只能寄希望于Fuchsia能像它的中文名那样,未来能大红大紫,造福人类吧。
Windows10IoTCore
Windows10IoT是面向各种智能设备的Windows10版本系列,涵盖了从小的行业网关到大的更复杂的设备(如销售点终端和ATM),种类繁多。结合最新的Microsoft开发工具和AzureIoT服务,合作伙伴可以收集、存储和处理数据,从而打造可行的商业智能和有效的业务结果。在构建基于Windows10IoT的解决方案后,合作伙伴将在利用一系列Microsoft技术提供端到端的解决方案时发现更多机会。
由于Windows10forIoT是全新产品,它在用户群和经验丰富的开发者方面显然落后于其他许多物联网操作系统。话虽如此,这款操作系统大有潜力,如果你想在内部开发应用程序,更是如此。最终,那些习惯于使用VisualStudio和Azure物联网服务,针对Windows从事开发工作的人会被整套的Windows10forIoT方案吸引过去。
WatchOS
说了那么多巨头,怎么少得了苹果公司呢,苹果在桌面端有OSX,在移动端有iOS。虽然苹果目前还没有在物联网市场扮演重要的角色,但苹果已利用了其操作系统平台的变种,开发了多款物联网设备,比如苹果电视、CarPlay(借助BlackBerryQNX)和苹果手表。
UbuntuCore16
Ubuntu已经向外界透露了它们对于物联网的最新想法,那就是让Linux成为让物联网更智能和可扩展的核心。SnappyUbuntuCore是面向智能设备的最新平台,其承诺可以运行存储在本地或依赖于云端的相同软件。显然,后者的最大好处就是可以让使用者避开频繁的定期升级。
UbuntuCore团队意识到,“联网设备”的数量将会激增。虽然手机和计算机的定期维护和更新已深入人心,但是对于洗衣机、温控器、以及智能开关来说,大家却很容易忽略掉它们。
此外,在频发的黑客攻击面前,联网设备的安全性也需要慎重考虑。如果没有最新的安全补丁和固件修复,那么必将会给联网设备的使用者留下巨大的隐患。
更重要的是,UbuntuCore既可以在设备上、也可以依赖云端而运行。并且无论他们运行于ARM或x86平台,开发者都会得到相同的API和安全更新。
截至目前,Ubuntu母公司Canonical已经拥有了21家合作伙伴,我们希望这一数字可以在今年迎来更高的增长。
网址:
μClinux是一种优秀的嵌入式Linux版本,其全称为micro-controlLinux,从字面意思看是指微控制Linux。同标准的Linux相比,μClinux的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCP/IP网络协议等。因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。
与Linux一样,μClinux操作系统将中断处理分为两部分:顶半处理和底半处理。在顶半处理中,必须关中断运行,且仅进行必要的、非常少、速度快的处理,其他处理交给底半处理;底半处理执行那些复杂、耗时的处理,而且接受中断。因为系统中存在有许多中断的底半处理,所以会引起系统中断处理的延时。
μClinux最大特点在于针对无MMU处理器设计,可以利用功能强大的Linux资源,因此适合开发对事件要求不高的小容量、低成本的各类产品,特别适用于开发与网络应用密切相关的嵌入式设备或者PDA设备。
下载
QNX是一个分布式、嵌入式、可规模扩展的硬实时操作系统。它遵循POSⅨ.1(程序接口)和POSⅨ.2(Shell和工具)、部分遵循POSⅨ.1b(实时扩展)。它诞生于年,距今已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是一项开放式的实时操作系统内核设计项目,它是”TheReal-timeOperatingsystemNucleus”(实时操作系统内核)的缩写。该项目由东京大学的坂村健教授于年发起,宗旨是为全社会的需要开发一套理想的计算机结构和网络。
担任日本东京大学(UniversityofTokyo)教授的坂村一直是个跳脱框架的思想家、大胆敢言,并热烈支持下一代运算架构;他的大部分学术生命都投入于开发TRON,以及在日本推广普及、无所不在的运算之概念。坂村表示,他所构想的“智慧物联网(IntelligentObjectNetwork)”──类似于当红的物联网──可追溯至年他所开发的TRON目标之一。
TRON在国内的知名度不高,但其实它的应用非常广,有兴趣的可以搜索相关文章进行了解,比如《TRON伴随生活的另一个操作系统世界》。
μT/OS
大连悠龙软件科技有限公司从年开始借鉴谷歌在Android上的成功商业模式,以μT-Kernel规范为基础,年底在世界上第一个研发出支持CortexM3和μT-Kernel规范的实时操作系统内核,后来逐渐加上Linux上的成熟轻量级开源中间件,推出了中国人自己的物联网开源实时操作系统——μTenux,在μTenux中遵循μT-Kernel规范的内核被命名为μT/OS。μTenux支持CortexM0/3/4、ARMV4T、ARMV5E等多种32位内核微控制器,在年和年陆续成为ATMEL和ARM公司全球操作系统战略合作伙伴。
近期uT/OSV3.0启动了,支持ST全系列Nucleo板子,支持STM32Cube库,支持动态下载程序,增加安全API。
Github
相信国内做嵌入式开发的应该都听过μCOS,μCOS在国内的应用也非常广泛,这得益于其代码的良好风格和开放性,以及配套的中间件和文档的完整性,并且在北京麦克泰公司及国内一些嵌入式专家的支持下,出版了很多关于μCOS的中文书籍。
μC/OS-II的前身是μC/OS,最早出自于年美国嵌入式系统专家JeanJ.Labrosse在《嵌入式系统编程》杂志的5月和6月刊上刊登的文章连载,并把μC/OS的源码发布在该杂志的BBS上。μC/OS-II是在μC-OS的基础上发展起来的,是用C语言编写的一个结构小巧、抢占式的多任务实时内核。μC/OS-II能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。
μC/OS-II中断处理比较简单。一个中断向量上只能挂一个中断服务子程序ISR,而且用户代码必须都在ISR中完成。ISR需要做的事情越多,中断延时也就越长,内核所能支持的最大嵌套深度为。
Micrium宣布在它的嵌入式产品中增加μC/OS-MMU和μC/OS-MPU两款产品。这两种产品增加了嵌入式系统中的关键内存函数。μC/OS-MMU通过为多个独立的应用提供时间和空间的保护,为带有内存管理单元(MMU)的中央处理器提供了内存保护功能。μC/OS-MPU通过保护任务的内存防止对未被授权的系统内存的访问,破坏内存的内容,为带有内存保护单元的CPU提供了保护机制。
关于μCOS-II和μCOS-III的区别和性能对比,可以搜索相关文章进行了解,比如《UCOS-II和UCOS-III的性能对比》。
年,为了强化自身嵌入式物联网设计方案,SiliconLabs宣布收购物联网(IoT)即时操作系统(RTOS)软件供应商Micrium,来增进物联网嵌入式解决方案的完整性。
FreeRTOS
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
FreeRTOS的特点包括:
用户可配置内核功能
多平台的支持
提供一个高层次的信任代码的完整性
目标代码小,简单易用
遵循MISRA-C标准的编程规范
强大的执行跟踪功能
堆栈溢出检测
没有限制的任务数量
没有限制的任务优先级
多个任务可以分配相同的优先权
队列,二进制信号量,计数信号灯和递归通信和同步的任务
优先级继承
免费开源的源代码
FreeRTOS的创始人是RichardBarry,他编写了大量的移植代码和配套文档,我们可以从FreeRTOS
SafeRTOS便是基于FreeRTOS而来,前者是经过安全认证的RTOS,因此对于FreeRTOS的安全性也有了信心。
RT-Thread(国产)
RT-Thread是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。RT-Thread具备一个IoTOS平台所需的所有关键组件,例如GUI、网络协议栈、安全传输、低功耗组件等等。经过11年的累积发展,RT-Thread已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过两千万台,成为国人自主开发、国内最成熟稳定和装机量最大的开源RTOS。
RT-Thread拥有良好的软件生态,支持市面上所有主流的编译工具如GCC、Keil、IAR等,工具链完善、友好,支持各类标准接口,如POSIX、CMSIS、C++应用环境、Javascript执行环境等,方便开发者移植各类应用程序。商用支持所有主流MCU架构,如ARMCortex-M/R/A,MIPS,X86,Xtensa,C-Sky,RISC-V,几乎支持市场上所有主流的MCU和Wi-Fi芯片。
RT-Thread实时操作系统遵循GPLv2+许可证,实时操作系统内核及所有开源组件可以免费在商业产品中使用,不需要公布应用程序源码,没有潜在商业风险。
官方网站:
Nucleus是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95%的代码是用ANSIC写成的,因此非常便于移植并能够支持大多数类型的处理器。从实现角度来看,NucleusPLUS是一组C函数库,应用程序代码与核心函数库连接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的ROM中执行。
Nucleus是MentorGraphics公司开发的一种嵌入式操作系统。这家公司声称,其软件目前在30多亿个设备上运行,这是个相当庞大的安装群。该操作系统为众多嵌入式架构提供了有力的支持,在汽车、医疗、公用事业、工业和消费类电子产品等行业垂直领域大受欢迎。共享单车Bluegogo用的就是NucleusOS。
NuttX是一个实时嵌入式操作系统(EmbeddedRTOS),它很小巧,在微控制器环境中使用。Nuttx完全可扩展,可从从小型(8位)至中型嵌入式(32位)系统。它的设计目的还在于完全符合POSIX标准,完全实时,并完全开放。
NuttX的第一个版本由GregoryNutt于年在宽松的BSD许可证下发布。
我是在四轴飞行器的论坛上第一次听到NuttX的,NuttX支持Allwinner、Atmel、Freescale、MicroChip、nuvoTon、NXP、Hitachi、STMicroelectronics、TexasInstruments等多款微控制器和板卡,对文件系统和网络有良好的支持,还提供一个类似bash的shell。
官方网站:
Wiki:
下载:
SylixOS是一款嵌入式硬实时操作系统,同其类似的操作系统,全球比较知名的还有VxWorks(主要应用于航空航天、*事与工业自动化领域)、RTEMS(起源于美国国防部导弹与火箭控制实时系统)、ThreadX(主要应用于航空航天与数码通讯)等。
从全球范围上看,SylixOS作为实时操作系统的后来者,在设计思路上借鉴了众多实时操作系统的设计思想,其中就包括RTEMS、VxWorks、ThreadX等,使得具体性能参数上达到或超过了众多实时操作系统的水平,成为国内实时操作系统的最优秀代表之一。
SylixOS的主要特点有:
兼容IEEE(ISO/IEC)操作系统接口规范
兼容POSIX.1b(ISO/IEC-1)实时编程的标准
优秀的实时性能(任务调度与切换、中断响应算法都是O(1)时间复杂度算法)
支持无限多任务
支持进程、线程、协程三种多任务模型
支持优先级继承,防止优先级翻转
极其稳定的内核,内核CPU占用率低
支持紧耦合同构多处理器(SMP)
支持标准I/O、多路I/O复用与异步I/O接口
支持多种新型异步事件同步化接口,例如:signalfd、timerfd、hstimerfd、eventfd等
支持众多标准文件系统:FAT、YAFFS、ROOTFS、PROCFS、NFS、ROMFS等
支持文件记录锁,可为各种类型实时数据库提供支持(SQL、NoSQL、In-MemDB)
支持动态应用程序装载、动态链接库以及内核模块
支持标准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等
官方网站:
代码下载:
相关文档:
华为物联网操作系统HuaweiLiteOS是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。本项目属于华为物联网操作系统HuaweiLiteOS基础内核源码,现有代码支持任务调度,内存管理,中断机制,队列管理,事件管理,IPC机制,时间管理,软定时器以及双向链表等常用数据结构。
HuaweiLiteOS的代码将以BSD3-ClauseLicense,除非华为另选其他许可证(“可适用的许可证”)。接收者可以访问
LiteOS目前世界上最轻量级的物联网操作系统,其系统体积轻巧到10KB级,具备零配置、自组网、跨平台的能力,可广泛应用于智能家居、穿戴式、工业等领域。由于LiteOS实行开源,合作伙伴便可以快速构建自己的物联网产品,这将让智能硬件的开发变得更加简单,从而加快实现万物的互联互通。LiteOS的模式与牛津大学研究人员发明的Contiki系统、加州大学伯克利分校发明的TinyOS相似,同样具备轻量化、开源的特性。
LiteOS操作系统具有能耗最低,体积最小、响应最快的特点,已推出全开放开源社区,提供芯片、模块和开源硬件板,如海思的PLC芯片HCT、媒体芯片M/C、IPCamera芯片HiA,以及LTE-M芯片等(开发者也可以选择第三方芯片,如STM32等)。
LiteOS主要应用于智能家居、穿戴式、车联网、智能抄表、工业互联网等IoT领域的智能硬件上,数据采集、实时控制等是其典型使用环境。
HuaweiLiteOS快速入门:
代码下载:
AliOS/YunOS
据了解,新的阿里巴巴操作系统事业部将在IoT领域持续增加投入,面向汽车、IoT终端、IoT芯片和工业领域研发物联网操作系统,并整合原YunOS移动端业务。过去的YunOS即进化为AliOS。
YunOS基于Linux研发,搭载自主研发的核心操作系统功能和组件,支持HTML5生态和独创的CloudCard应用环境,增强了云端服务能力。
针对此次操作系统升级,阿里内部人士表示,此轮动作主要是为整体品牌升级。之前互联网汽车业务、物联网业务、手机业务等都各有叫法,现在统一为AliOS,同时明确重点,整合原有YunOS移动端业务,定位物联网操作系统,重点研发汽车操作系统、IoT等领域。
阿里巴巴集团资深副总裁、AliOS总裁胡晓明则表示:“阿里集团将持续深耕汽车操作系统领域,携手斑马网络和更多汽车全产业链的合作伙伴,共同推动汽车行业的智能化转型。今天,不智能的手机已经成了古董。未来,不智能的汽车也将成为古董。汽车是AliOS驱动万物智能的开始,我们将定义一个不同于PC和移动时代的物联网操作系统。”
前不久,阿里巴巴也兑现了承诺,将AliOS-Things开放出来了,github
MiCOIoTOS由上海庆科联合阿里智能云于年7月发布,是国内首款真正意义上的物联网操作系统。简单的说它是基于MCU的全实时物联网操作系统,是面向智能硬件设计、运行在微控制器上的高度可移植的操作系统和中间件开发平台,已被广泛应用于智能家电、照明、医疗、安防、娱乐等物联网应用市场。
MiCO的全称是:Micro-controllerbasedInternetConnectivityOperatingsystem。是基于微控制器的互联网接入操作系统。开发者可以在各种微控制器平台上基于MiCO来设计接入互联网的创新智能产品,实现人,物互联。
MiCO是针对智能硬件优化设计而运行在微控制器上高度可移植的实时操作系统,包含了各种软件中间件,从而降低智能硬件开发成本,提高开发效率是国内首款物联网操作系统。MiCO拥有完整的解决方案,包括了建议的无线网络配置、智能硬件的初次设置、快速无线网络接入、本地设备与服务发现、身份认证等组件。这些都能够降低研发投入和维护的成本,缩短研发周期。
MiCO物联网工程师开发服务平台:
Ruff是一个支持JavaScript开发应用的物联网操作系统,为软件开发者提供开放、高效、敏捷的物联网应用开发平台,让IoT应用开发更简单。
Ruff对硬件进行了抽象,使用了基于事件驱动、异步I/O的模型,使硬件开发变得轻量而且高效。除了使用JavaScript作为开发语言,它还拥有自己的软件仓库,从模块到驱动一应俱全。提高软件兼容性、降低硬件开发门槛。
整个Ruff开发体系包括RuffOS、RuffSDK、Ruff软件仓库、RuffKit开发套件。只要您有软件开发经验,就可以用Ruff开发硬件应用。
Ruff的特点有:
JavaScript编程——采用开发者众多的唯一全栈语言作为编程语言
硬件抽象——调用程序库即可操作硬件,降低开发入门门槛
跨平台——忽略板卡差异,同一份应用代码可以运行在不同板卡上
高效便捷开发——告别交叉编译、烧写板卡,PC上完成测试,一键部署
官方网站:
Linux基金会宣布了一个微内核项目——Zephyr,由Intel主导,风河提供技术。Zephyr微内核将被用于开发针对物联网设备的实时操作系统(RTOS)。Zephyr项目得到了英特尔、NXP半导体、Synopsys和UbiquiOS等公司的支持,英特尔子公司WindRiver向Zephyr项目捐赠了它的RocketRTOS内核。
WindRiver的RocketRTOS将转变成基于Zephyr内核的下游商业发行版。Zephyr微内核能运行在只有10KBRAM的32位微控制器上,相比之下基于Linux的微控制器项目uClinux需要KBRAM。
Zephyr项目在设备和通信协议栈的两个层次提供安全特性,除此之外,社区也对安全问题严肃看待,计划成立专门安全工作组并委派一位安全维护者。
官方网站:
Ostro操作系统是特别为物联网建造的操作系统,开发者可以马上用,节省了很多时间,功能也非常完善,包括覆盖全面的连接标准,支持包含蓝牙、WiFi和NFC等连接方式,并且支持多种如IoTivity的设备对设备互联互通标准;包含安全启动、强制访问控制、加密标准和软件安全更新协议等安全措施;先进的设备管理以及直观的开发工具。
是一套基于Linux并且为物联网智能设备特别量身订做的开源操作系统,它可以为任意数量的物联网使用案例特别定制功能,包含Linux参考设计、软件包安装和管理机制。除此之外,它的开发工具可以让设备上的连接潜力扩展到最大。Ostro项目不但提供管理众多设备的工具,最重要的是,它能保障物联网世界安全无虞。
Ostro操作系统的适应性非常强,既可直接用于受支持的设备,也可以按照需求进行定制,而且开发环境提供了多种语言选择(Native(C/C++)和Node.js),可以轻松找到新设备的驱动程序,并充分利用Linux社区的所有资源。最后,它还提供了从引导/内核到中间件和应用的自上而下的安全性选项。
Ostro操作系统包含易用的工具,让开发和原型制作都变得容易。它利用Yocto项目的工具组环境来进行操作系统和应用包的配置,开发者可以先创建出一个理想的配置再根据需求修改。当使用基于Linux的开发工具时,对于既有的Linux和安卓开发者,完全不需要额外的学习过程,开发者可以直接用交互编译工具来生成程序。
官方网站:
TinyOS是UCBerkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,操作系统基于构件(
TinyOS的如下特性决定了其在传感器网络中的广泛应用,使其在物联网中占据了举足轻重的地位。
相对于主流操作系统成百上千MB的庞大体积来说,Tiny
OS显得十分迷你,只需要几KB的内存空间和几十KB的编码空间就可以运行的起来,而且功耗较低,特别适合传感器这种受内存、功耗限制的设备。
Tiny
OS本身提供了一系列的组件,包括:网络协议、分布式服务器、传感器驱动及数据识别工具等,使用者可以通过简单方便的编制程序将多个组件连接起来,用来获取和处理传感器的数据并通过无线电来传输信息。
TinyOS在构建无线传感器网络时,通过一个基地控制台控制各个传感器子节点,聚集和处理各子节点采集到的信息。Tiny
OS只要在控制台发出管理信息,然后由各个节点通过无线网络互相传递,最后达到协同一致的目的。
更多请看:
eCos(embeddedConfigurableoperatingsystem),中文翻译为嵌入式可配置操作系统或嵌入式可配置实时操作系统。适合于深度嵌入式应用,主要应用对象包括消费电子、电信、车载设备、手持设备以及其他一些低成本和便携式应用。eCos是一种开放源代码软件,无需支付任何版税。
它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。最大特点是配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。
eCos使用了分层式中断处理机制,把中断处理分为传统的ISR和滞后中断服务程序DSR。类似于μClinux的处理机制,这种机制可以在中断允许时运行DSR,因此在处理较低优先级中断时允许高优先级的中断和处理。为了极大地缩短中断延时,ISR应当可以快速运行。如果中断引起的服务量少,则ISR可以单独处理中断;如果中断服务复杂,则ISR只屏蔽中断源,然后交由DSR处理。
官方网站:
Contiki系统的名字来自于托尔·海尔达尔的康提基号,由牛津大学研究人员发明。
Contiki是一个适用于有内存的嵌入式系统的开源的、高可移植的、支持网络的多任务操作系统。包括一个多任务核心、TCP/IP堆栈、程序集以及低能耗的无线通讯堆栈。Contiki采用C语言开发的非常小型的嵌入式操作系统,运行只需要几K的内存。
Contiki拥有出色的TCP/IP网络支持,包括IPv4和IPv6,还有6Lowpan报文压缩、RPL路由、CoAP应用层,已经成为无线传感器网络和物联网感知层低功耗无线组网协议研发和实验的主要平台,其中6Lowpan已经成为IETF规范,也被zigbeeSEP2.0标准以及ISA.11a标准所采纳。
作者:阿基米东
原文: