All Projects → fkromer → Awesome Embedded Linux

fkromer / Awesome Embedded Linux

Licence: other
A curated list of awesome Embedded Linux resources.

Projects that are alternatives of or similar to Awesome Embedded Linux

Embedio
A tiny, cross-platform, module based web server for .NET
Stars: ✭ 1,007 (+1578.33%)
Mutual labels:  embedded
Cocoos
A cooperative operating system based on coroutines
Stars: ✭ 50 (-16.67%)
Mutual labels:  embedded
Qtwebserver
Qt based web application server
Stars: ✭ 56 (-6.67%)
Mutual labels:  embedded
Utensor cgen
C++ code generator for uTensor https://utensor-cgen.readthedocs.io/en/latest/
Stars: ✭ 42 (-30%)
Mutual labels:  embedded
Debootstick
Generate a bootable live image from any Debian/Ubuntu filesystem tree.
Stars: ✭ 48 (-20%)
Mutual labels:  embedded
Wasmjit
Small Embeddable WebAssembly Runtime
Stars: ✭ 1,063 (+1671.67%)
Mutual labels:  embedded
Exein Openwrt Public
Openwrt 18.06.5 featured with the Exein's security framework
Stars: ✭ 36 (-40%)
Mutual labels:  embedded
Gobusybox
Tools for compiling many Go commands into one binary to save space. Builds are supported in vendor-based Go, module-based Go, and bazel with Starlark.
Stars: ✭ 60 (+0%)
Mutual labels:  embedded
Punchboot
Punchboot
Stars: ✭ 49 (-18.33%)
Mutual labels:  embedded
Gdbstub
A simple, dependency-free GDB stub that can be easily dropped in to your project.
Stars: ✭ 56 (-6.67%)
Mutual labels:  embedded
Wyhash Rs
wyhash fast portable non-cryptographic hashing algorithm and random number generator in Rust
Stars: ✭ 44 (-26.67%)
Mutual labels:  embedded
Embedded Device Lab
embedded-device-lab是一个利用qemu模拟真实世界中物联网漏洞的测试环境。由于物联网架构的特殊性,调试分析漏洞通常需要使用qemu模拟执行不同架构的可执行文件。而各种搭建环境,交叉编译是一件费事费力,令人忧伤的工作。 embedded-device-lab利用docker-compose,将各种漏洞调试环境一键化。简单使用两条命令,就可以直接使用gdb或者IDA动态分析相关漏洞。
Stars: ✭ 48 (-20%)
Mutual labels:  embedded
Mylinux
myLinux is a small UNIX like OS for embedded systems based on Westermo NetBox
Stars: ✭ 53 (-11.67%)
Mutual labels:  embedded
Memfault Firmware Sdk
Memfault Firmware SDK for embedded systems. More information at https://docs.memfault.com.
Stars: ✭ 42 (-30%)
Mutual labels:  embedded
Reed Solomon
Reed Solomon BCH encoder and decoder
Stars: ✭ 57 (-5%)
Mutual labels:  embedded
Robot Software
CVRA monorepo - All software running on our bots lives here
Stars: ✭ 39 (-35%)
Mutual labels:  embedded
Webfsd
A simple HTTP server for mostly static content written in C
Stars: ✭ 50 (-16.67%)
Mutual labels:  embedded
Spiffs
Wear-leveled SPI flash file system for embedded devices
Stars: ✭ 1,105 (+1741.67%)
Mutual labels:  embedded
Couchbase Lite C
C language bindings for the Couchbase Lite embedded NoSQL database engine
Stars: ✭ 58 (-3.33%)
Mutual labels:  embedded
Luos
Luos technology main lib
Stars: ✭ 55 (-8.33%)
Mutual labels:  embedded

Awesome Embedded Linux Awesome

Awesome Embedded Linux

A curated list of awesome Embedded Linux resources.

Embedded Linux: Operating systems based on the Linux kernel used in embedded systems such as consumer electronics, in-vehicle infotainment, networking equipment, machine control, industrial automation, navigation equipment, mobile devices, medical instruments, etc.

Contents

Bootloaders

  • barebox - A bootloader (initially named U-Boot v2) designed for embedded systems.
  • coreboot - Extended firmware platform that delivers a lightning fast and secure boot experience on modern computers and embedded systems.
  • libreboot - coreboot distribution with proprietary software removed.
  • RedBoot - Complete bootstrap environment for embedded systems.
  • U-Boot - The Universal Bootloader.

Build systems

Container runtimes

  • containerd - An industry-standard container runtime with an emphasis on simplicity, robustness and portability.
  • cri-o - Lightweight Container Runtime for Kubernetes.
  • Docker Engine - The Industry-Leading Container Runtime.
  • frakti - The hypervisor-based container runtime for Kubernetes.
  • runC - CLI tool for spawning and running containers according to the OCI specification.

Container orchestration systems

  • Kubernetes - System for automating deployment, scaling, and management of containerized applications.
  • Nomad - Easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications.
  • okd - OKD provides a complete open source container application platform which powers OpenShift (Kubernetes Distribution).
  • OpenShift - A hybrid cloud, enterprise Kubernetes platform to build and deliver better applications faster. Can be run on ARM as well (Kubernetes Distribution).
  • Rancher - From datacenter to cloud to the edge, Rancher lets you deliver Kubernetes-as-a-Service (Kubernetes Distribution).

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

  • 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.
  • AWS Edge
    • IoT Core - Easily and securely connect devices to the cloud. Reliably scale to billions of devices and trillions of messages.
    • IoT Device Management - Register, organize, monitor, and remotely manage connected devices at scale.
    • 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.
    • Sagemaker Neo - Train models once, run anywhere with up to 2x performance improvement.
    • IoT Sitewise - Easily collect, organize and analyze data from industrial equipment at scale.
    • Wavelength - Deliver ultra-low latency applications for 5G devices.

Databases

  • MongoDB Mobile - NoSQL MongoDB as embedded database for embedded devices (embedded, document-oriented).
  • Raima Database Manager - Embedded, cross-platform, small-footprint, in-memory database developed for the IoT and the edge market (embedded, SQL).
  • SQLite - Defacto standard embedded SQL database for mobile phones (embedded, SQL).

Display Servers

  • Enlightenment - (wayland, BSD).
  • Mazecompositor - A 3D qtwayland compositor (wayland, MIT).
  • Mir - The fast, open and secure display server for any device (wayland, GPL).
  • SWAY - Tiling Wayland compositor (wayland, MIT).
  • Weston - Wayland project reference compositor (wayland, MIT).

Distributions

Traditional Distributions

Container Orchestration Distributions

  • 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).
  • 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.
  • Pharos - Deploy and run Kubernetes workloads at any scale on any infrastructure.

Container Runtime Distributions

  • BalenaOS (formerly ResinOS) - Operating System tailored for containers, designed for reliability, proven in production. Meant to be used with OpenBalena to deploy and manage connected devices and with BalenaCloud for deploying IoT applications.
  • 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.
  • Linux microPlatform - A minimal Linux distribution built using OpenEmbedded/Yocto providing OTA software updates and a container-based application runtime.
  • 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.
  • RancherOS - A lightweight, secure Linux distribution, built from containers to run containers well.
  • Torizon - Linux-based software platform providing a preconfigured Yocto-based Linux distribution, bootloader, OTA service and Docker container runtime.

Host-based Intrusion Detection Systems

  • AIDE - Advanced Intrusion Detection Environment, a file and directory integrity checker.
  • afick - Another File Integrity Checker, monitors changes on the file system and detects intrusions.
  • chrootkit - Checks for rootkits.
  • Open Source Tripwire - Security and data integrity tool for monitoring and alerting on file & directory changes.
  • OSSEC - The World’s Most Widely Used Host-based Intrusion Detection System.
  • rkhunter - A rootkit hunter.
  • 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.

Hypervisors

  • 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).
  • Cross-OS Hypervisor - Hypervisor used in the military domain (type 1, bare metal).
  • Crudible Embedded Hypervisor - Hypervisor for defense systems (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.).
  • LxWin - (type 1, bare metal).
  • LynxSecure - Least privilege real-time separation kernel hypervisor (type 1, bare metal).
  • PikeOS - Currently (Jan 2019) the only hypervisor worldwide that holds a Common Criteria certification EAL 3+ for its separation performance (type 1, bare metal).
  • QNX Hypervisor - (type 1, bare metal).
  • RTS Hypervisor - (type 1, bare metal).
  • Xen Project Hypervisor - (type 1, bare metal).

Init systems

  • 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.
  • runit - A UNIX init scheme with service supervision.
  • systemd - The systemd System and Service Manager.
  • upstart - Event-based init system.

IoT platform integrations

2019/2020 there existed approx. 600 IoT platforms. "IoT" includes domains like healthcare, industry, etc.

Kernel patches

  • PREEMPT_RT patch - "Controlling a laser with Linux is crazy, but everyone in this room is crazy in his own way. So if you want to use Linux to control an industrial welding laser, I have no problem with you using PREEMPT_RT." -- Linus Torvalds.

Kernel modules

  • 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.
  • 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.
  • Yama - Linux Security Module that collects system-wide DAC security protections that are not handled by the core kernel itself.

Kubernetes

  • Akri - Akri lets you easily expose heterogeneous leaf devices (such as IP cameras and USB devices) as resources in a Kubernetes cluster, while also supporting the exposure of embedded hardware resources such as GPUs and FPGAs.
  • K3s - The certified Kubernetes distribution built for IoT & Edge computing.
  • microk8s - MicroK8s is a small, fast, single-package Kubernetes for developers, IoT and edge (Ubuntu core/server).
  • minikube - minikube implements a local Kubernetes cluster (Linux).

Kubernetes Edge Computing Platforms

  • Baetyl - Baetyl, extend cloud computing, data and service seamlessly to edge devices.
  • KubeEdge - KubeEdge is built upon Kubernetes and extends native containerized application orchestration and device management to hosts at the Edge.

OTA software updates

  • HERE OTA Connect - Over-the-air software updates for the automotive industry.
  • 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.
  • 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.

Platforms

Process control systems

  • daemontools - Collection of tools for managing services.
  • 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).
  • 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.

SSH servers

  • dropbear - A relatively small SSH server and client particularly useful for "embedded"-type Linux.
  • sshd - Popular OpenSSH server.
  • 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.

Web servers

  • Apache - httpd.
  • Barracuda - Optimized for deeply embedded devices in remote-monitoring and control-management applications.
  • Cherokee - .
  • Hiawatha - An advanced and secure webserver for Unix.
  • lighttpd - Designed and optimized for high performance environments and for every server that is suffering load problems.
  • Monkey - Monkey is a lightweight and scalable Web Server with a strong focus on Embedded devices.
  • nginx - Web server and reverse proxy server with a strong focus on high concurrency, performance and low memory usage.
  • nostromo - nhttpd is a simple, fast and secure HTTP server.
  • sthttpd - A simple, small, portable, fast, and secure HTTP server.

Zero configuration networking

  • 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.

Books

System design

System programming

Kernel development

Device driver development

Presentations

  • Embedded Linux Conference + OpenIoT Summit Europe 2018 slides / video playlist
  • Embedded Linux Conference + OpenIoT Summit North America 2018 video playlist
  • Embedded Linux Conference + OpenIoT Summit Europe 2017 video playlist
  • Embedded Linux Conference + OpenIoT Summit North America 2017 video playlist
  • Embedded Linux Conference + OpenIoT Summit Europe 2016 video playlist
  • Embedded Linux Conference Europe 2015 video playlist
  • Embedded Linux Conference North America 2015 video playlist
  • Embedded Linux Conference Europe 2014 slides
  • Embedded Linux Conference North America 2014 video playlist slides / video playlist
  • Embedded Linux Conference Europe 2013 slides / video playlist
  • Embedded Linux Conference North America 2013 video playlist
  • Embedded Linux Conference Europe 2012 slides
  • Embedded Linux Conference North America 2012 slides
  • Embedded Linux Conference Europe 2011 slides
  • Embedded Linux Conference North America 2011 slides
  • Embedded Linux Conference Europe 2010 slides
  • Embedded Linux Conference North America 2010 slides
  • Embedded Linux Conference Europe 2009 slides
  • Embedded Linux Conference North America 2009 slides
  • Embedded Linux Conference Europe 2008 slides
  • Embedded Linux Conference North America 2008 slides
  • Embedded Linux Conference Europe 2007 slides
  • Embedded Linux Conference North America 2007 slides
  • Embedded Linux Conference 2006 slides

Trainings

System

Build systems

System programming

Kernel and device driver development

Security

Misc

Related awesome lists

License

License: CC BY-NC-SA 4.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].