This article's lead section contains information that is not included elsewhere in the article. (February 2022) |
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]
Overview
editEmbedded 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
editEmbedded 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
editEarly embedded operating systems
editThe 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
editIn 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
editAs 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
editNumerous 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- Linux on embedded systems
- Embeddable Linux Kernel Subset, a Linux operating system that fits on a floppy disk
- List of embedded operating systems
- OpenWrt
- Principle of least privilege (computer security)
References
edit- ^ 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].
- ^ "Definition of embedded OS". PC Magazine. Retrieved 13 September 2023.
- ^ Alan Holt; Chi-Yu Huang (2018). Embedded Operating Systems: A Practical Approach. Springer International Publishing. p. 5. ISBN 9783319729770.
- ^ 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.
- ^ "Microsoft - Lifecycle for Windows Embedded Compact 2013". Microsoft Docs. Retrieved 3 Feb 2022.
- ^ Barbieri, Edoardo (24 November 2021). "What is embedded Linux?". Ubuntu. Retrieved 13 September 2023.
- ^ "Chapter 1. What is NetBSD?". NetBSD. Retrieved 13 September 2023.