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.
This is the second edition of this course. Its organization will strictly resemble the one of the first course: 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.
Building on the topics covered in the previous edition, our initial emphasis will be on teaching how to write drivers for several hardware devices. We would also like to cope with other topics like Linux support for multiprocessor systems and embedded systems.
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 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.
Furthermore, participants are expected to be familiar with several topics covered in the first edition of this course, in particular:
You might want to give a look to the lecture notes of the previous edition.
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 January 2003 and is planned to finish sometime next Spring.
An open course does not have a single teacher: a few of us have ensured a core of lectures. The remaining lectures will be held by participants and guests.
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 February 26, 2003 in Classroom 4 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.
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 4 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".