Operating systems and kernel development projects including desktop environments, embedded platforms, and low-level system programming tools for custom builds.
SerenityOS is a complete, self-hosted desktop operating system built from the kernel up. It features a monolithic kernel architecture that manages system services, hardware drivers, and networking within a single address space. The system provides a full computing environment, including a proprietary windowing system and a suite of native desktop applications, all while maintaining a POSIX-compliant interface for standard system programming. The project is distinguished by its integrated development workflow, which relies on a cross-compilation build pipeline to generate system images from host machines. Developers iterate on low-level changes within a virtualization-based environment that simulates physical hardware, allowing for isolated testing and debugging of the kernel and user-space components. To support a broader software ecosystem, the system includes an integrated porting layer that adapts and compiles third-party open source applications to run natively. This infrastructure maps external dependencies to local libraries, enabling the execution of standard software within the custom environment. The build process is managed through a collection of scripts that orchestrate the compilation of the entire operating system and its associated software ports.
A complete, self-hosted desktop operating system with a monolithic kernel built from scratch.
The Linux kernel is a monolithic operating system core that manages hardware resources, memory, and process scheduling across diverse computing architectures. It provides a standardized, POSIX-compliant environment for application execution while maintaining a modular driver framework that allows for the dynamic loading and removal of hardware interfaces. The project is distinguished by its high-performance concurrency toolkit, which utilizes lockless synchronization primitives and read-copy-update mechanisms to manage shared data access in multi-core environments. It incorporates a comprehensive kernel tracing and instrumentation suite that enables non-intrusive monitoring of system events, function execution, and latency metrics. Furthermore, the kernel enforces strict interface stability guarantees and lifecycle tracking to ensure backward compatibility for dependent applications. Beyond its core identity, the system includes extensive capabilities for hardware abstraction, network protocol implementation, and security policy enforcement. It supports specialized engineering requirements through power state management, embedded system optimizations, and firmware-based booting processes. The architecture also features robust diagnostic frameworks for memory analysis, system execution verification, and the validation of concurrent programming models. The source repository provides a complete build system for transforming code into executable binary images, including tools for kernel feature selection and configuration optimization to tailor the output for specific hardware requirements.
The industry-standard monolithic operating system kernel for diverse computing architectures.
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 processors from real to protected mode, and the manual configuration of global descriptor tables for memory segmentation. Users learn to manage hardware events and software exceptions through interrupt descriptor table handling, as well as how to communicate with peripherals and render text via direct memory-mapped input and output. The materials emphasize the internal design of processors and memory management, offering a technical reference for those studying computer architecture. The content is organized as a step-by-step learning resource, utilizing a combination of C and assembly language to demonstrate how to maintain system control without the abstraction layer of a host operating system.
A structured educational curriculum for learning kernel development and low-level systems programming.
Redox is a POSIX-compliant, microkernel-based operating system written entirely in Rust. By utilizing a memory-safe language for the kernel and all system components, the project eliminates common vulnerabilities such as buffer overflows and use-after-free errors. Its architecture relies on a minimal kernel that manages only essential hardware and process isolation, delegating all other system services to unprivileged user-space processes. The system distinguishes itself through a modular design where hardware drivers and system services run as independent user-space daemons, allowing them to be updated or restarted without a full system reboot. Communication between these components is handled through structured message-passing rather than shared memory, ensuring strict isolation. Furthermore, Redox employs a unique scheme-based resource access model, where hardware, services, and system resources are exposed as file-like objects accessed through a unified URI-based naming convention. The operating system provides a comprehensive environment for general-purpose computing and development, including a standard library that enables the execution of existing Unix-like software with minimal modification. It supports multiple CPU architectures and includes a robust suite of tools for build automation, package management, and system image generation. These utilities allow developers to cross-compile software, manage dependencies, and test system variants within virtualized environments. The project is maintained as an open-source repository with extensive documentation and tooling to support custom kernel builds and system-level development.
A modern, POSIX-compliant microkernel-based operating system written entirely in memory-safe Rust.
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 flows, the configuration of memory layouts through linker scripting, and the direct manipulation of processor registers. The curriculum encompasses the architectural requirements for system-level development, such as transitioning processors into protected memory modes and establishing hardware-assisted multitasking. It also details the implementation of interrupt-driven communication, enabling the kernel to respond to asynchronous peripheral signals and manage inter-processor events. The repository includes instructional guides on debugging techniques for low-level environments and provides a structured approach to constructing functional operating system components. All documentation is provided as a set of technical references designed to facilitate the study of hardware-software interaction.
A comprehensive technical reference and guide for implementing core kernel components from scratch.
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 namespaces for device drivers and memory maps, the project demonstrates how to maintain clean code separation while interfacing directly with system registers and peripherals. The material covers the fundamental requirements for bare-metal development, including the creation of entry points for system initialization, static linking of kernel binaries, and the direct mapping of physical memory. These guides are designed to assist in the construction of custom firmware and operating system subsystems through low-level programming techniques.
An educational resource for developing bare-metal operating systems and kernels on Raspberry Pi.
This project is a comprehensive educational framework designed to guide learners through the complexities of systems engineering and low-level software development. It provides structured learning paths that integrate hardware simulation, source code analysis, and project-based exercises to help developers master the foundational concepts of computer architecture, operating systems, and firmware design. The curriculum distinguishes itself by emphasizing direct interaction with system internals, requiring learners to examine and modify existing open-source kernel and driver implementations. By utilizing emulator-based hardware abstraction, the project allows for safe experimentation with kernel development, memory management, and context switching without the need for dedicated physical hardware. It also bridges traditional and modern development practices by exploring both high-performance C programming and memory-safe systems integration using Rust. The scope of the material covers a broad technical surface, including assembly language programming, microcontroller firmware design, and the construction of custom operating system kernels. Learners are guided through the entire lifecycle of system software, from reading hardware schematics and managing device registers to debugging complex kernel-level operations and contributing to established open-source projects.
A comprehensive educational framework for systems engineering and kernel development.
This project is a monolithic operating system kernel designed to serve as the foundational software layer for diverse computing architectures and embedded platforms. It manages core system services, including processor scheduling, memory allocation, and hardware resource distribution, to facilitate communication between user applications and physical hardware. The kernel utilizes a hardware abstraction layer and platform-specific device trees to ensure consistent operation across a wide variety of processors and specialized computing devices. It supports dynamic functionality through loadable kernel modules and employs interrupt-driven device management to handle peripheral data requests asynchronously. The system provides comprehensive capabilities for managing hardware peripherals and system resources, ensuring stability through virtual memory paging and process isolation. It is specifically optimized for embedded systems development, providing the necessary low-level drivers and interfaces to bridge software requests with external sensors and displays.
A monolithic kernel optimized for Raspberry Pi hardware, serving as a foundational software layer.
Explore further