CS 134

Cloning and Setup

Following the same steps as we used for Homework 1, you'll need to set up your directory on the CS 134 server. You'll need to clone the repository for the assignment and build the OS/161 userspace tools.

Cloning the Repository

After accepting the assignment on GitHub Classroom, you'll need to clone the repository to your CS 134 server account. Here's how you do it:

  1. Go to your repository on GitHub.
  2. Click the green button that says <> Code.
  3. You'll see a URL; copy that URL (the easiest way is to click the button that looks like two stacked squares).
  4. Open VS Code.
  5. Click on the >< button in the lower-left corner. In the pop-up menu, select Remote-SSH: Connect to Host... and enter username@cs134.cs.hmc.edu for the host (where username is replaced by your CS 134 server username from Homework 1). When prompted, enter your server password.
  6. On the sidebar of your VS Code window, click the “Explorer” icon (looks like two overlapping pieces of paper) or the “Source Control” icon (looks like three circles connected by two lines).
  7. Click Clone Repository.
  8. In the text box at the top of the window, paste the URL you copied from GitHub.
  9. Now edit the path to choose a place to save the cloned repo. We recommend using the cs134 directory that is already in your home directory.
  10. VS Code will download the repository and ask if you want to open the repository. Say yes!

Building the OS/161 Userspace Tools

Open up a terminal in VS Code (with View > Terminal or Command `). Now, to get your cloned repository ready for use, you need to run the following commands:

./setup

Running ./setup can take a few moments depending on how busy the server is. Remember that you can skip ahead to do some of the reading parts of the assignment while you are waiting for some code to compile.

The build process should finish with a message like

Base system installed in /home/username/cs134/repo-name/root
Now you need to configure and build the kernel.

where username is your username and repo-name is the name of the repository you cloned. (If you don't see this message, something went wrong. Please ask for help.)

When ./setup finishes, it will have built all the user-level commands (such as /sbin/reboot) and libraries for OS/161, but not the kernel itself. We'll do that next…

To Complete This Part of the Assignment…

You'll know you're done with this part of the assignment when you've done all of the following:

(When logged in, completion status appears here.)