|
|
|
|
|
|
|
|
|
Linux Internals and Architecture Presentation |
Duration: 5 days |
|
|
This course is intended for system architects, developers, software engineers, and support personnel who develop and support Linux device drivers and applications. |
|
- Programming experience required with specific knowledge of C and C++ very helpful.
- Some experience with Linux and/or Unix is helpful.
|
|
|
Description |
This course gives system architects,
developers, and support engineers an understanding of the internal operation and
architecture of the Linux operating system. |
|
Objectives |
- Understand the basic installation process of Linux
- List and understand the major kernel structures (e.g., inodes and semaphores)
- Understand basic memory management within Linux and as seen by its applications
- Learn the basics of Interprocess Communication
- Understand the Linux file system
- Use basic utilities to monitor and tune the system
- Learn the basics of Linux device driver development
- Understand the Linux boot process
|
|
Course Outline |
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
- Processes and tasks
- Files and inodes
- Dynamic memory management
- Queues and semaphores
- System time and timers
- Signals
- Interrupts
- System booting
- Timer interrupt
- Scheduler
- Description of system calls
- Practical examples
- Adding new system calls
Memory Management
- Pages
- Virtual address space
- Linear address conversion
- Page table and page directory
- Middle page directory
- User segment
- Virtual memory
- The brk system call
- Mapping functions
- Kernel segment
- Static and dynamic memory allocation in the Kernel
- Block buffering
- Update and bdflush
- List structures for the buffer cache
- How to use the buffer cache
- Page cache management
- Finding free pages
- Page exceptions
Inter-Process Communication
- Synchronization
- Communication via files
- Pipes
- Debugging using "ptrace"
- SysV Inter-Process communication
- 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
- Implementation
Module Management
- Interfaces to modules
- Adding/removing modules to the Kernel
- Implementation details
Network
- Layer model
- Network communications
- Data structures
- Devices
- Protocols
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
| |
|
|