Linux Kernel Hacking Free Course, fourth edition

Introduction

If you are interested in installing and using a Unix system based on the Linux kernel, you won't have any problem in finding all the documentation you need. In fact, there exist several excellent books that teach how to install Linux and how to run it. Furthermore, many courses are taught in many countries on the same topics.

If your problem is how to modify the Linux kernel and how to evaluate the impact of the changes you made (we call this kind of programmer's behavior kernel hacking) then you won't find as much documentation as in the previous case. In fact, you can find almost anything on the net, except that is scattered around many places and not all the documents you will find are outstanding, while many are obsolete.

So, the ambitious goal of this Kernel hacking course is to describe in a coherent way all you should know to become a reasonable kernel hacker.

About the course

The fourth edition of this course is organized by Daniel P. Bovet and Marco Cesati, the authors of the popular O'Reilly's book "Understanding the Linux kernel". This time we'll focus on recent versions of the Linux 2.6 vanilla kernel. The course organization will strictly resemble the one of previous editions: informal style, free and open participation, flexible calendar, scheduling open to arguments proposed by the audience, and an open teaching group that will hopefully encourage active participation, discussion and criticism.

All topics will be approached in a pragmatic manner: every lecture will consist in illustrating the required steps needed to resolve a specific problem and all programming examples illustrated in the lectures will be documented under the item Lectures notes in our site.

The lectures will be held in Italian, although the course notes will be in English.

Requirements

The Linux kernel is written in C and, for a small part, in an Assembly language (in this course we shall refer to the 80x86 assembler with the AT&T syntax).

A good knowledge of C and of 80x86 Assembly language is thus required. Some knowledge of the IA-32 architecture won't harm, specially when dealing with I/O drivers.

Some familiarity with Unix systems and a Linux box for practicing out of class are also mandatory.

You might want to give a look to the lecture notes of the first edition, to those of the second edition, and to those of the third edition.

What is an open course

An open course is free and open to every interested person.

An open course does not give credits neither diplomas of any kind: students take it simply because they enjoy it.

An open course has a flexible schedule: there are no university constraints that force us to finish within a quarter or a semester. The "Linux Kernel Hacking" open course starts in March 2008 and is planned to finish at the end of May.

When and where

The course will be held at the School of Engineering of the University of Rome "Tor Vergata".

The first lecture is scheduled at 6 pm of March 26, 2008 in Classroom 3 of the School of Engineering.

The lectures are on a once-a-week basis, they will always be held in the same place at the same time every Wednesday night.

Please check the schedule to find when the next lecture will take place.

How to reach us

From the G.R.A. (Grande Raccordo Anulare): follow the indications for "Università Tor Vergata", near exit 19/20 (A1 Roma-Napoli). Go through "Viale della Sorbona" until the second round place, turn right to "Via Columbia", then turn left to "Via del Politecnico" (see the map).

From any Underground stations - line A: Take Underground Line A direction Anagnina and get off at the last station, Anagnina. Once on the surface take the bus no. 500 (ticket fare euro 0.77) and get off at the stop of the "Ingegneria" buildings of Tor Vergata University.

Classroom 3 is in the last floor of the building named "Edificio Aule", in front of the building named "Ingegneria dell'Informazione", which is, in turn, the last one on "via del Politecnico".

Resources