Linux Needs to Master Hardware to Beat Windows

Intro

I knew very little about free software when I left Microsoft. I think any of my fellow former employees who bothered to learn what all I did would conclude that free software is superior, and that its biggest challenges are ignorance and a slight lack of execution. I say “slight” because the free software army is already an army of millions.

It is why I have written a book that talks about things like why it is cheaper to write drivers for Linux, but it also documents the biggest reasons for why it hasn't succeeded on the desktop yet. And the biggest challenge right now for Linux on the PC is hardware. In principle, none of your software can work until all of your hardware works.

PC Hardware

We love Linux, and we're doing our best to support the Linux community. we see the Linux desktop as a customer-driven activity. If customers want it, well, Dell will give it to them. —Michael Dell

Michael Dell's quote demonstrates that he doesn't consider the situation where people aren't running Linux on his hardware because it doesn't work! I have a Dell Vostro laptop that doesn't have a Linux driver for wireless Internet. If I can't take the computer to a coffee shop and surf the web, it is useless. I've thought about putting a bullet through the laptop and mailing it back. Even laptops by Dell that ship with Linux still contain proprietary drivers, drivers that aren't in the kernel, and so forth so it seems clear that Dell management doesn't understand Linux yet. Dell also inexplicably has 30 models of laptops, each with 30 options, so it might just be a general case of corporate cranial-rectal inversion.

Overall, PC hardware support in Linux is generally in good shape, and has improved a lot in the years since I first started using it. I believe it mostly requires that we continue to press on, working through the chicken and egg issue where hardware vendors are reluctant to support Linux until it has more users, but users won't run Linux if it doesn't fully support their hardware.

I singled out IBM in the OS chapter in my book, but many other hardware companies are under-investing in free software even though public statements by their VIPs suggest that they believe in it. For example, Intel claims to be a strong supporter of Linux, but is doing only a decent job in its support of Linux drivers. An Intel engineer told me at a Linux conference that their Linux efforts are just 1% of the manpower that their Windows efforts receive. Doubling their Linux development team would cost less than .1% of their total R&D. Intel is under-investing in Linux not because they can't afford to increase costs by .1%, but because they're suffering from Stockholm syndrome!

If Linux could recognize all of your hardware, all of your free software would run; if there is a bug anywhere in your hardware or device drivers, then it is quite possible that no software will run. Therefore, step one of World Domination by Linux is World Installation. The software incompatibilities will be better solved as soon as the hardware compatibilities become better solved. Therefore, it is the kernel that is currently holding up the PC revolution.

I've installed Linux on a number of computers and found several problems: the fingerprint reader and other optional hardware often doesn't work, the computer doesn't always come out of sleep, sometimes the modem drivers aren't available, etc. None of my particular problems were a barrier, but others aren't so lucky. I recently tried to upgrade my dad's eMachines computer from Ubuntu 6.06 to 8.10 but the install failed because of APIC incompatibilities. There are many long discussion threads on the Internet about Linux hardware incompatibilities.

Linus has overseen the design of an incredible platform, with support for more hardware than any other OS ever, and his kernel is the best piece of large free code ever written, but it needs further work. One of the biggest challenges I see for the kernel development community is a lack of respect for their buglist, the most important metric describing the state of the kernel.

Lower Development costs

It is much less expensive for hardware vendors to support Linux. If you want to build a device driver, a great place to start is by looking at existing shipping device drivers, an opportunity that Linux offers to everyone. A proprietary “Device Driver Toolkit” with its sample code is never as good as production code. Those expensive kits contain documentation, but not source code — so you sometimes have to guess at what is happening down below.

We find in Windows today that hardware manufacturers have duplicated a bunch of the functionality Windows provides but doesn't quite fit their needs. For example, IBM includes its own applet and status icon for wireless Internet, so Windows XP on IBM hardware has two. Presumably they weren't satisfied with the features Windows provided, and weren't able to fix them. And so they had to build new applets from scratch! This is also what gives Windows a feeling of a jumble of components slapped together.

Here are five of the 100 applets IBM adds to Windows:

Building all of these applets, designing multilingual user interfaces, providing the means to install and configure, etc. is ten times more work than merely writing the device driver, leveraging other shipping drivers, and uploading it to the official codebase.

I had a Photodesk 7960 printer worked on Windows XP, but didn't work on Windows Server 2003 because the installation code crashed — which HP shouldn't be forced to bother with in the first place.

Outtro

For more perspective on Linux, free software and open source, check out "After the Software Wars."

You can get a free PDF download here.

You can also purchase a paper or Kindle copy from your nearest Amazon.

Those of you who have questions and comments that you wish to be answered and addressed can leave them in our comments section below, and we'll pass them on to Keith Curtis in a follow-up.

Create a new thread in the UK News comments forum about this subject
This thread is closed for comments
17 comments
    Your comment
  • I have been using Linux and other open-source operating systems since the nineties myself, and I wholeheartedly agree that hardware support is the biggest hurdle to Linux adoption by the general public. Once Linux has decent drivers for some piece of hardware, it turns into a benefit compared to Windows where drivers and related conflicts – as well as all the vendor-specific tools and applications – are a nasty mess. While up to some point I can understand graphics manufacturers were reluctant to share some of the code for their latest products in the past, I can't understand why some basic functionality – such as the wireless support you mention – still hasn't found its way into Linux. With the community practically begging companies for minimal specs so drivers could be written for no cost to the manufacturer whatsoever, it's a mystery why so many companies seem to have their head that far up in their own ass.

    The other major problem with Linux is proprietary codecs, such as video formats and wannabe-standards such as Flash. Luckily standards bodies – more community-driven than corporate – seem to be able to provide some counter-weight here (e.g. HTML 5 video), although I have no idea what will happen with all those new DRM schemes both the entertainment industry as well as other content providers come up with on daily basis...
    0
  • I've been using linux for a little over a year now and had a few problems with hardware not working. With Ubuntu I had serious problems with getting wireless to work. My wireless worked flawlessly with Fedora (10, 11 & 12) which is why I use Fedora and not Ubuntu. The latest release of Ubuntu works fine for me (I tested it on a spare HDD) but since I've got used to the Fedora terminal I think I'll stay until forced to move.
    Even with Fedora I have some problems such as the finger print reader (which I disabled when running windows anyway) and my built in webcam both of which I never want to use but it would be nice to know I could use them if I wanted them. Also I'd love to be able to get sound through my hdmi out port. I saw on some threads there's a way to do it but it looks waaaay too scary. I usually don't get put off so easily but it was far far beyond the scope of any average user.
    0
  • I'd also like to add that video drivers can be a pain. I've had many problems with installing nvidia drivers in Fedora (something which is happily simplified in the latest Ubuntu). Some of this is to do with SELinux not allowing them to run whenever I update them. I've since been told how to change the SELinux policies but I didn't even know SELinux was part of the problem until I was reading about the fix.
    1