Table of Contents

Welcome to PintOS

Introduction

PintOS is a simple operating system framework for the 80x86 architecture. It supports kernel threads, loading and running user programs, and a file system, but it implements all of these in a very simple way. In the PintOS projects, you will strengthen its support in all three of these areas. You will also add a virtual memory implementation.

PintOS could, theoretically, run on a regular IBM-compatible PC. Unfortunately, it is impractical to supply every student a dedicated PC for use with PintOS. Therefore, we will run PintOS projects in a system simulator, that is, a program that simulates an 80x86 CPU and its peripheral devices accurately enough that unmodified operating systems and software can run under it. In class we will use the Bochs and QEMU simulators. PintOS has also been tested with VMware Player.

These projects are hard. They have a reputation of taking a lot of time, and deservedly so. We will do what we can to reduce the workload, such as providing a lot of support material, but there is plenty of hard work that needs to be done. We welcome your feedback. If you have suggestions on how we can reduce the unnecessary overhead of assignments, cutting them down to the important underlying issues, please let us know.

You will have to have an understanding of a variety of topics in order to understand operating systems and how they really work. This includes some knowledge of computer architecture (especially x86 cores), how software interacts with the hardware, some basic understanding of assembly code, and last but not least, a solid grasp of the C programming language. Having some knowledge on how to interact with a Linux terminal shell and how to use VSCode will help as well. We will try to give you some introduction to those topics during the lectures and by providing additional materials. However, in the end you will have to read up on various things while working on the assignments and projects.

History

PintOS was originally developed at Stanford by Ben Pfaff blp@cs.stanford.edu to substitute for the old OS course project Nachos. After more than a decade of iterations, PintOS has been adopted by over fifty institutes as the OS course project, including Stanford, UC Berkeley, Carnegie Mellon, Johns Hopkins, and so on. You can read the original PintOS paper (Yes, they even wrote a paper for it !) to learn the details of PintOS’s design philosophy and its comparison with other instructional operating system kernels, e.g., JOS, Nachos, GeekOS, and so on.

Why the name “PintOS”?

First, like nachos, pinto beans are common Mexican food. Second, PintOS is small and a “pint” is a small amount. Third, like drivers of the eponymous car, students are likely to have trouble with blow-ups. — Ben Pfaff

For more information and an extensive introduction to PintOS, please carefully read this document.

What’s next?

In the next chapter, you will boot PintOS for the first time, and get familiar with its debugging and testing tools. You will use these utilities throughout the semester again and again and again. So read carefully and patiently!

Next step: Booting PintOS.