Every now and then I get a bit overly excited and proclaim that Linux is 6 months off dominating the desktop.
In some ways this could happen, particularly in corporate environments where it's important for people to be able to hot desk and for the IT department to have total control over the systems--no games, no dodgy themes and certainly no Word macro viruses.
The barrier to the desktop is that people are used to ease of installation for hardware and gurus in this area are few and expensive. It always amazed me the amount of fiddling one had to do to get something like a scanner or sound card working in DOS. The Mac had always been incredibly easy in this way, no fiddling with IRQs and all that crap, so DOS seemed like a real step backwards.
Linux takes us back to those bad old days of DOS. To get a soundcard running I have to decipher the barely readable output of pnpdump and then work out what options my sound card takes. Of course to get it working I need to find out what IRQs, memory addresses and DMA channels are in use on my machine. Then, if I'm lucky, I can insert the appropriate modules and mabye get sound.
I tried this last weekend and finally got it all going, only to find that all sounds were repeating as if it were playing each chunk of audio twice. The IRQ wasn't in use but changing the IRQ fixed it. Why?
Now I know that this should be an issue for the manufacturers of hardware devices, but they don't care enough yet. In order to make them care we need enough people using the platform that they have to support it.
Why can't isapnp be integrated with the modules and devices be automatically loaded? The only barrier I see to this is the requirement of a database of identifiers for each peripheral. Come now, how hard would that be for some talented hackers? Hell, instead of taking the Windows model of the database being on the hard disk, why not stick it on a web server somewhere and have it queryable by whoever needs it? That way when new identifiers come out it'll already be in the database and the person who managed to get it working can finalise the record.
If I could code I'd be in there but it's not my thing. I'll happily document it! Drop me a line if you want to do this.