Lab Setup Guide
Table of contents
Overview
In CS 3210, you will be hacking on the xv6 kernel, a teaching operating system. Every student will be provided with a fork of xv6 on their gatech GitHub accounts. Each lab will be implemented on a separate branch of the fork. It is highly recommended that you are comfortable with using git.
Environment Setup
You may use any of the following development environments.
Using docker
Follow the instructions described in the Lab 0 spec. We recommend this method.
Using a VM
As an alternative to using docker, you can use vagrant to set up your VM. Please note that this is more involved, so our recommendation is to use the docker method.
- Install vagrant
Create a directory for your CS 3210 labs and cd into it. For demonstration purposes, we will be calling it cs3210-labs
mkdir cs3210-labs cd cs3210-labs
Inside this directory, download the Vagrantfile we provide.
Download the Ubuntu image
vagrant init ubuntu/bionic64 Boot up your vm vagrant up vagrant ssh
This will boot you into an Ubuntu bash shell. Your local files (i.e., the files on your host machine) are located under /vagrant. You can now develop on your host machine and run commands inside the VM. To boot another terminal session, you can either run vagrant ssh in a separate terminal (pretty straightforward) or use tmux or screen within the Ubuntu shell (slightly more involved).
- Install build dependencies
sudo apt-get update \ && sudo apt-get install -y --no-install-recommends \ ca-certificates \ sudo \ git \ build-essential \ gcc-multilib \ qemu \ libvirt-bin \ cmake \ gdb
apt-get
is the package manager for Ubuntu.You can also use VirtualBox or VMWare to setup and boot your VM.
Local development
For Linux users, you shouldn’t face any troubles getting xv6 to build.
For MacOS users, we recommend that you do not develop locally.
For Windows users, you may use WSL.
Note about “How does this all work?”
This is slightly outside the scope of the course, but is nonetheless interesting. Feel free to stop by office hours. The TAs are more than happy to talk about it with you.
GitHub Setup
We will be using the Georgia Tech Enterprise GitHub for this course. You can clone repos using HTTPS or SSH keys.
- Using HTTPS
- git clone https://github.gatech.edu/cs3210-fall2024/
- git clone https://github.gatech.edu/cs3210-fall2024/
- Using SSH
- Add an SSH key to your GitHub account. Follow these steps
- In the GitHub UI, select the Clone with SSH option (you can find this by clicking the green Code button and selecting SSH)
- git clone