30 open-source projects similar to cirosantilli/x86-bare-metal-examples, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an instructional kernel for x86 and RISC-V architectures, featuring a virtual memory manager and support for symmetric multiprocessing. The system is designed to demonstrate core OS principles through a simplified re-implementation of Unix Version 6. It provides a controlled environment for studying system calls, trap handling, and process lifecycles. Its capability surface covers process management, including scheduling and context switching, and memory management via page tables for
30dayMakeOS is an educational hobby operating system project designed for the x86 architecture. It implements a monolithic kernel and a custom bootloader that transitions the CPU from real mode to 32-bit protected mode to enable flat memory addressing. The project focuses on low-level system development, featuring a custom graphics driver for direct pixel-buffer rendering and window management without an existing operating system. It includes an x86 bootloader that loads the kernel from disk into memory. The system covers core kernel capabilities including round-robin task scheduling for pro
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
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
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
Kernel is an educational hobby operating system and low-level systems programming project written in Rust. Designed for students and hobbyists, the project provides a minimalist environment to explore computer architecture, CPU design, and kernel development directly on hardware without relying on a standard library or underlying operating system. The implementation features a freestanding language runtime and a custom target specification that replaces standard library components for bare-metal execution. It includes a multiboot bootloader interface to parse early-boot hardware handoff stat
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
HyperDbg is a hardware-assisted kernel-mode debugging platform that leverages virtualization to monitor and control system execution. By utilizing hypervisor-level primitives, it enables deep system analysis and instrumentation without relying on standard operating system debugging interfaces. The framework provides a comprehensive environment for inspecting both kernel and user-mode processes, allowing for granular control over execution flow and system state. The project distinguishes itself through a transparent debugging layer designed to remain invisible to the target environment. It emp
Mezzano is a self-hosted operating system written entirely in Common Lisp. It employs a language-integrated kernel architecture where both the kernel and user-space applications execute within a single, unified high-level language runtime. The system is designed for both bare-metal environments, booting from physical external media, and as a guest operating system within virtual machine software. It implements symmetric multiprocessing to distribute computational workloads across multiple CPU cores. The environment includes capabilities for automated memory recovery via generational garbage
embedded-notes is a collection of technical study guides and development notes focused on embedded Linux, Linux kernel internals, and C programming. It serves as a reference for embedded systems development and a preparation resource for technical interviews in the field. The project provides detailed documentation on writing device drivers, managing virtual memory, and understanding kernel internals. It also includes guides on IoT network protocols, such as MQTT and TCP/IP, and outlines the architectural details of chip architectures and hardware peripherals. The material covers a broad sur
ToaruOS is an independent operating system built from the ground up without external dependencies. It features a custom x86-64 kernel that supports symmetric multiprocessing and paging, paired with a graphical windowing system and a dedicated bytecode interpreter for application logic. The system distinguishes itself by integrating an embedded Python environment for system-level development and a custom graphical interface that handles its own window composition and text rendering. It includes a compatibility layer for third-party application support and a system package manager for handling
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
seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b
Arpl is a bootloader manager and custom kernel loader for network attached storage devices. It provides a network boot environment to automate the fetching, flashing, and installation of modified operating systems and kernels onto hardware storage. The project distinguishes itself through a remote management suite that exposes bootloader controls via a web browser, secure shell connection, or local terminal. It utilizes RSS feeds to automate the retrieval of the latest system images and version metadata for online updates. The system handles hardware boot configuration by mapping network int
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
This project is an educational framework and toolkit designed for developing and testing operating system kernels. It provides a structured environment for implementing fundamental system primitives, including virtual memory management, preemptive process scheduling, and filesystem organization, using Rust and C. The framework is specifically oriented toward RISC-V and x86 architectures, serving as a laboratory for learning how to build core system software from the ground up. The project distinguishes itself by supporting both bare-metal deployment and hardware emulation, allowing developers
napi-rs is a framework and toolkit for building high-performance native extensions for Node.js using Rust. It functions as a bridge between Rust and JavaScript runtimes, enabling the conversion of data types and the execution of native functions within a JavaScript environment. The project provides a native binary compiler and a cross-platform module orchestrator to automate the compilation and publishing of packages across multiple operating systems and architectures. It generates corresponding JavaScript type definitions and platform-specific binaries to ensure consistent installation. The
This project is a pure-Rust bootloader and firmware loader designed for x86 operating system development. It initializes bare-metal hardware and loads compiled operating system kernels from both legacy BIOS and modern UEFI firmware environments into a running state. The software utilizes a dual-firmware boot architecture and a pure-rust low-level runtime to handle hardware initialization and memory management without relying on standard library runtimes. It provides automated disk image packaging to combine compiled kernels and bootloader binaries into ready-to-boot FAT-formatted disk images
Scala Native is an ahead-of-time compiler that transforms Scala source code into standalone native binaries for direct execution on hardware. It provides a native binary toolchain designed to eliminate virtual machine warm-up times and ensure instant startup by compiling code into optimized executables. The project features a C interoperability interface and foreign function interface that map native C headers to language objects, allowing for the direct execution of external libraries. It includes a low-level memory manager that supports direct pointer manipulation and the use of structs for
LiteX is an FPGA SoC development suite and SoC builder framework used to programmatically design system-on-chips. It provides a hardware description toolchain that uses a scriptable framework to define hardware layouts and automate the generation of hardware description language code. The project distinguishes itself by orchestrating multiple vendor and open-source toolchains to synthesize digital logic and generate deployable bitstreams. It supports multi-language logic integration, allowing disparate hardware description languages to be combined into a single project. The framework covers
MAME is a vintage hardware emulation platform designed to recreate the circuitry of arcade games, computers, and consoles to run original software on modern devices. It functions as a retro gaming preservation framework for managing, verifying, and archiving ROM sets and disk images to ensure long-term software accessibility. The project features a system debugging tool for inspecting emulated memory, CPU registers, and execution flow via breakpoints and disassembly. It also includes a Lua-based automation layer that exposes core system state and hardware controls for custom behavior and anal
MicroPython is a lean implementation of Python 3 optimized to run on microcontrollers and other resource-constrained systems. It serves as a cross-platform embedded runtime and hardware abstraction layer, providing a firmware framework that maps high-level software commands to specific microcontroller registers across diverse processor architectures. The project functions as an embedded language interpreter that enables rapid prototyping on hardware through an interactive read-eval-print loop. It supports a wide range of target environments, including ARM, ESP32, STM32, RISC-V, and WebAssembl
GEF is a Python-based extension for GDB that serves as a framework for binary analysis, exploit development, and low-level debugging. It functions as a dynamic analysis extension designed to assist in reverse engineering workflows and malware analysis by enhancing the debugger's ability to inspect process state and memory. The project is distinguished by its specialized heap analysis tools, which allow for the inspection of glibc heap arenas, bins, and chunks to detect memory corruption. It also provides a dedicated toolkit for exploit development, including cyclic pattern generation for offs
Asterinas is a memory-safe operating system kernel designed to prevent data races and memory corruption. It functions as a Linux-ABI compatible kernel, enabling the execution of existing Linux binaries and container workloads while providing a declarative operating system distribution model. The project distinguishes itself by acting as a virtual machine container host and a confidential computing guest OS, allowing it to run within hardware-isolated Trusted Execution Environments such as Intel TDX. It implements a minimal trusted computing base by isolating unsafe low-level operations and se
rpi4-osdev is a project for bare metal operating system development targeting the Raspberry Pi 4. It focuses on creating a custom operating system that runs directly on the hardware without an underlying kernel or abstraction layer. The project provides a codebase and instructional guide for developing a low-level system from scratch. This process involves transitioning from early boot code to kernel execution on the ARM64 architecture. The technical scope covers embedded system bootstrapping and low-level hardware interfacing. This includes managing memory-mapped I/O, physical address mappi
This project is a tutorial for developing a custom bare metal operating system specifically for the Raspberry Pi 4. It provides the guidance and resources necessary to write software that interacts directly with hardware without the use of a pre-existing kernel. The project centers on an ARM64 cross-compilation toolchain and a build pipeline that transforms source code into raw binary images. It utilizes linker scripts to define physical memory addresses and section placements, ensuring the resulting binary loads at the correct hardware entry point. The codebase covers direct hardware interf
Limine is a multiprotocol operating system bootloader that bridges low-level hardware initialization and system software across legacy BIOS and modern UEFI firmware environments. It executes directly on bare-metal hardware without an underlying operating system kernel or standard C library, parsing storage media and filesystems during the early boot sequence before OS drivers load. The software targets diverse processor architectures including x86, ARM, RISC-V, and LoongArch through discrete target binaries built from shared source code. It reads files directly from FAT and ISO9660 storage f
This project is an educational operating system kernel designed to demonstrate the fundamental architectural principles of memory paging and process management. It is implemented as a minimal kernel that serves as a practical reference for building a functioning system from the ground up. The implementation features a preemptive multitasking kernel that switches execution contexts between threads to share a single CPU. It includes an x86 virtual memory manager that uses paging to map virtual addresses to physical memory and isolate processes. The system covers low-level hardware interfacing
smoltcp is a standalone TCP/IP network stack written in Rust, designed specifically for bare-metal and embedded systems. It provides a memory-safe implementation of the internet protocol suite that operates without requiring dynamic heap allocation. The project is distinguished by its heap-less memory management, using fixed-size buffers and manually allocated memory to ensure deterministic performance. It employs zero-copy packet processing and an interface-based hardware abstraction to decouple the network stack from physical hardware. The stack covers a broad range of networking capabilit
Holoiso is a tool for building custom, bootable operating system images based on SteamOS 3 for installation on non-Steam Deck hardware. It uses a Linux Archiso base to generate installable disk images that replicate a handheld gaming experience on generic devices. The project enables the creation of a gaming-oriented distribution featuring a gamepad-driven interface and the ability to toggle between a standard desktop environment and a gaming session. It includes high-performance shaders for system-wide image upscaling to balance visual quality and frame rates across the gaming interface. Th