, Operating System Design
Lauded for avoiding the typical vague, high-level survey approach found in
many texts, earlier editions of this bestselling book removed the mystery by
explaining the internal structure of an operating system in clear, readable
prose. The third edition of Operating System Design: The Xinu Approach
expands and extends the text to include new chapters on a pipe mechanism,
multicore operating systems, and considerations of operating systems being
used in unexpected ways.
The text covers all major operating system components, including the key
topics of scheduling and context switching, physical and virtual memory
management, file systems, device drivers, device-independent I/O, Internet
communication, and user interfaces. More important, the book follows a
logical architecture that places each component in a multi-level hierarchy. It
simplifies learning about operating systems by allowing the reader to
understand one level at a time without needing forward references. It starts
with a bare machine and builds the system level by level. In the end, the
reader will appreciate how all the components of an operating system work
together to form a unified, integrated platform that allows arbitrary
application programs to run concurrently.
The text uses a small, example system named Xinu to illustrate the concepts
and principles and make the discussion concrete. Because an operating
system must deal with the underlying hardware, the text shows examples
for the two basic computer architectural approaches used in the computer
, industry: CISC and RISC. Readers will see that most of the code remains
identical across the two architectures, and they can easily compare the
differences among the machine-dependent pieces, such as hardware
initialization code, device interface code, and context switch code.
Xinu code is freely available, and readers are strongly encouraged to
download the system and experiment by making modifications or
extensions. The Xinu web page, https://xinu.cs.purdue.edu, contains links to
the code from the book as well as instructions on how to run Xinu on
experimenter hardware boards. The page also provides links to a version
that runs on the (free) VirtualBox hypervisor. The reader can install
VirtualBox on their laptop or desktop, and then run Xinu without the need
for additional hardware.