Question

When a manufacturer designs a hardware device, they obviously have someone who is in charge of writing a driver for that device for different platforms.

While I know that there are probably more than one "type" of driver for different types of devices, a driver for a device by it's nature must be very different from a normal application or script.

I've always wanted to pick apart a driver just to find out how it allows an OS to interface with hardware, but my programming knowledge is lacking.

Out of curiosity, I'd just like to know:

  • How does a device driver work, exactly?
  • When designing a driver for a device, what things do programmers consider?
  • What languages are drivers written in?
  • What is the overall process for designing a driver?
Was it helpful?

Solution 2

When designing a device driver, programmers look at the functionalities of the device that are to be implemented and write the driver accordingly

I prefer C / C++ for writing a device driver but have seen driver in assembly language also

overall process is dependent on device itself

OTHER TIPS

I suggest that you read (at lease the first chapter) "Linux Device Drivers". It will answer your basic questions and will allow you to study how to develop device drivers for Linux OS if you want to. You can find it here: http://lwn.net/Kernel/LDD3/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top