30 open-source projects similar to remzi-arpacidusseau/ostep-code, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Ostep Code alternative.
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 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 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
This project is a set theory library for Go that provides a data structure for storing unique elements of any comparable type using generics. It serves as a tool for managing unique collections and performing mathematical operations such as intersections and differences. The library provides synchronized collections to prevent data races during concurrent read and write operations. It also supports converting unique collections to and from JSON arrays for data persistence and network transmission. The implementation covers membership testing, collection cloning, and size calculation. It incl
This project is a technical interview study guide and computer science knowledge base. It provides a curated collection of technical interview questions and expert explanations focused on preparing for assessments at global IT companies. The repository serves as a coding interview roadmap for mastering algorithmic challenges and complexity analysis, alongside a software architecture reference for design principles and system design strategies. It also includes a web security curriculum covering authentication methods, cryptographic concepts, and common vulnerabilities. Content covers compute
This is a thread-safe in-memory cache library for Go that automatically evicts the least recently used items when capacity is reached. It provides a fixed-size memory cache designed to maintain a constant memory footprint by removing the oldest entries as new data arrives. The system includes an eviction manager that executes custom callbacks when entries are purged to facilitate resource cleanup. It also supports time-based expiration, allowing for the automatic removal of items after a specified time-to-live duration. The library covers general caching capabilities including cache inspecti
This project is an educational resource designed to help developers master concurrent execution and synchronization patterns in Go. It provides a structured collection of hands-on coding exercises and test-driven challenges that focus on the practical implementation of multi-threaded software engineering practices. The repository emphasizes the core mechanisms of Go concurrency, including channel-based communication, mutex locking, and lifecycle coordination. It covers essential patterns such as managing background tasks, implementing graceful service shutdowns, and enforcing rate limits or e
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
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
go-cache is a thread-safe, in-memory key-value store for single-machine applications. It provides a local caching mechanism that stores objects in RAM to reduce redundant data retrieval and avoid the overhead of network protocols or serialization. The system features a persistent cache store that saves the in-memory state to a local file, allowing data recovery across application restarts. The project manages concurrent data access across multiple routines and implements time-to-live expiration for cached entries. A background process periodically scans the store to delete expired items and
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
你管这破玩意叫操作系统源码 — 像小说一样品读 Linux 0.11 核心代码
This project is a comprehensive library of practical Python code examples and patterns. It provides a collection of scripts and snippets designed to demonstrate a wide range of programming tasks, from basic syntax to advanced implementation patterns. The repository focuses on several core domains, including the implementation of concurrency and multithreading examples, data analysis snippets for cleaning and manipulating tabular data, and various data visualization examples. It also covers automation scripts for file system management and a variety of general programming patterns. Additional
This project is an educational repository and collection of algorithms implemented in C++. It provides a structured set of code examples covering mathematics, computer science, and physics for reference and learning. The collection includes implementations of data structures for managing hierarchical and linear data, such as binary search trees and AVL trees. It also features simulations of computer science concepts, including CPU scheduling and the resolution of combinatorial puzzles. The repository further covers cryptographic examples through the implementation of classic encryption and e
This project is a comprehensive guide and technical book focused on C++ concurrency. It serves as an educational resource for developers to learn multi-threading and the implementation of thread-safe code. The material covers the C++ memory model, atomic operations, and synchronization patterns. It combines theoretical explanations with practical code examples to illustrate how to prevent data races in multi-threaded applications. The instructional approach utilizes scenario-based learning and analysis of the C++ standard library to demonstrate concurrent execution patterns and memory orderi
MiniOB is an open-source educational relational database kernel designed for learning the internals of database systems. It implements a dual-engine storage architecture combining B+ Tree and LSM-Tree, supports SQL parsing and query execution, and provides transactional processing with multi-version concurrency control. The system communicates with clients using the MySQL wire protocol and includes a vector database extension for storing and querying high-dimensional vectors. The project distinguishes itself through its comprehensive coverage of core database concepts in a single, learnable c
TCP-IP-NetworkNote is a comprehensive technical reference and guide for implementing network communication using TCP and UDP sockets in C and C++. It provides a detailed manual for using the POSIX socket API and covers the implementation of network protocols, synchronous and asynchronous I/O patterns, and concurrent programming models. The project is distinguished by its focus on cross-platform networking, offering a detailed comparison of socket implementation details and adaptation utilities between Linux and Windows Winsock environments. It specifically addresses the differences in header
This project is a PHP debugging toolbar and runtime inspector that provides a browser-based interface for monitoring system metrics, memory usage, and execution time during web development. It functions as an application performance monitor and diagnostic tool, capturing real-time data and application state to visualize the PHP execution lifecycle. The tool distinguishes itself through its ability to persist debug data across multiple requests, allowing for request history tracking and the archival of previous sessions. It supports the inspection of AJAX requests and manages data persistence
This project is an object persistence library and data mapper abstraction layer. It provides a set of shared interfaces and base classes designed to decouple domain logic from specific object mapper implementations, separating the business domain layer from the underlying data access implementation. The library includes a database schema management and migration tool for defining, versioning, and deploying incremental updates to database structures across different environments. It also functions as a document database mapper, translating object states into structured document formats for sto
XiangShan is a high-performance RISC-V processor core and a hardware description language framework. It provides a construction-based system for designing, simulating, and verifying complex processor micro-architectures and peripheral devices. The project includes a high-performance CPU simulator used for architectural exploration and functional verification of processor execution. The project implements a superscalar out-of-order CPU architecture that uses renaming and reorder buffers to execute instructions in parallel. It generates synthesizable Verilog files from hardware descriptions to
RoseDB is an embedded key-value database and log-structured storage engine. It functions as a library-based database that runs within an application process to provide local data persistence without the need for a separate database server. The project implements a Bitcask-style store, utilizing an append-only log format to maximize write throughput and minimize seek time. It ensures data consistency by grouping multiple read and write operations into single atomic units. The storage architecture relies on an in-memory key index for constant-time lookups and uses segment-based file management
Mailpit is an SMTP mail testing server and web-based email inbox designed to intercept and store outgoing emails for development and integration testing without delivering them to real recipients. It functions as an SMTP mocking tool and relay gateway, allowing users to capture mail traffic and view it through a browser interface. The project distinguishes itself by providing tools for SMTP server simulation, including the ability to inject failure codes to test application resilience. It also includes an email compatibility analyzer that validates HTML rendering, checks link integrity, and s
CPlusPlusThings is an educational and technical resource collection featuring C++ coding exercises, a concurrency library, and a programming guide. It provides structured drills and real-world challenges to reinforce language proficiency and offers technical analysis of the internal implementation of the standard library. The project implements software architecture patterns and industry-standard idioms, including the singleton pattern and resource acquisition is initialization. It also includes a framework for building logging systems with configurable severity levels and output destinations
JavaFamily is a curated set of learning paths and reference guides for backend engineering, distributed systems, and virtual machine internals. It provides a structured curriculum covering the Java language, operating system concepts, and network protocols. The project features detailed study guides for the Java virtual machine architecture, including memory management and garbage collection. It also includes a comprehensive reference for distributed systems, covering microservices, remote procedure call frameworks, and scalable system design. The collection covers a broad range of technical
Semaphore is a web interface and API for running and scheduling Ansible playbooks and other infrastructure automation tools. It serves as an infrastructure automation dashboard and DevOps task scheduler for orchestrating deployments. The platform functions as a multi-tool automation hub, providing a centralized dashboard for managing infrastructure as code using Ansible, Terraform, OpenTofu, and Terragrunt. It includes an inventory management tool for organizing target servers and containers, alongside a secret management service for storing sensitive environment variables required during exe
OS.js is a browser-based desktop environment built entirely with JavaScript that runs a full graphical interface with windows, file management, and applications inside any modern web browser without requiring local software installation. It provides a web desktop platform that manages application windows as DOM elements with z-ordering, resizing, and event routing, while offering an abstracted virtual filesystem layer that unifies access across multiple storage backends through a common read/write interface. The platform connects to remote servers and desktops using SSH, VNC, or Xpra protocol
Bareiron is a minimalist environment for hosting multiplayer game servers on low-power, memory-constrained devices. It functions as a Minecraft server optimizer designed to provide basic connectivity for remote players while operating on embedded hardware with limited system resources. The software includes a hardware performance tuner that allows for the disabling of intensive game mechanics and resource-heavy features to prevent system crashes. It also incorporates a network traffic controller to adjust broadcast frequencies and tick rates, reducing bandwidth consumption and lag. The syste
This project is a comprehensive technical interview question bank and reference library designed for software engineering roles at major technology companies. It serves as a study guide and knowledge base covering the core principles of high-performance systems programming and computer science theory. The collection focuses on deep technical domains, including C++ language mastery, distributed systems design, and database engineering. It provides detailed material on consensus protocols, cluster coordination, and the architectural differences between SQL and NoSQL implementations. The resour
Cayley is a graph database engine designed for storing and querying interconnected data using a quad-based data model. It functions as an RDF quad store, managing information through subjects, predicates, objects, and labels. The system features a modular graph store architecture with pluggable backends, allowing it to swap between in-memory storage and various external persistent databases. It includes a GraphQL-inspired API and a dedicated data visualizer for the interactive exploration of nodes and edges. Query capabilities cover bidirectional path traversal and multi-syntax execution usi
This project is a comprehensive collection of common computer science algorithms and data structures implemented in Swift. It serves as an educational reference and library for studying computational complexity, algorithmic logic, and data structure engineering through practical code examples. The repository provides a wide suite of data structure implementations, including various types of linked lists, heaps, hash tables, and an extensive range of hierarchical trees such as Red-Black, B-Tree, and Splay trees. It also covers diverse sorting and searching techniques, from basic bubble sort to