xv6 Operating System
MITs xv6 is a re-implementation of Dennis Ritchie’s and Ken Thompson’s Unix Version 6 (v6). xv6 loosely follows the structure and style of v6, but is implemented for a modern x86-based multiprocessor using ANSI C.
The entire xv6 source code totals to around 100k lines of code, a relatively small number compared to modern operating systems. The code is also simple making it a great candidate to analyze and improve upon.
The scheduling subgroup has made plans to profile and improve the xv6 scheduler. See documentation on xv6 scheduling for details.
Accessing xv6
NOTE: It is recommended you follow these steps on Maize. Development in other environments is not supported.
You will probably want to clone the xv6 repository so you can make your own changes. MIT hosts the source code on their GitHub. Clone that repository using:
git clone https://github.com/mit-pdos/xv6-riscv.git
It is suggested that you add the UKO remote to your repository so you can keep up with the group’s changes:
git remote add UKO https://github.com/UMN-Kernel-Object/xv6-riscv.git
Update the remote using:
git remote update UKO
Then checkout the UKO sched development branch:
git checkout sched
Any changes you make to this branch may be committed normally and pushed using:
git push UKO sched
Remember to adhere to standard kernel coding style and practices before sending patches.