Disclaimer: I wrote this essay almost an entire year ago, and a lot has changed since then, including my verdict. Linux has gotten a lot better over the past year, and I now use it as my primary OS. Please read my other, more recent Linux essays for the true state of the Linux desktop today. In the meantime, so as not to spread FUD (fear, uncertainty, doubt), I’ve put in some updated remarks in bold. — 19/09/05.
I’m a big fan of the “little guy.” I don’t like monolopies and chains… in theory. I’m also practical, though. I’m not a crusader or a radical. I won’t buy your product just because you’re the “little guy.” I’ll buy it because it works and is quality… and you’re the “little guy.”
For a while now, I’ve been curious about this thing called Linux. First of all, the mascot is very cute. Secondly, Microsoft has been taking a lot of heat lately for its security holes and integrated browser (which invites viruses to flourish within a system). I personally found it annoying that spyware was loading on with some applications I’d downloaded a few months ago. They slowed down my operating system significantly and introduced Internet Explorer pop-up ads even when I didn’t have the browser open. When I downloaded Windows XP Service Pack 2, I kept receiving messages about Windows “recover[ing] from a serious error.” When I did the “fix” according to the Microsoft website, the message no longer appeared, but then Photoshop wouldn’t launch any more because there wasn’t enough virtual memory.
So, I decided to give Linux a try…
It was a frustrating experience. First of all, there are so many distributions to choose from, and it’s not that clear what the differences are between them. I can tell you now that, to the uninitiated, these differences are insignificant. Just pick whatever’s most convenient to try. When I first started, I came across a thing called Blag, but as of this writing, the site is not working. It may come back later. Blag was intriguing. It was an entire Linux installation that fit on one CD and included a whole bunch of applications (just about anything you could think of, from word processing to DVD ripping). Since then I’ve discovered many Linux distributions are like this—in fact, most come with too many applications. Mepis even has a one-up on Blag in that it’s one CD with tons of applications, but it’s both a live and installer CD in one. There’s also a site called Linux ISO that has all the major distributions (or versions) of Linux in the form of a CD image (or several CD images, for the non-Blag varieties). You download the CD image and burn a CD using “burn from an image” property in your CD writer. Then, the CD itself boots and installs Linux. I actually don’t espouse LinuxISO any more. The versions of Linux distributions on that site are usually quite outdated, and, as I discovered the hard way with some distros, having the most up-to-date version greatly improves the user experience..
The odd thing is—both on websites and in books (I checked out several from the library, and Linux for Dummies was by far the most helpful, even though it could have been better), people who talk about Linux make a point of saying something along the lines of “Linux is free, but when you think free, think ‘freedom to,’ not a free lunch.” Actually, it is a free lunch. Linux ISO and Blag are entirely free. Sure, you have to have your own CD burner, but that’s the burner you’re paying for, not the operating system. Most of the books I read came with a Linux installation CD, and I checked those out of the library (so I didn’t have to pay for those either). Linux is free. Ubuntu, my current distro of choice is free in every way—no proprietary software, no shipping costs, no cost for the CD, no cost for the programs. You may think Windows is free because it came with your computer, but the price of the Windows operating system was probably included in the cost of your computer. Windows as a separate piece of software runs anywhere from $99-$300, unless it’s pirated. Legitimate Linux is free, if you’re willing to look for it. And, even if you do pay money for it, a serious Linux package won’t cost more than $80 or so.
The other thing is that most Linux users who write books or websites—even though they’ll explain to you how to do this—tend to frown upon a dual-boot installation of Linux with Windows (dual-boot means that both operating systems are on your computer, and when the computer boots up, you have the choice of whether to use Linux or Windows). The truth is, even experienced (but not expert) computer users like me are not likely to jump into using a new operating system unless we’re able to give it a little test run first. I think this culture has changed in the past year. Now, on message boards, people don’t tell you to just install Linux—they tell you to use the live CD, which doesn’t affect your hard drive in any way, so you can test-drive Linux without installing it.
This isn’t easy, though, for several reasons. First of all, if Windows is pre-installed on your computer, it most likely takes up all of the memory on your computer, even if it isn’t using all the memory. “Memory” here means hard drive space—I got my terminology mixed up. A dual boot requires at least two separate “partitions” in the hard drive. It’s difficult to create a new partition without erasing your hard drive, unless you buy a piece of software called Partition Magic. That puts a little damper on the “free” part, especially if you’re only test-driving Linux. Actually, a lot of distributions including a partitioning tool as part of the install process, and the partitioning tool is free. I’ve found Mandriva’s DiskDrake tool to be excellent, and QTParted, which comes with Mepis and Knoppix, isn’t too shabby either. Another problem is that Linux isn’t compatible with a NTFS partition (which is what Windows NT/2000/XP uses). It’s more compatible with a FAT32 partition (which is Windows 95/98/ME). Windows can convert a FAT32 to an NTFS, but not vice versa. While you can reinstall Windows XP as a FAT32 partition, it runs faster and better on an NTFS because that’s what it’s been designed for. You’ll need a special Linux download to be able to access files from an NTFS-formatted Windows. Actually, I was severely misinformed about this, or maybe it’s changed since I wrote this over a year ago. Linux can easily read from NTFS, but it cannot successfully write to it without a third-party tool, and even that’s considered by most to be experimental. Now, I just keep my Windows XP partition NTFS, and I have a huge FAT32 partition with all the files I want to share between Windows and Linux. Bottom line: I had to back up all my personal files and reinstall Windows cleanly before installing Linux (no one ever advises installing Linux first since Windows destroys key Linux files when it installs). Bottom line now… use a live CD
Sound complicated? I also ran into another problem, which was the screen resolution staying 640 x 800, even when I’d configured the monitor to be 1024 x 768. Turns out, I had to download a special patch to fix this. This took me quite a while to figure out. It’s actually quite simple to fix the screen resolution. You just need to edit the /etc/X11/xorg.conf file and put in the proper HorizSync and VertRefresh ranges for your monitor—t
hese can usually be found on your monitor manufacturer’s website.
The worst part was that I couldn’t get new programs installed properly. I don’t consider myself computer illiterate, but when I downloaded new programs, they would sit there as executable files but wouldn’t be included in lists of applications, and I had to manually create shortcuts and quick-launchers. Yeah, I was an idiot. I didn’t know about package managers when I wrote this essay a year ago. It’s actually easier to install software in Linux than in Windows, as I demonstrate here. When I did “officially” install programs, even the executable files would disappear to who-knows-where, and I had to log in as “root” in order to even search my entire hard drive. I wonder why this happened. Users should be able to search everything—they just can’t modify system files.
The whole “root” concept is a blessing and a curse. If you’re not familiar with it, it’s the idea that the “root” user is the master user and can do anything on the computer—delete any files, install any programs, whatever. The regular user(s) can do basic stuff but can’t reindex the hard drive, install certain programs, delete certain files, etc. On the one hand, this is what makes Linux more secure than Windows. Since, on Windows, everything is integrated and automatic, you may not even consciously run a program, but it will turn out to be a virus that automatically triggers some other program, and your entire system is infected along with all of your email. Linux takes you step by step, so that you’re aware of every decision, every event on your computer. This can be annoying sometimes, though. Sometimes, you don’t want to have to enter a password or logout and log in again just to be to do a simple task. Again, I was an idiot, or things have changed. You don’t have to log out, log back in again, make changes as root, and then log out and log back in again as user. You can make root changes with a simple password prompt when you’re logged in as user.
Eventually, I gave up. In order to learn Linux, to customize it to your liking, and have it run smoothly, it takes a lot of work. I’d say I probably would have had to study it for a good two weeks to feel comfortable with it. Would it be worth it? Basic, basic programs (iTunes, for example, as of this writing) do not run on Linux. Sure, Linux has a ton of programs that emulate Windows programs and which are compatible with Windows files, but every now and then there’s something you just can’t do in Linux, unless you’re a programmer and have a lot of time on your hands. I still think this is true. I have yet to find a match for iTunes. I like little bits of JuK, AmaroK, and Rhythmbox, but iTunes is a killer application, and it can’t run in Linux without Crossover Office. I also still believe that you have to invest some time and energy to install and configure Linux. If someone else does it for you, then you don’t have to do much, of course.
Overall, though, I’m glad I familiarized myself with Linux and took it for a little test drive. On the surface, it runs just like Windows. It has a graphical mode (similar to the Windows desktop) and a text-based command line (similar to Windows’ MS-DOS). It’s supposed to be more stable, and it takes up less memory (it did take a little longer to boot up, though… Windows took about 45 seconds from boot to functional desktop; Linux took about 1:50 seconds from boot to functional desktop—same computer for both). Again, still true. I love Linux. I love the interface, the programs, and the customization, but I have yet to find a distro that boots as quickly as Windows does on the same computer.
The advantages of Linux, as far as I can see are this: 1. If you have an outdated computer that’s too slow to run the most current (or supported) version of Windows), Linux will probably run just fine on it, and with the latest software. 2. If you want to create your own web server at home, Linux is probably the most secure for that, and most Linux distributions include software that will help you set that up. 3. Linux is free… really free, not just “freedom to” or “freedom from.” It’s free—no money down. So as Microsoft keeps releasing newer, more advanced versions of Windows, you won’t have to keep paying for new developments. 4. It can work on all the major platforms—Mac and PC—neither Mac OS X nor Windows XP can do the same. It is also compatible with and can exchange files with both major operating systems.
So what does Linux have to do to compete? Well, I would consider myself an intermediate computer user: officially I’m the “Admissions Data Specialist” at my place of work, I can create webpages using hand-coded HTML, and I am familiar with every major piece of software out there. Still, I’m intimidated by Linux. How would someone like my mother, who sometimes can’t even find the Play button on the VCR (sorry, Mom, but it’s true!), work Linux? Linux has to be more user-friendly. Supposedly, it’s improved a lot over the years. It now uses a graphical interface, for example. There needs to be more, though. Linux needs clearer explanations, central locations for things, up-to-date links, etc. When I went to the main Linux website, half of the distribution links were dead. The information at Microsoft may not be available to deal with every patch and hole in the system, but most of the links work. My advice to myself of a year ago is this: find a forum. You don’t go to Linux.org for Ubuntu support—you go to the Ubuntu Forums. Forums, not webpages or books, are where you’re going to find the most up-to-date information on how to install and use things. Things still do need clearer explanations and a central location, but I’ve found that doing proper Google searches also helps.
Linux, please catch up! Your penguin is much cuter than MSN’s stupid butterfly.
Like the author, I found Linux to be a frustrating experience. He’s right to point out the existence of package managers which (as he rightly observed) make it child’s play to install applications…. but oh, if only the same package managers could be applied to driver installation – because this is really where Linux falls down.
Unlike Windows, Linux has no unified strategy for installing drivers. Some (very few) can be installed using a package manager. Some drivers come in a self-extracting archive file. Some come in a (non self-extracting) archive which you have to open, extract and run the files from manually. Some drivers require you to launch an installation script. Some require a ‘makefile’. Very occasionally, some drivers are provided in binary form. I even came across one driver that required me to copy the relevant DLL from Windows and run a special app which extracted the microcode and produced a Linux equivalent..! Pretty much every driver has a different method of installation. Often, they require configuration files which need to be set up manually in a text editor. The lengthier installations are sometimes handled by a script – but it’s quite common for these time-consuming installation scripts to give absolutely no feedback whatsoever.
When it comes to Linux drivers, the phrase ‘simple installation’ generally means that the installation time can be measured in days, rather than weeks – and I’m not exaggerating…. configuring tricky items (like a sound card, wireless network or broadband modem) can quite literally take you weeks.
But the other big problem with Linux is buggy software. Linux (or more correctly, POSIX) has a fundamental flaw which makes it impossible to carry out single-step debugging for complex (multi-threaded) applications. Couple this with the fact that many Linux apps are maintained by just one person working alone and the end result (all too often) is buggy apps. In fact, there’s a kinda unwritten agreement in Linux that everyone who uses it is expected to be a beta tester. Professional (paid) software testers are almost unheard of (except maybe among the big name brands).
So don’t be seduced by promises of ‘better stability’. There is nothing inherently superior about Linux code. It might be less susceptible to viruses but if that’s what you need, buy a Mac. At least you’ll get code that’s been properly tested – instead of flaky Linux freeware that you’ll probably end up having to test yourself.
The hard truth is that you get what you pay for in this world – and there really ISN’T any such thing as a free lunch.
In mitigation, I should point out that everyday, primary ‘staple’ apps (word processors / browsers etc) tend to be no worse under Linux than under anything else. The smaller (or niche market) apps however do tend to be horrendously buggy, in my experience. Having said that – and it’s important to point this out – getting bugs FIXED in a Linux app is often MUCH EASIER than it is with Windows or Mac. The main developer(s) will often make themselves available via email groups or forums or something called an IRC channel. So even if you’re the only Linux user for miles around, you’re never entirely on your own.
Linux isn’t for the faint hearted though and you shouldn’t expect an easy ride – if you want reliable applications you’ll have to know (or be willing to learn) how to produce error reports, log files and backtraces and how to apply (i.e. re-compile) fixes and code patches. There’s no getting away from this. It usually ISN’T possible for developers to supply their fixes in a binary (runnable) form.
One other tip – if you need to share data (esp. partitions) between both Linux and Windows, DON’T go down the route of using a shared FAT32 partition. You can download a utility for Windows (called the Ext2 driver) which allows you to read and write extended 2 (Linux format) partitions under Windows. It’s a LOT more reliable than trying to use FAT32 under Linux. By all means use FAT32 for portable drives / memory sticks and the like – but for internal drives, use the Ext2 driver.