Well, really in just Linux, since drivers are mostly in the kernel. (For those who don’t know, “Linux” is the kernel, the central bits of the operating system that does the vast majority of the relations with the bare metal; “userland” is everything else, including most of the programs that we actively use on a daily basis, and is disproportionately GNU software). But for some reason people don’t think that Linux supports much hardware.
The reality, however, is that Linux has better hardware support than Windows. Indeed, Linux hardware support blows Mac and Windows completely out of the water. What’s more, Linux supports this hardware out of the box, with no need to install 250MB of drivers plus a helper program plus a load of adware and crapware off the CD that came with your device, which helpfully adds a desktop link, a “start menu” item (usually an entire directory!), and a little icon in your system tray on your menu bar (tried to install any printer on Windows lately?).
Why is that? Substantially, it’s the Linux Driver Project‘s doing. This massive project, utilizing some of the most competent programmers in the world and led by famous kernel hacker Greg Kroah-Hartman, offers free driver development for any device manufacturer that asks. This project has ensured that almost every single device on the planet can run on Linux. Kroah-Hartman (despite working for the execrable Novell) is a real hero in Linux, not only managing the USB kernel subsystem (being part of the first-ever implementation of USB 3.0, working in Linux before any other OS in the world), but also heading up this vital project. Kroah-Hartman explains it thus:
Part of the issue is that we support more devices than any other operating system ever has. That’s a fact that’s been verified by other companies. The problem is that people only care about the devices that they have. Therefore, if your device doesn’t work for some reason, you don’t care how many thousands of other devices out there work.
When I started the Linux driver project, I’d been hearing this from all the major companies that were shipping Linux and cared about Linux. So, I went around to them individually and said, “OK, what do you need me to do? What needs to be worked on?”
Every single major hardware company, said, “Hey, you’re right. Everything works on Linux. We’re fine.” That’s shown by these companies that ship Linux on their machines. Dell, HP, and all the big hardware companies and laptop manufacturers now ship Linux, and we’re working with them.
Compare that, now, with Windows. Every “upgrade” (e.g., XP to Vista, Vista to 7) breaks large numbers of drivers, which will need to be rewritten. Windows has comparatively few drivers built-in, necessitating downloads and CDs which consequently can, and usually do, contain vast quantities of adware and crapware that can only be removed with difficulty, if at all, without removing the driver itself. (Does your printer work in Windows without the nonsense software the printer company released? No? Mine does, in Linux.) And if you replace something really fundamental—say, put in a new motherboard—Windows will freak, gag, and probably break.
Forget about replacing your primary hard drive. Most likely, your copy of Windows came with your computer, so you don’t have an install disk; so if you replace that drive, your installation is all gone. You might be able to mirror your current drive onto the new one, then take out the old one—but not with out-of-the-box Windows software. Often, replacing fundamental bits of hardware will cause Windows to assume that it’s an illegal copy, requiring you to jump through ridiculous hoops to ensure Microsoft that you’re not cheating them. This last applies even if you do have an installation disk, not to mention the hundreds of dollars you probably had to drop to get it.
Incidentally, even on the software level Windows is gratuitously incompatible. It won’t read from any filesystem not produced by Microsoft at all. Really; it’ll gag, if it can even see the partition. Linux happily reads, and even writes, to filesystems as varied as NTFS and FAT32 (Microsoft’s own crappy filesystems), along with its native ext3 and friends. Windows just won’t. Nor will Windows easily network with non-Windows machines; to do that, non-Windows systems have to do all the work. Not to mention that Linux, upon installation, will tread very lightly, respecting everything else that’s on the computer, even Windows. When you install Linux on a computer that already has Windows on it, Linux is ready and willing to let Windows continue to exist; it will install a boot loader, allowing you to choose your operating system at boot time. Try it with Windows. On installation, Windows takes a big stinky dump on top of your boot sector, and adds insult to injury by not even bothering to wipe. Windows is here; all your box are belong to us. Surely you didn’t need to boot anything else? Microsoft will solve all your problems, whether you like it or not!
Mac? Forget about it. Mac works with Mac; Steve Jobs wants you to be entirely dependent on his little “walled garden,” so Apple doesn’t bother to even try putting in compatibility with a wide range of hardware. As Kroah-Hartman again points out, “Mac OS X does not support very many devices at all.”
So if you want hardware support, if you want compatibility with many other systems, GNU/Linux is your best choice. Saying otherwise is ignorance at best, FUD at worst.
Praise be to Christ the King!