Take the 2-minute tour ×

Please understand that I am not trying to start a flame war.

I am interested in writing a device driver for my own education. As such, I am interested in knowing what experts think about the relative ease of writing drivers for the various operating systems.

(a) Which operating system has the best tutorials and API documentation for starting with device driver programming?

I have all the four major operating systems--Windows 7, Linux (Fedora and Gentoo), Solaris 11, OS X 10.7.3--so theoretically, I could accept any suggestion for the platform. (I even have MINIX 3.2.0, but I have not been successful in my attempts to install it yet. It does not recognise my NIC.) Since this exercise is purely for my edification, please feel free to make a different suggestion.

(b) Which operating system would be the best investment of my time, in the sense that if I start to get better, I might actually be able to publish my driver for download? (I imagine Windows 7 is great for device driver programming, but the market is probably saturated.)

(c) How does one go about getting a hold of devices for which to start writing drivers? Doesn't almost everything have a driver already?

Thanks in advance for your help.

share|improve this question
MS-DOS? Seriously, if I was starting from nothing, I'd look there and try to write a simple printer driver or something. 2nd choice: Linux, because it's open source so I could look at other drivers' code. –  TomA Mar 22 '12 at 23:46
This is a "not constructive, debate question", flagged as such. –  blueshift Mar 22 '12 at 23:46
Is it really a "debate" question? All I want to do is use the experience of others before embarking on a journey I have never undertaken. I'm just trying to "stand on the shoulders of giants," as it were. –  Shredderroy Mar 22 '12 at 23:58

1 Answer 1

up vote 0 down vote accepted

(a) Linux. Not only are there tutorials for how to write kernel modules and such, but you have the actual source of the kernel right there to look at. Windows might be decent as well.

(b) Linux. I'm not sure about OSX's docs, but if Apple is anything like they are with iOS, it might be a pain to get anything published. Windows, these days, IIRC you need a code signing certificate (to allow others to install it easily; no need to get a certificate for mere development).

(c) Most stuff has drivers for Windows and OSX. Linux is getting more and more support, but for any OS, there's nothing that says you can't write a driver for something that already has one. If your driver is better, people will recommend it -- hell, even the manufacturer of the device might want to include it on their CD. (Legalities abound there, though. watch yourself.)

share|improve this answer

Your Answer


