History of Operating System Concepts (Dinosaurs book)

I get the impression this book by James Peterson and Avi Silberschatz is a standard text. It’s been through a few editions and the covers are quite interesting - especially the first.

History of Operating System Concepts - covers

The First Edition was published in 1983 and was 548 pages long. On its cover were dinosaurs and mammals labeled with the names of the important operating systems of the time, including OS/360, Multics, Scope, OS/MVS, VMS, UNIX, and CP/M.

Key:
TSS/360 - Pterodactyl, in the sky
OS/360 - Brontosaurus
Multics - Tyrannosaurus Rex
Scope - Triceratops
OS/MVS - Woolly Mammoth
VMS - possibly a Teleoceras or other rhino ancestor
UNIX - some kind of ape, I think
CP/M - possibly a Mesohippus, or other horse ancestor

2 Likes

Where does that leave MS DOS? Trilobite :slight_smile:
Before the advent of graphic operating systems, how many covered all IO devices?
MS DOS for example had no real serial I/O.
CP/M did floppies only.

MS-DOS is actually capable of redirecting its console to a serial terminal, and applications which use the native MS-DOS writing routines will happily run that way. Anything that tries to access video memory or the BIOS video routines will of course fail to run on the terminal that way.

CP/M 2 and above have support for hard disks, although CP/M 2 and 3 do not support subdirectories. CP/M 2.2 and 3+ have the concept of “user areas”, which provide a limited set of numbered discrete “areas” on a disk, but their implementation leaves much to be desired (and is not really a suitable replacement for a single level of directories, much less a hierarchical filesystem. They are similar in some sense to RSX-11 user areas and directories (which may be where Kildall got the idea?), but CP/M does not have the sophisticated (although difficult to use) path and working directory features that RSX-11 has.

1 Like

The PDP8 had better OS than DOS 2.0 Dos was CP/M clone and that was the problem
with the PC being a clone of the APPLE II. Why did the small computer user get stuck with poor quality software and hardware in the early 1980’s? Still wating for Microsoft to release thier version of UNIX, that would replace DOS.
I thought CP/M was more PDP10 clone.

I have read that, as well, that it was related to TOPS-10 or TOPS-20 in that those were the systems that Kildall had used previously, as in this un-sourced quote. It’s tough to say, though, because the DEC Command Language (DCL) was provided for TOPS, RSX-11, RT-11, and other DEC systems.

It seems to me to bear the most in functional similarity to RT-11 (although its dependence on the BIOS instead of a boot loader and device drivers makes it less flexible in some ways), and its disk directories are more similar to RSX-11 than TOPS-10/20 (in that it has no hierarchical directories, and the directories it does have are numerically “named”). How it got that way, I cannot say.

Interestingly, today’s version of Wikipedia’s CP/M article does include citations for the claim:

Various aspects of CP/M were influenced by the TOPS-10 operating system of the DECsystem-10 mainframe computer, which Kildall had used as a development environment.[14][15][16]

one of which is an article in Dr Dobb’s, found online here:

The system, called “CP/M,” runs on an 8080. It is available from Digital Research… Its user interface is patterned after that of the DECSYSTEM-10.

(So that’s a claim, by a third party, of “patterned after” rather than “influenced by” - all interesting stuff, anyway.)

Another citation is also an interesting read, with lots of links, and has another claim:

CP/M and ISIS in operation have some general similarities to interactive operating systems on minicomputers and mainframes such as the DEC PDP-10 “TOPS-10” OS. Kildall used such systems to develop and run his cross-assemblers and compilers, which became Intel products; and later to develop his own products which ran “native” on CP/M systems.

2 Likes

This is rather interesting that Microsoft’s cross-assembly setup came from Kildall. I didn’t know this.

This part is well-established; Kildall’s own memoirs discuss development on PDP-10 systems (as well as Microsoft’s usage of PDP-10 systems at UW). What I’ve not seen a compelling claim for is that CP/M was not influenced by the “smaller” DEC systems, which, to my mind, it more closely resembles. As far as I know there’s no Kildall commentary on the matter.

It’s very clear that Kildall was familiar with the big DEC systems and, in particular, TOPS-10 (and possibly TOPS-20). I believe TOPS-10 predated DCL (and TOPS-20 included it), although -10 certainly has familiar commands such as PIP. And, I just checked, and TOPS-10 has numeric directory IDs similar to RSX-11, so perhaps the CP/M USER directories came via that route.

In any event, certainly in terms of practical functionality, CP/M is much more similar to RT-11 (and the non-VM-enabled versions of RT-11 such as RT-11SJ, no less!) than it is to TOPS-anything.

1 Like

Given that DEC used to have quite detailed and freely accessible documentation, to me it wouldn’t seem totally out of the world that Kildall had followed various developments at DEC, while not actually using these systems. Even keeping himself informed may have steered him in certain directions. (Moreover, as for small systems, there is a common denominator at the technical implementation side and things which made sense for smaller DEC systems probably would have made sense for CP/M, too.) – But this is just musing, I haven’t any information regarding this.

The PDP 10 had 8080 emulator, that came out rather early. Mr Gates would know more about this than me, as that is where his BASIC was developed.

It is indeed a standard CS text. I still have the third edition from my OS course. I have referred to it on a few occasions since college, but I don’t consider it to be a great text. I’ve wished it was better.

1 Like

MS-DOS appeared on the third edition as an Eohippus. :slight_smile:

It was simple economics. Most consumers didn’t have the money (or the space) for a PDP. Memory was expensive, and therefor limited. Storage was expensive. Another part of the “sweet spot” of this was that consumer tastes were not enlightened about what computers are good for. So, it was possible to sell them with some novelty, and unsophisticated operating systems.

Microsoft considered replacing DOS with Xenix, once consumer PCs got powerful enough to run it, but with the breakup of AT&T, AT&T was allowed to charge a fee for its Unix license. That killed the motivation for Microsoft to make the switch. They spun off Xenix, which became SCO Unix.

I think we all fell for the Novelty that was the x86 with DOS that was the cats meyow with 640K.
Money I can see in the 70’s, but look at APPLE and the profit margin as typical example.
I guess the next version of the book can use a Trilobite for my operating system. I have a
nice 16 bit cpu design on the lucky days the FPGA routes correctly,with no segments and
20 bit addressing but it looks like there is no operating systems out there other than MS DOS that fits that address space and does not require virtual memory or bit mapped graphics.
Ben. I can’t add the above features,as it would break the FPGA’s routing or internal memory
or have a 48 bit cpu (3 16 bit words).

Early versions of QNX ran quite well on PCs with at least 256KB of RAM and one floppy disk.

2 Likes

That IS interesting, I had always read implications that they had developed the cross assembler and emulator themselves.

But I wont believe this unreservedly without a second source.

Notably, compare the first MOS 6502 cross assembler, which was written in Fortran and ran on various mainframes. MOS contracted with COMPAS Microsystems for this. (Apparently, it was written on a CDC Cyber 175.and then ported to other systems. COMPAS also did the "resident assembler, which was compiled on this system.)

Intel may have done similar, since, what is a CPU without an assembler? Both Kildall and MS may have built on a common setup.

Regarding the MOS cross assembler see here and here, the latter mentions availability on DEC and GE timesharing systems.

1 Like

Having not seen this book (series!) before, a question arises:

Do later versions remove earlier ones? I suspect so. That being the case, which edition would be the best to read for someone interested in “lost great ideas”?

For instance, I only recently learned that Multics allowed any code within a program to be called as an entry point in the file system. What a fascinating idea! I’m sure this book has other examples, but which version would be “the best” for this sort of thing?

I picked up the second edition used from ABES books for about $13.00 US. (book shipping). 3 to 4 weeks. About 1 dozen used.

Ben.

I’d go with the earliest version if I could find it - as I see @oldben did!

The historical bits seem to have become a single chapter in the 8th edition and an appendix in the 10th. I’d guess they were more central in the earliest.

Modern operating systems all now tend to graphic based, so one might want find a version
just after the MAC and WINDOWS 95 came out to cover the most middle ground.
From what little I have read about operating systems,Early operating systems where slow because they used very small block sizes like 128 words, and used virtual memory for everything so it could it run 8k to 12k words of core. Lack of ram, and limited magnetic media, and hardware 16 bits wide really impacted how they were designed. Pascal and C were never ment to run with pointers bigger than 16 bits. FORTRAN was ment to run on a main frame computer, but not a 8 bit system. Ben.