Linux Kernel Internals

Home
Courses
Online Classes
Books
E.L.L.K.
Consulting
Downloads
Resources
Contact Us

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
    • debugfs
  • cscope
  • Kernel crashesthe oops message
  • KDB and KGDB
Synchronization
  • Need for Synchronization
    • Critical Section
  • Mutexes
  • Semaphores
  • Completions
  • Atomic Operations
    • Bits
    • Integers
  • Spinlocks
    • Read-write 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
Tux
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
    • Tasklets
    • Workqueues
  • Timers
Virtual File System
  • VFS Data Structures
  • Adding a File System
  • The Block Layer
    • I/O Schedulers
  • 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
    • Red/Black Trees
  • High Resolution Timer
The Linux Boot Process
  • BIOS
  • Bootloader
    • Grub
  • Initial RAM Disk
  • Kernel Initialization
  • init process
  • Run Levels

< Back to Courses Page

Copyright © 2016 Douglas Abbott