写点什么

十问物联网操作系统:爆发前夜,国内为何加速涌现多种物联网操作系统?

  • 2022-11-10
    北京
  • 本文字数:5134 字

    阅读完需:约 17 分钟

十问物联网操作系统:爆发前夜,国内为何加速涌现多种物联网操作系统?

嘉宾 | 郭振宇、王佳、汪礼超、刘寿永

作者 | 凌敏


近几年,随着物联网浪潮席卷全球,物联网操作系统的市场需求实现了大爆发。数据显示,2015-2020 年,全球物联网操作系统市场规模逐年上升,复合增长率达到了 16.95%。与此同时,本土物联网操作系统也进入蓬勃发展期,市场规模也在逐步提升。


极客邦科技双数研究院 InfoQ 研究中心调研发现,在国内主流开源操作系统中,物联网操作系统占据了极大的比重。其中,不少物联网操作系统受到了开发者群体的极大关注,从 GitHub / Gitee Star 数来看,包括 HarmonyOS、TencentOS Tiny、AliOS Things、Rt-Thread 等操作系统的 Star 数均在 3k 以上。



可以看到,国内物联网操作系统市场已经进入了爆发增长期。那么,在这一趋势下,我们到底应该如何理解物联网操作系统?如何破解“碎片化”难题,做好生态建设?物联网操作系统又将走向怎样的未来?……


对此,InfoQ 特邀 OpenCloudOS 社区 TOC(技术监督委员会)主席、腾讯云副总裁郭振宇,腾讯操作系统研发负责人王佳,腾讯 TencentOS Tiny 项目负责人汪礼超,中科创达首席架构师刘寿永一同解读了大家关注的十个焦点问题,共探物联网操作系统的过去、现在与未来。

InfoQ 第一问:什么是物联网操作系统?


郭振宇:从传统技术角度看,物联网操作系统往往是指运行在物联网芯片、终端上的基础软件栈。以腾讯物联网操作系统 TencentOS Tiny 为例,主要包括操作系统内核(嵌入式 RTOS、嵌入式 Linux 或者全新的微内核)、基础通信协议(以太网、WiFi、蓝牙、2/3/4/5G、NB-IoT、LoRa 等)、物联网应用层协议(MQTT、CoAP、LWM2M、Matter 等)、常用物联网外网组件(文件系统、KV 存储、安全组件、OTA 升级、功耗管理框架、高级语言引擎等)。


简而言之,物联网操作系统就是由传统的嵌入式操作系统内核,与若干物联网相关软件栈组成的终端软件平台。从行业应用角度看,物联网操作系统也定位为物联网的全套软件解决方案。例如,智能家居的物联网操作系统,既包括物联网终端的软件栈,也包括边缘网关的软件栈,还包括云上服务、前端应用等。


汪礼超:从技术维度来看,物联网操作系统是由操作系统内核以及常见的物联网协议构成,从而打通互联互通的能力。从长远的意义上来考虑,我们需要在一些行业中打通整个行业级的物联网操作系统,不单单包括终端操作系统,还需要融合物联网典型场景,让用户真正感觉到这套系统的便捷性和实用性。


刘寿永:我们以前讲的操作系统一般都是指单体设备,比如提到 PC,我们就想到 Windows;提到服务器,我们就想到 Linux;提到手机,我们就想到 Android、iOS。但物联网本身是一个广义的概念,物联网的设备形态非常多样化,品类非常多,大小功能不尽相同,而且一般具有广泛的连接功能。因此物联网操作系统的概念非常泛化。


所谓物联网操作系统,其实是一套端、边、云、网、管一体的系统,在这个系统内部,包含了端侧系统、边侧系统、云侧系统,不同的系统之间通过网络互联,相互协作共同完成。 这样多个系统形成的超级系统,也符合操作系统的定义。因此,从操作系统定义上来讲,整个泛在的物联网系统也是一个大的操作系统。

InfoQ 第二问:物联网操作系统浪潮是从什么时候掀起的?


郭振宇:物联网操作系统基于物联网的概念,在国内从 2015 年左右掀起浪潮。作为万物互联的核心中枢单元,物联网操作系统是真正打通感知层(传感器及物联网终端)、网络层(物联网通信硬件和协议)、应用层(物联网行业应用)的核心构件。


作为产业互联网解决方案中的重要组成部分,腾讯从 2017 年起就在物联网领域建设完整的生态链产品布局。为了降低终端厂商和开发者在二次开发上投入的人力、物力成本,腾讯物联网操作系统也在 2018 年启动研发,能支持多种形态物联网终端业务和数据快速接入腾讯云,最大程度上减少终端厂家和开发者的开发周期和成本,吸引更多物联网终端和数据接入腾讯云物联网平台,促进腾讯物联网生态快速发展。


对于差异化的物联网终端和硬件而言,只有通过物联网操作系统的协调,才能实现设备互联互通,从而实现物与物、物与人的全场景连接。


刘寿永:物联网操作系统的浪潮应该是随着网络和智能化发展开始的,比如 lora、NB 等等,它们使得一些传统的单体设备可以接入到网络当中,通过联网积累了大量的数据,并对其进行智能化处理。云计算的模式能解决一部分问题,但不是全部,有些实时或者量小的,可以在边缘端直接处理,有些时候则需要协同。因此,网联化和智能化催生了物联网操作系统从单一系统泛化发展。


操作系统的关键作用就是屏蔽底层资源,调度任务,给开发者提供统一接口。从硬件的角度上来讲,物联网操作系统能有效地统一利用物联网资源;从开发者的角度来讲,有统一的开发接口来简化系统开发;从消费者的角度来讲,简化部署方式,节省成本。


汪礼超:在 2014 年之前,大家普遍称其为嵌入式操作系统,这也是物联网操作系统的前身,目前很多比较知名的物联网操作系统都是基于嵌入式操作系统,做了一些物联网的组件支持,并将其打包到一起。随着物联网概念兴起,物联网操作系统浪潮也随之掀起。

InfoQ 第三问:目前国内外物联网操作系统发展到什么阶段了?


汪礼超:当前,物联网操作系统乃至整个物联网行业都还处于发展初期阶段,并且也没有形成统一的标准。在生态体系中,还没有出现类似 Android 或 Windows 这样能够占据较大市场份额的操作系统。


目前,大家在物联网侧用的比较多的操作系统如 FreeRTOS,它其实是一个裸的 RTOS 内核,并不是真正意义上的物联网操作系统。真正的物联网操作系统能够解决物与物相联,或者物与云、物与人之间的一些交流,真正实现互联互通。


刘寿永:可以把物联网操作系统分成五个阶段:


  • 第一,概念阶段,这个阶段在当前已经过时了,因为大家普遍都能理解物联网操作系统的概念;

  • 第二,初级阶段,就是端边云系统工作,目前也已经实现了。

  • 第三,中级阶段,也就是设备的系统协同工作、资源的共享调度,目前我们大部分工作还处于这个阶段。

  • 第四,出现分布式 API,它让开发者能真正的开发分布式应用,不关心资源、网络等细节,可以分布式部署。

  • 第五,自然交互,物联网操作系统除了刚才提到的端边云一体之外,还需要能进行真正的自然交互,如人物交互、物物交互等等,从而形成真正的数字世界。

InfoQ 第四问:物联网操作系统最大的特点是什么?在设计上和桌面操作系统有哪些区别?


汪礼超:区别非常明显。比如桌面操作系统会偏向于人机交互,特别是针对 UI 层的需求比较多,具体包括一些高级语言应用的开发等等。但物联网操作系统面向的是物与物之间的交流,需要打通不同的物联网终端或者物联网设备之间的通信,之后再去打通物与平台以及用户的链路。所以在物联网操作系统设计中,最核心的问题就是如何实现互联互通,不仅包括终端与终端之间的互通,还包括终端与平台、云、应用、小程序、App 等多个方面的互通。


另一方面,像桌面操作系统面向的对象是人,主要与人打交道。与之相比,物联网以及物联网终端的形态更加复杂,需求也是呈现多样化。这也是“碎片化严重”成了物联网行业共识的原因之一。“碎片化”导致物联网操作系统的各种标准、协议很难统一,而在桌面操作系统等领域,业界已经形成了非常标准的,或者大家公认的一套协议。

InfoQ 第五问:国内外有哪些好用的物联网操作系统?它们各自针对哪些场景?


刘寿永: 目前国内涌现出了很多物联网操作系统,但更多还处于物联网操作的系统的第三阶段,如 RTT、EdgerOS、OneOS 等。其中,有应用在小终端上(传感器一类),有用在边缘设备上,OpenHarmony 是第一个提出分布式概念,同时支持多种终端的物联网操作系统。在物联网的大潮下,中科创达子公司北京奥思维科技有限公司也推出了自己的物联网操作系统 MILOS,通过中间件(OSWare)在传统的操作系统的基础上,来打造泛在 OS,支持多种传统 OS,有连接、管理、任务调度、分布式应用引擎,并支持场景交互。

InfoQ 第六问:从 0 到 1 搭建一个物联网操作系统,主要存在哪些技术难点?


汪礼超:以 TencentOS Tiny 为例,TencentOS Tiny 的内核是完全自研的,代码规模大概在 1 万行左右。想要把操作系统做到好用,并且降低开发者入门门槛,仍需要很大工作量。


其中,比较有技术难度的地方是如何实现协议栈的互联互通。由于当前并没有形成统一的标准,因此在搭建物联网操作系统时,需要考虑如何让用户体验更好。另外,向下,还要考虑对硬件的兼容性,物联网硬件种类繁多,单就芯片来说就有成千上万种;向上,还要解决物联网操作系统与云端、前端小程序等渠道的交互。


刘寿永:现在基本上很难从 0 到 1,其实也没有必要,因为物联网操作系统更关注的是跨设备、跨网络、分布式,不关心单体设备,单体设备的资源由传统的操作来负责就可以了。但这里面也有很多技术难点:比如资源抽象、分布式任务、数据管理等等,需要考虑如何设计分布式应用引擎以支持不同的应用,毕竟单体设备资源是不一样的。

InfoQ 第七问:在全真互联时代,物联网操作系统可能会发生哪些改变?


王佳: 站在操作系统的角度来讲,全真互联会带来更多虚拟的资源以及数据。当前,传统的操作系统管理的是硬件设备层面的数据输入和输出,在全真互联时代,管理的数据不仅局限于此。对物联网操作系统而言,全真互联是一个比较庞大的全新的场景,不同于过去的智慧城市、智慧家居,它构建了一个新的世界。

InfoQ 第八问:“碎片化”一直是物联网的鲜明特点,造成这一现象的主要原因是什么?这给物联网操作系统带来了哪些挑战?


刘寿永: 主要是需求多样化、设备多样化、网络多样化等等,这对物联网操作系统有以下挑战:第一,自适应性,是不是可以适配不同的设备,是不是有统一的 API 等等;第二,是交互性,即用户体验,它是不是能真正地解决用户的痛点,物联网操作系统要想爆发,需要找到可以爆发的应用。

InfoQ 第九问:生态是操作系统的根本,物联网操作系统如何做好生态建设,生态里的核心参与者需要做些什么?


郭振宇: 物联网的发展离不开生态的统一建设与行业标准的落地。要做好物联网操作系统的生态,首先要形成相关技术标准,包括硬件接口标准、内核接口标准、物联网协议标准、应用接口标准等。此外,还需要继续提升物联网操作系统的易用性。我们认为,优秀的物联网操作系统不单单是技术上要有优势,同时需要契合用户需求,实现开发者共建生态。


好的操作系统,一定是广大开发者和用户用出来的。物联网操作系统需要发展,需要形成良好的生态,无论是技术生态还是应用生态。物联网操作系统需要做到代码简洁清晰,软件架构及逻辑分明,通过封装、功能模块化降低使用者的入门门槛,不断迭代新功能,修复已知问题,最大程度通过开源协同的方式吸引开发者和产品用户参与进来,从实际产品落地中去发现需求,有针对性地解决实际问题,提升操作系统自身的竞争力,形成良好的技术社区、引导开发者生态和应用生态同步发展。


基于这样的生态建设目标,腾讯物联网操作系统也在积极发展开源生态,努力发展合作伙伴,扩展 IoT 应用生态。目前已经与多家 MCU/IP 核厂家达成了合作,支持的物联网硬件平台超过了 80 款,除了 MCU 和模组外,TencentOS Tiny 也积极推进终端产品及项目的落地,目前已经形成了 AI 智慧农业、智能货柜、智慧会议室等方案,拓展智慧行业生态。


我们希望,物联网系统生态能通过合作共赢去建设生态,促进国产物联网操作系统发展,推进物联网行业标准制定,解决物联网发展碎片化的问题。

InfoQ 第十问:您如何看待物联网操作系统在接下来 3-5 年的发展?有哪些趋势值得关注?


郭振宇:物联网是全真互联的重要技术基石之一。从长期来看,物联网将助力实现人、物、环境、世界之间的无限连接,通过实现远程交互,打造多端感应与互联,助力全真互联的落地。


由于物的碎片化比较严重,物联网目前仍处于发展早期阶段。物联网设备需要遵循共同的标准,才能够把不同的物收集到的信息整合起来,实现信息在各部分之间的相互传输。未来,我们认为物联网操作系统会向着统一行业标准的方向发展,通过不同行业的细分领域整合形成技术共识。


目前,物联网操作系统以嵌入式操作系统内核 + 物联网组件为主。随着物联网需求的进一步增长,会继续迭代和细分。比如,向微内核的方向发展,支持弹性伸缩、资源隔离,支持不同资源和性能的硬件设备;同时,版本形态会针对不同的行业应用进行定制化,形成差异化发展趋势。比如,在车联网方面,逐步演变成车载系统和全栈车机解决方案。


刘寿永:物联网操作系统未来会继续向前演化,从连接走向智能,从智能走向自然,从自然走向真正的数字化。开放协作也会越来越重要,物联网是一个超级系统,各个小系统如何能有效的开放、连接、协同非常重要。数字化是终极目标,无论是 web3、元宇宙、智能助手、工业数字化等,最终都是数字化乃至智能数字化的一部分。

2022-11-10 16:423474

评论 1 条评论

发布
用户头像
为啥各家厂商推自己IOT平台,各搞各的没有统一?我认为发展初期这是正常的,一个完备的场景解决方案,要垂直优化,重要的还是让用户体验到便利啊。
2022-11-11 14:52 · 北京
回复
没有更多了
发现更多内容

九种查找算法

C语言与CPP编程

面试 算法 编程语言 C语言 编译器、程序语言、CPU

面试中常见的C语言与C++区别的问题

C语言与CPP编程

c++ 面试 编程语言 C语言 编译器、程序语言、CPU

十七张图玩转Node进程——榨干它

执鸢者

大前端 进程 Node

C语言C++中assert的用法

C语言与CPP编程

程序员 编程语言 C语言

架构师训练营 1 期 -- 第二周作业

曾彪彪

极客大学架构师训练营

第二周作业

alpha

极客大学架构师训练营

一、搭建Python环境和安装Pycharm

刘润森

Python

高并发下如何缩短响应时间

架构师修行之路

微服务 高并发优化

「架构师训练营第1期」第二周作业

张国荣

极客大学架构师训练营

三、新手Jupyter不会用,我十招教你盘她

刘润森

Python

学生成绩管理系统案例

C语言与CPP编程

编程语言 C语言 编译器、程序语言、CPU

十、给小白看的第三篇Python基础教程

刘润森

Python

一文轻松理解内存对齐

C语言与CPP编程

程序员 面试 编程语言 C语言 编译器、程序语言、CPU

六、乘胜追击,将剩下的Git知识点搞定

刘润森

[架构师训练营第1期]第二周命题作业

猫切切切切切

极客大学架构师训练营

什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

魏小龙

敏捷开发 依赖倒置原则

架构师训练营 1 期 -- 第二周总结

曾彪彪

极客大学架构师训练营

字符串操作的全面总结

C语言与CPP编程

编程语言 C语言 编译器、程序语言、CPU 字符串

架构1期第二周作业

FG佳

架构训练营 -week2- 学习总结

于成龙

面向对象 架构训练营

二、搭建Jupyter Notebook环境

刘润森

Python

四、学编程语言前,不了解Git,怎么入坑

刘润森

Python

代码防御性编程的十条技巧

C语言与CPP编程

程序员 编程语言 C语言 编译器、程序语言、CPU

十大经典排序算法(动态演示+代码)

C语言与CPP编程

面试 算法 编程语言 编译器、程序语言、CPU

SpringBoot 异步任务

hepingfly

Java springboot 异步任务

五、开始Github和码云之旅,新手如何上路

刘润森

Python

七、连Pycharm都不知道怎么用,学什么Python

刘润森

Python

八、给小白看的第一篇Python基础教程

刘润森

Python

做好分库分表其实很难之一

架构师修行之路

微服务 分库分表

深拷贝与浅拷贝到底是什么

C语言与CPP编程

c++ 面试 C语言

依赖倒置及接口隔离原则

天天向上

极客大学架构师训练营

十问物联网操作系统:爆发前夜,国内为何加速涌现多种物联网操作系统?_物联网_凌敏_InfoQ精选文章