The history of CP/M (version 2)
Captured 2012-11-04 0716hrs from Firefox [firefox.exe]:http://bulote.iteye.com/blog/1387331
Chapter 9 The Development of Computer Operating System
9.1 The Operating System
An operating system is a program that runs on a computer to simplify the use of the computer for the user. The operating system manages the use of peripheral devices such as printers, monitors and keyboards. In addition the operating system will run other programs and display the results. In order to carry out these functions the operating system has to require a systematic structure for the inputs and outputs; there is a definite structure to files and there is a systematic way in which the files are stored on the data storage devices. Without an operating system a computer is largely an unresponsive hunk of metal and wires.
Although now the concept of an operating system appears to be a natural and obvious one, operating systems evolved over a considerable period of time.
The first electronic computers were "hardwired" to carryout systematic computations. Initially the computations were for ballistics table. The user would wire direct connections between the various components of the computer through a plug board.
When the computations were finished the next user would have to pull out the wires and rewire for the next set of computations. This was monumentally cumbersome by today's standard but a marvelous advance in speed and accuracy over hand computations with pencil and paper.
In the late 1960's M.I.T. had a time sharing operating system called MULTICS, the name indicating it was a multiple user systems. Ken Thompson was working at Bell Labs in New Jersey and was given the use of a PDP-7 minicomputer. He decided to create an operating system for the minicomputer for the convenience it provided even though there would be only one user.
Initially he called this operating system UNICS in analogy with MULTICS but later changed the spelling to UNIX. At the same time Dennis Ritchie was involved in the creation of the programming language "C," so named because it was modeled on the programming language developed in Britain called "B." The collaboration between Ken Thompson and Dennis Ritchie has been quite fruitful over the years. UNIX and C have also been closely linked.
In 1964, following implementation of the Compatible Time-Sharing System (CTSS) serious planning began on the development of a new computer system specifically organized as a prototype of a computer utility. The plans and aspirations for this system, called Multics (for Multiplexed Information and Computing Service), were described in a set of six papers presented at the 1965 Fall Joint Computer Conference. The development of the system was undertaken as a cooperative effort involving the Bell Telephone Laboratories (from 1965 to 1969), the computer department of the General Electric Company, and Project MAC of M.I.T. Implicit in the 1965 papers was the expectation that there should be a later examination of the development effort.
From the present vantage point, however, it is clear that a definitive examination cannot be presented in a single paper. As a result, the present paper discusses only some of the many possible topics. First we review the goals, history and current status of the Multics project. This review is followed by a brief description of the appearance of the Multics system to its various classes of users. Finally several topics arc given which represent some of the research insights which have come out of the development activities. This organization has been chosen in order to emphasize those aspects of software systems having the goals of a computer utility which we feel to be of special interest.
* UNIX was an important innovation in computer. It is awkward but the computer professionals were perfectly willing to tolerate its difficulties in order to get the power it gave them access to. UNIX's shortcomings were not considered notable at the time.
The concept of user-friendly software came a decade later. UNIX users were more concerned that something could be achieved at all rather than whether it required use of non-mnemonic commands.
* The use of UNIX spread around the country and initially Bell Labs gave it away free. Later Bell Labs realized that UNIX had commercial potential and arranged for the marketing of it.
* The name "Unix" was intended as a pun on Multics (and was written "Unics" at first, for UNiplexed Information and Computing System).
* For the first 10 years, Unix development was essentially confined to Bell Labs and most scripting related work was also done in NJ. The initial versions of Unix were labeled "Version n" or "Nth Edition" (of the manuals)
and some milestones in shell history are directly related to particular Unix releases. Major early Unix implementation were for DEC's PDP-11 (16 bits) which was so tiny by today's hardware standards (typical configuration were limited to 128K memory, 2.4M disc, 64K per-process limit (inc the kernel)) and similar configurations can be found only in palmtop computers and top electronic watches. The fact that they managed to created pretty powerful shells for such a computer is nothing but simply amazing and attests tremendous ingenuity of early creators of Unix extremely well.
For computer science at Bell Laboratories, the period 1968-1969 was somewhat unsettled. The main reason for this was the slow, though clearly inevitable, withdrawal of the Labs from the Multics project. To the Labs computing community as a whole, the problem was the increasing obviousness of the failure of Multics to deliver promptly any sort of usable system, let alone the panacea envisioned earlier. For much of this time, the Murray Hill Computer Center was also running a costly GE 645 machine that inadequately simulated the GE 635.
Another shake-up that occurred during this period was the organizational separation of computing services and computing research.
* Thompson is really the guy who is primarily attributed with developing UNIX. He's an employee of AT&T-Bell Labs at the time-and still is. Dennis Ritchie was the co-developer. It was really those two guys working together who developed UNIX.
* Borne wrote the Borne shell (SH), Korn wrote the Korn shell (KSH). Steve Johnson was very involved in writing a lot of the early utilities associated with UNIX. Kernighan was involved in various utilities, but was primarily involved in the C Language with Ritchie-as was Plauger, also a C language guy.
Plauger wrote the first commercial C compiler.
Interestingly enough, all these guys are still out there doing related things in the UNIX business.
In the case of UNIX, the stage was set by events going back at least as far as 1945. There were four or five things that happened over a period of years that made it possible for the whole UNIX thing to happen by the grass roots method that it did.
In 1945, AT&T was involved with an antitrust case with the federal government. The federal government felt that AT&T was monopolistic, so they pushed them in 1956 into a consent decree in which AT&T agreed to make all it's patent technology licensable to the public. They were also restricted to the communications business. As a result, they couldn't be in the computer business. This big event is the reason AT&T never commercialized UNIX along the way-it wasn't allowed to.
* One of the other significant events that was taking place at this same time was a project going on at MIT called Project MAC (Multiple Access Computers). They were doing research on time-sharing systems, trying to allow multiple users to interactively use a computer system. So time-sharing and multi-programming--all that multi-user stuff--is really evolving and taking place around 1963 and in the early '60's.
* So AT&T, GE, and IBM formed a partnership with MIT and Project MAC to try to develop a time-sharing operating system called MULTIX. MULTIZ was meant to be a large multi-user system, but it turned out that this large multi-user system could only support a total of one or two users interactively which isn't exactly what IBM and AT&T had in mind when they started out on the project. (GE ultimately was able to turn MULTIX into a viable commercial product.)
* Not too long after that, in 1969, AT&T Bell Labs said enough is enough, we‘re pulling out of this Project MAC sinkhole. Around that same time, these two guys, Thompson and Ritchie, were finishing up some education requirements. Here’s another Berkeley connection: Ken Thompson got a Masters Degree in Electrical Engineering from nowhere else but Berkeley so that‘s the link back to why the software ends up back at Berkeley?
* Dennis Ritchie was working and finishing up a degree in Mathematics at Harvard, but he ended up without a degree, without his Ph.D., decided to bag it and just go to work. So Thompson and Ritchie, who go to work for Bell Labs thinking they're going to work on this fantastic new operating system called MULTIX.
* They're all fired up and excited and do in fact spend a little time on it but within months of when they get there, the plug gets pulled and they don't have a project. Well, no problem, because Thompson figures he could have done it better himself anyway, which is in fact the case. So he says, I'm going to write a multiuser system. One of the main motivations for Thompson embarking on this project was that he needed a decent operating system to run his game called Space Travel on, so instead of optimizing Space Travel he decided to write a new operating system. He jumped right on it.
* There was a one month period, with all the extra time he could really focus on this thing, he basically wrote UNIX in one month. He wrote a kernel, a shell, a file handling system, and one of the other utility sets and had a working operating system. He did this on a 4K machine with 18-bit words and that's what UNIX ran on originally. You hear the folklore of Bill Gates writing his 4K basic compiler, well Thompson wrote a 4K operating system--a 4K multi-user operating system--which is pretty impressive.
* UNIX is the most innovative, influential, operating system in the history of computing. And it really is. If you look at all the other operating systems, there are many ideas that are derived from UNIX. Look at the DOS commands. DOS took baby elements out of UNIX--it's just ideas completely extracted from UNIX.
* The original version of UNIX was written in PDP assembly language. In 1972 it was rewritten in a language called C, which is another fundamental breakthrough in the whole process--they developed this new programming language just so they could write the operating system in it. So UNIX was, one of the first, operating systems written in a high level language.
* With the concept of operating system widely popularized it was standard practice to develop an operating system for each new line of computers. About this time the personal computer was developed.
* Gary Kildall of the Naval Postgraduate School in Monterey, California acquired one of the early personal computers and he immediately proceeded to develop an operating system for it.
He called the operating system CP/M, for Control Processor Monitor. It was the first operating system for a personal computer.
* •In the beginning, there was CP/M. As the first easily configurable standard operating system for micros based on Intel's then flagship the 8080, this small but effective system became the MS-DOS of its day. With its logical, simple, and open architecture it captured the hearts of legions of amateur systems hackers the world over; so much so that even in the 1990's some diehards have refused to surrender entirely to the overwhelming dominance of DOS/Windows. It also powered thousands of microcomputer based business systems, often to the frustration of its users who didn't care about its internals but hated dealing with its arcane command line syntax.
* CP/M was developed on Intel's 8080 emulator under DEC's TOPS-10 operating system, so naturally many parts of CP/M were inspired by it, including the eight character filenames with a three-character extension that every MS-DOS/Windows 3.X user still lives with today.
* "Necessity is the mother of invention" the old saying goes. And its true; but as we all know it takes two to make a baby and in the case of CP/M the father was a man named Gary Kildall, who in 1975 was working as a consultant to Intel.
* Kildall's task at Intel that year was to design and develop a language called PL/M for the 8080 chip, to be used as a systems development language. At the time, the chips themselves barely existed and Intel was just then starting to design a computer system that used the
8080. The plan was for Gary to use the 8080 emulator Intel had running on their big PDP-10 minicomputer, but he preferred to work directly on the 8080 itself, in part because by working on his own machine at home he could avoid the 50 mile drive to Intel to work every day.
The only 8080-based computer Intel had available was called "Intellec-8", but it didn't have any software or disk storage attached to it. So Kildall obtained a used test floppy drive free from Shugart Associates, attached it to the Intellec-8 with a controller designed by his friend John Torode, and wrote a primitive operating system for it which he called CP/M.
The company's seminal product was CP/M 2.0, which fully separated the three components of the operating system into logical pieces: the CCP (console command processor); the BDOS (Basic Disk Operating System); and the BIOS. Only the BIOS need be provided by anyone to get CP/M running on a new machine, the CCP and BDOS would be unchanged. CP/M 2.0 was quite buggy, and was quickly followed by 2.1 as a fix-up release. However, 2.1 was limited in its internal capacity to small floppy drives, and by 1977, hard drives were coming on the scene. CP/M version 2.2 added expanded disk formatting tables which could allow access to up to
8 (eight) megabytes per drive in up to 8 (eight) total drives. It was version 2.2 that became the megabit that dominated microcomputing almost from its outset.
It was CP/M's adaptability that gave it appeal and launched it on the road to success. It packed a surprising amount of power in a tiny package, and did so in a simple, clean logical way. Many of its critics bemoaned its sometimes cryptic commands (rightly) and also its lack of powerful features. But it must be remembered that CP/M was designed in an age when it was a rare, high-end computer owner that could afford the thousands of dollars it took to fill up the whole 64K of the 8080's address space. The entire operating system took only 8K of the computer's memory, and would run in a mere 16K of total memory with room left over for any of its system development utilities to run. More features would have swelled the system to the point where decently featured applications would have had no room to execute.
And it was the applications that moved this operating system out of the realm of the computer enthusiasts and into the hands of "real users" (people who don't care if their computers are powered by hamsters, so long as they run their necessary applications reliably).
The first real "killer app" for CP/M was probably WordStar, a word processing program that became very widely used. Also famous was the first microcomputer database application, dBASE II. These and many, many other applications and utilities eventually made CP/M a useful tool for a wide range of ordinary people.
* By 1981, a new generation of Intel microprocessors was on the horizon -- the 8086 and 8088 16-bit chips, which could address an incredible 1 megabyte of memory. This seemed at the time more than anyone could ever figure out a use for, so Digital Research focused much of their attention on producing CP/M 3.0 for the dominant
8080/Z80 platform. There were plans of course to port CP/M to the new 16-bit chips with a version called CP/M-86, but it was not a priority at the time.
* While DR did finally announce CP/M 3.0, a more full featured successor to the successful 2.2, the upgrade was only for 8080/Z80 based systems which were no longer seen as the coming thing by the public. And CP/M-86 was ported to the IBM-PC, but by that time IBM was practically giving away the new PC-DOS operating system. Except for a diehard core of those that loved it for what it was, CP/M began rapidly to vanish from the land of living operating systems.
9.5 Microsoft Joined
Microsoft rose to fame and power on the basis of the Disk Operating System, one of the most dramatic business coups of the twentieth century. But while DOS was great it lacked the ease of use of the Apple system so Microsoft launched a project to create an operating to achieve the ease of use of Apple's operating system. The result was Windows. The first versions were not spectacularly successful technically and commercially but Microsoft continued to develop Windows until it became virtually the universal operating system for personal computers. This was in part due to the technically capabilities and ease of use of Windows but it was also due to the marketing practices of Microsoft which resulted in every personal computer coming with Windows so the acquisition of any other operating system would superfluous and costly.
* Microsoft initially kept the IBM deal a secret from Seattle Computer Products. And in what was to become another extremely fortuitous move, Bill Gates, the not uncontroversial founder of Microsoft, persuaded IBM to let his company retain marketing rights for the operating system separately from the IBM PC project.
Microsoft renamed it PC-DOS (the IBM version) and MS-DOS (the Microsoft version). The two versions were initially nearly identical, but they eventually diverged.
* MS-DOS soared in popularity with the surge in the PC market. Revenue from its sales fuelled Microsoft's phenomenal growth, and MS-DOS was the key to company's rapid emergence as the dominant firm in the software industry. This product continued to be the largest single contributor to Microsoft's income well after it had become more famous for Windows.
The final major version was 7.0, which was released in 1995 as part of Microsoft Windows 95. It featured close integration with that operating system, including support for long filenames and removal of numerous utilities, some of which were on the Windows 95 CDROM. It was revised in 1997 with version 7.1, which added support for the FAT32 filesystem on hard disks.
Although many of the features were copied from UNIX, MS-DOS was never able to come anywhere close to UNIX in terms of performance or features. For example, MS-DOS never became a serious multi-user or multitasking operating system (both of which were core features of UNIX right from the start) in spite of attempts to retrofit these capabilities. Multitasking is the ability for a computer to run two or more programs simultaneously.