熊谱翔:变化的RT-Thread,不变的初心

寵の児 提交于 2020-07-28 08:06:34

前段时间有爆出了某大佬的OS和RT-Thread很像,所以画了这么张图,同时也发在社交媒体上:"Roadmap or history of RT-Thread? No matter what RT-Thread is, it's alway there. Hope RT-Thread is a locomotive, lead us all to the future."

提到RT-Thread的发展路线,其实是被很多社区小伙伴关心的:RT-Thread到底会走向何方?

初心出发

由于个人兴趣及项目需求动手写了一个RTOS,在2006年初发布了RT-Thread的第一个内核版本并开源,一开始纯粹以工程师的角度去做,当时有个看似遥远的目标是能做成一个开放式,嵌入式系统领域的Linux。

然而接下来几年RT-Thread这个项目进入了一个艰难时期,因为仅仅只是一个RTOS内核很难得到关注,期间凭借个人兴趣不断去做不同平台移植,完善功能。期间也做过一些社区活动,很多时候就是一些爱好者在汉堡王、KFC这类地方AA制聚会交流,记得最惨淡的时候聚会只有两个人(包括自己)。

长时间的坚持和付出,RT-Thread开始有了些支持者,然后不断有开发者加入进来贡献代码和完善。ARM Cortex M3的出现,让开源的RT-Thread走上了新的阶段,此时的RT-Thread已不再只是一个实时内核了,包括了Shell、文件系统及TCP/IP协议栈等,凭借低资源占用、功能丰富吸引了大批的用户。

正当时

直至2011年,RT-Thread才发布1.0.0版本,这样一个稳定版本的发布花了6年时间。

2015年,RT-Thread 2.0.0发布,引入了menuconfig,而这次大版本的发布花了4年时间。

2017年,RT-Thread 3.0.0发布,定下IoT OS的战略,花了2年时间。

2018年,RT-Thread 4.0.0发布,支持更多芯片、开发板、云等,也逐步向生态走得更远更广,仅1年。

而在2019年,则在潜行中仔细思考,没做大版本发布,但却开始走向新的领域。

在RT-Thread发展过程中我们深知“无生态不OS”,一款操作系统是需要开发者使用,需要开发者对它的认可。脱离了生态的操作系统只是一款软件,一项产品,这和RT-Thread的初衷是相违背。在生态这条路上,在产品层面以开源版本RT-Thread为主干开始开枝散叶延伸向更广阔的领域:

  1. ……OS,其他OS、或衍生OS。RT-Thread在这个过程中也会尝试向一些合作伙伴许可、授权。因为RT-Thread遵循Apache License v2.0许可协议,在许可协议合法的范围内都是可行的,从生态上说也是更好的补充。当然RT-Thread的运营主体,睿赛德科技自有产权软件包也会对外进行授权。总体的许可协议问题会处理好。

  2. PersimUI OS(暂定名,名字并不重要)是基于RT-Thread上,辅以柿饼UI的面向智能穿戴、智能硬件的系统(方案),目前在海外已有一款使用柿饼UI的手环在售;预计今年会有更多的手表上市。

    从去年下半年到今年,我们这边柿饼UI团队几乎都投在这个上面,所以外界看起来似乎没什么动静,实则向前推进了一大步,把手表的UI操控能力优化到顶尖品牌厂商的流畅度上,同时也包括柿饼用的JavaScript执行性能飞速提升。这也是RT-Thread上的另一个分支,在带屏低功耗智能硬件这个领域走得更深更远。

  3. MoM,这个是一个缩写,全称是Microkernel on MCU。从名字上来说,它和4️⃣有一定关系,只是没预料到它先于混合微内核商业化、落地。MoM被应用在一些表计类场合,为MCU提供系统与应用分离的技术,同时还进行了用户进程间内存隔离<通过MCU中的MPU(Memory Protection Unit,内存保护单元)技术>。为一些应用场合提供了理想的应用单独升级,隔离运行的模式,可用于一些行业安全系统上。这份MoM的开发环境也会部署到RT-Thread Studio集成开发环境及QEMU针对Cortex-M3/4/7的软件模拟执行工具中。

    通过MoM,也可以让一些高端MCU(例如Cortex-M7/M55,及未来的多核MCU)具备独立应用开发的功能,开发方便,应用可调试,可独立升级,同时保留MCU的快速,强实时,低成本的特点。

  4. 混合微内核,RT-Thread Smart,目前是箭上待发,已经有部分社区小伙伴开始拿到在内测中。它主要面向带MMU的处理器,例如ARM Cortex-A(国产处理器肯定不会缺)。对于RT-Thread Smart,有很多突破,系统服务可根据实际情况放在内核中或用户态执行,而在整体系统上则采用了微内核的架构,进程间采用IPC/共享内存方式通信、交互。

期望通过RT-Thread已有的生态,来覆盖MCU …… MPU的场景,而能够和国际顶尖的操作系统PK。所有这些,都并不是一蹴而就的,需要经历过:提出想法,小心验证,实现原型,应用落地,打磨完善等的过程。这个过程经历的时间周期一般都非常长,中间历经波折、迭代繁多等等,例如混合微内核是由团队小伙伴们历时1年多时间打磨的,从最初的lwP(轻型进程),实现(浮动地址执行)原型,而后又推翻加入MMU,进程地址隔离,然后到逐步加入文件系统服务,网络协议栈服务,图形UI服务,以及gdb用户进程调试,POSIX threads等。后面同样的会集成到RT-Thread Studio中,让它真正变成开发,调试,执行一体化的模式。

这一系列的开枝散叶(分支或方案),也和RT-Thread的基因、品质相关:找到真实的需求,以强大的韧性,百折不挠的精神,一定能把事情做成,一定要把事情做成!

新长征

未来是未知的,RT-Thread不变的是开源的初心,会依然以Apache License v2.0、开源的方式发布RT-Thread v5.0.0新版本,并崇尚社区高于代码之道,推进更多社区活动,让RT-Thread应用在更多的场合、领域,开出朵朵数据、信息之花。

在第一幅图中经历了这么多的阶段,很多都是我亲手扶上去的,站在42岁关口,离知命之年不远,依然希望能够有闲余时间可以coding,可以再带出一些新的方向,新的有趣并实用的点、线甚至是面。但面向未来,又感觉到再次处于未知的关口上,未来会是什么?未来的泛IoT场景,还应该有更多更多,端上的思考,云甚至网络结构上的思考,世界无穷大,RT-Thread只是其中一粟,无数个RT-Thread,会汇聚成一张大网。期待RT-Thread就像一个火车头在前方引领,驶向未来……驶向未知……

熊谱翔
2020年7月1日


1.嵌入式工程师心目中的微内核架构~

2.do{}while(0)只执行一次无意义?你可能真的没理解!

3.BUG 终结者,现场抓获!|颠覆认知

4.MATLAB 只是冰山一角!海外资深程序员聊被卡脖子……

5.“STM32CubeMonitor” 拍了拍你

6.如何把C++的源代码改写成C代码?

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!