Microsoft Windows



"Microsloth Windows: /mi:krohsloth` windohz/, n. (Variants combine {Microshift, Macroshaft, Microsuck} with {Windoze, WinDOS}.) Hackerism(s) for 'Microsoft Windows'. A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition."

- The Hacker's Jargon File

Microsoft Windows is a series of operating systems developed by Microsoft since the mid-1980s, and since 1993 have had distinct business & consumer lines (though starting with XP, both lines come from different editions of the same version of Windows, with the exception of server versions).

Their Consumer versions are to be found on most of the computers produced for the general public. These include the DOS-based 3.1, 95, 98, and the Millennium Edition and the Home editions of the NT-based XP, Vista, and 7 (this is further split between Home Basic and Home Premium editions with Vista and 7; Home Premium is named as such because it has more multimedia functionality). Windows Home Server also exists to provide server capabilities to home users, and is cheaper than the versions of Windows Server intended for businesses.

Their Business versions are found on many corporate and academic machines, though not with the same pervasiveness of their consumer versions. These include NT 4.0, 2000, Server 2003, Server 2008, Server 2008 R2, and certain editions of XP, Vista, and 7 (specifically, the Professional editions of XP and 7, the Business edition of Vista, and the Enterprise editions of Vista and 7).

Starting with Vista, Microsoft has been releasing editions of Windows with every feature from every other edition plus some ones not found in the others (as well as a price higher than the others'). These are referred to as Ultimate editions in both Vista and 7 and are not tailored to any usage in particular, being intended for use in business, home, or academic settings like the other editions.

Due to being the the best-known and most-used operating system, it is frequently the target of justified and unjustified hate.

MS-DOS
The precursor to Windows, MS-DOS was one of those "operating system" things that meant you didn't have to know every little thing about your computer to get it to do something useful. It came on any IBM-PC you bought. It even included BASIC, so you could make you computer say "Hello, world" without typing it every time. And do spreadsheets. And play Doom when the boss wasn't in.

Only the games had fancy graphics, and it wasn't until about 1990 that everyday programs started caring about mouse support. Just like old-school UNIX, the keyboard was king here, and unless you had a third-party menu program or DOSSHELL.EXE around, there weren't any graphics to help you out (though starting with MS-DOS 5.0, you could at least type "help" and get somewhere). Alternative shells like 4DOS were popular, and added more powerful scripting features and "tab completion", which made typing out commands a bit easier.

Every OEM had their own semi-custom version of MS-DOS, partially to keep costs down, and partially to smooth over any parts of their machines that weren't quite IBM-compatible. AT&T, Compaq and Zenith all had their own versions, each with added utilities to format disks or do various kinds of system maintenance on top of what Microsoft provided.

The first version of MS-DOS to be popular outside of IBM's own machines was version 2.11, released in 1984. MS-DOS 3.0 added support for the AT and its clones, as well as hooks for networking software. MS-DOS 3.3 made hard disk volumes bigger than 32 megabytes possible, and for years was the most popular DOS out there. MS-DOS/PC-DOS 4.00 was mainly developed by IBM as a bridge to OS/2, and was notoriously buggy; a maintenance release, 4.01, fixed some of the most egregious bugs, but by then the damage had been done, and most users with a choice stuck with MS-DOS 3.3.

Various "DOS-compatible" OSes came out around this time, the most popular of which was Digital Research's DR-DOS. Much like the OEM versions of MS-DOS, DR-DOS added several useful utilities around its DOS-compatible core, making it popular with people who wanted more than what plain MS-DOS could offer. Microsoft insisted it had a new version of DOS coming for years in order to keep DR-DOS from gaining market share, and eventually released its own enhanced DOS, MS-DOS 5.0, in 1991. MS-DOS 5.0 was closely tied with Windows 3.0 and the upcoming Windows 3.1, with built-in memory-management drivers (something that was usually provided by third-party software like QEMM or 386MAX), the SMARTDRV cache from Windows 3.0, and a new DOSSHELL that supported VGA graphics modes and rudimentary task-switching. QBASIC (a cut-down, interpreter-only version of QuickBASIC 4.5) also made its first appearance here, replacing GW-BASIC.

MS-DOS 6.x fixed more bugs, added automated memory optimization through MEMMAKER, as well as INTERLNK (which let you do rudimentary file sharing over a serial cable or a special "LapLink" cable) and a very basic antivirus program. 6.0 also introduced Microsoft's DoubleSpace disk-compression application, an attempt to compete with the then-popular "Stacker" program. (Back in 1993, hard drives were still really expensive; "a buck a meg" was considered a good deal, and there were still a lot of of machines out there with 20-40 MB (yes, megabyte) drives in them. Stacker worked by using a loop-mounter to open a compressed image file on the hard drive, thus expanding the available space by about 1.5-2x. Considering that it was less expensive than a new drive, a lot of people ran with it. Of course, this became less popular after 1995, when new technologies like PRML (which used Viterbi filtering -- which is somewhat like the Bayesian algorithm most spam filters use -- to weed out noise) and MR heads (which could read fainter signals off the disc reliably) made the cost per megabyte drop through the floor.) This ran into trouble when it was found that DoubleSpace was using Stacker's patented "LZS" algorithm without permission, forcing Microsoft to recall it and replace it with "DriveSpace" (which used a different compression method).

The last official standalone version of MS-DOS was 6.22, released way back in 1994. Newer versions of MS-DOS were bundled as part of Windows 95, 98 and ME. DR-DOS is still around (after a brief stint under the name "OpenDOS"), and DOS fans on the internet have released an open-source, nearly 100%-compatible "FreeDOS". DOSBox has its own DOS clone built in as well.

Windows 1.0 and 2.0
The first Microsoft Windows Operating System was built entirely as a graphical extension of DOS, to compete with both the Mac and a little-known early office package called "VisiON". Windows 1.0 was released in 1985, after two years of development, and it was not well-received. It was barely usable, and didn't support things we now take for granted (such as overlapping windows). Worse yet, it was written with the XT in mind, and with both DOS and the Windows runtimes installed, memory for applications was at a steep premium unless you had an EMS board and your application knew how to use it. Few applications actually supported Windows 1.0, and it was largely ignored by the industry.

Windows 2.0 came out in 1988, and was the first version of Windows that most people would recognize as Windows. By that time Microsoft and Apple reconciled their differences, which finally allowed Microsoft to use overlapping windows in, y'know, Windows. Microsoft even became a major developer of the application software for the Macintosh -- in fact, modern versions of Word trace their lineage to the Mac version, not the DOS one, and Excel even started its life on Mac. This situation had a major influence on Windows' internals. Early versions of Excel (and some flavours of Word) were little more than ports from the Mac to the PC, and, to ease the porting, Microsoft tweaked the Windows API so it would somewhat resemble the Mac OS API; this meant that Windows ended up inheriting some of the classic Mac's quirks.

The next version, Windows 2.1, came as two different sub-versions: 286 and 386. 286 allowed use of the "high memory area", an extra 64k of RAM above the 1 megabyte mark that's usable in real mode due to a quirk of the AT architecture. It supported XT-class machines as well. 386 introduced the DOS box, an isolated DOS session running in protected memory space, which gave it an edge over plain old DOS and OS/2 1.x (see below) -- but only if you were well-off enough to afford a 386 in 1988 (that would be something like buying a top-of-the-line Xeon now). It was even used as a kind of a "DOS extender" -- the DOS versions of Excel and later Word actually shipped with a cut-down version of Windows 2.x as a runtime library; starting Excel or Word from a DOS prompt would also start Windows.

OS/2 or: Why Windows is based on VMS
As PCs got more powerful, Microsoft entered into discussions with IBM to make a next-generation OS that would use all of the 80286 processor's interesting features (such as memory protection, preemptive multitasking and swapping), allow access to all 16 MB of the AT's address space, and provide more powerful programming tools such as multithreading. The project was talked about under various names (such as "DOS 5.0") for several years until it was finally announced as OS/2 1.0 in 1987, coinciding with IBM's splashy OS/2 launch. When it was released in 1988, though, most people were disappointed. Development for OS/2 was something of a shock to DOS programmers used to working in assembly language. OS/2's API was better suited to higher-level languages like C, and worked more like the C library on a UNIX system than the simple "interrupt" calls DOS programmers were used to.

On top of that, OS/2 had a hard time running DOS programs, something that was still very important back then; only "well-behaved" programs that didn't try to access hardware directly would work, and because of deficiencies in IBM's BIOS API, there were very few programs that didn't try to write directly to hardware. Most people referred to the OS/2 DOS box as the "penalty box" because of this. IBM and MS would eventually release a shim library called the "Family API" that would let you build programs that would run on both DOS and OS/2 without said program getting sent to the box, but it only supported character-mode applications.

A lot of the problems with OS/2 would have been averted if Microsoft had been allowed to target the 80386 instead of the less-powerful 80286 (which at least one person at Microsoft called "brain-damaged"), but IBM insisted because of promises they'd made to customers regarding the OS/2 Models 50 and 60 -- which had the 80286 in them. Microsoft wasn't pleased, and decided to rewrite OS/2 from scratch on their own. They hired Dave Cutler, the designer of DEC's VMS mainframe operating system, and set him to work making a "new OS/2" that was portable to non-x86 processors; RISC processors were just coming out, and Microsoft (like a large part of the market back then) assumed that people would switch to them and abandon the IBM Personal Computer architecture, which was already starting to look dated. On top of that, OS/2 1.x, like DOS before it, was written largely in assembly language and would have been incredibly difficult to port to anything else.

The new OS was originally targeted for Intel's i860 RISC CPU, which went by the codename "N-Ten"; this got contracted over time to "NT", which Microsoft eventually backronymed to "New Technology". When it turned out that the i860 was a poor performer in everyday tasks, Microsoft decided to target MIPS machines and the 80386 instead, with versions for the DEC Alpha and the Power PC coming later.

Internally, NT was nothing like DOS or OS/2 1.x at all; indeed, it was for all intents and purposes a recasting of VMS in C instead of VAX assembler, with many of the same internal structures (such as IRPs, ASTs and priority levels) carried over intact, something DEC eventually sued Microsoft over. This central layer was exposed as a "NT native API" that could be called by system services called "subsystems", whose job was to emulate various other OSes. The idea was to have 16-bit OS/2 applications, DOS applications, and 32-bit OS/2 applications running alongside each other with no conflicts. NT also carried over VMS's list-based security model, giving it a lot of flexibility in controlling who could do what.

NT was originally planned to come out as "OS/2 3.0", possibly in 1992 or 1993. However, a surprise hit was coming, and it would change the roadmap dramatically.

Windows 3.0
Coinciding with IBM's "bridge to OS/2" strategy, Microsoft released Windows 3.0 in 1990. This was the first Windows to explicitly support running applications in protected mode on the 286, making all 15 MB of "extended memory" available. It was also facelifted, with window decorations and icons closely matching the ones designed by IBM for OS/2 1.x's Presentation Manager; the intent was to provide an easy transition to "OS/2 3.0", once it was ready. 3.0 also extended the 386 Enhanced mode introduced by Windows 2.1, adding support for virtual memory. 3.0 was also the last version of Windows to support running in Real mode; Windows ran poorly on XT-class machines to begin with, so this was no big loss. Windows 3.0 was a smash hit, the first version of Windows to see any real third-party support, and pundits on both sides of the PC-Mac debate were wondering if the PC finally had a leg up.

Microsoft expanded things even more with Windows 3.1, introduced in early 1992. Windows 3.1 improved the virtual memory system by adding support for "32-bit" disk access and file access, meaning that on a 386 or better, disk access and caching would be implemented through VXDs instead of relying on SMARTDRV and the system BIOS. Since switching from 386 Enhanced Mode to Real mode and back was (and still is) quite slow, this improved performance quite a bit. 3.1 also added official multimedia support, scalable fonts via True Type, better printer drivers, and the first version of the Windows Registry (which was originally used only for file associations). A follow-on, Windows for Workgroups 3.11, added built-in peer-to-peer networking.

OS/2 2.0-4.x: An epilogue
Windows 3.0's success led Microsoft to break ranks and use an extended version of the Windows 3.0 API (which would eventually be called "Win32") in "OS/2 3.0" instead of using an extended OS/2 API. IBM broke ties with Microsoft at this point, deciding to develop OS/2 2.0 on its own and base any future versions of OS/2 on 2.0's code base instead of on NT.

OS/2 2.0 was eventually released in early 1992. Dubbed "a better DOS than DOS, a better Windows than Windows", it took full advantage of the 80386's features and 32-bit address space, featured a new, object-oriented desktop called the "WorkPlace Shell" (a feature Microsoft would copy nearly verbatim, though a bit more visually polished, for Windows 95), had impressive support for even badly-behaved DOS applications (using the same "virtual 8086" mode that Windows 386 did, with a few tweaks), and not much else. Native applications were still few and far between, leading most people who ran OS/2 to use it simply as a "hypervisor" system for multiple DOS and Windows sessions. On top of that, the Windows 3.1 launch happened at about the same time, drowning out any news about OS/2's benefits; the fact that OS/2 2.0 required more memory and disk space -- both still quite expensive then -- didn't help matters either. That said, OS/2 2.0 got a lot of buzz among more savvy users who wanted something more substantial than DOS or Windows and didn't want to take the UNIX plunge just yet (which would have cost even more then).

IBM released several more versions of OS/2, nicknaming the 3.0 and 4.x releases "Warp", but eventually put it on life support after 1996 as most of the DOS users that were its bread and butter moved on to UNIX (specifically Linux and FreeBSD) or simply went back to using Windows after NT 4.0 came out. IBM officially dropped all but per-incident support a while ago, farming most new development out to an outside contractor (who will still happily sell you a copy if you're brave), and recommended that corporate users "migrate to e-Business technologies" (i.e. "it doesn't matter what OS you use because Everything Is Online, or at least it should be").

Windows 95, 98 and NT 4
After over three years of development, the OS once known as "OS/2 3.0" was finally released as Windows NT 3.1 in 1993. For most users, it wasn't much of a jump from Windows 3.1, and just like OS/2 2.0, it required a beefier computer than most people had at the time, so it was mainly a curiosity for developers and people porting server software.

Around this time, Microsoft announced a grandiose plan to update Windows. The roadmap centered around a future version of Windows called "Cairo"; inspired by Bill Gates' "Information at your Fingertips" keynote at the 1990 COMDEX. Cairo featured a new, object-oriented desktop, pervasive database-driven search capabilities and an emphasis on remote management and network security. The plan was to release Cairo sometime in 1995 or 1996; in the meantime, a new DOS-based version of Windows called "Chicago" would be released that would act as a "bridge" to Cairo, with the new "Explorer" interface and Win32 support.

After almost two years of delays, "Chicago" was dubbed Windows 95, and was released in August 1995 with one of the biggest ad campaigns for a consumer product ever. It was a success, with most DOS users upgrading; however, like most new versions of Windows, driver problems and general instability were common. Also, 95 required more memory than DOS+Windows 3.1 (though not as much as OS/2 or NT), and on machines not up to the task (mainly old 386SX machines) Windows 95 was very slow. Alongside Windows 95 was a new version of NT, Windows NT 3.5.

This had an interesting effect on how applications were written. Before Windows 95, NT and Win32 had much the same image problem as OS/2 did; why bother running a 32-bit OS if all your apps were 16-bit anyway? Windows 95 did a lot to change that. For the first time, the entire Win32 API (with a few exceptions) was supported on a DOS-based Windows release, and Microsoft went to great lengths to get people to convert from the 3.1 API to Win32. It worked; by the time Windows XP came out, almost all everyday applications were 32-bit, and 16-bit Windows apps faded into history.

As for "Cairo", Microsoft eventually found that completing the entire project all at once would not be possible, and applied the name to what would eventually become Windows NT 4.0. NT 4 introduced the Windows 95 interface to the NT line of OSes and was faster than NT 3.1 and 3.5 due to a change in how the video subsystem was managed. In the meantime, Windows 95 got several "in-between" updates called "OEM Service Releases", one of which (OSR2) added support for the FAT32 filesystem, making it much easier to use multi-gigabyte hard disks as prices continued to drop on them. The OSRs improved Windows 95's stability greatly, and the last one, OSR 2.5, added rudimentary support for USB.

The next step was Windows 98. Windows 98 greatly improved the Windows device support system, introducing a driver API called the "Windows Driver Model" that was shared with the upcoming release of what was then called "NT 5.0". USB was finally supported for real, and the "Active Desktop" system introduced with Internet Explorer 4.0 was an integral part of the new Explorer shell. It also fixed many of 95's long-standing issues. However, Windows 98 was initially plagued with major stability issues among some other problems and hence wasn't very well received at first. Jokes about Windows and Microsoft were at their peak, even entering mainstream popular culture. Faced with this severe crisis, Microsoft finally released Windows 98 SE ("Second Edition") which resolved the stability issues and included the much more streamlined Internet Explorer 5. For years, this was the OS of choice.

DOS-based Windows had one last hurrah with the release of Windows ME (the ME stands for "Millennium Edition"). ME was rushed, crippled, and had problems with stability that rivaled the original release of Windows 95. It was not well-received, and most people with a choice in the matter stayed with or "upgraded" to Windows 98(SE). However, it supported "USB Mass Storage Device" universal drivers, making USB thumb drives usable anywhere.

Windows 2000 and XP: Microsoft marries DOS-based Windows and NT, finally
NT 5.0 finally got a proper name in 1999: Windows 2000. 2000 was the first modern version of Windows, with full Plug-and-Play support, complete USB support that improved on the Windows 98 framework and was more stable, DirectX support and the new Active Directory system (a replacement for the old LAN Manager server code earlier versions of NT used). Despite some initial problems, 2000 had a long life (Microsoft kept sending patches for it every Upgrade Tuesday until support ended for 2000 in July 2010), and there are some users who still consider it the best Windows ever due to its polish and relative simplicity.

Finally, in 2001, Microsoft finished the long-winded transition away from DOS with the release of Windows XP, by far the most used Windows ever. XP had improved support for older programs, with extensive compatibility options available, and added a number of features to make the system friendlier to home users, including a new GUI setup called "Luna" and various wizards for doing things like reading photos off of a digital camera or uploading pages to a personal website. XP also split the line into several versions: XP Home, XP Professional, and (eventually) XP Media Center Edition. One complaint among many users was Microsoft's addition of an activation system, which made it more difficult to use a bootlegged copy of Windows; as people found ways around the activation, Microsoft fought back with the Genuine Advantage program, which pops up a nag screen and restricts access to certain updates if it detects a not-quite-legal copy of XP. Others were upset because XP required more resources than Windows 98 or 2000 did, something that became less and less of a concern as the 2000s went by.

Still, despite complaints, XP was very well-received overall and, like 2000, was regarded as one of the best versions of Windows ever made, and was considered a real contender against Macintosh in terms of usability at last (and was greatly boosted by the extensive games support DirectX provided). As of 2010, XP is still the most widely used operating system in the world, despite two successors having been released and after support was discontinued for Windows 2000 in July 2010, is currently the oldest Microsoft OS still supported by Microsoft with support scheduled to continue into 2014. (That'll give XP another record-setting accomplishment, as the longest-supported Microsoft product in history.)

The short of it is: this is where they finally got things mostly right, and nearly an entire generation of young computer nerds (including a lot of tropers) grew up with this as their OS.

A notable difference between Windows XP and Windows 2000 was that there were no server versions of the former released, despite being based on NT as well. Instead, a couple years after the release of XP, the server line of operating systems was split from the rest of the NT line in the form of Windows Server, the first version of which was Windows Server 2003.

Windows Server 2003 was released for 64-bit x86 processors (which AMD refers to as AMD64, Intel refers to as Intel 64, and Microsoft refers to as x64) in addition to 32-bit ones. Despite its name, Windows XP Professional x64 Edition is actually based on Windows Server 2003 (as seen by the 5.2 version number; 32-bit versions of XP are version 5.1). Versions branded with the Windows Server 2003 name came in Web, Standard, Enterprise, and Datacenter editions (listed in order from least to most feature-rich).

Windows Vista and 7
Despite delays in getting the components out, Microsoft had never quite given up on the "Cairo" philosophy, and sought to finish it once and for all with the "Longhorn" project, an ambitious attempt to completely rebuild the user-facing components of Windows while introducing some features (such as the database-driven WinFS) that had been promised for well over a decade at that point. About halfway through development, Microsoft again found that it had bitten off more than it could chew, and dropped several components from Longhorn in order to get it back on schedule. The result was finally released as Windows Vista in 2007. This new version came in both 32-bit and 64-bit versions.

Vista got more than its fair share of criticism for its radical design changes. One of these was a much-needed change in how it user permissions are handled: Previously, software would be granted Administrator-level permissions automatically, and so a good deal of third-party software was designed to take advantage of this. Vista, however, popped up a prompt whenever the user or a program tried to perform an Admin-level operation to confirm that this was not the result of malware. The result was that users got these prompts a lot, or some software simply failed to run at all unless the user specifically instructed it to run on the Admin level. Another was its special use of system resources, which meant that if a resource was unused, it would be put to use. Users accustomed to having idle system resources then complained that their gigabytes were gone. In addition, Vista represented a major jump in the amount of resources required. Since five years had passed since XP's release, it seemed that this would not be a problem. However, hardware vendors had begun to take advantage of XP's longevity by breaking the trend of discontinuing older, lower-end PCs and instead selling them as low-cost "entry level" PCs.

On the other side of things, Microsoft decided that in order to push the more robust new OS, they would forbid hardware vendors from selling computers with XP to home users after Vista's release. The vendors were suddenly faced with the dilemma of either dropping all their "entry-level" systems in order to properly support Vista, or releasing PCs that only met the so-called "minimum system requirements" (which are called that for a good reason). Many chose the latter, resulting in some brand-new computers being sold that, between the low hardware resources and the Shovelware most such machines tended to come with, barely ran at all and were effectively expensive paperweights. Dell, however, boldly threatened to drop Windows entirely if Microsoft did not let them continue to sell computers with XP. Microsoft caved, and Dell continued to sell home computers with Windows XP well into 2008.

By 2009, all of the "paperweight" computers had been phased out, most commercial software had been upgraded to accept Vista's new security restrictions, and the bugs that plagued some installs of Vista had been patched. But the damage was done -- in the popular view Vista has become the sequel to ME. Microsoft decided to cut their losses and release a new full version, entitled simply Windows 7, on October 22, 2009. It built on the framework started in Vista and streamlined its functionality to bring performance back up to the XP level. Not unlike Vista, it also runs on both 32-bit and 64-bit x86 processors. It also has a few new features of its own. People call Windows 7 "Windows Vista done right," and while that doesn't paint the whole picture, it's not that far from the truth.

Windows Server remained separate from the rest of the NT line; Vista was accompanied by Windows Server 2008 and 7 was accompanied by Windows Server 2008 R2, which as the name implies is a somewhat minor revision of Server 2008 (not unlike what 7 is to Vista). Windows Home Server was also developed for use as a central location for home users' data (including backup capabilities). They come in editions with the same names and more or less the same capabilities as those of Server 2003, as well as a less powerful Foundation version for Server 2008 R2. The original version of Windows Server 2008 was the last version of Windows Server to have a 32-bit version; Windows Server 2008 R2 only runs on 64-bit x86 processors, as opposed to how its home and workstation counterpart, Windows 7, as well as the previous Windows Server version, came in both 32- and 64-bit versions. (All modern x86 processors have 64-bit capabilities, though, so this isn't much of a problem.)

Windows 8
Windows 8 was first shown off in June 2011 and is slated for a launch sometime in 2012. It will feature by far the most radical change to the Windows UI since the introduction of the taskbar in Windows 95. With the growing tablet market Microsoft chose not to develop a custom tablet OS based on Windows Phone, but rather is creating an entirely new shell for traditional desktop Windows. The core of the new UI is centered on a tile-based start screen similar to that of Windows Phone using their "Metro" design philosophy. The environment will run new Silverlight and HTML based apps in fullscreen mode similar to an iPad, Android, or other "upscaled smartphone" tablet. However, it is also capable of dynamically switching to a classic Windows desktop capable of running classic Windows apps. All this is intended to create an OS that works on any PC form factor, be it a traditional notebook/netbook, tablet, or media center. Furthermore, it is Microsoft's vision that even though the new shell is designed primarily for touch input and the classic for keyboard and mouse, either environment can work just as well with either input. This is possible mostly through enhancements they've made to their touch recognition technology, so called "fuzzy hit targeting" that compensates for the inherent lack of precision with capacitive touch in the classic desktop.

Bluescreen, viruses and other assorted crashes
One of the many complaints about Windows is that it frequently crashes, resulting in what is often referred to as the Blue Screen of Death (often shortened to BSOD or Bluescreen). Many of these problems are often attributed to Microsoft, or even Bill Gates personally, a bit unfairly. Many of the crashes are caused by programs not being written properly (sometimes Microsoft applications, but still...) and also by Microsoft bending over backwards to keep as much backward compatibility as possible, even for those badly-written programs. , and due to the sheer and massive complexity of Microsoft's frameworks, it's really easy to write improper code. The frequency of bluescreens has been reduced greatly, ever since the transition away from the MS-DOS kernel (used in Windows 95, 98, and Me) and towards the NT kernel (used in 2000, XP, Vista, and 7), due to its superior multitasking and memory protection; however, a bluescreen can still be triggered by badly-written driver code or the like. Regardless, the problem is not as common as it once was, and has not been for some time now.

Another complaint is that Windows has so many viruses. This partially follows from the fact that Windows has the majority of the market, and a single virus can cause more trouble on a Windows computer than on a Mac or UNIX-derivative, but is further exacerbated by flaws in Windows' permissions model that existed since its inception, and were only truly addressed in Vista. (See the above note about programs running as Administrator.) One can expect that, like the bluescreen problems, the problem of viruses and other malware will be greatly reduced as time goes on, however.

Postscript
Further more, Windows is extraordinarily backwards compatible with itself, as a person installed every version of Windows (except ME because it can't upgrade to 2000) one after another. It's a good watch: see it here!