Linux on embedded systems

Last updated

Computer operating systems based on the Linux kernel are used in embedded systems such as consumer electronics (eg. set-top boxes, smart TVs and personal video recorders (PVRs)), in-vehicle infotainment (IVI), networking equipment (such as routers, switches, wireless access points (WAPs) or wireless routers), machine control, industrial automation, navigation equipment, spacecraft flight software, and medical instruments in general.

Contents

Because of their versatility, operating systems based on the Linux kernel can be also found in mobile devices that are actually touchscreen-based embedded devices, such as smartphones and tablets, together with personal digital assistants (PDAs) and portable media players that also include a touchscreen. This is a challenge for most learners because their computer experience is mainly based on GUI (Graphical user interface) based interaction with the machine and high-level programming on the one hand and low-level programming of small microcontrollers (MCU) on the other hand while the concept of command line interfaces is widely unknown. [1]

History

The Linux kernel has been ported to a variety of CPUs which are not only primarily used as the processor of a desktop or server computer, but also ARC, ARM, AVR32, ETRAX CRIS, FR-V, H8300, IP7000, m68k, MIPS, mn10300, PowerPC, SuperH, and Xtensa processors. Linux is also used as an alternative to using a proprietary operating system and its associated toolchain. [2]

Variants

The Embeddable Linux Kernel Subset is a Linux distribution that fits on a floppy disk for outdated or low resource hardware. [3]

Devices coverage

Due to its low cost (freely available source code) and ease of customization, Linux has been shipped in many consumer devices. Devices covering PDAs (like the Sharp Zaurus family), TomTom GPS navigation devices, residential gateways like the Linksys WRT54G series or smartphones such as the Motorola exz series, Openmoko handsets, devices running Sailfish OS developed by Jolla like Jolla C and Intex Aqua Fish and the Nokia N900 and Nokia N9.

Android, a Linux-kernel-based operating system acquired and extended by Google and introduced in 2008, has become a highly competitive platform for smartphones and tablets. In July 2012, Android's smartphone market share in the United States was at 52%, [4] reaching 82% worldwide in Q2 2015. [5]

Starlink and SpaceX use embedded Linux on their constellations and rockets. [6]

Communities

With the availability of consumer embedded devices, communities of users and developers were formed around these devices: replacement or enhancements of the Linux distribution shipped on the device has often been made possible thanks to availability of the source code and to the communities surrounding the devices. Due to the high number of devices, standardized build systems have appeared, including Yocto, OpenEmbedded, Buildroot, OpenWrt, and LTIB.[ citation needed ]

Platform usage

The advantages of embedded Linux over proprietary embedded operating systems include multiple suppliers for software, development and support; no royalties or licensing fees; a stable kernel; the ability to read, modify and redistribute the source code. The technical disadvantages include a comparatively large memory footprint (kernel and root filesystem); complexities of user mode and kernel mode memory access, and a complex device drivers framework. [2]

Limitations

Not every embedded Linux distribution is required to or meets real-time requirements. [7] [8] This is particular relevant for safety critical applications and systems. [9]

Projects to develop real-time and safety-critical support are Real-Time Linux (PREEMPT RT) [10] and ELISA [11] (under Linux Foundation). Real Time Linux project aims mainlining the PREEMPT_RT-version. [12]

In order for the electronic system to run fully-fledged Linux OS and have multitasking it has to have enough operative memory (or replacing such) and memory management unit implementing virtual addressing to ensure compatibility with software running on Linux.[ citation needed ]

See also

Related Research Articles

<span class="mw-page-title-main">Linux distribution</span> Operating system based on the Linux kernel

A Linux distribution is an operating system made from a software collection that includes the Linux kernel and often a package management system. They are often obtained from the website of each distribution, which are available for a wide variety of systems ranging from embedded devices and personal computers to servers and powerful supercomputers.

<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.

<span class="mw-page-title-main">Firmware</span> Low-level computer software

In computing, firmware is software that provides low-level control of computing device hardware. For a relatively simple device, firmware may perform all control, monitoring and data manipulation functionality. For a more complex device, firmware may provide relatively low-level control as well as hardware abstraction services to higher-level software such as an operating system.

<span class="mw-page-title-main">Embedded operating system</span> Type of computer 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. When the multitasking method employed allows for timely task execution, such an OS may qualify as a real-time operating system (RTOS).

<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 such as automotive electronics, communications equipment, mobile phones, and other electronic devices and infrastructure.

Linux adoption is the adoption of Linux-based computer operating systems (OSes) by households, nonprofit organizations, businesses, and governments.

In Linux systems, initrd is a scheme for loading a temporary root file system into memory, to be used as part of the Linux startup process. initrd and initramfs refer to two different methods of achieving this. Both are commonly used to make preparations before the real root file system can be mounted.

Squashfs is a compressed read-only file system for Linux. Squashfs compresses files, inodes and directories, and supports block sizes from 4 KiB up to 1 MiB for greater compression. Several compression algorithms are supported. Squashfs is also the name of free software, licensed under the GPL, for accessing Squashfs filesystems.

<span class="mw-page-title-main">PulseAudio</span> Sound server for Unix-like operating systems

PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, including Windows Subsystem for Linux on Microsoft Windows and Termux on Android; various BSD distributions such as FreeBSD, OpenBSD, and macOS; as well as Illumos distributions and the Solaris operating system. It serves as a middleware in between applications and hardware and handles raw PCM audio streams.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project.

HAL is a software subsystem for UNIX-like operating systems providing hardware abstraction.

A mobile operating system is an operating system used for smartphones, tablets, smartwatches, smartglasses, or other non-laptop personal mobile computing devices. While computers such as typical/mobile laptops are "mobile", the operating systems used on them are usually not considered mobile, as they were originally designed for desktop computers that historically did not have or need specific mobile features. This "fine line" distinguishing mobile and other forms has become blurred in recent years, due to the fact that newer devices have become smaller and more mobile, unlike the hardware of the past. Key notabilities blurring this line are the introduction of tablet computers, light laptops, and the hybridization of the two in 2-in-1 PCs.

Empress Embedded Database is a relational database management system that has been embedded into applications, including medical systems, network routers, nuclear power plant monitors, satellite management systems. Empress is an ACID compliant relational database management system (RDBMS) with two-phase commit and several transaction isolation levels for real-time embedded applications. It supports both persistent and in-memory storage of data and works with text, binary, multimedia, as well as traditional data.

Besides the Linux distributions designed for general-purpose use on desktops and servers, distributions may be specialized for different purposes including computer architecture support, embedded systems, stability, security, localization to a specific region or language, targeting of specific user groups, support for real-time applications, or commitment to a given desktop environment. Furthermore, some distributions deliberately include only free software. As of 2015, over four hundred Linux distributions are actively developed, with about a dozen distributions being most popular for general-purpose use.

Linux for mobile devices, sometimes referred to as mobile Linux, is the usage of Linux-based operating systems on portable devices, whose primary or only Human interface device (HID) is a touchscreen. It mainly comprises smartphones and tablet computers, but also some mobile phones, personal digital assistants (PDAs) portable media players that come with a touchscreen separately.

<span class="mw-page-title-main">AsteroidOS</span> Operating system

AsteroidOS is an open source operating system designed for smartwatches. It is available as a firmware replacement for some Android Wear devices. The motto for the AsteroidOS project is "Free your wrist."

Ubuntu is a Debian-based Linux distribution for personal computers, tablets and smartphones, where the Ubuntu Touch edition is used; and also runs network servers, usually with the Ubuntu Server edition, either on physical or virtual servers or with containers, that is with enterprise-class features.

postmarketOS Free and open-source operating system for smartphones, based on Alpine Linux

postmarketOS is an operating system primarily for smartphones, based on the Alpine Linux distribution.

Comparison of user features of operating systems refers to a comparison of the general user features of major operating systems in a narrative format. It does not encompass a full exhaustive comparison or description of all technical details of all operating systems. It is a comparison of basic roles and the most prominent features. It also includes the most important features of the operating system's origins, historical development, and role.

References

  1. "Graphical User Interface", What is Embedded Linux? And How does it work?, retrieved 2019-06-05[ dead link ]
  2. 1 2 "Migrating VxWorks applications to Linux" (PDF). Monta Vista Software. 2008. Archived from the original (PDF) on 2014-02-10. Retrieved 2013-11-13.
  3. "ELKS: The Embeddable Linux Kernel System". GitHub.com/elks. Retrieved 2021-04-12.
  4. Fingas, Jon (2012-09-04). "ComScore: Android tops 52 percent of US smartphone share, iPhone cracks the 33 percent mark". Engadget.com. Retrieved 2012-11-24.
  5. "IDC: Smartphone OS Market Share, 2015 Q2". idc.com. 2015-08-01. Retrieved 2016-05-13.
  6. Tim Bird July 2022 (June 2023) Status of Embedded Linux
  7. Erciyes, K. (2019), "Real-Time Operating Systems", Distributed Real-Time Systems, Computer Communications and Networks, Cham: Springer International Publishing, pp. 65–88, doi:10.1007/978-3-030-22570-4_4, ISBN   978-3-030-22569-8, S2CID   199583025 , retrieved 2021-03-08
  8. "What does it mean to say "linux kernel is preemptive"?". Stack Overflow. Retrieved 2021-03-08.
  9. "Real-Time Operating System - an overview | ScienceDirect Topics". www.sciencedirect.com. Retrieved 2021-03-08.
  10. "Real-Time Linux Continues Its Way to Mainline Development and Beyond". 6 September 2018.
  11. "ELISA: Enabling Linux in Safety Applications". 21 February 2019.
  12. "Realtime:start [Wiki]".

Further reading

See also