Operating Systems
-
Operating Systems: Three Easy Pieces. Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau.
The book is available on line and there is an option to purchase a hardcopy of the book. We will be using some of this book's chapters.
-
Operating Systems Concepts.. Abraham Silberschatz, Peter B. Galvin, Greg Gagne.
The book is a classic reference of Operating Systems. Covers OS concepts and provides examples from existing OSes.
-
Modern Operating Systems. Andrew S. Tanenbaum.
Another classic reference. The book is more implementation focused with case studies that cover some of the popular OSes.
C Programming
-
The C Programming Langauge (2nd Edition). Brian W. Kernighan, Dennis M. Ritchie.
This is "the" C book, covers the language and some of the standard C libraries. This is a classic.
-
C: A Reference Manual (5th Edition). Samuel P. Harbison, Guy L. Steele Jr.
Provides a thorough treatment of the C language, common libraries and portability. This is one of the best reference books on C.
-
Learn C The Hard Way.
Online book with a hands on approach that covers topics only through examples.
Unix
-
Unix Tutorial for Begginers
If you are new to Unix and you want to get the basics down this is a must.
-
The Design of the UNIX Operating System. Maurice J. Bach.
Old but classic, explores some of the core algorithms and structures that make up the UNIX operating system as well as their relationship to the user interface.
-
The Linux Documentation Project.
A gateway to HOWTOs, guides and manuals that you can read online.
info
and man
programs.
Computer Architecture and Assembly
-
Computer Organization and Design, Fourth Edition: The Hardware/Software Interface. David A. Patterson, John L. Hennessy.
Covers computer architecture and assembly language.
-
Computer Architecture, Fifth Edition: A Quantitative Approach (5th Edition). John L. Hennessy, David A. Patterson.
Covers advanced topics on memory hierarchy design, instruction sets, instruction level parallelism. More of an advanced book on the topic; the next book to read after "Computer Organization and Design, Fourth Edition: The Hardware/Software Interface"
-
Assembly Language for x86 Processors (6th Edition). Kip R. Irvine
Covers x86 assembly. This is what most computers use these days.