Embedded operating system

Type of computer operating system

This article's lead section contains information that is not included elsewhere in the article. If the information is appropriate for the lead of the article, this information should also be included in the body of the article. (February 2022) (Learn how and when to remove this message)

|

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

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

[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, Tock 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]

* 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]

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.

* v
* t
* e

Embedded systems

General terms|

* ASIC
* Board support package
* Bootloader
* Consumer electronics
* Cross compiler
* Embedded database
* Embedded hypervisor
* Embedded OS
* Embedded software
* FPGA
* IoT
* Memory footprint
* Microcontroller
* Single-board computer
* Raspberry Pi
* SoC

Firmware and controls|

* Firmware
* Custom firmware
* Proprietary firmware
* Closed platform
* Crippleware
* Defective by Design
* Hacking of consumer electronics
* Homebrew (video games)
* iOS jailbreaking
* PlayStation 3 Jailbreak
* Rooting (Android)
* UEFI
* Vendor lock-in

Boot loaders|

* U-Boot
* Barebox

Software libraries|

* uClibc
* dietlibc
* Embedded GLIBC
* lwIP
* musl

Programming tools|

* Almquist shell
* BitBake
* Buildroot
* BusyBox
* OpenEmbedded
* Stand-alone shell
* Toybox
* Yocto Project

Operating systems|

* Linux on embedded systems
* Linux for mobile devices
* Light-weight Linux distribution
* Real-time operating system
* Windows IoT
* Win CE

Programming languages|

* Ada
* Assembly language
* CAPL
* Embedded C
* Embedded C++
* Embedded Java
* MISRA C
* MicroPython

* Lightweight browsers
* List of open-source hardware
* Open-source robotics

* v
* t
* e

Operating systems

General|

* Comparison
* Forensic engineering
* History
* List
* Timeline
* Usage share
* User features comparison

Variants|

* Disk operating system
* Distributed operating system
* Embedded operating system
* Hobbyist operating system
* Just enough operating system
* Mobile operating system
* Network operating system
* Object-oriented operating system
* Real-time operating system
* Supercomputer operating system

Kernel|

| Architectures|

* Exokernel
* Hybrid
* Microkernel
* Monolithic
* Multikernel
* vkernel
* Rump kernel
* Unikernel

|

Components|

* Device driver
* Loadable kernel module
* User space and kernel space

Process management|

| Concepts|

* Computer multitasking (Cooperative, Preemptive)
* Context switch
* Interrupt
* IPC
* Process
* Process control block
* Real-time
* Thread
* Time-sharing

|

Scheduling
algorithms|

* Fixed-priority preemptive
* Multilevel feedback queue
* Round-robin
* Shortest job next

Memory management,
resource protection|

* Bus error
* General protection fault
* Memory paging
* Memory protection
* Protection ring
* Segmentation fault
* Virtual memory

Storage access,
file systems|

* Boot loader
* Defragmentation
* Device file
* File attribute
* Inode
* Journal
* Partition
* Virtual file system
* Virtual tape library

Supporting concepts|

* API
* Computer network
* HAL
* Live CD
* Live USB
* Shell
* CLI
* User interface
* PXE

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template