boxes_img2

Linux System and

Driver Developer
 

Course Highlights

  • This workshop is designed for programmers who are looking to understand the finer aspects of programming on the Linux kernel
  • This program is conducted over weekends
  • Program delivered by Mr. Raghu Bharadwaj, lead trainer on Linux system programming with an experience spanning over a decade. Trained corporate companies including Xilinx, NCR, Cognizant, TechMahindra, GE, Broadcom, Sasken to name a few

Who should attend?

  • Programmers looking to master key concepts of Linux system and kernel programming
  • Programmers already working on Linux, but looking for a methodical and concept-clearing professional training on Linux system and kernel programming
  • Programmers looking for a solid foundation on Linux system and kernel before going deep down into core specialization areas
  • Programmers expecting work assignments based on Linux system and kernel programming

Course pre-requisites

  • Proficiency in C programming
  • Ability to use Linux for programming purposes

Course Duration

  • 2 Weekends including Fridays (6 full days)

Courses Contents:

1st Weekend

1. Operating systems

    • Overview
    • Introduction to kernel
    • Types of kernel
    • Linux kernel project

2.Essential Developer tools

    • Gnu compiler collection
    • Gnu linker
    • Binary dis-assembler tools
    • Static and shared libraries

3.System calls & APIs

    • Syscall machanism
    • Api implementation
    • SUS and Posix standards

4. Process Address space & memory Allocations

    • Virtual Address space
    • Stack allocations
    • Heap management
    • Memory maps

5. I/O Architecture

  • Introduction to components of I/O architecture
  • Objectives of Linux I/O model
  • Virtual file system
  • File system services
  • I/O cache
  • Understanding file descriptors & inode structures

6. Signal management

    • Introduction to Signals
    • Linux signal types & categories
    • Signal generation and delivery
    • Linux signal management data-structures
    • Switching signal dispositions
    • Writing async signal handlers
    • Using signals for process communication
    • Blocking & Unblocking signal delivery

7. Timer interfaces

    • Posix interval timers
    • Linux interval timer interface

8. Concurrent application designs

    • Introduction to concurrent applications
    • Understanding need for concurrent apps
    • Standard Concurrency models
    • Comparative analysis of concurrency models

9. Synchronization & Mutual exclusion interfaces

  • Semaphores
  • Mutex
  • Spinlocks
  • Condition variables

2nd Weekend

10. Linux kernel build

    • Kernel source tree
    • Kbuild components
    • Compile and Building new kernel Image

11. Kernel modules

    • Introduction to Modules
    • Types of Modules
    • Module skeleton
    • Building kernel modules
    • Deployment and test

12. Hardware access

    • Device Addresses
    • Port mapped I/O
    • Interacting with port mapped devices
    • Memory Mapped I/O
    • Reserving address space MMIO
    • MMIO Access
    • Device Access side effects
    • Device access from u-space

13. Linux driver models and Architecture

  • Device Drivers defined
  • Linux Driver model
  • Types of Linux drivers
  • Driver stacks

14. Linux Char driver interface

    • Char driver skeleton
    • Basic driver ops
    • Advanced Driver ops
    • Kernel threads
    • Kernel timers

15. Kernel synchronization mechanisms

    • UP vs. SMP Issues
    • Combating Race Conditions
    • Atomic Operations
    • Semaphores
    • Spin Locks

16. Memory allocations

    • Linux kernel memory subsystem
    • Memory representation data structures
    • Memory Allocators
    • Allocating Boot memory
    • Page Tables and Address Translation

17. Interrupt handling

    • Understanding Interrupts
    • Linux Interrupt handlers
    • Implementing Driver ISR
    • Need for deferred routines
    • Linux Deferred Routines
    • Interrupt event management

18. Block Device subsystem

19. Network Device subsystem

  • >> Classroom
    • Course Name :
      Linux System and Driver Developer
    • Next batch schedule :
      TBA
    • Class Timing :
      9:30am to 5:30pm
    • Course Duration :
      Over 2 weekends
    • Course Fee :
      Rs.15,000/-
  • >> Audio/Video
    • Course Name :
      Linux System and Drivers
    • Next batch starts :
      Not Available
    • Class Timing :
      Not Available
    • Course Duration :
      Not Available
    • Course Fee :
      Not Available
  • >> Online

Course feedbacks

Success Stories