Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Linux on embedded systems
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Uses in embedded systems}} <!-- commented out {{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, developer surveys and industry reports find that Embedded Linux is used in 44%-46% of embedded systems.<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><ref>{{cite web |title=The Eclipse Foundation Unveils 2024 IoT & Embedded Developer Survey Results |url=https://newsroom.eclipse.org/news/announcements/eclipse-foundation-unveils-2024-iot-embedded-developer-survey-results |website=Eclipse Foundation |access-date=10 May 2025}}</ref><ref>{{cite web |title=Wind River Continues Long-Standing #1 Ranking in Edge Operating System Platforms |url=https://www.businesswire.com/news/home/20250417872811/en/Wind-River-Maintains-Long-Standing-1-Ranking-in-Edge-Operating-System-Platforms|website=businesswire|access-date=10 May 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}} ==History== {{Main|Linux kernel version history}} : additional source for this section <ref name="2net">{{cite web |title=Embedded Linux Timeline |url=https://2net.co.uk/embedded-history |website=2net}}</ref> === Early Days === Prior to becoming the de-facto standard for microprocessor-based devices,<ref>{{cite book |last1=Kingman |first1=Henry |title=The History of Embedded Linux & Best Practices for Getting Started |date=July 2013 |publisher=Linux Foundation |page=2}}</ref> 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]].<ref>{{cite web |last1=Opdenacker |first1=Michael |title=Introduction to uClinux |url=https://bootlin.com/doc/legacy/uclinux/uclinux_introduction.pdf |website=bootlin.com}}</ref> Linux is also used as an alternative to using a [[Proprietary software|proprietary]] [[operating system]] and its associated [[toolchain]].<ref name="vxworks-migration">{{cite web | url = http://www.mvista.com/download/Migrating-VxWorks-apps-to-embedded-Linux-slides-with-notes.pdf | archive-url = https://web.archive.org/web/20140210185142/http://www.mvista.com/download/Migrating-VxWorks-apps-to-embedded-Linux-slides-with-notes.pdf | title = Migrating VxWorks applications to Linux | year = 2008 | access-date = 2013-11-13 | archive-date = 2014-02-10 | publisher = Monta Vista Software }}</ref> === Introduction of [[busybox]] === The introduction of [[busybox]] in 1999, enabled packaging critical tools in an embedded system, with a minimal footprint. === The [[ARM architecture family|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.<ref>{{cite web |last1=Vuong |first1=Kent |title=Linux on ARM: The Future of Operating Systems in a Connected World |url=https://www.linkedin.com/pulse/linux-arm-future-operating-systems-connected-world-kent-vuong/ |website=LinkedIn}}</ref> === Development Toolchains === The development of the [[GNU]] [[cross-compiler]] facilitated the adoption of Linux embedded to many processors. === [[Android (operating system)|Android]] === 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 === [[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|url-access=subscription}}</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> 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.<ref>{{cite web |title=Real-Time Linux Wiki |url=https://archive.kernel.org/oldwiki/rt.wiki.kernel.org |website=Archive Kernel.org}}</ref><ref>{{cite web |title=PREEMPT_RT patch versions |url=https://wiki.linuxfoundation.org/realtime/preempt_rt_versions |website=Linux Foundation}}</ref> In 2024, the [[PREEMPT_RT]] patch was fully merged into the Linux kernel for supported architectures. === [[IoT]] === The open source nature and security features of Linux, have contributed to its prevalence in [[Edge Computing|devices on the Edge]] and [[IoT]] Systems.<ref>{{cite web |last1=Cintay |first1=Emre |title=The Impact of Linux on Emerging Technologies: IoT, AI, and Beyond |url=https://medium.com/%40Chinacolt/the-impact-of-linux-on-emerging-technologies-iot-ai-and-beyond-4b9ca9a06cf2 |website=Medium |access-date=24 April 2025}}</ref> 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 (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> ==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.<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== 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).<ref>{{cite book |last1=Yaghmour |first1=Karim |title=Building Embedded Linux Systems |date=2003 |publisher=O'Reilly}}</ref> Currently, there are several solutions, some full build systems, others are supporting tools. * [[Yocto Project]] * [[Buildroot]] * [[BitBake]] * [[CMake]] * [[OpenWrt]] * [[OpenEmbedded|Open Embedded]] === Development Tools === * [[GNU Compiler Collection]] - cross compiler * [[GDB]] * [[Qemu]] * [[Eclipse IDE]] ==Variants== === Summary Table of Variants (2025) === {|class=wikitable |+ ! 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== {{Portal|Linux}} {{div col|colwidth=22em}} * 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 (operating system)|Android]] well-known type of embedded Linux, e.g. on [[smartphone]]s ** [[Mobilinux]] ** [[OpenMoko]] ** [[OpenWrt]] ** [[DD-WRT]] ** [[RTLinux]] ** [[Tizen]] โ embedded Linux for smartphones ** [[Ubuntu]] - Core and Server, on RPi, x86, ARM ** [[ฮผClinux]] * Vendors: ** [[Access Co.]] ** [[Canonical (company)|Canonical]] with [https://ubuntu.com/core Ubuntu Core] and Ubuntu Server ** [[LynuxWorks]] ** [[Mentor Graphics]] ** [[MontaVista Software]] ** [[Wind River Systems]] ** [[TimeSys]] ** [[ENEA AB]] ** [https://www.suse.com/embedded SUSE] {{div col end}} ==References== {{Reflist}} ==Further reading== * {{cite book|last=Weinberg|first=Bill|title=Uniting Mobile Linux Application Platforms|publisher=LinuxPundit.com|date=July 2008|pages=18|url=http://www.linuxpundit.com/cv/docs/Platforms_WP_LP.pdf|access-date=2009-05-08|archive-url=https://web.archive.org/web/20120216071824/http://www.linuxpundit.com/cv/docs/Platforms_WP_LP.pdf|archive-date=2012-02-16|url-status=dead}} ==See also== * [[Preemption (computing)]] * [[Safety-critical system]] ==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)] * {{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 }} * [http://www.spinics.net/lists/linux-embedded/ Embedded Linux mailist list archive] * [http://www.emdebian.org Embedded Debian Project] {{Webarchive|url=https://web.archive.org/web/20060630015856/http://www.emdebian.org/ |date=2006-06-30 }} (obsolete) * [http://www.linuxjournal.com/article/6272 VxWorks to Embedded Linux: a Success Story] * [https://elinux.org/ Embedded Linux Wiki: A centralized place for sharing Embedded Linux Knowledge] {{Linux}} {{Mobile operating systems}} {{Real-time operating systems}} {{Embedded systems}} [[Category:Embedded Linux| ]] [[Category:Embedded operating systems]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Div col
(
edit
)
Template:Div col end
(
edit
)
Template:Embedded systems
(
edit
)
Template:Linux
(
edit
)
Template:Main
(
edit
)
Template:Mobile operating systems
(
edit
)
Template:Navbox
(
edit
)
Template:Portal
(
edit
)
Template:Real-time operating systems
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Webarchive
(
edit
)