Linux on embedded systems: Difference between revisions
m →Android: refixed link |
variants section and device coverage update |
||
Line 1: | Line 1: | ||
{{Short description|Uses in embedded systems}} |
{{Short description|Uses in embedded systems}} |
||
{{Update|reason=following Oct. 2024 discussion in [[Talk:Linux_on_embedded_systems#outdated]], started major revisionas per [[Talk:Linux_on_embedded_systems#suggestions for updates]]|date=April 2025}} |
{{Update|reason=following Oct. 2024 discussion in [[Talk:Linux_on_embedded_systems#outdated]], started major revisionas per [[Talk:Linux_on_embedded_systems#suggestions for updates]]|date=April 2025}} |
||
The [[Linux|Linux Operating system]] is prevalent in [[embedded system]]s. As of 2024, Embedded Linux shares the top spot with [[FreeRTOS]], with 44% of embedded systems using this operating system <ref>{{cite web |title=Embedded Systems Statistics By Market Size And Technologies |url=https://electroiq.com/stats/embedded-systems-statistics |website=Electro IQ |access-date=April 20, 2025}}</ref>. Due to its [[Linux range of use|versatility]], its large community of developers, as well as its adaptability to devices with size and power constraints, Linux is a popular choice for devices used in [[Edge Computing]]<ref>{{cite web |title=2023 State of the Edge Report |url=https://lfedge.org/introducing-the-2023-state-of-the-edge-report-navigating-the-frontier-of-edge-computing |website=LFEdge}}</ref> and autonomous systems{{citation needed |
The [[Linux|Linux Operating system]] is prevalent in [[embedded system]]s. As of 2024, Embedded Linux shares the top spot with [[FreeRTOS]], with 44% of embedded systems using this operating system <ref>{{cite web |title=Embedded Systems Statistics By Market Size And Technologies |url=https://electroiq.com/stats/embedded-systems-statistics |website=Electro IQ |access-date=April 20, 2025}}</ref>. Due to its [[Linux range of use|versatility]], its large community of developers, as well as its adaptability to devices with size and power constraints, Linux is a popular choice for devices used in [[Edge Computing]]<ref>{{cite web |title=2023 State of the Edge Report |url=https://lfedge.org/introducing-the-2023-state-of-the-edge-report-navigating-the-frontier-of-edge-computing |website=LFEdge}}</ref> and autonomous systems{{citation needed}}. |
||
==History== |
==History== |
||
Line 33: | Line 33: | ||
==== [[Android (operating system)|Android]] ==== |
==== [[Android (operating system)|Android]] ==== |
||
In 2008 Android 1.0 was released, based on the linux kernel. In time, [[Android (operating system)|Android]] would become the most successful linux embedded distribuition.<ref name="2net"></ref> |
In 2008 Android 1.0 was released, based on the linux kernel. [[Android (operating system)|Android]], a Linux-kernel-based operating system acquired and extended by [[Google]] and introduced in 2008, has become a highly competitive platform for [[smartphone]]s and [[tablet computer|tablet]]s. In time, [[Android (operating system)|Android]] would become the most successful linux embedded distribuition.<ref name="2net"></ref> |
||
==== Real-time Support ==== |
==== Real-time Support ==== |
||
[[File:Linux embedded Real Time Evolution.png|thumb|Linux embedded Real Time Evolution]] |
[[File:Linux embedded Real Time Evolution.png|thumb|Linux embedded Real Time Evolution]] |
||
⚫ | Not every embedded Linux distribution is required to or meets [[Real-time computing|real-time]] requirements.<ref>{{Citation|last=Erciyes|first=K.|title=Real-Time Operating Systems|date=2019|url=http://link.springer.com/10.1007/978-3-030-22570-4_4|work=Distributed Real-Time Systems|series=Computer Communications and Networks|pages=65–88|place=Cham|publisher=Springer International Publishing|language=en|doi=10.1007/978-3-030-22570-4_4|isbn=978-3-030-22569-8|s2cid=199583025|access-date=2021-03-08}}</ref><ref>{{Cite web|title=What does it mean to say "linux kernel is preemptive"?|url=https://stackoverflow.com/questions/5283501/what-does-it-mean-to-say-linux-kernel-is-preemptive|access-date=2021-03-08|website=Stack Overflow}}</ref> This is particular relevant for [[safety critical]] applications and systems.<ref>{{Cite web|title=Real-Time Operating System - an overview {{!}} ScienceDirect Topics|url=https://www.sciencedirect.com/topics/computer-science/real-time-operating-system|access-date=2021-03-08|website=www.sciencedirect.com}}</ref> |
||
The original Linux kernel was not suitable for real-time tasks due to its non-deterministic behavior<ref>{{cite journal |last1=Reghenzani |first1=Federico |title=The real-time linux kernel: A survey on Preempt_RT |journal=ACM Computing Surveys |date=2019 |volume=52 |page=1-36}}</ref> |
The original Linux kernel was not suitable for real-time tasks due to its non-deterministic behavior<ref>{{cite journal |last1=Reghenzani |first1=Federico |title=The real-time linux kernel: A survey on Preempt_RT |journal=ACM Computing Surveys |date=2019 |volume=52 |page=1-36}}</ref> |
||
Line 51: | Line 53: | ||
==== Containerization ==== |
==== Containerization ==== |
||
The emerging technologies of the [[fourth industrial revolution]] have driven further enhancements to the linux kernel, notably the adoption of [[Containerization (computing)|containerization]].<ref>{{cite web |title=Guide to Building Embedded Linux Systems with Containers |url=https://pantacor.com/embedded-linux/guide-to-building-embedded-linux-systems-for-iot-with-containers |website=Pantacor}}</ref> |
The emerging technologies of the [[fourth industrial revolution]] have driven further enhancements to the linux kernel, notably the adoption of [[Containerization (computing)|containerization]].<ref>{{cite web |title=Guide to Building Embedded Linux Systems with Containers |url=https://pantacor.com/embedded-linux/guide-to-building-embedded-linux-systems-for-iot-with-containers |website=Pantacor}}</ref> |
||
⚫ | |||
⚫ | The |
||
==Devices coverage== |
==Devices coverage== |
||
Due to its |
Due to its freely available source code and ease of customization, Linux has been shipped in many consumer devices. [[Starlink]] and [[SpaceX]] use embedded Linux on their constellations and rockets.<ref name= spaceUses >Tim Bird [https://www.youtube.com/watch?v=3-areQvSKTg July 2022] [https://eoss2023.sched.com/event/1LcNH/status-of-embedded-linux-tim-bird-sony-electronics?iframe=no (June 2023) Status of Embedded Linux]</ref> |
||
⚫ | The Embeddable Linux Kernel is a lightweight and customizable [[Linux distribution]] appropriate for [[Minimalism (computing)|low resource]] [[Computer hardware|hardware]].<ref>{{Cite web|title=ELKS: The Embeddable Linux Kernel System|url=https://github.com/jbruchon/elks|access-date=2021-04-12|website=GitHub.com/elks}}</ref>. |
||
Like the synergy with the ARM architecture as mentioned in [[#The ARM-Linux Synergy]], Linux embedded has evolved with hardware technologies like [[System on a chip]] and [[Single-board computer]], networking standards, and memory devices.<ref>{{cite book |last1=Yaghmour |first1=Karim |title=Building Embedded Linux Systems |date=2008 |publisher=O'Reilly |edition=2nd}}</ref> (example: [[Raspberry Pi]]) |
|||
==Linux Embedded Ecosystems== |
|||
[[Android (operating system)|Android]], a Linux-kernel-based operating system acquired and extended by [[Google]] and introduced in 2008, has become a highly competitive platform for [[smartphone]]s and [[tablet computer|tablet]]s. In July 2012, Android's smartphone market share in the United States was at 52%,<ref>{{cite web|last=Fingas |first=Jon |url=https://www.engadget.com/2012/09/04/comscore-android-tops-52-percent-of-us-smartphone-share/ |title=ComScore: Android tops 52 percent of US smartphone share, iPhone cracks the 33 percent mark |publisher=Engadget.com |date=2012-09-04 |access-date=2012-11-24}}</ref> reaching 82% worldwide in Q2 2015.<ref>{{cite web|url=http://www.idc.com/prodserv/smartphone-os-market-share.jsp |title=IDC: Smartphone OS Market Share, 2015 Q2 |publisher=idc.com |date=2015-08-01 |access-date=2016-05-13}}</ref> |
|||
⚫ | 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. |
||
====Build Systems==== |
|||
[[Starlink]] and [[SpaceX]] use embedded Linux on their constellations and rockets.<ref name= spaceUses >Tim Bird [https://www.youtube.com/watch?v=3-areQvSKTg July 2022] [https://eoss2023.sched.com/event/1LcNH/status-of-embedded-linux-tim-bird-sony-electronics?iframe=no (June 2023) Status of Embedded Linux]</ref> |
|||
Alongside the evolution of the linux kernel, build systems evolved to support the building of an optimized operating system for an embedded device. |
|||
Before the emergence of these build systems, developers manually built [[toolchains]], and compiled each component of the embedded distribution (kernel, libraries, applications).<ref>{{cite book |last1=Yaghmour |first1=Karim |title=Building Embedded Linux Systems |date=2003 |publisher=O'Reilly}}</ref> |
|||
==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. |
||
Currently, there are several solutions, some full build systems, others are supporting tools. |
|||
* [[Yocto Project]] |
|||
==Platform usage== |
|||
* [[Buildroot]] |
|||
The advantages of embedded Linux over proprietary [[embedded operating system]]s 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 driver]]s framework.<ref name="vxworks-migration" /> |
|||
* [[BitBake]] |
|||
* [[CMake]] |
|||
* [[OpenWrt]] |
|||
* [[OpenEmbedded|Open Embedded]] |
|||
====Development Tools==== |
|||
==Limitations== |
|||
* [[GNU Compiler Collection]] - cross compiler |
|||
⚫ | Not every embedded Linux distribution is required to or meets [[Real-time computing|real-time]] requirements.<ref>{{Citation|last=Erciyes|first=K.|title=Real-Time Operating Systems|date=2019|url=http://link.springer.com/10.1007/978-3-030-22570-4_4|work=Distributed Real-Time Systems|series=Computer Communications and Networks|pages=65–88|place=Cham|publisher=Springer International Publishing|language=en|doi=10.1007/978-3-030-22570-4_4|isbn=978-3-030-22569-8|s2cid=199583025|access-date=2021-03-08}}</ref><ref>{{Cite web|title=What does it mean to say "linux kernel is preemptive"?|url=https://stackoverflow.com/questions/5283501/what-does-it-mean-to-say-linux-kernel-is-preemptive|access-date=2021-03-08|website=Stack Overflow}}</ref> This is particular relevant for [[safety critical]] applications and systems.<ref>{{Cite web|title=Real-Time Operating System - an overview {{!}} ScienceDirect Topics|url=https://www.sciencedirect.com/topics/computer-science/real-time-operating-system|access-date=2021-03-08|website=www.sciencedirect.com}}</ref> |
||
* [[GDB]] |
|||
* [[Qemu]] |
|||
* [[Eclipse IDE]] |
|||
⚫ | |||
Projects to develop real-time and safety-critical support are [[Real-Time Linux]] ([[PREEMPT RT]])<ref>{{Cite web|url=https://www.linuxfoundation.org/blog/blog/real-time-linux-continues-its-way-to-mainline-development-and-beyond |title = Real-Time Linux Continues Its Way to Mainline Development and Beyond|date = 6 September 2018}}</ref> and ELISA<ref>{{Cite web|url=https://elisa.tech |title=ELISA: Enabling Linux in Safety Applications.|date=21 February 2019}}</ref> (under [[Linux Foundation]]). Real Time Linux project aims mainlining the PREEMPT_RT-version.<ref>{{Cite web|url=https://wiki.linuxfoundation.org/realtime/start|title = Realtime:start [Wiki]}}</ref> |
|||
====Summary Table of Variants (2025)==== |
|||
{|class=wikitable |
|||
In order for the [[Control system|electronic system]] to run fully-fledged Linux OS and have [[Computer multitasking|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|date=June 2022}} |
|||
|+ |
|||
! Category of Variant |
|||
! Examples |
|||
|- |
|||
| Networking Devices |
|||
| [[OpenWRT]], firmware variant [[DD-WRT]] |
|||
|- |
|||
| IoT Devices |
|||
| [https://ubuntu.com/core Ubuntu Core], [https://www.balena.io/os Balena OS], [https://www.raspberrypi.com/software Raspberry Pi OS] |
|||
|- |
|||
|Automotive |
|||
| [https://www.automotivelinux.org/ Automotive Grade Linux] |
|||
|- |
|||
| Safety Critical Applications |
|||
| [https://www.windriver.com/products/linux Windriver Linux (commercial product)], [https://elisa.tech/ Enabling Linux in Safety Applications (ELISA)], |
|||
|- |
|||
| High reliability Industrial Applications |
|||
| [https://www.torizon.io/torizon-os Torizon], [[Xenomai]] |
|||
|} |
|||
==See also== |
==See also== |
||
Line 124: | Line 154: | ||
==External links== |
==External links== |
||
* [https://www.linuxfoundation.org/ Linux Foundation] |
|||
* [https://www.youtube.com/watch?v=92-uLpWIRaI&list=PLo7bVbJhQ6qxRyrF7CSW3wXcbmmFl9z7-&index=1 Embedded Linux course on youtube (Zedboard)] |
* [https://www.youtube.com/watch?v=92-uLpWIRaI&list=PLo7bVbJhQ6qxRyrF7CSW3wXcbmmFl9z7-&index=1 Embedded Linux course on youtube (Zedboard)] |
||
* {{cite web|url=http://linuxdevices.com/ |title=News and technical articles concerning embedded Linux |archive-url=https://archive.today/20130103162309/http://www.linuxfordevices.com/ |archive-date= 3 January 2013 |url-status=dead }} |
* {{cite web|url=http://linuxdevices.com/ |title=News and technical articles concerning embedded Linux |archive-url=https://archive.today/20130103162309/http://www.linuxfordevices.com/ |archive-date= 3 January 2013 |url-status=dead }} |
Revision as of 09:34, 28 April 2025
![]() | This article needs to be updated. The reason given is: following Oct. 2024 discussion in Talk:Linux_on_embedded_systems#outdated, started major revisionas per Talk:Linux_on_embedded_systems#suggestions for updates. (April 2025) |
The Linux Operating system is prevalent in embedded systems. As of 2024, Embedded Linux shares the top spot with FreeRTOS, with 44% of embedded systems using this operating system [1]. Due to its versatility, its large community of developers, as well as its adaptability to devices with size and power constraints, Linux is a popular choice for devices used in Edge Computing[2] and autonomous systems[citation needed].
History
- additional source for this section [3]
Early Days
Prior to becoming the de-facto standard for microprocessor-based devices[4], a linux distribution was created for the Linux Router Project, with the intent of transforming PCs to routers.
Introduction of uClinux
Starting in the late 1990s and the first decade of the 21st century, the introduction of uCLinux enabled ports to a large variety of microprocessors[5]. Linux is also used as an alternative to using a proprietary operating system and its associated toolchain.[6]
Introduction of busybox
The introduction of busybox in 1999, enabled packaging critical tools in an embedded system, with a minimal footprint.
As mentioned in the article ARM architecture family, due to their low costs, low power consumption, and low heat generation, arm processors are prevalent in many embedded devices. The open source nature, the flexibility, and the stability of Linux contributes to its wide-spread adoption to arm devices.[7]
Development Toolchains
The development of the GNU cross-compiler facilitated the adoption of Linux embedded to many processors.
In 2008 Android 1.0 was released, based on the linux kernel. 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 time, Android would become the most successful linux embedded distribuition.[3]
Real-time Support

Not every embedded Linux distribution is required to or meets real-time requirements.[8][9] This is particular relevant for safety critical applications and systems.[10]
The original Linux kernel was not suitable for real-time tasks due to its non-deterministic behavior[11]
Early attempts to provide real time support, such as RTAI were based on a real-time kernel alongside the standard kernel.
In 2005, the PREEMPT_RT project was initiated to provide a patch to the linux kernel.[12] [13]
In 2024, the PREEMPT_RT patch was fully merged into the Linux kernel for supported architectures.
The open source nature and security features of Linux, have contributed to its prevalence in devices on the Edge and IoT Systems.[14] Correspondingly, the demand for the real time capabilities described in the previous subsection, is driven by the proliferation of IoT devices.
Containerization
The emerging technologies of the fourth industrial revolution have driven further enhancements to the linux kernel, notably the adoption of containerization.[15]
Devices coverage
Due to its freely available source code and ease of customization, Linux has been shipped in many consumer devices. Starlink and SpaceX use embedded Linux on their constellations and rockets.[16] The Embeddable Linux Kernel is a lightweight and customizable Linux distribution appropriate for low resource hardware.[17]. Like the synergy with the ARM architecture as mentioned in #The ARM-Linux Synergy, Linux embedded has evolved with hardware technologies like System on a chip and Single-board computer, networking standards, and memory devices.[18] (example: Raspberry Pi)
Linux Embedded Ecosystems
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.
Build Systems
Alongside the evolution of the linux kernel, build systems evolved to support the building of an optimized operating system for an embedded device.
Before the emergence of these build systems, developers manually built toolchains, and compiled each component of the embedded distribution (kernel, libraries, applications).[19]
Currently, there are several solutions, some full build systems, others are supporting tools.
Development Tools
- GNU Compiler Collection - cross compiler
- GDB
- Qemu
- Eclipse IDE
Variants
Summary Table of Variants (2025)
Category of Variant | Examples |
---|---|
Networking Devices | OpenWRT, firmware variant DD-WRT |
IoT Devices | Ubuntu Core, Balena OS, Raspberry Pi OS |
Automotive | Automotive Grade Linux |
Safety Critical Applications | Windriver Linux (commercial product), Enabling Linux in Safety Applications (ELISA), |
High reliability Industrial Applications | Torizon, Xenomai |
See also
- Articles:
- 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
- ^ "Embedded Systems Statistics By Market Size And Technologies". Electro IQ. Retrieved April 20, 2025.
- ^ "2023 State of the Edge Report". LFEdge.
- ^ a b "Embedded Linux Timeline". 2net.
- ^ Kingman, Henry (July 2013). The History of Embedded Linux & Best Practices for Getting Started. Linux Foundation. p. 2.
- ^ Opdenacker, Michael. "Introduction to uClinux" (PDF). bootlin.com.
- ^ "Migrating VxWorks applications to Linux" (PDF). Monta Vista Software. 2008. Archived from the original (PDF) on 2014-02-10. Retrieved 2013-11-13.
- ^ Vuong, Kent. "Linux on ARM: The Future of Operating Systems in a Connected World". LinkedIn.
- ^ 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
- ^ "What does it mean to say "linux kernel is preemptive"?". Stack Overflow. Retrieved 2021-03-08.
- ^ "Real-Time Operating System - an overview | ScienceDirect Topics". www.sciencedirect.com. Retrieved 2021-03-08.
- ^ Reghenzani, Federico (2019). "The real-time linux kernel: A survey on Preempt_RT". ACM Computing Surveys. 52: 1-36.
- ^ "Real-Time Linux Wiki". Archive Kernel.org.
- ^ "PREEMPT_RT patch versions". Linux Foundation.
- ^ Cintay, Emre. "The Impact of Linux on Emerging Technologies: IoT, AI, and Beyond". Medium. Retrieved 24 April 2025.
- ^ "Guide to Building Embedded Linux Systems with Containers". Pantacor.
- ^ Tim Bird July 2022 (June 2023) Status of Embedded Linux
- ^ "ELKS: The Embeddable Linux Kernel System". GitHub.com/elks. Retrieved 2021-04-12.
- ^ Yaghmour, Karim (2008). Building Embedded Linux Systems (2nd ed.). O'Reilly.
- ^ Yaghmour, Karim (2003). Building Embedded Linux Systems. O'Reilly.
Further reading
- 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
External links
- Linux Foundation
- Embedded Linux course on youtube (Zedboard)
- "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