Check out the new USENIX Web site.
 1998 USENIX Annual Technical Conference - June 15-19, 1998 - Marriott Hotel, New Orleans, Louisiana
Jump to Conference Home Page Jump to Registration Information
Table of Contents
M3   Inside the Linux Kernel  Updated
Stephen C. Tweedie, Digital Equipment Corporation

Who should attend: Application programmers and kernel developers. You should be reasonably familiar with C programming in the UNIX environment, but no prior experience with the UNIX or Linux kernel code is assumed.

This tutorial will give you an introduction to the structure of the Linux kernel, the basic features it provides, and the most important algorithms it employs.

The Linux kernel aims to achieve conformance with existing standards and compatibility with existing operating systems , however, it is not a reworking of existing UNIX kernel code. The Linux kernel was written from scratch to provide both standard and novel features, and takes advantage of the best practice of existing UNIX kernel designs.

Although the material will focus on the release version of the Linux kernel (v 2.0), it will also address aspects of the development kernel codebase (v 2.1) where its substance differs from 2.0. It will not contain any detailed examination of the source code but will rather offer an overview and roadmap of the kernel's design and functionality.

Topics will include:

-    How the Linux kernel is organized: scheduler, virtual memory system, filesystem layers, device driver layers and networking stacks.
*    The interface between each module and the rest of the kernel. and the functionality provided by that interface.
*    The common kernel support functions and algorithms used by that module.
*    How modules provide for multiple implementations of similar functionality (network protocols, filesystem types, device drivers and architecture-specific machine interfaces ).

-    Basic ground rules of kernel programming, such as races and deadlock conditions.

-    Implementation of the most important kernel algorithms and their general properties (aspects of portability, performance and functionality).

-    The main similarities and differences between Linux and traditional UNIX kernels, with attention to places where Linux implements significantly different algorithms.

-    Details of the Linux scheduler, its VM system, and the ext2fs filesystem.

-    The strict requirements for ensuring that kernel code is portable between the many architectures that Linux supports.


Stephen Tweedie  works in VMS filesystem internals for Digital's Operating Systems Software Group. He has been contributing to Linux for a number of years, in particular designing some of the high-performance algorithms central to the ext2fs filesystem and the virtual memory code.

Program at-a-Glance - Tutorials - Technical Program - Registration -
Birds-of-a-Feather - Conference Activities - Hotel & Travel Info - Conference Home
Conference Index
Events Calendar