Think OS

A Brief Introduction to Operating Systems

Description

Think OS is an introduction to Operating Systems for
programmers.

In many computer science programs, Operating Systems is an advanced
topic. By the time students take it, they usually know how to program
in C, and they have probably taken a class in Computer
Architecture. Usually the goal of the class is to expose students to
the design and implementation of operating systems, with the implied
assumption that some of them will do research in this area, or write
part of an OS.

This book is intended for a different audience, and it has different
goals. I developed it for a class at Olin College called Software
Systems.

Most students taking this class learned to program in Python, so one
of the goals is to help them learn C. For that part of the class, I
use Griffiths and Griffiths, Head First C, from O'Reilly Media. This
book is meant to complement that one.

Few of my students will ever write an operating system, but many of
them will write low-level applications in C, and some of them will
work on embedded systems. My class includes material from operating
systems, networks, databases, and embedded systems, but it emphasizes
the topics programmers need to know.

This book does not assume that you have studied Computer
Architecture. As we go along, I will explain what we need.

If this book is successful, it should give you a better understanding
of what is happening when programs run, and what you can do to make
them run better and faster.

The current version of this book is an early draft. While I am working
on the text, I have not yet included the figures. So there are a few
places where, I'm sure, the explanation will be greatly improved when
the figures are ready.