Topics included:
- How the kernel is organized (scheduler, virtual memory system, filesystem layers, device driver layers, networking stacks)
- The interface between each module and the rest of the kernel
- Kernel support functions and algorithms used by each module
- How modules provide for multiple implementations of similar functionality
- Ground rules of kernel programming (races, deadlock conditions)
- Implementation and properties of the most important algorithms
- Portability
- Performance
- Functionality
- Comparison between Linux and UNIX kernels, with emphasis on differences in algorithms
- Details of the Linux scheduler
- Its VM system
- The ext2fs filesystem
- The requirements for portability between architectures
Topics not covered:
This class will not contain a detailed examination of the kernel source, but will rather offer an overview and roap
of Linux's design and functionality, as the ground work for future exploration.
Who should attend:
Application programmers and beginning 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.
|
Massachusetts Institute of Technology (MIT)

Theodore Ts'o has been a Linux kernel developer since almost the very
beginnings of Linux: he implemented POSIX job control in the 0.10
Linux kernel and was the original author of the serial driver. He is
the maintainer and author of ext2/ext3 filesystem utilities package,
and he architected and implemented Linux's tty layer. Theodore is
currently employed by IBM Linux Technology Center.
|
|