An
embedded operating system is essentially the brain of an embedded computer system, which defines the functionality of a product. It is engineered and optimized to improve the efficiency of controlling the hardware resources, drive graphics processing, and decrease response time for the tasks performed by the device. In this article, we will expand upon this embedded OS definition with examples, and shed light on the ins and outs of embedded operating systems, which can be found in almost all smart devices today.
In today’s digital era, most vehicles, appliances, and handheld devices need embedded operating systems to control functionality and perform tasks efficiency. Instead of controlling each part of the system individually, an embedded OS manages all programmable as well as fixed hardware operations. Though these systems have taken the electronic world by storm today, people are still unaware of what they can bring to the table. Let's dive into our discussion of embedded computer operating systems.
Embedded Operating Systems: The Basics
An embedded operating system is a small-scale computer of an embedded system with a limited number of features. It is designed to carry out a function or a set of functions of an electronic end product. Akin to a desktop PC that requires an OS like Windows, Linux, or Mac OS to run basic apps, embedded systems also need an operating system to facilitate and expedite their functionality.
For instance, all mobile phones have an integrated embedded operating system software like Android or iOS that starts up when the phone is switched on. Without the OS, implementing an app into every single mobile phone with different hardware would have been a nightmare for developers. It allows them to bridge all the gaps and build a unified app specifically for the OS. The embedded operating system is also known as a real-time operating system (RTOS) in some cases, which we will discuss in another section.
Here are some common characteristics of an embedded OS:
- Power efficient
- Fewer storage capabilities
- Smaller processing power
- Fast and lightweight
- I/O device flexibility
- Real-time operation
- Tailored to the intended use case
The software incorporated into an embedded OS is critical to the functionality of a product. At Digi, almost all our products use an embedded OS to provide their features and performance. In the case of our
Digi SOMs, a complete embedded OS used by developers adds huge benefits in unlocking sophisticated features of the SOM hardware and providing easy-to-use, production-ready code libraries and development tools to create future-proof and highly scalable products in the shortest possible time.
How Does an Embedded System Work?
People often wonder how an embedded system works because there is a high demand for sophisticated product technology, and as a result there are excellent opportunities for embedded software developers. Unlike a desktop PC that loads or executes applications, an embedded operating system is configured for fewer purposes, typically handling a single application on a device.
Though the scope of operating system functions is limited, it must be reliable and operate seamlessly even with constraints on size, processing power, and memory because that specific application is crucial for the functionality of the end product. Some of the examples of the best embedded OSs for commercial and industrial applications are Embedded Linux and Android, Wind River VxWorks, Green Hills Integrity, and QNX.
Are you wondering if embedded operating systems can be updated or not? Yes, embedded OSs can be updated if the product is designed with flash memory and if the chip it is implemented on is flashable. For instance, your smart TV might contain an embedded operating system and a plethora of features as well as complexities. The more features, the more bugs and security vulnerabilities that must be managed. The operating systems of such devices are designed to be updated to eliminate bugs or add new features and offer the best customer experience.
Embedded vs Non-Embedded Systems
An
embedded OS runs on a device that is incorporated into an end product and tends to have limited applications. Some devices that might include embedded operating systems are:
- Infusion pumps
- Industrial ovens
- Electric vehicles
- Vehicle infotainment systems
- Solar panels
- Solar panel controllers
A
non-embedded OS or
general purpose OS (GPOS) runs on a standalone device that
is the end product. These operating systems are generally larger, more customizable and offer a broader choice of applications. Examples of non-embedded devices are:
- Desktop PC
- Laptop
- Dedicated server
So, to understand an embedded operating system vs desktop operating system, you could say that a product like an infusion pump contains a computer running an embedded OS to function, while a non-embedded OS runs on a computer used to perform automated work, like writing or graphic design.
Examples of applications with no operating system include products that are 100% mechanical or include simple electronics. Here are a few examples of devices without operating systems:
- Old household appliances
- Old vehicles
- Walkie-talkies/radio communication devices
To summarize:
- An embedded device is a computer that’s embedded into an end product. It might require an OS if the computer’s functionality is complex, but not necessarily.
- A non-embedded device is a computer that works on its own, and is the end product itself.
- A product without an embedded device doesn’t incorporate a computer at all.
History of Embedded Operating Systems
While Linux and Android are relatively new kids to the block, the concept of embedded operating systems dates back to the 1960s, with the introduction of the
Apollo Guidance Computer. The AGC "was installed on board each
Apollo command module (CM) and
Apollo Lunar Module (LM). The AGC provided computation and electronic interfaces for guidance, navigation, and control of the spacecraft." (Source:
Wikipedia)
Embedded computing systems have come a long way since then, and the evolution seems far from over, thanks to the advancements of microcontroller technology from 8-bit to 16-bit and later 32-bit. Due to the increasing complexity of embedded computer systems, operating systems became the key to manage the embedded software effectively.
Today, a myriad of different embedded OSs are available. Development in the design and implementation of the embedded operating systems have been driven by the need to control software applications that take advantage of swiftly advancing hardware.
Embedded Operating Systems: Common Uses
Embedded operating systems are commonly used in many different areas, for example: multimedia players, airplane navigation systems, car navigation systems, and medical equipment. Below, we have outlined how this technology streamlines the operation of these examples.
Common Use - Parking metering
To manage user input, and track time and charges, smart city parking meters require an embedded operating system. These devices have a range of functionality built in, depending on the design. For example, some use sensors to detect the arrival and the departure of vehicles, while others require the driver to input the parking space or vehicle license. A user interface provides the driver with selections, such as the option to set the anticipated return time and pay accordingly.
Common Use - Navigation system of an airplane
A plane’s navigation system is an excellent example of a real time operating system. The main computer of an airplane that is interconnected with most of the control systems like engine, wing, safety, and pressure controls. So, it is specifically designed to operate inside a plane and help perform operations like takeoff, landing, and emergencies.
Common Use - Car navigation system
The car navigation system is a small computer that includes a touch screen that allows the driver to go through various menus like GPS and route mapping, audio playback, radio, hands-free calls, and monitoring systems for fuel level and tire pressure. In
connected vehicles these systems are even more complex, incorporating vehicle-to-intersection and
vehicle-to-anything or "V2X" communications systems. The computer is designed to carry out all these tasks and enhance the driving experience.
Common Use - Medical equipment
Medical equipment integrated with embedded operating systems automatically monitors bio constants, administers medications, and sends alerts to the staff in case the bio constants go above or below the threshold value. Thus, medical equipment can help doctors treat their patients, monitor their health, and save their lives.
Real-Time Operating Systems (RTOS)
A real-time operating system (RTOS) is a typically an OS with reduced functions that supports multi-threaded applications by providing processed outputs within specified time constraints and possesses a deterministic behavior. Since these applications are time-critical, they should be executed exactly when expected to in order to maintain the functioning of the whole system.
Airbags in our vehicles are the best example of this concept. When a speeding car gets into an accident, airbags must deploy within 10-20 milliseconds of the crash. A delay of even a few milliseconds may cause death. So, there is no margin of error, and the task should be carried out immediately.
Some other common examples of RTOS are:
- Online transaction systems
- Medical critical care system
- Anti-lock braking system
- Traffic control system
- Livestock price quotation systems
- Airline control systems
RTOS provides meticulous scheduling and resource management required to meet the demand of applications and ensure the time-sensitive tasks meet their deadline. RTOSs further have two types - soft real-time operating and hard real-time operating systems. The primary difference is that a hard RTOS must reliably perform a specified function in a set time, such as X milliseconds.
Here are some characteristics of real-time operating systems:
- Event-driven to allow the system to switch between the tasks according to their priorities
- Priority-based scheduling that separates analytical processing from non-critical processing
- Modular task-based development which facilitates modular task-based testing
RTOS vs Embedded OS
RTOS can be considered a subset of embedded operating systems. Thus, we can say that all RTOS are embedded operating systems. However, all embedded operating systems are not RTOS. Let’s talk about real time characteristics of embedded operating systems.
The main difference between RTOS and Embedded OS systems lies in the time criticality of the system. An example of a non-critical system is an in-flight entertainment system that each passenger can access to watch movies, play games, or catch up on TV shows during their flight. Once the passenger turns on the system, there is no particular time limit for the movies or shows to be played.
On the other hand, the navigation system of an airplane responsible for takeoff, landing, and many other processes is time-critical. It requires a real-time factor to carry out a task quickly. Unexpected delays in such a system will never be an option. When selecting real time operating systems for embedded computing, it is critical to evaluate these kinds of requirements.
Looking for Embedded OS Solutions?
While embedded operating systems and general purpose operating systems have some similarities, they are very different especially when it comes to their design and purpose. The biggest takeaway is that an embedded OS is designed to run on specific hardware to cater to the specific needs of an end product; whereas a conventional GPOS is designed to be more general-purpose. And looking for systems such as the
Digi ConnectCore® product family, in which the embedded hardware and software are highly integrated will provide that most optimal development environment.
It is also important to note that for any time-critical, mission-critical or graphics-intensive applications such as as connected vehicle and medical device systems, you will need not only a real time operating system, but an
ultra-fast processor that can deliver the performance, security and reliability required.
Now that you know the basics of embedded OS, you’re ready to dive into a real example. Digi Embedded products support embedded OS based on Yocto Project (Linux based) or Embedded Android. We provide prebuilt images for our development kits; along with documentation, libraries, examples and the Digi TrustFence security framework to help you customize the OS for your specific embedded solution in a simple and secure fashion.
For more information, see our
system-on-module and development kit line-up, and visit our
embedded documentation portal. Or
contact us to learn how Digi Wireless Design Services to help plan and develop your next product and get to market fast.