Resources

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

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*
https://dl.dropbox.com/s/i8j55mnop7p68cz/Screenshot%202018-08-14%2023.22.27.png?dl=0

Why are pointer bugs so common?

Try to remember to assign your pointers to refer to pointees. Don’t be surprised when you forget.