今日,腾讯宣布将开源
自主研发
的轻量级
物联网实时操作系统TencentOS tiny。相比市场上其它系统,腾讯TencentOS tiny在资源占用、设备成本、功耗管理以及安全稳定等层面极具竞争力。该系统的开源可大幅降低物联网应用开发成本,提升开发效率,同时支持一键上云,对接云端海量资源。
很荣幸,能亲眼见证TencentOS tiny的开源,也很荣幸能在一个多月前内测使用过它~
不得不说,TencentOS tiny的内核确实是非常非常小巧,最少资源占用为RAM 0.6KB
,ROM 1.8 KB
。这是他们团队自主研发的RTOS,源码非常简单易懂,源码作者以非常清晰的逻辑实现了整个内核(还是非常佩服戴大神的,膜拜一下)。
了解一下TencentOS tiny的框架
TencentOS tiny主要由一个轻量级RTOS内核+
多个物联网组件构成,,从下到上主要包括:
CPU库 :TencentOS tiny支持的CPU IP核架构,当前主要支持ARM Cortex M0/3/4/7
,还有现在很火的RISC-V
,当然,腾讯物联网团队肯定也会支持更多种类更多IP核与开发板。
驱动管理层 :包括BSP
板级支持包,这些东西主要由MCU芯片厂家开发与维护,、HAL
硬件抽象、Drivers设备驱动,这部分对于纯粹嵌入式开发者来说还是很重要的,肯定会越来越完善的!
内核 :TencentOS tiny
实时内核包括任务管理、实时调度、时间管理、中断管理、内存管理、异常处理、软件定时器、链表、消息队列、信号量、互斥锁、事件标志等模块,接下来我也将写一系列TencentOS tiny
内核源码分析
的文章,敬请期待吧!
IoT协议栈 :TencentOS tiny
提供lwip、AT Adapter、SAL层
,支持不同的网络硬件,如以太网、串口WIFI、GPRS、NB-IoT、4G
等通信模块。在TCP/IP
网络协议栈上提供常用的物联网协议栈应用层,如COAP、MQTT
,支撑终端业务快速接入腾讯云;
安全框架 :TencentOS tiny
为了确保物联网终端数据传输安全以及设备认证安全,提供了比较完整的安全解决方案。安全框架提供的DTLS
和TLS
安全协议加固了COAP
及MQTT
的传输层,可确保物联网终端在对接腾讯云时实现安全认证和数据加密;另外针对低资源的终端硬件,安全框架还提供与腾讯云IoTHub
配套的密钥认证方案,确保资源受限设备也能在一定程度上实现设备安全认证;物联网安全是非常重要的,这些框架也是必须存在的。
组件框架 :TencentOS tiny
提供文件系统、KV存储、自组网、JS引擎、低功耗框架、设备框架、OTA、调试工具
链等一系列组件,这部分我觉得还是很不错的,期待ing;
开放API (规划开发中):TencentOS tiny
将在协议中间件和框架层上提供开放API
函数,这样子就能很方便使用中间组件的功能,我是最喜欢这种开发的,不造轮子,能直接使用。简单来说这个API能快速对接腾讯云,实现终端业务上云的需求,最大程度减少终端物联网产品开发周期,节省开发成本;
示例应用 :TencentOS tiny
提供的示例代码,模块测试代码等,方便用户参考使用。
腾讯云物联网平台(图中最上层的部分):严格来说这部分不算TencentOS tiny
的框架内容,这是接入平台层了,腾讯云的物联网平台都是提供多种语言的SDK
包,当然在嵌入式设备上肯定使用C SDK
的,不过总的来说都是很不错的。
总的来说TencentOS tiny
还是非常不错的,该有的功能都有,可以考虑使用一下这个操作系统~
对于杰杰来说,作为嵌入式开发者,我是很看好物联网的,也一直在往这条路上缓缓前行,在万物互联的时代,说不定真的能在赚钱
的同时还能为世界做出一丢丢贡献
(如果没有那就算了)。
据我所知,TencentOS tiny
后续也将推出基于事件驱动模型的调度,用于某些单片机上不支持基于上下文调度的多任务。
顺便再透露一下,我将接下来会写一系列TencentOS tiny
内核分析的文章,全网首发哦!ps:得到源码作者的亲自指点,绝对干货!!!
【TencentOS tiny学习】源码分析(1)——task
【TencentOS tiny学习】源码分析(2)——调度器
【TencentOS tiny学习】源码分析(3)——队列
【TencentOS tiny学习】源码分析(4)——消息队列
【TencentOS tiny学习】源码分析(5)——信号量
【TencentOS tiny学习】源码分析(6)——互斥锁
【TencentOS tiny学习】源码分析(7)——事件
【TencentOS tiny学习】源码分析(8)——软件定时器
【TencentOS tiny学习】例程(0)——hello world
【TencentOS tiny学习】例程(1)——task
【TencentOS tiny学习】例程(2)——队列
【TencentOS tiny学习】例程(3)——消息队列
【TencentOS tiny学习】例程(4)——信号量
【TencentOS tiny学习】例程(5)——互斥锁
【TencentOS tiny学习】例程(6)——事件
【TencentOS tiny学习】例程(7)——软件定时器
【TencentOS tiny学习】例程(8)——内存池
【TencentOS tiny学习】例程(9)——内存堆