UNIX & Linux Kernel Development Training(With focus on the core kernel technologies)

Skill Level: Expert
Lecture/Lab: 30/70

Eligibility : 2 years of exp with Linux and C as a student or as a professional and a BE/MCA or equivalent degree

Courses Content:

1. OS introduction

  • OS fundamentals and Linux kernel introduction

  • Process and memory management and file systems introduction.

  • Kernel synchronization and cross-system facilities

2. Process Management Topics

  • Concepts of processes, Kernel threads and systems call interfaces.

  • Linux kernel structures for processes.

  • Kernel stack internals

  • process queues , kernel schedulers

  • CFS and muti-core scheduler.

  • CPU affinity and scheduling domains.

  • Load balancing.

  • System calls for processes.

  • Signals and IPC

  • signal generation and delivery of signals.

  • Pipes, Shared memory and semaphores.

  • sleep and wakeup.

3. Memory Management Topics

  • Segmentation, Paging and Virtual memory

  • High memory and bounce buffers.

  • Logical, Linear and physical addressing

  • Physical Page extension, Physical Memory Layout and virtual pages, Page tables and TLBs.

  • Hardware caching and Multi-processor caching.

  • Cache hierarchies, Cache coherence and MESI protocol.

  • Page replacement policies

  • Page frame management, memory zones and Temporary Kernal mappings.

  • Page allocations, slab allocators and object caches

  • kmalloc implementation.

  • Swapping concepts.

  • Page frame reclamation algorithms

  • The out of memory killer.

  • Linux page cache.

  • address_space object.

  • Buffer cache versus page cache

  • syncing dirty buffers.

  • Swap cache.

  • Page cleaners and system calls for caching,

  • Process address space and VMAs

  • demand paging and page fault handler

  • Copy on write.

4. Kernel Synchronization

  • Kernel pre-emption and control paths.

  • Kernel pre-emption and control paths.

  • Pre-emptive kernels.

  • Concurrency and making the code re-entrant.

  • Synchronization primitives

  • per-CPU variables, atomic operations.

  • Memory barriers

  • spin locks

  • seqlocks.

  • RCU

  • Semaphore variants.

  • Synchronization across interrupts.

5. System calls

  • Covers most common systems calls that interacts with various kernel modules.

6 Timing controls

  • Clocks and timer interrupts

  • Jiffies and software timers

  • Timing wheel idea.

  • Udelay and ndelay()

  • System calls for timings.

7. Virtual File Systems

  • VFS primitives, File systems abstractions.

  • Dentry caches, super-block, fs-struc and files_struct , inode and directory operations

  • File system mounting and un-mounting.

  • Local and Network file system concepts.

  • Linux Block layer - BIOs- Overview of EXT4.

8.Playing with kernel

  • Obtaining kernel source

  • Installation of the kernel

  • Kernel source tree and code walk thru.

  • Configuring and Building the kernel

  • GNU C extentions for kernel coding

  • Inline assembly.

9.Lab session:

  • Building a kernel extension /module in a chosen area.

Assignments & Project:

The student will carry out several UNIX programming assignments, and at the end will develop UNIX IPC system software using various project development tools. In addition, he/she will be working on our Network IO Library development.

Image Gallery:

Follow Us:

Contact Us

Netdiox Computing System Pvt. Ltd.

Address:#1514, First Floor,19th Main Road,
                        HSR Layout Sector-1,Bangalore 102,
                        Karnataka, India
Contact No:+91 8197324604