写点什么

内核代码量不到一万行、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:3014175

评论

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

架构图制作方法!超详细的架构图绘制教程,建议收藏!

彭宏豪95

在线白板 架构图 办公软件 绘图软件 效率软件

【IoTDB 线上小课 02】开源增益的大厂研发岗面经

Apache IoTDB

机器人巡视系统业务分析

执于业务

打造属于你的体育直播平台:使用东莞梦幻网络源码缺点和优点

软件开发-梦幻运营部

一文读懂BTC生态新贵Giants Planet,将L2与现实世界整合

BlockChain先知

🚀 重磅消息:CnosDB 文档网站升级全新框架啦!🌟

CnosDB

数据库 开源 时序数据库 CnosDB

《自动机理论、语言和计算导论》阅读笔记:p225-p260

codists

编译原理

Spring开发:动态代理的艺术与实践

EquatorCoco

Java spring 动态

【教程】功能齐全的iOS混淆工具介绍及功能详解

雪奈椰子

大数据、数据架构、推荐冷启动...小红书的 AI 数据新方案都在这个会

小红书技术REDtech

人工智能 大数据 数据湖 数据 数据架构

一文读懂BTC生态新贵Giants Planet,将L2与现实世界整合

股市老人

解决SpringBoot项目war部署到tomcat下无法Nacos中注册服务问题

百度搜索:蓝易云

云计算 tomcat Linux 运维 Spring Boot

揭秘2024年DevOps顶级工具

爱吃小舅的鱼

DevOps DevOps工具

今日分享丨流程节点复制,流程配置更高效

inBuilder低代码平台

流程 工作流引擎

go、Java、python三门语言的优缺点和各自擅长做什么

百度搜索:蓝易云

Java Python Go Linux 云服务器

百度何俊杰:智能体生态,不是大玩家「独角戏」,而是全民「大合唱」

Geek_2d6073

为什么钱难赚? 因为你想的到和想不到的方向, 都有人在做了

前夕

创业 程序员 副业

海外云服务器如何助你打造国际化跨境电商业务?

一只扑棱蛾子

云服务器

C++ 递归与面向对象编程基础

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

ChatGPT消息发不出去怎么办?终极解决方案?赶快收藏

蓉蓉

openai #人工智能 ChatGPT GPT-4

BTC生态新贵Giants Planet:BTC L2如何与现实世界整合

石头财经

文心全进化,开发者赴星河

脑极体

AI

如何使用Python和正则表达式处理XML表单数据

百度搜索:蓝易云

Python xml Linux 运维 ElementTree

给picgo上传的图片加个水印

程序那些事

人工智能 openai

Myvatis关联关系映射与表对象之间的关系

百度搜索:蓝易云

sql 云计算 Linux mybatis 云服务器

Milvus 老友汇|RAG 场景、电商平台、AI 平台……如何用向量数据库构建业务方案?

Zilliz

Milvus Shopee Zilliz 亚马逊云科技

BTC生态新贵Giants Planet:BTC L2如何与现实世界整合

股市老人

上海携程java高级面试题(二)

程序员李木子

openproject在docker下的安装

百度搜索:蓝易云

Docker 云计算 Linux 运维 OpenProject

深度解读《深度探索C++对象模型》之默认构造函数

爱分享

c++ C++对象模型 C++默认构造函数 C++对象初始化 C++类内初始化

探索企业做强之路

凌晞

核心竞争力 企业战略

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