Freitag, 24. Mai 2013

Avoiding mistakes in Linux Kernel development

by Hans-Jürgen Koch (hjk engineering)

Friday, 24.05.2013, London I, 16:00-16:45 Uhr

A lot of projects make use of the Linux Kernel. Embedded systems, servers, firewall appliances, but also business applications, are just a few examples. Sometimes, modifying the kernel is required. This ranges from just changing the configuration to real modifications like adding a new feature or fixing a bug. Unfortunately, neither the development process nor the quality assurance process of the Kernel are fully understood by many companies and other users.

Often, buggy kernels or drivers downloaded from a manufacturer are preferred over a standard mainline kernel although the latter has passed the complete review process while the kernel suppied by the manufacturer has not and is not even fit for being posted on a kernel mailing list.

Another example is the inability of many companies to work with the community, for political or technical reasons. Instead of having their code reviewed and maintained for free by experienced programmers, they prefer to write new drivers, often duplicating work that has already been done better.

Costly mistakes like long development cycles or buggy products are often the result. The author had to deal with such mistakes for several years.

Reasons for many of these mistakes are simple misunderstandings.

This talk gives an overview of the most common mistakes and misunderstandings and shows how to avoid them.

About the author Hans-Jürgen Koch:

I was born 1964 in the south of Germany. Studied Electronics at the University of Applied Sciences, Furtwangen, from 1985 to 1989. Worked as a Hardware and Software Developer in several companies, mainly dealing with automation systems. I started Linux kernel development by adding the driver for the SAA6588 RDS decoder to the Video4Linux subsystem. I presented my RDS work at my own booth at Linuxtag 2006. I now work on the Kernel and also do Linux consulting and teaching. I am maintainer of the Userspace I/O (UIO) framework in the Linux kernel.