新闻动态
为RTOS开启现代化之门


Michel Chabroux

实时操作系统(RTOS)已经开始走向现代化,对此您会感到惊讶吗?接下来我会解释,“现代化”在这里意味着什么,以及为什么它是如此重要。但是首先我想申明,对这个话题感兴趣的开发者存在着两种不同的类型:我们就称之为新手和老手吧!

如果您属于新手——既包括全新进入培训的开发人员,也包括软件经验虽然丰富但是刚刚开始RTOS系统开发的人。不论您属于哪一种,我们都非常欢迎!在实时操作系统(RTOS)环境中进行嵌入式系统开发,这可能是一个陌生的领域,你一开始可能会觉得很奇怪。这个领域采用的语言你可能不太熟悉,比如C和汇编。这个领域专门为有严苛要求的设备开发软件。这些设备的内存限制可能是您从未经历过的,例如只有几兆字节,而不是常见的几百或几千个G字节。同时,它们必须满足极高的性能要求,不仅比您可能习惯的速度快很多,而且运行结果必须完全可以预见,并且确有保障。例如,当您在自动驾驶汽车或无人机飞行管理器中对关键系统进行编程时,不能允许有任何延迟或意外情况。

如果你是一个实时操作系统开发老手,欢迎你!此刻正在发生的现代化步伐将给RTOS开发带来前所未有的巨大变化。这些变化从企业IT世界渗透进来,将会给您带来新的方法:敏捷开发和DevOps方法,诸如Rust、Python或Go之类的语言,以及包括容器和Kubernetes在内的部署范例。我要对你说——准备起跑吧!

定义相关术语

在谈论RTOS现代化之前,让我们先澄清几个术语,以确保大家每个人都站在相同的起点上。

实时计算:您可能已经在不同的语境中看到了“实时”这个术语,例如在数据中心操作环境中。也许一个大规模数据库查询的结果可以说是实时可用的。但这不是实时操作系统语境中的“实时”,而是人类感知的”实时“——事情发生的速度只要让人类满意就足够了。而实时操作系统以极高的精度控制着民航客机等关键系统,这种环境中的实时性要快得多,以至于人类的感知会认为它是即时发生的。不过,对于实时性来说最重要的是确定性,即确保设备的功能总是在规定的时间范围内完成。

RTOS与嵌入式:并不是每个嵌入式系统都使用RTOS。例如,如果您在Windows或Linux系统上进行过嵌入式系统开发,就应该知道这并不属于RTOS。它们可能需要更少的资源,并提供比台式机或服务器更快的性能,但它们的速度不够快或可预测性不够,无法满足任务关键型或安全关键型RTOS系统的要求。RTOS是嵌入式系统开发的核心子集,在同一个可预测的时间框架内,每一个操作都必须是可重复的,而且每一次重复都具有相同的确定结果。

现代化对RTOS意味着什么?

RTOS在嵌入式系统开发中已经使用了几十年,其演进改变速度比其他计算领域慢得多。其中一个原因是关键任务系统的固有惯性——没有理由去改变长期良好运作的系统。传统上,RTOS系统有一个很长的开发生命周期——在将系统部署到关键环境之前,必须解决每个Bug并优化每个操作,而且在关键环境中,RTOS必须精准无误地工作。一旦部署,传统的RTOS系统很少更新,但是在下次更新系统之前,它们需要工作很多年。这种冰河一般缓慢的生命周期节奏——RTOS项目常常是一次性构建和部署,导致工具和方法的发展十分谨慎而且缓慢。

然而,现代化正在加快变革的步伐。对于RTOS新手来说,这一变化看起来仍然很缓慢,但是老手们可能会对即将出现的各种新功能感到惊讶。

RTOS系统正被部署到我们称之为“智能边缘”的新环境中。在这种环境中,它们与云和人工智能等现代化邻居拥有了交集。搬迁到这个新社区需要一个适应过程。火星探测器已经是一个极致且广为人知的RTOS应用实例,它在距离地球数百万英里的地方独自运行。实际上RTOS在我们周围的世界得到广泛应用。也许汽车行业提供了现代RTOS环境的一个更具体的例子:复杂、互联、智能和安全关键。大多数人都会喜欢在他们的汽车中使用RTOS,因为它让他们安心,因为他们的汽车在设计时考虑到了严格的安全要求。

基于RTOS的系统如何现代化并且适应智能边缘?下面是风河在其RTOS——VxWorks中采用的几种方式:

  • 在价格亲民的硬件(如Raspberry Pi)上实现更快的原型设计
  • 增加对现代开发技术的支持,如Python、Rust和WebAssembly
  • 通过向RTOS世界介绍DevOps和容器,引入IT概念和规模

我将在以后的文章中深入探讨VxWorks如何实现现代化。同时,如果你想了解更多细节,请查阅我们的新网页——是RTOS的百宝囊。同时,您随时都可以与风河公司的RTOS专家联系寻求帮助!