Fifty years of the personal computer operating system
computerhistory.org
computerhistory.org
Which are around $1,628.73 in today's money, plus hardware costs, so no wonder that many of us would just stick with the base install and make do with what was available.
Example, I never had an Assembler for Timex 2068, rather painfully translated opcodes into DATA segments, or used a hexdump editor that appeared in some computer magazine as one of those type-in examples.
Apple's pricing hasn't changed that much. ;-)
> Introductory price: US$1,298 (equivalent to $6,530 in 2023)
EDIT: You could get an assembler/dis-assembler for the ZX-81 for $20 (1982). Also at the time a lot of software was "shared" between enthusiasts.
But get into anything like a PC clone--much less anything with a hard drive--and the prices went up fast.
Of course the real Apple II competitor from Sinclair was the ZX Spectrum.
That really accelerated around '95 or so with Windows 95 - anything that couldn't run it became almost free overnight.
I had never heard of the Timex 2068 before, but apparently it was a variant of the ZX Spectrum. Could it really run CP/M (in addition to BASIC and Spectrum games?)
Kildall tried to renew the negotiations a couple of weeks later. IBM did not respond because, in the meantime, Bill Gates purchased an OS from Seattle Computer Products that was written to emulate the look and feel of CP/M. He then sold a one-time, non-exclusive license to IBM, which used the designation PC DOS. With great foresight, he retained the right to license the product to others as MS-DOS."
[...]
>"IBM announced the PC on August 12, 1981, but with the PC-DOS list price set at $40 versus $240 for CP/M, most customers simply chose the former as the lower-cost option."
And the rest... is computer history...
2. IBM reps showed up, but it was Gary's wife's birthday, and so he told them he would need to reschedule
3. This version
I wonder if we will ever really know what took place that day.
Yeah. It's incredible how IBM handed the golden keys to the castle on a plate cut in a solid 100000000 carat diamond to Microsoft.
This has to be the absolute worst business deal ever made in history: 3 trillion market cap for Microsoft. And IBM created that.
For other folks who remember it fondly, it's been opensourced:
He also made his share of deals which took a lot of value away from other companies on his own:
https://www.folklore.org/MacBasic.html
(buying MacBasic from Apple for $1 so as to kill it contine the MS-Basic license for the Apple II)
An interesting insight into this timeframe is Jerry Kaplan's _StartUp: A Silicon Valley Adventure_
https://www.goodreads.com/book/show/1171250.Startup
the whole "embrace, extend, extinguish" thing shows up as documented by folks feeling its effects.
86-DOS/PC-DOS/MS-DOS was born as a kind of throw-away OS to fill this hole temporarily. Microsoft was betting hard at the time on another OS called Xenix, which was Unix-based!
Then, somehow the industry decided that DOS was good enough, it lasted ~15+ years and this made Microsoft a fortune.
In the end, Bill Gates saw a business opportunity and acted quickly and ruthlessly. Gary Kindall, on the other hand, delayed the initial CP/M-86 development for too long.
By an irony of fate, Gary Kindall spent the rest of his career anticipating and innovating software concepts (Multiuser, Multitasking, Graphics Environment Manager, even the first encyclopedia on CD-ROM, ten years before MS Encarta) but somehow the timing was always wrong and all this never marked the return of the first CP/M glory days.
Gary Kindall was the greatest PC software pioneer, and as the old saying goes: “Pioneers take the arrows, settlers take the land”.
Lucky for them, Microsoft was happy to provide an OS badly and fast!
In all fairness, very few recognized at the time what that would lead to.
IBM had a deep, entrenched culture that had serious dominance over all computer business. There was not an article during that time that didn't characterize the business as "Snow White and the 7 Dwarfs" where IBM was of course Snow White. Everyone else was essentially looking for crumbs. A similar example was illustrated in David Halberstam's The Dead Reckoning where General Motors was so dominant and culturally resistant to any new ideas from the outside that visitors from Japan were allowed to meet with the executives, but no discussions of the auto industry were allowed.
So in the eyes of the IBM leadership, this was a tiny, goofy idea that would not amount to much. One leader at IBM scoffed at the PC-DOS O/S calling it a toy.
Well, it was a toy that essentially ate your world.
The original IBM PCs were thoroughly unimpressive, even when compared to much cheaper 8-bit home computers.
It was much more likely that the PC would have gone the way of the Dodo like most other computer architectures of that time.
And that’s how DOS and then Windows ended up with “/” as the command-line option indicator and therefore “\” as the directory separator.
I looked at some CP/M manuals from around 1980 and the commands mostly did not have options. The closest was PIP which put options inside [ ] and there was no / nor \ to be seen.
The backslash was chosen because the forward slash was used for arguments. This convention was taken from other timesharing operating systems of the day.
[1] CP/M 3 (normally called "CP/M Plus") does not have or support subdirectories, only user areas, just the same as earlier versions... (Such as B4:MYFILE.TXT or A0:WORDSTAR.COM.) Source: me -- I own 2 CP/M 3 computers. Feel free to check the manual:
http://www.bitsavers.org/pdf/digitalResearch/cpm_plus/CPM-Pl...
[2] CP/M does not have standard command line switches or arguments, so there is no standard delimiter.
Here's the real story:
https://www.os2museum.com/wp/why-does-windows-really-use-bac...
I've been enjoying watching episodes of this show I found on YouTube. [2]
EDIT: referenced paper is here: https://haoxintu.github.io/files/1-A%20Unified%20Approach%20...
> Kildall was injured at the Franklin Street Bar & Grill on July 8 but refused medical treatment. He was taken to a hospital the following day and released. But he was readmitted Sunday and died the following day.
> Kildall could have died either from a blow to the head or from hitting his head as he fell, said Sollecito.
> The first description of the incident at the bar, he said, was that Kildall had been in the bar between two to 20 minutes. Then witnesses "turned around, and he was on the floor," the sergeant said.
> But Sollecito said stories are changing. "That version isn't going to hold up," he said.
https://archive.seattletimes.com/archive/?date=19940716&slug...
The source of that story seems to be the Monterey Police Department, but nothing came of the investigation.
Shockley moved from NJ to Palo Alto in 1956 to care for his ailing mother.
The whole idea of an OS as an important thing is debatable. For example:
> The operating system is another concept that is curious. Operating systems are dauntingly complex and totally unnecessary. It’s a brilliant thing that Bill Gates has done in selling the world on the notion of operating systems. It’s probably the greatest con game the world has ever seen.
> An operating system does absolutely nothing for you. As long as you had something—a subroutine called disk driver, a subroutine called some kind of communication support, in the modern world, it doesn’t do anything else.
(Chuck Moore, interview in "Masterminds of Programming", 2009)
Look at graphics APIs like DirectX and look at what happened when jQuery was released for more evidence that having a stable API that covers disparate collections of hardware (or browser) APIs, provides vast amount of value.
The idea that an operating system providing a stable API over different computers is something that doesn't provide value is hogwash.
> What about device support? > Chuck: You have a subroutine for each device. That’s a library, not an operating system. Call the ones you need or load the ones you need.
...for sure it's a departure from the common way of doing things, at least. And it's almost impossible to imagine, today's generation would have to look at retro-computing to see something akin to the idea [0] [1].
But it's still a bad approach for general computers, for two reasons.
1. With the current setup, we need an OS that detects the hardware and loads the right code. With Chuck's proposal, that responsibility - and the code to do it - moves to every application. Since there are far more applications than OSes, this is highly inefficient.
2. Let's say I buy an application, and then some time later I buy a new computer. If the new computer has a compatible OS, I can just run the existing program on the new computer. But under Chuck's approach, I need a new version of the program as well - one that knows how to detect the new hardware, and what drivers to load in response.
So (virtually) nobody is going to do it that way. It might have made sense when you were fighting for every byte of memory, but that isn't the world we live in any more, and it hasn't been for decades.
Disk drivers could be provided by BIOS/UEFI (and they are) or through some library, or through standard hardware interfaces (AHCI and similar). Same deal for graphics.
Does that need to be bundled with a kernel and a bunch of other stuff? Not strictly. All that other stuff is valuable too, most of the time. Otoh, if you're using the whole computer for one thing, the OS can get in the way, and often isn't providing much you couldn't get as libraries.
They can, but I don't want direct access to a disk driver. I don't want to care about the hardware, or even what file system is in use. I want to write a log file to this folder on this disk. Once the BIOS/UEFI starts providing that level of abstraction, how is it different than an operating system?
Having an operating system means there is a lot less code I have to write, because all the nitty gritty details of networking, talking to hardware, and all that other stuff is already taken care of for me. Someone else already invented the wheel so I don't have to.
...agreed
> Look at graphics APIs like DirectX and look at what happened when jQuery was released for more evidence that having a stable API...provides vast amount of value.
I wonder if more correct to say the concept of virtual machine provides a vast amount of value - like Java saying "run everywhere."
But your examples (DirectX, jQuery) could also prove a different point: high levels of abstraction layers lead to maintenance and efficiency nightmares. For example, jQuery sits on JavaScript, sits on browser's engine, sits on OS, sits on microcode. A jQuery-focused dev would still spend a significant amount of time setting up, debugging, accommodating, and troubleshooting things on all the other layers compared to just getting things done in their (somewhat) stable jQuery ABI. The layers are helpful sometimes, and hurtful sometimes, and the net gain is not always as great as expected.
Of course you're ignoring the fact that linux is open source, so you can go make the OS do what you want it to - that's one path you could take.
Or you could just write code for the rpi and build up all that stuff yourself, no problem.
The only person stopping you from doing this is yourself.... go do it and show us the "no-os" way.
But it had no memory protection, no "kernel mode" or filesystem access rights, the hardware was fully documented and accessible to all code running on the machine.
Each program could easily take over the entire machine and do literally anything (including destroying all your data).
Multi-user capability and the idea that a user only has limited access to the computer was really a mainframe thing that leaked into personal computing during the 90s.
That was because your application booted the OS out and ran on naked hardware. It was as simple as IRQ 1-2-3, plus Hercules, SoundBlaster, ExpressCard and extended or expanded RAM. And maybe typing ATDT to get the modem's attention.
> ... and ran on naked hardware.
Not quite, drivers are still involved. An OS may load drivers, expose a facade for drivers, or even abstract whole layers of driver subroutines. But it isn't like it's a choice of either OS or bitbang the hardware.
I'm unsurprised that Moore, who invented his own complete-machine programming environment, would concur.
I think he also said something like "I never really wanted to program in a language/environment that wasn't (as good as?) Smalltalk." So he (and his colleague(s)) ported Smalltalk into web browsers, used it for system programming, etc.
Which brings me to this web site, curated by the man himself: