Training

 

 

Popular Courses

Browse Our Free Resources

  • whitepapers
  • whitepapers
  • webinars
  • blogs

Our Locations

Training Centres

Vancouver, BC
Calgary, AB
Edmonton, AB
Toronto, ON
Ottawa, ON
Montreal, QC
Hunt Valley
Columbia

locations map

Calgary

550 6th Av SW
Suite 475
Calgary, AB
T2P 0S2

Toronto

821A Bloor Street West
Toronto, ON
M6G 1M1

Vancouver

409 Granville St
Suite 902
Vancouver, BC
V6C 1T2

U.S. Office

436 York Road
Suite 1
Jenkintown, PA
19046

Other Locations

Dallas, TX
Miami, FL

Home > Training > Unix > Linux Internals Training

Linux Internals Training

Course#: WA2068

This course focuses on the elements of the Linux kernel that allow programmers to build software components that are linked to the hardware level. Students gain a general understanding of basic tools and interfaces in order to successfully modify features and develop new aspects of the kernel.

Course Length: 5 Days
 
Prerequisites 
Advanced UNIX Programming is recommended. Strong C programming skills and intermediate knowledge of UNIX/Linux shell commands are required. UNIX/Linux application development experience is recommended.

Outline of WA2068 Linux Internals Training

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

We regularly offer classes in these and other cities. Atlanta, Austin, Baltimore, Calgary, Chicago, Cleveland, Dallas, Denver, Detroit, Houston, Jacksonville, Miami, Montreal, New York City, Orlando, Ottawa, Philadelphia, Phoenix, Pittsburgh, Seattle, Toronto, Vancouver, Washington DC.
*Your name:

*Your e-mail:

*Phone:

*Company name:

Additional notes:

We have received your message. A sales representative will contact you soon.

Thank you!.

more details
buy this course

Register for a courseware sample

It's simple, and free.

 

Thank You!

You will receive an email shortly containing a link to download the requested sample of the labs for this course.