Thursday, June 25, 2009

Windows vs Linux, part 9,457

Something occurred to me the other day.

I had booted up the Windows 7 Release candidate, and was running various update programs & the like, installing the latest version of Firefox, etc etc.

Then I thought, "Hey, I might log on to Warcrack & have a quick game".

Only one slight problem - I haven't installed World of Warcraft on Windows 7 RC yet.

And when you're looking for a "quick game", you don't want to have to install WoW before hand. We're talking 6 CDs for the original game package, then another 4 CDs for the Burning Crusade addon, then a DVD for the Wrath of the Lich King addon, then about 2.5 gigabytes of assorted patches. Yes, it takes frikkin' hours...

Then it occurred to me - if I was using my Kubuntu Linux install, and I wanted to upgrade from Kubuntu 8.10 to 9.04, for example, I'd just hit the "dist upgrade" button, go make a cup of tea, and when the upgrade had finished, I would just fire up WoW & play. I wouldn't have to reinstall all of my apps just because I upgraded the operating system files.

Yet another example of the robust Unix-inspired design of Linux, and the not-so-robust nature of Windows. A lot of that has to do with how the apps are installed, though, from what I understand. With Linux, apps install all of their files into one directory, with maybe a single text-based configuration file somewhere else (/etc/config for many, I think). User-related data files are stored in the user's home directory (/home/). When you upgrade the base operating system files, you don't have to touch the program or home directories, so that stuff is still there & works fine (unless, maybe, you have an app that doesn't want to work with a newer version of some core OS files, which as I understand it is pretty rare in Linux).

Windows, on the other hand, has a system where applications are stored under C:\Program Files, but all of their configuration information is stored in a single, massive, configuration database that's common to both the operating system and every app installed. It's called the registry. You might also have "shared" library files that are installed to C:\Windows\System32 or similar places. You will also have some other configuration information & files saved to C:\Documents and Settings\ and/or C:\Documents and Settings\ as well.

Of course, when you install a new version of Windows, the first thing that goes is the registry. And everything in C:\Windows & subdirectories. If you were to do a Windows upgrade, a lot of that info would be kept, but nearly every computer-savvy person out there will tell you that upgrading Windows is a bad idea, and you should always do a clean install, either by wiping the hard disk or by installing onto another clean partition. This is to avoid problems with corruption of the registry file, mostly, as I understand it. Which highlights another problem Windows has - the registry generally fills up with all sorts of crap over time, and is quite likely to become corrupted in some fashion over a period of three years or more. If you've got a Windows install that's still working after five years, it's a rare beast (the best I've managed is three and a half, and that machine got a corrupted registry on the very day I was trying to show it to a potential buyer, requiring a complete reinstall).

So the recommended method of upgrading Linux is to just upgrade your OS files, and everything else will (most probably) still work fine.

The recommended method of upgrading Windows is to wipe your hard disk and start from scratch, reinstalling every single application, utility, and addon you use.

Hmm...

Methinks the folks at Microsoft need to work on that.

No comments: