LLC104: Linux Internals & Programming Essentials

Overview
LLC104 Linux Internals & Programming Essentials course takes an insight in to the Linux Kernel, understanding its features and subsystem architecture. It further explores the features of the file system, memory management, process management, system calls, IPCs and network implementations.

Pre-Requisites
Command line experience on Linux Platrofm or undergone LLC033 course, knowledge of C programming on Unix / Linux platform.

Target Audience
This course is for programmers who are new to the Linux environment but have the knowledge of shell commands and want to learn about the kernel level features of the operating system. This course also helps programmers who are further intending to learn Device Driver Programming and Embedded Linux Programming.

Duration: 3 days (Full-time)


Course Outline

Introduction to Kernel
– History of Linux
– Types of Kernel
– The Linux kernel
– Kernel Architecture

The Boot Process
– BIOS Level
– Boot Loader
– Setup, startup_32 functions
– The start_kernel() function

Kernel Recompilation
– Importance of make files
– Procedure to recompile the kernel

Implementing System Calls
– System Calls Defined
– System Calls and APIs
– System Call Table
– Unistd.h and entry.S files
– Implementing a new system call

The File System
– Virtual File system & its role
– VFS data structures super_block, inode, file, dentry
– Files associated with a process
– System Calls
– Lab Exercisers

Process management
– Process Defined
– Process Descriptor Structures in the kernel
– Process States
– Process Scheduling
– Process Creation
– System calls related to process management

Inter Process Communication
– Pipes, Fifos, signals
– System-V IPCs
– Message queues
– Shared memory
– SemaphoresSockets
– An Overview
– System calls related to TCP and UDP sockets

Memory Management
– Defining and Creating secondary memory areas
– Responsibilities of Memory Management Module
– Memory allocation & deallocation system calls malloc, calloc, alloca, free
– Demand Paging defined
– Process Organization in Memory
– Address Translation and page fault handling
– Memory allocation strategies
– Buddy System Algorithm
– Slab Allocator
– Swapping Memory Areas
– Memory Mapping

Programming & Debugging Tools
– strace: tracing system calls
– Tools used to detect memory access error and Memory leakage in Linux : mtrace
– Using gdb and ddd utilities

Print Friendly, PDF & Email