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
This project is a collection of minimal operating systems, bootloaders, and hardware drivers used to demonstrate low-level x86 system programming and hardware interfacing. It serves as a kernel development toolkit and a system programming lab designed for testing architecture concepts and hardware behavior within a system emulator.
The main features of cirosantilli/x86-bare-metal-examples are: Bare-Metal Runtimes, System Programming Labs, Hardware Exception Handlers, BIOS Firmware Interfaces, Boot Sector Loaders, Multi-Stage Loading, Bootable Image Generation, CPU Register Initialization.
Open-source alternatives to cirosantilli/x86-bare-metal-examples include: mit-pdos/xv6-public — xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an… yourtion/30daymakeos — 30dayMakeOS is an educational hobby operating system project designed for the x86 architecture. It implements a… s-matyukevich/raspberry-pi-os — This project is a bare-metal operating system developed for ARM64 architecture. It serves as a low-level… rust-embedded/rust-raspi3-os-tutorials — This project is a tutorial and framework for building a low-level, bare-metal operating system from scratch using the… tinygo-org/tinygo — TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to… intermezzos/kernel — Kernel is an educational hobby operating system and low-level systems programming project written in Rust. Designed…