Monday, December 22, 2008

Software as a Subversive Activity, Part 6: Why Linux Is Better

Software as a Subversive Activity, Part 6: Linux Isn't Just Good Ideology -- It's Better Computing

There's no way around it: the longer you run a Windows installation, the slower and less responsive it gets. On my year-old dual-boot laptop, I wait longer and longer for Windows to boot, and longer and longer for programs to do what I ask. Meanwhile, my Ubuntu Linux installation, on exactly the same hardware, installed almost as long ago, is as snappy as the day I set it up—faster, in fact, as I've tweaked it and geeked it.

Thus far, my Linux series has focused on ideology and money. I haven't looked at why Linux is actually a better computing experience. This is meant for beginners, not ubergeeks, so we'll start with something the average person can actually feel: user-end machine performance and maintenance.

“To mess up a Linux box, you need to work at it,” the saying goes. “To mess up your Windows box, you just need to work on it.” Every time you install something in Windows, whether you know you're installing something or not, the program embeds itself in the guts of your system. Eventually, over time, these little bits build up, like the waxy yellow buildup on the kitchen floor that so traumatized 1950s housewives. Digital junk DNA without function clogs your memory and your drives, slowing down the tasks you really want to do. We geeks call this “cruft,” and I can't define it better that this fun piece does.

Sometimes the best solution is just to reinstall Windows. That is, if your 25 digit installation key is still any good, and if you even HAVE an actual Windows disk and not one of those nasty Restore disks that “fix” the problem by wiping the whole drive.

Windows programs love to make themselves the dominant monkey on your system, and like all dominant monkeys they fling poop: placing icons on your desktop and quick start menu, making themselves the default for whatever you want to do, and opening themselves up automatically. Load iTunes and at every startup you get hit in the face with QuickTime, a load of monkey dung in your system tray taking up resources whether you need it or (usually) not.

And that's just the stuff you WANT to run. Windows is also vulnerable to stuff you don't want. No Windows system is complete without a firewall to keep bad stuff out and an anti-virus program to catch stuff as it gets in. (I've included the links to my favorite Windows-protecting software--not to encourage you to stay in Microsoft World but just to show you I'm on the up and up here, and to help protect you till I persuade you to make the Big Switch.)

I have to install all of these one by one on each Windows system I set up. They are up and running every second I'm booted in Windows, and they use up system resources that could otherwise be devoted to my critical tasks (playing music, detecting space aliens, and LOLcats.) They also require constant updates.

Viruses and malware can happen in Linux, but rarely do. There are about 40 known Linux viruses, vs. over 60,000 Windows viruses That's not, as most people assume, because Linux is an “off-brand.” It's because of the design of the operating system itself. Linux works on a sort of need-to-know basis called the "least privilege principle." Programs use the least amount of special privileges needed to do the task, and tasks are organized to need the least amount of special privileges. If malware or a virus tries to get into a Linux system, it's just denied permission.

The easiest to understand explanation I've found is in this article, where Scott Granneman says:
“On a Windows system, programs installed by a non-Administrative user can still add DLLs and other system files that can be run at a level of permission that damages the system itself. Even worse, the collection of files on a Windows system - the operating system, the applications, and the user data - can't be kept apart from each other. Things are intermingled to a degree that makes it unlikely that they will ever be satisfactorily sorted out in any sensibly secure fashion.”

Granneman notes that a Windows user can infect the system just by reading an email. “A Linux user would have to read the email, save the attachment, give the attachment executable permissions, and then run the executable. Further, due to the strong separation between normal users and the privileged root user, our Linux user would have to be running as root to really do any damage to the system.”

Though it's not essential, I also run a memory manager, because Windows doesn't release memory well. You stop running a program and a chunk of the memory it was using just sits out there. Without a memory manager, the only way to clear things out is to reboot. You've all done that. Things are running slow and it's time for Canadian Tech Support: when in doot, reboot. Eh.

Everything I found on Linux memory management is way too geeky for even me. All I can tell you is it hasn't been an issue for me, and my system flies with that fresh-booted feeling for weeks on end. I've never left it on for longer than weeks, because I pack it up and take it places, but they say months and even years without a reboot is not unheard of.

Like Windows, Linux issues upgrades. Windows always promises “you can keep working” while the mysterious upgrades install. But when it finishes, there's an insistence that you reboot. You can say “later,” sure. But you'll be pestered and pestered and eventually, if you aren't there to click “later,” the system will reboot itself, losing whatever you're in the middle of doing.

Linux updates are manual; you do them at your leisure. I get a small taskbar reminder every few days. They require a password and tell you just what they're doing. You don't need to reboot every time you install an application. Only a kernel update requires a reboot, and even then it just tells you, once, and it will wait till you're ready.

In addition to the always-running items in Windows,, I have to periodically run several maintenance programs. I have not one, but two, different spyware and adware removal tools. With Linux, as noted, that stuff just doesn't get in.

When Windows saves a file, it uses the first open space on the drive, consecutively, and thus scatters the file across the drive. The Windows disk defragmenter reorganizes your hard drive and puts those pieces together to run more efficiently. Linux keeps the pieces together in the first place, so that's one more thing you don't have to do.

One of the big places that cruft accumulates is in the Windows registry, which stores information about programs, settings, and users. A big registry slows down the system, so it needs to be cleaned periodically. You don't want to mess around in the registry if you don't know what you're doing—you can corrupt the entire Windows installation! I use a registry cleaner program.

Linux doesn’t use a registry. Configuration is stored in plain text files, on a per-program and per-user basis which are easy to manage/backup and transfer between systems. Instead of loading an entire registry, it only grabs what it needs. The Linux approach also means there's not one single point of failure.

I also have a startup analysis tool that helps me clear out stuff I don't want running at every boot, like Quick Time and other monkey poop. But in Linux, after a little initial work, I haven't had to revisit the startup.

Finally, I have a disk cleaner. Over time Linux accumulates a few unnecessary items too, but an easy command line item cleans you up. And in Linux “cleanup” just means gaining a little hard drive space by removing stray unused files, not scrubbing the guts of the system. If the house is cleaner in the first place, it's easier to pick up.

I've invested a little time in learning Linux. But I've saved far more time in the long run by avoiding the ongoing maintenance work that Windows requires and Linux just... doesn't.


Anonymous said...

On Linux you can even prevent a user from saving an attachement and executing it. If you mount user writable filesystems (eg. /home and /tmp) with the noexec option, no binaries can be run from these filesystems.

As far as I can tell, this feature isn't used often, but it really helps to prevent ordinary users from doing unauthorized things.

I too believe, that Linux provides better computing and use it on my desktop, but I get more and more frustrated. People say choice is good, but is the possibility to choose from several half-baked options better than having only one (or a few) mature options?

I know that programmers prefer to invent a new and better architecture for the next generation of a program to chasing bugs and improving an existing version. I probably would do the same (plus some people work without being paid, so I shouldn't complain). But I believe, it will hurt Linux in the long run.

Khan Md Ashraf said...

Just imagine in these hard times, even from where I live in, India running various maintenance programs that consume resources and therefore unnecessary power. On MS Windows running your Anti virus, defrag, and other such software actually consumes time since in all probability you can't get your work done during the time that they run and you actually have to keep your machine running for far longer than you would a GNU/Linux distro to achieve the same amount of work done. Taking into account the no. of MS Windows OS's across the world and the time wasted in running these programs results in an enormous waste of precious electricity. I am sure there would be a significant saving in power use if people move over to GNU/Linux distro's!!!

Anonymous said...

Well, all true to a great extent. However, one must always be wary - even on GNU/Linux. The new fangled inventions in the name of usablity address usability, but sometimes also take away some necessary control.
E.g., with the new PackageKit, it's now easy for packages to get into your system WITHOUT you first reviewing and explicitly allowing them to.

So, especially as new "usability" enhancements come in, one must keep up ones guard and ensure that nothing gets into the system without explicit approval of the system administrator.

Black Ash said...

Thanks for your article. I have used Linux for two years and never had such an excellent laundry list of reasons to use when evangelize for our holiest of holies operating system. I can now be even more intolerable to Windows idolaters.

But seriously, I am a reasonably intelligent Linux user who reads up on computers and I couldn't have put together what you said. Someway this basic info does need to get beginning Linux users. I only wish I knew how.

Frank said...

I loved Linux until the dual boot went haywire.Was unable to fix it and had reinstall from scratch.