This course targets engineers who wish to develop or improve device drivers in the Linux kernel, for projects on embedded platforms, or on the traditional PC platform.Through theory and practical labs, the course makes you familiar with the essentials of kernel development: kernel architecture, the main APIs, integration of device drivers with other parts of the kernel and with user applications.This is a hands-on course in operating system internals. Students configure, compile, and install a Linux kernel from sources; do the same for a kernel module; navigate and read the Linux kernel sources; design and implement a kernel module of your own; modify, or design and implement from scratch, a device driver; measure the performance of what you have modified or implemented. "Embedded Linux" training program for BE, B Tech, ME, M Tech from the streams of Electronics, Computer Science, Information Technologies, Instrumentation, BCA, MCA. This training aims at imparting, ingraining efficient embedded operating system configuration and porting skills and ability to configure toolchain and prepare bootloaders. Embedded Linux is the use of Linux in embedded computer systems such as mobile phones, personal digital assistants, media players, set-top boxes, and other consumer electronics devices, networking equipment, machine control, industrial automation, navigation equipment and medical instruments.

Getting Started

  • Introduction to Unix and Linux
  • Programming Linux
  • Linux Compiler
  • History of Linux
  • Types of Linux platform
  • Real time system

Linux basics and commands

  • File Handling
  • Text Processing
  • System Administration
  • Process Management
  • Archival
  • Network
  • File Systems
  • Advanced Commands

Working with file

  • Unix file Structure
  • File and directory maintenance
  • Changing the attributes of a file systems
  • File handling concepts
  • Normal level file handling
  • Low level File handling


  • Socket connection
  • Socket Attributes
  • Creating a Socket
  • Socket Addresses
  • Naming a Socket
  • Creating a Socket Queue
  • Accepting Connections
  • Requesting Connections
  • Closing a Socket
  • Socket Communications Processes and Signals
  • What is process?
  • Process Structure
  • The Process Table
  • Viewing Processes
  • System Processes

Process Scheduling Getting Started

  • Kill a process
  • Fork
  • Starting New Processes
  • Waiting for a Process
  • Zombie Processes
  • Input and Output Redirection
  • Execve ,exec ,execv, execlp ,execl ,execve
  • Process commands
  • Signal handling


  • What is thread
  • Thread programming
  • Wait queues
  • Spin lock
  • Synchronization

Inter-process communication:

  • Pipes
  • Semaphores, message queues and shared memory
  • Shared Memory
  • Message Queues