Linux Kernel and Device Driver Development Training

7742 Learners

Linux Kernel and Device Driver Development Training focuses on the learning of Linux kernel, device driver, and real time operating system (RTOS). The course commences with providing information on process management and further goes deep into memory management, time management, scheduling, and interrupt handling in Linux environment.

The course then introduces the students to System Calls, Linux API’s for file operations, ipc, sockets etc. Design approaches are shown for soft- as well as hard- real time systems. The emphasis of the course content is on providing the students with actual work-oriented application skills. The course will provide the student with a life cycle view for designing multi-processing, multi-threading embedded systems.

By the completion of training, you will inculcate the following skillset:

  • Work on process management
  • Learn process management by understanding multitasking, Linux process scheduler policy, and scheduling algorithms
  • Understand the significance and types of system calls
  • Proper usage of memory management
  • Detailed understanding of Virtual File System, interrupt handlers, and time management
  • Writing device driver programs
  • Idea of Real Time operating System (RTOS)
Target audience
  • Students from third and fourth year of BE / B. Tech. courses (Computers, Electronics, Electronics & Telecommunication, Instrumentation, Computer Science, Information Technology).
  • Final year students of MCA/BCA/M.Sc-IT/M.Tech
  • Working professionals from embedded systems and related domains.
  • Professionals willing to develop device driver programming skills.
Prerequisites

Candidates having knowledge of Linux operating system along with shell scripting can undergo this training.

Linux Kernel and Device Driver Development Training focuses on the learning of Linux kernel, device driver, and real time operating system (RTOS). The course commences with providing information on process management and further goes deep into memory management, time management, scheduling, and interrupt handling in Linux environment.

The course then introduces the students to System Calls, Linux API’s for file operations, ipc, sockets etc. Design approaches are shown for soft- as well as hard- real time systems. The emphasis of the course content is on providing the students with actual work-oriented application skills. The course will provide the student with a life cycle view for designing multi-processing, multi-threading embedded systems.

By the completion of training, you will inculcate the following skillset:

  • Work on process management
  • Learn process management by understanding multitasking, Linux process scheduler policy, and scheduling algorithms
  • Understand the significance and types of system calls
  • Proper usage of memory management
  • Detailed understanding of Virtual File System, interrupt handlers, and time management
  • Writing device driver programs
  • Idea of Real Time operating System (RTOS)
Target audience
  • Students from third and fourth year of BE / B. Tech. courses (Computers, Electronics, Electronics & Telecommunication, Instrumentation, Computer Science, Information Technology).
  • Final year students of MCA/BCA/M.Sc-IT/M.Tech
  • Working professionals from embedded systems and related domains.
  • Professionals willing to develop device driver programming skills.
Prerequisites

Candidates having knowledge of Linux operating system along with shell scripting can undergo this training.

Linux Kernel and Device Driver Development Training Course Content

1. Process Management (kernel side) 

  • The Process
  • Process Descriptor and the Task Structure
  • Allocating the Process Descriptor
  • Storing the Process Descriptor
  • Process State
  • Manipulating the Current Process State
  • Process Context
  • Copy-on-Write
  • Forking
  • vfork()
  • Kernel Threads

2. Process Scheduling

  • Multitasking
  • Linux’s Process Scheduler Policy
    • I/O-Bound Versus Processor-Bound Processes
    • Process Priority
    • Time slice
    • The Scheduling Policy in Action
  • The Linux Scheduling Algorithm
    • Scheduler Classes
    • Process Scheduling in Unix Systems
    • Fair Scheduling
  • The Scheduler Entry Point
  • Wait Queues
  • Waking Up
  • Preemption and Context Switching

3. System Calls

  • System Calls
  • Examples of system calls
  • Examples of Standard APIs
  • System call Implementation
  • API-system Call-OS relationship
  • Types of system calls
  • Processor Affinity System Calls
  • Yielding Processor Time
  • Communicating with the Kernel
  • APIs, POSIX, and the C Library
  • Accessing the System Call from User-Space

4. Memory Management

  • Pages
  • Zones
  • Getting Pages
  • Getting Zeroed Pages
  • Freeing Pages
  • kmalloc()
  • gfp_mask Flags
  • Action Modifiers
  • Zone Modifiers
  • Type Flags
  • kfree()
  • vmalloc()
  • Slab Layer
  • Design of the Slab Layer
  • Slab Allocator Interface
  • Allocating from the Cache
  • The Process Address Space

5. The Virtual File system

  • Common File system Interface
  • File system Abstraction Layer
  • Unix File systems
  • VFS Objects and Their Data Structures
  • The Superblock Object
  • Superblock Operations
  • The Inode Object
  • Inode Operations
  • The Dentry Object
  • The File Object
  • File Operations
  • Data Structures Associated with File systems
  • Data Structures Associated with a Process

6. Interrupts and Interrupt Handlers                                                              

  • Top Halves verses Bottom Halves
  • Registering an interrupt handler
  • Interrupt context
  • Taslets
  • Softirq

7. An Introduction to Kernel Synchronization

  • Kernel Synchronization Methods
  • Spin locks
  • Reader-writer locks
  • Semaphores

8. Timers and Time Management

  • Jiffies
  • Hardware clocks and timers

9. LINUX DEVICE DRIVER

  • Introduction
  • Role of Device Driver
  • types of Device driver
  • loadable modules and its benefits
  • Functions used to load and unload modules
  • Passing parameters to a loadable module

10. Writing a device Driver Program

  • Important header files
  • Writing a simple module
  • Compiling and loading modules
  • Device information in /proc
  • Character driver
  • character driver basics
  • major and minor numbers
  • creating device files with mknod
  • registering a character device driver
  • Hand- on   Practice                                          
  • Character Device Driver writing
  • Userspace interaction
  • Proc/sys model
  • Lcd implementation
  • Understanding the serial device driver

11. RTOS

  • Introduction to RTOS
  • What is Real Time System?
  • Requirements of Real time System
  • Hard Real-time Systems and Soft Real-time Systems

12. Task

  • What is a task creation?
  • Unitask approach Vs multitask approach
  • Task states

13. Scheduling

  • Multitasking Kernel
  • Context switch
  • Priority based scheduling
  • Round Robin scheduling

14. Task functions

  • Task states  
  • Task hooks
  • Task synchronization

Drop Us a Query

+91 95550 06479

Available 24x7 for your queries

Linux Kernel and Device Driver Development Corporate Training & Certification Program

Employee training and development programs are essential to the success of businesses worldwide. With our best-in-class corporate trainings you can enhance employee productivity and increase efficiency of your organization. Created by global subject matter experts, we offer highest quality content that are tailored to match your company’s learning goals and budget.

Learn from the experts

Customized Training

Be it schedule, duration or course material, you can entirely customize the trainings depending on the learning requirements of your workforce. You can even choose a trainer from our team of certified industry experts.

Learn from the experts

Expert Mentors

Get trained from our team of highly skilled and certified trainers, who are officially accredited professionals with relevant industry experience and adept in providing the knowledge and skills required to be successful.

Learn from the experts

360º Learning Solution

Engage your employees with our all-inclusive learning platform. Avail benefits of 24/7 access to the learning management system, industry-certified mentors, assessments & mock tests, real-time learning and more.

Learn from the experts

Learning Assessment

Check test score and performance with our skills analysis tools. Our detail scoreboard displays scores, areas of strength, detailed answer of questions and more for each employee.

Download Corporate Brochure

+91 9555006479

Available 24x7