Linux System Programming Expert

Bedrock skills for all aspiring system and embedded programmers

What Participants' Say

“Without Linux System Programming, pursuing advanced courses like device drivers and embedded Linux is almost futile”

“The clarity that I gained on fundamental programming concepts was absolutely mind-blowing”

“With all my experience I wanted to skip this module, never did I expect it to change the way I thought about programming”

Program Schedules & Fee

Who Should Enroll

  • C programmers looking to get into System/Embedded programming as a career option
  • Microcontroller developers looking to upgrade their career as embedded Linux & device driver developers
  • Programming enthusiasts looking to master programming concepts on Linux

Program Schedules & Fee

  • Program Starts: 28th February 2022
  • Session Timings: 7:30pm – 9:00pm (Mon – Fri)
  • Training Mode: Online, live, interactive (zoom)
  • Program Duration: 35+ hrs.
  • Program Fee: 12,990/- ₹10,990/- plus GST @ 18% – Valid till 24th Feb.

Support Services

  • Missed sessions: Backup recording will be provided for missed sessions
  • Offline support: Delivered via Whatsapp
  • Batch transfers: Available within 1 year
  • Placement support: Offered on program completion (any experience category)

Interested. Apply Now

On receiving the application, we will contact you with further registration process

Know your Trainer

Raghu Bharadwaj

  • India’s leading corporate trainer, to over 40 companies
  • Author of one of best selling books “Linux Kernel Development” by Packt Publications, UK
  • Trained over 3000 participants across 7 nations
  • Attended by professionals from over 100 companies
  • Leading authority and speaker on the Linux Kernel
  • Clients include Xilinx, Qualcomm, Broadcom, NXP, Harman, Mercedes among others

Program Overview & Agenda

 

This program gives participants a deeper insight into the core mechanics of the Linux OS. This program helps them in writing robust system software or applications which effectively use the vast benefits Linux OS has to offer. This program also takes a sneak peek into the Linux kernel wherever necessary to conceptualize participant’s understanding. This course do not delve into developing user applications

Key takeaways

  • Move from conventional way of writing program to effective ways of doing it
  • Demystification of various programming concepts
  • Gain clarity on key Linux OS concepts
  • Gain ability to write synchronous programs on multicore architectures
  • Develop an appreciation for the Linux kernel

Course Pre-requisites

  • Participants must be good in C programming
  • Participants must be able to use text editors (vi, vim) on Linux

 

Program Contents

 

Click for detailed syllabus

Gnu compiler distribution

  • Understanding compile & build process
  • Tool chain
  • Object file analysis
  • Executable Images

Libraries

  • Introduction to libraries
  • Creating Static & Shared Libraries
  • Using Libraries
  • Managing dynamic libraries

Process management

  • Introduction to program loading
  • Process, defined
  • Understanding process address space
  • Kernel process descriptor
  • Introduction to Linux Process scheduler

Stack Analysis

  • Introduction to stack
  • How stack grows and shrinks
  • How function parameters are passed
  • How stack frames are created and destroyed

Application programming Interfaces (API)

  • Understanding need of API
  • API vs system calls
  • User mode/ kernel mode transitions
  • APIs and application portability

Managing process address space

  • Introduction to virtual address space
  • Stack allocations
  • Heap/Data segment management
  • Memory maps
  • Dynamic memory allocation & de-allocation
  • Memory locking

Linux I/O architecture

  • Introduction to components of I/O architecture
  • Objectives of Linux I/O model
  • Virtual file system
  • File system services
  • I/O cache
  • Understanding file descriptors & inode structures

File I/O operations

  • Introduction to common file APIs
  • Accessing file attributes
  • Standard I/O operations
  • File control operations

Signal management

  • Introduction to Signals
  • Linux signal types & categories
  • Signal generation and delivery
  • Linux signal management data-structures
  • Switching signal dispositions
  • Writing async signal handlers
  • Using signals for process communication
  • Blocking & Unblocking signal delivery

Concurrent application designs

  • Introduction to concurrent applications
  • Understanding need for concurrent apps
  • Standard Concurrency models

Process creation calls

  • Process creation calls (fork, vfork, execve)
  • Monitoring child process
  • Linux kernel process creation routines
  • Copy-on-write resources
  • Handling child process termination events
  • Linux threads interface (clone)

Posix Threads

IPC

  • Message Queue
  • Semaphore
  • Shared memory

What Participant’s are Saying

By looking at the brochure I felt that most of the stuff I already knew like Process Management, POSIX, Networking, libraires, object files stack etc. since I was working on these areas for 4 years.

But it was very wrong of me to assume that we already know what Mr. Raghu is going to teach and that it will not be beneficial or will waste time. Believe me – if you want to learn Linux come here with an empty cup – adapt to Mr. Raghu’s teaching style then only move on to drivers. (Not attending system programming is a very foolish attempt). If somebody wants to learn drivers he/she needs to go through system programming for following reasons:

  1. Experienced students – We mostly know theoretical stuff in comparison to what is taught in class on Linux. You will get to see practically the things we know exist in OSes with an elaborate real example with a brilliant background on each topic. It will strengthen your understanding of even the basics of topics. Trust Mr. Raghu on that. If you have passion for Linux, you cannot find a more insightful and interesting teacher. You will gain so many tips and tricks on Linux that you will surprise many.
  2. Freshers – You will learn more in 2 months than you will learn in 3 years in the industry
Alok

Software Engineer, Samsung

From 2.4 LPA to 11LPA. A huge jump of over 300% in my salary. Thank you TECH VEDA 

Jitender

Software Engineer, Qualcomm

Raghu sir has such a unique gift of bringing out the essence of every concept, that as students we understand what is information and what is actual learning. Absolutely impressive

Matheen

Software Engineer, Cognizant

FAQs

What are the pre-requisite skills to enroll for this program?

You must be good at C programming, Linux basic commands and vi/vim editor

How is the program delivered?

This program is delivered online through a live, interactive session. You must login whenever there is a live session to access it. This program does not have any recorded sessions. 

What if I miss some sessions due to work or other issues?

Do not worry, we have it covered. If you miss any session due to any reason, you can request to listen the backup recording at your convenient time

Can I access the course after completion of the program?

You will not be able to access the program after you complete your course. However you will have lifetime support for Q&A

What is the validity of my registration?

Your registration is valid for a period of 1 year. That is, once you make the payment you can take the online course within 1 year