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.

  • The next evening class is scheduled to begin on Thursday January 22nd, 2015. You can register for the class here.

  • For those that do not live in the Bay Area, or that are not generally free on (primarily) Thursday evenings, the class can also be purchased on video. Those ordering a subscription can receive the class week-by-week as they are recorded.

  • Please make careful note of the dates as not all fall on a Thursday! The syllabus for the evening class is as follows:

    Week 1) Thurs January 22 - Introduction: kernel terminology and basic kernel services

    Week 2) Thurs January 29 - Kernel-resource management: locking

    Week 3) Thurs February 5 - Processes: process structure and process management

    Week 4) Thurs February 12 - Security: security framework and policies, Capsicum, and jails

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

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

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

    Week 8) Thurs March 26 - Local filesystem implementation: fast filesystem (FFS)

    Week 9) Weds April 1 - Local filesystem implementation: zettabyte filesystem (ZFS)

    Week 10) Thurs April 9 - Remote filesystem implementation: network filesystem (NFS)

    Week 11) Thurs April 23 - 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) Thurs April 30 - Network layer: IPv4 and IPv6 protocols, firewalls, and routing

    Week 13) Thurs May 7 - Transport layer: TCP and SCTP

    Week 14) Weds May 13 - System startup: boot loaders, kernel startup, and system launch

    Week 15) Thurs May 21 - System tuning: performance measurement, system tuning, and crash dump analysis

    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) 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 14 assignments, up to 70 points may be earned). To get a certificate of completion, you must score at least 40 points; To get a certificate of completion with distinction, you must score at least 55 points.