gitmyhub

xv6-public

C ★ 9.5k updated 1y ago

xv6 OS

xv6 is a tiny Unix-like operating system written at MIT in C, small enough to read completely, used worldwide in university courses to show exactly how processes, memory, files, and hardware interact inside a real OS kernel.

Cx86 Assemblysetup: moderatecomplexity 4/5

xv6 is a small operating system written at MIT, modeled closely on Unix Version 6, which was an early version of Unix from the 1970s created by Dennis Ritchie and Ken Thompson at Bell Labs. The goal of xv6 is not to be a production system you would actually run on a real computer. It exists as a teaching tool for computer science students learning how operating systems work from the inside.

The code is written in C and targets x86 processors, which are the type found in most personal computers. Because xv6 is small enough to read in full, students can follow the path a program takes from the moment a user runs a command all the way through scheduling, memory management, file storage, and hardware interaction, without wading through the millions of lines that make up real operating systems like Linux.

This particular repository covers the x86 version, which the maintainers have stopped updating. Active development has moved to a newer version of xv6 that targets RISC-V processors, a more modern and openly licensed chip architecture commonly used in academic work today. The MIT course that uses xv6, numbered 6.828, has accompanying online materials and a long history of contributors who have submitted bug fixes and improvements over the years.

If you are looking at this repository because you want to study how an operating system works at the level of processes, system calls, and memory, xv6 is one of the most widely used starting points in university courses worldwide. The codebase is intentionally kept compact and plain, which is exactly the point.

Where it fits