• Introduction to Linux Internals
Introduction and environmental setup
Main characteristics of the Linux operating system
Linux distributions
Kernel configuration facilities
Building the kernel
Location of components
Compiling
• Kernel Overview
Important data structures
Processes and tasks
Files and inodes
Dynamic memory management
Queues and semaphores
System time and timers
Primary algorithms
Signals
Interrupts
System booting
Timer interrupt
Scheduler
System call implementation
Description of system calls
Practical examples
Adding new system calls
• Memory Management
Architecture-dependent memory model Pages
Virtual address space
Linear address conversion
Page table and page directory
Middle page directory
Virtual address space model
User segment
Virtual memory
The brk system call
Mapping functions
Kernel segment
Static and dynamic memory allocation in the kernel
Block device caching
Block buffering
Update and bdflush
List structures for the buffer cache
How to use the buffer cache
Paging in Linux
Page cache management
Finding free pages
Page exceptions
• Inter-Process Communication
Synchronization
Communication via files
Pipes
Debugging using ptrace
System V IPC
Socket-based communications
• File System
Basic aspects
VFS
Mouting a file system
Superblock
The Inode concept and operations
File operations
Directory cache
Proc filesystem
Ext2 filesystem
Structure
Directories
Block allocation
Extensions
• System Calls
Initialization
Process management
Memory management
Communication
Filesystem
• Kernel-Related Commands
ps
top
free
init
shutdown
strace
traceroute
mount
|
• Device Drivers
Character vs block devices
Polling and interrupts
Polling and interrupt mode
Interrupt sharing
Bottom halves
Task queues
Implementation
Setup
Init
Open and release
Read and write
Ioctl
Select
Lseek
Mmap
Readdir
Fsync and fasync
• Module Management
Interfaces to modules
Adding/removing modules to the Kernel
Insmod
Modprobe
Rmmod
Implementation details
• Network
Layer model
Network communications
Data structures
Socket
sk_buff
Inet socket
proto
Devices
Ethernet
SLIP and PPP
Loopback
Dummy device
Protocols
Arp
IP
Functions
Routing
Multicasting
Packet filters
Accounting
Firewalls
UDP
Standard and extra functions
TCP
Standard functions
Communication details
• SCSI Subsystem
Architecture overview
Names and conventions
Upper level
Block devices (hard disks, CD-ROM)
Character devices (tape)
Generic drivers
Mid level (boot parameters, proc interface)
Lower (hardware) level and pseudo drivers
• Boot Process
Booting details
LILO
Started by MBR
Started by a boot manager
Structure in the MBR
Files
Parameters
Start-up messages
Error messages
• Debugging Tools
ptrace
SysRq
KDB
User Mode Linux
kgdb
Download a detailed course outline (PDF)
Contact us for course schedules or more
information.
|