51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1383|回复: 0
打印 上一主题 下一主题

纵论物联网(五):除了Linux,还有什么物联网操作系统

[复制链接]

 成长值: 15661

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2017-9-16 17:51:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    导语


    在前面介绍物联网终端设备的文章中,我们已经简单地介绍了物联网操作系统。物联网操作系统的种类非常多,不过其中有很大一部分是基于Linux系统改造的,还有一些系统是商业公司或开源组织开发的,当然微软公司也开发了一系列面向嵌入式应用的操作系统。


    出于成本或者定制化的需求,开发者往往更青睐开源的物联网操作系统。开源系统可以大致分为两大类:

      一类是基于Linux系统改造的物联网OS,如uCLinux、谷歌的Brillo、华为的Lite OS等;
      一类是非Linux类物联网OS,由开源社区或商业公司按照某种开源许可独立设计实现,如uCOS、FreeRTOS、mbed等。

    篇幅有限,本文重点介绍一下非Linux类的物联网OS,这类系统通常是比较轻量级的实时操作系统,更适合应用于存储性能有限的MCU。
    FreeRTOS



    FreeRTOS(www.freertos.org)是一个迷你的实时操作系统内核,但麻雀虽小,五脏俱全,包括了任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等操作系统的基本功能。
    FreeRTOS创始人是Richard Barry,最初他设计这个系统的初衷,就是出于自身为工作项目中寻找RTOS的过程很痛苦。商业系统很贵,开源系统也缺乏好的文档支持。
    相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,源码公开、可移植、可裁减,可移植到各种单片机上运行,在嵌入式系统尤其是实时操作系统方面应用者众多,比如著名的智能手表Pebble就是用了FreeRTOS。μC/OS-II



    μC/OS-II 是一种基于优先级的抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息 队列)和内存管理等功能。
    μC/OS-II绝大部分的代码是用ANSII的C语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。μC/OS-II经过了非常严格的测试,甚至都已经运用到美国航空管理局的飞行器上。
    μC/OS-II由Micrium公司以源代码的形式发布,但并不意味着它是免费软件。可以将其用于教学和私下研究(peaceful research);但是如果将其用于商业用途,那么必须通过Micrium获得商用许可。mbed


    mbed SDK 体系及目录结构


    mBed(mbed.org)是ARM公司官方提供的一套用于快速开发ARM架构单片机应用原型的工具集,包括免费的软件库(SDK),硬件设计参考(HDK)和基于Web的在线编译环境(mBed Compiler)三部分。
    由于mBed的代码和大部分硬件设计都是以开源(permissive Apache 2.0 licence)的方式提供的,再加上它面向的ARM系列单片机具有较高的性价比和广泛的应用基础,所以mBed在世界范围内已经吸引了大量的电子产品开发者,其产业生态链已经初级规模。MiCO


    MICO系统架构


    2014年7月,MiCO号称是中国首款物联网操作系统,由上海庆科(MXCHIP)发布。根据官方解释,MiCO的意思是Micro-controller based Internet Connectivity Operating system,是基于微控制器(MCU)的互联网接入操作系统,这个解释其实和物联网操作系统的意思一回事。

    MiCO本身包括:接口,框架,核心功能和非核心功能四部分。开发者可以在各种微控制器平台上,基于MiCO来设计接入互联网的创新智能产品。
    庆科与阿里有合作关系,阿里云的物联网套件的C-SDK,也有MiCO系统的版本。关于MiCO的更多信息,可以去MiCO开发者论坛(mico.io)了解。Mynewt


    Mynewt(mynewt.apache.org)是Apache软件基金会(ASF: Apache Software Foundation)发起的一个开源项目,专注于物联网应用的实时操作系统。Mynewt的最大特色是包括了低功耗蓝牙(BLE4.2)无线传输协议栈NimBLE。
    Mynewt支持丰富的实时操作系统特征,可以在不同的硬件平台上运行,包括ARM Cortex M0-M4微控制器,以及基于MIPSRISC-V架构的处理器。Contiki


    Contiki (www.contiki-os.org)是一个适用于有内存的嵌入式系统的开源的、高可移植的、支持网络的多任务操作系统。包括一个多任务核心、TCP/IP 堆栈、程序集以及低能耗的无线通讯堆栈。
    Contiki起源于瑞典的大学,基础内核以及大部分的核心功能是Swedish Institute of Computer Science的Adam Dunkels开发的。
    Contiki 采用 C 语言开发的非常小型的嵌入式操作系统,运行只需要几K的内存。Contiki都很受学术机构以及高校的科研人员青睐,常用于无线传感器网络(WSN:Wireless Sensor Network)的研究项目中。NuttX



    Nuttx(www.nuttx.org) 是一个实时嵌入式操作系统,它很小巧,在微控制器环境中使用,可用于8位到32位系统。
    NuttX的特色在于完全符合POSIX API标准,完全实时,并完全开放。目前常用于无人机的飞控系统中。RIOT OS


    RIOT(riot-os.org)的目标是在物联网领域起到Linux在互联网领域那样的影响力。RIOT是一个开源、免费的操作系统。支持8位到32位的微控制器,可以运行在大多数低功耗物联网设备上。在GitHub(github.com/RIOT-OS)上可以找到RIOT的源码。TinyOS


    Tiny OSUC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计。与Contiki类似,Tiny OS同样来自于高校,由于其文档非常完善,其受欢迎程度甚至超过Contiki,不过国内使用者不多。
    操作系统基于组件(component-based)的架构使得快速更新成为可能,同时又减小了受传感网络存储器限制的代码尺寸。Tiny OS只需要几KB的内存空间和几十KB的编码空间。Zephyr



    Zephyr尽管是由 Linux 基金会托管的开源项目, 但 Zephyr 是一款完全独立的操作系统, 并未采用 Linux 代码。
    Zephyr微内核能运行在只有10KB RAM的32位微控制器上,相比之下基于Linux的微控制器项目uClinux需要200KB RAM。结语



    除了上面列出来的操作系统,其实还有更多没有列出来的。就连也没闲着,正在秘密开发一个完全独立于Android的新系统,叫做Fuchsia(灯笼海棠),据说这个系统有可能采用iOS策略,走封闭路线。难道谷歌被安卓碎片化问题伤心了?
    物联网操作系统要比PC OS以及移动OS体量小,开发起来门槛也没那么高,很多很小的系统都可以作为商用,所以对于物联网产品设计者来说还是有很多选择的。

    声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。
    扫描并关注51学通信微信公众号,获取更多精彩通信课程分享。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-2-8 02:57 , Processed in 0.069751 second(s), 32 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表