Resources¶
The four books recommended and paper listed on Course Wiki: https://www.udacity.com/wiki/ud923/resources/text
Silberschatz, Galvin, and Gagne.
Operating System Concepts.
Wiley, 9th Edition, December 17, 2012.
Silberschatz, Galvin, and Gagne.
Operating System Concepts: Essentials.
Wiley, 2nd Edition, November 18, 2013.
Tanenbaum and Bos.
Modern Operating Systems.
Wiley, 4th Edition, December 17, 2012.
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau.
Operating Systems: Three Easy Pieces.
Arpaci-Dusseau Books, Version 0.80, May 2014.
Beej’s guides are also well regarded and free for browsing online (you can purchase copies as well).
The Linux Man-Pages Project is another excellent source of reference material that I use all the time (easy to browse through and search for specific system calls). This is maintained by the author of The Linux Programming Interface.
C References:
Harvard CS50 course on C and their reference site.
CS Education¶
Essential C (http://cslibrary.stanford.edu/101/)
Pointers and Memory (http://cslibrary.stanford.edu/102/)
Linked list Basics (http://cslibrary.stanford.edu/103/)
Point Fun With Binky Video (http://cslibrary.stanford.edu/104/)
Linked List Problems (http://cslibrary.stanford.edu/105/)
A pointer type in C is just the pointee type followed by a asterisk (*)…
int* - type: pointer to int
float* - type: pointer to float
struct fraction* - type: pointer to struct fraction
struct fraction** - type: pointer to struct fraction*
Why are pointer bugs so common?
Try to remember to assign your pointers to refer to pointees. Don’t be surprised when you forget.