Regarding the eternal battle of Open Source vs. Microsoft: I believe the correct term is 'Holy Wars'.
I've used all Microsoft's operating systems from MS-DOS 6.22 up to Windows XP Pro. I also write code for them, so I've got a good idea of how they're structured. I know how the Windows Memory Manager works (because I've written a similar one, but only as an exercise, not a full-fledged program).
I've been using Linux for about five weeks, ie. since I found the Linux computer room at University. Linux is more stable than Windows (that is a FACT), but it does have a slightly steeper learning curve. It puts me in mind of DOS, but done correctly.
I've also used OS/2 Warp. In fact, for several weeks it was the only operating system on our Pentium 60, because the hard drive got wiped and the 'backup' my Dad had done turned out to be the output of the OS/2 install disk factory, which didn't include DOS and Win3.11. I hated OS/2. It took a week for us to figure out how to make it install correctly. It never did what I wanted it to (even if I used the command line). It didn't seem to have a standard method for installing device drivers: some were done with install programs, some had to be done directly by the OS, some required the driver to be installed before the hardware, and some were bizarre combinations of the three. OK, so neither does Windows, but at least when I tell it to install a certain driver IT ACTUALLY DOES IT! As for OS/2 being stable... it sure as hell wasn't on a Pentium 60. Maybe I was just unlucky, but it was a great relief when we bought MS-DOS 6.22.
I now have Windows XP Home and it has never crashed on this computer. Programs running under it have, but the OS has never gone down. Even when I wrote a program specifically to make it crash, it notified me and then quietly terminated the offending process. I dislike the 'angry fruit salad' default interface, and it's now set to Windows Classic which works fine. I turned off shadows and menu fade effects, and generally set the interface to resemble Win98SE, and the OS runs quite smoothly. But it is bulky, and it is bloatware, and the only reason I haven't switched over to Linux is because all my games are made for Windows or DOS.
As soon as my new hard drive arrives, I'm creating a Linux partition for running applications, because LaTeX and Open Office beat the crap out of Microsoft Office. Linux is smaller, faster, and more powerful if you can handle the terminal. But it doesn't run any of my 60+ games.
Both Windows and Linux have their advantages and disadvantages. Windows is now the accepted standard around the world, so it'll be a long time before I can do without it. And although the Windows API is clumsy and requires an Encyclopaedia Britannica-sized reference manual, I've come to like it.
I've been programming variously in BASIC, C, C++, Assembler, and 80x86 machine code for 11 years. I DO understand how Windows and Linux work. And yes, Windows is far bigger and slower than it needs to be. I expect Linux has some redundant code in it too, although probably not much since the people working on Linux have the time to find out exactly what a function does, instead of working to a stringent time limit and just ignoring code they don't understand.
So please stop saying that one OS is better than the other. From the point of view of the average computer user, Windows is better. It's probably what they use at school or work. It's familiar. And Microsoft have dominated the market to the point where many people believe that Windows is the ONLY operating system. Yes, they need to be shown the light, but if they're forced to use Linux before they're ready they'll cling to Windows all the stronger.
And I have to say that I really do like the DirectX 9 API. Which is why yet another games programmer is developing games for Windows instead of Linux.
[edit]I think my computer's got bit-rot. I know the message didn't have that many typos in it when I clicked 'Post'.[/edit]