Disk Operating Systems
A Brief History
A DOS (Disk Operating System) is a computer operating system that is installed to a disk and provides services to users and/or other software to enable the use of disks (HDD, FDD, ODD). DOSs have filesystems and they typically feature utilities for common tasks. Many DOSs also have a text oriented shell environment. To really get a sense of DOS history, we need to go further back than the IBM PC with which DOS is typically associated. MS-DOS and PC-DOS were not the first disk operating systems, and to get a sense of why MS-DOS came to dominate the market for operating systems in the 1980s and early 1990s, we need to see what that market looked like more generally as well.
In 1961, Burroughs started shipping a DOS called MCP on some of their computers. This started first with the B5000, which most often used a Teletype Corporate Model 33 ASR or KSR as the user’s terminal. Additionally, many companies often had a spare on hand as the teletype wasn’t rated to be in continuous use for more than a few hours. In promotional materials, Burroughs shows a typewriter being used, but this actually wasn’t common. The teletype or typewriter would sit on a large piece of furniture called the Console Control Panel.
The Master Control Program was a DOS, and unlike many other DOSs, it was written in a high level language (ESPOL). This was also the first OS to feature virtual memory. It is important to note that MCP did not remain a humble DOS, and the latest release of MCP is version 20 from May of 2021 (as of this writing). This makes MCP the oldest actively developed operating system ever at 61 years as far as I can tell.
The General Electric Comprehensive Operating Supervisor (GECOS) released in 1965 for the GE-600 series of computers.
This system was reportedly very similar to IBSYS in its earliest versions, and then grew overtime to exceed what we would normally think of as a DOS.
In September of 1964, the Seymour Cray designed CDC 6600 was released. This machine was capable of 3 megaFLOPS making it the fastest computer on Earth from 1964 to 1969 and in the minds of many people this machine is the first supercomputer. On the CDC 6600, the main means of computer control were by the two cathode ray tubes and keyboard.
This amazing machine had many interesting features, but most aren’t on topic for us. The main thing to know for the history of DOSs was that this thing ran the Chippewa Operating System. This was essentially a batch job execution controller. It could display what was running, what was scheduled, and modify a list of jobs to be run among other general computing tasks. As this system did enable access to disks, and featured a filesystem, COS qualifies as a DOS as well.
In 1965, Big Blue released BOS/360 for smaller IBM System/360 computers. Despite that this system was intended for rather small machines, it does have a decent amount of capability. Job control, program loading, assemblers, compilers, copying data between different devices and formats, and more.
It is the DOS shell with which we all interacted, and it is that with which most of our memories of DOS are associated. Thing is, the first Disk Operating Systems didn’t have shells in the sense we would imagine. These computers were still slowly migrating away from punched paper tape and punched cards to magnetic tape and disks. Output was still commonly sent to printers even on machines that had CRTs for real time system monitoring. The limited interfaces these systems had would be more like batch process editors and program launchers but not a true shell.
The concept of a command line shell was thought of by Louis Pouzin during the design of CTSS at MIT in 1963/64. He then wrote RUNCOM which was a sophisticated batch processor (essentially) that worked with files. The impact of this shouldn’t be ignored. Brian Kernighan and Dennis Ritchie reference RUNCOM as the origin of rc on UNIX.
The actual first implementation of the command line shell as he described it was accomplished by Glenda Schroeder at MIT Computation Center. She wrote the shell for Multics which then was the predecessor to the UNIX shell.
DIGITAL EQUIPMENT CORPORATION
Competing against earlier mainframes and minicomputers, but with a newer era of disk based systems and the command line shell dawning, came Digital Equipment Corporation. Starting in 1970, BATCH-11/DOS-11 from Digital Equipment was made available for PDP-11 computers. This system had a monitor, editor, FORTRAN, a library manager, a linker, a debugger, an assembler, and file utilities.
Also in 1970, DEC released TOPS-10 for the DECsystem-10. TOPS-10 was likely the single biggest influence for later DOS systems. Many of the syntax features of TOPS-10 were intentionally copied into DOS. Additionally, for computers mentioned here, it had the largest set of languages, tools, and programs. This is most likely due to being present in many universities during the 70s and early 80s, and it is on these systems that the ARPANET was built. Nearly all computing professionals of the time would be at least somewhat familiar with the DECsystem-10 and TOPS-10.
GARY KILDALL AND DIGITAL RESEARCH
Dr. Gary Kildall was a Seattle native, and attended the University of Washington. While there he earned his Doctorate and took a position at the Naval Postgraduate School in Monterey California. This put him proximity to Silicon Valley and news of events there. When Intel released the 4004, Gary obtained one. Later with 8008, Gary was in position to obtain one and then proceed to write the first high level language for microprocessors, PL/M, in 1973. This language was bought, further developed, and heavily promoted by Intel. In 1974, Dr. Kildall founded Digital Research, and developed CP/M (Control Program for Microcomputers). The initial target for this was the Intel Intellec-8 with a Shugart 8” floppy drive. The system was naturally written in PL/M on DECsystem-10 running TOPS-10.
CP/M is the origin of what we think of as DOS today (but more on that specific bit later). On the Intellec-8, Gary Kildall created (roughly) the next 20 years of human-computer interaction. From ‘74 until the release of Windows 95, CP/M and its clones would rule the microcomputer operating system market. Even on systems where the machine booted to BASIC, CP/M was often available and quite common. This became especially true once VisiCalc was released for CP/M.
We do not have a perfect record of CP/M versions, but I can say with some certainty that IMSAI licensed CP/M 1.2 in ‘75 for the IMSAI 8080. This was developed into IMDOS. They did the same with CP/M 1.3 the following year in 1976. From what I can tell MITS also licensed one of these very early versions. There was a version 1.4 and code for it is available but I wasn’t able to get a sense of how widespread (or not) version 1.4 was. CP/M 2.2 was the true large success. From what I can find, this would have been in 78 or 79. This version became the first industry standard operating system for microcomputers. CP/M was ported to over 3000 different computers and sold well over a quarter million copies (that’s additional to whatever the sales were with the system pre-installed). This is a somewhat important metric of success given how many home micros were on the market without CP/M pre-installed. It was exceedingly common for home micros to ship only with BASIC in ROM (usually Microsoft’s BASIC), and some computers would ship with proprietary operating systems made by the computer manufacturer. For those machines, an owner could most often purchase a copy of CP/M. For example, the Apple II had the z80 SoftCard available for it from Microsoft. There were versions for the Osborne 1, the MSX computers, the Amstrad PCW and CPC, the Commodore 128, the TRS-80, and the ZX Spectrum.
The final 8-bit version of CP/M was version 3 (as far as I can tell), and this was branded as CP/M Plus. This version featured bank-switching memory management allowing CP/M to access more than 64k memory on an 8080 or z80 CPU.
THE IBM PC & PC-DOS/MS-DOS
In 1980, Project Chess was underway at IBM to develop a home microcomputer. By the middle of that year, IBM was shopping for an operating system to ship with their computer. They approached Digital Research, but Dr. Kildall and the suits couldn’t reach an agreement to satisfy both parties fully. At this point, Microsoft was asked to produce something.
A bit earlier, Tim Paterson at Seattle Computer Products had developed a reverse engineered CP/M for 8086 S-100 bus microcomputers, DOS-86. Microsoft purchased this system, ported it to the IBM PC, and then they offered it to IBM as PC-DOS.
When Gary Kildall heard about this, he threatened IBM with legal action. At this point, a deal between the two companies was reached. IBM would make available to the market a PC running CP/M-86. Late in 1981, CP/M-86 was available, but at this point it was too late, and it was priced higher than the PC-DOS counterparts. It failed to capture any significant market share, and Digital Research started quickly losing market share to a clone of its own product. Ironically, the same fate would befall IBM later on with the PC losing ground to PC clones.
MS-DOS and PC-DOS were effectively the same product throughout their product histories with the exception of MS-DOS 4 which was not well received and IBM declined. The two products parted ways for good in 1993 when PC-DOS 6.1 was released by IBM with added features. PC-DOS then made another 4 independent releases: PC-DOS 6.3 in late ‘93, PC-DOS 7 in ‘95, PC-DOS 2000 in ‘98, PC-DOS 7.1 in ’99 through ‘03.
On August the 10th of 1983, Paul Allen of Microsoft called up Tim Paterson, the original author of 86-DOS previously mentioned, and asked him to port MS-DOS to the 8-bit MSX computers. Paterson agreed to do it for $100K and a royalty free license for MS-DOS. Paterson had already gained skills in both CPUs as he’d written a Z80 to 8086 assembly language converter, so going the other direction wasn’t really a difficult task for him. As MS-DOS was originally a clone of CP/M the conversion of MS-DOS from 16-bit to 8-bit should mean that CP/M programs would run without modification on MSX-DOS… this was, in fact, the case. The main change here was the same one made for MS-DOS originally. MS-DOS used a standardized filesystem (originally FAT-12) across all machines. This ameliorated one major problem that existed with CP/M where each machine had an incompatible disk format to the next. MSX machines inherited this new standardized format of FAT, and could then read and write MS-DOS floppy disks. The first version of MSX-DOS was delivered to ASCII in Japan on April the 23rd of 1984. It was semi-compatible with MS-DOS and could run popular CP/M software like WordStar without error.
Dr. Gary Kildall and his Digital Research Inc didn’t sit idle through the 80s. CP/M had continued to be developed. Multitasking and multiuser versions had been made, and those saw release for 16-bit machines as well. Despite being more sophisticated operating systems, these failed to gain market share against the IBM/Microsoft behemoth. As a result, DRI chose to make CP/M-86 fully compatible with PC-DOS/MS-DOS. Thus, in March of 1984, Concurrent DOS 3.1 was shipped. This would evolve and rename into Multiuser DOS and REAL/32. Neither of these did too well. Still, DRI persisted in their competition. DOS Plus was a short lived stripped-down and cheaper Concurrent DOS. It was still able to multitask (just as CP/M-86 originally could), and it could run applications intended for CP/M-86 or MS-DOS.
Addressing problems in MS-DOS directly, and in response to requests by some OEMs, DRI released DR-DOS on the 28th of May in 1988. The first version was 3.3 to respond to the versions from IBM and Microsoft. This initial version actually did fairly well since neither MS-DOS nor PC-DOS were sold at retail at that time.
Microsoft released MS-DOS 4 in 1986, which was unpopular for a variety of reasons, and DR-DOS responded with version 5. This version of DR-DOS allowed the kernel, shell, device drivers, and TSRs to be loaded high (above 640k) allowing more free conventional memory for user applications. It could also map video memory as regular system memory. MS-DOS responded with their version 5 in 1991 which copied may features from DR-DOS. DR-DOS released version 6 around the same time. There was just one problem. Microsoft intentionally broke DR-DOS’s ability to run Windows. If Windows weren’t run on MS-DOS/PC-DOS it would crash. This was put into Windows 3.1 very early, and was present in a beta release. This incompatibility was accomplished with the AARD code. This was XOR-encrypted, self-modifying, heavily obfuscated code that was used in undocumented parts of DOS upon which Windows 3.1 relied within its installer and installed executables.
In the July 17th issue of the New York Times, Novell’s intent to purchase Digital Research was made known to the wider public. The NYT reported the DRI had about 10% of the operating system market with revenues of $40 million USD.
Novell’s NetWare PalmDOS, which was a light-weight DR-DOS 6 derivative, released in 1992. DR-DOS 7 was released as Novell DOS 7 in 1993. Novell DOS 7 did feature quite a few improvements and innovations, but ultimately this wasn’t enough. Betas of Windows 95 were out in the wild, and Novell decided to sell.
Caldera bought DR-DOS from Novell on the 23rd of July in 1996. Caldera then proceeded to attack Microsoft legally due to their anticompetitive business practices.
In 1999, Caldera split into two companies with one of those halves, Lineo, continuing DR-DOS. Lineo eventually sold to DeviceLogistics in 2002. There were some advancements as well as new versions, and then some of the former Lineo managers purchased the name DR-DOS and created a new company called DRDOS Inc. Development continued until July 21st of 2011. The last versions were DR-DOS 8.1 and EDR-DOS 7.01.08 WIP 2011. From Lineo forward it would appear that Udo Kuhnt was the lead developer/manager.
By 1994, Microsoft had made it clear that they weren’t going to continue DOS development. This upset many people, and one of those people was Jim Hall. It upset Jim so much, in fact, that he has now been working on FreeDOS for 28 years. This makes him the single longest DOS developer in history… longer than Dr. Kildall, longer than Tim Paterson, longer than Udo Kuhnt.
FreeDOS is a free and open source clone of MS-DOS (and therefore PC-DOS, CP/M and DR-DOS as well) that targets 16-bit and 32-bit IBM compatible computers. It has a lot of additional software included in the default installer, and it has many enhancements over MS-DOS. It is still in active development with the latest release being version 1.3. FreeDOS history is available as a timeline. FreeDOS has been preinstalled on commercially available computers. Additionally, it has seen use in embedded computers, BIOS update disks, driver installation disks, and naturally by retro-computing enthusiasts.
The history of DOS is a history of ideas crossing corporate and institutional boundaries. Early disk operating systems had to be made to enable new hardware that was being developed and released in the late 60s and early 70s. Then, one developer was in the position to access both early microprocessors and TOPS-10. Due to this, an OS was born for those microprocessors. That system was successful enough to spawn clones, and those clones spread widely across the planet.
It is somewhat obvious that MS-DOS/PC-DOS and therefore CP/M influenced Windows in countless ways, but its influence on NT wasn’t terribly great beyond NTVDMs and drive lettering. Through those NTVDMs, however, much DOS software can still be run in modern Windows environments.
In my opinion, the greatest accomplishments of DOS were: the establishment of the operating system market for home computers, the enabling of a standardized platform for software development, and the birth of networking (perhaps that last one is just coincidental). Today, one TOPS-10 or CP/M clone is still going strong, FreeDOS. It is made out of love.
Excellent. I thought I knew the story but you filled in all the blanks and make it a true tale - congratulations. Jon Peddie
Excelent article! Thanks