Linux Kernel Infrastructure & Programming
Comprehensive discussion on core Linux Kernel infrastructure & its sub-systems
Who is it for
This course is for Linux developers who are looking to work on device drivers for embedded Linux systems
What you will learn
Upon program completion you will be familiar with the fundamentals of device drivers, including architecture, types, and development environment setup
Who will be your Mentor
Learn from Raghu Bharadwaj, India’s leading Linux mentor, consultant and author
Program Contents
- Device Drivers defined
- Linux Driver model
- Types of Linux drivers
- Driver stacks
- Synchronous drivers defined
- Driver registration and de-registration
- Driver file interface
- Device file operations
- Driver data structures
- Device Configuration ops
- Wait Queues & polling
- Memory mapping
- What is DMA?
- DMA Directly to User
- DMA and Interrupts
- DMA Memory Constraints
- DMA Masks
- DMA API
- DMA Pools
- Scatter/Gather Mappings
- Device Addresses
- Port mapped I/O
- Interacting with port mapped devices
- Memory Mapped I/O
- Reserving address space MMIO
- MMIO Access
- Device Access side effects
- Device access from u-space
- Understanding Interrupts
- Linux Interrupt handlers
- Implementing Driver ISR
- Need for deferred routines
- Linux Deferred Routines
- Interrupt event management
- What are Platform Drivers?
- Main Data Structures
- Registering Platform Devices
- An Example
- Hardcoded Platform Data
- The New Way: Device Trees
- What are Device Trees?
- What Device Trees Do and What They Do Not Do
- Device Tree Syntax
- Device Tree Walk Through
- Device Tree Bindings
- Device Tree support in Boot Loaders
- Using Device Tree Data in Drivers
- Coexistence and Conversion of Old Drivers
- What are ioctls?
- Driver Entry point for ioctls
- Defining ioctls
- Unified Device Model
- Basic Structures
- Real Devices
- sysfs
- kset and kobject examples
- What are MTD Devices?
- NAND vs. NOR vs. eMMC
- Driver and User Modules
- Flash Filesystems
- I2C
- SPI
- GPIO
- USB Topology & Terminology
- Endpoints
- Descriptors
- USB Device Classes
- USB Support in Linux
- Registering USB Device Drivers
- Moving Data
- Example of a USB Driver
- PCI Device Drivers
- Locating PCI Devices
- Accessing Configuration Space
- Accessing I/O and Memory Spaces
- PCI Express
- Understanding Block driver model?
- Buffering
- Registering a Block Driver
- gendisk Structure
- Request Handling
- Network Layers and Data Encapsulation
- Datalink Layer
- Network Device Drivers
- Loading/Unloading
- Opening and Closing
- net_device Structure
- net_device_ops Structure
- sk_buff Structure
- Socket Buffer Functions
- texttt {netdev_printk() and Associates
- Transmitting Data and Timeouts
- Receiving Data
Who Should Enroll
-
- Application developers looking to upskill on Linux kernel infrastructure
- System programmers looking to build base for learning device drivers
- Linux enthusiasts looking to gain insights into working of core sub-systems of kernel
Program Schedules & Fee
- Program Starts: 19th October 2024
- Session Timings: 10am – 1:30pm (Weekends – Sat. & Sun.)
- Training Mode: Online live (zoom)
- Program Duration: 20+ hrs. (4 weekends)
- Program Fee: ₹14,160/- (Inclusive of GST)
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
- Leading Linux mentor. Trained over 40 clients including Xilinx, Qualcomm, Broadcom, NXP, Harman, Mercedes among others
- Trained over 3000 participants across 7 nations
- Attended by professionals from over 100 companies
- Leading authority and speaker on the Linux Kernel
FAQs
You must be good at C programming and familiar with basic Linux commands, vi/vim editor
This program is delivered online through a live, interactive session. You must login whenever there is a live session to access it. This program may have few recorded sessions.
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
Your registration is valid for a period of 1 year. That is, after you make the payment you can take the program once within 1 year