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
remzi-arpacidusseau avatar

remzi-arpacidusseau/ostep-projects

0
View on GitHub↗
5,560 stars·1,510 forks·C·15 views

Ostep Projects

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 allocators, virtual address translation simulators, and file system integrity checkers. The collection also includes concurrent programming exercises such as multi-threaded MapReduce frameworks, thread pools, and parallel file compression, alongside reimplementations of standard Unix command-line tools.

The assignments progress from building a command-line shell with job control to modifying kernel threads and implementing memory protection features. Each project is self-contained and designed to run in a simulated operating system environment, allowing safe experimentation with low-level mechanisms without requiring real hardware or privileged access. The documentation provides the project specifications and starter code needed to complete each assignment.

Features

  • Course Projects - Serves as the primary collection of academic programming projects for an operating systems course.
  • Operating Systems Study - Provides educational projects for building core OS components like schedulers, memory managers, and file systems.
  • Command Line Shells - Builds a command-line shell that executes programs and manages input/output redirection.
  • File System Simulators - Simulates file system structures and verifies on-disk data integrity for educational purposes.
  • MapReduce Processing Engines - Provides a MapReduce parallel processing framework that divides data processing into map and reduce stages.
  • Shell Implementations - Builds a Unix shell implementation supporting job control, pipes, redirection, and background execution.
  • Lottery Schedulers - Implements a lottery-based proportional-share CPU scheduler using randomized ticket allocation.
  • Concurrent - Includes concurrent programming projects implementing multi-threaded MapReduce, thread pools, and parallel compression.
  • File System Integrity Checkers - Ships a file system integrity checker that scans disk images for structural errors and inconsistencies.
  • Educational Kernel Projects - Contains kernel development projects that add threading, scheduling, and memory protection to a simulated OS.
  • Lottery Scheduling Algorithms - Implements lottery-based process scheduling algorithms that allocate CPU time using randomized tickets.
  • Educational Heap Allocators - Implements a dynamic heap memory allocator as a programming project for learning memory management.
  • Dynamic Heap Allocators - Implements a dynamic heap memory allocator that manages allocation and deallocation of memory blocks.
  • Page Table Translators - Simulates page table walks and virtual-to-physical address translation in a controlled environment.
  • File System Implementation Projects - Provides file system implementation projects including integrity checkers and distributed simulations.
  • Command-Line Interpreters - Implements a command-line interpreter with job control, pipes, and redirection for interactive shell functionality.
  • Kernel Emulation Environments - Provides a simulated operating system environment that emulates kernel components in user-space for safe experimentation.
  • Simulated Address Translators - Implements a virtual address translation simulator that walks page tables and handles page faults.
  • Simulated Virtual Memory Managers - Provides a virtual memory manager simulation that handles page tables, faults, and address translation.
  • Systems Programming Exercises - Provides systems programming exercises that reimplement Unix tools to develop C and system call proficiency.
  • Thread Pools - Implements a multi-threaded worker pool that manages reusable threads for concurrent task processing.
  • Multi-Threaded Programming Exercises - Provides multi-threaded programming exercises that teach synchronization and parallel workload handling.
  • Kernel Schedulers - Assigns CPU time to processes using randomized ticket-based allocation for proportional-share scheduling.
  • Parallel Compression Tools - Implements parallel file compression that speeds up operations by using multiple threads.
  • Unix Tool Reimplementations - Reimplements common Unix command-line tools such as cat, grep, zip, and unzip for systems programming practice.
  • Educational Kernel Thread Implementations - Includes a kernel thread implementation project that adds multi-threading support to a simulated OS.
  • Educational Memory Protection Features - Implements virtual memory protection features including null-pointer detection and read-only regions.
  • Thread-Per-Connection Web Servers - Creates a multi-threaded HTTP server that handles multiple client requests simultaneously.

Star history

Star history chart for remzi-arpacidusseau/ostep-projectsStar history chart for remzi-arpacidusseau/ostep-projects

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Ostep Projects

These projects share indexed features with Ostep Projects. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • 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

    C
    View on GitHub↗4,127
  • 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

    C
    View on GitHub↗3,258
  • angrave/systemprogrammingangrave avatar

    angrave/SystemProgramming

    5,734View on GitHub↗

    This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core operating system concepts of process management through the fork-exec-wait model, dynamic memory allocation using implicit free list heap allocators, inode-based file systems, inter-process communication via pipes and shared memory, POSIX threads with synchronization primitives, signal-based asynchronous notification, virtual memory with page table translation, and runtime diagnostics using Valgrind and GDB. The textbook distinguishes itself by providing practical, implementation

    View on GitHub↗5,734
  • 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

    Python
    View on GitHub↗2,881
Compare all 30 related projects→

Frequently asked questions

What does remzi-arpacidusseau/ostep-projects do?

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.

What are the main features of remzi-arpacidusseau/ostep-projects?

The main features of remzi-arpacidusseau/ostep-projects are: Course Projects, Operating Systems Study, Command Line Shells, File System Simulators, MapReduce Processing Engines, Shell Implementations, Lottery Schedulers, Concurrent.

Which projects share features with remzi-arpacidusseau/ostep-projects?

Projects with overlapping indexed features include: remzi-arpacidusseau/ostep-code — This project is a collection of educational simulations and code examples designed to illustrate core operating system… nuta/operating-system-in-1000-lines — This project is an educational operating system kernel designed to demonstrate the fundamental architectural… angrave/systemprogramming — This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core… remzi-arpacidusseau/ostep-homework — This project is a collection of operating systems courseware and educational programming exercises designed for… xonsh/xonsh — Xonsh is a cross-platform command-line interface shell and automation tool that integrates a full Python interpreter… ksundong/backend-interview-question — This project is a backend engineering interview guide and computer science study resource. It provides a curated…