awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Operating Systems Labs and Projects

Ranking updated Jun 30, 2026

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.

Operating Systems Labs and Projects

Find the best repos with AI.We'll search the best matching repositories with AI.
  • remzi-arpacidusseau/ostep-coderemzi-arpacidusseau avatar

    remzi-arpacidusseau/ostep-code

    4,127View on GitHub↗

    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.

    CCPU Scheduling SimulationsOS Scheduling SimulationsSimulated Virtual Memory Managers
    View on GitHub↗4,127
  • remzi-arpacidusseau/ostep-projectsremzi-arpacidusseau avatar

    remzi-arpacidusseau/ostep-projects

    5,560View on GitHub↗

    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.

    CFile System Implementation ProjectsSimulated Virtual Memory Managers
    View on GitHub↗5,560
  • phil-opp/blog_osphil-opp avatar

    phil-opp/blog_os

    17,518View on GitHub↗

    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.

    HTMLOperating System DevelopmentKernel Development
    View on GitHub↗17,518
  • remzi-arpacidusseau/ostep-homeworkremzi-arpacidusseau avatar

    remzi-arpacidusseau/ostep-homework

    2,881View on GitHub↗

    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.

    PythonOperating System Curricula
    View on GitHub↗2,881
  • pervognsen/bitwisepervognsen avatar

    pervognsen/bitwise

    5,250View on GitHub↗

    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.

    COperating System Development
    View on GitHub↗5,250
  • yourtion/30daymakeosyourtion avatar

    yourtion/30dayMakeOS

    6,412View on GitHub↗

    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.

    CKernel Development
    View on GitHub↗6,412
  • mit-pdos/xv6-riscvmit-pdos avatar

    mit-pdos/xv6-riscv

    9,934View on GitHub↗

    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.

    CKernel Development
    View on GitHub↗9,934
  • jserv/mini-arm-osjserv avatar

    jserv/mini-arm-os

    1,240View on GitHub↗

    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.

    CContainers and VirtualizationInfrastructure and SystemsOperating Systems
    View on GitHub↗1,240
  • chyyuu/os_kernel_labchyyuu avatar

    chyyuu/os_kernel_lab

    4,045View on GitHub↗

    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.

    RustOperating System DevelopmentKernel Development
    View on GitHub↗4,045
  • cfenollosa/os-tutorialcfenollosa avatar

    cfenollosa/os-tutorial

    30,551View on GitHub↗

    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.

    CKernel DevelopmentOperating System Curricula
    View on GitHub↗30,551
  • tuhdo/os01tuhdo avatar

    tuhdo/os01

    13,426View on GitHub↗

    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.

    TeXOperating System Development
    View on GitHub↗13,426
  • rust-embedded/rust-raspberrypi-os-tutorialsrust-embedded avatar

    rust-embedded/rust-raspberrypi-OS-tutorials

    14,682View on GitHub↗

    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.

    RustKernel Development
    View on GitHub↗14,682
  • nuta/operating-system-in-1000-linesnuta avatar

    nuta/operating-system-in-1000-lines

    3,258View on GitHub↗

    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.

    CKernel Development
    View on GitHub↗3,258
  • rust-embedded/rust-raspi3-os-tutorialsrust-embedded avatar

    rust-embedded/rust-raspi3-OS-tutorials

    14,682View on GitHub↗

    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.

    RustOperating System Development
    View on GitHub↗14,682
  • cirosantilli/x86-bare-metal-examplescirosantilli avatar

    cirosantilli/x86-bare-metal-examples

    5,306View on GitHub↗

    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.

    AssemblySystem Programming Labs
    View on GitHub↗5,306
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
remzi-arpacidusseau/ostep-code4.1KC—Nov 9, 2023
remzi-arpacidusseau/ostep-projects5.6KC—Jul 19, 2024
phil-opp/blog_os17.5KHTMLApache-2.0May 27, 2026
remzi-arpacidusseau/ostep-homework2.9KPython—Jan 13, 2026
pervognsen/bitwise5.3KCotherMar 7, 2019
yourtion/30daymakeos6.4KCNOASSERTIONApr 1, 2024
mit-pdos/xv6-riscv9.9KCNOASSERTIONJun 15, 2026
jserv/mini-arm-os1.2KCNOASSERTIONDec 14, 2025
chyyuu/os_kernel_lab4KRustGPL-3.0Jan 27, 2023
cfenollosa/os-tutorial30.6KCBSD-3-ClauseFeb 4, 2026

Related searches

  • a project for learning OS internals by building one
  • a structured curriculum for self-taught computer science
  • a course for understanding computer architecture
  • an open source operating system kernel
  • a real-time operating system for embedded microcontrollers
  • a hands-on project for learning systems programming
  • a study path for distributed systems
  • a curriculum for understanding networking