The textbooks for the course include:

  1. Linux Kernel Development, 2nd edition by Robert Love
  2. Understanding the Linux Kernel, 3rd edition by Daniel P. Bovet and Marco Cesati
  3. The Linux Kernel Module Programming Guide by Peter Salzman

We will also be reading extensively from the Linux kernel. You may find the Linux Source Browser useful at either SUNY or useful.

We will also read a number of papers on operating systems.

  1. Virtual Machine Monitors: Current Technology and Future Trends (Rosenblum, Garfinkel)
  2. Xen and the Art of Virtualization (Barham, et. al.)
  3. Design and Implementation of the Second Extended Filesystem (Card)
  4. The Google Filesystem (Ghemahat)

The Linux kernel is written almost entirely in C, with a bit of assembly. You may find the following references useful for refreshing your memory of C and assembly language:

  1. The C Programming Language, 2nd edition by Kernighan and Ritchie
  2. Advanced Programming in the UNIX Environment, 2nd edition by Richard Stevens
  3. Programming in C on UNIX by A.D. Marshall
  4. Programming from the Ground Up by Johnathan Bartlett

You may also find the following Linux kernel resources useful:

  1. Linux Kernel Books
  2. Linux Device Drivers, 3rd edition

©2006 James Walden, Ph.D.