Well, it seems to be that this is really a comparison between two fundamentally different approaches to dealing with the issue of driver installation - binary vs source code.
Windows maintains a wild level of backwards compatibility, while Linux does not even attempt such (because you simply recompile everything). Both approaches have strengths and weaknesses - for instance I can patch a Linux kernel and get super hard (well, as hard was you will possibly get on a general purpose CPU) real-time determinism (www.xenomai.org). This is something that you will never see from Windows in its current incarnation and if we ever do I bet all these drivers shatter like so much movie candy glass. (Don’t get me started about the third party real time extensions out there - I evaluated quite a few… they were all garbage.)
Buggy bus subsystem? Fix kernel, recompile drivers. A few drivers may break, but that is only the kernel plumbing - easy enough to patch. Definitely a strength of that argument.
That said if I try to install that super spiffy binary real time kernel module I just produced on an exact HW copy of that Linux machine which isn’t so patched or has a X.YZ kernel as opposed to X.YY… well… kernel panics are SO much more fun than the BSOD, but that is only my opinion. That is, if it loads the driver at all. Tracking the problem down…? Ha! Why bother? The solution will be to recompile it first anyway, then debug.
But then again - very few people need this type of real time behavior. It is an edge use case. If you can run a sound card and display a movie smoothly - who cares about a few microseconds of timing slop? Most folks aren’t programming a ballistic missile reentry vehicle or a computer that is controlling an injured child’s brain patterns (I actually saw this at NIH - child had a Beagleboard sticking out of his head. It was running Slackware.).
Windows on the other hand, you can throw binaries around all day long with no rhyme or reason… and as long as you pay a minimal amount of attention to things like processor type it will probably work. Which, let’s face it, is all most people care about at 4:37 on a Friday afternoon. When dealing with thousands of installed systems of all variety of OS versions, service packs, what not… oy! Windows, much more better.
Seems to me it is probably best to be versed in both approaches - after all a lot of the hardware I have written drivers for can be ported to Windows with the right wrapper code, and that is precisely what I intend to do in some cases (although this current gig is all software only drivers - something I have rarely seen in Linux.)
As far as the whole license thing goes, well, I just paste the GPL comment on (unless it is for work, then cut and paste on what the tell me to) and call it a day. Usually the code is included with the product anyway… (see first paragraph). Dealing with the bombastic personalities of the open source evangelists can be a bit taxing. Personally I lean more towards their POV simply because it is easier for me as a developer to deal with source.
Good luck getting my mother to do so (but then again hiding the recompile behind a progress bar and she would never know the difference).
BTW there is nothing stopping anyone from GPL-ing their Windows driver if that is their kink.
Apples, oranges, and clementines…