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 17 comments
Tags :

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.


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.


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.

Ask a Category Expert

Create a new thread in the UK News comments forum about this subject

Example: Notebook, Android, SSD hard drive

This thread is closed for comments
  • 0 Hide
    Repelsteeltje , 23 January 2010 08:57
    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 Hide
    Micropat , 23 January 2010 21:44
    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.
  • 1 Hide
    Micropat , 23 January 2010 21:47
    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.
  • Display all 17 comments.
  • 1 Hide
    doggod , 23 January 2010 22:06
    I have run linux on and off over the last 10 years ,but never as a main os quite simply because of the lack of gaming.
    Other than that issue id run it all the time,have also to agree with Rab1d-BDGR on the root issue for people new to linux,the amount of issues i have friends ask for me to help them out with on windows makes the chance to them being able to run linux next to impossible,people no longer want or possibly have time to find out how something works ,it either does or it doesn't,when it dosent work simply they wont use it.
    A simple issue on my daughters pc
    there are 2 hard drives
    installed Mandrake (wiped windows)on one with the new os ,partitioned by the installer
    everything works perfectly
    the other is a fat 32 partition from a previous winxp install ,contains her music and videos etc
    for her to access that other drive she needs root access
    this is security gone way overboard.

  • 1 Hide
    Dandalf , 24 January 2010 01:12
    I have used linux on and off for years, and I love it. I wish I could switch to it for every day use, and can't wait for onLive to be released so I can do this. I have to agree with rabid badger though, it's so frustrating being redirected to the console for almost any operation beyond changing wallpaper. Even more frustrating seeking help on the ubuntu forums and having my questions answered with gibberish commands :( 
  • 1 Hide
    Anonymous , 24 January 2010 06:00
    linux will NEVER beat MS as pointed out it just so unhelpful and difficult to use the pc is a tool, a games console and part and parcel of everyday life, who wants to come home and start having to look up shell commands etc just to use the damn thing! cmon guys leave your degrees and superior attitudes behind make it usable and it will grow, for the record i have tried linux on and off over the years but to be frank its all a bit too much hassle to bother i turn windows on and 99.9% of the time it just works ...simple
  • -2 Hide
    Anonymous , 24 January 2010 14:51
    @ms user
    I use ubuntu for nearly 2 years and i am able to use the internet,burn dvds,watch movies and listen to my music WITHOUT using the console!
    As a matter of fact ubuntu has a much better, functional and nicer graphical user interface than windows 7.
    Multiple panels and desktops, the magic of compiz, tab file browsing all these and more is pure science fiction in the swallow windiws world.
    Not to mention that there are no malware and viruses!
    Wake up and see the linux world as it is at 2010 and not at 2000!
  • -1 Hide
    Anonymous , 24 January 2010 15:57
    The old "i got sick of having to use the command prompt for everything i had to do" line, seriously, I havent used it in years, and ubuntu is my main o/s, have you people even used a distro released after 2006? Ubuntu and it's related distros are a pleasure to use, though still beyond the reach of most as you have to THINK about what's going on with your pc, and be able to interact with it in terms of personalisation, Windows users by and large don't enjoy that privilege often.
  • 0 Hide
    Anonymous , 24 January 2010 18:48
    How does security become a problem? Do you keep your door unlocked when you go out of the home so you dont have to close it again. Coming from the windows world seriously how difficult is copy pasting three lines in a console? After using linux I have begun to appreciate the usefulness of the command line. And I feel that any one who wants to have peace of mind with his / her computer will not be averse to using a bit of command line.. but seriously I have to touch the command line may be once in 6 months that too when I am tinkering or experimenting with the installation. Default installations of modern day Linux OS (Ubuntu, Open Suse, Fedora, Sabayon, Mandriva) hardly ever require use of the CLI.
  • 2 Hide
    Anonymous , 24 January 2010 19:07
    I do not see hardware as a huge problem. If GNU/Linux is to take a large share of PCs, it is the OEMs who must supply hardware and drivers. Nothing prevents them from doing that now. There are still a few devices not driven in Linux but they are not stopping anyone. In 9 years I have only met two printers I could not run from GNU/Linux and by networking and using that other OS as a print server, I could get around that. I just had an original HP Laserjet 4 unable to print in XP. It has not the PS module so PCL5 was needed. I had to fake out XP by telling XP it was a 4050 PCL5. "7" does not support lots of old XP-age equipment which is still working well. The world should not have to change their hardware to please M$.
  • 1 Hide
    Anonymous , 24 January 2010 19:08
    I use linux (opensuse) now for some years and yes, I agree, one of the bigger hurdles can be hardware support. If I want to buy another printer, I need to look if it is supported before buying, which is a pain. On the other hand, everything on my home pc and laptop worked out of the box.
    And concerning the old "I hate the command line" thing, in opensuse there is a GUI named Yast for anything a user would need to configure, and I can also log in as root, which is never really needed because there is Yast.
  • 1 Hide
    antonovich , 25 January 2010 00:11
    I think the author misses the point a little when he says that hardware is the main barrier to adoption. After all, what percentage of users ever installs an OS? Very few. Sure, for those that do (2%?, 5%?) these hardware issues are a problem, though many of those who do are able to find workarounds to the problems (like installing fedora instead of ubuntu). The main problem in terms of hardware is simply Microsoft, and the way that they make it almost impossible for manufacturers to put anything else but 100% MS products on their machines. Hey, you go 100% MS for your installs and you get OEM versions for 25$, you like to mix it up with a little linux, hey, we'll give you OEM versions for 60$! That's choice for ya!
    Without this, imagine manufacturers (Dell, HP, Acer, etc) going to hardware suppliers and saying "We like this graphics card/mobo/fingerprint reader. We want around 5 million of them. Oh, you don't have a linux driver, sorry we'll have to go to your competition then". You can be assured that any linux hardware support issues would disappear within weeks. The manufacturers could even go much further "Oh, you don't want to release the specs so the community can work on FOSS drivers. Sorry, we'll have to go to the competition, they release their specs".
    But I am 100% certain that this would have already happened were it not for Bill's posse wagging it's discounts around. So it is completely natural for hardware suppliers to tow the line, it's business after all, and completely natural for integrators to tow the line, it's business after all.
    The real problem is that our governments are not willing to apply the laws created to prevent monopolies and abusive business practices. It is astonishing how government (and I certainly don't just mean the Americans) has let Microsoft gain 95%+ market share and use pretty much every illegal trick in the book to keep it that way. Given their dominant status, there should be a dedicated team in every government (paid for by taxes on MS products) going over every contract signed with anyone. The whole point of anti-monopoly legislation is to make sure that when a company gets into a very dominant position then there are NO preferred supplier agreements, and any attempts are met with fines that actually hurt. You tried to get HP to only stock your products, phwak ! 15 billion dollar fine. That is what responsible government would do. But what did I say about the suppliers and integrators again? Oh yeah, it's just business...
  • 0 Hide
    Anonymous , 25 January 2010 05:36
    you have setup permissions incorrectly...

    @Dandalf its either give you a single cli command or do it windows style with lots of screen shots of dialog boxes with arrows telling you what to click on etc...

    cli wins hands down
  • 2 Hide
    Anonymous , 25 January 2010 11:13
    Main barriers to adoption are simply a lack of familiarity of Linux and FOSS software, lack of OEM preinstalled systems from major manufacturers, lack of public awareness of Linux in general, and fear of the unknown. Most people are creatures of habit and simply are afraid to venture into uncharted territory when what they have now works. Truth is that probably 2/3's the people that buy PC's will never install an OS and will more likely just buy a new computer when their current one acts up. They aren't even aware that it's fixable. But PC's have become so cheap and disposable that it's not even a thought.

    I'm sorry, but I've been a Mac user, Windows user, and now a Linux user and Linux, to me, strictly speaking of the OS itself, a better OS than either of the other two. There are more options, works on older hardware as well as newer, and is simply easier to work with once you become familiar with it. Mac OS has very limited hardware support and its a restrictive, limited OS. Windows has lots of 3rd party hardware support, but it's got cryptic stuff going on all over the place that's completely unfixable by normal users and it's been proven to be a security whole as wide as the Grand Canyon. They just don't take security seriously with users defaulted to running as administrator and lack of true user/administrator setup. Linux is pretty easy once you understand it. Most people just can't get past the fact that it's unfamiliar, at first, to truly learn how robust and wonderful it is.
  • 1 Hide
    apexwm , 25 January 2010 19:13
    Some of the points in this document are irrelevant. Hardware is always one step ahead of the software that is written for it. Try installing Windows XP on any new machine. You will have the same result, you will need to install multiple drivers to get it up and running. Linux is actually better in this regard as all drivers are compiled/linked into the kernel. So you will get more support right out of the box with Linux than you will with Windows XP. GNU/Linux eventually gets support for the hardware, but sometimes it doesn't happen overnight. As to the statement about the Dell Vostro wireless for example, some distributions such as Fedora / Red Hat have support for the Dell Wireless card now. The problem is that the driver seems to be a proprietary one from Broadcom. If the driver was open source it would have been included sooner I'm sure.
  • 0 Hide
    Lewis57 , 27 January 2010 23:54
    This is actually very helpful. I'm doing a comparison between Linux (ubuntu to be exact) and Windows7 for my college assignment, and to be exact : machine and peripheral management.
  • 1 Hide
    Anonymous , 24 February 2010 03:57
    Linux hardware recognition is actually better than Windows, but Windows has many more manufacturers writing drivers for it than does Linux.

    I just make sure my hardware supports Linux before I buy it and so have zero problems with hardware recognition on my Linux installation - all my hardware is recognised just fine and works out of the box. I really can't say that for Windows.