Topics: 1. HW0 using my Linux-In-The-Browser minicourse
Coursebook Reading: Chapter 3
Topics: 2. Dive into C programming
See Lecture 2 on ClassTranscribe
Topics: 3. man,asprintf,free,assert
See Lecture 3 on ClassTranscribe
Topics: 4. getenv, scanf, getline, fork
See lecture 4 on ClassTranscribe
Topics: 5. fork and waitpid
Coursebook Reading: Chapter 4
See lecture 5 ClassTranscribe
Topics: 6. The fork-exec-wait pattern
See lecture on ClassTranscribe
Topics: 7. Introducing POSIX signals to suspend and kill child processes. SIGSTOP, SIGKILL, SIGINT
Topics: How to build a memory allocator. Placement algorithms. Fragmentation.
Coursebook Reading: Chapter 5
Topics: Hone your pointer skills when writing malloc and free.
Topics: Memory allocators part 2.
Coursebook Reading: Chapter
Topics: Introducing pthreads. stacks. Concurrency programming gotchas.
Coursebook Reading: Chapter 6
Topics: Introducing pthreads. stacks, shared memory. creating and joining. Concurrency programming gotchas.
Topics: Why we need Mutex locks and semaphores. Basic usage of pthread implementations. Common gotchas.
Coursebook Reading: Chapter 7
See lecture on ClassTranscribe.
Topics: Mutex and Condition Variable examples. How to implement a lock (The critical section problem).
Topics: Incorrect attempts to solve the Critical Section Problem. Introduction to Condition Variables.
Topics: Condition Variables. Implementing a semaphore using a Condition Variable.
Topics: Implementing a barrier. Implementing Producer Consumer.
Coursebook Reading: Chapter 8
Topics: The Dining Philosophers problem
Topics: Virtual memory
Coursebook Reading: Chapter 9
Topics: Moving data using pipes, seekable streams, named pipes, behavior with fork
Topics: Working with files
Topics: Robust error handling. EINTR. Intro to TCP,UDP,IP
Coursebook Reading: Chapter 11
Topics: TCP/IP Header. IPv4 exhaustion. A web client
Topics: Passive sockets. The 4 server calls and what they do. Gotchas.
Topics: ext2/3/4 filesystem, index nodes (inodes), superbocks, ZFS / BtrFS
Coursebook Reading: Chapter 12
Topics: Symbolic links, hard links, directory searching, intro to permissions
Topics: File permissions, directories, file globbing, intro to RAID
Topics: Redundant Array of Inexpensive Disks (RAID), the various RAID levels
Topics: Scheduling examples
Coursebook Reading: Chapter 10
Topics: Intro to select, poll, and epoll
Topics: Disks and Signals
Coursebook Reading: Chapter 13
Topics: Working with Signals
Topics: TCP handshakes, QUIC, HTTP/1.1
Topics: Remote Procedure Calls
Topics: Systems Concepts Review
Coursebook Reading: Chapter 15
Coursebook Reading: Chapter 14