A Brief History of PC Operating Systems


Microsoft Windows has evolved considerably since it was first introduced in 1985. As is typical for evolutionary processes, its progress has been uneven and not always in the forward direction (Windows Me comes to mind). Still, despite the occasional misstep and an antitrust suit or two along the way, Windows today is mostly reliable, reasonably easy to use, and completely ubiquitous.

To give you a picture of where we are now, today's typical computer owner has a machine that scarcely 15 years ago would have been near the top of the list of the world's most powerful computers. And while the original PCs were able to fit an operating system, application software, and user data onto a 160KB single-sided floppy disk, a default Windows XP installation occupies approximately 2GB of disk space even before any user data or application software is added. This is a staggering amount of software! In fact, it's more than a typical IBM mainframe computer has, and mainframe software maintenance is a career in itself, requiring months if not years of training.

The fact that it is possible for anyone but a career computer engineer to use, manage, maintain, upgrade and repair a Windows PC is something of a minor miracle , mostly the result of two decades of effort by hardware manufacturers, software vendors and Microsoft to incorporate a lot of that career engineer's knowledge into software thatto a large extentcan take care of itself. Still, there is a lot left for the user to take care ofthat's why you purchased this book.

To get a clearer picture what Windows is now, it's useful to see how it evolved. In this chapter, we'll go through its history and examine its roots, which reach back well before the introduction of the PC as we know it today.

DOS History

A discussion of the different versions of Windows cannot be complete without also talking about DOS. This is because early Windows versions were an add-on or extension to DOS, and actually required DOS to be preinstalled on a system in order to run. Later Windows versions included DOS internally, which was gradually minimized until virtually all of the legacy 16-bit DOS and Windows code was replaced by entirely new 32-bit and 64-bit code in Windows NT, Windows 2000, and later.

Before Windows existed, MS-DOS was the most popular operating system for PCs, and DOS continued to be the most popular OS from 1981 when the PC was introduced until well after 1995 and the appearance of Windows 95. All versions of Windows before Windows 95 actually required MS-DOS to be preinstalled on the system because many of those earlier versions of Windows were more of a DOS graphical user interface extension than a complete standalone operating system. And although Windows 95, 98, and Me were sold as standalone operating systems (no prior DOS required), they actually included MS-DOS and used portions of 16-bit DOS code. Windows 95 included MS-DOS 7.0, Windows 95B and 98 included MS-DOS 7.1, and Windows Me included MS-DOS 8.0.

Windows NT was the first truly standalone fully 32-bit version of Windows that wasn't based on MS-DOS. Because Windows 2000 and XP are the successors of Windows NT, they are also not based on MS-DOS or 16-bit code in any way.

Even though later versions of Windows aren't based on MS-DOS or include 16-bit code in the internal workings, in many ways DOS still plays a role in running certain diagnostic or utility programs, or especially when partitioning and formatting certain types of disks and drives . For example, when you format a floppy disk as a bootable "system" disk in Windows XP by checking the Create an MS-DOS Startup Disk option, Windows XP automatically copies the MS-DOS 8.0 system files to the disk at the completion of the formatting process.

Evolution of DOS

When the IBM PC was announced on August 12, 1981, IBM indicated that three operating systems would be available for their new PC. They were

  • IBM Personal Computer Disk Operating System ($40)

  • Digital Research CP/M-86 ($240)

  • SofTech USCD p-System w/Pascal ($695)

Of those three operating systems, only the IBM Personal Computer Disk Operating System (normally abbreviated as PC DOS, or just DOS) was immediately available. The other two operating systems weren't available until several months later, and were priced significantly higher as well. As you can imagine, due to both availability and price, it was pretty clear that the PC DOS operating system would be the one used by most people on their new PCs.

Although PC DOS was marketed and sold by IBM as an IBM product, most people know that Microsoft actually supplied the core code of PC DOS to IBM in the form of MS-DOS. What many people don't know is that Microsoft first licensed, and then purchased MS-DOS from another company called Seattle Computer Products. One could say that Seattle Computer, Microsoft, and IBM were all intimately involved in the early development and evolution of DOS; however, when you go back far enough, PC DOS owes its existence primarily to one man.

From 1978 through 1980 Tim Paterson worked for a small company called Seattle Computer Products (SCP) developing computer hardware and software products. In June of 1978 Intel introduced the 8086 processor, and shortly thereafter Paterson designed an S-100 bus computer system using the 8086 for SCP. The hardware consisted of three S-100 cards; a CPU card, CPU support card, and a memory card. These cards were designed to be installed in an S-100 chassis, and would then operate together as a complete 8086 computer system.

At that time Microsoft's BASIC-80 (Beginners All-purpose Symbolic Instruction Code for the 8080 processor) was one of the most popular programming languages for microcomputers, so it was only natural to port that language to the new 8086 processor. In May 1979 Paterson spent a week at Microsoft working with a programmer named Bob O'Rear to port Microsoft BASIC-80 to the new SCP 8086 system. The result was Microsoft BASIC-86, one of the first software packages available for the 8086 processor. BASIC-80 and BASIC-86 were unique at the time in that they included a built-in File Allocation Table (FAT) file system originally written by Bill Gates. This meant that they could run standalone; that is, with no operating system or other software required. Both the 8086 computer system and Microsoft BASIC-86 were completed and sold by Seattle Computer starting in November 1979.

While BASIC-86 would run standalone on the new 8086 computer, other languages would require an operating system in order to run. At the time Microsoft had been selling FORTRAN and COBOL for CP/M systems using the Intel 8080 processor, and it wanted to port those operating systems to run in the 8086 like BASIC. Unfortunately that would not be possible without an operating system.

At the time, Digital Research's CP/M (Control Program for Microcomputers) was by far the most popular operating system for microcomputers, and everybody including Microsoft and SCP expected Digital Research to port CP/M over to the new 8086 processor. Unfortunately Digital Research was taking too long, so in April of 1980 Paterson got tired of waiting, and decided to write his own DOS for the 8086, calling it QDOS for Quick and Dirty Operating System. QDOS 0.11 was first released by Seattle Computer Products in August 1980. Paterson continued improving and refining QDOS, which SCP renamed 86-DOS and released in December 1980 as 86-DOS 0.33.

During the summer of 1980 IBM began working on Project Chess, which was the codename for the top-secret IBM PC project. Needing software for its new machine, IBM approached Microsoft to provide BASIC (Beginners All-purpose Symbolic Instruction Code), FORTRAN (FORmula TRANslation), and COBOL (COmmon Business Oriented Language) for the PC. However, before IBM would divulge the details about the secret project, it required that Microsoft sign a very strict non-disclosure agreement. Once the agreement was signed, IBM discussed details about the new system. Original plans apparently called for an 8-bit processor; however, Bill Gates pushed for IBM to use the new 16-bit Intel 8086 instead, which would allow access to up to 1GB of RAM instead of the 64KB limit imposed by 8-bit processors. IBM ended up settling on the Intel 8088, which was essentially a lower-cost version of the 8086 that ran 8086 software.

Then the discussions turned to an operating system. Microsoft knew that BASIC-86 could run standalone on the new system, but Microsoft's other languages were designed to run under Digital Research's CP/M-80 operating system. IBM asked Microsoft if it could provide an OS as well, but that was a major undertaking, and Microsoft knew that Digital Research had already been working on CP/M-86. If DR could provide CP/M-86, then Microsoft could port its languages over and meet the tight IBM deadlines. So Microsoft told IBM to visit Digital Research and talk to them about CP/M-86 for the new PC.

Legend has it that when IBM went to visit Digital Research, Gary Kildall (the author of CP/M and principal of the company) stood them up and was out flying his plane. The truth is that Kildall was more of a programmer than a businessman, and he usually left his wife Dorothy McEwen in charge of any business dealings at DR, and the IBM meeting was no exception. The problem wasn't Kildall's presence so much as it was the restrictive non-disclosure agreement. When IBM presented DR with the same non-disclosure agreement that Microsoft had already signed, McEwen and the DR attorneys thought that the terms of the agreement were too strict and they refused to sign. Without a signed agreement, IBM could not divulge any information about their secret PC, so the deal with DR for CP/M-86 was essentially dead in the water.

At this point Microsoft realized that any delays in IBM finding an operating system for the new PC could give IBM reason to cancel the entire project, and consequently Microsoft's deal to provide the languages. In late September of 1980 Microsoft principals Bill Gates, Paul Allen, Steve Ballmer, and Kay Nishi met and decided that they should take the risk and try to provide not only the languages that IBM wanted for the new PC, but also the operating system as well. The problem was that they didn't have the time or manpower to develop a completely new operating system from scratch along with porting over their languages. Microsoft knew it needed a ready-made 8086 operating system, and from their past dealings with Tim Paterson at Seattle Computer Products, they knew just where to get one.

Microsoft made a call to SCP and quickly licensed 86-DOS for unlimited use by a "secret customer" for a one-time fee of $25,000, and in turn licensed the DOS to IBM for a one-time unlimited use fee of $80,000. Although this made a profit for Microsoft, to IBM this was quite a bargain, and would allow IBM to charge a relatively low fee for the operating system to its customers. In consideration of the low license fee, Microsoft bargained to retain the rights to license the operating system to other manufacturers as well. Microsoft believed it could make MS-DOS the industry standard for all PCs based on the 8086 or 8088 processor, and this type of deal would allow Microsoft to retain control over DOS. IBM and Microsoft signed what would probably become the most important deal in computer history on November 6, 1980.

Paterson continued work on 86-DOS at SCP, while at Microsoft Robert O'Rear took the code from Paterson and began modifying it to work on the prototype PC they had been sent. In April 1981 SCP released 86-DOS 1.0, and the very next month Paterson left SCP and was hired by Microsoft to work full time getting 86-DOS ready for Microsoft's still-secret customer. Although there were suspicions, it wasn't until Paterson arrived for work at Microsoft that he knew for sure the secret customer was IBM. Now at Microsoft, Paterson worked once again with Bob O'Rear, cleaning up the code and fulfilling IBM's demands for quality and features. They worked closely with several people at IBM, including David Bradley who was responsible for writing the ROM BIOS code used in the PC. Paterson and O'Rear finished the core of what IBM would call the Personal Computer DOS (also called PC DOS) 1.0 in July 1980. IBM also wrote several additional utility programs to go with DOS 1.0, including the MODE, COMP, DISKCOMP, and DISKCOPY commands, as well as several demo programs in BASIC.

On July 27, 1981 (just over 2 weeks before the IBM PC and the new DOS would be officially introduced) Microsoft decided it would be best if it closed up any loose ends by purchasing 86-DOS outright from SCP for $50,000, thus giving Microsoft full ownership. One condition of the sale was that SCP could retain a perpetual royalty-free license to MS-DOS for themselves . This license would later result in a legal battle that was eventually settled in 1986, with Microsoft paying SCP another $975,000 to purchase that license back. This meant that Microsoft essentially paid SCP just over $1 million dollars total for full ownership of MS-DOS, a very wise investment when you consider that in June of 1986 Microsoft estimated that half of their $61 million annual revenue came from MS-DOS licensing. MS-DOS licensing eventually turned into a multi-billion dollar cash cow for Microsoft.

The IBM PC and PC DOS 1.0 were officially introduced on August 12, 1981, kicking off a family of personal computers that today we simply call PCs. Meanwhile, Paterson continued working at Microsoft on PC DOS 1.1 (which was called MS-DOS 1.25 by Microsoft). PC DOS 1.1 was released in June 1982 along with double-sided floppy drives for the PC. DOS 1.1 was also the first version licensed by Microsoft to other PC OEMs (Original Equipment Manufacturers) as MS-DOS 1.25. One of the first PC-compatible systems with MS-DOS was the Columbia Dataproducts Computer in July 1982, but many others soon followed.

Microsoft licensed MS-DOS to any OEM who wanted to make a system compatible with IBM, which eventually made Microsoft the largest software company in the world. While Windows is by far the most popular OS for PCs today, it wasn't until Windows 95 came out in 1995 that Windows went from being a loss-leader to becoming a huge hit. You could say that up until the release of Windows 95, MS-DOS paid all the bills.

After finishing PC DOS 1.1 (also known as MS-DOS 1.25) and doing initial planning on PC DOS 2.0, Paterson left Microsoft on April 1, 1982 and went back to work at Seattle Computer Products, while Mark Zbikowski took over the development of DOS at Microsoft. DOS 2.0 was virtually a complete rewrite of DOS and introduced many new features including hard disk support, hierarchical directories, and installable device drivers. Zbikowski also designed the executable ( *.EXE ) file format used in MS-DOS, and used his own initials as the two-byte signature "MZ" (4D5Ah) which can be found at the start of all *.EXE files. IBM wrote and added several utilities of its own including FDISK, TREE, BACKUP/RESTORE, COMP, DISKCOMP, DISKCOPY, MODE, and GRAPHICS, and the final product was eventually released by IBM as PC DOS 2.0 on March 8, 1983.

Paterson eventually left SCP again and went back to work at Microsoft; in fact, he worked for Microsoft at least three times: '81'82, '86'88, and '90'98. Besides his initial work on DOS, Paterson worked on other projects such as Visual Basic and Java. Today Paterson runs his own company called Paterson Technology (www.patersontech.com). In 2001 Paterson gained additional fame as he built the "Hexidecimator" robot, which competed on the BattleBots TV show.

MS-DOS Versus PC DOS

With modern PCs having a very high level of standardization and compatibility, today it is easy to see how Microsoft can market complete packaged operating systems that will install and work unmodified on practically any PC you can purchase or build. Without the standardization and compatibility we have come to depend on, different specific "flavors" of a given operating system would be required for specific different hardware.

That is exactly how things were back in the early '80s when the IBM PC was introduced. Many of the Intel x86 processor based PCs in the early '80s were not fully compatible with the IBM PC, and IBM's PC DOS would not run on those systems right out of the box. If a given system would not run PC DOS, the manufacturer could license MS-DOS from Microsoft and produce a custom version for their computer that would run.

For DOS versions up through 3.1 there were only private-labeled OEM (Original Equipment Manufacturer) versions such as PC DOS, Compaq DOS, Zenith-DOS, and so on. Private labeled DOS names and version numbers could vary, even for releases based on the same set of Microsoft code. For example, the code base that Microsoft internally called MS-DOS 1.25 was called IBM PC DOS 1.1 by IBM, and Columbia DOS 2.0 by Columbia Data Products.

In the early to mid-'80s there were many systems that were partially compatible with the IBM PC, but which also differed from the PC in many ways. For example, the Texas Instruments Professional Computer used an 8088 processor, had the same 5.25-inch 360KB floppy drives as an IBM PC (and could read and write the same 360KB disks); however, it also had a different ROM BIOS, an internally different hardware and software interrupt structure, and a higher resolution graphics processor. Because of the differences in system design, IBM's PC DOS would not boot and run on the TI PC.

As you learned in the previous section, the development of PC DOS was a cooperative project between Microsoft and IBM. Microsoft was responsible for producing the core system code, while IBM helped specify the functionality, did testing, and added several additional utility programs to the system to both enhance functionality as well as to work specifically with IBM's hardware. The development agreement between Microsoft and IBM allowed Microsoft to license the Microsoft-developed portions of the PC DOS product (essentially the core system code) to other OEM's, which Microsoft called MS-DOS. As such, MS-DOS was not a complete (finished) product; rather, it was only a core set of code that could be licensed by a computer manufacturer to run on its systems.

To actually have a finished version of MS-DOS for end users, a given computer manufacturer such as Texas Instruments would have to license the core MS-DOS code from Microsoft, test and if necessary modify that code to work properly on its hardware, write their own versions of any or all of the utility programs that IBM had written for PC DOS (as well as possibly write any additional utilities they wanted), and finally write and print the manuals, copy the disks, and package it all together into a finished retail product. If the manufacturer was Texas Instruments, the finished MS-DOS product might be called Texas Instruments DOS, and would only be guaranteed to run on the Texas Instruments computers for which it was designed.

As an end user, once you had the TI version of MS-DOS running on a TI PC, any program strictly written to interface with MS-DOS would work on the system. Unfortunately many programs at the time were designed to go around the operating system and talk directly to the hardware for certain functions in order to improve performance. For example, the popular Lotus 1-2-3 spreadsheet program accessed the IBM graphics hardware directly and would not work on the TI PC. For Lotus 1-2-3 to run on the TI PC, TI had to work with Lotus to produce a special version of the program rewritten to work with the modified graphics on their system.

Besides TI, many other manufacturers at the time were also producing systems that were not 100% compatible with the IBM PC, and therefore also had to license and then produce custom versions of MS-DOS specifically designed for those systems. Owners of those few systems that were 100% compatible with the IBM PC could simply purchase PC DOS from IBM and run that. For example, I used a Compaq Portable PC for a short time, and although Compaq did produce its own custom version of MS-DOS, I ran IBM's PC DOS instead, and it worked perfectly .

As time progressed, most computer manufacturers realized that producing systems that were 100% compatible with the IBM PC was necessary in order to run all of the software that was becoming available for the IBM PC, which in turn became critical for success in the marketplace . Also, PC components such as motherboards became available, enabling smaller computer dealers or even individuals to build their own systems. Although an individual who built a 100% IBM compatible system could simply go to the IBM dealer and purchase a copy of PC DOS, most of the smaller computer manufacturers (who were really just system builders or assemblers) did not want to bundle IBM DOS with their systems, nor did they have the capability to license MS-DOS from Microsoft, write the additional utilities, or produce the manuals and packaging to create a finished product.

What was needed was a generic but complete shrink-wrapped packaged product that a smaller computer manufacturer or assembler could buy from Microsoft and sell with its computers. To oblige, Microsoft wrote its own versions of the utilities provided by IBM in PC DOS, and in August 1986 released Microsoft MS-DOS 3.2, the first Microsoft labeled "shrink-wrapped" packaged version of DOS for smaller OEMs or system builders. This became known as the Microsoft OEM version. On the box, the labeling stated that it was "For Personal Computers Compatible with IBM Personal Computers." This version was technically not sold retail, but was sold through what became known as the Microsoft OEM System Builder program. In fact, later versions of the packaged MS-DOS product contained the statement "Not for retail sale except with a computer system" right on the box. Microsoft was afraid to sell MS-DOS retail because then it would have to support it on the myriad of different systems out there. Instead Microsoft sold it only to system builders, who were responsible for testing the DOS to work properly on their systems, and then provide any and all necessary support to the end user.

IBM and Microsoft had signed a JDA (Joint Development Agreement) in June of 1985 to collaborate on what was originally called Advanced DOS, but which would later be known as OS/2. Although the JDA was centered around OS/2, it also brought on a major change in DOS development. Starting with DOS 3.3, IBM became the main development center for DOS (both the core and the utilities) while Microsoft focused mainly on OS/2. As a result of the JDA, Microsoft gained the right to redistribute the PC DOS utilities written by IBM. This meant that PC DOS 3.3 and the Microsoft MS-DOS 3.3 OEM packaged product version that followed were now almost identical code, with only a few minor exceptions.

Note that many of the larger computer manufacturers continued to license MS-DOS and produce their own custom versions. For example, after the IBM and Microsoft versions of DOS 3.3 were released, Compaq released Compaq DOS 3.31, which included the implementation of support for larger than 32MiB hard disk partitions that would officially appear in DOS 4.0.

As with 3.3, DOS 4.0 was also initially developed at IBM and subsequently released by Microsoft. There were several bugs in the first release, and by the time the Microsoft OEM packaged version came out it had been updated to version 4.01.

During 1991 the joint development agreement between IBM and Microsoft fell apart, which resulted in IBM taking over full responsibility and development for OS/2, and primary development of DOS 5.0 became Microsoft's responsibility. The MS-DOS 5.0 OEM packaged version was released on June 6, 1991, five days before IBM released PC DOS 5.0. This was somewhat significant as up until DOS 5, PC DOS had always been on the market first, and in some cases with a fairly long lead over the same relative version of MS-DOS. For the first time Microsoft also began selling MS-DOS as a retail product in the form of a lower cost upgrade version.

The growing rift forming between IBM and Microsoft after the dissolution of their joint development agreement caused several different and somewhat confusing releases of DOS 6.x. For example, Microsoft developed MS-DOS 6.0 and released its OEM and upgrade versions first. Rather than merely introducing the same thing later, IBM made some changes and subsequently released PC DOS 6.1, skipping a version number in the process (there was no PC DOS 6.0). Microsoft then developed its next version and also skipped a number, calling it MS-DOS 6.2 to eliminate confusion with the IBM product (there was no MS-DOS 6.1). IBM followed suit and called their subsequent release PC DOS 6.3 (there was no PC DOS 6.2).

The last official standalone MS-DOS release from Microsoft was 6.22, while IBM subsequently released PC DOS 7.0 and finally PC DOS 2000 (7.1). IBM's PC DOS 2000 was the last official release of any standalone version of MS-DOS. Later versions of MS-DOS 7.0, 7.1, and 8.0 came with Windows 95, Windows 98, and Windows Me respectively; however, those DOS versions were never released separately as standalone products.

DOS Versions

Now that I have outlined a history of DOS from a market perspective, let's take a look at the actual nuts and bolts that constituted each version of DOS.

DOS 1.x

PC DOS 1.0 was introduced along with the IBM PC on August 12, 1981, and supported only single-sided 5.25-inch drives. Floppy disks were formatted using 8 sectors per track (one side, 40 tracks) resulting in a capacity of only 160KB when formatted. There was no support for hard disks at all, which were generally quite rare for personal computers at the time. DOS was a text-based operating system, hence there was no graphical interface. Unlike CP/M, 8-bit ASCII characters were supported because the PC came with IBM 8-bit ASCII in ROM. This allowed the use of line drawing and other special characters to draw boxes and such on the screen.

For anyone who used the CP/M (Control Program for Microcomputers) operating system, DOS seemed pretty familiar. The "user interface," consisting of a prompt that indicated the logged drive, was very similar to CP/M. This similarity helped many people, including myself , make the transition from older CP/M systems to PC DOS a painless one.

When DOS 1.0 was introduced, it contained several commands and limited batch-processing facilities. About half of the commands were internally part of DOS, while the disk utilities were external assembly language programs. The commands in DOS at that time were:

CHKDSK

DIR

FORMAT

RENAME

COMP

DISKCOMP

MODE

SYS

COPY

DISKCOPY

PAUSE

TIME

DATE

ERASE

REM

TYPE


DOS also came with interpretive BASIC, a text editor called EDLIN, a LINKer, a DEBUGger, and a series of BASIC programs. All of these programs were sold on one single-sided floppy diskette.

People immediately noticed that the IBM-PC and PC DOS could handle only single-sided diskettes. This was seen as a disadvantage at the time, and was an indication of the conservative nature of IBM. But everybody knew that a version supporting double-sided drives was coming. In reality very few PCs ended up being sold with DOS 1.0 as the PC was in pretty short supply for the first few months of its existence. It was really not until the early part of 1982 that just anybody could get one, and by then DOS 1.1 was available.

PC DOS 1.1 was introduced in May 1982. It was called 1.25 internally by Microsoft, and was later released by a number of OEMs under a variety of names and version numbers. DOS 1.1 supported double-sided drives with 8 sectors per track, resulting in a formatted capacity of 320KB. PC DOS 1.1 used 12KB of RAM, and was the last DOS written by Tim Paterson, based on the original Seattle Computer Products 86-DOS.

The major difference between DOS 1.0 and 1.1 is that the latter can operate double-sided drives. All of the external, and most of the internal commands, were rewritten to accommodate double-sided drives. There was still no support for hard disks explicitly, but several manufacturers supplied kits with software patches to DOS that allowed a large disk to be used. Actually many different companies offering expansion products for the PC emerged at this time, and many of these products came with software that patched DOS directly. I remember being concerned about this because the compatibility problems were enormous . I was getting the feeling that PC DOS was to go the route of Apple DOS at the time in that it would become so patched and hacked up by the aftermarket as to cease to be any kind of standard. Anyone who remembers the old Apple DOS for the Apple II series can tell you the problems with this methodology. Fortunately IBM and Microsoft came to the rescue with a new version (DOS 2.0) that was so changed and improved that it brought all of this patching to an abrupt halt. There was no need to patch it if it could already do what you wanted, or be easily adapted with extensions rather than patches.

DOS 2.x

PC DOS 2.0 was introduced on March 8, 1983 (along with the IBM PC XT), and was virtually a complete rewrite over the previous versions. DOS 2.0 added many new features and functions (mostly derived from UNIX), including a tree-structured (hierarchical) file system, support for hard disk drives up to 16.76MB (15.98 MiB) using FAT12, 5.25-inch 9-sector per track floppy formats resulting in 180KB/360KB for single/double sided drives, I/O redirection and piping, and background printing. Many new commands were added as well. PC DOS 2.0 used 24KB of RAM.

In achieving its objectives Microsoft tripled the size of DOS, and added 17 new commands. The major feature of DOS 2.0 was support for the use of a hard disk and a hierarchical file structure in order to support the new IBM PC-XT, which included a 10MB hard disk as a standard feature.

DOS 2.0 also increased the storage capacity of single-sided floppies from 160KB to 180KB, and double-sided floppies from 320KB to 360KB. This was achieved by increasing the number of sectors on each track of the disk from 8 sectors to 9. DOS 2.0 could also read and write any of the older formats, ensuring backwards compatibility.

Another major feature of DOS 2.0 was support for device drivers. This meant that there was a provision for new software routines that supported various hardware and software to be installed into DOS directly. I like to think of this as software "slots" for adding components to DOS, without patching DOS directly.

IBM introduced PC DOS 2.1 on November 1, 1983 (along with the IBM PCjr). It added no new commands or functions, but fixed bugs and altered timing parameters for the half-height floppy drives used in the PCjr and IBM Portable PC. PC DOS 2.1 used 24KB of RAM, same as the previous version. For the most part, DOS 2.1 was considered a maintenance release from 2.0, with no new functionality added.

DOS 3.x

PC DOS 3.0 and 3.1 were both introduced on August 14, 1984 (along with the 286 processor based IBM PC AT). Although both were introduced at the same time, only version 3.0 was available immediately while version 3.1 became available a few months later, in October 1984.

DOS 3.0 was basically an unfinished version of 3.1, designed to get the necessary support in place for the PC AT. DOS 3.0 added support for a virtual disk (VDISK) using memory greater than 1MB, and added FAT16 support for hard drives supporting a single partition of up to 32 MiB (33.55 MB). DOS 2.x and earlier only supported FAT12, even on hard disks. Support was also added for high-density 1.2MB 5.25-inch floppy drives using 15 sectors per track. PC DOS 3.0 used 36KB of RAM.

PC DOS 3.1 was introduced on August 14, 1984 (same as 3.0), but wasn't made available to the public until October 1984. Because 3.0 was really an unfinished 3.1, IBM offered the first DOS upgrade (from 3.0 to 3.1) for $30. International keyboard support was added to 3.1, but the main additions were network printer and file redirection as well as file sharing support. This was designed to support the new IBM PC Network hardware and software that was also released at the same time. PC DOS 3.1 used 36KB of RAM.

PC DOS 3.2 was released on March 18, 1986 (along with the Token Ring Network interconnect program). DOS 3.2 supported the Token Ring Network, and added support for 3.5-inch double-density (720KB) floppy drives. The first 3.5-inch drives for PCs were coming in the PC Convertible, also the first IBM laptop computer (which was introduced less than a month later on April 2, 1986). DOS 3.2 also added the XCOPY and REPLACE commands. PC DOS 3.2 was the first DOS available on both 3.5-inch and 5.25-inch diskettes, and used 44KB of RAM.

After the release of PC DOS 3.2, Microsoft made the first non-specific OEM (generic) packaged version of MS-DOS available. The packaged version of MS-DOS 3.2 was designed for smaller system builders who did not have the ability to produce a finished product from the raw code supplied with the large-scale OEM licenses. As such, the OEM-packaged MS-DOS 3.2 was essentially the first release of MS-DOS available in Microsoft packaging from MS directly. This was also the beginning of Microsoft's OEM program for small system builders, and OEM versions of its software were only sold to OEMs, who then could only resell the software with a system.

Both IBM and Microsoft issued a minor release update to DOS 3.2 called 3.21. This new version was available free of charge if you had 3.2, and corrected problems with BASIC and the keyboard of the IBM Convertible PC, as well as some other minor bugs.

PC DOS 3.3 was released on April 2, 1987, along with IBM's line of PS/2 systems, more than a year after DOS 3.2. DOS 3.3 introduced the extended partition, which could internally support up to 23 sub-partitions (logical drives) of up to 32 MiB (33.55 MB) each. Combined with the primary partition on a disk, this allowed for a total of 24 partitions of up to 32 MiB each, which would be seen by the operating system as logical drives C through Z. Support was also added for 1.44MB high-density 3.5-inch floppy drives.

DOS 3.3 also added support for nested batch file commands (using the new CALL command), and the DATE and TIME commands would finally update the CMOS RTC chip directly. Foreign language support was enhanced with support for Code Pages (alternate international character sets), and the FASTOPEN and APPEND commands were added as well. 128KB of RAM was advertised as the minimum memory required for DOS 3.3.

DOS 4.x

In order to take full advantage of FAT16 and allow for much larger drives and partition sizes, Microsoft collaborated with Compaq, and Compaq introduced Compaq DOS 3.31 in November 1987. Compaq DOS 3.31 was the first DOS to use 32-bit sector addressing internally and in the BPB (BIOS Parameter Block), which when combined with the 16-bit File Allocation Table (FAT16) file system, allowed for a single partition to be supported up to 2GiB in size.

The rest of the PC world followed suit on July 19, 1988, when IBM and Microsoft released PC/MS-DOS 4.0. The use of 32-bit sector addressing meant that FAT16 could now handle partition sizes up to 2 GiB (2.15GB) using 64 sectors per cluster. DOS 4.0 also added support for Lotus, Intel, Microsoft (LIM) Expanded Memory Support (EMS), as well as an optional graphical user interface shell. The MEM command was added. 256KB of RAM was advertised as the minimum memory required for DOS 4.0.

After the initial 4.0 release, IBM followed up with six sets of CSDs (Corrective Service Diskettes), each of them reporting 4.01 as the version. MS followed the IBM CSDs with some (but not all) of the 4.01 corrections and enhancements in the following MS-DOS 4.01 release.

DOS 5.x

After switching initial DOS development back to Microsoft, MS-DOS 5.0 was introduced by Microsoft on June 6, 1991, and PC DOS 5.0 was introduced by IBM on June 11, 1991.

MS-DOS 5.0 was a significant release in that for the first time Microsoft was feeling some competitive heat from Digital Research Corporation, which sold an alternative operating system called DR-DOS. Microsoft was compelled to add several additional useful features to MS-DOS 5.0, including a full-screen editor, significantly improved memory management, and an improved BASIC language interpreter.

By this point, too, it could be assumed that most PCs had an Intel 80286 or better processor, so DOS could take advantage of this processor's ability to "map" extended memory into unused parts of the upper 384KB address range visible to DOS. These memory segments were called upper memory blocks . In addition, programmers had by now figured out how to use a programming trick to gain access to the first 64KB of extended memory (called the high memory block ) from real mode without using the mapping features. These two techniques let MS-DOS locate parts of itself, device drivers and "terminate and stay resident" accessory programs outside the lower 640KB address range, leaving more of the precious lower 640KB memory range available to application programs. MS-DOS 5.0 thus introduced the DOS=HIGH,UMB configuration option and the loadhigh command.

Many commands were added, including: HELP (online help), DOSKEY, SMARTDRV (disk cache), EDIT (full-screen editor), EXPAND (file extractor), FC (file compare), LOADHIGH/DEVICEHIGH (load resident programs or drivers into UMBsUpper Memory Blocks), MIRROR (backup FAT and directory structures for later UNDELETE or UNFORMAT), QBASIC (a version of BASIC that works on all IBM and IBM-compatible hardware, without the requirement of an IBM ROM as with BASICA), RAMDRIVE ( replaces VDISK), SETVER (report different DOS versions to "fool" older programs that check versions before running), UNDELETE (undelete files), and UNFORMAT (unformat disks/partitions). A full-screen editor called EDIT was added to DOS 5.0 in addition to the EDLIN line editor.

DOS 5.0 also added support for 2.88MB ED 3.5-inch floppies, and the FORMAT command used the media sense capability present in most 3.5-inch drives to automatically format 720KB, 1.44MB, or 2.88MB media to the correct capacity. 512KB of RAM was listed as the minimum memory requirement for DOS 5.0.

On November 11, 1991, Microsoft released DOS 5.0a to address data-corrupting bugs in the original DOS 5 CHKDSK and UNDELETE commands. IBM on the other hand was much more diligent in finding and reporting bugs, and released five sets of CSDs (Corrective Service Diskettes) and two sets of IFDs (Interim Fix Diskettes) between July 1991 and September 1992, fixing not only the CHKDSK and UNDELETE problems, but more than 50 other individual problems in DOS 5.

PC DOS 5.00.1 was introduced on April 28, 1992, and is the first IBM version specifically supported on non-IBM hardware (although previous versions ran on all PC-compatible systems). One change was that QBASIC was now included, which no longer depended on the ROM BASIC as with previous DOS versions.

Version 5.00.1 also added refreshed code that included the latest CSD fixes, as well as a new SETUP module that installed over all IBM and IBM-compatible PC/MS-DOS Versions 2.1 and higher, and even across a LAN.

PC DOS 5.02 was introduced on October 20, 1992. It incorporated all of the previous DOS 5 fixes, as well as added APM (Advanced Power Management) support for laptops via the new POWER command. Also added were the INTERLNK and INTERSVR commands supporting file transfer between systems over a parallel or serial cable. Version 5.02 also added support for electrically ejectable/ lockable drives and ISO screen fonts. IBM also released various retail bundles with 386Max & Stacker using the 5.00.1 package.

MS-DOS 6.x

Microsoft introduced MS-DOS 6.0 (codename Astro) on March 30, 1993. Again, in response to competitive pressure, Microsoft copied disk data compression technology created by Stac Corporation as the new DoubleSpace feature.

How DoubleSpace Worked

Essentially, the physical hard drive was given a high drive letter; G, for example. The compression driver created a "virtual" C: drive, and intercepted all activity directed at drive C. Data that applications wrote to files on drive C was compressed, and the compressed files were stored on the actual drive G. Likewise, when an application program attempted to read from drive C, the compression software would open the actual file on the physical drive G, uncompress the data as needed, and give it to the application program.


Microsoft introduced MS-DOS 6.2 (codenamed Elroy) in November 1993. It included bug fixes to the DoubleSpace (Stacker) disk compression as well as upgrades to the SCANDISK, DISKCOPY, and Smartdrive (disk cache) programs.

Later it was ruled that Microsoft illegally used the Stac Electronics Stacker disk compression, which they were forced to remove in a 6.21 release. Finally in 1994 Microsoft released MS-DOS 6.22, with disk compression added back in, but using different (noninfringing code) and renamed as DriveSpace. 6.22 was the last standalone version of MS-DOS released by Microsoft.

PC DOS 6.x

IBM introduced PC DOS 6.1 on June 19, 1993 as its version of MS-DOS 6.0, but with some improvements. IBM skipped the 6.0 release number to avoid confusion with Microsoft's 6.0 release, and to indicate to the public that IBM's version included more.

PC DOS Version 6.1 included a library of integrated DOS utilities from other software vendors and IBM Research. The utilities included the following:

  • Disk compression (licensed from Stac Electronics)

  • Antivirus

  • Full-screen backup

  • New full-screen editor (called "E")

  • Program scheduler

DOS 6.1 also included support for Pen-based systems as well as PCMCIA (PC Card) slots in laptop systems, plus an automatic memory configuration program called RAMBoost.

IBM then released PC DOS 6.3 on April 27, 1994, and included the MSCDEX program for CD-ROM support, plus many minor updates to the various utility programs.

IBM continued to improve DOS, and released PC DOS 7.0. This was followed by PC DOS 2000, which was really 7.0 with updates added to fix certain Y2K issues. PC DOS 2000 was the last standalone version of DOS ever released, and can still be purchased from IBM today.

Windows 9x/Me DOS

Windows 95, 98, and Me all include subsets of MS-DOS as their base, and those versions offer enhancements over the standalone releases from both Microsoft and IBM.

The DOS included with Windows 95 is internally coded as MS-DOS 7.0, and includes support for long filenames. MS-DOS 7.1 was included with Windows 95B (OEM Service Release 2), Windows 98, and Windows 98SE (Second Edition), which added support for FAT32. Windows Me included MS-DOS 8.0, which had some bug fixes for supporting larger drives.

MS-DOS Alternatives

We mentioned earlier that IBM and several other PC manufacturers all sold customized versions of Microsoft's MS-DOS, and that there was a competitor called DR-DOS.

Gary Kildall, whom we left several pages ago spurning IBM's offer to create the operating system for the PC, went on to finish his 16-bit operating system, called CP/M-86. Kildall sued IBM and Microsoft for copying CP/M, and eventually reached a settlement whereby IBM agreed to offer CP/M-86 in addition to PC-DOS. And IBM did offer CP/M-86, for $240 a copy, versus $40 for PC-DOS. It didn't sell well.

By 1987, Kildall had abandoned the idea of promoting CP/M in the 16-bit world. Killdall's company Digital Research eventually produced an MS-DOS clone called DR-DOS, which never, as they say, made the big bucks, but did force Microsoft to significantly lower its prices and make enhancements to MS-DOS that otherwise might never have been made. Anyone who's used edit to edit a text file has Digital Research to thank. Digital Research also produced GEM, a graphical operating system that predated and competed with Windowsmore on that shortly. DR-DOS ultimately did not survive, although various legal battles continued. In 2000, Microsoft paid Digital Research's successor company a reputed $150$200 million to settle suits over the licensing and marketing practices that drove DR-DOS under.

Besides DR-DOS, other operating systems came and went, or came and stayed, including these more popular ones:

  • OS/2 IBM and Microsoft initially collaborated to create OS/2, a 32-bit protected-mode advanced operating system that was intended to eventually replace DOS. Later versions sported a user interface that served as the inspiration for Windows 95. It was incredibly reliable and seemed to be the future of PC operating systems, but in 1991 Microsoft and IBM parted ways. Microsoft went on to develop Windows NT, which begat Windows 2000 and XP (more on that in the next section). IBM doggedly tried keep OS/2 alive and didn't give up until mid-2005. It eventually found a niche as a network server operating system and as a host for industrial control systems. You may never have seen a computer running it, but you've probably been in buildings whose air conditioning systems were controlled by it. It's sad reallyhad the Microsoft/IBM partnership survived, we'd all be using OS/2 today, and we would probably have had Windows XP's reliability 10 years earlier.

  • Novell NetWare Novell Corporation's NetWare operating system is a platform for file and print servers used in corporate environments. It reigned supreme in this market for many years, was exceedingly reliable and fast, and it commanded a premium price until it was displaced by Microsoft Windows NT, which significantly undercut it in price, while never matching NetWare's reliability or performance. It's still widely used in large corporate environments, primarily for its excellent directory system, and is the competitive target at which Microsoft's Active Directory is aimed. Novell is now moving its corporate network service software away from the proprietary operating system and into Linux.

  • Banyan Vines Vines was another high-end network server operating system. It had user directory features that were advanced for its time, but it eventually lost its market share to Novell and withered on the (sorry for this) vine.

  • UNIX Many versions of the UNIX operating system were developed for the PC architecture. UNIX was originally created as a "programmer's workbench" by computer scientists at AT&T's Bell Laboratories, and was given away free to universities during the 1970s and 1980s. The result was a generation of programmers (including your author) who were trained in this elegant but somewhat cryptic environment. PC flavors of UNIX include AT&T licensees Xenix and SCO UNIX, and clones XINU, NetBSD, FreeBSD, Linux, and several others.

  • Pick Pick was a database system that in some cases was packaged as a standalone operating system. It was one of the earliest multiuser systems for the PC architecture.

Other operating systems were developed, including a multiuser dBASE-like system that I remember seeing once, but they've faded to total obscurity.




Upgrading and Repairing Microsoft Windows
Upgrading and Repairing Microsoft Windows (2nd Edition)
ISBN: 0789736950
EAN: 2147483647
Year: 2005
Pages: 128

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net