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.