Print E-mail
Linux Internals - 5 days
Course Description

Linux Internals is a 5-day course for Technology Professionals who need to understand, modify, support, and troubleshoot the Linux Operating System. All major topics are covered, including: the boot loader, the initial RAM disk, kernel parameters, kernel configuration and building, kernel modules, system calls, memory management, filesystems, and the I/O subsytem, including device drivers. During the course, internal kernel source code is examined, and kernel code is written and run to demonstrate key concepts.

 
You Will Learn How To:

In this course you will:

  • Understand as major aspects of Linux Internals, from initial boot, to kernel loading, to initial RAM disk, to INIT, to full system operation
  • Understand how to debug and troubleshoot kernel issues such as kernel oops and panics
  • Understand how to configure, build, and test both the kernel and kernel modules
  • Understand the few functionality provided by the Linux kernel, including: process management, memory management, and I/O management
 

Course Prerequisites

Technical experience with at least one operating system such as Windows, Netware, UNIX, or a proprietary operating system. Familiarity with the standard Linux command-line tools, and the GNU toolchain (make, gcc, etc.), is also recommended.

 

Who Should Attend?

The target audience for this course is software Developers who need to support, debug, troubleshoot, or enhance the Linux kernel or Linux kernel modules (device drivers) and Technology Professionals who need a deep understanding of the internal operation of the Linux operating systems.

 
Course Outline:

Introduction

  • The Linux Kernel
  • Kernel Modules
  • The Virtual File System
  • File System Hierarchy
  • The System Calls (how Apps request service of kernel)
  • Interrupts (how HW requests service of kernel)
  • Kernel-Space vs User-Space

Booting Linux

  • Firmware Phase
  • Boot Loader Phase
  • Kernel Phase
  • Kernel Parameters
  • Init Phase
  • Runlevels

The Linux Kernel

  • UP vs SMP
  • Kernel Versions
  • Block Diagram
  • Tour of Source Code
  • Tour using KDB
  • Building the Kernel

Kernel Parameters

  • Build-Time Parameters
  • Boot-Time Parameters
  • Run-Time Parameters
  • System Tuning

Kernel Modules

  • About Kernel Modules
  • Loading
  • Passing Parameters
  • Unloading
  • Kernel Modules Utilities

Kernel Error Handling and Monitoring

  • Kernel Oops
  • Magic SysRq
  • Panics
  • Profiling

Kernel Synchronization

  • UP vs SMP Issues
  • Atomic Operations
  • Semaphores
  • Spin Locks

System Calls

  • About System Calls
  • Code Sample
  • Tools to trace system calls
  • Internal Data Structures

Memory Management

  • About Memory Management
  • Zones and Pages
  • Address Space
  • Block Device Caching
  • High Memory
  • Paging

Process Management

  • Processes
  • Threads
  • Code sample
  • Process States
  • Tools
  • Internal data structures

Signals

  • About Signals
  • System Call Interfaces
  • Code Sample
  • Tools
  • Internal data structures

IPC (Interprocess Communication)

  • File Locking
  • Pipes
  • Named Pipes (FIFOs)
  • System V IPC
  • Sockets

The Virtual Filesystem

  • Filesystem Types
  • Superblock
  • inodes
  • dentries
  • Files

Interrupts

  • About Interrupts
  • Interrupt Handlers
  • Softirqs
  • Tasklets
  • Work Queues

Time and Timers

  • HZ and Jiffies
  • Time of Day
  • Delayed Execution
  • Kernel Timers

Device Drivers

  • Character Device Drivers
  • Block Device Driers
  • Network Device Drivers
  • Other Device Drivers
   
 
Next >