http://www.anandtech.com/IT/showdoc.html?i=1548&p=1
The author provides a pretty balanced discussion of hardware capability issues. He basically admits that Linux does not support every piece of hardware out there yet, and he compares it to the process that Windows NT 4 went through. Distributions are getting better, and you can often find enthusiastic "third-party" support for drivers. ("Third-party" is kind of a funny term, since there is no "first" party in Linux, unlike with proprietary operating systems, but I get his point.)
As a new Linux user, this issue affects me the most. I bought my desktop box when Windows was my primary OS, so naturally, all the hardware I have is well supported by Windows. When I installed Linux on my box, I had to buy a new modem. Also, I will need to upgrade my kernel if I want to be able to use my CD-writer. So, based on my own limited experiences, I would agree with the perception that Linux presents hardware compatibility challenges. When I buy my next PC, I will put more research into the hardware, but that may be a long way down the road, because Linux runs great on my box, and I see no reason to upgrade. When I installed Linux, I expected to be about 50/50 between Linux and Windows, but it's more like 90/10 now. Once I get the CD-writer working, I doubt I will do much on Windows at all. I was pleasantly surprised with how easy Linux was to use. -- SteveHowell
Linux actually now supports the most hardware of any operating system ever. It's just bad about newer hardware.
It's not so much that Linux is bad with newer hardware, it's that hardware vendors are bad with Linux. Lack of drivers are the fault of hardware manufacturers, not Linux.
Windows hardware support a myth?
Windows hardware support is becoming a myth. Microsoft is releasing too much, too often (Windows 2000, ME, XP etc), hardware is changing too often, and the result is an unbelievable mess. It's not like the old days anymore when I was building my own computer. Nowadays at least I feel safer with Linux.
Here's what happened to me yesterday: I bought a new motherboard (not a cheap one and from a well reputed manufacturer) and a new processor (AMD XP, it rocks), expect to put it inside and to work. No way, dude. Windows detected a new hardware (a controller on the board) slow all down to a halt because of their plug and pray algorithms and presented me with the option to install the drivers. Foolishly enough, I put the manufacturer CD in and followed the installation procedures by the book (motherboard's user manual). The result was awfully simple: no longer booting because of a stupid driver. Even in the safe mode console only, the guy was trying to load a certain viaagp1.sys and of course crashed. Maybe there were other solution, anyway, I put my old MB + processor in , manage to boot, started a fresh installation, and at the point it rebooted I stopped the computer and put the new motherboard back in. Eventually the system was able to boot, and I convince the damn PlugAndPray technology that I don't want to install nothing, thank you very much. The only good thing is that I have a fresh new installation, the old one was growing too much with dlls in the system directory and the whole mess. I lost half a day.
Now the funny part is that my video driver is in BETA , and no chance to get a new version from the manufacturer (it has been in beta since May 2000 and now it's October 2001). It looks like it's working but I suspect it was responsible for the problems I had with another motherboard that I returned it to the store. It was freezing the system sometimes, and other times there was some garbage opn the screen. AGP is very cool stuff when it works. Anyway with the new arrangement it looks like it's working. And the last detail: it looks like I am not alone with my problems. At the shop where I buy my hardware the vast majority of motherboard come in resealed packages (the customers returned them). And not to mention the coolest feature of my brand-new system. The driver for the PCI modem (which is a major brand and has no beta warning attached) gives me the blue screen when Windows is loading. It happened before 1 in 10 boots so the solution was to reboot. Now, with the new MB and the coolest processor, it happens mathematically 100% of the cases. So I keep it disabled from the control panel. After I boot successfully I go and manually enable it, so I can use the Internet. Of course, before I shut down, I have to go again in the control panel and disable it, otherwise i won't be able to boot successfully.
Now, who's saying what about Windows hardware support?
Sign your post, please.
Need Higher-level Standards
I don't know about mega-high-bandwidth stuff that needs to be close the the hardware and OS, but if vendors would adapt non-OS-specific interface protocols, then there would be fewer problems. Think of the old modem "AT" command mode. It didn't care what OS was on the other end, it simply responded to commands and sent info based on a published standard. This is how devices should be. Perhaps they can provide an OS-specific driver, but also support the standard interface. This increases the chance that at least one will work. The vendor-specific driver may be faster, but one could use the standardized protocol as an alternative or fallback. It may also make trouble-shooting easier because the back-and-forth I/O exchange between device and computer may be more analyzable, or at least better published.
As far as modems, some of the newer ones cut costs by making the computer's CPU do most of the work. Thus, more "generic" devices may be a bit more expensive because they may need be more self-contained. But at least one could look for Foo-compliant equipment to avoid being married to one kind of box.