在前几篇系列文章中已经论述了一款操作系统想要得到广泛应用的难度,而且操作系统的领先优势不具备可延续性。从PC时代到功能机时代,再到智能机时代,占据统治地位的操作系统已经更换了两拨。以至于有人会说,要想站在上一个时代预测下一个时代哪家公司做操作系统会成功根本是不可能的事情,其中包含了大量的不确定性和运气成分。
操作系统背后的软硬件生态支持都很重要,硬件兼容和软件生态的建立是一款操作系统发展的命门。这看起来就不像是创业公司能做的事。当然了,巨头光环作用似乎也不大,微软折戟移动时代刚刚过去,如今谷歌、亚马逊、苹果等巨头缠斗物联网操作系统。
但是依托操作系统的竞争护城河回报也是丰厚的。苹果公司依靠自有的ios系统和相对应软硬件支撑,以移动市场不到20%的市场份额,占到整个智能手机市场利润的73%(2018年数据)。谷歌公司则依靠开源安卓系统,联合广大手机厂商的形式输出一整套移动时代的工具(GMS),进而直接为自己旗下的各种工具、应用导流,建立起伟大广告业务帝国的深深护城河。在不是自己地盘的iOS生态内,谷歌每年都支付高昂的费用使得苹果手机内保持默认的首选项是谷歌,这个价格在2019年已经达到了120亿美元。
几乎所有人都认可在智能手机之后的下一个时代属于物联网,但物联网的一些关键性业务发展上还混沌不清,比如物联网的操作系统。
随着入网设备数量的指数级增加,过去一些无法和用户产生交互的设备将产生交互需求,而由众多设备组成的集成网络也对操作系统提出了新的要求。
跨平台的操作系统在研发层面是很难的,发展的过程很大程度上也是对过去积累的不断抛弃。微软一直在追求跨平台操作系统的开发,但到目前为止也没有成功。苹果则采取的是折中的方案,或裁剪,或重写后推出了MacOS、iOS、WatchOS和TvOS这四款分别对应于电脑、手机、手表和电视的操作系统。目前的很多厂商也采用裁剪的方式推出过渡阶段的系统,比如安卓基础上裁剪出的Android Things、Win10基础上裁剪出的 Win10 IoT,以及AliOS裁剪出的AliOS Things等。
在物联网操作系统的发展上,首先得到实现的还是物与物之间沟通的轻量化操作系统。目前市面上流行的物联网操作系统大多数也围绕轻量级展开,主要解决的是终端设备之间,以及终端设备和云端的信息交互。本文重点介绍物联网时代的先行者——轻量级物联网操作系统。
轻量级操作系统的出现是为了满足联网设备对于低性能、低功耗、实时可靠的需求,随着物联网产业的发展,轻量级物联网系统逐渐从技术人员的开源开发兴趣转移到大厂的重点布局,其中,国外代表性的事件是2014年ARM公司(主业是芯片IP授权)亲自下场推出平台化的物联网操作系统mbed OS,以及2017年底亚马逊IoT部门“招安”Free RTOS,其入职成为亚马逊AWS任首席工程师,随后亚马逊正式推出Amazon FreeRTOS。国内对物联网产业有兴趣的巨头也没闲着,华为2015年推出轻量级物联网系统LiteOS,阿里在YunOS手机操作系统挫败后转而将其向物联网方向发展,推出AliOS Things,国产物联网操作系统RT-Thread也因其10多年积累和开源免费成为广泛使用的操作系统。
于2003年推出的 FreeRTOS在全球范围内具有大量的使用者,据EEtimes杂志嵌入式系统市场报告2011-2017数据显示,FreeRTOS在RTOS内核使用榜和RTOS内核计划使用榜上都居前列。
使用者众以及开源免费带来的优势是文档及学习资料充分,降低了开发者的学习门槛。2017年之后FreeRTOS还获得了亚马逊平台的支持,低功耗的小型设备可以安全地连接到 AWS 云服务上,提高了端侧操作系统的云端支持能力。
亚马逊对FreeRTOS的支持还带来了生态方面的助力,AWS的合作伙伴生态系统提供了广泛的选择,包括社区贡献、专业支持以及集成的开发和生产力; FreeRTOS 中预集成的项目也便于设备与云端的连接。
ARM公司作为移动时代最成功的芯片IP授权提供商,通过部署操作系统的形式参与到物联网时代中。这对于其巩固自身在嵌入式芯片(cortex-M等系列)的市场地位也具有重要意义。
其于2014年推出针对物联网应用的的开源嵌入式操作系统mbed OS,具有支持确定性、多线程实时的特点,适用于低时延的工业自动化控制和车联网上。
mbed OS的一大优势在于,ARM是真正懂硬件层架构设计的,因此在硬件兼容性规范上1具有先天优势。其添加了硬件抽象层(HAL),便于统一嵌入式硬件生态。ARM在mbed平台上提供了60多家经过mbed enable认证的硬件方案供开发者选择,包括100多种开发板和400多个元件库,涵盖了市面上主流的芯片厂商,如NXP、Atmel、ST、瑞萨等,减少了软件开发者因为硬件不兼容原因的二次开发和移植困境。
Huawei LiteOS是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统,于2015年推出,可广泛应用于智能家居、个人穿戴、车联网、城市公共服务、制造业等领域。
根据LiteOS的开发文档,其目前支持目前支持ARM Cortex-M0,Cortex-M3,Cortex-M4,Cortex-M7等芯片架构,适配了30+ 通用 MCU开发套件,5套NB-IoT集成开发套件。整体来看,LitOS具有低功耗框架(最小内核尺寸仅为6KB)、OpenCPU架构(MCU和通信模组二合一,降低终端设备大小和成本)、端云互通组件完备(SDK端云互通组件预集成了全套IoT互联互通协议栈,快速上云)等优点,便于物联网开发者使用。
具体到基础内核(LiteOS kernel)上,包括可以单独运行的任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件,支持超小内核的裁剪和低功耗性质。
由阿里云开发的YunOS在手机端业务受挫后,转向物联网,因此有了AliOS和AliOS Things这两款延伸。AliOS向车载方向发展,AliOS Things 在裁剪优化后,则向轻量化低功耗方向发展。作为一款轻量级物联网操作系统,其可实现ROM2KB, RAM1KB,应用在智能家居、智慧城市、工业等方向上。
从其文档提供的分层架构图来看,其核心组件由一个轻量级的实时内核、低功耗引擎、连接协议,还包括安全组件、uMesh 自组网、语音交互、多变升级云连接 SDK。AliOS Things在底层做到了对主流IoT芯片的优化支持和硬件抽象层等有利于不同硬件间移植的特性。在端侧设备和云端的信息传输上,AliOS Things提供的Linke Edge等云端联动组件同样支持IoT产品快速上云。
RT-Thread是国产领先的物联网操作系统,开源项目始于2006年。因其开放、免费、成熟和可靠的特点,已经获得亿台设备的装机认证,在工业、新能源、电力,消费,家电,交通等各行业被广泛使用。这也是本文所举案例中唯一一个还没有得到巨头靠山的操作系统。
RT-Thread 内核包括内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件 / 板级支持包)与硬件密切相关,由外设驱动和 CPU 移植构成。
RT-Thread 内核之上是组件和服务层,例如虚拟文件系统、FinSH 命令行界面、网络框架、设备框架等。这一块采用模块化设计,做到组件内部高内聚,组件之间低耦合。
组件与服务层之上是RT-Thread 软件包,这一块提供面向不同应用领域的通用软件组件,开发者可自行选择。RT-Thread目前支持的软件包有60+,包括物联网、脚本语言、多媒体、外设相关等。
据官方披露的信息,RT-Thread核心已经被应用到了累积4亿台设备上。