Do Real-Time Operating Solution (RTOSes) consistently administer the the majority of efficient platform for realizing your embedded software device design? Many RTOS sellers seem to think so, typically citing RTOS benefits while hardly ever discussing the disbenefits. Too frequently, the question "Do You Need an RTOS?" is understood,"Which RTOS Do You Need?"

WHO ARE WE? Software Technologies has actually built and also supported real-time operating systems (RTOSes) since 1988. We have witnessed hardware and also installed software application innovations evolve and have actually supported our customers via the style, advance, integration, certification, deployment, and also support of software application units throughout mission-instrumental applications in AVIONICS, INDUSTRIAL, AUTOMOTIVE, UNMANNED SYSTEMS, DEFENSE, SECURE LAPTOPS, CRITICAL INFRASTRUCTURE, and also various other sectors.

You are watching: You’re most likely to find an rtos Software Technologies hasbuilt and supportedreal-time operating systemsfor safety- and also security-critical applications since 1988. Year after year, but, we find thatmany of the benefits our customers are seeking from an RTOS arenotspecifically RTOS benefits.After all, not all applications require real-time functions, nor doall facets in a device design should be constructed through the same devices.

More importantly, tright here are wide system-level benefits that RTOSes themselves cannot frequently administer, includingsimplicity; better openness; more powerful partitioning; and also even more scalable determinism.Therefore, while tbelow are benefits to RTOSes,the a lot of straightforward answer to the question, “Do You Almeans Need an RTOS?” is “No.”In truth, as soon as customers pertained to and say they want to buy one of our RTOSes, one of the first concerns we ask them is:“Are yousure?”


Hardware virtualization—includingIntel"s Virtualization Technology (VT-x and also VT-d),Armv8-A Virtualization Support,andPowerPC"s E.HV Functionality—has actually made its means dvery own from high-end server course processors to low-power, low-cost chips, bringing with it fine-grained partitioning and timing regulate benefits well suited for installed usage.These advances are vital to understand also bereason they have actually made specific operating device (OS) capabilities redundant.

At its essence, hardware virtualization permits parallel arbitration of CPU resources, such that multiple software program actors in a mechanism deserve to directly control portions of the CPU. Prior to virtualization, it was the duty of an RTOS kernel to solely arbitrate CPU sources for maintaining platdevelop integrity, yet this is no much longer the situation. When the standard duty of an RTOS is redundant to native hardware aided capabilities, the hope is that RTOS merchants carry out the tough work of adapting and also evolving together with the hardware, as opposed to preserving old RTOS deindications. Thus, if sellers take on hardware virtualization to assistance embedded real-time style goals—which we very recommend—is it proper to speak to the platcreate software program an RTOS? We don"t think so.


New hardware capabilities existing brand-new philosophies for platcreate software application to minimize stack intricacy, get rid of performance thresholds, and provide much better application portcapability properties. The adhering to architectural properties must be taken in order to find whether you are missing out on substantial platform benefits that your RTOS does not have:

The Benefits of Distributed vs. Centralized DesignHeterogeneous CompositionThe Principle of Least PrivilegeOpen SystemsSystem Comprehensibility vs. Proprietary APIs


Prior to virtualization, operating units (OSes) forced a central Client-Server model of behavior, wherein each user application is a customer to an OS server that arbitprices the use of physical sources (see Figure 1, below).


Figure 1- Centralized ClientApplication-to-Server OS Behavior Model

This version (above) is no much longer crucial.With hardware arbitration,software breakthrough and also runtime devices have the right to currently target distributed actions models in location of the Client-Server design, wbelow each application would certainly runs autonomously against hardware.The distributed model (below)immediately reduces the require toconmessage switch, copy, or share data—unlockinghigher performance thresholds, much better timing manage, and improved modular properties such as fast breakthrough & testing, component reuse, and architecture refactoring.


Figure 2- Distributed Application-to-Hardware Behavior Model


Designing for reuse is an investment for future tasks.Once you have actually thrived in splitting your system right into autonomous, spread components, you then have more options for building those components utilizing differenttoolchains. While this might cause a much more facility development toolcollection, it can yield considerable savings when reutilizing mature, tested software application components.

Consider a architecture requiring heritage capabilities to be augmented. Rather than retro-fitting legacy components to incorporate the wanted capabilities, the many reliable method is to reusage the functionality that is proven and also to connect that usability to theforced augmented components.


Leastern Privilegedesign is a must for interlinked systems; not having it is prefer driving without a seat-belt. At its essence, Leastern Privilege implies that every piece of software program running in your design have to be operating via only the privileges required to percreate its attribute.Hardware virtualization makes leastern privilege architecture a a lot much easier goal to achieve than relying on a software kernel police application privilege.

In the beforehand days ofmicrokernelarchitecture, applications, chauffeurs, and the kernel were delicately separation into sepaprice contexts—forcing a complex composition that needed to be very closely interassociated and scheducaused acquire decent performance. With hardware virtualization, applications, vehicle drivers, and also OS kernels execute not must be separated to limit CPU privilege escalation.

For example, if an application that"s only came to via network-related interactions, then it must not have accessibility to the GPU, USB, serial ports, and so on. In the spread design (above), you have the right to ensure that each autonomous software program component just has actually visibility of the resources it requirements and—in comparison to the centralized operating mechanism model—you can enforce this access manage in hardware at boot time, avoiding any kind of component from providing new access rights at runtime.

Tbelow are two primary benefits to this approach:

Without knowledge of a offered resource, an OS will not dynamically fill motorists that are not compelled for your use case, minimizing the code that"s running on your systemRemoving the capability for any software application to modify accessibility legal rights at runtime is key to eliminating the opportunity of attackers obtaining privilege escalation and also giving themselves new accessibility rights

In order to follow Leastern Privilege principles, it is imperative that you have the right to trust that your platform devices do not grant any kind of access rights to any kind of resource; unless you, the developer, explicitly enable them. (For an instance of a Leastern Privilege Architecture imposed in an automotive style, check out Automotive Demopresented at Arm TechCon 2019.)


The significance of “open” systems is low expense portability and component reuse. Moving from a centralized to dispersed device style removes a not-so-evident technological obstacle to achieving these goals. In the central Client-Server OS design,applications depend heavily on whatever happens "under the hood" within the operating system. These underlying behavioral semantics can vary between versions of an OS APIimplementation.Even as soon as API description versions are compatible with otherplatforms,the resolution of semantics compatibility,license expense, and also work-related necessaryto assemble the application on a new platcreate will certainly a lot of likely be cost-prohibitive.

When applications are aligned with their dependencies as finish imeras, porting between platdevelops becomes a lot much less of a technical challenge—a challenge that can extremely much benefit the seller.A spread architecturehave the right to offer customers better freedom and also adaptability for requesting and utilizingintegration toolsfor 3rd party compiled components.Furthermore,givingapplication developers the visibility andcontroltobuild and regulate their entire application dependenciesthemselvesoffers developers with better flexibility to filter out unvital complexity and also an enhanced capability to specify specific device execution actions.


The initiative required to follow software application code and understand its attribute at the hardware level is recognized ascomprehensibility.A primary concernof the central Client-Server version of theRTOSis that eincredibly task or application is forced to sit at the same level of abstraction (the system API).This API hides the underlying complexities of the OS which could bestraightforward function calls right into libraries (best case),ornumerous device calls and context switches (worst case).


On the confront of it, this included complexity might be viewed as a worthwhile trade-off for a streamlined API and included functionality.However before, in order to debug software program and also understand also what is happening ‘under the hood’, the developer regularly requirements to understand also (and maintain) a complicated internet of system calls and context switches.


Partitioning is the most crucial capcapability for maintaining platcreate integrity.Safety RTOSes have touted the benefits of time and also room partitioning for years, but a closer look right into implementations reflects room for development in regards to complexity reduction and partitioning functions.

Simpler partitioning implies more powerful partitioning. Completely removing obligation of partitioning from an OS kernel (which uses both software program and also hardware) and instead utilizing the hardware specifically gives a greater strength of attribute and also is a a lot simpler mechanism to verify for certification.

More partitioning implies stronger partitioning. Looking closer,RTOSes frequently only partition task deal with spaces and create cyclic windows of execution time for tasks or job teams. Tbelow is a wide range of partitioning features constructed right into hardware virtualization thatRTOSesoftendisregard,such as straight memory accessibility (DMA) channel partitioning,cache partitioningusingcache allocation innovation (CAT), interrupt masking, instruction setreservations,and so on.


The chief technical goal of an RTOS is to manage determinism,which is primarilyachieved with a scheduler.Deterministicschedulers commonly implementpriority-preemptiveor routine tasking models. Both approaches challenge considerable technical obstacles on modern multi-core microprocessors when orchestrating race conditions, coherency, reresource contention, andtimer & asynchronousinterrupts throughout all CPU cores.

As CPU core and peripheralcounts increase, sododisruption and software application intricacy.The the majority of obvious method to reign in determinism on multi-core units is to simplify the settings that require deterministic actions by isolating hardware interference.Usinghardware-basedpartitioning capabilitiesallowsbasic typical scheduling techniquesto execute as intended.


Having developed and also sustained RTOSes for more than 30 years, we check out a number of widespread reasons that home builders of installed devices take into consideration purchasing a commercial RTOS. Here are our responses to some of the the majority of common inquiries we get around RTOS recommendations:

"I require real-time response..."

So do you always need an RTOS? No. Tbelow are elegant methods to accomplish the guarantees in your demands that might not require the complexity of an RTOS.

"I"m occurring a certified system..."

So perform you constantly require an RTOS? No. Hybrid deindicators can be certified and also supported through aheterogeneous, multi-core safety- and security-partitioning framework.

"I require multi-tasking..."

So do you always need an RTOS? No. If flexibility and also manage of task scheduling are necessary, then an RTOS may be a great option, however it might be also overkill—a super-loop, interrupts, an easy scheduler, or Linux might be more proper.

"I desire my software program to be portable to other platcreates in future..."

"Device sellers advertise a hold of software program bundled through their solution..."

So do you constantly need an RTOS? No. The benefits of bundled software really depfinish on the intricacy of the software application you want to leverage. Somepoint complicated favor a netoccupational stack (that"s likely to do a lot of background work) can warrant an RTOS on a maker that cannot run Linux, but otherwise it is best to initially decide that an RTOS is the finest alternative for your job,thenchoose one that bundles the software application you need.

"I don"t want to write hardware bootstrap code..."

So carry out you constantly require an RTOS? No. Tbelow are various other means toreduce the expense and also effort compelled to achieve a BSP.

"I have actually legacy designs that I desire to augment via brand-new use..."

So execute you constantly require an RTOS? No. If you have actually tradition code developed against a proprietary API, then it might not be worth the price to port it to an RTOS with a traditional API for the sake of future-proofing. The style deserve to often be included as a bare-metal binary with aheterogeneous, multi-core safety- and security-partitioning structure.

"I desire to have the ability to debug my application..."

So carry out you always require an RTOS? No.Never before use tool support as the reason for utilizing an RTOS. The tools are often had bereason the complexities of the RTOS need facility map and debug tools; removing the RTOS simplifies the tools you need to understand the habits of your software.


Not every embedded software program mechanism design calls for a real-time operating device, and also one of the biggest mistakes we view developers make is incorrectly assuming an RTOS is needed. Too often, havingpreferred a commercial RTOS, building contractors of installed units uncover themselves locked-in to a vendor"s proprietary APIs while discovering that their design choices have been constrained by a restricted collection of devices. Given that many type of of the benefits our customers gain out of our RTOSes are not specifically RTOS benefits, we always consult with them initially, looking to minimize advance expense, intricacy, and also design hazards.Typically, thethe majority of optimal services become hybrid deindicators (for a comparison of 2 distinct designs for avionics devices, watch the System A vs. System B portion of ourAvionics page).


Modern software application units deserve to be modeled as simplercompositionsof spread attributes as opposed to a arsenal of client applications dependent on a monolithic server. This enables you to develop and also explain your platform softwarebya set of features, rather than by a singular platdevelop that assumes a supercollection of opaque functions.

See more: What Is A 980 A Good Sat Score ? Is 980 A Good Sat Score

Our conversations with customers are commonly less about comparing our products to various other RTOSes and also even more about addressing widespread design challenges such as:

You have actually a perfectly excellent working system that runs on an RTOS that you would choose to reusage, but you would certainly favor to add brand-new protection attributes that the RTOS does not supportYou need real-time scheduling for some jobs that were developed on a general-function OSYou have actually proprietary schedulers from microcontrollers you would certainly favor port to a microprocessorYour application design is so straightforward that relocating to an RTOS would certainly pose intricacy overkillYour application is so bleeding edge that moving to an RTOS would require substantial rejob-related to satisfy similar throughput purposes watched on Linux

Our advice in every one of these situations is:

Reuse as much as you canSimplify your design as much as possibleChoose the most cost-effective components and tool chain for sensible style gaps



Figure 3- MOSA.ic Modular Growth Framework

To learn more about just how to properly realize modular, spread software application architectures, see MOSA.ic™ integration frameworkorGet Startedtoday and also tell us around your task. We would certainly be happy to schedule a whiteboarding session through you to uncover the the majority of optimal services to your obstacles.