|  |  | 
                    
                      |  |  |  
                      |  |  |  
                      |  |  
                      |   |  
                      |  | 
						| 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 
			  Kernel OverviewMain Characteristics of the Linux Operating System 
			  Linux Distributions 
			  Kernel Configuration facilities 
			  Building the Kernel 
			  Location of components 
			  Compiling
 			   
			  Memory ManagementProcesses 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 
 			   
			  Inter-Process CommunicationPages 
			  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 
 			   
			  Synchronization 
			  Communication via files 
			  Pipes 
			  Debugging using "ptrace" 
			  SysV Inter-Process communication 
			  Socket based communications
 			   |  | File System 
			  System CallsBasic 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)
 			   
			  Kernel-Related CommandsInitialization
			  Process management
			  Memory management
			  Communication
			  Filesystem 
   			   
			  Device Driversps 
			  top 
			  free 
			  init 
			  shutdown 
			  strace 
			  traceroute 
			  mount 
   			   
			  Module ManagementCharacter vs. Block devices 
			  Polling and interrupts 
			  Implementation
			   
			  NetworkInterfaces to modules
			  Adding/removing modules to the Kernel
			  Implementation details 
			   
			  SCSI SubsystemLayer model 
			  Network communications 
			  Data structures 
			  Devices
			  Protocols
 			   
			  Boot ProcessArchitecture 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
 			   |  |  |  |