Fall 2017 :: CSE 306 — Operating Systems

xv6

  • xv6 — a simple, Unix-like teaching operating system. Russ Cox, Frans Kaashoek and Robert Morris (free online book).
    A very useful introduction to the organization and source code of the xv6 operating system. Reading it can significantly help you with the labs.
  • xv6 code booklet. Code line numbers in the xv6 book above refer to code lines in this booklet.

OS Textbooks

C Programming

Intel and AMD manuals

Unix Programming

Linux Kernel Internals

Virtual Machines

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.

PC Hardware Programming