> > > How have Linux
> > > developers managed to go so long without realising that users would actually
> > > from a stable kernel ABI?
> > They wouldn't, which is why. Now, video support on linux is catastrophic for a
> > of reasons, some good, a large number bad. It's not really the fault of the kernel,
> > or maybe it is in the sense that most of it should be in there and isn't.
> > OG.
> Stable kernel ABIs benefit everyone. Suppose I sell an expensive piece of specialised
> hardware, and provide drivers for it, and then go bankrupt because I can't make a
> living selling to such a small niche. If the kernel ABI is stable, your drivers
> continue to work across kernel upgrades. If not, you or someone else will have to
> hack them up and rebuild them. Putting the drivers into the main kernel tree isn't
> the solution for two reasons: firstly it's a specialised piece of gear, and I didn't
> sell a huge number of them, so it's pointless distributing the driver to everyone;
> secondly, none of the kernel developers will actually have the hardware, so they'll
> have no hope of maintaining it anyway. Solaris has managed to provide stable kernel
> ABIs for ages - why is it too hard for the Linux dudes, and apparently Apple, too?
Because there isn't any money in it for the linux/apple guys. Believe it or not most hardware companies aren't going to waste time making drivers for OSes with such low adoption rates. Heck most of your linux drivers are written by linux fans and NOT by the O.M. Also linux is the OS equivelent of mame.... those guys are hobbyists... they don't care if it breaks your setup.
From both a user's and programmer's perspective here is the difference between linux and windows:
Windows is designed to easily add anything to the OS... drivers, software, ect. Now it might not do the best job, bu tthe average user can easily install drivers and software on windows just by following a wizard. Updates to the core of the OS generally do not effect drivers and software installed on a windows user's system. THIS is what makes it user friendly.
Linux has made great strides over the years to make things user friendly but it isn't modular enough at the core and thus it will always fall short. Most of your "drivers" in Linux have to be complied into or for the kernel instead of simply installing them. Every time linux's kernel gets a significant update (which seems to be constantly) most of yoru drivers, particularly video and sound drivers have to be re-compiled. This would be the windows equivelent of having to re install all of your drivers every time microsoft sends out a security update. As in it isn't particularly hard, but your computer is out of action for an hour or two.
Linux can be very stable though (at this point I question if it's more stable than windows 7 though... that thing is pretty damn stable). Linux's open srouce nature also allows it to be adapted to ANYTHING. So linux is very well suited for embedded devices, servers, tablets, ect... Just don't expect to be updating it a lot.
Simply put, linux isn't suited for the end user. Users want to install their own software, they want to keep things updated for safety and they want to play around. Linux just can't handle the abuse the average user puts an OS through the way windows does, particularly recent revisions of windows.