| 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
|
| |