FreeBSD Kernel Internals: An Intensive Code Walkthrough

Who Should Take this Course

This course provides an in depth study of the source code of the FreeBSD kernel. This course is aimed at users with a good understanding of the algorithms used in the BSD kernel that want to learn the details of their implementation. Students are expected to have either taken the UNIX Kernel Internals class taught by the instructor (in either the one week short-course format, the 12 week night-class format, or the 12 tape video-tape class format) or to have throughly read and understood The Design and Implementation of the 4.4BSD Operating System, (published by Addison-Wesley Publishing Company). They are also expected to have a complete background in reading and programming in the C programming language. Students will not need to prove relationship with a source license holder, as the course will be based on the non-proprietary kernel sources released by The FreeBSD Project.


This course will provide a detailed background in the FreeBSD kernel which is based on the non-proprietary release by the University of California at Berkeley, 4.4BSD-Lite, Release 2. The BSD kernel is used as the porting base for most of the major commercial UNIX vendors, although most expand the BSD user interface with the full X/Open user interface. In this course, only the BSD system interface and services will be covered since the other systems would require students to be covered by a UNIX System V source license. The course will cover all the basic parts of the system including process managment, memory management, scheduling, I/O structure, local and remote filesystems, and networking. The main emphasis will be on the machine independent parts of the system; little time will be spent on the machine specific parts of the system such as device drivers. Where machine specific topics are covered, the Intel PC architecture will be used for illustration.

Course Materials

Each student receives a copy of the FreeBSD 2.2.5 CD-ROM set (4 CDs) plus a course book with copies of the overheads used in class. A printed copy of approximately half of the FreeBSD 2.2.5 kernel (three volumes totalling approximately 2000 pages) is available for an additional $100.00.

Course Organization

The evening course meets once per week for fifteen weeks. The video course consists of fifteen 160 minute (2 hour 40 minute) tapes, one for each week of the class. The majority of the lecture time is spent reading kernel source code. The fifteen weeks are structured as follows:

 1) Organization, overview of source layout
 2) Kernel header files
 3) System calls and file open
 4) Pathname translation
 5) Vnode interface mechanics, write to a local file
 6) Local filesystems (UFS, union, portals) and special devices
 7) Pipes and sockets
 8) User datagram protocol and routing
 9) TCP Algorithms
10) Fork, exit, and exec
11) Signal generation and delivery
12) Virtual memory header files
13) File mapping, page fault service, pageout processing
14) NFS client and server operation
15) Multiplexing with select, system startup

Further Information

Click here to get information on upcoming weekly courses and for information on obtaining the class on video tape.