Tutorial - An Introduction to the FreeBSD Open-Source Operating System: Kernel Functions

Day 1: Kernel Functions

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 increasing are building their products using FreeBSD.

Who Should Take this Course?

This course is of direct use to the professionals who work with FreeBSD systems. Individuals involved in technical and sales support can learn the capabilities and limitations of the system; system administrators without direct experience with the FreeBSD kernel can learn how to maintain, tune, and configure the system; applications developers can learn how to effectively and efficiently interface with the system; and systems programmers can learn how to extend, enhance, and interface to the system.

This course provides a broad overview of how the FreeBSD kernel implements its basic services. It will be most useful to those who need to learn how these services are provided. Students who will benefit from this course include operating-system implementors, system programmers, UNIX application developers, administrators, and curious users. This course is directed to users who have had at least a year of experience using a UNIX-like system. Knowledge of the C programming language is helpful, but not essential. They should have an understanding of fundamental algorithms (searching, sorting, and hashing) and data structures (lists, queues, and arrays).

Description

This course will provide a firm background in the FreeBSD kernel. The course will cover basic kernel services, process structure, the FreeBSD jail facility for hosting virtual machines, scheduling, signal handling, and virtual and physical memory management. The kernel I/O structure will be described showing how I/O is multiplexed, and how special devices are handled. The presentations will emphasize code organization, data structure navigation, and algorithms. It will not cover the machine specific parts of the system such as device drivers.

Morning

Afternoon

Course Text

Marshall Kirk McKusick and George V. Neville-Neil, ``The Design and Implementation of the FreeBSD Operating System'', Addison-Wesley Publishing Company, Reading, Massachusetts, 2005, 720 pages. ''

Speaker

Dr. Marshall Kirk McKusick writes books and articles, consults, and teaches classes on UNIX- and BSD-related subjects. For the past ten years he has been a developer and commiter to the FreeBSD Project. His particular areas of interest are the virtual-memory system and the filesystem. While at the University of California at Berkeley, he implemented the 4.2BSD fast file system, and was the Research Computer Scientist at the Berkeley Computer Systems Research Group (CSRG) overseeing the development and release of 4.3BSD and 4.4BSD. He earned his undergraduate degree in Electrical Engineering from Cornell University, and did his graduate work at the University of California at Berkeley, where he received Masters degrees in Computer Science and Business Administration, and a doctoral degree in Computer Science. He is a past president of the Usenix Association, is on the editorial board of ACM's Queue magazine, and is a member of ACM and IEEE.