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

发布于 2020-07-03 17:01:20

前段时间有爆出了某大佬的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."

roadmap.jpg

提到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/共享内存方式通信、交互。

microkernel.jpg

期望通过RT-Thread已有的生态,来覆盖MCU …… MPU的场景,而能够和国际顶尖的操作系统PK。

qnx.png

所有这些,都并不是一蹴而就的,需要经历过:提出想法,小心验证,实现原型,应用落地,打磨完善等的过程。这个过程经历的时间周期一般都非常长,中间历经波折、迭代繁多等等,例如混合微内核是由团队小伙伴们历时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就像一个火车头在前方引领,驶向未来……驶向未知……

2 条评论

发布
问题

分享
好友