Check out the new USENIX Web site.
USENIX '99 Annual Technical Conference
Table of Contents
Monday, June 7, 1999
Full Day Tutorial Session (9:00 am - 5:00 pm):
M1   Inside the Linux Kernel (UPDATED)
Stephen C. Tweedie, Red Hat Software

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 recently released new stable version of the Linux kernel (version 2.2), it will also address aspects of the previous, still widely used version 2.0 codebase where that differs substantially from the new version. 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 C. Tweedie (M1 Instructor)   works in Scotland for Red Hat Software as a full-time Linux kernel developer. Previously he worked on 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 Sessions - Registration -
Keynote Address - Activities & Services - Hotel & Travel Info - Brochure Home
Conference Index
Events Calendar
USENIX home