Welcome to Linux Device Drivers: Programming at the Kernel Level with Doug Abbott. If you are ready to learn with the experts, then this course is for you. Doug has over 20 years’ experience working on the operating system and device driver level with emphasis on embedded Linux applications and is here to answer your questions.
Working with Doug you will become a master Linux programmer at the Device Driver level and be able to:
- Understand how device drivers interact with the Linux kernel
- Work with the rich set of kernel APIs that provide a multitude of services to driver programmers
- See how Linux handles asynchronous I/O in a way that is totally transparent to applications
- Examine the unique problems of debugging in Kernel space
- Understand how much of a device driver involves interactions with the kernel that have nothing to do with accessing physical hardware
While taking this course you will have access to Doug’s video lectures, demos and hands on exercises where you will have ample opportunity to practice what you’ve learned. Most of the lab exercises run on a standard PC. Nevertheless, the code is easily ported to other architectures supported by Linux.
The hands-on exercises can be done using any version of the Linux Kernel. Because the Linux Kernel changes frequently, we are here to support any questions you may have on the course exercises and solutions while you take the course.
Some of the exercise are hardware dependent and require either a parallel printer port, if your computer has one, or you can purchase a single board computer to use to do the exercises – see purchase options section below.
In This Course You Will Learn:
As a result of taking this course, you will be able to:
- Create and build kernel loadable modules
- Understand the four types of devices and their properties
- Determine how device drivers interact with the Linux kernel
- Use techniques for debugging kernel-level code
- Access peripheral hardware
- Manage Asynchronous interrupts
To successfully complete this course you will need to be proficient in C programming and Linux Essentials or have taken C Programming Bootcamp Part 1, C Programming Bootcamp Part 2 and Linux Essentials.
You will need a PC running a fairly recent Linux distribution such as CentOS 7. To complete the hardware-based exercises in modules 7 to 10 you will need either a standard 25-pin parallel port or a small single board computer with general purpose I/O ports.