Embedded operating system

Last updated
An embedded system on a plug-in card, featuring a processor, memory, power supply, and various external interfaces DHCOM Computer On Module - AM35x.jpg
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]

Contents

Overview

A Xerox Document Centre 505 digital photocopier in 2010 Fuji Xerox Document Centre 505 and Taiwan Xerox Walk-In 120D at ROC National Central Library 20101211.jpg
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 powerautomotive 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

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

Early embedded Operating Systems

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

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

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

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

Related Research Articles

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.

A network operating system (NOS) is a specialized operating system for a network device such as a router, switch or firewall.

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

<span class="mw-page-title-main">QNX</span> Real-time operating system (RTOS) software

QNX is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market.

<span class="mw-page-title-main">VxWorks</span> Real-time operating system

VxWorks is a real-time operating system developed as proprietary software by Wind River Systems, a subsidiary of Aptiv. First released in 1987, VxWorks is designed for use in embedded systems requiring real-time, deterministic performance and in many cases, safety and security certification for industries such as aerospace, defense, medical devices, industrial equipment, robotics, energy, transportation, network infrastructure, automotive, and consumer electronics.

<span class="mw-page-title-main">MontaVista</span> Software company

MontaVista Software is a company that develops embedded Linux system software, development tools, and related software. Its products are made for other corporations developing embedded systems and end products using Linux, such as automotive electronics, telecommunications and communications equipment, mobile phones, and other electronic devices and infrastructure. MontaVista also supplies Linux-based solutions and software to products that are software-only, such as enterprise networking, virtual network functions in Network Functions Virtualization, and appliance software that is hosted on a cloud hosting environment.

Nucleus RTOS is a real-time operating system (RTOS) produced by the Embedded Software Division of Mentor Graphics, a Siemens Business, supporting 32- and 64-bit embedded system platforms. The operating system (OS) is designed for real-time embedded systems for medical, industrial, consumer, aerospace, and Internet of things (IoT) uses. Nucleus was released first in 1993. The latest version is 3.x, and includes features such as power management, process model, 64-bit support, safety certification, and support for heterogeneous computing multi-core system on a chip (SOCs) processors.

Computer operating systems based on the Linux kernel are used in embedded systems such as consumer electronics, in-vehicle infotainment (IVI), networking equipment, machine control, industrial automation, navigation equipment, spacecraft flight software, and medical instruments in general.

A hypervisor, also known as a virtual machine monitor (VMM) or virtualizer, is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine. The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Unlike an emulator, the guest executes most instructions on the native hardware. Multiple instances of a variety of operating systems may share the virtualized hardware resources: for example, Linux, Windows, and macOS instances can all run on a single physical x86 machine. This contrasts with operating-system–level virtualization, where all instances must share a single kernel, though the guest operating systems can differ in user space, such as different Linux distributions with the same kernel.

Micro-Controller Operating Systems is a real-time operating system (RTOS) designed by Jean J. Labrosse in 1991. It is a priority-based preemptive real-time kernel for microprocessors, written mostly in the programming language C. It is intended for use in embedded systems.

<span class="mw-page-title-main">FreeRTOS</span> Real-time operating system

FreeRTOS is a real-time operating system kernel for embedded devices that has been ported to 35 microcontroller platforms. It is distributed under the MIT License.

<span class="mw-page-title-main">PikeOS</span> Real-time operating system

PikeOS is a commercial hard real-time operating system (RTOS) which features a separation kernel-based hypervisor. This hypervisor supports multiple logical partition types for various operating systems (OS) and applications, each referred to as a GuestOS. PikeOS is designed to facilitate the development of certifiable smart devices for the Internet of Things (IoT) by adhering to high standards of quality, safety, and security across different industries. In instances where memory management units (MMU) are not present but memory protection units (MPU) are available on controller-based systems, PikeOS for MPU is designed for critical real-time applications and provides up-to-standard safety and security.

A Bluetooth stack is software that is an implementation of the Bluetooth protocol stack.

Lynx Software Technologies, Inc. is a San Jose, California software company founded in 1988. Lynx specializes in secure virtualization and open, reliable, certifiable real-time operating systems (RTOSes). Originally known as Lynx Real-Time Systems, the company changed its name to LynuxWorks in 2000 after acquiring, and merging with, ISDCorp, an embedded systems company with a strong Linux background. In May 2014, the company changed its name to Lynx Software Technologies.

BeRTOS is a real-time operating system designed for embedded systems.

LynxSecure is a least privilege real-time separation kernel hypervisor from Lynx Software Technologies designed for safety and security critical applications found in military, avionic, industrial, and automotive markets.

<span class="mw-page-title-main">TenAsys</span> American software company

TenAsys is a privately owned company providing real-time software and services based on the x86 Intel Architecture and Microsoft Windows operating system.

<span class="mw-page-title-main">QP (framework)</span>

QP is a family of open source real-time embedded frameworks (RTEFs) and runtime environments based on active objects (actors) and hierarchical state machines. The QP family consists of the lightweight QP/C and QP/C++ frameworks, written in C (C99) and C++ (C++11), respectively.

<span class="mw-page-title-main">Zephyr (operating system)</span> Real-time operating system

Zephyr is a small real-time operating system (RTOS) for connected, resource-constrained and embedded devices supporting multiple architectures and released under the Apache License 2.0. Zephyr includes a kernel, and all components and libraries, device drivers, protocol stacks, file systems, and firmware updates, needed to develop full application software.

References

  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.