Get the latest tech news
Advanced Programming in the Unix Environment
In this course, students will learn to develop complex system-level software in the C programming language while gaining an intimate understanding of the Unix operating system (and all OS that belong to this family, such as Linux, the BSDs, and even Mac OS X) and its programming environment. Topics covered will include the user/kernel interface, fundamental concepts of Unix, user authentication, basic and advanced I/O, fileystems, signals, process relationships, and interprocess communication.
Topics covered will include the user/kernel interface, fundamental concepts of Unix, user authentication, basic and advanced I/O, fileystems, signals, process relationships, and interprocess communication. DateTopicReadingLinks2024-09-09Introduction, UNIX history, UNIX Programming BasicsStevens: Chapters 1, 2 Unix history and basic features Week 01, Segment 1: Introduction[ slides] [ video lecture] [ transcript]2024-09-16File I/O, File SharingStevens: Chapter 3 Week 02, Segment 1: File Descriptors[ slides] [ video lecture] [ transcript]2024-09-23Files and DirectoriesStevens: Chapter 4 Week 03, Segment 1: stat(2) intro[ slides] [ video lecture] [ transcript]2024-09-30Filesystems, System Data Files, Time & DateStevens: Chapter 4, 6 File Systems and Storage Models: 4.4.1, 4.5 - 4.7 Week 04, Segment 1: The Unix Filesystem[ slides] [ video lecture] [ transcript]2024-10-07UNIX tools: cc(1), make(1), revision control, diff(1), patch(1), gdb(1) CVS DocumentationMini FAQ about the misc libc/gcc crt files Debugging with GDB Guide to Faster, Less Frustrating Debugginggdb TutorialGit Week 05, Segment 1: The Unix Development Environment[ slides] [ video lecture] [ transcript]2024-10-14 Fall Recess 2024-10-15Process Environment, Process Control Note: Tuesday Class Week 06, Segment 1: Memory Layout of a Process[ slides] [ video lecture] [ transcript]2024-10-21Process Groups, Sessions, SignalsStevens: Chapter 9, 10 POSIX Terminal Interface DescriptionShichao's NotesFreeBSD Process Management(from "The Design and Implementation of the FreeBSD Operating System") Week 07, Segment 1: The Login Process[ slides] [ video lecture] [ transcript]2024-10-28Interprocess Communication IStevens: Chapter 15 Shared Memory IntroductionSemaphores in LinuxInterprocess communication using POSIX message queues in LinuxPOSIX Message Queues Week 08, Segment 1: Interprocess Communications Intro[ slides] [ video lecture] [ transcript]2024-11-04Interprocess Communication IIStevens: Chapter 16 / 17 BSD IPCHow Linux creates sockets and counts themHow Linux allows TCP introspectionThe C10K problemIPC Buffer Sizes Week 09, Segment 1: socketpair(2)[ slides] [ video lecture] [ transcript]2024-11-11Dæmon Processes, HTTP / Group Project Discussions Stevens: Chapter 13 Week 10, Segment 1: Dæmon Processes[ slides] [ video lecture] [ transcript]2024-11-18Shared Libraries How to read an ExecutableIan Lance Taylor's blog post series on linkersLinkers and LoadersHow To Write Shared LibrariesTool Interface Standard (TIS) ELF SpecificationGNU indirect function support (IFUNC)The Executable and Linkable Format (ELF) Week 11, Segment 1: The Executable and Linkable Format[ slides] [ video lecture] [ transcript]2024-11-25Advanced I/O: Nonblocking I/O, Polling, and Record Locking / Encryption in a NutshellStevens: Chapter 14 Week 12, Segment 1: syslog(3)[ slides] [ video lecture] [ transcript] Lecture Slides(previous semester, includes section on encryption basics) 2024-12-02Restricting processes / Containers Course NotesThread scheduling and related interfaces in NetBSD 5.0CPU Pinning and CPU Sets Week 13, Segment 1: POSIX ACLs[ slides] [ video lecture] [ transcript]2024-12-09Review Final Assignment: sish(1)
Or read this on Hacker News