By Michel Chabroux
Would you be surprised to learn that real-time operating systems (also known as RTOSes) are beginning to evolve into the modern era? I’m going to explain what this “modernization” means and why it’s important, but first I want to acknowledge two different categories of developer who might be interested in this topic: Let’s call you the new arrivals and the old hands.
If you are a new arrival — by which I mean both newly trained developers and seasoned developers who are new to RTOS development — then welcome! The embedded systems development environment where the RTOS is used could be a foreign land that you might find strange at first. The natives here speak languages you might not be fluent in, like C and assembly. They build software for devices with rigid and strict requirements. They have memory limitations that you might never have experienced, such as megabytes. And at the same time, they must meet performance requirements that are not only far faster than you might be used to but that are also entirely predictable and determinate. When you’re programming critical systems in a self-driving car or a drone flight manager, for example, there is no room for any delay or unexpected outcome.
If you are an old hand at developing RTOS systems, welcome! The modernization that’s underway now is going to bring bigger changes to RTOS development than you’ve probably ever seen in the past. You’ll be encountering new approaches as those changes filter in from the IT world: agile and DevOps methods, languages such as Rust, Python, or Go, and deployment paradigms including containers and Kubernetes. To you I say, get ready!
Before we talk about modernization, let’s clarify a couple of terms to make sure everyone’s on the same page.
Real-time computing: You might have seen real-time used in different contexts, such as data center operations. Perhaps the results of a massive database query are said to be available in real time. This is not the real time of RTOS, but the real time of human perception — where something happening in a satisfyingly prompt manner is good enough. The real time of RTOS, which controls critical functions such as flight controls with extreme precision, is so much faster that human perception would consider it simultaneous. The most important aspect of real time, though, comes with determinism, which is making sure a function always happens within a bounded time frame.
RTOS versus embedded: Not every embedded system uses an RTOS. If you’ve done embedded systems development on Windows or Linux systems, for example, those are not RTOSes. They might require fewer resources and deliver faster performance than their desktop or server counterparts, but they are not fast enough or predictable enough to satisfy mission-critical or safety-critical RTOS system requirements. RTOS is the hard-core subset of embedded systems development, where every operation must be repeatable with the same determinate outcome within the same predictable time frame.
What Does Modernization Mean for the RTOS?
RTOSes have been used for decades in embedded systems development, and the pace of change has been much slower than in other fields of computing. One reason for that is the natural inertia in mission-critical systems: There is no impetus to change what is working. Traditionally, RTOS systems have had a long development lifecycle —necessary for working out every bug and optimizing every operation before deploying the system to a critical environment, in which it must work perfectly. Once deployed, traditional RTOS systems are seldom updated, but they are expected to work for many years until a new system is deployed. The glacial pace of this build-once-and-deploy RTOS project lifecycle has resulted in slower evolution of tools and methods.
Modernization is quickening the pace of change. To you new arrivals, this change might still look slow, but the old hands might be astounded by the broad range of new capabilities on the horizon.
RTOS systems are being deployed to new environments that we call the intelligent edge, where they rub elbows with modern neighbors such as cloud and AI. Moving to this new neighborhood requires adaptation. No longer is the Mars rover, an extreme but widely known example of an RTOS application, operating in isolation millions of miles from Earth. RTOSes are actually used extensively in the world around us. Perhaps the automotive industry offers a more tangible example of the modern RTOS environment: complex, connected, intelligent, and safety-critical. Most people will appreciate the use of an RTOS in their automobile because it gives them some peace of mind that their car has been designed with strict safety requirements in mind.
How can RTOS-based systems modernize and adapt to the intelligent edge? Here are a few of the ways Wind River® has modernized our own RTOS, VxWorks®:
• Enabled faster prototyping on affordable hardware, such as Raspberry Pi
• Added support for modern development technologies, such as Python, Rust, and WebAssembly
• Applied IT concepts and scale by introducing DevOps and containers to the RTOS world
I’ll be digging into some of these VxWorks modernization topics in future posts. Meanwhile, if you want to learn more, check out our new page that’s all about RTOSes. And you can always get in touch with an RTOS expert at Wind River to find out how we can help.