For a course for understanding operating systems, the strongest matches are remzi-arpacidusseau/ostep-code (This is the companion code repository for the OSTEP), remzi-arpacidusseau/ostep-projects (This repository provides a comprehensive collection of hands-on C) and phil-opp/blog_os (blogos is a hands-on tutorial that builds a real). remzi-arpacidusseau/ostep-homework and pervognsen/bitwise round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore hands-on educational resources and practical coding projects for mastering core operating system design principles.
This project is a collection of educational simulations and code examples designed to illustrate core operating system concepts. It provides practical implementations of virtualization, concurrency, and persistence to demonstrate how an operating system manages hardware and software resources. The repository includes simulators for CPU scheduling, memory virtualization via paging and segmentation, and file system architectures. It provides specific models for virtual-to-physical address translation and the distribution of processor time across competing tasks. The simulations cover concurren
This is the companion code repository for the OSTEP textbook, providing hands-on simulations and projects in C that cover CPU scheduling, memory management, concurrency, and file systems—exactly the kind of practical OS education you are looking for.
This is a collection of academic programming projects that accompany an operating systems textbook, designed to teach core OS concepts through hands-on implementation. The projects span the major subsystems of an operating system, including process scheduling, memory management, file systems, and concurrency, with students building components from scratch in a simulated environment. The projects are structured to cover the full range of OS internals, from low-level kernel development to user-space system programming. Students implement lottery-based CPU schedulers, dynamic heap memory allocat
This repository provides a comprehensive collection of hands-on C programming projects that directly accompany an operating systems textbook, covering process scheduling, memory management, file systems, and concurrency through simulated implementations—exactly the project-based OS education this search targets.
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
blog_os is a hands-on tutorial that builds a real kernel in Rust from scratch, covering paging, interrupt handling, memory allocation, and task scheduling — exactly the kind of project-based OS learning resource you are looking for, though it uses Rust rather than C.
This project is a collection of operating systems courseware and educational programming exercises designed for studying operating system design and implementation. It provides a set of concept simulators for modeling CPU scheduling, memory virtualization, and concurrency mechanisms. The project includes specialized tools such as a concurrency simulation lab for experimenting with synchronization, a file system modeling suite for studying disk persistence and RAID configurations, and a process tree visualizer for displaying parent-child relationship hierarchies. The software covers broader c
This is the official homework repository for the OSTEP textbook, providing hands-on simulation labs covering CPU scheduling, memory virtualization, concurrency, and file systems — exactly the project-based OS education you need.
Bitwise is a computer architecture education kit and a comprehensive set of guides for building a custom CPU, operating system, and compiler from scratch. It serves as a CPU design tutorial and a practical framework for implementing a unique instruction set architecture. The project provides a custom instruction set architecture toolchain, including resources for creating a matching assembler and compiler. It further includes a hardware development guide for synthesizing computer components and peripheral controllers for deployment on programmable logic devices and FPGAs. The kit covers full
Bitwise is a comprehensive education kit that guides you through building a custom CPU, operating system, and compiler from scratch, with practical C projects covering process scheduling, memory management, and kernel programming—exactly the hands-on OS learning resource you are looking 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 repository is a hands-on OS construction project that teaches bootloaders, kernel design, round-robin scheduling, memory management, and file systems by building a working monolithic kernel in C and assembly, making it an ideal project-based learning resource for operating systems concepts.
xv6-riscv is a simplified Unix-like teaching operating system designed for the study of kernel design and hardware interaction. It provides a low-level RISC-V kernel implementation that serves as a bootable system image for execution and debugging within a virtual machine or emulator. The project focuses on educational instruction regarding the RISC-V architecture. It enables the study of operating system concepts through a minimal kernel that implements process management and memory handling. The system covers core kernel operations including multiprocessor resource management and the imple
xv6-riscv is a hands-on teaching operating system that provides a complete RISC-V kernel implementation in C, covering process scheduling, memory management, and file systems, making it a perfect project-based resource for learning OS concepts through labs and kernel programming assignments.
Build a minimal multi-tasking OS kernel for ARM from scratch
This repository provides a hands-on guide to building a minimal multi-tasking OS kernel for ARM from scratch in C, directly covering process scheduling, memory management, and kernel programming — exactly the kind of project-based learning you're looking for.
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
This repository provides hands-on OS kernel labs using Rust/C and RISC-V/x86, covering core concepts like process scheduling, memory management, and file systems through practical programming assignments — exactly the project-based OS education approach this search seeks.
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
This repository offers a structured, project-based curriculum that teaches operating system fundamentals through building a kernel from scratch in C, covering bootloaders, hardware interaction, and low-level systems programming—exactly the kind of hands-on OS education you want, even if it focuses on kernel implementation over explicit simulations like process scheduling or memory management.
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 repository is a detailed guide to building an operating system from scratch, covering kernel components through hands-on bare-metal programming, which directly teaches OS concepts via a practical project—though it is more a single guided project than a set of separate lab exercises.
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
This Rust-based tutorial series teaches OS concepts by building a real bare-metal kernel from scratch on Raspberry Pi hardware, offering practical kernel programming assignments and implementations of scheduling, memory management, and file systems — though it uses Rust rather than C and focuses on real hardware instead of simulated labs.
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
nuta/operating-system-in-1000-lines is a hands-on educational kernel project in C that demonstrates process scheduling and memory paging, making it a practical project-based resource for learning core OS concepts, though it does not cover file system implementation or provide explicit lab exercises.
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 hands-on tutorial for building a bare-metal OS on the Raspberry Pi 3, directly teaching kernel and low-level concepts through practical implementation—ideal for project-based learning, though it uses Rust instead of C and focuses on real hardware rather than simulations.
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 repository provides reference implementations for creating bootable disk images and loading kernel stages. It includes guides for implementing protected mode transitions, memory paging, interrupt descriptor tables, and symmetric multiprocessing on x86 hardware.
This repository provides practical x86 bare-metal programming examples covering bootloaders, memory paging, and interrupt handling, making it a useful resource for hands-on OS kernel projects, though it lacks process scheduling or file system simulations and uses assembly rather than C.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| remzi-arpacidusseau/ostep-code | 4.1K | C | — | |
| remzi-arpacidusseau/ostep-projects | 5.6K | C | — | |
| phil-opp/blog_os | 17.5K | HTML | Apache-2.0 | |
| remzi-arpacidusseau/ostep-homework | 2.9K | Python | — | |
| pervognsen/bitwise | 5.3K | C | other | |
| yourtion/30daymakeos | 6.4K | C | NOASSERTION | |
| mit-pdos/xv6-riscv | 9.9K | C | NOASSERTION | |
| jserv/mini-arm-os | 1.2K | C | NOASSERTION | |
| chyyuu/os_kernel_lab | 4K | Rust | GPL-3.0 | |
| cfenollosa/os-tutorial | 30.6K | C | BSD-3-Clause |