• Css Template Preview
  • Css Template Preview
  • Css Template Preview
Country :
aren't find the right course?
contact us for customized training
 

XP embedded Workshop

         

Course Introduction:    

                                              

This course consists of 3 full days of training on Linux Kernel Internal Programming which covers the 2.4.x and 2.6 kernel programming models. The course starts with a session on the Linux execution environment. This session is a review of the kernel architecture and covers the various features and programming environment. Also covered is a review of processes and threads, exceptions, user versus kernel mode programming aspects and various IPC techniques in Linux Kernel .

                                               

 

Prerequisites:

Basic C programming
Familiar with Linux OS, but not essential.

 

Target Audience

This is an introduction to Linux Kernel Internal, and is intended for system administrators, system and application programmers who desire a comprehensive study of the internals of the Linux operating system.

Note: The program concentrates more on hands on. The lab exercises contain developing and testing of respective programs on X86 /PC hardware introduced on day one of the program.

 

 

COURSE CONTENTS

         
Download PDF format

Kernel Internals

 

Introduction to the Linux kernel
History of Linux
Types of kernel
The Linux kernel
Kernel Facilities
Kernel Architecture
Kernel version Numbers
Configure,compile kernel

 

The File System
Virtual File system & its role
Files associated with a process
System calls

 

Process Management
Process Defined
Process Descriptor structures in the kernel
Process states
Process scheduling
Process Creation
System calls related to process management

 

Memory Management
Defining and Creating secondary memory areas
Memory allocation & deallocation system calls malloc, calloc, alloca, free
Demand Paging defined
Process Organization in Memory
Virtual Memory Management
Address Translation and page fault handling
Buddy System Algorithm
Slab Allocator
Swapping Memory Areas
Memory Mapping
Zones and Pages
Address Space
Block Device Caching
High Memory
Paging


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

 

Kernel Configuration and Compilation

Kernel Building System
Patching the Kernel
Kernel Configuration
Compiling the Linux Kernel

 

 

Kernel Parameters

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


Kernel Synchronization

UP vs SMP Issues
Atomic Operations
Semaphores
Spin Locks
Boot Process - understanding Power ON to login prompt process
BIOS Level
Boot Loader
Setup, startup_32 functions
Available Bootloaders – GRUB, UBoot, etc.
Role of a Bootloader
Bootloader Phase
Kernel Initialisation Phase
The start_kernel() function
System Initialisation Phase
Understanding Runlevels
Various initialization scripts & customizing them
Kernel Command-Line Boot Parameters

 

Linux Advanced Programming

 

Arguments , the environment, and popular system functions
Arguments to a program.
Retrieving information from the environment.
How to use getopt() effectively.
Discovering the date and time
Getting system information.

 

File I/O

Library functions and system calls for I/O
Getting file status information with stat()
Processing directories and directory entries.

 

Shell Commands & Shell Scripting

Basic Shell commands
Bash Shell Essentials

 

Creating Makefiles

Makefile basics
Creating make files for single or multiple source files project

 

Creating Lilbraries

Creating Static Library
Creating Shared Library

 

Multi Process Programming

Creating child processes
fork(). vfork(), exec()
Parent synchronization with child

 

Multi Thread Programming

Creating multiple threads
Parent synchronization with other Threads

 

Inter Process Communication

Pipes, FIFO's,
Signals
System-V IPC's
Message queues
Shared memory
Semaphores

 

Introduction to Sockets

An Overview
System calls related to TCP and UDP sockets
Using Wireshark for network sniffing

 

Network Programming

TCP Server Client Programming
UDP Server Client Programming
Lab exercises



Programming & Debugging Tools

Debugging and Analysis Tools
strace : Tracing System calls
ltrace : Tracing Library calls
Using gdb and ddd utilities
Core Dump Analysis etc

 

Applications Development and Debugging

Application Development
Source Code Management

 

Source Code Version Control

Understanding need of Version Control System
cvs
svn
git

 

Note:
Training outline subject to change based on trainer conducting the program

 

 

 

 




Register Now button