Jump to content

Linux on embedded systems: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
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|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}}.


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

==Variants==
The [[Embeddable Linux Kernel Subset]] is a [[Linux distribution]] that fits on a [[floppy disk]] for outdated or [[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>


==Devices coverage==
==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 gateway]]s like the [[Linksys WRT54G series]] or [[smartphone]]s 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]].
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. Due to the high number of devices, standardized build systems have appeared, including [[Yocto Project|Yocto]], [[OpenEmbedded]], [[Buildroot]], [[OpenWrt]], and [[LTIB]].{{citation needed|date=October 2017}}
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]]


==Variants==
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 &#91;Wiki&#93;}}</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

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.

The ARM-Linux Synergy

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

Linux embedded Real Time Evolution

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

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

References

  1. ^ "Embedded Systems Statistics By Market Size And Technologies". Electro IQ. Retrieved April 20, 2025.
  2. ^ "2023 State of the Edge Report". LFEdge.
  3. ^ a b "Embedded Linux Timeline". 2net.
  4. ^ Kingman, Henry (July 2013). The History of Embedded Linux & Best Practices for Getting Started. Linux Foundation. p. 2.
  5. ^ Opdenacker, Michael. "Introduction to uClinux" (PDF). bootlin.com.
  6. ^ "Migrating VxWorks applications to Linux" (PDF). Monta Vista Software. 2008. Archived from the original (PDF) on 2014-02-10. Retrieved 2013-11-13.
  7. ^ Vuong, Kent. "Linux on ARM: The Future of Operating Systems in a Connected World". LinkedIn.
  8. ^ 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
  9. ^ "What does it mean to say "linux kernel is preemptive"?". Stack Overflow. Retrieved 2021-03-08.
  10. ^ "Real-Time Operating System - an overview | ScienceDirect Topics". www.sciencedirect.com. Retrieved 2021-03-08.
  11. ^ Reghenzani, Federico (2019). "The real-time linux kernel: A survey on Preempt_RT". ACM Computing Surveys. 52: 1-36.
  12. ^ "Real-Time Linux Wiki". Archive Kernel.org.
  13. ^ "PREEMPT_RT patch versions". Linux Foundation.
  14. ^ Cintay, Emre. "The Impact of Linux on Emerging Technologies: IoT, AI, and Beyond". Medium. Retrieved 24 April 2025.
  15. ^ "Guide to Building Embedded Linux Systems with Containers". Pantacor.
  16. ^ Tim Bird July 2022 (June 2023) Status of Embedded Linux
  17. ^ "ELKS: The Embeddable Linux Kernel System". GitHub.com/elks. Retrieved 2021-04-12.
  18. ^ Yaghmour, Karim (2008). Building Embedded Linux Systems (2nd ed.). O'Reilly.
  19. ^ Yaghmour, Karim (2003). Building Embedded Linux Systems. O'Reilly.

Further reading

See also