Project 1b: Warm-up Project (xv6)

Important Dates and Other Stuff

Due: Wednesday 2/7 by midnight.

This project is to be done by yourself.


Post questions to Piazza, or send questions to , or ask in person during lab help hours or office hours. If the question is about your code, copy all of of your code into your handin directory (details below) and include your login in your email (you are free to modify the contents of your handin directory prior to the due date). Also include all other relevant information, such as cutting and pasting what you typed and the results from the screen. In general, the more information you give, the more we can help. If you use Piazza for questions, don't include code unless you are sure you are making the post private.


The project description is found here. Please read this carefully in order to understand exactly what to do.

This project is to be done on the lab machines (listed here ), so you can learn more about programming in C on a typical UNIX-based platform (Linux).


This project should be done alone. Copying code (from others) is considered cheating. Read this for more info on what is OK and what is not. Please help us all have a good semester by not doing this.

The Code

The source code for xv6 (and associated README) can be found in ~cs537-1/ta/xv6/ . Everything you need to build and run and even debug the kernel is in there.


To run some very simple tests for this project, please type read the following README and follow its instructions: ~cs537-1/ta/tests/1b/README

Handing It In

Put your entire xv6 source tree into your handin directory, under directory p1b . Then, change directories into the handin and make sure the tests still work. Finally, type 'make clean' so that the built kernel isn't left in place there.

When we cd into your p1b directory, we shouldn't see just an xv6/ directory; rather, we should see the xv6 source tree (including the main Makefile, various subdirectories like kernel/, user/, and include/, etc.). For example:

prompt> cd ~cs537-1/handin/remzi/p1b
prompt> ls -l
total 36
-rw-r----- 1 remzi remzi 223 Feb 27 2012 FILES
drwxr-x--- 2 remzi remzi 4096 Feb 27 2012 include/
drwxr-x--- 2 remzi remzi 4096 Feb 5 09:28 kernel/
-rw------- 1 remzi remzi 4809 Feb 1 15:57 Makefile
-rw-r----- 1 remzi remzi 1793 Feb 27 2012 README
drwxr-x--- 2 remzi remzi 4096 Feb 5 09:28 tools/
drwxr-x--- 2 remzi remzi 4096 Feb 5 09:28 user/
-rw-r----- 1 remzi remzi 22 Feb 27 2012 version

Note: your results for ls don't have to look exactly like this, but should be similar and contain the import directories and makefiles.