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.
- Lions' Commentary on UNIX' 6th Edition, John Lions, Peer to
Peer Communications; ISBN: 1-57398-013-7; 1st edition (June 14, 2000).
The following are useful to read the original code:
-
The PDP11/40 Processor Handbook, Digital Equipment Corporation, 1972.
- A PDF (made from scanned images,
and not text-searchable)
- A web-based
version that is indexed by instruction name.
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.
Top //
CPSC 405 home //
Last updated 8-Aug-2024 13:30 EST