Sign in with
Sign up | Sign in

Linux Needs to Master Hardware to Beat Windows

By , posting for special guest columnist Keith Curtis - Source: Tom's Hardware US | B 117 comments

Today we have Keith Curtis joining us for a discussion on Linux. Curtis spent 11 years as a Software Design Engineer at Microsoft before examining Linux and the open source side of things, which resulted in a change of perspective and a published book.

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:

Windows XP with 5 of IBM's 100 extra applets. Notice the large number of status icons on this almost-virgin installation.Windows XP with 5 of IBM's 100 extra applets. Notice the large number of status icons on this almost-virgin installation.

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.

Discuss
Display all 117 comments.
This thread is closed for comments
Top Comments
  • 21 Hide
    kyeana , January 22, 2010 8:19 PM
    What we really need is ATI linux drivers. If we could get that i would be very content.
  • 12 Hide
    kyeana , January 22, 2010 8:31 PM
    Tyellocki think this is a step forward for the linux communityhttp://developer.valvesoftware.com [...] nder_Linuxits not perfect yet, but the exposure is starting


    Personally i think WINE is more of a step backwords then anything. It opens the door for all sorts of windows attacks/virus's on a linux machine, and just further encourages developers to make windows applications, instead of native linux ones.

    I'm not denying that windows emulation can be useful, however, the ideal solution would be to have native linux programs.
  • 10 Hide
    kyeana , January 22, 2010 8:41 PM
    excalibur1814Ummm.."Linux Needs to Master Hardware to Beat Windows"Haven't we known that for years and years? Once Linux beats Windows we'll probably be back to square one. When everyone has Linux, 'who' is going to centrally provide security updates? Who's going to offer support when the mass cannot be bothered anymore as the tinkers have gone onto another OS as Linux would then be 'too commercial'.Ahh heck, let's just give away our free will and jump onto osx


    Linux isn't meant to be an OS for everyone, and it isn't meant to replace windows. It is simply meant to be open source, so that you can do whatever you want with it. Some people may like this and switch to linux, while some would prefer having centrally provided security updates.

    The problem right now is that even if people like the open source philosophy, they still require windows (for things like exclusive software, and driver support like this article mentioned).
Other Comments
  • 21 Hide
    kyeana , January 22, 2010 8:19 PM
    What we really need is ATI linux drivers. If we could get that i would be very content.
  • 9 Hide
    Tyellock , January 22, 2010 8:21 PM
    i think this is a step forward for the linux community

    http://developer.valvesoftware.com/wiki/Steam_under_Linux

    its not perfect yet, but the exposure is starting
  • 4 Hide
    False_Dmitry_II , January 22, 2010 8:30 PM
    Heh, all the hardware in my FX-gateway gaming laptop works perfectly in linux (I dual boot it and Win7 Pro) Even the mute and volume controls work.

    Intel's wireless drivers in linux are almost the only ones that just straight up work.

    ATI drivers are getting better and better for the HD series of cards. They've introduced some kind of aspect that's open but I haven't looked into it really.
  • 12 Hide
    kyeana , January 22, 2010 8:31 PM
    Tyellocki think this is a step forward for the linux communityhttp://developer.valvesoftware.com [...] nder_Linuxits not perfect yet, but the exposure is starting


    Personally i think WINE is more of a step backwords then anything. It opens the door for all sorts of windows attacks/virus's on a linux machine, and just further encourages developers to make windows applications, instead of native linux ones.

    I'm not denying that windows emulation can be useful, however, the ideal solution would be to have native linux programs.
  • -1 Hide
    kyeana , January 22, 2010 8:34 PM
    False_Dmitry_IIATI drivers are getting better and better for the HD series of cards. They've introduced some kind of aspect that's open but I haven't looked into it really.


    They may be getting better, but i have still been unable to get my desktop with 2 4850's running in arch linux. I have tried the open source radeon and radeonhd drivers with a million xorg.conf files, but to no avail (they are all super laggy, presumably because direct rendering isn't working). I'm down to the last string, hopping that enabling KMS will fix it.
  • 10 Hide
    kyeana , January 22, 2010 8:41 PM
    excalibur1814Ummm.."Linux Needs to Master Hardware to Beat Windows"Haven't we known that for years and years? Once Linux beats Windows we'll probably be back to square one. When everyone has Linux, 'who' is going to centrally provide security updates? Who's going to offer support when the mass cannot be bothered anymore as the tinkers have gone onto another OS as Linux would then be 'too commercial'.Ahh heck, let's just give away our free will and jump onto osx


    Linux isn't meant to be an OS for everyone, and it isn't meant to replace windows. It is simply meant to be open source, so that you can do whatever you want with it. Some people may like this and switch to linux, while some would prefer having centrally provided security updates.

    The problem right now is that even if people like the open source philosophy, they still require windows (for things like exclusive software, and driver support like this article mentioned).
  • 7 Hide
    Anonymous , January 22, 2010 8:58 PM
    "Linux" doesn't need better hardware support, the damn vendors and hardware manufacturers need to open up their source code or write drivers for Linux. Also some distributions could include some more drivers but I'm happy with Ubuntu's driver setup.
  • 4 Hide
    mlopinto2k1 , January 22, 2010 9:28 PM
    Mastering hardware is one way to put it. Adobe needs to make photoshop for Linux. There needs to be pressure support for Wacom tablets. Then i'll switch.
  • 4 Hide
    thomasmc , January 22, 2010 9:35 PM
    Dude you got a Dell.
    You idiot.
  • 5 Hide
    thomaslompton , January 22, 2010 9:50 PM
    He makes it seems like Linux is almost to the point that it is good for general consumption. It may be great for programmers who can write whatever program they are missing, but for the average user, it is more difficult than it needs to be to install anything that isn't included in an Ubuntu community. No, hardware is just the beginning of Linuxs problems in gaining general consumer acceptance.
  • 2 Hide
    jeffunit , January 22, 2010 9:54 PM
    I have a epson perfection 3200 scanner. I paid about $500 for it. They don't have a windows 7 64 bit driver for it. Works fine on Linux.
    For windows 7, I am now using a crappy old HP scanner which does have a driver.

    My 10 and 12 year old HP printers still work fine, and have windows 7 64 bit drivers as well as Linux drivers.

    So, I am not recommending anyone buy Epson hardware, and people buy HP printers and scanners.

    It is not Linux's *fault* there is no driver for some specific piece of hardware, it is the manufacturer's fault. If your notebook's wireless doesn't work, buy an external wireless card that has Linux support.
  • 5 Hide
    alextheblue , January 22, 2010 10:01 PM
    "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."
    That's HP's fault for having a shitty installer. Which HP MUST bother with, because without it, your average person couldn't get the printer up and running. I think that is what a lot of Linux-go-mainstream proponents don't understand... Linux is not for the average PC user, unless you plan on putting out a free 1-800 tech line for every time a user can't figure out how to make their newest USB Widget work with their machine. A lot of users can barely operate Windows, and have lots of extra junk installed that they have no idea how it got there, because they just click YES OK GOGOGO buttons whenever they pop up while they're trying to get something to work.
  • -6 Hide
    ta152h , January 22, 2010 10:06 PM
    I've heard about how some form or another of Unix is going to take over the world for over 30 years. It's not. But, my guess is the chatter is going to continue for at least another 30 years.

    Unix sucks. Linux is a form of Unix. If it hasn't gained popularity by now, what's going to change? Oh wait, Windows 7 is out, and it's good! If they would just start from a better foundation than a crappy OS conceived over 40 years ago, they might have a chance. But, they keep trying this old retread in this form and that, and then wonder why it fails every time.

    But, again, there's less reason this year than last for people to move to Linux, and it didn't gain share last year, or the year before, etc... Linux isn't growing. There's no catalyst for growth, even Vista wasn't enough.

    But, we'll keep hearing about it. Or the next version of Unix after Linus - and you know there will be. There's always plenty of lipstick to slap on this pig. And you'll always hear "But this is different from the other Unix varieties. It does this and that.". Sure as the Sun will come out tomorrow (except maybe in northern Alaska, still).
  • 1 Hide
    kyeana , January 22, 2010 10:11 PM
    thomaslomptonHe makes it seems like Linux is almost to the point that it is good for general consumption. It may be great for programmers who can write whatever program they are missing, but for the average user, it is more difficult than it needs to be to install anything that isn't included in an Ubuntu community. No, hardware is just the beginning of Linuxs problems in gaining general consumer acceptance.


    Personally, i find installing software on linux much easier then i do on windows. Being able to type in (arch) "pacman -S firefox" (or whatever program you want) in my mind is as simple as it gets. Given, there are some programs out there that may not be in the repositories. However, in those cases you can often find a .deb file (for debian based distros, such as ubuntu) which act the same as a .exe file in windows. If worst comes to worst, and you have to install something via the command line, i have yet to find something that didn't provide detailed instructions on how to go about it.

    But regardless, this just further increases my previous point. Linux isn't about over throwing windows. It is a different way to think about an operating systems. You can have more control over your system, due to the very nature of open source. On the flip side you may end up with some things such as programs that do not work right or are slow on support. This will appeal to some people, while other will prefer the Windows way of doing things. To each their own.
  • -3 Hide
    Regulas , January 22, 2010 10:22 PM
    They also failed to mention MS continually works (legally and illegally) to make it hard or impossible for Linux to work with hardware.
    For example, this is a quote from some smart Linux user complaining about ASUS laptops.

    Quote:
    ...because Asus, in their "wisdom," use Microsoft's ASL compiler when preparing the BIOS. This is a PoS that doesn't quite comply with the ACPI specification everyone else, including the free OSen, uses and leaves you with a broken DSDT on anything other than Windows. You can, on any reasonable operating system, disassemble the DSDT and recompile it with Intel's compiler to give you a DSDT, loadable at boot-time (or, if you're feeling really brave, grafted into the BIOS image), that works. It's rather complicated as MS's little offering quietly accepts syntax that Intel's doesn't. I'm not sure if this is the case with the Eee range as I don't own one, but it's certainly the case with desktop boards. For example:
    # acpidump -dt ./acpi.asl
    acpidump: RSDT entry 3 (sig OEMB) is corrupt
    Whoops. Looks like I'm SOL and JWF if I want to disassemble and try to fix this PoS with a corrupt root system description table. Let's try anyway:
    # iasl ./acpi.asl
    [...many errors]
    ./acpi.asl 5189: Scope Name (G0T3, Package (0x07)
    Error 4094 - ^ syntax error
    Maximum error count (200) exceeded
    ASL Input: ./acpi.asl - 9627 lines, 331801 bytes, 1519 keywords
    Compilation complete. 201 Errors, 2 Warnings, 0 Remarks, 9 Optimizations
    Suffice to say that the corrupt table is probably the cause of most of these errors and, even if I were to go through the code and try to fix the syntax errors, I very much doubt it would compile with bits missing.
    The results? See for yourself:
    acpi0: <033109 on motherboard
    acpi0: [ITHREAD]
    acpi0: Power Button (fixed)
    acpi0: reservation of fee00000, 1000 (3) failed
    acpi0: reservation of ffb80000, 80000 (3) failed
    acpi0: reservation of fec10000, 20 (3) failed
    acpi0: reservation of 0, a0000 (3) failed
    acpi0: reservation of 100000, cff00000 (3) failed
    ACPI HPET table warning: Sequence is non-zero (2)
    Oh, and just in case anyone thinks I'm blowing smoke about them using MS's asl compiler, here's the XSDT:
    XSDT: Length=76, Revision=1, Checksum=31,
    OEMID=033109, OEM Table ID=OEMXSDT, OEM Revision=0x20090331,
    Creator ID=MSFT, Creator Revision=0x97
    Entries={ 0xcffb0290, 0xcffb0390, 0xcffb0400, 0xcffbe040, 0xcffb94e0 }
    Creator ID MSFT. Says it all.
    This is an Asus M3A78 Pro. So, Asus, either you're conspiring with MS to shut out alternative OSen or you're incompetent. Which one is it?"
  • 3 Hide
    randomizer , January 22, 2010 10:35 PM
    To the Windows fanboys who can't use Linux because they try to use it like Windows: Ask any average user how easy Windows is to use when they stumble across a problem. If I charged friends a typical rate that a "real" tech support guy did whenever they had a problem, I'd be loaded, and they'd be living in a slum. Windows is not easier than Linux (or to be more specific, certain distributions of Linux, as some are difficult by design), it's just different.
  • 1 Hide
    Shadow703793 , January 22, 2010 11:03 PM
    Imo, I'd rather let Linux have less market share so we Linux users aren't a big Bulls Eye on a crackers target. After all, crackers want to get the masses due to time,money,etc.
  • 4 Hide
    sorin7486 , January 22, 2010 11:10 PM
    Linux has probably mastered the hardware better than anyone could expect given that it doesn't get the support of most hardware vendors. But I think that will change with time as most things did.

    I for one have been very lucky when it comes to hardware support. Haven't had a problem in about 3 years or even more. I know it's not the same for everybody but for me it's been working great. A fresh ubuntu install works perfectly out of the box. On the other hand it took me a couple of hours to get my laptops graphics working properly on Windows 7. I guess it was just a reminder of how important the vendor support really is.
  • -4 Hide
    Anonymous , January 22, 2010 11:31 PM
    This is nuts. Yeah, hardware's important. However, I use OpenOffice as my primary suite. I installed Ubuntu, and went slack-jawed when it came time to install OpenOffice. Holy crap! Why can't I just install the thing with one click?!? Why are there all these competing interfaces? Why can't the entire Linux community just frickin' get together behind a *SINGLE* kernel and interface? Okay maybe two? Rather than all these different distros? Man, WHAT IS WRONG WITH THE LINUX COMMUNITY?!? Why can't everyone doing all this great development simply unify...?!?
Display more comments