My new laptop came with Microsoft Vista on it. I thought it might be a good idea to keep it installed, for use on testing websites to make sure they render properly. It may be that I don’t have enough disk space…

My laptop came with a 120GB hard disk. “Plenty,” I thought, “That’s 10GB for Linux, 20GB for Windows, a couple of shared partitions and the rest can go as an LVM volume group for virtual machines/emulation.”

10GB is (more than) enough for an OS, so I thought I’d be safe with 20GB for Windows. I just looked at the disk usage, though, and has a real “WTF?” moment.

The Windows partition is 86% full – that’s 17GB used – and I haven’t even done anything on Windows yet. 2GB is used for a page/swap file (why?!?! I have 2GB of RAM!), and 2GB for the hibernate file (why can’t it use the swap file, like Linux does?). I’ve got 1.4GB of programs installed (I haven’t installed anything – it’s just the stuff that’s come pre-installed with the laptop) and 1.4Gb for System Volume Information.

The real killer is the Windows directory – 9GB. Now, if that actually contained useful programs, I wouldn’t mind to much, but that’s just for the fancy windowing system! Looking further into there, 3.6Gb of that is used by ‘winsxs’ – Windows Side by Side, Microsoft’s new way of mitigating DLL Hell. In short, it keeps a copy every single version of every single DLL for every single program, just so that if one program updates a DLL it doesn’t take out another.

Now, while I respect the thought behind this decision (it makes installing and upgrading programs less worrisome, as you can be more confident that it’s not going to break some other program) it seems extremely heavy handed. Nearly a quarter of my disk space is being used up by a system that I probably don’t need but cannot remove. Given the choice about doing due diligence on an upgrade and getting that much disk space back, I’m happy to take my chances.

The instant, knee-jerk reaction from some would be “Why don’t you just give it more disk space?” I could, but from what I’ve read WinSxS will just eat that as well as soon as I start working with Windows. It doesn’t solve the underlying problem that Microsoft Windows is taking up my system resources in an attempt to mitigate one of their design deficiencies. And a deficiency it is – DLL Hell has existed for as long as Windows has (and that’s coming up to 23 years now). The inability of people to:

a) allow multiple versions of a shared code library to co-exist, and/or
b) not break backwards compatibility when updating a shared code library

is what has caused this sorry state of affairs to have been reached. This is not a universal problem, either – *nix-like systems managed to support multiple versions of the main C library without (m)any problems. Hells, Apple even managed to provide backward compatibility across different processor architectures when they went from M68K to PPC. This is firmly a Windows problem.

As for Linux? I’m using 6.6GB of disk space, and that includes not only the basic , OS and window system, but also applications like an office suite (OpenOffice.org), graphics programs (The GIMP and Inkscape), development tools (NetBeans, Emacs, both Java5 and Java6 systrems) and Internet applications (Thunderbird/Icedove, Firefox/Iceweasel, Pidgin, Opera web browser). My entire Linux installation, with all of it’s programs, is still a third smaller than the basic Windows OS (with no applications)

So yeah, Microsoft sucks.