35 repository-uri
Tools and resources for developing software that executes directly on hardware without an operating system.
Distinguishing note: Focuses on hardware-level execution environments rather than general system administration or OS internals.
Explore 35 awesome GitHub repositories matching operating systems & systems programming · Bare Metal Development. Refine with filters or upvote what's useful.
This project is a technical reference and educational guide focused on the internal architecture of the Linux kernel. It serves as a low-level systems programming resource and documentation for operating system internals, detailing the implementation of core mechanisms within the kernel source code. The materials provide a detailed study of the Linux kernel, tracing behavior through actual C source and assembly. It specifically covers the progression from the bootloader and decompression to the final kernel entry point, alongside the management of hardware interrupts and symmetric multiproces
Traces the detailed execution flow from bootloader decompression and mode transitions to the final kernel entry point.
This project is an educational curriculum designed to teach the fundamentals of operating system development and low-level systems programming. It provides a structured sequence of lessons and code samples that guide users through building a functional kernel and bootloader from scratch, enabling a practical understanding of how software interacts directly with computer hardware. The repository distinguishes itself by focusing on the core mechanics of bare-metal execution. It covers the implementation of essential system components, including assembly-based bootloaders that transition process
Provides specialized code and documentation for building applications that run directly on hardware without an underlying operating system.
Crystal is a statically typed, compiled programming language designed for high performance and memory safety. It leverages an LLVM-based compiler to translate source code into optimized machine-executable binaries, while its type-inference-based static analysis enforces strict safety rules during the build process. The language distinguishes itself through a fiber-based concurrent runtime that manages lightweight execution units for asynchronous input and output without blocking the main process. It also features a powerful compile-time macro system that allows for the inspection and transfor
Enables development for embedded systems by disabling the standard library and providing direct hardware access.
This project is a freestanding kernel written in Rust that boots on x86 hardware without a standard library. It serves as a low-level system implementation focusing on the creation of a bare metal operating system. The system implements a bootable disk image toolchain that transforms source code into binaries compatible with a bootloader. It features a custom memory allocator for dynamic memory management and an x86 kernel implementation that includes paging, interrupt handling, and VGA text mode. The project covers several core capability areas, including low-level memory management through
Creates freestanding binaries that boot and execute directly on x86 hardware without an underlying operating system.
TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to resource-constrained microcontrollers and WebAssembly environments. It provides a bare-metal runtime environment that enables high-level code execution without the need for a traditional operating system, utilizing an LLVM-based backend to generate efficient machine instructions. The project distinguishes itself through aggressive optimization techniques tailored for small hardware, including a static memory allocation strategy and whole-program dead code elimination that significantly re
Provides a minimal bare-metal runtime environment for hardware initialization and task scheduling.
This project is an embedded C++ development kit and hardware abstraction layer that enables the Arduino programming environment to target ESP8266 WiFi microcontrollers. It provides a comprehensive framework for compiling and flashing code to microcontroller memory via serial or wireless interfaces. The system includes a specialized WiFi microcontroller framework for managing TCP/IP stacks and internet connectivity. It features a dedicated over-the-air firmware update system that allows software updates to be delivered to remote hardware without a physical cable connection. The kit covers emb
Implements a full TCP/IP protocol stack for wireless communication on bare-metal hardware.
This project is a tutorial and framework for building a low-level, bare-metal operating system from scratch using the Rust language. It focuses on ARMv8 kernel development specifically for the Raspberry Pi 3, providing the resources necessary to implement a monolithic kernel that runs directly on hardware without an underlying operating system. The project distinguishes itself by providing a complete embedded cross-compilation suite within a containerized environment to ensure consistent builds. It includes a dedicated kernel deployer that uses a serial interface and chainloader to load and b
Provides resources for troubleshooting code running directly on hardware using serial consoles and on-chip debuggers.
This project is a structured Rust programming curriculum and systems programming course designed to take learners from beginner to expert levels. It provides a comprehensive set of training materials focused on mastering the core syntax, idioms, and technical foundations of the Rust language. The project features a specialized language transition framework that maps concepts from C++, managed languages, and dynamic typing to Rust idioms. This allows developers from different ecosystems to translate architectural patterns and memory models into idiomatic Rust. The training covers a broad rang
Provides training on writing code for embedded systems and kernels in restricted environments without a standard library.
This project is an educational resource for developing bare-metal operating systems and kernels from scratch on Raspberry Pi hardware. It provides a structured guide to systems programming using the Rust language, focusing on the implementation of core kernel components that execute directly on ARM-based hardware without the support of an underlying operating system or standard library. The tutorials emphasize a modular architecture that separates hardware-independent kernel logic from processor-specific and board-specific configurations. By utilizing a hardware abstraction layer and distinct
Provides educational guides for building a kernel from scratch on ARM-based hardware using the Rust programming language.
This project is a bare-metal operating system developed for ARM64 architecture. It serves as a low-level implementation of kernel engineering, focusing on the fundamental construction of an OS from the hardware level up. The system is distinguished by its comprehensive approach to ARM64 processor control, featuring a red-black tree task scheduler and a hierarchical page table system for virtual memory management. It implements a sophisticated privilege model that handles transitions between kernel and user modes, ensuring process isolation through address space splitting and exception level m
Implements a complete bare-metal operating system developed specifically for the ARM64 architecture from the hardware level up.
This project is an educational resource and technical reference for building operating systems from scratch. It provides a comprehensive guide to mastering x86 architecture and implementing core kernel components by writing code that executes directly on hardware without the support of standard libraries or operating system abstractions. The materials focus on low-level systems engineering, teaching users how to interpret technical datasheets to manage hardware resources. It covers the fundamental mechanics of bare-metal programming, including the use of assembly language to define execution
Provides tools and resources for developing software that executes directly on hardware without an operating system.
Mongoose is an embedded networking library providing TCP/IP stacks, web server hosting, and IoT device connectivity. It enables microcontrollers and desktop systems to implement network protocols including HTTP, WebSocket, and MQTT. The project provides a bare-metal TCP/IP stack for environments without a native operating system and includes built-in TLS and ECC encryption to secure network traffic. It features a binary-embedded file system to serve web content directly from the executable and supports over-the-air firmware updates for managing device fleets. Additional capabilities cover as
Implements a standalone bare-metal TCP/IP stack for connectivity on hardware without an operating system.
Embassy is an asynchronous framework for microcontrollers that provides a runtime for cooperative multitasking. It enables the execution of multiple concurrent tasks to maximize energy efficiency and CPU usage, utilizing an async executor that puts the processor to sleep when idle. The framework includes a comprehensive set of embedded components, featuring a hardware abstraction layer for peripherals like GPIO, SPI, I2C, and UART, alongside a TCP/IP network stack and a USB device stack. It also provides a Bluetooth Low Energy host stack for wireless communication and a bootloader framework t
Implements an asynchronous TCP/IP stack providing Ethernet, IP, TCP, UDP, ICMP, and DHCP connectivity.
Acest proiect este un mediu de firmware bazat pe Lua pentru cipul WiFi ESP8266, oferind un interpretor Lua embedded și un framework de dezvoltare pentru hardware SoC WiFi. Acesta funcționează ca un wrapper bazat pe C în jurul SDK-ului non-OS Espressif, permițând executarea scripturilor asincrone pentru a gestiona comunicarea wireless și perifericele hardware. Mediul integrează un sistem de fișiere flash SPIFFS pentru stocarea scripturilor și datelor persistente direct pe memoria non-volatilă. Pentru a optimiza resursele hardware limitate, sistemul utilizează execuția flash execute-in-place, rulând constantele read-only și instrucțiunile direct din memoria flash pentru a conserva RAM-ul sistemului. Proiectul acoperă gestionarea conectivității wireless, implementarea serviciilor de rețea și maparea perifericelor hardware. Include instrumente pentru compilarea firmware-ului, compilarea scripturilor Lua în bytecode și generarea de imagini de sistem de fișiere pentru implementarea pe țintă.
Interfaces directly with a bare-metal non-OS SDK for low-level hardware control without a full operating system.
FreeRTOS is a real-time operating system for embedded devices that provides a kernel for predictable task execution. It utilizes priority-based preemptive scheduling and deterministic timing to manage simultaneous hardware tasks. The project includes a symmetric multiprocessing kernel that distributes processing workloads across multiple CPU cores using a shared memory architecture. It also provides a thread-safe TCP/IP networking stack for managing internet protocol traffic and IPv6 connectivity on embedded processors. The system incorporates an embedded memory manager with fixed-size alloc
Ships a thread-safe TCP/IP networking stack enabling internet protocol traffic and IPv6 connectivity on embedded processors.
This project is a structured tracing framework for Rust that serves as an async-aware instrumentation library and telemetry data collector. It provides a structured logging facade and the tools necessary to record, filter, and route event-based diagnostic data from both standard applications and embedded systems. The framework distinguishes itself through a core implementation that supports bare-metal and no-standard-library environments without requiring a dynamic memory allocator. It specifically handles the complexities of asynchronous workflows by propagating diagnostic contexts across fu
Supports instrumentation in embedded systems operating without a standard library or dynamic memory allocation.
This project consists of technical instructional guides and a structured computer science curriculum designed to teach the construction of a full computing stack from transistors up to a web browser. It provides a 12-week educational course that covers the fundamental domains of computer architecture and digital logic design. The curriculum is distinguished by its first-principles approach, guiding the learner through the engineering of CPUs, FPGAs, and PCBs using digital logic and hardware description languages. It includes specific syllabi for building a hardware design, a TCP/IP network st
Provides a technical implementation of a TCP/IP network stack layered over Ethernet hardware drivers.
dae este un instrument de rețea Linux de înaltă performanță care funcționează ca un proxy transparent eBPF. Acesta interceptează și redirecționează pachetele la nivel de kernel pentru a ruta traficul de internet pe baza domeniilor, adreselor IP și numelor de procese. Proiectul se distinge prin modificarea handshake-urilor TLS pentru a simula semnăturile browserelor, ceea ce previne detectarea traficului proxy de către server. De asemenea, implementează un gateway de traducere a adreselor de rețea full-cone pentru a menține conexiuni bidirecționale stabile și utilizează un selector de noduri bazat pe latență pentru a ruta automat traficul prin cele mai rapide noduri proxy disponibile. Capabilitățile extinse includ gestionarea proxy-ului multi-protocol, controlul avansat al traficului DNS pentru a preveni poluarea și filtrarea rețelei folosind baze de date geo-IP și liste de domenii. Sistemul optimizează în continuare performanța prin redirecționarea traficului non-proxied prin rutarea Layer 3 la nivel de kernel pentru a minimiza tranzițiile dintre kernel și spațiul utilizatorului.
Retrieves original domain names from proxied traffic in user space to bypass DNS pollution.
dperf is a high-performance network testing tool that generates massive multi-protocol traffic for benchmarking network devices and servers. It uses DPDK to bypass the kernel network stack, enabling line-rate packet generation and capture with zero-copy processing, and implements a full TCP/IP stack in user space to achieve millions of connections per second from a single server. The tool is designed for stress-testing Layer 4 load balancers and gateways, capable of simulating billions of concurrent TCP or UDP sessions and generating tens of millions of new connections per second. It supports
Implements a full TCP/IP protocol stack in user space to avoid kernel context switches.
IncludeOS este un sistem de operare de tip unikernel care împachetează codul aplicației împreună cu driverele de kernel necesare într-o singură imagine bootabilă. Acesta funcționează ca o mașină virtuală eficientă pentru cloud și un mediu de execuție serverless ușor, conceput pentru a minimiza amprenta de memorie și timpii de boot. Proiectul oferă un strat de compatibilitate Linux printr-o bibliotecă C, permițând aplicațiilor scrise pentru Linux să fie compilate și executate în mediul unikernel. De asemenea, servește drept framework pentru echipamente de rețea, util pentru construirea de firewall-uri și load balancer-e de înaltă performanță folosind stack-uri TCP/IP configurabile. Capabilitățile includ crearea de imagini de sistem minimale pentru deployment pe hypervizori precum KVM, Qemu și VMware, precum și securizarea dispozitivelor IoT prin prevenirea reconfigurării la runtime. Sistemul suportă pornirea rapidă a serviciilor pentru a optimiza cold start-urile serverless și utilizează un sistem de scheduling non-preemptiv pentru a menține o latență predictibilă.
Implements a configurable and modular TCP/IP stack tailored for minimal cloud services.