Embedded Linux Internals and Device Drivers Training in Bangalore
10 Week intensive Linux Internals certification course in Bangalore

Course Details
Duration: hours
Effort: hours per week
Price With GST: 17700/-
Subject:
Level:
Prerequisites
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
Sockets
- 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 utilities
Core Dump Analysis etc
Lecture: Introduction to Embedded Linux and
- AT91RM9200
Lecture:
- Toolchain Components
- Building Toolchain
- Build Systems for compiling toolchain
Lab: Toolchain compilation and usage.
Lecture:
- 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 firstDriverskernelmodule
- Module RelatedCommands
- Kernel Module vs Applications
- User space vs Kernel space
- Statically linked vs Dynamicallylinkeddrivers/modules
- 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

