It's interesting to me that this story hasn't had a lot of reaction.
It is the reason that Linux exists. It's the reason BSD came second. It's the reason for OS/2 and Windows 3 and Windows NT.
CP/M-86 was badly late: it followed over three years after the release of the 8086, the official successor to the 8080, the device that made Intel's fortune.
There was a single default OS for the 8080: DR's CP/M.
It was the industry standard, and the early business microcomputer industry ran on it and essentially nothing else. (But it needed at least a single floppy drive, which meant it was for £1000+ business computers, which in turn is why BASIC-in-ROM dominated in the inexpensive home-computer space: Commodore PET, Apple II, TRS-80, and their various 1980s successors.)
The Z80 was a tweaked 8080. Business was waiting on the 8080 successor that could handle more RAM -- which shipped as the 8086 in 1978.
DR didn't have an OS for it. It wasn't binary compatible: you couldn't run CP/M-80 on it, like you could with a Z80.
This article explains why DR didn't do that.
As a result, a cheap 3rd party compatible OS dominated, and that made the fortune of Microsoft, and that (alongside IBM's poor contract negotiation, which permitted MS to sell it to whoever it wanted) created the x86 PC industry.
DOS is why the 286 was a bit of a flop. That drove the 386.
(Aside: and, briefly, the Atari ST and Commodore Amiga -- and the Acorn Archimedes, whose CPU became the most popular best-selling CPU family in the history of humanity, and is why Intel is in financial difficulties now.)
The original all-32-bit 80386DX was too expensive. So, again, DOS drove the development of the cheaper 16-bit-bus 80386SX for cheap DOS 386s which didn't multitask and didn't run GUIs but ran DOS really well.
That market of cheap commodity 386 PCs is the soil in which Linux grew.
But in the late 1980s, the BSD folks were still focussed on minicomputers and things and they missed the PC gravy train.
IDK why but this feels like an over-simplification of the differences between real vs 286 vs 386 protected mode. But I'd love some good exposition...
Executive summary:
286 protected mode gave you 16 MB of memory space, but it still had mandatory segments. Usable but it needed hard work and careful thought.
IIRC, that is why the 286 version of MCW Coherent OS still only allowed a maximum program size of 64 kB of code -- plus 64 kB of data. Very limiting. OK for early-Unix-style (say up to UNIX V6, of Lions Book fame and "you are not expected to understand this" comment.)
386 protected mode gave you 4GB of space, and you could choose the segment size, which meant everyone chose a segment size of ALL THE RAM PLS KTHXBYE. That meant you got flat addressing: all pointers could be flat 32-bit INTs. Simples!
The 386 also added the ability to seamlessly jump from 8086 mode to 386 mode and back.
The 286 intended that to be a one-way trip. DR and others found a loophole (IIRC the `LOADALL` instruction) and a way to exit 286 mode again but it forced a full CPU reset, so it was slow.
Not only did the 386 make it easy to get in and out of 8086 mode for DOS binaries, it natively supported multiple concurrent hardware-assisted 8086 VMs, plus memory management so you could keep most of DOS's 640kB free. So, win for protected-mode code, win for DOS code.
Intel aimed to please the DOS folks, and to alleviate jealousy of the 680x0 and its nice flat memory space, and make it easy to port UNIX and other memory-managed OSes over from minis and workstations.
TL;DR
The 286 protect mode was meant for 286 native OSes and it was not easy to run 8086 stuff, or change modes. Plus, segments, which everyone hated.
The 386 protect mode optionally got rid of all the stuff that people disliked about 16-bit x86 and offered alternatives that rivalled other platforms than x86.
Biggest change until x86-64 came along in 2001-2002 or so.
- In May 1990, Windows 3.0 running on a Intel 80386 could run multiple DOS VMs simultaneously
- In April 1992, OS/2 2.0 finally supported multiple DOS VMs. OS/2 1.x supported running only one DOS app at a time.
While MS Excel had been available on Windows for many years before Win3.0, Word for Windows had only been released a year before Win3.0.So many PC users would still have been using the DOS version of WordPerfect (and maybe the DOS version of Lotus 123). Windows 3.0 allowed the user to run many of their DOS apps at the same time, which DOS and OS/2 couldn't do.
Windows/386 could do that in 1987, but not many people bought it. Power users had DESQview/386 or something similar.
If IBM had listened to Microsoft, OS/2 1.0 could have done that in 1987 too... and then I think OS/2 could have been a hit and Windows 3.0 might never have happened.
flomo•1mo ago
But if you look at the market for business PCs back in 1981, it was completely open anarchy surrounding the CP/M-80 "8-bit PC standard". There were hundreds of vendors, including some big names in the computer industry. (IBM certainly didn't care about Commodore and etc. And as the article mentions, this took tons of support time from understaffed DR.)
So I think IBM quite strategically wanted to define the "16-bit PC standard", which they controlled for most of the decade. And Microsoft was the most compliant vendor. (There were antitrust restrictions on IBM too...)
On a larger level, it sounds like DR thought 16-bit was just a repeat of the early 8-bit computer industry and didn't really understand what IBM was up to.
markus_zhang•1mo ago
Lio•1mo ago
Exchanging a smaller short term reward for control of something exponentially growing is obvious in hindsight but a brilliant insight at the time.
There other insight was to go for the business and not home market like so many, frankly, better products in the 80s. The difference being that businesses replace their equipment once it’s been written off. The cycle times for home and educational users being much longer.
markus_zhang•1mo ago
https://hardcoresoftware.learningbyshipping.com/p/019-billg-...
bitwize•1mo ago
tristramb•1mo ago
cmrdporcupine•1mo ago
If IBM hadn't done what it did somebody else would have dominated the market with a product to fit the same niche. Perhaps somebody "downmarket" in the more consumer space who managed to punch upwards -- maybe Apple who had some business success with the Apple II + VisiCalc, etc. or maybe Kaypro or somebody in the CP/M space. Or perhaps somebody else "upmarket" like DEC, who came too late the personal computer space with products that nobody really bought (DEC Rainbow, etc) but maybe they'd have had more success if IBM hadn't gotten in there.
The market wanted a relatively open product to innovate in. When the PS/2 came along a few years later with proprietary bus, etc and tried to put the genie back in the bottle, it flopped.
bitwize•1mo ago
rbanffy•1mo ago
jecel•1mo ago
flomo•3w ago
mjg59•1mo ago