CS 450: Project 1B: xv6 (Kernel Hacking) Warmup


The project description can be found here. Your task is the same as outlined on that page (namely, adding the system call). You should also read the background notes and you can take a look at the video linked on that page. Please be advised, though, that they are using a slightly different version of the xv6 kernel, and their handout and handin procedures are different, so there will be minor differences.

The project is to be done on the Fusion cluster, to which you should already be able to log in (again, see Piazza). Please let us know if you still cannot get in.


This project should be done alone! Copying code (from others) is considered cheating. If we detect plagiarized code, severe penalties will be applied. Please do us all a favor and do your own work (otherwise, why are you here?).

Getting the Starter Code

As before, you should go to the Github classroom link posted in Piazza. You should accept the invitation and then go to the link it gives you, and follow the same clone procedure as you did in Project 1A to get the code for xv6.

Due Dates and Logistics

NOTE: Deadline has been updated (AGAIN)!

This project is due Monday, January 28, 2019 at 11:59PM Monday, February 4, 2019 at 11:59PM. Late submissions will be penalized as per the syllabus.

Testing Your Code

You can test your xv6 code by using make. We will have a separate suite of tests for each xv6 project. To invoke the tests for this part, you can run:

[you@fusion-machine] make test-p1b
Make sure to test often, and be sure that your code passes all tests before handing your code in. You will only get credit for tests that you pass.

Handing In

IMPORANT:Before you hand in, make sure to add (and commit) a file named "info.txt" which contains your full name and e-mail address. If I cannot associate your Github account with you, you cannot expect your code to be graded!

As you go, you should be making commits using git to your local repository (again, if you've not used git, you should go to the link above). When you're ready to hand in your code, you can just run:

[you@machine] make handin
If you have modified files you haven't commited, the handin script will warn you. This handin script actually just invokes git push.

Remember that you will be docked points for late work as per the syllabus.


If you have questions, please first post them on Piazza so others can get the benefit of the instructor/TA's answer. Avoid posting code that will give away your solution or allow others to cheat. If this does not resolve your issue, contact the instructor or TA, or come to office hours.