速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

内核代码量不到一万行、GitHub star 超 5k,国产开源物联网操作系统 TencentOS Tiny 的探索与实践

  • 2022-12-07
    北京
  • 本文字数:3341 字

    阅读完需:约 11 分钟

内核代码量不到一万行、GitHub star超5k,国产开源物联网操作系统TencentOS Tiny的探索与实践

嘉宾 | 王佳、汪礼超

作者 | 凌敏


国内物联网操作系统浪潮是从 2015 年前后掀起来的。在此之前,人们更习惯称其为嵌入式操作系统,这也是物联网操作系统的前身。当前,很多物联网操作系统仍是基于传统的嵌入式操作系统内核,与若干物联网相关软件栈组成终端软件平台。


随着物联网在智能家居、汽车、可穿戴设备等多个行业得到广泛应用,物联网操作系统的市场需求日益增长,国内也涌现出了多款受开发者欢迎的本土物联网操作系统。


2019 年 9 月,腾讯物联网操作系统 TencentOS Tiny 正式开源;2020 年 10 月,TencentOS Tiny 捐赠给中国开放原子开源基金会。截至 2022 年 11 月,TencentOS Tiny 在 GitHub 上的 star 数达 5.7k,fork 数量 1.5k,开发者规模达 5000 人。目前,TencentOS tiny 可支撑智慧城市、智能水表、智能家居、智能穿戴、车联网等多种物联网行业应用,能为物联网终端厂家和终端设备提供一站式软件解决方案。


近日,InfoQ 采访了腾讯操作系统研发负责人王佳、腾讯 TencentOS Tiny 项目负责人汪礼超,以期进一步了解 TencentOS Tiny 的发展历程与技术实践。


GitHub 地址:

https://github.com/OpenAtomFoundation/TencentOS-tiny

TencentOS Tiny 的探索与实践


对腾讯而言,做物联网操作系统是一件自然而然的事情。


依托云、安全、AI 等技术创新,腾讯云与智慧产业事业群(CSIG)一直致力于打造智慧产业升级方案,并形成了一条物联网生态链。针对云场景,腾讯早在 2010 年就打造了服务器操作系统 TencentOS Server。随着腾讯云边缘计算业务快速发展,腾讯在 2019 年也启动了边缘操作系统 TencentOS Edge 的研发。


物联网操作系统 TencentOS Tiny 的研发工作则启动于 2018 年。作为物联网生态链底层重要的一环,物联网操作系统在一定程度上能够促进整个物联网的生态,乃至由腾讯主导的产业物联网的发展。对下,物联网操作系统能完善物联网端到端解决方案,实现终端设备的互联互通;对上,能为云上海量数据平台引流,将云端的边缘计算、大数据分析等能力与业务场景相结合,从而使终端设备更加智能化。


对于这款操作系统的定位,腾讯在一开始就想得很清楚:针对 MCU 芯片,打造 B 端生态链的前端操作系统,低功耗,低资源占用。“与其他物联网操作系统相比,我们有自己的特点,比如我们对腾讯云的支持,以及针对物联网嵌入式应用的特性。我们没有把这款物联网操作系统做得大而全,而是选择做极致精简的内核。”汪礼超对 InfoQ 说道。


2019 年 9 月,TencentOS Tiny 正式在 GitHub 上开源,发布不到 1 周便登上了 GitHub 全网开源项目热榜第二的位置。从 2019 年开始,TencentOS Tiny 每年都会举办多场开发者活动,并陆续成立了内核、AI 等多个 SIG 组,其他物联网相关 SIG 组也在筹备当中。2020 年 10 月,腾讯将 TencentOS Tiny 捐赠给中国开放原子开源基金会。目前,TencentOS Tiny 支持硬件平台数量 80+,与 STM32、NXP、瑞萨半导体、华大半导体、沁恒微电子、Nordic、兆易半导体、国民技术、TI MSP、瑞兴恒方、广和通等多家 MCU 和模组厂家达成合作,共同推进物联网终端产品落地商用。

产品架构及技术特性



TencentOS Tiny 的产品架构从下往上依次是主流 MCU 芯片 / 模组、核心基础内核及物联网所需要的联网组件。


底层,MCU 芯片 / 模组包括 STM32 和主流的蜂窝通信模组,提供了驱动框架和外设框架,兼容不同硬件,方便适配不同硬件平台。顶层,提供了物联网常用的功能组件,如文件系统、KV 存储和高级语言引擎框架等等;提供了方便用户调用的业务层 API,业务层上也会提供常用的案例供客户和开发者参考。此外,还内置了安全框架,为终端设备的设备唯一标识、通信链路加密、密钥安全存储提供了保障,防止物联网设备被攻击。


整体而言,TencentOS Tiny 具备三个特性:


  1. 内核精简,低资源占用。在产品定位上,TencentOS Tiny 更聚焦在互联网领域,为其提供非常精简的操作系统。据介绍,TencentOS Tiny 内核整体代码量不超过一万行,所有组件也都是可裁减可配置的,能够实现超低资源的占用,降低物联网软件使用成本。IDLE 任务下,最小资源占用仅为 0.6KB RAM、1.8KB ROM。

  2. 高效管理框架,功耗低。智慧城市等领域对功耗非常敏感,这也是市场痛点之一。TencentOS Tiny 能动态调整系统功耗,完整包含 MCU 和外围设备功耗管理,用户可以根据业务场景选择可参考的低功耗方案,最小休眠功耗可以达到 uA 级别,有效降低设备耗电,延长设备寿命。

  3. 软件架构简洁,可移植性良好。TencentOS tiny 提供多种编译器快速移植指南和移植工具,目前已经支持主流芯片和通信模组,降低开发者使用门槛,有效提升开发效率。


作为底层基础设施,操作系统普遍难以创造直接收益,更多是通过为行业提供解决方案来实现商业化。因此,对物联网操作系统来说,如何打造自身的差异化竞争力是一个需要长期思考的问题。


在汪礼超看来,物联网操作系统需要根据不同的应用场景发挥自身优势,比如在金融场景,安全与否是关键;在能源场景,功耗是首要考虑的问题。根据不同的应用场景,形成对应的解决方案或打造上层软件应用包,这些都是实现商业化的途径。


目前,TencentOS Tiny 的应用场景主要包括 MCU 芯片 / 物联网模组、物联网终端设备厂家以及物联网解决方案:


  • 支持主流的 MCU 芯片,如 STM32 NXP 等,支持主流通信模组,如 ESP8266 Wi-Fi、LoraWAN 模组、NB-IoT 模组等;

  • 提供完整的终端软件栈,简单易用的端云 SDK 缩短设备厂家的开发周期,进而节省终端产品开发成本;

  • 提供一站式软件解决方案,方便各种物联网设备快速接入腾讯云,可支撑智慧城市、智能水表、智能家居、智慧农业、智能穿戴、车联网等多种行业应用。

物联网“碎片化”特性明显,如何做好生态建设?


物联网浪潮的兴起让“万物互联”成了可能。根据 IoT Analytics 的统计及预测,2020 年,全球共有 117 亿台物联网设备,联网设备数量第一次超过了非联网设备;预计到 2025 年,全球物联网设备连接数将超过 300 亿。


与 iOS、Android、Windows 等操作系统不同,物联网操作系统的终端形态差异巨大,不同的行业有着不同的消费终端。随着行业进入高速发展期,物联网以及物联网终端的形态更加复杂,需求呈现多样化,“碎片化”特征也更加明显。


“现在物联网领域最大的问题就是‘碎片化严重’,操作系统作为物联网生态的其中一环,不足以解决整个‘碎片化’难题。不过,我们非常看好万物互联这个方向,也有比较全面的布局。”据王佳介绍,不同于桌面、服务器操作系统提供通用解决方案,物联网操作系统更具针对性,专注的领域更加垂直。


正因如此,要想做好物联网操作系统生态,需要行业形成统一标准,达成技术共识。“有了统一的行业标准后,生态链上的不同角色能够更好地合作互通,降低软硬件适配成本。否则,物联网操作系统生态将一直处于割裂状态。”汪礼超表示,目前在智能家居行业,这一愿景已初步实现——行业在酝酿新的智能家居协议,以解决“碎片化”难题。也许在未来,针对某个行业,会出现行业级别的物联网操作系统“一统江湖”,但归根结底,还是要由市场需求来驱动。


物联网操作系统要想进一步发展,汪礼超认为,行业需要找到共用的一套融合操作系统,或是共建一个融合性的社区,共同推动行业达成共识,一起把蛋糕做大。就像在服务器操作系统领域,大家普遍基于 Linux 内核构建操作系统,在技术栈上能够实现统一。在物联网操作系统领域,也可以形成统一的技术标准,包括硬件接口标准、内核接口标准、物联网协议标准、应用接口标准等。“展望未来,无论是针对细分领域还是针对整个行业,物联网操作系统都需要建立一套标准。这套标准也一定是大家共同建立和维护的。”


在汪礼超看来,除了要形成统一的物联网操作系统行业标准,让不同设备之间可以基于一套标准实现互联互通,在未来,这些趋势 / 方向同样值得关注:


  • 微内核。微内核的核心优势是内核精简,可剪裁,能更方便地部署到不同的硬件上。

  • RISC-V 架构。作为一种新兴的精简指令集架构,RISC-V 最大的特点是开源免费,降低物联网终端成本,促进物联网操作系统与硬件的结合,加快软件体系发展。

  • 车联网。未来新能源汽车有可能彻底取代传统燃油车,并且新能源汽车的智能化程度更高,对软件系统的要求也会更高,在物联网协议、安全、人机交互等方面都将提出更高的要求,这也是物联网操作系统在未来比较大的业务方向之一。

2022-12-07 10:3014376

评论

发布
暂无评论
发现更多内容

户外led显示屏常见规格有哪些

Dylan

广告 屏幕亮度 像素 LED显示屏 户外LED显示屏

Kurator v0.4.0版本更新4大内容,满足多云环境的复杂需求

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

PoseiSwap 更新第二期空投,持有 Zepoch 节点数量将决定空投回报

西柚子

企业内容管理升级 3.0:构建生态协同,助力合规成长

风来兮

软件 电子档案 OCR 合规 #人工智能

谈谈我这两年的前端开发经验

树上有只程序猿

王海峰最新发声!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

手把手教学构建农业知识图谱:农业领域的信息检索+智能问答,命名实体识别,关系抽取,实体关系查询

汀丶人工智能

人工智能 深度学习 nlp 知识图谱 智能问答

基于知识图谱的《红楼梦》人物关系可视化及问答系统(含码源):命名实体识别、关系识别、LTP简单教学

汀丶人工智能

人工智能 深度学习 nlp 知识图谱 智能问答

PoseiSwap 更新第二期空投,持有 Zepoch 节点数量将决定空投回报

鳄鱼视界

深入解析Redis的LRU与LFU算法实现

vivo互联网技术

redis LRU LFU

智能电视APP鲜时光,如何应用AB测试打造极致的用户观看体验?

字节跳动数据平台

几天不写React,已经看不懂语法了

伤感汤姆布利柏

中国大模型的落地DNA,写在这个双螺旋结构里

脑极体

AI

Pytorch: 数据读取机制Dataloader与Dataset

timerring

人工智能

Git操作不规范,战友提刀来相见!

树上有只程序猿

深度剖析之由浅入深揭秘JavaScript类型转换(最全总结篇)

Immerse

JavaScript 类型转换 隐式转换 类型 强制类型转换

飞桨和硬件伙伴们在WAIC 2023!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

PoseiSwap 更新第二期空投,持有 Zepoch 节点数量将决定空投回报

股市老人

知识图谱之《海贼王-ONEPICE》领域图谱项目实战(含码源):数据采集、知识存储、知识抽取、知识计算、知识应用、图谱可视化、问答系统(KBQA)等

汀丶人工智能

自然语言处理 知识图谱 信息抽取

手把手教学构建证券知识图谱/知识库(含码源):网页获取信息、设计图谱、Cypher查询、Neo4j关系可视化展示

汀丶人工智能

人工智能 自然语言处理 nlp 知识图谱

源码解读之FutureTask如何实现最大等待时间

EquatorCoco

源码 前端 前端工具

Rainbond开源

EquatorCoco

开源 rainbond

5个祖传的Python自动化办公项目,治愈你的抑郁

程序员晚枫

Python 微信 自动化 机器人 办公

PoseiSwap 更新第二期空投,持有 Zepoch 节点数量将决定空投回报

威廉META

区块链生态架构 | 社区征文

TiAmo

区块链 Baas 年中技术盘点

万字血书React—走近React

不在线第一只蜗牛

React 教程分享

科兴未来|第二届T-MAX“科创太仓”国际创新创业--先进材料专场赛

科兴未来News

如何优化Flutter的性能?

没有用户名丶

INFINI Labs 产品更新 | Easysearch 新增 kNN 搜索功能、Console 支持 LDAP 认证登录等

极限实验室

console Gateway 产品更新 easysearch 极限科技

业务创新的利器:探索Flutter与小程序容器的融合应用

FinClip

内核代码量不到一万行、GitHub star超5k,国产开源物联网操作系统TencentOS Tiny的探索与实践_文化 & 方法_凌敏_InfoQ精选文章