Online
eAge Technologies Linux Kernel Internals eAge Technologies
  • Duration / Course length: Upto 16 Hours Start now
  • Course delivery: This course is delivered in video format

Course details

16 hours real time session + 10 hours monitored hands-on

Ideal For: This training is targeted primarily at software professionals - tech leads, system programmers / developers, maintainers and testers - who would like to delve much deeper into the internal functioning of the Linux operating system.

Post course benefits: Lifetime access to online repository, Mock interview support, project support

Recruitment support: eAgeIT will propose candidates of this program for any open opportunities with its client portfolio. We do not guarantee placement. This will be purely merit based support.


  • Good working knowledge of and experience programming using the 'C'
  • Successfully attended the "LINUX Fundamentals for Software Developers" training program -or-have the equivalent knowledge / skill
  • Successfully attended the "Advanced LINUX Programming" training program -or-have the equivalent knowledge / skill Implies knowledge / skill sets of: POSIX library and system call API set, process management, IPC mechanisms, etc.
  • Extensive user-space development experience on a POSIX

Course Content

  • Linux OS : Fundamental Prerequisites
  • OS Architecture
  • Processor Protection Levels
  • Architecture Layers
  • Monolithic / Microkernel / Hybrid OS Architectures
  • Tracking Linux kernel changes.
  • Practical Guide to Writing Kernel Code with LKMs
  • Introduction to Loadable Kernel Modules (LKMs)
  • Setting up your Test System
  • The Hello World Module
  • Compiling, the Makefile, Insertion and Removal
  • Lab Assignment.
  • Passing Parameters
  • Kernel API and ABI.
  • Lab Assignment.
  • Kernel Architecture and the Process Descriptor
  • Timer Interrupt and the Tick Rate (HZ)
  • Kernel Architecture in Brief
  • Kernel Mapping of Processes and Threads
  • Multiple Stacks
  • Process Descriptor
  • Task List
  • Accessing the current task with 'current'
  • The task_struct.
  • Lab Assignments.
  • Linux Memory Management - Essentials
  • Introduction
  • What is VM; Hardware Paging
  • Linux VM Architecture
  • (n-Level) Arch-independent Paging on Linux
  • 64-bit VM Layout
  • Memory (De)Allocation API
  • GFP flags and action modifiers
  • vmalloc
  • Slab Cache API interfaces
  • Which API to Use When
  • Lab Assignments
  • Test the kmalloc limits
  • Verify the internal fragmentation (wastage).
  • Kernel Segment: Kernel Memory Map on the Linux OS
  •  Examining the Kernel Segment - kernel Virtual Address Space.
  • Process Virtual Memory Mapping
  • The mm_struct
  • Memory Regions and VMAs
  • Viewing VMAs
  • VMAs on 64-bit
  • proc: maps, pmap(1), smaps
  • smem, smemcap.
  • Low-Level API
  • Freeing Pages
  • kmalloc, kfree
  • GFP flags and action modifier
  • vmalloc
  • Slab Cache API interfaces
  • Which API to Use When
  • TheLinuxKernelScheduler
  • Introduction
  • Linux Process State Machine
  • Real-Time and Linux
  • POSIX Scheduling Policies
  • Realtime Policies
  • Priority Range
  • Pthreads soft-RT example
  • taskset
  • chrt
  • Linux as an RTOS: a mention of the PREEMPT_RT patch.
  • Control Groups
  • The Need
  • Cgroup Model
  • Configuration
  • Cgroups example for allocating cpu bandwidth.
  • Handling Concurrency in the Kernel
  • The Need for Atomicity
  • Causes of Concurrency in the kernel
  • Deadlock Prevention
  • Important Guidelines
  • Concurrency in the Kernel
  • Spinlocks and Mutexes
  • The Need
  • Understanding when to use which
  • The Semaphore Interface
  • A note on Spinlock Implementation
  • Specialized Locking
  • Atomic Operators
  • Reader-Writer Locks
  • Memory Barriers
Updated on 29 September, 2019

Eligibility / Requirements

Good working knowledge of and experience programming using the ‘C’
Successfully attended the “LINUX Fundamentals for Software Developers” training program -or-have the equivalent knowledge / skill
Successfully attended the “Advanced LINUX Programming” training program -or-have the equivalent knowledge / skill Implies knowledge / skill sets of: POSIX library and system call API set, process management, IPC mechanisms, etc.
Extensive user-space development experience on a POSIX

About eAge Technologies

eAge Technologies India Pvt Ltd is a Premium IT Consulting & Training company. Headquartered at Bangalore and with a mission of “creating better people”, we strive at bridging the gap between industry needs and employee/aspirant skill sets. We do this with the help of our large repository of trainer partners.  

Our services are provided in the following areas:

  • Corporate or B2b training: eAge offers IT Training for corporate in technologies such as IoT, Embedded, Internet, Cloud Computing, Big Data, Project Management, Process and Quality Implementation & Mobility.
  • Online training: Catering to aspirants looking at career shifts, knowledge upgrades and access to immersive and industry relevant course content; we provide an online instructor led training program. This program is a unique customized and scheduled training program and has been hugely successful in its acceptance.
  • Consulting: eAge also offers consulting services in Software Development and IT Maintenance in IOT, Embedded and Business Enterprise domain. Our R&D center has built some world class solutions around Embedded, Machine to Machine(M2M) Technologies. Our product, Asset Tracking System (ATS) is an energy monitoring system that aims to reduce the OPEX for any organization and is awarded best solution in the startup event held at Bangalore 2013.
See all eAge Technologies courses

Rate this page