Embedded Linux Internals and Device Drivers Training in Bangalore

10 Week intensive Linux Internals certification course in Bangalore

Linux-Kernel-Internals.png Embedded Linux Training

Course Details

Duration: hours

Effort: hours per week

Price With GST: 17700/-




Learner should be proficient in the C programming language, basic Linux (UNIX) utilities such as ls, grep and ta, and be comfortable with any of the available text editors (e.g. emacs, vi, etc.) Experience with any major Linux distribution is helpful but not strictly required.

Linux Internals
Introduction to Linux
- GNU Project / GPL Licensing
- Evolution of Linux & Development Model
- Device Identities in Linux - Partitioning Schema

Introduction to Kernel
- History of Linux - Types of Kernel - The Linux kernel
- Kernel Architecture
Shell Commands & ShellScripting

- Basic Shell commands - Bash ShellEssentials
- Creating Makefiles

Creating Libraries
- Creating Static Library - Creating Shared Library
The Boot Process
- BIOS Level - Boot Loader - Setup, startup_32 functions
- The start_kernel() function

The File System
- Virtual Filesystem & 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
- Address Translation and page fault handling
- Virtual Memory Management

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

- An Overview
- System calls related to TCP and UDP sockets

Network Programming
- TCP Server-Client Programming
- UDP Server Client Programming
- Netlink socket interface

Programming & Debugging Tools
Tracing System: Callsltrace :- Tools used to detect memory access error and Memory leakage in Linux:
Tracing Library calls- Using gdb

mtracean dddd
Core Dump Analysis etc
Lecture: Introduction to Embedded Linux and

- AT91RM9200
- Toolchain Components
- Building Toolchain
- Build Systems for compiling toolchain

Lab: Toolchain compilation and usage.

- Bootloader Architecture
- U-Boot Bootloader Porting on New Hardware.
- U-Boot Commands
Lab: Bootloader compilation and downloading on Targetboard.
- Bootloader commands and usage,
- Bootloader code customization, adding new Ethernet drivers toU-Boot.
Lab: Downloading pre-compiled Linux kernel images on Targetboard.
- Using SD-Card for rootfs.
- Configuring NFS and using rootfs over NFS.
- Configuring TFTP and downloading kernel image over TFTP.

Lecture: Linux Kernel Architecture.
Lecture: Linux Source code browsing & code changes for a new Target [ Porting]
Lab: Configuring and compiling LinuxKernel.
Lecture: Root file system.
Lab: Building Root file system with Busybox and booting the Linux kernel
Lab: Cross compilation of libraries for the target.
Lab: Application development and Cross compilation.

An introduction to device drivers
- Role of the Device Drivers
- Splitting the kernel
- Classes of devices and modules
- Kernel Architecture or Model
- kernel modules

Module Basics
 -Introduction to Modules & Device
- Modules Defined
- Types of Modules in the kernel
- Writing Your first
- Module RelatedCommands
- Kernel Module vs Applications
- User space vs Kernel space
- Statically linked vs Dynamically
- Exporting symbols from modules
- Concurrency in the kernel
- Module Parameters
- Version dependency
- Kernel Module Programming
- Lab exercises

The proc file system
- Creating proc file systementries
- Making read & write operations on proc entries
- Lab exercises

Character Device Drivers