Description
The course introduces the participant to programming in the C programming language in a Unix/Linux environment. The course focuses on Unix/Linux system calls and library functions, how to use them, and their underlying mechanisms. The course deals with many facets of the Unix/Linux operating system, including: Unix kernel structure, I/O, Signals, Timers, Processes, Threads, IPC mechanisms: Pipes, Shared memory, Message Queues, Semaphores, and Sockets using TCP and UDP. The course includes many programming examples that can serve as a reference or basis for the participants' work in the future. Time is given to writing and testing several programs to help the participants comprehend the complexity of Unix/Linux system programming, along with the satisfaction of knowing how to do it well.