Machine problem: Unix utilities


For this machine problem you will implement basic versions of three standard Unix utilities for the xv6 operating system. While you won't be making any changes to the kernel, you will be working with the kernel's system call interface and the small user library it provides.

The full writeup for this machine problem (i.e., containing a detailed description of the constituent exercises, among other things) is found in the "" file of the starter code repository, which you will obtain in the next step. For future machine problems we will not provide a separate writeup on the class website, as the initial steps for obtaining the repository are the same for all machine problems.

Cloning the starter code repository

Each machine problem will require you to obtain and work in a separate, private Git repository containing the starter code.

You will claim your private repository using a GitHub invitation link. The invitation link for a given machine problem is found next to its name in "Repo Invite" column of the machine problems listing on the class website.

After following the link, you'll be prompted to create an account on GitHub (or sign in to an existing one --- your personal account is fine) and pick your IIT username from a list to use for accepting the assignment. GitHub will then clone the starter code into a private repository and take you to a URL that looks something like (where USER is your own GitHub username). This is your repository's homepage on GitHub. You can visit this page to see the status of your work as reflected on GitHub.

Next, you should clone this repository on the computer where you'll be doing your work. You can do this using whichever Git client you prefer (e.g., the terminal or a GUI client like GitHub Desktop). The URL for cloning is found on the repository's homepage on GitHub, under the green "Code" button.

Head on over to the writeup!

That's it for the setup. Head on over to the writeup for this machine problem, which you can find in the "" file of the starter code repository you just cloned (it should be displayed when you visit the repository homepage). The writeup contains a detailed description of how to set up your development environment, the exercises you'll be working on, and the evaluation criteria.