Classic OS Textbooks
- Modern Operating Systems (3rd edition). Andrew S. Tanenbaum. Prentice Hall, 2008.
- Operating System Concepts (8th edition). Abraham Silberschatz, Peter Baer Galvin and Greg Gagne. John Wiley & Sons, 2008.
C Programming
- The C Programming Language (2nd edition). Brian W. Kernighan and Dennis M. Ritchie. Prentice Hall, 1988.
Linux Kernel Internals
x86 Assembly Language Programming
(Thanks to Eddie Kohler and MIT's 6.828 course for some of the mmaterial below.)
- PC Assembly Language, Paul A. Carter, November 2003.
A good description of x86 assembly language and assembly language in general, including some stuff you
ideally know already. You might prefer to read this online, rather than print it out; it's a quick read.
Warning: This book uses "Intel" assembly syntax, in which instructions are written as 'instr dst, src'.
GCC uses "AT&T" assembly syntax, in which they are written as 'instr src, dst'.
- Brennan's Guide to Inline Assembly, Brennan "Bas" Underwood.
A short and sweet description of how to use inline assembly instructions with GCC. Includes a description of the "AT&T"
assembly syntax used by GCC.
- IntelĀ® 64 and IA-32 Architectures Software Developer Manuals.
Reference manual for Intel processors. Available in multiple forms (3 individual volumes or a combined book).
Volume 1 describes the basic architectures. Volume 2 contains the instruction sets. Volume 3 is a system programming guide.
Don Porter's Reference Page
You can find some other useful references on Prof. Porter's course page.