Embedded operating system

An Embedded Operating System (EOS) is an operating system designed specifically for embedded computer systems. These systems aim to enhance functionality and reliability to perform dedicated tasks.[1] When the multitasking method employed allows for timely task execution, such an OS may qualify as a real-time operating system (RTOS).[2]

An embedded system on a plug-in card, featuring a processor, memory, power supply, and various external interfaces

Overview

edit
 
A Xerox Document Centre 505 digital photocopier in 2010

Embedded Operating Systems are integral to consumer electronics such as cameras and mobile phones. Additionally, they power automotive electronics, aiding in functions like cruise control and navigation. Moreover, they are essential for factory automation infrastructure. Everyday applications of EOS include office automation devices such as image scanners, photocopiers, and wireless access points. Home automation systems, including security systems, also depend on EOS.[3]

Design

edit

Embedded systems comprise a processor and corresponding software. Embedded software requires storage for executables and temporary data processing during runtime. Embedded systems typically utilize ROM and RAM as main memory components. For functionality, embedded systems necessitate input and output interfaces. Embedded hardware configurations are often unique, varying according to the application.[4] Given the resource limitations of embedded system hardware, operating systems are designed with a narrow scope, tailored to specific applications to ensure optimal operation within hardware constraints. The choice of embedded operating system, which organizes and controls the hardware, often dictates the additional required embedded hardware components.

Software developers might write essential code in assembly language to harness the full processing power of the Central Processing Unit (CPU). Assembly language, being machine-efficient, can enhance speed in deterministic systems but may reduce portability and maintainability. Frequently, embedded operating systems are coded in portable programming languages like C.

History

edit

Early embedded operating systems

edit

The concept of a real-time multitasking kernel emerged in the late 1970s. During the 1980s, as embedded systems applications grew in complexity, operating systems with real-time multitasking kernels struggled to meet the evolving demands of embedded development. This led to the evolution of the real-time multitasking kernel into a comprehensive Operating System (RTOS), encompassing networking, file management, development, and debugging capabilities.

Today, RTOS constitues a global industry. In 1981, Ready System developed VRTX32, the world’s first commercial embedded real-time kernel. In 1993, following a merger, Ready System and Silicon Valley’s Microtec Research developed two new RTOS kernels, VRTX32 and VRTXsa, building upon VRTXmc. Concurrently, the VRTX integrated development environment, Spectra, was introduced.

In 1996, Microsoft released its embedded operating system, WinCE, which supported various processor architectures including x86, ARM, SH4, and MIPS. WinCE has since become obsolete, with mainstream support having ended in 2018.[5]

OS-9 and VxWorks are also notable embedded operating systems.

Modern embedded operating systems

edit

In the current landscape of the Internet of Things (IoT), embedded devices are ubiquitous, with cars alone utilizing hundreds of sensors. IoT systems, in contrast to traditional embedded systems, necessitate lower power consumption, enhanced safety and reliability, and the capability for ad hoc networking [citation needed]. The communication layer must facilitate the conversion between diverse protocols, while the application layer should enable cloud computing capabilities over the Internet.

Contemporary embedded operating systems

edit

As a result, several new embedded operating systems have gained popularity, such as Embedded Linux[6] variants (OpenWrt, Zeroshell, Android, LineageOS, LEDE, LibreCMC), OpenHarmony, Oniro OS, HarmonyOS, NetBSD,[7] PX5 RTOS, ThreadX, FreeRTOS, among others.

Linux-based projects

edit

Numerous Linux-based projects, toolkits, and frameworks have been developed for creating operating systems that operate on a variety of embedded systems. Prominent examples of these include OpenEmbedded, BusyBox, uClibc, musl libc, and Buildroot.

See also

edit

References

edit
  1. ^ Jabeen, Qamar; Khan, Fazlullah; Hayat, Muhammad Nouman; Khan, Haroon; Jan, Syed Roohullah; Ullah, Farman (2016-05-11). "A Survey: Embedded Systems Supporting By Different Operating Systems". arXiv:1610.07899 [cs.OH].
  2. ^ "Definition of embedded OS". PC Magazine. Retrieved 13 September 2023.
  3. ^ Alan Holt; Chi-Yu Huang (2018). Embedded Operating Systems: A Practical Approach. Springer International Publishing. p. 5. ISBN 9783319729770.
  4. ^ Sager, P. M.; Agarwal, V. (November 2002). "Embedded operating systems for real-time applications" (PDF). M. Tech. credit seminar report. Electronic Systems Group, EE Dept, IIT Bombay: 14.
  5. ^ "Microsoft - Lifecycle for Windows Embedded Compact 2013". Microsoft Docs. Retrieved 3 Feb 2022.
  6. ^ Barbieri, Edoardo (24 November 2021). "What is embedded Linux?". Ubuntu. Retrieved 13 September 2023.
  7. ^ "Chapter 1. What is NetBSD?". NetBSD. Retrieved 13 September 2023.
  NODES
camera 1
debugging 1
Frameworks 1
HOME 2
Intern 3
languages 2
mac 1
Note 1
os 19