FreeBSD Kernel Internals: An Intensive Code Walkthrough

What is FreeBSD?

FreeBSD, like Linux, is an open-source UNIX-like operating system that is widely used to support the core infrastructure of many companies worldwide. Because it can be built with a small footprint, it is also seeing increased use in embedded applications. The licensing terms of FreeBSD do not require the distribution of changes and enhancements to the system. The licensing terms of Linux require that all changes and enhancements to the kernel be made available in source form at minimal cost. Thus, companies that need to control the distribution of their intellectual property increasingly are building their products using FreeBSD.

Who Should Take this Course

This course provides an in depth study of the source code of the FreeBSD 8.0 kernel. This course is aimed at users with a good understanding of the algorithms used in the FreeBSD kernel that want to learn the details of their implementation. Students are expected to have either taken the FreeBSD Kernel Internals class taught by the instructor (in either the one week short-course format, the 12 week night-class format, or the 12 class video class format) or to have throughly read and understood The Design and Implementation of the FreeBSD 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 freely-redistributable and non-proprietary kernel sources released by The FreeBSD Project.

Description

This course will provide a detailed background in the FreeBSD 8.0 kernel. The course will cover all the basic parts of the system including process managment, memory management, scheduling, I/O structure, local and remote filesystems, networking, and system startup. 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 (i386 code base) will be used for illustration.

Course Materials

Each student receives a CD-ROM containing the FreeBSD 8.0 kernel sources with tags database and a PDF of the course book with the weekly assignments and copies of the overheads used in class. A printed course book is available for $10.00.

Course Organization

The video course consists of fifteen three hour videos, 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 and file creation
   5) Vnode interface mechanics, write to a local file
   6) Opening, using, and closing locally connected sockets
   7) User datagram protocol, IP, and routing
   8) George Neville-Neil guest lecture: TCP Algorithms
   9) Fork, exec, exit, and wait
  10) Signal generation and delivery, scheduling
  11) Virtual memory header files and file mapping
  12) Page fault service, pageout processing
  13) NFS client and server operation
  14) Multiplexing with select, system startup
  15) Special topics: SMP locking, filesystem layering, soft updates, and snapshots

Further Information

For those that do not live in the Bay Area, do not wish to wait until the course is next taught, or that are not generally free on weekday evenings, click here to purchase the class on DVD video.