Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

Linux System Programming - A programmers/Practical Approach

via Udemy

Overview

Files, Memory and Process management, Fork, Signals, Threads, IPC - Pipes, FIFO, message Queue, Semaphores,Shared Memory

What you'll learn:
  • From basics to advanced Linux systems programming, with lots of hands on 'C' programming demos.
  • File operation, System call, Library functions, compiling using GNU-GCC, Blocking and Non Blocking call, Atomic operation, Race condition, User and Kernel mode
  • Process Management - Process creation, termination, Fork() system call, child-parent process, command line argument of process, Memory Layout of Process
  • Signals - signal handlers, sending signals to process, Default signal handlers.
  • Posix Threads - Thread creation, thread termination, Thread ID, Joinable and detachable Threads.
  • Thread Synchronisation - Mutex, Condition Variables
  • Inter Process Communication (IPC)- Pipes, FIFO, Posix Message Queue, Posix semaphore, Posix shared memory
  • Memory Management - Process Virtual Memory management, Memory segments(code, data, stack, Heap)

Note : This course is conducted by IT working Professional, and not by a Professional Instructor.


Q. What is the speciality of this course?

A. This is purely a Course on "Learning Programming using Linux", This course does not teach 'C'. Since this course is conducted by industry working professionals, This course tries to cover gap between academics and Industry, Also the last section Bonus - Students Q & A, contains the collective students questions and its solution to them. It is a regularly updating section.


Q. What is the Prior knowledge required for this course?

A. This course teaches from Basics of Linux Programming to Advanced, hence no prior knowledge on Linux is assumed, but should be energetic to learn Linux technology.


Q. Who is this course for?

A. This course is designed in mind from beginners(students) to intermediate professionals who want to learn Linux and Utilise the Open Source platform to help build their careers related in field of Linux systems Design and Development.


Q. What will be the outcome of this course?

A. The students upon completion will definitely have a SOLID understanding of Linux System Programming, For freshers this can be a good guide to crack interviews, for already working professionals they can start working as individual contributor in their projects, and definitely will be in par with the experienced colleagues.


Q. What are the contents of course?

In this course you will be learning the below Linux system programming. And more emphasis is given on the Programming part.

1. Introduction to Linux systems.

a. Linux architecture.

b. Writing 'Hello World' program, compiling using GCC and its execution.

2. What is system call and standard library function calls

3. Kernel and User mode in Linux

4. File operations

open(), close(), read(), write(), lseek()

Blocking and Non-Blocking calls.

Atomic operations, Race condition.

5. Memory Management and Virtual Memory

stack segment, code segment, heap segment, data segment,

Virtual memory management.

functions related to Memory allocation - Malloc(), calloc(), Realloc(), Auto variables, static variables.

6. Process Management

Process creation, Process termination, wait(), Process ID, fork() system call, Exec() family of system call, Parent-Child Process management,

Command line arguments of Process.

7. Signals

signal(), signal handlers, sending signals to process, ignoring and default signal actions.

8. Posix Threads

Thread creation, thread termination, thread ID, joinable and detachable threads.

9. Thread synchronisation

Mutex, Condition variables, Thread safe.

10. Posix - Inter Process communication.

Pipes, FIFO, Posix message Queue, Posix Semaphores, Posix Shared Memory.


NOTE - Ubuntu Distribution (Linux) is used for all Demo in this course.

Taught by

Mohan M

Reviews

4.3 rating at Udemy based on 983 ratings

Start your review of Linux System Programming - A programmers/Practical Approach

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.