RTOS and Linux - Their Evolving Roles in Aerospace and Defense
In the critical and demanding world of aerospace and defense, selecting the appropriate software components is not just a technical decision; it's a foundational one that influences safety, security, reliability, and regulatory compliance. The roles of Real-Time Operating Systems (RTOS) and Linux, each with its distinct capabilities and evolution, have been crucial in applications where failure can have far-reaching consequences. More recently, decisions have shifted from focusing solely on operating systems to broader operating environments. This shift is driven by new technologies that simplify isolation, standardize run models, and retain the strengths of Linux development frameworks, setting the stage for a revolution in embedded computing and software for aviation and defense.
This three-part series, "RTOS and Linux - Their Evolving Roles in Aerospace and Defense," dissects the technical, operational, and strategic factors that guide the selection process. Through this exploration, we will uncover the historical development of these systems, assess their current applications in aerospace, and predict future trends that could influence their adoption.
In this first installment, we take a step back to explore RTOS and Linux's origins and evolutionary paths. We trace the technological progress and specialization journey from the earliest implementations to the gradual sophistication of these operating systems. Understanding the history of these platforms is valuable in assessing their differences and how they evolve, impacting their suitability for specific aerospace applications.
Join us as we delve into how these operating systems have evolved over the decades and what this evolution means for their roles in the demanding field of aerospace and defense. By grasping their historical contexts and trajectories, we gain insight into their current capabilities and future potential, empowering decision-makers to choose the most appropriate system for their critical applications.
History of Aerospace Operating Systems
The Metal Age (Aka the 70’s) - The inception of runtime environments in aviation began with bare-metal and cyclic executive approaches. Instead of an operating system, straight code-line ran operations in an endless loop. This direct hardware interaction ensured fixed-order execution of tasks, essential for early avionics, and provided dependable performance through simplicity. However, this method required each operation to finish before the next could start, making timing analysis straightforward. Its key disadvantage is that each operation must be completed before running anything, regardless of its relevance or criticality. Ok, “Anything” is admittedly an over-simplification, as interrupts, which date back to the computers of the 50’s, provide a means for a system to respond to async events. But, once that interrupt code has run, the waiting code continues where it left off - the executing order does not otherwise change. This is inefficient and rigid in event-driven systems.
Inhuman Multi-tasking - The need for more sophisticated responsiveness, expanded control, and efficiency led to the demand for more responsiveness and flexible execution planning. Responsiveness requires that external events are acted on immediately; flexibility with respect to execution means that the schedule should change if such an event demands it. When this occurs, we might want an otherwise-dormant task to run. This is different from what we saw with the very brief interrupts discussed before; now, a newly-running task is the lucky owner of the processor. The task that was running is paused and will be resumed once the more time-critical task has been completed. This is what a preemptive multitasking system does - manage various tasks by switching between them rapidly, giving the illusion of simultaneous execution. Multi-tasking was a boon in aerospace applications, where numerous processes need to make progress without waiting for one to finish before another can start.
Who Gets the Torch - The introduction of preemptive multitasking raises the question, “Who is allowed to run now”? Enter our benevolent autocrat, the scheduler. The scheduler is responsible for determining what strategy is used to share CPU time across all of the tasks. The scheduler can use one or more approaches such as round-robin for time-sharing, priority-based scheduling for differentiating task importance, or specific real-time scheduling algorithms like Rate Monotonic Scheduling or Earliest Deadline First for meeting time constraints in real-time systems. The right policy depends on the goals of the system. Systems with real-time criticality, such as applications in aerospace and defense, prioritize real-time accuracy scheduling over other metrics. It might seem that if reliable timing behavior is good, all systems should use a real-time scheduler. However, other criteria are more important to other types of systems. For example, in multi-user systems, allocating time fairly is more important than real-time performance for any one user. Real-time performance is a trade-off.
(Real)Time for an OS (Aka the 80’s) - Not just any operating system will do for the critical requirements of aerospace platforms; The key characteristics of real-time determinism, appropriate scheduling policies, and resource management predictability led to the development of many Real Time Operating Systems (RTOSs) suited for applications with critical functionality. The RTOS is designed to provide the determinism, resource management, interrupt handling (event handling) characteristics on which to build provably reliable critical embedded systems. This era also saw the emergence of embedded computing as a specialized field focused on designing systems where software tightly interacts with hardware to meet specific, often critical, functional requirements. While some embedded systems are used in safety-critical applications where reliability is crucial, many others are found in everyday consumer electronics, prioritizing flexibility and cost efficiency. Embedded computing thus covers a broad spectrum of applications, from high-stakes environments to user-focused devices.
Cambrian Computer Cyclone - While some systems required the precise characteristics of an RTOS, not all platforms operated under such stringent constraints. Alongside the rapid growth of general-purpose computing in the early 1980s, there was a corresponding surge in the development of various General Purpose Operating Systems (GPOS) for these platforms. This diversity in the development of GPOS supported a wide range of applications, sparking innovation and spinning off new possibilities for computing technology. This era of diversity and expansion in commercial general-purpose computing set the stage for the emergence of Linux, a game-changing operating system that would further democratize and transform the computing landscape in the early 1990s.
The Mighty Penguin Hatches (early 90’s) - In the early 1990s, Linux emerged as a free and open-source alternative to the costly commercial operating systems, including the various flavors of Unix that inspired its development. Linux rapidly gained traction thanks to its open licensing, which attracted a broad community of developers eager to enhance its features and adaptability. This led to the creation of a vast ecosystem of compatible tools, applications, and resources that facilitated further innovation and customization. Linus Torvalds, the creator of Linux, prioritized important standards such as ANSI C, POSIX, and open-source GNU tools. While Unix pre-dates these standards, leading to fragmentation in interoperability and portability across different architectures, Linux's adherence to these standards enabled it to be easily ported to many processor architectures, making it a versatile and widely adopted operating system.
The Penguins March On (mid 90’s) - As Linux thrived on desktops and servers, it expanded into the embedded systems market, traditionally dominated by specialized operating systems. Its adaptability made it suitable for everything from consumer gadgets to complex network systems. Linux's open-source nature provided a cost-effective, customizable solution free from licensing fees, encouraging innovation among manufacturers and developers. This made it attractive in industries like industrial applications and network infrastructure.
Sphenisciforme Seeks Station in Safety - By the 1990s and 2000s, Linux started to gain traction in embedded and safety-critical systems, partly because the community began addressing some of the shortcomings that limited its use in real-time applications. Its cost-effectiveness and flexibility allowed it to challenge specialized real-time operating systems (RTOS) in telecommunications, automotive, and aerospace sectors. Timesys's Linux/RT 1.0 introduced real-time features, enhancing task management for these applications. The PREEMPT_RT patch further improved Linux's capabilities for fast and predictable task management. Linux’s march (waddle?) towards applicability in more critical embedded systems had begun.
The state of Linux in safety systems
Linux has become a formidable contender in safety-critical systems due to advancements in real-time capabilities and reliability. The maturation of the kernel's PREEMPT_RT patches allows Linux to achieve low-latency response times, making it suitable for applications requiring precise timing and deterministic behavior. Efforts from the open-source community have improved security, robustness, and compliance with industry standards, enhancing Linux's appeal in sectors such as automotive, aerospace, and industrial control systems.
While Real-Time Operating Systems (RTOS) continue to play an important role in providing deterministic scheduling, minimal latency, and predictable execution times essential for the most critical safety applications, Linux is also evolving to take on many tasks traditionally requiring RTOS. With improvements in real-time capabilities, Linux is increasingly capable of meeting the demands of real-time applications on its own, reducing the need for a separate RTOS in some cases. However, Linux and RTOS can still be used together in hybrid solutions, leveraging Linux’s versatility and ecosystem alongside RTOS’s precision for applications where both are beneficial.
Certification efforts, like the Enabling Linux in Safety Applications (ELISA) project, bolster Linux's credentials in safety-critical domains. This adaptability, extensive hardware vendor support, and customization capability position Linux as a viable alternative to traditional RTOS solutions in various scenarios. In aviation safety, Design Assurance Levels (DAL) range from A to E, guiding software use based on criticality. While Linux can achieve DAL D for less critical systems, reaching DAL B or A remains challenging due to stringent safety standards. Meeting these levels requires extensive testing and modifications, reflecting the rigorous reliability and safety requirements for critical applications. However, Linux's inherent adaptability continues to drive progress, solidifying its role as a transformative force in computing technology.
A significant part of Linux's value lies in its tooling, rich ecosystem, and modular approach, which make it desirable across many system domains. The vast array of development tools, libraries, and community support provides a robust platform for innovation and customization. Its modular design allows developers to tailor the operating system to meet specific needs, making it an attractive choice for diverse applications. The operating system's transparency, cost-effectiveness, and collaborative development model further enhance its appeal for complex systems where reliability and performance are paramount.
As industry trends shift towards more open and adaptable system architectures, especially in regulated domains like aerospace and defense, Linux is increasingly integrated into safety-critical applications. This shift reflects a broader industry move towards leveraging Linux to achieve quicker, more affordable solutions while minimizing the need for unique development environments. As understanding of this end-goal becomes more common, operating environments that harmonize certifiable deployment options with Linux are likely to increase in prevalence, paving the way for its expanded role in high-assurance applications.
The future of Linux in safety systems
In the next installment, we'll explore how emerging technologies are transforming operating environment strategies, moving beyond traditional OS considerations. By simplifying isolation and standardizing run models while retaining Linux development frameworks, these advancements are set to revolutionize embedded computing and software for aviation and defense. We'll examine technical, operational, and strategic factors, drawing on case studies and expert insights to illuminate the evolving roles of RTOS and Linux. This exploration will provide a comprehensive understanding of how these innovations are reshaping technological frameworks in aerospace and defense, paving the way for more efficient and adaptable systems.
Join us as we continue to unravel the complex decisions behind choosing operating environments, offering insights to help you make informed decisions in your projects and research.