Linux on embedded systems

Uses in embedded systems

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.

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

[edit]

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

[edit]

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

## Devices coverage

[edit]

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

[edit]

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

[edit]

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

[edit]

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

[edit]

* Linux portal

* Articles:
* Convergent Linux Platform
* Linux range of use
* Linux for mobile devices
* TinyLinux
* Products/Distributions:
* Armbian \- specialised for ARM single board computers
* BusyBox
* BuildRoot
* Debian – used on Raspberry Pi
* Embeddable Linux Kernel Subset
* Emdebian Grip
* Familiar Linux
* Google's Android well-known type of embedded Linux, e.g. on smartphones
* Mobilinux
* OpenMoko
* OpenWrt
* DD-WRT
* RTLinux
* Tizen – embedded Linux for smartphones
* Ubuntu \- Core and Server, on RPi, x86, ARM
* μClinux
* Vendors:
* Access Co.
* Canonical with Ubuntu Core and Ubuntu Server
* LynuxWorks
* Mentor Graphics
* MontaVista Software
* Wind River Systems
* TimeSys
* ENEA AB
* SUSE

## References

[edit]

1. ^ "Graphical User Interface", What is Embedded Linux? And How does it work?, retrieved 2019-06-05[dead link]
2. ^ a b "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

[edit]

* Weinberg, Bill (July 2008). Uniting Mobile Linux Application Platforms (PDF). LinuxPundit.com. p. 18\. Archived from the original (PDF) on 2012-02-16. Retrieved 2009-05-08.

## See also

[edit]

* Preemption (computing)
* Safety-critical system

## External links

[edit]

* Embedded Linux course on youtube (Zedboard)
* ‹ The template below (Curlie) is being considered for deletion. See templates for discussion to help reach a consensus. ›

Embedded Linux at Curlie
* "News and technical articles concerning embedded Linux". Archived from the original on 3 January 2013.
* Embedded Linux mailist list archive
* Embedded Debian Project Archived 2006-06-30 at the Wayback Machine (obsolete)
* VxWorks to Embedded Linux: a Success Story
* Embedded Linux Wiki: A centralized place for sharing Embedded Linux Knowledge

* v
* t
* e

Linux

Linux kernel|

* History
* Linus's law
* Linux-libre
* Booting process
* Kernel oops
* Tux
* more…

Controversies|

* Criticism of Linux
* Criticism of desktop Linux
* GNU/Linux naming controversy
* Tanenbaum–Torvalds debate
* SCO and Linux

Distributions|

* General comparison
* Distributions list
* Netbook-specific comparison
* Distributions that run from RAM
* Lightweight
* Security-focused operating system
* Package manager
* Package format
* List of software package managers

Organizations|

* LinuxChix
* Linux Counter
* Linux Documentation Project
* Linux Foundation
* Linux Mark Institute
* Linux User Group (LUG)

Adoption|

* Adopters
* Desktop
* Embedded
* Gaming
* Mobile
* Range of use
* Linux malware

Media|

* DistroWatch
* Free Software Magazine
* Full Circle
* Linux.com
* Linux Format
* Linux Gazette
* Linux Journal
* Linux Magazine
* LinuxUser
* Ubuntu User
* Linux Outlaws
* Linux Voice
* LugRadio
* LWN.net
* Phoronix
* Revolution OS
* The Code

Professional related certifications|

* CompTIA Linux+
* Linux Foundation
* Red Hat
* Ubuntu

* Linux portal
* Free and open-source software portal
* Category

* v
* t
* e

Mobile operating systems

* Mobile OS comparisons
* Open-source mobile phones / OSes
* Open Handset Alliance
* Open Mobile Alliance
* Mobile app distributions
* Mobile app development

Linux|

| Linux Kernel|

* Active:
* Android
* forks
* Android Go
* Wear OS
* EMUI/HarmonyOS (Linux kernel subsystem)
* ChromeOS
* ChromeOS Flex
* KaiOS
* Smart Feature OS
* Kindle firmware
* LuneOS
* Maemo Leste
* Tizen

* Defunct:
* Bada
* Firefox OS
* B2G OS
* MeeGo
* MontaVista
* MotoMagx
* Mobilinux
* OpenEmbedded
* Ångström
* Openmoko Linux
* QtMoko
* SHR
* OpenEZX
* WebOS

|

GNU/Linux|

* Active:
* Fedora Mobility
* Manjaro ARM
* postmarketOS
* PureOS
* Sailfish OS
* SteamOS
* Ubuntu Touch
* UBports
* Mobian

* Defunct:
* Maemo
* Mer
* Moblin

XNU|

* iOS
* iPadOS
* watchOS
* bridgeOS

QNX|

* BlackBerry 10
* BlackBerry Tablet OS

Microsoft
Windows|

* Windows XP Tablet PC Edition
* Windows Mobile
* Windows Phone
* 7
* 8
* 8.1
* Windows RT
* Windows 10 Mobile
* Windows 8
* Windows 8.1
* Windows 10
* Windows 11

Zircon|

* Fuchsia

FreeBSD/NetBSD|

* PlayStation Vita system software

OpenHarmony/HarmonyOS NEXT|

* Active:
* OpenHarmony
* HarmonyOS (HarmonyOS NEXT)
* Defunct:
* EMUI (Non GMS based)
* LiteOS
* Huawei Band OS

FreeRTOS|

* Amazfit OS
* Zepp OS
* MIUI Band OS

Nintendo system software|

* Nintendo 3DS system software
* Nintendo DSi system software
* Nintendo Switch system software

Minix 3|

* Intel Management Engine

Symbian|

* S60
* S80
* S90
* UIQ

Other|

* Binary Runtime Environment for Wireless (BREW)
* BlackBerry OS
* EPOC
* GEOS
* Magic Cap
* Nokia Asha platform
* PalmDOS
* Palm OS
* PlayStation Portable system software
* S30
* S30+
* S40
* Sony Ericsson Java Platform
* ThreadX

* Mobile operating systems
* Mobile applications
* Telecommunication
* Software

* v
* t
* e

Real-time operating systems (RTOS)

Operating
systems|

| POSIX support|

| Unix-like|

* DNIX
* Junos OS
* LynxOS
* Multi-Environment Real-Time^ (MERT – Unix-RT)
* OS2000
* QNX^
* Real-Time Linux°
* RTLinux°
* UNOS

|

LiteOS|

* LiteOS°

Partial|

* ChorusOS^
* Integrity^
* Nucleus RTOS^
* NuttX^°
* Operating System Embedded^ (OSE)
* PX5 RTOS^
* RIOT^°

TRON support|

* ITRON project
* T-Kernel
* Micro T-Kernel
* T-Engine Forum (organization)
* T-License

Partial|

* eCos°
* RTEMS°

Capability-based|

* EROS^°
* seL4^°

Java virtual machine|

* Chorus/Jazz^ (JavaOS \+ ChorusOS^)

DOS|

* Multiuser DOS
* Concurrent DOS
* FlexOS
* REAL/32

L4 kernel|

* L4Linux^°
* PikeOS^
* REX OS^
* Wombat^°

Psion|

* EKA2^° kernel → Symbian OS^°

Microsoft|

* ThreadX^
* Windows Embedded Compact

IBM|

* 4680 OS
* 4690 OS
* Transaction Processing Facility (TPF)

Texas Instruments|

* DSOS
* TI-RTOS Kernel^°

DEC PDP-11 VAX|

* RSX-11
* RT-11
* VAXELN

Low resource|

* ChibiOS/RT^°
* Contiki°
* ERIKA Enterprise°
* FunkOS°
* Mynewt°
* Nano-RK°
* OpenComRTOS^
* PX5 RTOS^
* RT-Thread° Nano
* RIOT°
* ThreadX^
* Zephyr^°

* BeRTOS^°
* DioneOS
* embOS
* FreeRTOS^°
* µC/OS^°
* µ-velOSity^
* MQX^
* OS-9 (Microware)
* Phantom OS^°
* pSOS
* RMX
* RT-Thread° Standard
* ScreenOS
* Sintran III
* THEOS
* Thoth^ → Harmony^
* VRTX^
* VxWorks
* UniProton

Frameworks, kits|

* Robot Operating System° 2
* RTAI°
* TI-RTOS^°
* Xenomai°

Developers|

* Gordon Bell
* David Cheriton
* Dave Cutler
* Dan Dodge
* Adam Dunkels
* Ken Sakamura

* Italics = discontinued
* ^ = Microkernel
* ° = Open-source software
Comparison Category

* 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]: View this template
*[t]: Discuss this template
*[e]: Edit this template