Linux
Kernel Overview
- Diagram
of Linux Subsystems
- Role
of the Kernel
- Code
Contexts
- User
Space and Kernel Space
- Introducing
LXR
- System
call Interface
Processes
- Process Data Structures
- The /proc
File System
- Process Creation
- User/Kernel Mode Stacks
- Linked Lists
Loadable
Kernel Modules
- What are they?
- Module-related commands
- Module functions
- printk()
- Kernel modules and the GPL
Debugging
Kernel Code
- More on printk()
- Creating /proc
files
- The sys file system
- cscope
- Kernel crashesthe oops message
- KDB and KGDB
Synchronization
- Need for Synchronization
- Mutexes
- Semaphores
- Completions
- Atomic Operations
- Spinlocks
- Alternatives to Blocking
- Sequential Locks
- Read-Copy-Update
- Per-CPU Variables
Memory
Management
- Virtual Memory
- Paging
- kmalloc()
and friends
- Slab Allocator
- get_free_page()
and friends
- Buddy Algorithm
Outlline continued in
adjacent column
|
Go under the hood and explore the design and implementation of the
Linux kernel. This 3-day seminar acquaints you with the basic
organization, data structures and APIs of the kernel. You'll develop
and appreciation for the object-oriented nature of many of the kernel's
subsystems.
Numerous programming exercises run on the workstation will reinforce
your understanding of the material.
.
Outline continued
Device
Drivers
- What is a Device Driver?
- The /dev
directory
- Device Registration
- The File Operations Table
- Unified Device Model
Interrupt
Context
- Interrupt Handlers
- Registering an Interrupt Handler
- Deferred Work
- Timers
Virtual
File System
- VFS Data Structures
- Adding a File System
- The Block Layer
- Block Devices
Configuring
and Building the Kernel
- Why build the kernel?
- Where to get the Kernel
- Upstream and Downstream Kernels
- Kernel Source Tree
- Configuring the Kernel
- Building and Installing the Kernel
The
Scheduler
- What does the Scheduler Do?
- Completely Fair Scheduler
- High Resolution Timer
The Linux
Boot Process
- BIOS
- Bootloader
- Initial RAM Disk
- Kernel Initialization
- init
process
- Run Levels
<
Back to Courses Page
|