_These additional project notes are intended for ITU students completing the oslab โ€“ Operating Systems and C๐Ÿ”— autumn 2025 course. (ITU students only.)

Previously, I have set up a development environment for Pintos locally on a WSL. Now I want to prepare to work on the actual lab repository.

Pintos versions

This section is important for understanding the following project notes.

In the previous article, I set up Pintos from its Git repository found at Pintos Projects: Introduction (CS212)๐Ÿ”—, from the CS112/CS212 course at Stanford University. This site is dated 2021.

On the repository for our OSC class: OSC/oslab25๐Ÿ”— (ITU students only.), I found that this is a different version of Pintos. From what I can tell, this version matches the one found at a CS140 course dated 2009. Found at this link: Pintos Projects: Introduction (CS140)๐Ÿ”—.

There are considerable changes between these two iterations of the projects.

  • The version of Bochs/QEMU virtual machine to use was bumped from 2.2.6 to 2.6.11.
  • An easier to use build script for Bochs was added. Less environment setup.
  • Updates and fixes to the Perl utilities included with the project.
  • Minor edits in more than 30 of the C code pages related to the VM version bump and other improvements.

Upgrading the OSC lab

I want to continue my lab work using the newer development environment. Here is how I have proceeded:

1. Prepare the lab

  1. Obtain a fork of the OSC lab OSC/oslab25๐Ÿ”— (ITU students only.) like with previous labs.
  2. Clone the project to the WSL. Place it next to the existing development environment for Pintos. git clone
  3. Create a new branch with your initials. git checkout -b [<new_branch>]

2. Copy development environment

Copy the working development environment into the lab.

In example: If my terminal is at my working environment at ~/repos/pintos/src, then I can copy this project into my OSC lab at ~/repos/oslab25 as follows:

cp -a . ~/repos/oslab25

3. Edit environment

When I first set up the development environment for Pintos, I added some utilities to my ~/.bashrc:

# Pintos project
export GDBMACROS="/home/rono/repos/pintos/src/misc/gdb-macros"
export PATH="$PATH:/home/rono/repos/pintos/src/utils"

However, I want to continue work in my new lab fork, and so these will need to be changed:

# Pintos project
export GDBMACROS="/home/rono/repos/oslab25/misc/gdb-macros"
export PATH="$PATH:/home/rono/repos/oslab25/utils"

4. Test and commit

Now would be the time to test the lab update. Is it possible to clean, build, and test the threads source code?

When satisfied, commit the changes with a suitable message. This message should make it obvious what has been changed, and clearly state the source of the new project material.

In example:

Copied Pintos project from source.

Source is:ย http://cs212.scs.stanford.edu/Pintos.git

I have successfully set up a developer environment for Pintos locally with this project source.

Co-authored-by ...

To really hit the point home, consider adding the author of the CS212 source repository as a co-author.