Xv6, a simple Unix-like teaching operating system

Introduction

Xv6 is a teaching operating system developed by MIT in the summer of 2006, which MIT ported xv6 to RISC-V for a new undergraduate class 6.1810.

CPSC 405 Xv6 Lab Sources

The starting source code for our CPSC 405 Xv6 labs is located at a GitHub repository. The repo has a branch for each lab. For example the util branch contains code for the Lab Utilities.

git clone https://github.com/gustycooper/xv6-labs.git

CPSC 405 Xv6 Textbooks

CPSC 405 Xv6 Textbook and other references are part of our website.

MIT's Xv6 sources and text

The latest xv6 source and text are available; however, you do not need to clone these repos. The gustycooper repo shown above is all you need. Also, note that cloning the textbook is not a PDF. You have to build the textbook.

Unix Version 6

Ken Thompson and Dennis Ritchie developed Unix at Bell Labs beginning in 1969. The Sixth Edition Unix (May 1975), also called Version 6 Unix or just V6, was the first version of the Unix operating system to see wide release outside Bell Labs. Bell Labs distributed V6 with the source code. Universities received V6 for free, and incorporated it into their courses, with students making modifications. UC Berkeley created their own release with the Berkeley sockets for network programming. John Lions of the University of New South Wales created a famous, detailed commentary that described V6. You can read more about Unix and Xv6 at

MIT's Xv6 is inspired by Unix V6 and John Lions' commentary. The following are useful to read the original code:

Gusty's Use of Xv6

I have used Xv6 code in teaching CPSC 405. My first approach was to extract code into standalone code that can be compiled and executed on Linux. For example, I packaged proc.c into a programming module where students implemented two schedulers: round-robin and Linux Completely Fair. I have decided to use the MIT RISC-V Xv6 that runs in QEMU as part of my course content. I have modified the course content to better suit UMW OS and students.

Feedback

MIT Feedback

If you are interested in using xv6 or have used xv6 in a course, MIT personnel would love to hear from you. If there's anything that MIT can do to make xv6 easier to adopt, they'd like to hear about it. They'd also be interested to hear what worked well and what didn't.

Russ Cox (rsc@swtch.com)
Frans Kaashoek (kaashoek@mit.edu)
Robert Morris (rtm@mit.edu)

You can reach all of the MIT Xv6 personnel at 61810-staff@lists.csail.mit.edu.

UMW Feedback

If you have feedback on UMW's use of Xv6, please email Gusty Cooper at ecooper@umw.edu.

Questions or comments regarding CPSC 405? Send e-mail to Gusty at ecooper@umw.edu.

Creative Commons License Top // CPSC 405 home // Last updated 8-Aug-2024 13:30 EST