Linux Device Drivers: Programming at the Kernel Level
Experience the Freedom of eLearning
- Start today with online video training
- Get questions answered by the instructor
- Receive course updates for one year
- Learn more with our expert instructors
| Preview this Course Here | Online eLearning Benefits | How to Purchase This Course |
|---|---|---|
|
Videos
There are several great features that come with this course. The Course Transcript tracks your progress and allows you to pick up where you left off. You can view or email your transcript. The course comes with documentation found in Downloads Tab. You have access to the course and all videos for 1 year. Full screen viewing option available (see icon on bottom right corner of video).
Start Learning Linux Device Drivers: Programming at the Kernel Level Today!
List Price:
$700
Your Price:
$497
| Video Title | Minutes |
|---|---|
| 00: Course Introduction | 5 |
| 01: So What is a Device Driver? | 21 |
| 02: Kernel Loadable Modules | 17 |
| 03: Basic Character Driver | 17 |
| 04: Debugging Kernel Code | 18 |
| 05: Blocking I/O | 18 |
| 06: Accessing Hardware | 18 |
| 07: Handling Interrupts | 22 |
| 08: Memory Allocation | 15 |
| 09: Time | 27 |
| 10: Block Drivers | 20 |
| 11: Network Drivers | 29 |
| 12: PCI Drivers | 23 |
| 13: USB Drivers | 26 |
| 14: Linux Driver Model | 15 |
| 15: Integrating a Driver With The Kernel Source Tree | 35 |
| 16: Course Summary & Evaluation | 6 |
| Total: | 5 Hours 32 Minutes |
Start Learning Linux Device Drivers: Programming at the Kernel Level Today!
Downloads
NOTE: Click link then select "Save"
- Student Guide
- Lab Setup Guide
- Exercise Guide
- Exercise Code Files
Related Links
- Course Survey
For more information, contact us or call 1-877-546-4446
Start Learning Linux Device Drivers: Programming at the Kernel Level Today!
Description
This Linux online training course introduces Linux device drivers and shows how they interact with the Linux kernel. Numerous programming exercises reveal the rich set of kernel APIs that provide a multitude of services to driver programmers. This training teaches you how Linux handles asynchronous I/O in a way that is totally transparent to applications. You'll examine the unique problems of debugging in Kernel space. Perhaps most important, you'll see how much of a device driver involves interactions with the kernel that have nothing to do with accessing physical hardware. Although the exercises are carried out on a PC, much of the code is easily ported to other architectures supported by Linux.
Related Training
- Course: Hands-On Embedded Linux
- Podcast: Open Source Software-What Is It And What Do You Need To Know About It?
- Podcast: Why Linux Isn't Real-Time And What You Can Do About It
- Podcat: Getting Started With Linux
- Podcast: Configuring And Building The Linux Kernel
- Podcast: Using Eclipse For C/C++ Development
For more information, contact us or call 1-877-546-4446
Start Learning Linux Device Drivers: Programming at the Kernel Level Today!
Linux Device Drivers: Programming at the Kernel Level Outline
Module 00: Linux Device Drivers: Programming at the Kernel Level Online Training - Course Introduction
Module 01: So What's a Device Driver?
- Why device drivers
- User space I/O APIs
- Four types of devices
- The /dev directory
Module 02: Kernel Loadable Modules
- What is a kernel loadable module?
- Module utilities
- A module example
- Kernel modules and the GPL
Module 03: Basic Character Driver
- Registering and initializing a driver
- The file operations table, fops
- Driver example
- Mutual exclusion, the semaphore
Module 04: Debugging Kernel Code
- printk()
- strace
- The /proc file system
- ioctl()
- kgdb
Module 05: Blocking I/O
- The wait queue
- Putting a process to sleep
- Blocking example
- The seq file interface
- Poll and select
- Asynchronous notification
Module 06: Accessing Hardware
- Side effects and compiler optimization
- I/O APIs
- The hardware
- Driver example
- Barriers
- Accessing hardware from User Space
Module 07: Handling Interrupts
- Interrupt context
- Registering an interrupt handler, the IRQ flags
- Interrupt example
- Probing for the interrupt source
- The bottom half - tasklets and workqueues
Module 08: Memory Allocation
- kmalloc() and kfree()
- kmalloc() flags
- get_free_pages()
- vmalloc()
Module 09: Time
- jiffies
- Implementing time delays - example
- Timers
- Current time
Module 10: Block Drivers
- The block subsystem
- Device registration
- The request queue and function
- Block driver example
Module 11: Network Drivers
- Device registration
- The socket buffer
- Driver example - "snull"
- NAPI - the "new" API
Module 12: PCI Drivers
- PCI addressing and bridging
- Accessing configuration space
- PCI data structures and macros
- modules.pcimap
- Sample PCI driver
Module 13: USB Drivers
- USB structure and characteristics
- Device classes
- USB data structures and macros
- USB Request Block, URB
- Sample USB driver
Module 14: Linux Driver Model
- Power Management and Shutdown
- User Space Communication
- Hot Pug
- Device Classes
Module 15: Integrating a Driver with the Kernel Source Tree
- Configuring and building the kernel
- The config. file
- Source code mods
- Kconfig files
Module 16: Linux Device Drivers: Programming at the Kernel Level Online Training - Course Summary
For more information, contact us or call 1-877-546-4446
Start Learning Linux Device Drivers: Programming at the Kernel Level Today!
Prerequisites
You need to have equivalent experience or have taken the following GogoTraining courses:
For more information, contact us or call 1-877-546-4446
Start Learning Linux Device Drivers: Programming at the Kernel Level Today!
Hardware/Software Requirements
Hardware:
- Linux machine with native parallel port
- For some exercises you will need a standard 25-pin parallet port
Software:
- Current distribution software such as Fedora 11 or 12
- GNU compiler collection for the x86. This package is called gcc.
- Kernal headers and makefiles sufficient to build kernel loadable modules. This package is call kernel-devel.
For more information, contact us or call 1-877-546-4446
Start Learning Linux Device Drivers: Programming at the Kernel Level Today!
Objectives
As a result of taking this Linux device driver course, you will be able to:
- Describe the four types of devices and their properties
- Design, program, and debug kernel loadable modules
For more information, contact us or call 1-877-546-4446
Start Learning Linux Device Drivers: Programming at the Kernel Level Today!