Innovation... driven by intelligence and logic

Block Device Driver Development

Abstract:

A Block device driver provides access to the block devices that transfer randomly accessible data in fixed size of blocks .All the mass storage devices are Block devices so they all need block driver i.e. Pen drive, hard disk .A block is a fixed size of junk of data determined by the linux kernel. Blocks are generally 4096 of bytes generally but their size depends on the architecture and the file system type . Block drivers are conduit between core memory and secondary storage because modern systems with virtual memory shift unneeded data to the secondary storage . Similarly a Sector is small size of block which size is usually determined by the underlying hardware. Today block devices becomes necessary part to store large amount of data .


Training Topics in brief:

  • Initialization of Block device driver .

    • Interfaces Information for Block device .
    • Memory allocation for block device .
    • Registration method with linux kernel .
    • Queue initialization and synchronization method and Timer initialization.
    • Initialization of block device structure .
    • Operations support initialization for the driver .
  • Exit of Block driver

    • Freeing the memory occupied by device driver .
    • Destroying the queue spinlock and timer associated with the driver .
    • Removing all its interfaces with the linux kernel .
    • Unregistration of the driver.
  • Functionality of the Block device

    • Opening the block device .
    • Closing the block device .
    • IOCTL method for the block device
    • Block transfer function .
    • Media change Functioning .
  • Testing

    • Creating the ramdisk partition .
    • Mounted node associated with the driver on it .
    • Creating the filesystem on ramdisk partition .
    • Transfer the data in ramdisk partition or block device .

Salient Features of Training Program

Training Objective:

  • To implement the Linux based device driver for block devices
  • This project 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 linux system programming and network programming and associated protocols / technologies to meet the needs of industries both today and in the future.
  • The course considers linux based kernel modules programming and communication techniques which can help to ensure that such techniques are reliable and act as a stable platform for networking and communication.
  • The course is taught mainly using the Linux, C, gcc, gdb and PC emulated as an embedded device.

Pre-requisite:

  • Education: ​BE, B Tech in ECE, EEE, CSE, IT or MCA
  • The trainee should have advanced level knowledge in C programming and Shell Scripting using Bash
  • Knowledge of usage of Linux and Linux internals is a must

Agenda:

The Duration of Training would be:
  • The Duration of training would be 15 working days.
  • There would be
    • 10 Classroom Sessions of 2 hours each
    • 15 Lab of 4 hours each
    • 80 hours of training.
Training Methodology:
  • Hands on approach to training, behaviorial model of training would be practiced.
  • During the training, the Trainee would implement a projects related to respective modules.
  • Comitment to Individual growth and constant evaluation.
  • Implementation of programming techniques through a Project.

Deliverables:

After the training is over, the Trainee should be able to:-

  • understand... 
    • the Linux block layer
    • IO mechanism in Linux
    • the concept of sectors, blocks, buffers and pages
    • the device driver architecture
    • the memory allocation and IO blocks creation
  • Implement complete block driver from scratch including...
    •  block device driver registration with linux kernel
    • queue initialization, synchronization and timer initialization
    • initialization of block device structure
    • Operations support initialization for the driver
    • request functions and transfer functions
    • all 5 standard request function like opening, closing, read, write ioctl and media change

EmbLogic would issue/provide the following:-

  • Project Report for Submitting into their college.
  • Project presentaation and demonstration assistance.
  • Completed Project (by the trainee).
  • Certificate of Completion for the training and Project as mentioned above.

Synopsys:

Block device driver

A Block device driver provides access to the block devices that transfer randomly accessible data in fixed size of blocks .All the mass storage devices are Block devices so they all need block driver i.e. Pen drive, hard disk .A block is a fixed size of junk of data determined by the linux kernel . Blocks are generally 4096 of bytes generally but their size depends on the architecture and the file system type . Block drivers are conduit between core memory and secondary storage because modern systems with virtual memory shift unneeded data to the secondary storage . Similarly a Sector is small size of block which size is usually determined by the underlying hardware . Today block devices becomes necessary part to store large amount of data .

It involves designing of a sbull , creating a disk on RAM. Providing its device geometry , registration , creation and initialization of request queue for the io scheduler and handling functions for the requests in a request queue provided by the io scheduler.


Training and projects Resources   Click here...


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

 

 

Go to Top ^