rt-thread实时操作系统教程(国产微内核操作系统RT-Thread)

多年以来,由于物联网终端的运行条件限制,物联网操作系统对性能要求较高,但体积又不能太大,一般不会超过 10M,这种体积要求几乎把 Windows、安卓等目前主流的操作系统排除在外。

这对于中国自主物联网操作系统来说,就是一个机遇;另一方面,物联网操作系统的功能不能太简单,这又是一项挑战。

2020 年 9 月 1 日,睿赛德科技举办发布会,并发布 RT-Thread Smart 微内核操作系统,该操作系统将于 2020 年 10 月开源代码。

中国工程院院士郑纬民先生为本次发布会致开场致词。郑院士表示,有幸见证 RT-Thread 发布微内核操作系统技术,微内核技术用于嵌入式领域尚不多见,源于轻量级实时操作系统的微内核更是有着较大的开创性,对我国嵌入式基础软件的发展意义重大;其相比于 Linux,在工业、国防、电力等行业都有着较为明显的差异化竞争优势和广泛的应用前景。

据悉,之前 Vxworks、QNX 为代表的外国操作系统,几乎垄断所有带 MMU(Memory Management Unit,内存管理单元)芯片的高端终端,国产操作系统几乎没有能在此类高级芯片上运行的。而 RT-Thread Smart 填补了这项空白。

本次发布会有两大亮点,一是混合微内核,二是联手 RISC-V 与龙芯共建生态。这不但能促进业界充分发挥物联网终端的计算潜力,让终端真正智能起来,对于中国建设自主物联网生态,也有着重要意义。

而 RT-Thread Smart 在性能、体积与功能方面堪称平衡的典范,如果 RT-Thread 能够继续努力,抓住本轮物联网转型的重大机遇,继续完善操作系统的功能,那么建立自主生态体系的目标将指日可待。

物联网将带来新增流量

目前手机等移动终端的出货量已经下滑,巨头在移动互联网方向已经增长乏术,而物联网目前据最保守估计其带来的新增流量也将是移动互联网的 30 倍,终端数据将是移动互联网的 100 倍,整个信息产业都期待着物联网继续引领科技的未来,继续使整个行业保持高速增长。

而物联网操作系统是物联网的核心,更是关键中的关键,这方面尤其可喜的是国家从政策层面也给予了比较大的支持,在 2016 年工信部发布的《物联网 “十三” 五发展规划》首次将 “物联网操作系统” 列为四大关键技术之一,可以说目前 RT-Thread 的出现恰恰是顺应了这样的大潮流。

目前 RT-Thread Smart 的主干分支 RT-Thread 在国内装机量已经突破 6 亿台,是国内市场占有率最大的物联网操作系统。

RT-Thread 创始人熊谱翔,是国内最早接触 Linux 的程序员之一,从 Linux 诞生之初就被该操作系统的开源、自由精神所折服,他从重庆邮电大学毕业后使用的操作系统是闭源的 VxWorks,不过由于没有源代码,很多软件都难以定制完成,因此在 2005 年,由于项目需求他萌生了自行编写操作系统的想法。

RT-Thread 作为一种典型 RTOS(实时操作系统),包含了 TCP/IP 协议栈、文件系统、libc 接口、图形用户界面等等组件功能已经在完善,不过在初创时期,这几乎是熊谱翔一个人的“武林”。

在一般人看来,操作系统的开发历程非常枯燥,不过这却是程序员的三大浪漫之一(另外两个是图形系统,编译器),后来 RT-Thread 推出的柿饼图形系统可能也是熊谱翔实现浪漫情怀的方式。

不过万事开头难,据说在 RT-Thread 最初几个版本发布时,熊谱翔都会在论坛等着网友的提意见,由于最初几个版本都不太稳定,人气不高,熊谱翔还经历过只有一个人参加的技术交流会。

不过在十几年以后的今天 ,RT-Thread 已经拥有了国内最大的嵌入式开源社区。

生态为先,方能成器

IT 行业每隔十年就会出现一种新型生态,比如 2000 年出现的由微软和英特尔组成的 Wintel 生态,把持着目前 85% 的桌面系统市场份额,而在 2010 年形成的由 Arm Android、IOS 的组成 AAI 生态联盟,其市场份额占比几乎是 100%。

由于应用程序会被操作系统从可执行文件角度进行深层的绑定,因此操作系统与在其基础上建立的应用程序组成的生态体系,才是最终成败的关键。

RT-Thread Smart 选择在这个时点发布,并与龙芯公司全面结合,将很有机会形成 RT 龙芯联盟生态,成为中国自主掌控的操作系统利器。

之前国内很多做操作系统的公司,往往都特别重视技术发展,却忽略了对于应用生态的支持,但是独木难支,用户所需要的并不是一个单独的操作系统,而是运行在操作系统上的各种应用。

可以说在生态建设方面我们吃过很多亏,也上过不少当。比如红旗 Linux,在 2001 年其 OEM 付费订单甚至超过了 100 万套。但是一台没有 Office、PS,不能玩游戏的电脑,对于用户的价值不多。

与拥有成熟生态的 Windows 相比,红旗 Linux 只能甘拜下风。再比如上个世纪 80 年代曾经风生水起的日本的操作系统 TRON,也在生态未完全建立时就被美国封杀。

而在开发者支持及生态体系建设方面,RT-Thread 已经有了一定建树,另一个值得关注的点是 RT-Thread Studio 的应用商店,这款产品覆盖了全技术栈整合。

rt-thread实时操作系统教程(国产微内核操作系统RT-Thread)(1)

经笔者实际体验,在 RT-Thread Studio 中添加腾讯云的连接支持,只需在 Package Center 选择对应的程序包即可。

rt-thread实时操作系统教程(国产微内核操作系统RT-Thread)(2)

混合微内核:RT-Thread Smart 的关键突破

正如前文所谈,根据最新的终端智能化需求,物联网操作系统要在实时性、成本、安全性、启动速度等方面取得平衡,而这个平衡的关键,在于到底是选择操作系统,还是选择微内核还是宏内核。

而 RT-Thread Smart 定位于成为一个面向实时应用场合的高性能混合微内核操作系统,以期填补传统 RTOS 和大型操作系统之间的留白。

具体来说,宏内核将内核的功能,都组合在一个内核态进程中完成,而微内核将许多在宏内核中的模块移出内核,使之运行于用户模式。

宏内核的好处是各功能模块处于同一个地址空间,相互调用效率很高,弊端是体积太大,不利于在移动设备上进行部署。

微内核的好处是功能模块各自独立、体积较小,方便进行移植也方便对其它体系的兼容。弊端是功能模块之间变进程间通信,CPU 上下文切换代价很大,执行效率较低。

简单来说就是微内核可以做得很小,但是性能不佳,宏内核性能不错,但是往往体积太大。

而 RT-Thread Smart 上,使用了共享内存的方式,把交换的数据内存块,分别投到不同的进程地址空间上,从而不需要做额外的数据拷贝。

rt-thread实时操作系统教程(国产微内核操作系统RT-Thread)(3)

这种方案在针对具体场景的优化时往往会起到较好效果,例如监控摄像可能数据带宽要求很高,那么就可以把涉及到的网络协议栈再放回到内核态中,这时性能指标又能达到非常理想的程度。

继承原有生态

正如笔者上文所说,做出一款能用的操作系统容易,但做出一整套的生态难,因此如果我们的操作系统能够直接兼容已有的成熟生态,可能是最佳的方案。比如最近刚刚发布的银河麒麟就提出了 Kydroid 技术,可以全面支持安卓的应用程序。

RT-Thread Smart 不但与 RT-Thread API 全面兼容,而且符合 POSIX 标准(可移植操作系统接口 Portable Operating System Interface),POSIX 是 IEEE 对于 UNIX 操作系统,定义 API 的系列标准总称,所以这意味着 RT-Thread Smart 全面继承了 Unix API,也就是说 Linux 下的应用程序可以非常方便的移植。与 Linux 及其主干系统 RT-Thread 相比,其主要特点如下:

  • 资源占用:相对于裁剪版的 Linux 压缩后内核占用 3.57MB、根文件系统 5MB、内存占用 17.4MB 来说,RT-Thread Smart 压缩后内核只有 217KB,跟文件系统 127kB,内存占用 1.9MB
  • 启动时间:使用宏内核的方式将 “RT-Thread 文件系统 网络协议栈 多媒体” 的启动时间需要 3~5 秒,Linux 启动时间在 5-10 秒,而使用 RT-Thread Smart 启动只需要不到 500 毫秒。在带图形系统的情况对比启动时间 RT-Thread Smart 柿饼 UI 启动只要 1.7 秒,远快于 Linux 的 14.4 秒。
  • 实时性:中断延时 < 1us,能够满足苛刻的高实时性场合。

rt-thread实时操作系统教程(国产微内核操作系统RT-Thread)(4)

最近几年,是国产操作系统借助智能物联网的东风建立自主生态的最佳时机。操作系统这样的基础软件、基础科学的自主研发和生态拓展,非常不易,需要很长时间的积累和坚持。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。