Upcoming FreeBSD Kernel Internals Evening Course

The ``FreeBSD Kernel Internals: An Intensive Code Walkthrough'' course will be taught during the Spring of 2009. The class will be held at the historic Hillside Club at 2286 Cedar Street, Berkeley, CA 94709 just three blocks north of the Berkeley campus once per week from 6:30PM to 10:00PM starting Wednesday March 18th and finishing Thursday July 2nd. You can sign up for the class here.

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.X 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 non-proprietary kernel sources released by The FreeBSD Project.

Description

This course will provide a detailed background in the FreeBSD 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, 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 CD-ROM containing the FreeBSD 8.0 kernel sources with tags database.

Course Organization

The evening course meets once per week for fifteen weeks. The majority of the lecture time is spent reading kernel source code. The fifteen weeks are structured as follows:

   1) Weds March 18: Organization, overview of source layout
   2) Thurs March 26: Kernel header files
   3) Thurs April 2: System calls and file open
   4) Thurs April 9: Pathname translation and file creation
   5) Tues April 14: Vnode interface mechanics, write to a local file
   6) Thurs April 23: Opening, using, and closing locally connected sockets
   7) Thurs April 30: User datagram protocol and routing
      One week break
   8) Thurs May 14: TCP Algorithms
      One week break
   9) Thurs May 28: Fork, exit, and exec
  10) Tues June 2: Signal generation and delivery, scheduling
  11) Thurs June 11: Virtual memory header files and file mapping
  12) Thurs June 18: Page fault service, pageout processing
  13) Thurs June 25: NFS client and server operation
  14) Thurs July 2: Multiplexing with select, system startup
  15) Thurs July 9: Special topics: filesystem layering and soft updates
  1+) Tues June 14: Redo of Organization, overview of source layout

You can sign up for the class here.

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 Tuesday and Thursday evenings, the class will be available for purchase on DVD video in July 2009.