iMobile Computing Technology . . . .


Course     : Linux Device Driver  Programming  - Download PDF

Duration     : 3 days 
Dates        : As per mutual agreement
Time          : 6 Hr/Day (Minimum)
Eligibility     : BE/BTech/ME/MTech (CSE / E&TC / Electronics) students
Corporate   : Training with enhabced  labs and customization for working professionals. 
Key Objectives     : 
   1. Good experience on Linux kernel development
   2. Good understanding about Key principles of Linux OS
   3. Expertise on Linux device driver
programming
Results       : At the end of training session student will get good expertise on device driver and kernel level programming
Pre-requisite: Basic knowldge Of Linux
DAY-1
1. Linux OS Architecture
•    Linux Features
•    Linux Kernel Source Directory Structure  
•    Linux Kernel Components
•    User Mode Vs Kernel Mode
•    System Initialization –Linux Booting Process
LAB1: Exploring on kernel directory structure and files responssible for booting

2. Kernel compilation

• Understand kernel configuration and build process
Importance of Makefiles
Procedure to reconfigure and recompile the kernel
LAB2:  Rebuild kernel for new kernel

3. Detail study of Linux OS components
         - Process Management
         -  Thread Management
         -  Interrupt Management and Signal handling
LAB3: How To create and terminate processes?
LAB4:  How to control Multithreading?
LAB5: How to handle signals?
DAY-2
4. Kernel Module programming
• Introduction to Modules
• Writing Your first kernel module
• Module Related Commands
• Statically linked vs Dynamically linked
• Exporting symbols from modules
• The kernel symbol table
• Concurrency in the kernel
• Module Parameters
• Version dependency
LAB6: How to write kernel module and install it into the kernel?
LAB7: How to initialize and use kernel variables?
LAB8: How to achieve synchronization among kernel modules?
LAB9: How to control kernel parameters and pheripherals,ports through kernel module programming?
5. Introduction To Device driver
•    Devices and Device Driver (DD)
•    Types Of DD
•    Introduction to Virtual File System (VFS)
LAB10: Explore on /dev directory

6. Character Device Drivers
• Registering a character device driver
• File operations and ioctls to control char type of devices
• Reading and writing into char devices
LAB11: How to write char DD?
LAB12; How to register DD and map file operations to VFS?
LAB14: Demostarte accessing device driver from application program.

DAY-3
7. Block Device Drivers
Understand how block devices works
• Block DD registrations, File operations and ioctls
• Handling and controlling requests
• File sytsem (FS)  introduction and types
Mounting and formating FS for virtual block device
LAB15: Write RAM type of disk driver

9. Network Device Drivers
Understand how network devices work
The net_device structure in detail
• Packet transmission and reception
LAB16:
Simulating a network device

10. Debugging tools and techniques
• Introduction to Application level debugging
• Introduction to kernel level debugging technique
LAB17: Demostrate gdb for application program debugging
LAB18: Demostrate kdb/kgdb for kernel space program and kernel level debugging

Further Reference and guidelines will be provided for Linux device driver and kernel space programming.







HomeTrainingProjects | News | Download | ContactUs 

Copyrights @ iMCT