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:
- 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.
- Freshers – You will learn more in 2 months than you will learn in 3 years in the industry
From 2.4 LPA to 11LPA. A huge jump of over 300% in my salary. Thank you TECH VEDA
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
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