Skip to main content

Reference and Selective Reading

You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks and external URLs only when you need alternate exposition, more worked examples, or the canonical reference for a specific syscall.

Source Roles​

SourceRoleWhy it is here
The C Programming Language (K&R)Primary teaching sourceChapter 8 is the only book chapter in the local library that directly teaches the UNIX system interface.
Linux man pages (man7.org)Primary external referenceThe authoritative specification for every syscall. The RETURN VALUE and ERRORS sections are not optional reading.
Beej's Guide to Network ProgrammingPrimary external tutorialThe definitive free socket-programming tutorial.
Beej's Guide to Unix IPCPrimary external tutorialWorked examples of pipes, shared memory, and semaphores.
LLNL POSIX ThreadsPrimary external tutorialClear and current pthread introduction.
Computer Organization and Design (Patterson & Hennessy)Selective supportChapter 5.4 (virtual memory) and Chapter 7 (parallelism) provide hardware context.
Code (Petzold)BackgroundChapters 25-26 are excellent for the conceptual picture of peripherals and the OS boundary.
SICPPeripheralNot used in this module.
CSAPP (Bryant & O'Hallaron)Local supportThe best local second source for exceptional control flow, virtual memory, and concurrent programming

Read Only If Stuck​

Cluster 1: Processes and System Calls​

Cluster 2: File Descriptors and I/O​

Cluster 3: Memory Management in Practice​

Cluster 4: Concurrency Primitives​

Cluster 5: Sockets and Debugging Tools​

Note on CSAPP​

The local Semester 4 library now includes Computer Systems: A Programmer's Perspective. For Cluster 1 and Cluster 4 especially, prefer its Chapter 8 chunks on fork/exec/wait and signals and its Chapter 12 chunks on threads and synchronization before reaching for a secondary external source.