kernelthread.com

A Taste of Computer Security

© Amit Singh. All Rights Reserved. Written in August 2004


Windows: My Personal View

Existing success-related "numbers" are ridiculously lopsided in favor of Windows. I have had a more or less neutral attitude towards Windows: I sometimes feel claustrophobic while using Windows, but I do not despise the platform. I think the base Windows system is very well-designed. However, certain components — critical ones — are poorly implemented.

I have usually ascribed my general discomfort with Windows to my background: my first operating system was SVR4, followed by Linux and *BSD. Windows alienates me from my familiar environments, and has several nuances of its own.

Specifically, given what I do, I find my workflow to be slower on Windows. I have tried various *nix-like environments for Windows over the years: the MKS toolkit for DOS, Cygwin, MKS for Win32, Microsoft Services for Unix, etc. They all try, admirably, but it's not the same. I admit that the lack of a "true Unix environment" isn't much justification against Windows. In fact, it's a fine platform in many respects - if you have seriously developed on multiple platforms, including Windows, you might agree with this.

I think there is too much entropy on Windows. The operating system is too "busy" (in the colloquial sense). Legacy baggage and backward-compatibility contribute to software malice and malfunction, whether it be doctored or accidental. Gigantic user base amplifies flaws (particularly security related) to epidemic proportions. Many experts disagree with numerous aspects of the Windows UI. A number of small "everyday" annoyances cumulatively make life difficult. Consider some examples: the entire system gets unresponsive when you empty a very full recycle bin, or copy large files, IE gets unresponsive when you empty its cache, even though XP boots very quickly to the point of showing the desktop, it takes a long while before the system is usable - and this is without having anything in "Startup". Do you know how many keys there typically are in the Registry - do you know how many Office alone has, and what this does to maintainability? Have you ever installed Windows and spent hours, if not days, downloading and installing drivers specific to your machine (such as for Sony VAIOs, IBM ThinkPads, ...)? Have you ever had stability issues with Windows?

There are even books dedicated to Windows annoyances. To be fair, there are books dedicated to Unix annoyances too.

The default XP theme's color-scheme seems to be Disneyland inspired - not that there's anything wrong with Disneyland. Many people like it, actually.

That said, Windows can be a fun platform, even if you are a hacker (in the good connotation of the word). Consider: you can get all the nice developer tools, debuggers like SoftICE, figure out lots of undocumented APIs, overtake some system calls, extend the system, find and fix security flaws, and so on. The fact that it has a huge market share might just make your efforts worthwhile. However, since Windows is largely disjoint with the *nix Universe, many (traditional) hackers steer clear of it for the fear of being "left out". Source code unavailability doesn't help either.

Nevertheless, an overwhelmingly large majority of computer users are on Windows. A lot of software is available for Windows as a result - it's a feedback loop perhaps, although for the typical end-user, the amount of important Windows-only software is probably decreasing. Still, many people don't have a choice, often because they don't know that they have a choice. There is a lot of inertia in moving away from Windows, both real (and justifiable) and imaginary. Often, there are existing investments in Windows: monetary, intellectual, legal, political, etc. Most importantly, many people simply don't care - they have no motivation, or interest, in "experimentation". They have better things to do in life than evaluate computing platforms, and switch. Many people don't even like computers - they just have to use them.

Microsoft could address some or most of the existing problems with Windows in future versions. They do seem to have the opportunity and the resources. I opine that they did several nice things with Windows 2000. Windows has a lot of things in place (including the user base). Microsoft has a lot of technology (theirs, licensed from 3rd parties, and even open source) to draw from. Thus, even though a Windows system probably would be the de facto (client) platform of the future, Microsoft might actually make Windows worthy of being so.

<<< Unix vs. Windows