Skip to main content

xv6 Operating System

Operating system coursework on xv6 for RISC-V, spanning processes, virtual memory, system calls, concurrency, and file systems.

Architecture of xv6, from user programs and system calls to kernel subsystems and RISC-V hardware.

My operating systems coursework for SJTU CS2953, based on xv6, MIT’s Unix-like teaching operating system for RISC-V. The project brings together the parts of an operating system and explores how they interact across the user–kernel boundary.

Inside the operating system

  • Processes and execution: system calls, traps, scheduling, and context switching.
  • Memory management: address spaces, page tables, allocation, and memory protection.
  • Concurrency: synchronization between processes and across processor cores.
  • Storage and I/O: the file system, buffer cache, device drivers, and interrupts.

The architecture illustration above is a conceptual overview of these subsystems. It presents the OS as a whole; individual labs examine particular mechanisms within that larger structure.

Project context

The repository contains the xv6 kernel, user programs, lab checks, and implementation notes. It builds on the existing xv6 codebase and course framework.

Tools: C, RISC-V, QEMU, and GDB.

For the original system and its design, see MIT’s xv6 documentation.