Table of Contents
Environment Setup
To develop the assignments, you’ll need two essential sets of tools:
- A Linux environment including a full set of development tools
- a 80x86 cross-compiler toolchain for 32-bit architecture including a C/C++ compiler, assembler, linker, and debugger.
- x86 emulator: QEMU or Bochs
The easiest way to set up the development environment is using VSCode configured for running a Docker environment. We have built a docker image for you in advance that contains all the necessary tools to compile, run, and debug PintOS. This docker image has been tested on Mac (intel chip), Mac (apple chip), Windows, and Linux.
Installing Prerequisites for Project 0
Please refer to this page for a description of how to install a development environment needed to work on the group projects.
If you run into trouble installing any of the above, don’t panic! The easiest way to get answers is to go to our Course Discord Server and ask questions there. Alternatively, please send an email and we can help you out.
Creating your Initial Project 0 Clone using Github Classroom
Over the course of this semester we will rely on Github Classroom to manage assignments. For more information on Github Classroom please see here.
In this course, we will manage assignments in repositories hosted on Github. The moment you accept an assignment on Github Classroom, you will get access to your own repository that is a clone of the original repository containing the starter code. Your clone of this repository is private by default. This means that nobody except yourself and the course staff is able to see it.
You are responsible to keep the visibility of the repository and its content private. If you change your repository’s visibility to public or make the content of your repository available to others in any way, then you make yourself vulnerable to allegations of plagiarism - with all related consequences.
Please be also aware that by accepting an homework assignment you agree on sharing your name and your LSU email address in the context of this course with Github. Please be aware that the work you turn in for this course, along with the respective student identifiers will be submitted to Github for review, for providing feedback, for performance analysis, and for grading purposes.
Here’s what to do next:
- Open a browser and navigate to this url.
- If asked, create or select your name from the list
- Click the “Accept this assignment” button.
You should see a new page which says “You are ready to go!” The page will provide the link to your project 0 repo, e.g., https://github.com/hkaiserteaching/csc4103-spring2025-project0-your-name
. Click on that link.
You will now see the homepage for your project 0 repo.
At this point, you’ve created a clone of the starter repository on Github.
Next, if you are working on your local machine, you’ll want to create a clone of the project starter repository on your local machine as well. For that step you need to have all prerequisites for this course installed on your local computer (CMake, Git, Visual Studio Code).
If you click on the blue “Open in Visual Studio Code” now, you should see VSCode open a window on your local machine with the repository cloned. Use this only if you are working based on a local installation of the prerequisites.
If you prefer working fully online using codespaces, follow the instructions here to create a new Github Codespaces instance and attach a fully online version of VSCode to it.
Open the Repository in the Docker Container
This step is required only if you are working locally.
The starter repository has been set up in a way that allows to seamlessly run project in an docker environment. For this:
- Again, make sure Docker, VSCode, and the VSCode Remote Development Extension Pack are installed
- Choose
Reopen in Container
in VScode. For details refer this tutorial - Wait for the Docker container to be pulled.
- After the new VSCode window pops out you are good to go.
We have received reports that on some systems (MacOS and Linux) some of the files in the PintOS directories are not properly marked as being executable. Please manually set the executable flag for those files by issuing the following commands from a terminal window inside VSCode:
cd /pintos/src/utils/ chmod +x pintos pintos-gdb pintos-mkdisk pintos-set-cmdline pintos-test cd /pintos/src/tests/ chmod +x make-grade
This has to be done once only.
Next step: Welcome to PintOS