A brief history of embedded operating systems
We are often surrounded by embedded operating systems every day without realising it. That can be through the embedded systems in our cars, but it can also be through Internet of Things (IoT) devices such as your smart light bulb system. However, they’re implemented, embedded systems are a vital part of how our devices operate correctly. Such systems are designed to complete a specific task to the best of their ability. While it might seem like a recent concept, it’s far from new. The history of embedded systems is far wider reaching than you’d think.
This article takes you through a brief look at when embedded systems were initially designed. It also looks at how embedded systems have evolved over the years and what it means for you.
What are embedded systems?
At its simplest, an embedded system is designed to complete a specific task. An embedded system differs from a personal computer (PC) with an operating system like Windows or Linux. It’s a mixture of hardware and software. You can see examples in regular devices as varied as a washing machine, internet router, boiler, or even a vehicle.
Effectively, embedded systems are tiny computers that use similarly small amounts of memory and processing power. Each processing unit solely focuses on its dedicated purpose. An embedded system isn’t designed to be as versatile as a PC, but there are similarities. Some embedded systems use a single microprocessor to achieve their aim, while others utilise multiple core processors. Unlike the PC you’re using now, embedded systems respond to feedback and events as they happen in the real world.
Elsewhere, there are also embedded operating systems. Such embedded software solutions differ from conventional PC desktop operating systems as they’re designed with a specific task or series of tasks in mind. Because they’re so laser-focused on a particular aim, the hardware needed tends to be limited in power and resources.
Some embedded computing systems can include a graphical user interface, while others feel like they’re working in the background. An excellent example of an embedded operating system can be something like a Sat Nav. The many systems used within a car, such as ABS or climate control, are also forms of embedded systems.
(In the diagram below, you’ll see many of the embedded systems found in cars.)
No device is limited to having just one embedded system. Many more complex everyday items can include a lot of embedded systems so they can complete tasks more effectively.
Who invented embedded systems?
Charles Stark “Doc” Draper is widely regarded as the inventor of the first embedded system. He was also an expert in inertial navigation. In inertial navigation devices, there are motion sensors like accelerometers and rotation sensors, including gyroscopes.
Draper was the founder and director of the Massachusetts Institute of Technology’s Instrumentation Laboratory, which was later named after him in his honour. He created the Apollo Guidance Computer in the 1960s, which controlled the navigation and guidance of the Lunar Excursion Module to the moon.
The first embedded system
Devised by Draper, the first modern embedded system was installed on board each Apollo command module and Apollo Lunar module. The Apollo Guidance Computer was used to help navigate to the moon on nine launches. Six of those launches led to a successful landing on the moon’s surface. Each lunar mission had two additional computers to control the craft. The Launch Vehicle Digital Computer (LVDC) and Abort Guidance System (AGS) enabled astronauts to take off from the moon and rendezvous with the command module. However, it couldn’t land using the computers.
Above: Apollo Guidance Computer and its display and keyboard (DSKY).
In the same decade, the D-17B computer was created as part of the Minuteman missile guidance system.
Following this, more commercial uses for embedded systems were introduced. Volkswagen invented the first embedded system within a car in 1969. Designed for calculators and other small systems, Texas Instruments developed the first microcontroller in 1971. Intel developed the first single-chip microprocessor in 1971, named the Intel 4004. It sparked a revolution in what was to come for embedded systems.
Evolution of embedded systems
The Apollo Guidance Computer may have put humans on the moon, but it was quite rudimentary compared to modern standards. Here’s a look at how code quantity has changed over the years:
- Apollo Guidance Computer: Approximately 145,00 lines of code.
- Average Android smartphone operating system: Approximately 12 to 15 million lines of code.
- High-end car. Approximately one hundred million lines of code.
Embedded systems have evolved since Apollo, and that trend will likely never stop.
The first 4-bit microprocessor was developed in 1971. The first 8-bit processor was introduced just three years later—the Intel 8008. Around this time, Motorola also introduced its microprocessor, the MC6800.
Crucially, embedded systems design is applied in almost everything you can think of now. Your home router uses embedded systems, but telecommunication companies also use them on a much larger scale. Household appliances often have an embedded system. From microwaves to washing machines, dishwashers to coffee makers. Using an embedded system ensures they can be more flexible and work more efficiently.
The Apollo Guidance Computer and Draper’s work on inertial navigation led to expansive embedded systems on aeroplanes. Better safety requirements through advanced avionics were one improvement. Another was providing spacecraft with systems for more accurate trajectory correction.
Medical devices also use embedded systems for monitoring patients and imaging purposes like MRIs. Other safety-intensive systems include those within the aerospace and defence industries. By being easily isolated from hacking attempts, they are much more secure.
For the average consumer, there have even been self-tuning guitars like the Gibson Robot Guitar, which uses an embedded system to tune its strings accurately.
Generally, embedded systems are purpose-built using closed architectures that are unique to each device. However, there’s a growing rise in open-sourced solutions, depending on the device and the user’s needs. An internet router that runs on open-source firmware such as Tomato or the OpenWrt project is a good example. These are embedded operating systems rather than pure embedded systems.
What are the differences between bare metal, real-time operating systems and embedded operating systems?
Embedded system is the general term for a dedicated way of completing specific tasks. However, it breaks down into a few different options when you look into embedded operating systems.
Whether looking at Embedded Linux systems or other forms of embedded operating systems, there are a few different terms to consider.
Bare metal involves writing code that runs without an operating system. It’s best used with low-end microcontrollers as it works directly with the system’s hardware. In the early days of embedded systems, it was often sufficient for the types of programs that needed to be used. It’s great when needing to get the most out of limited hardware, but there are limitations. Scalability can be an issue. That means it’s a less popular choice these days unless reduced power consumption is vital. For instance, developers can unlikely add a complex graphical user interface to it.
As well as bare metal, there’s also a Real-Time Operating System (RTOS). This offers more functionality, such as multitasking and software timers, so that systems can be more responsive. An RTOS based device is one that needs accurate timing. It’s still relatively flexible for running on limited systems though. The main downside is that debugging is much harder compared to bare metal. However, many developers use it to streamline real-time embedded software development. Such systems are defined as either hard or soft real-time. Hard real-time systems fail when they miss deadlines. Alternatively, soft real-time allows for a missed deadline, albeit with degraded performance.
An embedded operating system can be something like Embedded Linux, a system with a stripped-down version of Linux built into it. It can also be a proprietary system for a specific product. It can even be Windows in the form of Windows Embedded Industry, which is used on point of sale (POS) terminals. Meanwhile, Blackberry’s QNX OS for Safety is a proprietary embedded OS used in some medical devices.
The first embedded operating system
The first embedded operating systems were proposed in the late 1970s. Still, it wasn’t until the 1980s that we saw the true implementation of the method. The world’s first commercial embedded real-time kernel, VRTX32, was developed by Ready System in 1981. Following that, 1987 brought with it the first actual embedded operating system, VxWorks. Released by Wind River, the real-time operating system eventually became the operating system for the Mars Pathfinder space mission in 1997.
Elsewhere, we saw Windows enter the embedded marketplace with Windows Embedded CE 1.0 in 1996. While the late 90s saw the first embedded Linux products. Do you have an iPhone sitting next to you? The first all-in-one embedded mobile device was the original iPhone in 2007, with the first Android phone, the T-Mobile G1, launching a year later in 2008.
Embedded operating systems today
Since the rise of embedded operating systems, microprocessors and integrated circuits are vital to the technology around you. That’s why the global chip shortage continues to be a significant problem in the manufacturing process of many items.
With every device imaginable such as your car, watch, or even requiring embedded systems, such technology flourishes.
Embedded computing systems are a vital part of our technological environment, with some cars having over 100 embedded systems alone. The evolution of embedded systems continues to develop by the day, with the embedded processor market likely to reach $44 billion by 2030.
New technology is emerging daily, along with new embedded operating systems too. Thanks to this, the trend is likely to grow even faster than before.
Further reading
Are you looking to develop a new product or have an existing one?
Bluefruit Software has been providing high-quality embedded software engineering and testing services for more than 22 years. Our team of experienced engineers, testers and analysts has worked with a diverse range of clients and industries, including medical, scientific instruments, aerospace, automotive, consumer and more.
We can help you with software development at any project stage, ensuring quality, reliability, and security. Contact us today to discuss your software development needs.
Did you know that we have a monthly newsletter?
If you’d like insights into software development, Lean-Agile practices, advances in technology and more to your inbox once a month—sign up today!
Find out more