Upcoming FreeBSD Kernel Internals Evening Course

  • The ``FreeBSD Kernel Internals: Data Structures and Algorithms'' course is taught once every few years on a mostly on Thursday nights starting in mid-to-late January and running through late May at the historic Hillside Club at 2286 Cedar Street, Berkeley, CA 94709 just three blocks north of the Berkeley campus once per week from 7:00PM to 10:00PM.

  • No evening courses are currently scheduled. It was last taught in the Spring of 2015. The scheduling of the next class will be determined by interest. Once 25 students have committed to take the class, it will once again be scheduled. You can register interest in taking 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 (primarily) Thursday evenings, the class can also be purchased on video.

  • The syllabus for the 2015 evening class was as follows:

    Week 1) Introduction: kernel terminology and basic kernel services

    Week 2) Kernel-resource management: locking

    Week 3) Processes: process structure and process management

    Week 4) Security: security framework and policies, Capsicum, and jails

    Week 5) Virtual memory: virtual-memory management, paging, and swapping

    Week 6) Kernel I/O system: multiplexing I/O, support for multiple filesystems, the block I/O system (buffer cache), and stackable filesystems

    Week 7) Devices: special files, pseudo-terminal handling, autoconfiguration strategy, structure of a disk device driver, and machine virtualization

    Week 8) Local filesystem implementation: fast filesystem (FFS)

    Week 9) Local filesystem implementation: zettabyte filesystem (ZFS)

    Week 10) Remote filesystem implementation: network filesystem (NFS)

    Week 11) Interprocess communication: concepts and terminology, basic IPC services, system layers and interfaces, and code review of a simple application that demonstrates use of the IPC and network facilities

    Week 12) Network layer: IPv4 and IPv6 protocols, firewalls, and routing

    Week 13) Transport layer: TCP and SCTP

    Week 14) System startup: boot loaders, kernel startup, and system launch

    Week 15) System tuning: performance measurement and system tuning

    Students should acquire a copy of the course textbook by Marshall Kirk McKusick, George V. Neville-Neil, and Robert N.M. Watson: The Design and Implementation of the FreeBSD Operating System, Second Edition, published by the Addison-Wesley subsidiary of Pearson Education. In preparation for the first class, students should read the first three sections of chapter 2 and all of chapter 3. Optionally they can read the Preface and Chapter 1.

    Enrolled students will be notified when the course notes are ready to be downloaded (about a week before class begins). Students ordering the printed notes can pick them up at the first class.

    Each week (other than the last two) five exercises from the textbook will be assigned. The assignments are to be turned in at or before the next class when and answer sheet will be handed out. The graded assignments will be returned the following week. Each problem is worth one point (thus with 13 assignments, up to 65 points may be earned). To get a certificate of completion, you must score at least 45 points; To get a certificate of completion with distinction, you must score at least 55 points.