Welcome back ! It’s been a long time… Last time, when we stopped, Microsoft were close to getting rid of MS-DOS and introducing a new product, Windows. We’re now going to describe why they did that, how they did it, and what kind of issues they’ve been facing then and are still facing now. Please note that we’ll focus on Windows releases for the consumer market only.
DEATH OF THE CLI
First, what is windows initially, and why would Microsoft wish to introduce such a product ? Well, from an average user’s point of view, DOS sucked badly by one point : it was using a command-line interface (CLI), which is, I recall you, when one types in a command, hits Return, after what the computer starts some computation and displays the results.
Command-line is a preferred interface for most power users and developers because :
- It’s fast : Text manipulation is a relatively easy task from a computing point of view, and the command line syntax is made so that the computer may analyze commands very quickly. On the user side, typing a command is a speedy task because it doesn’t require you to analyze what the computer tells you. The whole command line syntax is engraved in your brain, you just have to remember it, which is pretty quick if you use it everyday. And even if you’ve got thousands of programs, typing in command-line isn’t slowed down the tiniest bit.
- It has very low hardware requirements : Modern graphical interfaces have important resource consumption. They have to track the motion of the mouse, constantly re-draw windows as needed, putting flashy, real-time-rendered, animated eye-candy everywhere, keep in memory big uncompressed images corresponding to what’s displayed on the screen, along with some temporary data used for quicker and smoother drawing… By comparison, command line only requires a few KB of memory, few CPU power, and no advanced graphic card.
- It’s a perfect tool for repeated tasks : Suppose that there is a single thing that you want to do on twelve computers. You know what commands you have to type in order to obtain this result. Then you can just put those commands in a text file (called a batch file or a shell script depending on the computing church you belong to), one after the other, and give the text file to your operating system, which is going to automatically read and execute all the commands in it. Think of it : twelve computers to manipulate, a single batch file to carry around and run…
- It is streamable : Command-line input and output may be redirected from and to various I/O devices and disk files. The former allows one very low-powered, dumb terminal computer to only read input from and send input to a central server, which was practical when computers were big and expensive because it allowed people to work on tiny, inexpensive machines, that would cost far less to replace if they died because of a misplaced cup of coffee. Though not needed anymore, this way of doing things still is loved by the paranoiac and dictatorial system administrator. Streaming to a file allows to keep a record of the huge dump of text spurred out by some command-line programs in order to keep a track of it and carefully analyze it later. Newer command-line interfaces also allows one to use the output from a program as input for another program directly. Just think of the possibilities : if you want to delete all files containing “foo” in their name, you just use “DIR *foo*” to list such files and directly send the output of it to the “REM” program which deletes files.
- It has some features of modern programming languages : Latter interfaces also introduced loops (do a task multiple times) and conditional structures (if certain things happen, do this, otherwise do that), making command-line a (relatively) simple way to make little programs that work on almost any computer provided they use the same operating system.
- It’s easily extensible : Any program may, under certain simple conditions, become a new command in a command-line interface, and managing thousands of programs in command-line isn’t nearly as complicated as it can be with other interface paradigms
However, command-line is just awful for normal people because :
- Reading the manual is mandatory : You can’t learn how the system works progressively, knowing only a few basic concepts. You have to immediately stick in your memory several basic commands (CD, REM, DIR, TYPE, HELP…) and what they’re used for, because without that you just can’t do anything. Such a necessity is very frustrating for new users, who generally prefer to jump in and learn later as much as possible. It’s also a major source of errors while one gets used to the system, which is even more frustrating.
- Error prevention does not exist : Suppose that you’ve been starting to type a big command. But the second word is wrong, because you were sleepy or don’t know anything by heart yet. In a command line system, the computer does not analyses what you told him to do before you press Return. So it’s only after you’ve sent the whole command that the computer says “I’m sorry, Dave. I’m afraid I can’t do that” (or rather “Bad command or filename” in DOS’s poetic words), and then you have to check the entire long command for errors.
- Error detection and correction is poor : The basic structure of most command line systems is made so that several frequent and simple errors can’t be properly detected and reported to the user by the system. Hence the user must do error correction all by himself. Simple example : several command accept an infinite number of parameters, so that you can’t know by the number of parameters given by the user if a mandatory parameter is missing. All the operating system can say is that there is an incorrect parameter somewhere. Even worse, there are (several) cases where the operating system can’t detect the error at all and does nonsense, making the user think that it’s buggy.
- There is a huge lack of hierarchy : Even though the average user is only going to use five commands or so, the operating system treats ALL commands as being equal. This means that if you want to type “DIR”, the command for displaying the content of directories, but only remember that it starts with a D, have lost your manual, and want the system to display all commands starting with a D, you may get something like…
…or, usually, something much longer, and have to read through the entire list, looking for your command.
So while command-line satisfies perfectly old-school and professional people, it should now be obvious that it’s not okay for average users, that together form, say, 95% of Microsoft’s targeted audience. Clearly, something was wrong in this core concept of MS-DOS, and had to be fixed.
A solution to this problem came from research made by the team of Doug Engelbart (Stanford Research institute), and later by people working in a huge laboratory called Xerox PARC. It’s called the GUI (Graphical User Interface), and more specifically the WIMP (Windows, Icons, Menus, Pointer) paradigm. The user interacts with programs, including the operating system, through the use of a pointing-and-clicking device (generally a mouse, but touchscreen are gradually getting popular nowadays) that allows an on-screen cursor, the pointer, to be moved on the screen. Programs and certain functionalities are launched by clicking on icons, tiny pictures that should more or less indicate what they’re used for, but usually helpfully associated with a tiny text explaining it. Those programs work in well-defined areas of the screen called windows (that the user can usually conveniently move or resize). The icon model isn’t that great when a large set of actions must be provided, so one uses the menu system : a list of action that is shown temporary for interaction purposes an then disappears (just right-click on the present text and you’ll get a perfect example of menu).
Gates, like another important guy called Steve Jobs, which we’re going to talk about later, saw the first GUI experiments in Xerox PARC and was quite impressed. As Jobs started to make its GUI-powered computer, the Macintosh, he understood quickly the huge potential of this, and started to develop an operating system using it, first by making a program running on top of DOS introducing such an interface. Its goal was to introduce software he developed for the Macintosh to the broader and less rich audience of the PC, selling more copies. The resulting software, Windows 1, took a lot of time to be released, and at release time had the following characteristics :
- It allowed, to a little extent, launching of multiple programs at the same time : This is almost always associated with the WIMP paradigm, since envisioning restriction of the part of the screen used by a program is an invitation to do this. However, Windows 1 and several subsequent releases of Windows used so-called cooperative multitasking, where a program explicitly has to give up on machine control before another one could take its place. From a performance point of view, this is excellent : at that time, hardware to introduce a better solution in a smooth way simply didn’t exist. From a reliability point of view, this is horrible : if a program crashes, the whole system crashes. From a compatibility point of view, this is awful : at the time Windows came on the market, there weren’t any Windows program around, so the benefits of this feature were lost while running “normal” applications. If you need a last reason why cooperative multitasking was terribly wrong, think of the following : it relies on third-party developers to do the work of the operating system (run multiple apps at the same time). Developers are lazy, they may not do the required thing. Developers are human beings, they may do it wrong, and if there’s something wrong in a 3rd-party app, the operating system manufacturer can do nothing about it, except not recommending the application…
- It introduced the concept of device driver : As computer market started to become a massive thing, and as standard respect started to die and decay in the mind of hardware manufacturers, some people at Microsoft understood that, sooner or later, normal programs just couldn’t stay compatible with all existing hardware, and that even if they did, the user couldn’t bear it.
To understand it better, just imagine that usual DOS games asked the player to choose its sound card in a list of 10 items, where it wasn’t because hardware had evolved since the game was out. The player hence had to try all items, hoping that one of them would work. On the graphics side, as the hardware gained complexity, the player had to choose between strange words like “CGA”, “EGA”, “VGA” in order to get the thing working, which required to know exactly what its graphic card was capable of.
Microsoft introduced some hardware independence capabilities, since Windows was capable of implementing “generic” system capabilities, that were working on all hardware or being able to tell a program if they worked on that specific hardware it ran on.
- It introduced bloatware management to the DOS world : Most software developers can’t prevent asking too much from the hardware, and this is especially true on the memory usage side : more often than once, a machine couldn’t store a software plus its data in main memory, leading to a software crash (and sometimes a system crash too). Let’s face it, there’s only one real solution to prevent this to happen : good coding practices and careful work on memory usage optimization. No operating system can perfectly correct the work of a horrible developer.
However, Microsoft introduced a new executable (= program) file format in Windows 1, that allowed only part of a program to be loaded in memory at a time, the rest of the program staying on the disk. Hence huge unoptimized program could be run for a certain time before crashing, which was an improvement (certainly disputable, but real) in reliability.
- Resource consumption was heavy : Applications ran very slowly – if they ran at all. Add to this that the file browsing interface, known as the MS-DOS Executive, was more or less that of DOS Shell, making one wonder where the improvement was, and as one would quickly find out, it was a massive failure, both on the developer and on the user side.
So despite introducing massive ideas to the DOS world, in the form of WIMP implementation, hardware independence, and multitasking capabilities, Windows 1 turned out to be a massive failure, for excellent reasons.
Then Microsoft introduced Windows 2.0, which was a little less… colorful than Windows 1, allowed windows to overlap (leading to a lawsuit from Apple… Yes, in the 80s, people already spent time trying to make money from insane patents, and Apple have always been very good at it), changed somewhat windows controls, looked less laggy on newer computers, added a preliminary support to run several DOS applications at the same time, and that was about all from an user’s point of view.
More developers started to write programs for Windows, however, and Microsoft especially ported Word and Excel to the Windows platform, making it a more powerful tool than before. Then Windows 2.1 was introduced, in various editions for the various Intel processors of the time, making managing a lot of memory (an important limitation of DOS) a lot more easy task by taking advantage of new Intel hardware capabilities.
All in all, Windows 2.x didn’t really made its way to a consumer market, that probably still didn’t perceived its interest in the end. However, its successor, Windows 3.0, did. Several reasons may explain this…
- It was just a lot less painful on the eyes : Windows 3 looked less like a toy and more like a serious application with its brand new, more careful color usage. One has to partly thank new graphic hardware for that.
- It was bundled with most computers, like MS-DOS did before : And it worked just as well. One should never underestimate the power of out-of-the-box machine usability.
- DOS application compatibility was improved : One could, as an example, now copy and paste text from DOS applications and launching multiple DOS apps at once worked much better than in the preceding release (thanks to some hardware help), reaching a mature state. Since there were a lot of DOS apps around at the time, it made a big difference for users.
- Performance was now decent : New powerful hardware now made Windows a decent choice for everyday use..
- Bloatware management was pushed to a new level : It was now possible to run them for a very long time without crash, provided one was ready to suffer horrible performance. The trick was to put parts of the program on the hard drive disk when the memory was full, in order to free up some space, a technique called swapping. The problem is that HDDs are terribly slow compared to RAM, and that their low speed directly affects application performance since the system can do nothing till some memory is freed.
Under the hood, Windows 3 integrated several interesting things too :
- No more multiple editions : While Windows 2.1 introduced support of multiple processors from Intel through multiple releases (one for the 8086, one for the 286, one for the 386), Windows 3 merged all these editions into a single product line, allowing users to buy Windows without even knowing which kind of computer they had.
- Full compatibility with Windows 1 and 2 : Around that time, Microsoft finally managed to make some people write software for Windows 2. This compatibility allowed them to make use of this software in order to get increased popularity facing competitor computers where you have to buy new software for each new computer.
- Virtual devices drivers (aka VxDs) : Prior to Windows 3.x, drivers were just a practical yet optional way of interacting with the hardware for the few Windows developers. However, it did nothing for DOS applications, which means that they continued to have direct hardware access without caring about the existence of a thing called Windows on top of it. This is highly problematic when multiple DOS apps running at the same time are considered, because concurrent access to the same hardware without caring about other running apps may lead to horrible things, like a printer printing one line of text from the first app, one from the second app, and so on. A VxD is a program which has direct access to the hardware, and somehow takes it place : anytime another program tries to gain access to the hardware, its request is redirected to the corresponding VxD, which takes care of multiple accesses to the same hardware by itself.
- Multimedia Extensions (MME) : First released as a free add-on for Windows 3.0 customers, then integrated into the subsequent Windows 3.1 release. It allowed full support for sound cards and CD-ROM drives, meaning noticeably that Windows became gradually a far better choice than pure DOS for gaming and various sound/image editing purposes, especially with the later release of DirectX, a powerful tool for Windows game developers.
Starting with Windows 3.1, there were two more improvements under the hood :
- Multiple TrueType fonts supported and improved font support : This made Windows a serious choice for desktop publishing purposes, where Apple (the company making the Macintosh) used to be the leader. Especially when comparing PC and Macintosh price tags.
- Video for Windows : A response to Apple’s Quicktime, introducing proper video manipulation technology to Windows.
Globally, the Windows thing was now really getting public and developer’s attention. Though still running on a heavily unreliable and insecure MS-DOS + cooperative multitasking basis (along with some other horrors), it started to provide extremely interesting results.
Now, Microsoft had quite vanquished Windows’s main competitor in the PC market, namely pure DOS, but they had to face some competition :
- The Macintosh was still alive, well, and very popular among the education world, multimedia-friendly users and publishing companies. User-friendly and somewhat more reliable, it attracted a lot of good work-oriented software developers, and was quite attractive among PC users suffering frequent crashes and reboot and still lacking professional software in those areas. Unpredictable help came from the fact that little was done in the PC world to prevent companies from making PC clones and various extensions (sound cards, HDDs…), which made it a far more cheap and quickly-evolving market than other computers markets solely based on proprietary hardware.
- Perhaps even more potentially dangerous than the Macintosh were the gaming-oriented computers, and especially the Amiga. Amiga’s hardware was powerful without being expensive, and its software was vastly superior to what Windows could do at the time in terms of performance, partly due to the use of an excellent operating system (among that time’s standards) and partly due to the availability of complete hardware documentation, which was popular among developers and led to the creation of extremely optimized programs. Amiga was well-known among multimedia enthusiasts, too, due to the presence of excellent multimedia hardware.
- The tight collaboration between IBM and Microsoft, dating back from MS-DOS’s time, was unraveled sometimes after Windows 3.0 release. Therefore, the system that IBM and Microsoft were crafting together, OS/2, turned out to be a potential competitor on IBM hardware (much computers on those days). This was a potential issue for Microsoft, because they were envisioning OS/2 as the operating system of the future, eventually replacing Windows, and therefore put a huge amount of work on improving and marketing it until it was ready for broad use.
Microsoft hence wasn’t done improving Windows yet. Windows NT, a complete and cleaner rewrite of Windows, partly based on the work done by Microsoft on OS/2, was out, but it couldn’t run properly on the vast majority of personal computers. Microsoft hence still had to provide something to users of Windows 3.1. This took the form of Windows 95, which included the following :
- Preemptive multitasking : Windows 95 doesn’t rely anymore on the apps themselves to take care of multitasking. All the work is done by the operating system and applications just feel like they’re running independently from each other. This improvement was a HUGE improvement in making application development easy and making future OSs from Microsoft more reliable.
- DOS/Windows integration : Previous releases of Windows needed DOS to be installed in order to work. Windows 95 included DOS 7.0, making it a totally independent product, and allowing DOS to be modified according to the needs of Windows more easily.
- Long file names : On old DOS systems, files had an 8-characters long name, followed by a 3-characters long extension (like “.exe”, “.txt”, “.jpg”…) which specified what it was used for. It’s somewhat hard to tell what a file is about in 8 characters, so Microsoft introduced 255-characters long file names in Windows 95, which was a huge success.
- Plug-and-play : On early operating systems, adding new hardware, like a sound card wasn’t an easy task. One had to take pliers in order to manipulate various switches and jumpers (a kind of wire connecting electrically two adjacent places) in order to specify on which kind of computer the card was supposed to work. Then, after plugging it in, one had to install the proper driver before it could work. For user friendliness sake, an alternative approach was proposed and gradually accepted : hardware automatic detection and configuration by the operating system, called “plug-and-play” by Microsoft. Provided the hardware was compatible with such technology, and provided the operating system already included the proper driver, it was now able to detect, configure and install new hardware without user intervention other than plugging the card in the computer. This technology was introduced by other software developers long before Microsoft, and in a neater way (On Windows, you get a popup telling you various nonsense and in the end are generally asked to reboot the computer), but the inclusion of it in Windows 95 still was a big step toward universal acceptance of such technology (leading noticeably to those USB pen that you plug in a socket and can use several seconds later without needing to know what happened in between nowadays).
- Revamped user interface : Windows 95 introduced a button for closing windows (that famous X), gave all graphical controls a 3D look that made it even easier to know what was click-friendly and what wasn’t, and introduced the taskbar, a place where you can find a button-looking item for each visible window, along with its name, making it easier to find one when several programs are running, and one may create some shortcuts to common programs on it. Windows 95 also introduced icons on the desktop, including the Recycle Bin. This is a new way of managing file deletion : the files aren’t really deleted, but instead go to a kind of numeric trash. This prevents accidental loss of data when files are deleted by error, but on the other hand people often get to forget it, leading to a progressive growth of garbage storage space usage which leads eventually to a lack of disk space caused by files that the user wished to get rid of. And then there’s the Start menu, a new compact way to access most system controls. Aside from the obvious advantage of grouping everything in one place, this menu had a major drawback : it made finding programs horrendously slow. If one wants to play Solitaire, one would click Start, then Programs, then Accessories, then Games, then Solitaire. Even worse, there was no notion of recent task (even though Windows 3 did include such a feature), so running an application multiple times implied going through this process multiple times.
Last, on the right of the task bar, there’s a clock and the Notification area. The last one shows several small icons, in order to indicate network connection state, battery level, sound state, or more generally information about what an application that doesn’t need to be showed permanently is doing and quick access to some features.
- Networking : There existed a special edition of Windows 3, called “Windows for Workgroups”, that didn’t targeted consumer market but rather companies with big computers networks. It introduced computer network support and file sharing without needing a centralized server. As the Internet started to become widely available and popular, Windows 95 brought those improvements to the masses, along with easier network configuration, an e-mail client, and the ability to manage networked files the same way as local files. It included some advertising to Microsoft’s own early Internet services, too.
Add up a lot of commercials, and a lot more bugs and crashes than one could find in Windows 3.1, and you get Windows 95 at release time. It was very well perceived, and sold well too, enforcing even more the leadership of Microsoft on the personal computing business.
Okay, so now we’re close to a turning point in Microsoft history. The company had become powerful enough to impose unwanted choices to their customers, since most of them relied now on programs only working on Windows, while most competitors started being out of business. They had an operating system that, while not perfect, was quite mature, needing only work on the security side (user programs still could do anything they wanted to the hardware or the operating system). That work had already be done on the NT family and was just waiting for more powerful computers in the consumer market to be introduced. The rest was about constant hardware support improvement. In one word, it was time to introduce a new focus for the company, the way they did when they went from MS-DOS to Windows.
This focus turned out to be Internet and multimedia (Apple’s last major playground), two emerging and very lucrative computing domains. The Internet went first, probably because it allowed a broader range of applications and needed less far less hardware and software resources, while multimedia silently improved under the hood at the beginning.
To make money from a market, one has to control it. Microsoft tried to achieve this goal by gaining control on the software people use to connect to the internet : the web browser. First, they tried to buy the dominant browser of those times, Netscape Navigator, but that failed. So they bought one of the earliest web browsers, Spyglass Mosaic, and began to work on it.
Understanding quickly that they were late on that market, Microsoft decided to compensate this by using the power of Windows’s market share. Starting with the first Service Release (the ancestor of Service Packs) of Windows 95 in 1996, Internet Explorer (version 2 at the time) became bundled with Windows 95, appearing on the desktop as an icon labeled “Internet” in order to make sure that non-technical people may consider that this is the sole and only way to access the Internet on Windows.
These times are known nowadays as the “first browsers war”. Netscape Communicator and Internet Explorer were struggling, one to keep its leadership on the web and the other to take it. That were sad times for the internet, because standard respect became extremely poor. IE and Netscape used as weapon various non-standard HTML tags, each one more hideous than the other (one may think of the “blink” tag which made text blinking, the “marquee” tag which made it scroll, or the “bgsound” tag which played some music endlessly without any other way to make it silent that turning the speakers off). Web pages became so full of special effects that they were at the same time painful on the eyes and somewhat unreadable by human beings, and most of them only worked on one browser. Since Windows started to include a web page editor called Front Page some times later, guess which web browser took the lead on the compatibility side… With Internet Explorer 3, IE reached feature parity with Netscape, and because of its extremely close link with Windows was able to get leadership on the Internet some times later.
One may ask “What is the link between all that stuff and Windows ?”. The answer lies in Microsoft’s last step to increase market share of IE : prevent people from uninstalling it. This was done by making IE an important part of the operating system, taking control of various basic system functions like file browsing or help displaying. This way, IE became an important part of Windows’s GUI, which Microsoft was going to make use of in court. Starting with the subsequent release of Windows, Windows and IE can’t be considered as being distinct products anymore.
Welcome to Windows 98 ! Including…
- New driver model : As I’ve stated before, Microsoft were planning to merge their Windows and Windows NT product families in the future, as soon as the hardware was capable of it. A step for that was to introduce a new kind of driver, WDM (Windows Driver Model), that worked the same way on both operating systems.
- Several software backported from Windows NT : Using the same logic, system management tools like ScanDisk, Disk Defragmenter, Scanreg, Regedit, and Msconfig, taken from Windows NT, were introduced in Windows 98.
- A DVD player : Not that useful, though, since it required special hardware before displaying anything.
- Advertising : There were more ads for Microsoft partner on the desktop of a fresh install of Windows 98 than useful icons. For real.
Well… I don’t know what else can be said about this one, with its terrible lack of content. So I’ll just mention that a Second Edition, basically about bug-fixing and introducing IE v5, went on market some times later.
Next came Windows Me (Millenium edition). Now, computer had grown quite powerful on the hardware side, so Microsoft introduced several multimedia-oriented technologies, along with improvements on networks management and system management. This release included a lot of changes :
- Windows Movie Maker : Video-recording devices reached masses availability on those days, hence Microsoft wrote a basic video editing software in this release. It was able to import video from a recording software, do some basic editing, put videos sequences together, and export the final result as a Windows-only video format.
- A useful DVD player : Now, one could watch a DVD on Windows without buying any kind of special hardware.
- Networking made fully NT-compatible : The last parts of consumer Windows networking system that weren’t compatible with the latest of NT series (Windows 2000) were converted to the new OS in Windows Me. Full compatibility being reached, any Windows Me driver would work on NT releases, making sure that those releases get support from hardware manufacturer.
- Some focus on security : The system is now able to automatically save system files and settings before modification, so that if something went wrong that saved data may replace the corrupted one (System Restore). Also, unauthorized access to the operating system files on disk is now automatically detected, and the modified file is replaced by a fresh copy taken from a backup on disk (System File Protection). Last, several advanced settings of the control panel are hidden, and folders like C: or C:/Windows require user confirmation to be opened. This is to improve system security again the user’s will, apparently.
- Automatic updates : In order to patch security flaws more quickly, Microsoft introduced a tool which automatically checks Microsoft servers for security.updates once a day on computers connected to the internet, and notifies the user of their existence as needed.
- Several other commodities : Network assistants, mutation of Windows Media Player that becomes more like what we know now, improved power management, ZIP files management, native USB pen support… This release introduced an impressive range of features, knowing that it was made in a bit more than 2 years.
- Pure DOS application compatibility was dropped : Even after all the years since Windows was around, this decision still made several gamers rant, since it made all old games – and even some recent ones – totally unplayable.
- Reputation of being the most bloated and least reliable OS ever conceived : Apparently, implementing all those new features in a 2-year time wasn’t a reasonable idea, however, if you consider reliability testing and the like. Add up to this that malware started to become more common, whereas consumer market Windows still lacked serious protection and app/OS core separation. Even worse, Microsoft gradually introduced themselves major security flaws such as ActiveX controls (ability for any website to run a Windows application on the viewer’s computer) while they tried to get more features.
The UI of Windows Me was identical to that of Windows 98. Despite introducing several interesting features, it essentially attracted criticism from those who tried it out. It was globally reviewed as a half-finished and extremely unreliable release of Windows, and didn’t sold out well. In fact, Microsoft probably didn’t care about that at all, because after all that time, the time of definitive death of DOS and introduction of Windows NT for average people had come.
Just one year after Windows Me, Windows XP was out. It merged together professional-oriented features and superior core from Windows NT on one side and consumer-oriented features from Windows Me and 9x on the other side, in one product that sold like hotcakes, including :
- True application and kernel data isolation : Coming from the NT branch, this neat feature makes sure that applications can’t mess with each other’s data and that they can’t gain direct access to the hardware. This makes Windows XP the first consumer-oriented OS from Microsoft with serious security capabilities.
- Multiple users management : Also coming from the NT branch. One may now create several users for the OS. Those users might have more or less limited capabilities as needed, and they have their own private folder, which other users (except administrators) cannot read, in which any user-specific data (wallpaper used, games saves) are stored..
- Relative hardware independence : NT-related too. All the hardware specific-code is limited to a subset of the kernel and can easily be changed. This allowed Windows XP to be easily ported to 64-bit processors as they came out, for the sake of improved performance.
- Far increased reliability : Windows XP was by far one of the most reliable OSs ever conceived by Microsoft. Complete system crashes (aka Blue Screens of Death or BSODs) that were quite common at the time of Windows 98 and even more with Windows Me became rather the exception than the rule, especially after the introduction of several Service Packs, because applications bugs weren’t capable of doing much harm anymore.
- DOS emulation and general good compatibility : Though not perfect on that side, Windows XP made great efforts to ensure application compatibility with Windows Me, Windows 9x, and DOS. Even some Windows 1 applications can still run flawlessly on it.
- Mature multimedia support : With Windows XP, multimedia features finally reached a perfectly mature state. As an example, there was out-of-the-box excellent support for scanners and cameras. Movie maker became somewhat less laughable. All the power of Windows 9x DirectX multimedia infrastructure was flawlessly introduced to Windows XP. Folders could display little thumbnails of images in order to help managing photos. One could burn data CDs easily since CD burners became a common thing at the time. And so on…
- More networking : The successive releases of Windows XP implemented all newer networking devices and protocols one by one : DSL, Wi-Fi, WEP then WPA encryption protocols…
- Various UI tweaks and stupid default theme : The new start menu now displays frequently used applications and various user folders, the file explorer displays “common tasks” in order to interact quickly with files, big icons makes it easy to target important elements, and other delicate attentions, sadly including even more annoying popup windows filled with garbage than ever… Windows XP also introduced ability for the user to change the appearance of windows and controls using “themes”, a very popular feature. Especially looking at the childish and hard on the eyes theme bundled with Windows XP.
- Bloated task manager : Windows 95 and later featured the Ctl+Alt+Suppr keystroke, used in order to close hanged programs. It displayed a list of opened programs, along with a button to close one, with extreme simplicity and efficiency. However, starting with Windows XP, things won’t go this way anymore. The Task Manager, as it’s called, will allow one to know about CPU usage, memory usage, networking, users logged in, and so forth. When an application is hanged, taking 100% CPU, this application will take minutes to load. Hence the “improvements” make it quite inefficient at closing buggy application, and one has to wonder what else it had to be used for in Microsoft’s engineers mind.
- Definitive failure at making a simple design : Though NT included more interesting feature in its internals than I may describe here (in fact, Microsoft included almost any existing solution for each OS design problem in it), this came with a cost : Windows NT internals are horribly complicated, and have a high footprint on performance and memory usage. Developing for it is a hard task, because there are, say, ten alternative approaches to each problem, with no clue which one is the fastest for a specific purpose..
- Bloated kernel : Somewhat related to the preceding issue. Windows’s NT core includes a lot of abstractions, alternative ways to manage the same task, but also running as privileged applications were hardware drivers. This makes a lot of machine code running as maximum-privilege software, reducing the benefit of kernel data isolation by the hardware (since several unauthorized operations can occur using bugs in this huge mass of computer code), and more generally that the system is prone to failure due to buggy software with high security privileges. This led to poor security in Windows XP, albeit still better than that of preceding consumer-oriented releases of Windows.
- Slower than ever : Windows XP was quite slow at doing everyday tasks like file management or launching applications, close to Windows 98 in that respect despite running on hardware that was four times faster. Microsoft’s plans to reduce boot time to 30s turned out to take the form of showing the desktop a long time before it’s really usable, with the operating system silently continuing to load in the background.
- Product activation : On the early days of computing, one would just buy software, put the diskette or cd-rom in the drive, install it, and use it. However, a new trend dawned by the time of Windows XP : clearly stating that the user wasn’t proprietary anymore of the software he was using. Alongside with several piracy concern, this led to an “activation” process, where the owner of a Windows XP licence had to call microsoft or go on some website, with failure to do so leading to software not functioning after 30 days. This process had to be repeated anytime an important piece of hardware was changed on the PC. This process allowed Microsoft to make sure that a product key of Windows XP wasn’t used multiple times.
(As an aside, it didn’t stop piracy at all, but it made several users angry, like any copy protection measure of this type.)
Windows XP was extremely well perceived, noticeably because of its great reliability and well-implemented multimedia features. Its slowness and somewhat poor security led to some criticism, but globally there was far more supporters than haters. This led Microsoft to give a focus on improving Windows XP’s security, rather than release a new operating system right away, perhaps one of the wisest design decision they ever made.
Still, after more than five years of chaotic development, Microsoft decided to release their new consumer-oriented Windows product, Windows Vista. It focused on improving security and overall look, along with introducing several new technologies that would become the basis of future releases of Windows. It included :
- Instant search boxes everywhere : Since people manipulate ever-increasing amounts of files and data and often get lost in the folder hierarchy, a great amount of work went into the introduction of a new search engine that was integrated anywhere in the GUI and offered instant results, contrary to the old one which would take sometimes half an hour to go through the entire folder hierarchy, and strangely similar to Apple OS X’s “Spotlight” feature.
- Windows Aero : A new visual appearance. Animations everywhere, several random things become translucent, and everything shines. It looks somewhat better, and far more serious than Windows XP, but in various places special effects are overdone, either looking stupid and useless (like the progress bar animations) or reducing usability (like the title bar blurry transparency effect, which makes it difficult to read windows’s title). To get all of this new look, you’ll need modern graphic hardware, and the constant strain put on it means that this operating system is not very power-efficient on laptops.
- Sidebar : Tiny programs on your desktop. Stolen from Apple, except Apple’s version is less intrusive for people like me who don’t feel like having a second clock or useless things like that on their desktops.
- Revamped file explorer : There used to be two different ways to explore files before Windows Vista : opening any folder simply showed its contents with common ways of using it accessible on the left pane, whereas using the “Explorer” option made this pane show instead the folder hierarchy and where one is in it. Both window shared the same basic controls : “previous” and “next” buttons, a “parent folder” button that allowed one to go up one level in the folder hierarchy, and a text box that allowed one to type in the exact position of a folder they know about. Various menu allowed to operate files easily (cut, paste, and so forth).
In Windows Vista, a new, this time unique way to manage files was introduced. The hierarchy is now always shown on the right, along with some customizable “favorite” items. A search box was introduces. Common tasks have been moved to the top of the window. For some reason, the parent folder and the menus have been brutally murdered (though the menus may be restored), along with the “next” and “previous” labels of the corresponding buttons (there’s only arrows now. One has to figure out what they’re used for. Same for finding out how to cut and paste files). The text box for entering the path to a file has been strongly modified : one can now use it to browse folders, in a somewhat complicated way that I recommend you to try out because I won’t be able to explain it here, even using pictures. Sufficient is to say that this improves navigation sometimes, but decreases availability of commonly used folders like “My computer” or “My documents”.
- Revamped start menu : It introduced quick access to commonly used features, like Windows XP but in an improved way. A search box is around, too. However, while the new file explorer lacks text, this start menu lacks icons. Also, the programs view has been made even less usable than that of previous versions of Windows (that showed their limitations facing lots of installed programs, because of the lack of hierarchy), possibly to promote the use of the search box. Even though a search box cannot be used to discover new content, only to retrieve known content quickly.
Last, facing Vista’s poor boot and shutdown performance, Microsoft has made the power button put the computer to sleep instead of turning it off, because resuming from sleep is a quick process. It’s worth nothing to say that this reduces laptops battery life cycle and increases general power consumption of computers in times where power saving is generally preferred over power waste. However, an interesting behavior of this button is that if updates are ready to be installed, its behavior changes totally, leading to the computer really shutting down this time, in a magnificent example of user interface inconsistency.
- Revamped Control Panel : Elements of Windows’s control panel are now shown in an explorer-like windows (that are IE-like windows themselves). Information density has been reduced to the bare minimum, and even basic options like windows color now belongs to the “advanced and shall be hidden” category.
Interestingly enough, the density of information lost in settings themselves went in the control’s panel main page, which became far less clear and simple than it used to be. On Windows XP, already, Microsoft tried to introduce a hierarchy in it, but it wasn’t clear enough and more important wasn’t needed at the time. At the time of Windows Vista, such hierarchy was needed, and they improved it to show what was inside each category, but the lack of icon still hurts while searching information.
- Various UI tweaks : Tthe ability to show previews of minimized windows in the task bar when they are hovered by the mouse, bigger icons (maybe envisioning touch screen usage later) or “Flip 3D” which shows all opened windows in perspective, sadly in an unusable way (finding a windows in this mess proves quickly to be an impossible task). Also, a small progress bar is shown close to storage media icons, making it easier to know how much free space available.
- Even more intrusive Windows Update : Not only does popups from it asking to reboot your computer still come at the worst time, but now you can’t say “shut up” definitely. It warns you that it will come back, and you can only set the amount of time before it will (the maximum being 1h later in Windows Vista if I remember right).
- Bloatware management pushed even further : The extremely poor performance of swapping didn’t manage to prevent applications from getting bigger and bigger, hence Microsoft introduced several technologies to somewhat improve their horrible performance. Those technologies basically made sure that those huge applications would be loaded at boot time (making booting Windows Vista terribly slow) and could use a USB pen to store part of their huge data, in order to get better swapping performance than using a sole hard drive.
- Core security improvements : Several parts of the API (Application Programming Interface, functions of Windows usable by developers) were re-written in order to avoid several common insecure behaviors. This rewrite involved checks for several insecure behaviors that led to globally slowing down the operating system, but really improving security. Several parts of the system were fine-tuned, so that programs that don’t need access to the core capabilities of the system wouldn’t get it, however this still didn’t apply to drivers.
- User account control : A more disputable security improvement attempt. Starting with Windows Vista, Microsoft started to think that always giving the user direct access to administrative functions wasn’t such a good thing, because user programs may abuse this right in order to do much harm. They hence User Account Control (UAC), a technology that only grants the user limited rights and access to private data only for common tasks, asking him to confirm access to core settings and data, as an example while installing programs. While the basic idea is interesting, UAC fails badly its task, because :
- It annoys users, so they just turn it off or always grant rights without thinking about what they’ll be used for
- An unauthorized program can easily display windows that look like UAC prompts, making sure that the user is even more annoyed and will always click “yes” in future prompts.
- Conversely, it’s easy to fake being a legit administrative task on windows. Just faking to be an installer is enough to get administrative rights on Windows. A problem here is the distinction between “user rights” (access to the private folder, launching programs) and “administrative rights” (do basically anything) : to make this feature useful, an additional level of granularity would be needed.
- Various security features : Support for file encryption, ability for IE (and only IE) to run in a “sandbox” where web applications have no access to the operating system except a temporary storage folder, ActiveX disabled by default, a low-end anti-spyware program (Windows Defender) and a low-end firewall (Windows Firewall) are around.
- Parental controls : Some features to make sure that baby won’t go and watch porn or play ultra-violence games (unless he knows computer science better than its parents, which is alas often the case) were introduced in Windows Vista Home editions, to illustrate the focus on familial utilization.
- Multiple editions nonsense : There was only one release of Windows 95/98/Me. Windows XP, like windows 3, was distributed in two editions : “Home” and “Professional”, the latter introducing some advanced security features and geekish things for companies and computer nerds. However, Windows Vista was released in so much editions than one may wonder if at least one of each install discs was bought :
- Ultimate (complete set of Vista features. 600$ price tag. Microsoft must have thought that they were Adobe or something while releasing the complete OS at this price)
- Enterprise (No parental control, no multimedia features, no translucent effects, right to install it on multiple virtual computers, and the special right to install it on as much computers as needed (yes, this is now a privilege. You buy software but still have to buy it again many times if you’ve got multiple computers). However, this edition was only sold to special Microsoft partners.)
- Business (Less company-oriented and geekish features, far cheaper, available for retail)
- Home premium (No company-oriented and geekish features, all multimedia-oriented features, parental controls. Maybe the most widespread release of Windows Vista)
- Home basic (HD compatibility and DVD authoring dropped, along with the sick translucent effects again).
- DRMs and multimedia limitations : Sound cards, that used to be able to save the main processor for doing audio-related calculations, add echo effects, manage MIDI, and so on, are dumbed down by Windows Vista until being only used as an audio and MIDI input/output device. Everything else is managed in software. This is part of Windows Vista’s new focus on preventing users to make use of the multimedia capabilities of their system. It also includes inability to watch HD films in full resolution unless a HDMI-compliant screen (essentially a big TV set without TV management capabilities) is used, software support for limiting copy of some “protected” multimedia files (making sure that people have to buy their music a second time after enduring several computer crashes, or have to buy them a second time in another format before listening to them on portable multimedia players), needing to check the editor’s server on the internet for permission in order to read them (so that when said editor gets out of business, all files become unreadable, a good way to put pressure on customers), and so on.
- Windows DVD maker : Well, everything lies in the title. It’s to Apple’s iDVD what Movie Maker is to iMovie : an imperfect clone.
- Impressive system requirements : Windows XP weighted 1.5GB on disk. Windows Vista, despite introducing mostly software features, weights 15GB. I have no guess of how they managed to take ten times more disk space with what’s above. Apart from that, Windows Vista needs 2 GB of RAM to run properly (four times more than Windows XP) and high-end processors and disk drives to introduce a performance that is comparable to that of Windows XP on common 2004 computers. It took two years of computer improvement after the release of Vista before common, cheap computers, may run it properly.
Perhaps was Vista the most hated OS from Microsoft after Windows Me. Its extremely poor performance, along with the high amount of changes in the user interface that made it hard to use even for long-time Windows users, became the object of most critics. UAC attracted much hate, too. Was also highly criticized Microsoft’s decision to try to abuse its monopoly by forcing people to use its own multimedia API, DirectX, voluntarily reducing the performance of the concurrent OpenGL drawing library on it. Microsoft did change this behavior in future release, though.
At the time of Windows Vista, it was common to see computer vendors continue to sell their products bundled with the much-preferred Windows XP. This behavior made Microsoft angry, so they decided that they would stop selling Windows XP to them, which didn’t work either because those vendors still had lots of Windows XP installation discs around, and offered the users to “upgrade” their new Windows Vista computer to Windows XP, which they often gladly accepted. Then came netbooks, under-powered and low-priced computers designed to be portable and browse the web, on which Windows Vista evidently didn’t work well (if it worked at all). Facing for the first time winning competition from third-party OSs on consumer computers, Microsoft decided to kill it by reintroducing Windows XP on netbooks, while stating clearly that selling it on higher-performance computers was plain illegal.
To sum it up, Windows Vista was Microsoft’s worst failure, even if they always kept denying it until the next release was out. This failure was highly beneficial to customers, on the other hand, since it recalled Microsoft that no matter how big their user base was, and how much it was addicted to Windows through lots of Windows-specific software, it was still able to make Microsoft lose money and deliberately refuse to use their software if they didn’t like it the way it was.
This led Microsoft to be more cautious with the next release of Windows, Windows 7. They didn’t gave up on any idea or technology from Vista, even keeping the highly laughable Flip 3D, but didn’t introduced lots of destabilizing new feature this time, and rather focused on improving performance as much as technically possible and fine-tuning any new concept from Vista. It included :
- Major debugging and optimisation effort : UAC showed less popups. Disk footprint was reduced to around 6 GB and memory footprint to around 512 MB. CPU usage was dropped. Animations were a little bit more quiet. The system boots and shuts down faster than Vista, though a bit slower than Windows XP (but the desktop is available faster). In one word, they made software that used Vista technology while being able to run smoothly on a netbook, and that was somewhat less annoying from an end user perspective.
- Some applications disappeared : Perhaps the first time Microsoft do this. Most Windows Live-related content (Messenger/Calendar/Mail) was moved out of Windows, along with the movie making functions. Those are now only available for download on Windows Live’s website.
- Some advanced options disappeared : In Windows Vista, it was possible to turn off the transparency effects of the windows, in order to see their title better or to push laptop battery life a bit further. In Windows 7, I didn’t get to find that settings window anymore and suspect that it’s gone. Windows 7 also introduced a new way to manage peripherals that’s a lot more user-friendly than the old one, but that feels somewhat incomplete facing its older counterpart. The advanced search windows, along with its interesting options like specifying where to search and the like, is now gone, making using search bars mandatory.
- The Sidebar disappeared : No gray translucent thing on the desktop anymore. However, its gadgets are still around. They just show up directly on the desktop now.
- Focus on touch screens : Windows 7 finishes the work in Vista to introduce proper support for this. By proper support, I mean that one may now easily right-click, scroll in windows, zoom in and out, get an on-screen keyboard, or use some windows features through gestures. In no way were Windows applications display modified to make them touch-friendly, meaning that menus, toolbars, and the like are pretty much unusable because of their small size. Only some special touch-enhanced applications are available. Still Microsoft has time : computers with touch screen still aren’t common or useful enough to make improvements like this the top priority.
- Libraries : Microsoft discovers symbolic linking technology. Libraries are a special kind of folder that only contains links to the files in it. Their link nature is hidden to normal applications, making it possible to interact with those links exactly the same way one interacts with the real file. Such technology allows one to organize its file better, by putting them in more than one place without needing extra disk space. Its worth nothing to point out that this feature has been available in about all other significant OSs for ages, without the need to create a special kind of folder in order to use it.
- Major Taskbar revamp : Made bigger in order to be easier operated on touch screens, the Taskbar now steals several ideas and design principles from Apple OSX’s own taskbar-like application called the Dock (Apple having themselves stolen the taskbar idea from Microsoft, this looks somewhat fair) and introduces some new concepts. First, it’s now application-oriented, meaning that instead of showing one button for each opened window it shows one button for each opened application. Then there’s only few distinction between buttons to launch favorite programs and opened windows, especially since program icons aren’t accompanied by their title anymore : there’s only icons. That’s somewhat bad, because it’s sometimes not that easy to figure out what an icon is about, introducing the need to move the mouse on the icon in order to know more.
When one moves the mouse on top of the icon corresponding to an opened program, a popup appears, allowing one to choose one of the opened windows (this choice being helped by hiding all other windows with a useless glassy effect, see screenshot below). Another improvement, minor at the moment but having some potential, is the introduction of Jump lists : by right-clicking on one program’s icon, one gets access to a list of commonly used options and recently opened files, provided said program is compatible with this feature.
Last but not least. the Notification area has been redone. Windows XP introduced the ability to auto-hide inactive icons, which was a feature somewhere between inefficient and useless, but Windows 7 finally introduces something grand : the ability to prevent them from showing popup balloons endlessly. Basically, if a program keeps annoying you with stupid popups such as “connexion lost, awaiting connexion…” or “is your antivirus up to date ?”, you may now tell it to shut up either definitely, or the time before you’re ready to listen to them. That’s what any long-time Windows user will call really great !
- Various Start menu tweaks : The shut down button now really shuts down the computer, and is labelled as such to advertise this important improvement (though its function may be changed, too). Jump lists of applications are available here too. The search box may now search control panel items.
- Various windows management tweaks : Some windows management can now be done using mouse gestures, by grabbing the windows to one side of the screen. It’s now easier to have two maximized windows side by side : dragging one to the left makes it maximized and taking the left half of the screen, dragging the other to the right make it do the same but on the right side of the screen.
Okay, so now is the time for a global review of Microsoft Windows and for a word of conclusion.
So what can be globally said about Microsoft Windows and remembered as a lesson from the past ?
- Microsoft are sometimes extremely good at keeping compatibility… : This is one of the best explanations to Microsoft’s monopoly nowadays, since it’s one of those things that allow Windows’s application catalog to be so huge. Though, sadly, it’s often the applications that matter (like games or working applications costing hundreds of dollars) that won’t work, lots of Windows 1 applications still run on windows vista 32bit, even though it uses a totally different core. In the same way, core interface concepts like the Taskbar, windows maximize/iconize/close buttons, or file explorer, have gone a long way without significant modification, and still no one would complain about them before Vista and 7 would tweak it.
- …but can’t prevent themselves from introducing new features and re-designing the API… : This is not always a bad thing, since it brought several innovations in the computing world. But overdoing this is dangerous. The Windows NT structure is insanely complicated, because for almost each problem encountered in operating system design it’s made so that it would support many different solutions provided in the past. And that’s just the core. Almost each new releases of Windows, introduces quite a revolution in the development kit, meaning that developers have to get used to a new way of doing things in order to benefit from the new features and to get compatibility. And, as you’d guess, only the latest version is totally supported by Microsoft engineers, though the older GDI, MFC, and the like still remain around. In one word, compatibility + feature-adding frenzy = a mess. From an average user’s point of view, Windows used to be somewhat more stable and less… surprising, but starting with Vista, it looks like those times are over.
- Features aren’t always well-chosen nor well-designed : Who the hell needs Wordpad for anything ? Whatever you may think of, this piece of software sucks at it… Vista’s explorer revamp was globally unwanted and not very well-perceived, whereas one had to wait for Windows 7 to see the cleanup and increase in performance that just everybody was waiting for after the release of Windows XP.
- Early releases introduced a good equilibrium between use of icons and text : This has somewhat been lost starting with Windows Vista, sadly.
- Windows introduced the problem of managing big menus or lists : Just look at the Programs menu length on most computers…
- Windows introduced monopoly abuse, too : And how ! If I was to choose just one example, it would be the “integration” of IE, Media Player, and C#/.NET…
- Windows gets globally too much in the way of the user since W95 : Popups filled with garbage, endless “are you sure you want to do this ?” questioning, lack of system access for the user since windows Me… And let’s not talk about all those Windows Update popup just waiting for you to click “OK” instead of just doing it themselves…
With those last words, we reach the end of this article on Windows, the most widespread OS on desktop computers. Next time, we’ll be introducing a sibling, in the form of Apple desktop computer systems, before and now. Thank you for reading !
A lot of material on the feature side is from EN Wikipedia (various Windows pages).
Screenshots from early releases of Windows and a lot of material from the user point of view comes from http://toastytech.com/guis/
Material on IE comes from http://fr.wikipedia.org/wiki/Internet_Explorer and http://en.wikipedia.org/wiki/Browser_wars, plus some other sites were used to check the “Internet” label of IE’s icons…
Many thanks to Nathan Lineback (maintainer of http://toastytech.com/guis/ ) for taking time to make an extensive review of this article !