Innovation... driven by intelligence and logic

Character Device Driver Development

Character Device Drivers are software component that provide interface between the devices for interaction. These run as part of kernel but, are developed separately from the kernel. Inserted into the kernel dynamically on demand. These are written in System C and are developed separately from the kernel. This is basically the entry points into the kernel and is called kernel programming or kernel development. These character driver are used to establish communication between the devices that interact with each other character by character.

This hands on training program includes understanding the Linux device driver architenture and then implementing the driver from the scratch. The implemented driver would contain registration, io facilities, synchronization and concurrency management, debugging ang probing, timers and interrupts.

Salient features of the Training Program:

Training Objective:

  • This module is designed to ensure that students of Engineering College with academic capabilities will have the skill set needed to deal with the challenges involved in real-world Embedded Technologies to meet the needs of industries both today and in the future.
  • This training program considers understanding the Linux operating system internals and be able to write a complete character driver and insert it into the kernel.
  • This module is taught mainly using Linux operating system (fedora/ubuntu/debian), systems based on x86 processors and a PC emulated as an embedded device.

Pre Requisite:

  • Good Programming skills in C, Shell Scripts
  • Good understanding about system programming and kernel internals is asumed
  • An Engineering Degree (completed or persuing(third/final year)) in the stream of: Electronics, Computer Science, Information Technology, Instrumentation or Master of Application (MCA).


  • The Duration of Training should be:
    • 20 working days
    • There would be (approx) 15 Classroom Sessions of 2 Hours each.
    • There would be (approx) 20 Lab Sessions of 4 hours each.
  • Training Methodology:
    • Hands on approach to training, behaviorial model of training would be practiced.
    • During the training, the Trainee whould learn and implement Linux shstem and network programming
    • Comitment to Individual growth and constant evaluation.
  • Deliverables:
    • Training Program:
    •     Introduction to Device Driver Architecture
          Device Registration and itialization
          Device IO Operations
              Writing, Reading and Trimming
          Device Operations
          Device Access and Synchronization
              Semaphores, Completion, Spinlocks, Wait Queues, Blocking IO, Atomic Variables, Bit Manipulators
          IO Control using IOCTL
          IO Prefectchins using Sequential Files
          Software Implemented, Pseudo File System. /proc
          Timing Measurements
              Delays, Timers, Tasklets
          Introcduction To Interrupts
          Interrupt Handling
              IRQs, ISRs, Top half, Bottom Half
          A Complete Device Driver should be Implemented From Scratch
  • The Trainee should be able to:-
  • understable device driver architecture for Linux
  • insert and register character device driver with the Linux Kernel
  • do complete initialization for the device driver
  • Implement the following operations on the character device driver
    • ​open. release, write, read, trim, lseek
  • Implement the following synchronization techniques on the simultanious operations on through the driver
    • semaphore, completion, spinlock, blockingIO, wait queues, file locks, seqlocks, capabilities
  • Implement advanced character device driver operations
    • IO using sequential files, IO control, software implemented filesystem - proc
  • Timing measurements, delays, timers, kernel threads
  • Interrupts: tasklets, shared queues, h/w and s/w interrupts, top and bottom halfs​
  • EmbLogicTM would issue The Certificate of Completion for the training as mentioned above.

EmbLogic is an ISO 9001:2008(QMS) (Quality Management System) Certified Company

Go to Top ^