awesome-embedded-linux
A curated list of awesome Embedded Linux resources.
https://github.com/fkromer/awesome-embedded-linux
Last synced: 1 day ago
JSON representation
-
Build systems
- LFS - Linux system from source code.
- Debos - Debian OS builder.
- Isar - Integration System for Automated Root filesystem generation (Debian).
- buildroot
- ELBE - Debian based E.mbedded L.inux B.uild E.nvironment.
- LTIB - Unmaintained?.
- NARD - Specific to Raspberry Pi (compute modules).
- OpenADK
- OpenEmbedded - Build system used in the [Yocto Project](https://www.yoctoproject.org/).
- OpenWrt
- PTXdist
- LTIB - Unmaintained?.
- mkroot
- NARD - Specific to Raspberry Pi (compute modules).
- OpenBricks
- picl-k3os-image-generator - Generates images for k3os compatible with various armv8/aarch64/arm64 devices.
-
Container orchestration systems
- okd - OKD provides a complete open source container application platform which powers OpenShift (Kubernetes Distribution).
- Nomad - Easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications.
- Kubernetes - System for automating deployment, scaling, and management of containerized applications.
- Rancher - From datacenter to cloud to the edge, Rancher lets you deliver Kubernetes-as-a-Service (Kubernetes Distribution).
-
Container runtimes
- cri-o - Lightweight Container Runtime for Kubernetes.
- frakti - The hypervisor-based container runtime for Kubernetes.
- runC - CLI tool for spawning and running containers according to the OCI specification.
- containerd - An industry-standard container runtime with an emphasis on simplicity, robustness and portability.
-
Cloud Infrastructure
- StarlingX - StarlingX is a complete cloud infrastructure software stack for the edge used by the most demanding applications in industrial IOT, telecom, video delivery and other ultra-low latency use cases.
-
Cloud Provider Integration
- IoT Core - Easily and securely connect devices to the cloud. Reliably scale to billions of devices and trillions of messages.
- IoT Events - Easily detect and respond to events from IoT sensors and applications.
- IoT Greengrass - Bring local compute, messaging, data management, sync, and ML inference capabilities to edge devices.
- Wavelength - Deliver ultra-low latency applications for 5G devices.
- AWS Edge
- IoT Device Management - Register, organize, monitor, and remotely manage connected devices at scale.
- IoT Sitewise - Easily collect, organize and analyze data from industrial equipment at scale.
- Azure IoT Edge - IoT Edge moves cloud analytics and custom business logic to devices so that your organization can focus on business insights instead of data management. Enable your solution to truly scale by configuring your IoT software, deploying it to devices via standard containers, and monitoring it all from the cloud.
-
Databases
- SQLite - Defacto standard embedded SQL database for mobile phones (embedded, SQL).
- Raima Database Manager - Embedded, cross-platform, small-footprint, in-memory database developed for the IoT and the edge market (embedded, SQL).
-
Display Servers
- SWAY - Tiling Wayland compositor (wayland, MIT).
- Weston - Wayland project reference compositor (wayland, MIT).
- Enlightenment - (wayland, BSD).
- Mazecompositor - A 3D qtwayland compositor (wayland, MIT).
- Mir - The fast, open and secure display server for any device (wayland, GPL).
-
Distributions
-
Traditional Distributions
- Aboriginal Linux - DISCONTINUED.
- Android (Go edition)
- Ångström
- Arch Linux ARM
- Embdebian - Embedded Debian, DISCONTINUED.
- GoboLinux - Linux distribution redefining the entire filesystem hierarchy (no need for package database) which [runs on ARM](https://github.com/gobolinux/Documentation/wiki/GoboLinux-Embedded).
- SnapGear Embedded Linux
- STLinux - Linux for STMicroelectronics ARM or ST40 embedded processors.
- OpenSTLinux - Yocto Project based Linux Distribution for STM32 multi-core microprocessors (MPU).
- Aboriginal Linux - DISCONTINUED.
- Android
- ELinOS
- Embdebian - Embedded Debian, DISCONTINUED.
- LinRT - Embedded Linux distribution that uses the FSL Community Yocto Project layers with LinRT proprietary layers for Phytec’s SOMs and Single Board Computers.
- Moxa Industrial Linux
- Sailfish OS
- SnapGear Embedded Linux
- Wind River Linux
- Embedded Gentoo
-
Container Orchestration Distributions
- Talos - Talos is a modern OS designed to be secure, immutable, and minimal. Its purpose is to host Kubernetes clusters, so it is tightly integrated with Kubernetes.
- k3os - Linux distribution designed to remove as much OS maintenance as possible in a Kubernetes cluster. It is specifically designed to only have what is needed to run k3s.
- metalk8s - An opinionated Kubernetes distribution with a focus on long-term on-prem deployments.
- Photon OS - Open source, minimal Linux container host that is optimized for cloud-native applications, cloud platforms and VMware infrastructure but runs on ARM as well. Supports Docker (container runtime) as well as Mesons and Kubernetes (container orchestration).
- Pharos - Deploy and run Kubernetes workloads at any scale on any infrastructure.
-
Container Runtime Distributions
- Torizon - Linux-based software platform providing a preconfigured Yocto-based Linux distribution, bootloader, OTA service and Docker container runtime.
- CoreOS Container Linux - A container-focused OS that's designed for painless management in large clusters.
- Fedora CoreOS - Combines the best of CoreOS Container Linux and Fedora Atomic Host: Automatically updating, minimal, monolithic, container-focused operating system, designed for clusters but also operable standalone, optimized for Kubernetes but also great without it.
- Oryx Linux - Long-term maintenance oriented distribution providing a lightweight container runtime engine OryxCMD and Mender integration.
- OSv - OSv is the versatile modular unikernel designed to run unmodified Linux applications securely on micro-VMs in the cloud or on on-premise bare metal servers.
- CoreOS Container Linux - A container-focused OS that's designed for painless management in large clusters.
- Linux microPlatform - A minimal Linux distribution built using OpenEmbedded/Yocto providing OTA software updates and a container-based application runtime.
-
-
Host-based Intrusion Detection Systems
-
Container Runtime Distributions
- OSSEC - The World’s Most Widely Used Host-based Intrusion Detection System.
- SAMHAIN - Provides file integrity checking and log file monitoring/analysis, as well as rootkit detection, port monitoring, detection of rogue SUID executables, and hidden processes.
- afick - Another File Integrity Checker, monitors changes on the file system and detects intrusions.
- Open Source Tripwire - Security and data integrity tool for monitoring and alerting on file & directory changes.
- AIDE - Advanced Intrusion Detection Environment, a file and directory integrity checker.
-
-
Hypervisors
-
Container Runtime Distributions
- ACRN - A flexible, lightweight reference hypervisor, built with real-time and safety-criticality in mind, optimized to streamline embedded development through an open source platform (type 1, bare metal).
- Jailhouse - Linux-based partitioning hypervisor.
- L4Re Runtime Environment - Operating system framework built on top of the Fiasco microkernel and providing user-level infrastructure that includes services (program loading, memory management, virtual machine management, etc.).
- RTS Hypervisor - (type 1, bare metal).
- Xen Project Hypervisor - (type 1, bare metal).
- Cross-OS Hypervisor - Hypervisor used in the military domain (type 1, bare metal).
- LxWin - (type 1, bare metal).
- LynxSecure - Least privilege real-time separation kernel hypervisor (type 1, bare metal).
- QNX Hypervisor - (type 1, bare metal).
- RTS Hypervisor - (type 1, bare metal).
- Crudible Embedded Hypervisor - Hypervisor for defense systems (type 1, bare metal).
-
-
Init systems
-
Container Runtime Distributions
- upstart - Event-based init system.
- dumb-init - A minimal init system for Linux containers.
- finit - Fast init for Linux systems.
- minit - A small yet feature-complete init.
- OpenRC - Dependency-based init system that works with the system-provided init program.
- systemd - The systemd System and Service Manager.
- finit - Fast init for Linux systems.
- minit - A small yet feature-complete init.
- runit - A UNIX init scheme with service supervision.
-
-
IoT platform integrations
-
Container Runtime Distributions
-
-
Kernel modules
-
Container Runtime Distributions
- AppArmor - Linux Security Module that provides MAC style security extension for the Linux kernel.
- LoadPin - Linux Security Module that ensures all kernel-loaded files (modules, firmware, etc) all originate from the same filesystem, with the expectation that such a filesystem is backed by a read-only device.
- Yama - Linux Security Module that collects system-wide DAC security protections that are not handled by the core kernel itself.
- SELinux - Linux Security Module.
- SMACK - Linux Security Module providing mandatory access control that includes simplicity in its primary design goals.
- TOMOYO - Linux Security Module adding name-based MAC to the Linux kernel.
-
-
Kubernetes
-
Kubernetes Edge Computing Platforms
-
Container Runtime Distributions
- Baetyl - Baetyl, extend cloud computing, data and service seamlessly to edge devices.
-
-
OTA software updates
-
Container Runtime Distributions
- Memfault OTA Firmware Updates - OTA Update management for devices running any MCU RTOS, Android or Linux.
- Mender - Open source client-server update manager.
- RAUC - Lightweight update client that runs on your Embedded Linux device and reliably controls the procedure of updating your device with a new firmware revision.
- libostree - Both a shared library and suite of command line tools that combines a "git-like" model for committing and downloading bootable filesystem trees, along with a layer for deploying them and managing the bootloader configuration.
-
-
Process control systems
-
Container Runtime Distributions
- M/Monit - Can monitor and manage distributed computer systems (including their processes), conduct automatic maintenance and repair and execute meaningful causal actions in error situations.
- s6 - Suite of programs to allow process supervision (a.k.a service supervision).
- daemontools - Collection of tools for managing services.
- Supervisor - A client/server system that allows its users to monitor and control a number of processes.
- watchdogd - Advanced System & Process Supervisor for (embedded) Linux.
- daemontools - Collection of tools for managing services.
-
-
SSH servers
-
Container Runtime Distributions
- dropbear - A relatively small SSH server and client particularly useful for "embedded"-type Linux.
- TinySSH - Minimalistic SSH server which implements only a subset of SSHv2 features.
- wolfSSH - Lightweight SSHv2 server library written in ANSI C and targeted for embedded, RTOS, and resource-constrained environments.
- sshd - Popular OpenSSH server.
-
-
Web servers
-
Container Runtime Distributions
- Barracuda - Optimized for deeply embedded devices in remote-monitoring and control-management applications.
- lighttpd - Designed and optimized for high performance environments and for every server that is suffering load problems.
- nginx - Web server and reverse proxy server with a strong focus on high concurrency, performance and low memory usage.
- Cherokee - .
- Hiawatha - An advanced and secure webserver for Unix.
- Mongoose - Embedded web server with a Web UI builder. Provides event-driven non-blocking APIs for TCP, UDP, HTTP, WebSocket, MQTT, and other protocols.
- nostromo - nhttpd is a simple, fast and secure HTTP server.
- sthttpd - A simple, small, portable, fast, and secure HTTP server.
- Monkey - Monkey is a lightweight and scalable Web Server with a strong focus on Embedded devices.
- nostromo - nhttpd is a simple, fast and secure HTTP server.
- Monkey - Monkey is a lightweight and scalable Web Server with a strong focus on Embedded devices.
-
-
Books
-
System design
- Embedded Linux System Design and Development - [Book website](https://www.crcpress.com/Embedded-Linux-System-Design-and-Development/Raghavan-Lad-Neelakandan/p/book/9780849340581).
- Building Embedded Linux Systems - [Book website](https://www.oreilly.com/library/view/building-embedded-linux/9780596529680/).
- Embedded Linux Primer - [Book website](http://www.embeddedlinuxprimer.com/).
- Pro Linux Embedded Systems
- Linux for Embedded and Real-time Applications
- Pro Linux Embedded Systems
-
System programming
- Advanced Programming in the UNIX Environment
- The Linux Programming Interface - [Book website](https://nostarch.com/tlpi), [free only version](http://man7.org/tlpi/).
- Linux Debugging and Performance Tuning: Tips and Tricks
- Advanced Programming in the UNIX Environment
- Linux System Programming
-
Device driver development
- Essential Linux Device Drivers - [book website](https://www.elinuxdd.com/).
- Linux Device Drivers - [book website](http://shop.oreilly.com/product/9780596005900.do), [free only version](https://lwn.net/Kernel/LDD3/).
- Linux Device Drivers Development: Develop customized drivers for embedded Linux
-
Kernel development
-
-
Presentations
-
Device driver development
- slides - 4F9fEYmf15s)
- slides - pLrL6oxnDyb7IvnNOOBur7z_8tE)
- slides
- slides
- slides
- slides
- slides
- slides
- slides
- slides
- slides
- slides
- slides
- slides
- video playlist
- video playlist
- video playlist
- video playlist
- video playlist
- video playlist
- slides - pLrL6qThA7SAbhVfuMbjZsJX1CY)
- video playlist
- video playlist
- video playlist
- video playlist
- video playlist
- video playlist
- video playlist
- slides
- slides
-
-
Trainings
-
System
- Mastering embedded Linux (2net)
- Embedded Linux Trainging (bootlin) - Free slides and lab material, paid sessions.
- Embedded Android (2net)
- Embedded Android + Automotive (2net)
-
Build systems
- Embedded Linux development with Buildroot training (bootlin) - Free slides and lab material, paid sessions.
- Yocto Project and OpenEmbedded development training (bootlin) - Free slides and lab material, paid sessions.
- Mastering Yocto Project (2net)
-
System programming
-
Kernel and device driver development
- Embedded Linux device drivers (2net)
- Linux kernel and driver development training (bootlin) - Free slides and lab material, paid sessions.
-
Misc
- Displaying and rendering graphics with Linux (bootlin) - Free slides and lab material, paid sessions.
-
-
Related awesome lists
-
Zero configuration networking
-
Container Runtime Distributions
- Avahi - Service Discovery for Linux using mDNS/DNS-SD.
- Avahi - Service Discovery for Linux using mDNS/DNS-SD.
- JmDNS - Java implementation of multi-cast DNS and can be used for service registration and discovery in local area networks.
- JmDNS - Java implementation of multi-cast DNS and can be used for service registration and discovery in local area networks.
-
-
Bootloaders
- RedBoot - Complete bootstrap environment for embedded systems.
- U-Boot - The Universal Bootloader.
- coreboot - Extended firmware platform that delivers a lightning fast and secure boot experience on modern computers and embedded systems.
- RedBoot - Complete bootstrap environment for embedded systems.
- barebox - A bootloader (initially named U-Boot v2) designed for embedded systems.
- libreboot - coreboot distribution with proprietary software removed.
-
Platforms
-
Container Runtime Distributions
-
Categories
Distributions
31
Presentations
30
Build systems
16
Books
15
Hypervisors
11
Web servers
11
Trainings
11
Init systems
9
Cloud Provider Integration
8
Bootloaders
6
Process control systems
6
Kernel modules
6
Related awesome lists
5
Host-based Intrusion Detection Systems
5
Display Servers
5
OTA software updates
4
Zero configuration networking
4
Container runtimes
4
SSH servers
4
Container orchestration systems
4
Kubernetes
3
Databases
2
IoT platform integrations
1
Platforms
1
Kubernetes Edge Computing Platforms
1
License
1
Cloud Infrastructure
1
Sub Categories
Keywords
kubernetes
3
c
3
awesome-list
3
iot
3
linux
3
containers
2
k8s
2
docker
2
edge-ai
2
init
2
security-tools
1
sha1
1
tripwire
1
edge-computing
1
edge-intelligence
1
emulation
1
fog-computing
1
lightweight-framework
1
serveless
1
simulation
1
simulators
1
daemon
1
cluster
1
cncf
1
go
1
minikube
1
docker-container
1
dumb
1
pid1
1
unix
1
services
1
system
1
systemd
1
oci
1
hypervisor
1
real-time
1
change-detection
1
md5
1
kubernetes-installation
1
kubernetes-monitoring
1
kubernetes-setup
1
on-prem
1
on-premise
1
on-premises
1
auto-ml
1
edge
1
edge-deep-learning
1
edge-machine-learning
1
efficient-architectures
1
embedded-machine-learning
1