But an enormous chunk of that code is going to be the same between
the Windows and Linux (and Mac) versions. Why should driver developers
waste their time maintaining an entirely seperate code base just
because, style-wise, the Linux kernel developers don't like it? How is
that even remotely cost effective?
So write all your platform drivers in the Linux style. There are many many hardware OEMs that somehow manage this. I don't feel this is a real issue, and the kernel would be a big mess if they did it any other way.
As they do on Windows (see miniport drivers), the difference is that
the design has developed such that modularity can exist without random
bits of new source being scattered all over the kernel. It's ironic
(given what a mess the Win32 layering was around the XP timeframe) that
Windows is becoming better at modular development precisely because
it's closed source, wheras Linux is rapidly heading in the direction of
becoming an overly complicated bloaty mess.
I
don't really agree. Anyway the whole existance of the MinWin project
leads me to believe that Windows is not quite as modular as we are led
to believe. Unfortunately there is no reliable way to settle this: Windows is
closed source. The most you can go by is what Microsoft allows the general public to know in the literature they publish.
But then maybe it's time to see that "one size fits all" just isn't
going to cut it. Maybe it's time to split the project. Or to give up on
the bits that just clearly aren't ever going to be a Linux strong
point, like the desktop.
I
think it works just fine actually. Linux is not "one size fits all", despite being a monolithic design. Because of it's open source nature, Linux has micro-kernel and
monolithic advantages. The advanced build system with many possible build targets allows you to roll a kernel that is vastly different from another in the same source tree. So Linux benefits from a really good source (or compile-time) modularity, and thus avoids many of the disadvantages of runtime modularity while sharing in many of it's advantages.
The concept of the source code as configuration mode is pretty foreign in a closed source system, so it's a unique advantage that only open source can really deliver. It would be cool to see desktop distros take
advantage of this more often ("bake" a optimized kernel for the computer during
the install process).
The last part is your opinion and it is one I
strongly disagree with. But ultimately I respect it. Linux as a desktop is not for everyone.