Preface
To Everyone
Welcome to this book! We hope you’ll en j oy readin g it as much asweenjoyed
writing it. The book is called Operating Systems: Three Easy Pieces,andthetitle
is obviously an homage to one of the greatest sets of lecture notes ever created, by
one Richard Feynman on the topic of Physics [F96]. While this book will undoubt-
edly fall short of the high standard set by that famous physicist, perhaps it will be
good enough for you in your quest to understand what operatingsystems(and
more generally, systems) are all about.
The three easy pieces refer to the three major thematic elements the book is
organized around: virtualization, concurrency,andpersistence.Indiscussing
these concepts, we’ll end up discussing most of the importantthingsanoperating
system does; hopefully, you’ll also have some fun along the way. Learning new
things is fun, right? At least, it should be.
Each major concept is divided into a set of chapters, most of which present a
particular problem and then show how to solve it. The chaptersareshort,andtry
(as best as possible) to reference the source material where the ideas really came
from. One of our goals in writing this book is to make the paths of history as clear
as possible, as we think that helps a student understand what is, what was, and
what will be more clearly. In this case, seeing how the sausagewasmadeisnearly
as important as understanding what the sausage is good for
1
.
There are a couple devices we use throughout the book which areprobably
worth introducing here. The first is the crux of the problem. Anytime we are
trying to solve a problem, we first try to state what the most important issue is;
such a crux of the problem is explicitly called out in the text, and hopefully solved
via the techniques, algorithms, and ideas presented in the rest of the text.
There are also numerous asides and tips throughout the text, adding a little
color to the mainline presentation. Asides tend to discuss something relevant (but
perhaps not essential) to the main text; t ips tend to be general lessons that can be
applied to systems you build. An index at the end of the book lists all of these tips
and asides (as well as cruces, the odd plural of crux) for your convenience.
We use one of the oldest did act ic met h ods, the dialogue,throughoutthebook,
as a way of presenting some of the material in a different light. These are used to
introduce the major thematic concepts (in a peachy way, as we will see), as well as
to review material every now and then. They are also a chance towriteinamore
1
Hint: eating! Or if you’re a vegetarian, running away from.
iii