System Programming with Linux
This System Programming with Linux course provides a deep understanding of the operating system architecture and low-level interfaces (principally, system calls and library functions) that are required to build system-level, multithreaded, and network applications on Linux and UNIX systems. The course consists of a mixture of detailed presentations coupled with a large number of carefully designed practical exercises that allow participants to apply the knowledge learned in the presentations.
By the completion of the course, participants will have the mastery needed to write complex systems, networks, and multithreaded applications on a Linux or UNIX system. Previous system programming experience (on Linux, UNIX, or any other operating system) is not required.
What Will I Learn?
- Low-level file I/O
- Files, directories, and links
- Process lifecycle: creation, termination, and waiting on child processes
- Creating processes and executing programs
- POSIX threads
- Interprocess communication (pipes, FIFOs, message queues, semaphores, shared memory)
- Network programming (sockets)
- Privileged programs (set-UID, set-GID) and secure programming
- Alternative I/O models (poll(), select(), signal-driven I/O, epoll)