3

I want to learn driver programming. But I don't know anything about it, except a driver is something that acts as an interface between the operating system and the outer world. What is easier to learn, Windows driver or Linux driver programming?

Where should I start?

I am at an intermediate stage in C programming. What are the prerequisites? As I, in 2010, graduated as a B.Tech. in computer science from an average college, can I start doing driver programming? I mean, can only experienced persons program drivers? What are the career oppurtunities in this field?

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
himanshu
  • 417
  • 5
  • 18
  • PLease guide me... If i asked this question in wrong place than plz tell me the right place to ask...plzzzz – himanshu Feb 28 '11 at 18:08
  • 2
    'Driver programming' means writing interfaces between hardware devices and the operating system. Neither Windows or Linux driver development is easy. At an intermediate stage in C, I wouldn't even consider writing device drivers, especially considering the fact you had to ask this question. :) But the question is far too vague to be answered here, and I'm pretty sure it will be closed - please read the [FAQ](http://stackoverflow.com/faq) about asking questions and questions that can be asked. If you have specific questions, feel free to ask them, and we'll try to help. – Ken White Mar 30 '11 at 22:18
  • It may be enlightening to learn embedded (microcontroller) programming as an intermediate step. That bypasses the OS question and lets you get to a lot of low-level ideas and mechanisms. – XTL Dec 19 '11 at 10:27

1 Answers1

3

I'd say Linux device driver programming is easier than Windows, only because you've got access to thousands of drivers in the Linux kernel source tree that you can copy from. (And you can copy from them, because it's all GPL v2 licensed. You just have to GPLv2 license your driver too.)

The Linux Device Drivers, 3rd Edition book might be the best starting point. It's a little dated at this point, and the "flavor of the month" for many of the different techniques in the book have changed several times over, but it will get you experience writing small drivers and adding functionality over time. Once you've got some more experience, then the new "flavor of the month" for the different mechanisms will make much more sense to learn about it.

sarnold
  • 102,305
  • 22
  • 181
  • 238