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