Linux Device Drivers Training
  • 3-Days, Hands-On
  • Modules, Locking, Interrupts, Memory management
  • Covers Char, Block, Network and USB drivers
  • Instructor: Karim J. Yaghmour, O'Reilly® Author
  • 1,695$/student

Contact us for an on-site session quote
References and Testimonials

Please contact us if you would like to schedule an on-site training session. We can also customize the content of the class to better suite your team's needs. This may be useful if you have a specific hardware and/or software project platform/framework in mind.


  • January 24-28
  • March 21-25
  • May 16-20
  • July 11-15

This class is aimed at developers wishing to develop Linux device drivers. Based on O'Reilly's seminal Linux Device Drivers, this class covers all aspects related to device driver development in Linux. During this class, you will learn how to:

  • Create, load, and manage modules
  • Register for, manage and defer interrupts
  • Allocate and manage memory
  • Effectively select and use different locking mechanisms
  • Implement Char, Block, Network and USB drivers
Each topic covered by the course is discussed in lecture form and exercised through instructor-led hands-on sessions.

  • Introduction
  • Hardware and Linux, a view from user-space
  • Writing modules
  • Driver types, subsystem APIs and driver skeletons
  • Hooking up with and using key resources
  • Locking mechanisms
  • Interrupts and interrupt deferal
  • Timely execution and time measurement
  • Memory resources
  • Hardware access
  • Char drivers
  • Block drivers
  • Network drivers
  • PCI drivers
  • USB drivers
  • TTY drivers

The actual class content and order of material presented is subject to slight changes, depending on attendee needs and interest.

This is a class that deals with fairly complex low-level and hardware concepts. It is important that attendees be familiar with the following concepts:

  • Interrupts
  • Memory allocation
  • Memory-mapped registers
  • OS internals
Also, we assume that attendees are fully fluent in C and that the Linux/Unix command line is a familiar environment

Karim J. Yaghmour is part serial entrepreneur part unrepentant geek. His experience combines a unique mix of mobile, embedded and kernel background with enterprise and web2.0/consumer-oriented Rich Internet Application development. Karim is the author of O'Reilly's Embedded Android and Building Embedded Linux Systems, which sold tens of thousands of copies worldwide and has been translated into several different languages.

Karim has provided training to companies such as: Motorola, Panasonic, NSA, BAE Systems, Conexant, Symbol, Scientific-Atlanta, and Karl Suss Gmbh. Some of Karim's recent mandates include leading development teams delivering products based on a variety of different platforms (.NET/Windows, BlackBerry, Linux, Drupal, Lotus Notes), technologies (Ajax, SQLite, PostgreSQL, CSS/HTML, jQuery/jQueryUI, ActiveDirectory/LDAP, MAPI, WebBrowser object) and programming languages (C#, Java, PHP, JavaScript, Perl, Python, Ruby on Rails, C++).

Having been an early believer in the power of open source, Karim pioneered the world of Linux tracing by introducing the Linux Trace Toolkit (LTT) in the late '90s. He continued maintaining LTT through 2005 and was joined in this effort by developers from several companies, including IBM, HP, and Intel. LTT users included: Google, IBM, HP, Oracle, Alcatel, Nortel, Ericsson, Qualcomm, NASA, Boeing, Airbus, Sony, Samsung, NEC, Fujitsu, SGI, RedHat, Thales, Oerlikon, Bull, Motorola, ARM, ST Micro, Infineon, WindRiver, MontaVista, Scientific-Atlanta, Wipro and Autodesk. Other contributions include relayfs and Adeos.

Karim has presented and published as part of a number of peer-reviewed scientific conferences, magazines and online publications, including Usenix, the Linux Kernel Summit, the Embedded Linux Conference, the Android Builders Summit, AnDevCon, the Embedded Systems Conference, AndroidOpen, the Ottawa Linux Symposium, LinuxJournal, the O'Reilly Network and the Real-Time Linux Workshop. Some of Karim's projects can be found in our Community section. Karim holds Masters and Bachelors degrees in Computer Engineering from the École Polytechnique de Montréal.

All our courseware is available under a CC-BY-SA 3.0 license. Why?

  • First, we believe that the value of a class is derived from providing instructors recognised as leading experts in their field, not the courseware. Our instructors are not only recognised for their technical achievements, but they are active public speakers at international conferences and forums with an exceptional ability and passion for sharing their knowledge. Our instructors' value is especially prized during our class' hands-on sessions, which occupy more than half of class time, since they are able to pull on their vast experience in assisting attendees in isolating the source of issues they encounter and explaining the underlying theory and wider context pertaining to that topic.
  • Second, we think it's great for past students to continue having access to the latest version of the courseware they used. Whether it be for keeping up-to-date or explore new material, future versions of our class material will always be available to you.
  • Third, our company was built on and lives in the open source ecosystem. Sharing is fundamental to what we do every day.

We, of course, welcome any comments or updates you may have on our courseware. Please send feedback to

Slides: PDF | ODP
Exercises: PDF | ODT

Pricing: 1,695$/student. Contact us for an on-site session quote.
Attendance: 12 students max.
Although we do sometimes accept to train larger groups in on-site settings, we believe that a 12 student cap ensures an optimal instructor/attendee ratio in the context of a public session.
Location: No public sessions are presently scheduled
  • Each attendee will be provided with a PC for the hands-on sessions for the duration of the class.
  • Students can bring their own laptops if they prefer. If you plan to bring your own laptop, please make sure it is mid-top range, is less than 2 years old, has 20GB free storage and, most importantly, has Linux installed -- preferably Ubuntu.
  • Hands-on sessions are carried out in a PC emulator environment.
Courseware: All our courseware is available under CC-BY-SA 3.0; just click on the above "Courseware" thumbnail to download it.
Schedule: Classes run from 9 to 5, with breaks in the morning, at lunch and in the afternoon.
Food/Drink: Depends on facilities. No public classes are presently scheduled.
Payment: Opersys accepts all major credit cards, wire transfers and corporate checks drawn on US banks in US funds.
Policies: Students must register and pay all tuition fees prior to class start. Registrations cannot be canceled, though we will do our best to accommodate your situation. Class cancellations are very uncommon (and have never happened as of this writing), but, were they to occur, you would be notified as soon as possible and your tuition fees would be refunded in full.

This class can be given on-site and can be customized to your organization's needs. In addition to English, this class can also be taught in French. For more information regarding this class' logistics or to schedule an on-site session, please contact us.