Linux Kernel Device Drivers
The Linux Kernel Device Drivers course at Sankalp Tech enables you to write, compile, and debug Linux device drivers for real hardware. It goes beyond theory to help you understand kernel internals, driver models, memory management, interrupts, and kernel–hardware interaction.
Ideal for professionals aiming to specialize in embedded Linux, this course provides hands-on labs and real driver programming experience.
Curriculum
Kernel Classifications
- Monolithic Kernels
- Micro Kernels
- The User space & Kernel space
- Tool Chains, Libraries, The Makefile
Module Programming
- The Hello World Module
- Module Stacking
- Module Parameters
- System Calls
The Virtual File system
- Common File system Interface
- File system Abstraction Layer
- VFS Objects and Their Data Structures(super block, inode block, data block, boot block)
- Iterative & Concurrent servers
- Iterative Connectionless & Connection oriented servers
- Concurrent server implementation using multiple processes
Memory Management
- Kernel High level MMU
- Kernel Low level MMU
- Kernel Memory Allocators(slab, page, fragment, pool)
Interrupts Bottom Halves
- Soft irqs
- Tasklets
- Work Queues
Mechanisms for Kernel Synchronization
- Reader/ Writer Semaphores
- Reader/ Writer Spinlocks
- Atomic Operations
Memory Allocation in the kernel
Kernel Timers and Time Management
- HZ & Jiffies, Delays
- Kernel Timers
Porc FS
- Information about processes
- communication between kernel space and user space
- /proc/devices
Character Drivers and Operations
- Registering a System Call
- System Call Handler
- Service Routines
- Character Drivers
- Synchronous Driver model
Device Numbers
- Major and Minor Numbers
- Registering and Unregistering
- Static and Dynamic allocations
- Important Structures
File Operations
- File
- Inode
- Character Devices
cdev structure
- Adding, Allocating, Initializing and Deleting
- User Space Applications and Device Driver mapping
- Device file operations
- Access methods within the driver, open, read, write and close
- Advanced Character Drivers
- Ioctl implementations
- Wait queues and polling's
Accessing Hardware
- Accessing I/O Ports
- Accessing I/O Memory
Advance Linux Device Drivers
- USB Driver
- USB Architecture & Protocol
- Types of Descriptors
- URB structure creation
- USB subsystems
- USB Driver Layered Architecture
- USB Device Drivers
- Understanding the USB framework
- Programming the Control Endpoint Zero.
- Exchanging the Interrupt Messages
- File System Implementation
- Virtual File System & its Role
- File System Design & Challenges
- Kernel File System & and its Operation Sets
- Auto-probing & detection of a USB device
Ready to interface hardware with Linux and build custom drivers?
Enroll now and take the next step in your embedded Linux journey!
