Developing for the Linux Kernel
This tutorial will look at how the Linux kernel is structured and will provide
an insight into how to develop code for the kernel. The material will focus on
aspects around Linux device drivers, however it is applicable to all areas of
Linux kernel development. Focus will be on the latest development kernel series
(2.5.x), however a strong emphasis will also be given to issues around supporting
the stable 2.4.x series kernel.
- Resource management (interrupts, device memory/IO space, memory allocation ...)
- Device register and DMA memory access
- Locking mechanisms, queues, timers etc.
- Handling user space access
- Writing portable code working across architectures
- SMP, locking and race conditions
- General performance aspects
- Kernel debugging
- Supporting multiple kernel revisions
- Latest aspects in the current development kernelseries
Jes Sørensen has been working on the Linux kernel since 1993, during
which he was the maintainer of Linux/m68k for several years. He has worked in
a large number of areas in and around the Linux kernel; including high speed networking,
Linux/ ia64 and other ports, has written more device drivers than he can remember
as well as working on the system libraries (glibc) for Linux/ia64. Jes works as
a consultant for Wild Open Source Inc. (http://www.wildopensource.com/) providing
Linux development and design services. Prior to this Jes worked for Linuxcare
as a member of their Research Group and prior to that he worked at the European
Laboratory for Particle Physics (http:// www.cern.ch/).
Who should attend:
Developers who have already started or wish to start developing
code for the Linux kernel. It is expected that the audience is reasonably familiar
with C programming and the UNIX environment. Some level of experience with operating
systems design is a plus, but not required.