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. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to 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">Embedded operating system</span> Type of computer operating system

An embedded operating system is an operating system for embedded computer systems. Embedded operating systems are a computer system designed to increase functionality and reliability for achieving a specific task. Depending on the method used for Computer multitasking, this type of operating system might be considered 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 computer operating systems (OS) 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">Tablet computer</span> Mobile computer with integrated display, circuitry and battery

A tablet computer, commonly shortened to tablet, is a mobile device, typically with a mobile operating system and touchscreen display processing circuitry, and a rechargeable battery in a single, thin and flat package. Tablets, being computers, have similar capabilities, but lack some input/output (I/O) abilities that others have. Modern tablets largely resemble modern smartphones, the only differences being that tablets are relatively larger than smartphones, with screens 7 inches (18 cm) or larger, measured diagonally, and may not support access to a cellular network. Unlike laptops, tablets usually run mobile operating systems, alongside smartphones.

<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. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

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

A mobile operating system is an operating system 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 generally not considered mobile ones, as they were originally designed for desktop computers that historically did not have or need specific mobile features. This 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 hardware of the past. Key notabilities blurring this line are the introduction of tablet computers and light-weight 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>

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