Linux System Programming

Linux is a Unix-like and mostly POSIX-compliantcomputer operating system (OS) assembled under the model of free and open-source software development and distribution. Linux is widely used OS. Learning Linux is most essential part of computer science and programming.

This course provides system programming, memory management, process management. We add special attention to thread and Inter process communication. The course is augmented with rich lab and programming examples (https://github.com/mkarya/Training-Courses). Student can consider RHEL certification post this course.

Key Takeaways

  • Solid understanding of Linux process and scheduling
  • Memory management
  • Threading
  • Inter process communication
  • Socket programming
  • Signal handling

Course Contents

1. Introduction

  • Linux Introduction
  • Architecture
  • History

2. Process Management

  • Process Privileges
  • Setuid/Setgid
  • Process execution
  • Fork and exec - Family of system calls
  • Orphan and Zombie process
  • Advanced Signaling with POSIX based custom signal handler
  • Signal mask and signal flags
  • Re-entrant safety Issues
  • Executing critical code : blocking signal

3. Memory

  • Memory overview
  • Memory fragmentation
  • An Introduction to Virtual Memory Concepts Process (Virtual) Image
  • Common Memory Issues Memory Leaks malloc() and fork()
  • OS Memory Overcommit Behaviour
  • Process memory layout

4. The Linux Scheduler – User space

  • Introduction
  • POSIX Scheduling Policies
  • Userspace API related to scheduling

5. Multithreading on Linux

  • Introduction to threading
  • Thread Management
  • Threads creation
  • Terminating Thread Execution
  • Joining Threads
  • Synchronization Issues
  • Mutex Variables
  • Mutex Variables Overview Creating / Destroying Mutexes Locking / Unlocking Mutexes Example: Using Mutexes
  • POSIX Scheduling models

6. Inter process communication

  • Introduction
  • Architecture
  • Pipe
    • Unnamed Pipe
    • Named Pipe
  • Shared memory
  • Message queue
  • Socket
  • Semaphores

Course Duration: 40 hrs

Training Options:

  • Classroom session at client site (Mon—Friday)
  • Classroom sessions (Sat & Sun)
    Career Booster Technologies,
    No.147/10, 4th Floor Krishna Mansion,
    9th Cross, JP Nagar 1st Phase
    Bangalore - 560078.
  • On-line sessions (Mon to Fri)
    Web conference tools (Audio and Video)

Contact us (for more details and a free demo session )

  • Email : training@cbtech.in
  • Mobile : +91 9945722611

Contact us:- (for more details and a demo session )
Web : http://www.cbtech.in/
Email : training@cbtech.in
Mobile : +91 9945722611

All Rights Reserved to Career Booster Technologies,Bangalore