About Us | [Public iPhone iPad Courses] | [Public Android Courses] | [Public Arduino Courses] | [Contact Us]

Course ELIN103
Linux Kernel Internals and Device Driver Programming

Duration: 5 Days

Intended Audience

Attendees are expected to be proficient C programmers and have a good working knowledge of Linux or Unix. Courses ELIN101 "Linux for Embedded and Real Time System Developers" and SMC103 "Introduction to C Programming for Embedded Systems" provide suitable background.

Course Overview

Developers building embedded solutions using Linux often need to make kernel-level modifications, or to write drivers for custom hardware. This advanced programming course provides an intensive overview of the Linux 2.6 kernel, kernel level programming and device driver theory and implementation, as well as kernel configuration and compilation. Code will be developed and tested on both a Debian 2.6 kernel running on a PC Platform and an ELinos 2.6 kernel running on an ARM 9 target board.

Course Benefits

You will gain a comprehensive understanding of Linux Kernel building, kernel and device driver programming, and experience of device drivers for components and protocols often found in embedded systems such as I2C, SPI, Bluetooth and USB. You'll consolidate your knowledge with practical labs, including:

As additional benefit, you'll take home copies of two books: "Linux Device Drivers" (3rd edition) by Rubini, and "Linux Kernel Development" (3rd edition) by Love.


Course Contents

Linux Background

Linux Internals - the key parts

Modules

Character Drivers

Device drivers

Time and the Linux Kernel

Memory management - basics

Hardware management and usage - basics

Block drivers

Case studies