Tuesday, 18 September 2018

Device driver : Sounds familiar, isnt it ? But, it's the single largest contributor to OS code.

Device driver : is a software component that provides an interface between OS and a Hardware device. It is a module of code that can be compiled into kernel or independently of other code.

Purpose : To configure and manage the device and convert requests from the kernel into requests to the Hardware.

Textbook oriented definition of 'device driver' : A device driver can be thought of a translator, that has two functions INPUT (commands) and OUTPUT (Instructions):


  • INPUT     : High level commands such as "retrieve block 123"
  • OUTPUT : Low-level hardware specific instructions used by the hardware-controller, which interfaces the IO device to the rest of the system.


Drivers rely on three interfaces:
1. Interface between Driver and Kernel
2. Interface between Driver and Device
3. Interface between Driver and BUS

There are 3 categories of drivers:
1. Character drivers   = byte-stream oriented   [Media/video/sound]
2. Block drivers         = random-access oriented [ata/ide/scsi]
3. Network drivers    = packet-stream oriented [Ethernet/wireless/infiband]

Sounds informative, but there is plenty that goes into it, and google is your good friend.

No comments:

Post a Comment