ORSYS formation
CONTACT - +33 (0)1 49 07 73 73
CONTACT - 📞 +33 (0)1 49 07 73 73    drapeau francais   drapeau anglais

Consult our trainings :

Linux kernel and device drivers programing Training

Hands-on course
Duration : 4 days
Ref : LDI
Price  2021 : Contact us
  • Program
  • Participants / Prerequisite
  • Intra/Tailored

During this session you will study the Linux kernel internals. This will enable you to write better applications, optimize your Linux system or participate to Linux kernel enhancement. You will learn how to write device drivers and to integrate them with the Linux 2.6 and 3.x driver framework to provide hotplug and power management.

Case study

A large numbers of concrete and progressive case studies will enable you to understand the internal of the kernel.

Linux kernel programing overview

  • Getting the sources. Participating to the LKML. Licenses issues. Overview of the Linux kernel.
  • Development tools. The GNU C Compiler and associated tools. indexing the kernel.
  • A module primer. Loading a linux module. Using printk and dmesg.
  • Loading the kernel and modules.

Hands-on work
The "hello world" module. Creation of a patch for the LKML.

Essential Linux kernel interface

  • Processes and threads. Kernel data structures task_struct, current and the thread_info.
  • Memory management. User and kernel memory spaces. UMA, NUMA, Nodes and zones.
  • Synchronizations. Thread context and interrupt context. atomic operations.
  • The kernel notion of time. Xtime, jiffies and HZ using delays and sleeps.
  • Handling signals in the kernel. Sending and receiving signals in the kernel.

Hands-on work
Creation of little modules implementing single kernel functionalities like wait queues, completions, timers, procs interface, kernel threads and signals.

Interfacing with the Virtual File System

  • Registering with the VFS.
  • Essentials VFS callback.
  • Extending the registration.

Hands-on work
Creation of a complete driver implementing a pipeline using most of the kernel utilities, memory allocation and timers. Tests using standard UNIX cat(1) command.

Interfacing with the hardware

  • Accessing memory and devices.
  • Managing DMA.
  • Interrupt handling.

Hands-on work
Extension of the previous driver with interrupt handling. Creation of a little module mapping physical memory for a dedicated user program.

The Linux Driver Framework

  • Overview. The Linux 2.6/3.x object oriented interface for drivers Kset, kobjects and kref
  • Object description of device access.
  • Implication on driver's development.
  • Power management.

Hands-on work
Extension of the previous driver with the integration into the Linux driver framework and with power management callbacks.

Linux Kernel Subsystems

  • Storage. Data structures and implementation of block drivers.
  • Network. The sockets and socket buffers: skbuf.
  • Input. Data structures and interface with the Linux driver framework.
  • USB. Overview, implementation and data structures.

Hands-on work
Implementation of small modules implementing a basic network interface. Implementation of an input driver moving the mouse according to a simple character interface.

Participants / Prerequisite

» Participants

Tout public

» Prerequisite

A good knowledge and practice of Linux or another UNIX-like system associated with experience with C language programing are required for this training session.

Contact Informations

By checking this box, I certify that I have read and accepted the conditions for the use of my data regarding the General Data Protection Regulation (GDPR).
You can at any time modify the use of your data and exercise your rights by sending an email to rgpd@orsys.fr
By checking this box, I agree to receive commercial and promotional communications from ORSYS Training*. You can unsubscribe at any time by using the link included in our communications.

Book your place

Submit your request

Time schedule

Generally, courses take place from 9:00 to 12:30 and from 14:00 to 17:30.
However, on the first day attendees are welcomed from 8:45, and there is a presentation of the session between 9:15 and 9:30.
The course itself begins at 9:30. For the 4- or 5-day hands-on courses, the sessions finish at 15:30 on the last day
linkedin orsys
twitter orsys
it! orsys
instagram orsys
pinterest orsys
facebook orsys
youtube orsys