Hello and welcome to the course of Linux system programming.
In this session we will have an introduction to Linux.
Here we will go through the course content followed by Introduction to Linux System Programming and
Introduction to Linux kernel.
And finally let's see the outcome of this course.
The course content covers basics to advanced Linux system programming with lots of hands on programming.
We learn the different file operations, discuss in depth of system calls and library functions.
What are the difference between system calls and library functions?
How to compile the code using GNU GCC.
What are blocking and non blocking calls?
Then we will learn concepts and importance of atomic operation and race condition.
Then let's learn an overview of user mode and much privileged mode that is kernel mode.
Then we will learn one of the most important concepts that is process management, which covers topics
like process creation and its termination, fork system call, child and parent process.
What is command line argument of a process?
And let's learn the different memory layout of a process.
Then we will learn more about signals and signal handlers.
What are default signal handlers?
How to send signals to process.
We will also learn memory management of a process.
Advantage of virtual memory and different memory segment like code segment, data segment, stack segment
and heap segment.
What are POSIX threads and how the threads are created and terminated?
Different features of thread like thread ID, joinable and detachable threads.
Also we will see difference between process and threads.
Thread synchronization techniques like mutex, condition variables
Finally, we learn on communicating between processes, also called IPC, that is, inter-process communication.
Different IPC mechanism like pipes, Fifo, Posix message queue, Posix semaphores and Posix shared
memory.
Thank you.