xv6
a simple, Unix-like teaching operating system
Russ Cox
Frans Kaashoek
Robert Morris
xv6-book@pdos.csail.mit.edu
Draft as of September 7, 2011
Foreword and acknowledgements
This is a draft text intended for a class on operating systems. It explains the main con-
cepts of operating systems by studying an example kernel, named xv6. xv6 is a re-im-
plementation of Dennis Ritchie’s and Ken Thompson’s Unix Version 6 (v6). xv6 loose-
ly follows the structure and style of v6, but is implemented in ANSI C for an x86-
based multiprocessor.
The text should be read along with the source code for xv6. This approach is inspired
by John Lions’s Commentary on UNIX 6th Edition (Peer to Peer Communications; IS-
BN: 1-57398-013-7; 1st edition (June 14, 2000)). See http://pdos.csail.mit.edu/6.828 for
pointers to on-line resources for v6 and xv6.
We have used this text in 6.828, the operating system class at MIT. We thank the fac-
ulty, TAs, and students of 6.828 who all directly or indirectly contributed to xv6. In
particular, we would like to thank Austin Clements and Nickolai Zeldovich.
DRAFT as of September 7, 2011 5 http://pdos.csail.mit.edu/6.828/xv6/