Getting started
This course introduces students to system programming in Linux, focusing on how applications interact directly with the operating system through the kernel API. Students will move from basic exploration of the Linux environment to writing programs that manage files, processes, threads, interprocess communication, and network connections.
Sections
Bibliography
- Programming via Operating Systems, Vahram Martirosyan, Feb 2022
- The Art of Unix Programming, Eric S. Raymond
- W. Richard Stevens & Stephen A. Rago — Advanced Programming in the UNIX Environment (APUE), 3rd Edition
- W. Richard Stevens — UNIX Network Programming, Volume 1: The Sockets Networking API, 3rd Edition
- Remzi H. Arpaci-Dusseau & Andrea C. Arpaci-Dusseau — Operating Systems: Three Easy Pieces (OSTEP) read online
- Michael Kerrisk — The Linux Programming Interface (TLPI)
- The Linux man-pages project read online
- Beej’s Guides read online
- Operating Systems: Design and Implementation, Andrew S. Tanenbaum Albert S. Woodhull, Jan 1997
- Robert Love — Linux System Programming (O’Reilly, 2nd Ed.)
- Brian W. Kernighan & Dennis M. Ritchie — The C Programming Language (K&R)
- Structured Computer Organization, Andrew S. Tanenbaum, Jan 1984
- Operating system design: the XINU approach, D. Comer Timothy V. Fossum, Jan 1984
- Modern operating systems (2. ed.)., Andrew S. Tanenbaum, Jan 2001
- Linux Kernel in a nutshell, Greg Kroah-Hartman, Jan 2006