Log in

No account? Create an account

Thu, Dec. 6th, 2018, 01:16 pm
Why did Apple's Copland fail when so many early-90s OS projects succeeded & dominate the world today

(Adapted from a Quora answer.)

OS/2 1.x was a clean-sweep, largely legacy-free OS with only limited backwards compatibility with DOS.

OS/2 2.x and later used VMs to do the hard stuff of DOS emulation, because they ran on a chip with hardware-assisted DOS VMs: the 80386’s Virtual86 mode.

NeXTstep was a Unix. It predated FreeBSD, but it was based off the same codebase: BSD 4 Unix. It “only” contained a new display layer, and that itself was based off existing code — Adobe PostScript — and the then-relatively-new technique of object-oriented development. Still substantial achievements, but again, built on existing code, and with no requirement for backwards compatibility.

BeOS was a ground-up new OS which wasn’t backwards or sideways compatible with anything else at all.

NT is based on OS/2 3.x, the planned CPU-independent portable version, with a lot of design concepts from DEC VMS incorporated, because it had the same lead architect, Dave Cutler. Again, the core NT OS isn’t compatible with anything else. This is rarely understood. NT is not a Win32-compatible kernel. NT isn’t compatible with anything else, including VMS. It’s something new. But NT supports personalities, which are like emulation layers running on top of the kernel. When NT shipped, it included 3: OS/2, POSIX and Win32. OS/2 is deprecated now, POSIX has developed into the Linux subsystem, and Win32 is still there, now in 64-bit form.

The point is, none of these OSes were enhanced versions of anything else, and none were constrained by compatibility with existing drivers, extensions, applications, or anything else.

Apple tried to do something much, much harder. It tried to create a successor OS to a single-user, single-tasking (later cooperatively-multitasking, and not very well), OS for the 68000 (not something with hardware memory protection, like the 68030 or 68040), which would introduce those new features: pre-emptive multitasking, virtual memory, memory protection, integrated standards-based networking, etc.

All while retaining the existing base of applications, which weren’t written or designed or planned for any of this. No apps == no market == no use.

Apple took on a far harder project than anyone else, and arguably, with less experience. And the base hardware wasn’t ready for the notion of virtual machines yet.

It’s a great shame it failed, and the company came relatively close — it did have a working prototype.

It’s often said that Apple didn’t take over NeXT, nor did it merge with NeXT — in many important ways, NeXT took over Apple. Most Apple OS developers and project managers left, and were replaced by the NeXT team.

The NeXT management discarded Copland, most Apple technologies — OpenDoc, OpenTransport, GameSprockets, basically everything except QuickTime. It took some very brave, sweeping moves. It took the existing MacOS classic APIs, which weren’t really planned or designed, they just evolved over nearly 1½ decades — and cut out everything that wouldn’t work on a clean, modern, memory-managed, multitasking OS. The resulting cut-down, cleaned-up API was called “Carbon”. This was presented to developers as what they had to target if they wanted their apps to run on the new OS.

Alternatively, they could target the existing, far cleaner and richer NeXT API, now called “Cocoa”.

The NeXT team made no real attempt to be compatible with classic MacOS. Instead, it just ran all of classic MacOS inside a VM — by the timeframe that the new OS was targeting, machines would be high-enough spec to support a complete classic MacOS environment in a window on top of the Unix-based NeXTstep, now rebadged as “Mac OS X”. If you wanted your app to run outside the VM, you had to rebuild for “Carbon”. Carbon apps could run on both late versions of classic MacOS and on OS X.

This is comparable to what NT did: it offered a safe subset of the Win32 APIs inside a “personality” on top of NT, and DOS VMs with most of Win16.

It was a brave move. It’s impressive that it worked so well. It was a fairly desperate, last-ditch attempt to save the company and the platform, and it’s easier to make big, brave decisions when your back is against the wall and there are no alternatives... especially if the mistakes that got you into that corner were made by somebody else.

A lot of old Apple developers left in disgust. People who had put years of work into entire subsystems and APIs that had been thrown in the trash. Some 3rd party developers weren’t very happy, either — but at least there was a good path forwards now.

In hindsight, it’s clear that Apple did have an alternative. It had a rich, relatively modern OS, upon the basis of which it could have moved forwards: A/UX. This was Apple’s Unix for 680x0, basically done as a side project to satisfy a tick-box for US military procurement, which required Unix compatibility. A/UX was very impressive for its time — 1988, before Windows 3.0. It could run both Unix apps and classic MacOS ones, and put a friendly face on Unix, which was pretty ugly in the late 1980s and early 1990s.

But A/UX was never ported to the newer PowerPC Macs.

On the other hand, the NeXT deal got back Steve Jobs. NeXTstep also had world-beating developer tools, which A/UX did not. Nor did BeOS, the other external alternative that Gil Amelio-era Apple considered.

No Jobs, no NeXT dev tools, and no Apple today.

Thu, Dec. 6th, 2018 10:58 pm (UTC)

Thanks to whoever posted this on HackerNews:


And thanks to uon for drawing it to my attention.

Thu, Dec. 6th, 2018 11:29 pm (UTC)

...a successor OS to a single-user, single-tasking (later cooperatively-multitasking, and not very well), OS for the 68000 (not something with hardware memory protection, like the 68030 or 68040), which would introduce those new features: pre-emptive multitasking, virtual memory, memory protection, integrated standards-based networking, etc.
So if we're on the subject of weird 90s OSes that never made it, there was another one that fits these criteria - Atari MiNT! It was an attempt to bolt UNIX semantics on top of TOS, which itself was already a weird mashup of CP/M and DOS. It ran on 68k ST boxes, and was about as bonkers as you'd expect, in ways that I can summarize with the pathname "U:\DEV\NULL".

I remember finding it kind of interesting, then going to uni and discovering linux and never looking back.

Fri, Dec. 7th, 2018 12:12 pm (UTC)

You've spoken of MiNT before. I can't tell if you love it or hate it. :-)

Just FYI, C:\DEV\NULL is a valid device on MS-DOS and any DOS-compatible OS, including Windows 10, as well.

This occasionally throws people even now:

As for MiNT...

There's an all-free distro of it now, called Afros:

The proprietary/commercial MagiC (née Mag!X, later MagiX) ST-compatible OS-cum-emulator:

... has recently been open-sourced by its developer, too:

The Thing desktop is also FOSS now:

I'm tempted to experiment and see if I can get a bare-metal TT emulator running on a Raspberry Pi and get an ST OS running on RasPi with as little OS underneath as possible.

Part of my interest is that the Sinclair QL's OS evolved into something called SMSQ/E that ran on the Atari ST -- even on emulators:

SMSQ/E is now open source, as indeed is Afros.

If Apple could bring classic MacOS to PowerPC via an embedded emulator, well why not try to bring the 2 classic 680x0 OSes which are now FOSS to ARM? :-D

Edited at 2018-12-07 12:13 pm (UTC)

Thu, Dec. 6th, 2018 11:44 pm (UTC)
Shebanator: Why Copland failed

I worked at Apple (and then Taligent) during the time when all of this was going on. In fact my first job at Apple was working on the DTS team supporting A/UX and MPW.

I was kinda surprised you failed to mention Pink (which became Taligent later), since it was actually the most ambitious OS effort at Apple by far.

Copland failed because there were huge political fights between the Copland team, the folks working on System 7/8/xxx, and the Pink folks over what should be the future of Apple. Pink lost those battles earliest and got spun out. When Copland's schedule kept slipping and slipping, it forced Apple to go out and look at Next and BeOS as alternatives.

A/UX was really never in the conversation. It was big and slow, and it got very little developer uptake. I miss it, though.

Fri, Dec. 7th, 2018 12:37 pm (UTC)
liam_on_linux: Re: Why Copland failed

Fascinating. Thank you for that!

I didn't mention Pink for two reasons.

[1] the Quora questioner didn't ask about it. :-)

[2] Copland at least got as far as something that could boot. There are screenshots out there:


... and...


I was watching this closely at the time, as someone who used, supported and wrote about Macs, but ran Windows NT at work. I wanted Apple to succeed and thrive. Unlike most DOS/Windows people -- and now a Linux user and pro -- I always liked and respected the Mac.

Pink, OTOH, was too nebulous, too all-singing all-dancing. It was a wishlist of what everyone thought a next-gen OS had to be. For example, something that integrated OS/2 and MacOS? Naah.

I am afraid that I never believed in it. I never thought it would be finished or ship.

And I was, overall, correct.

Apparently, some parts of its class libraries ended up in IBM VisualAge C++, and some in Java. That's good -- all that effort wasn't wasted.

Allegedly, some bits even shipped:

Of course, a part of the WorkPlace OS did escape as a beta -- WorkPlace OS/2 for PowerPC:

But despite IBM's brave words:

... it was clear that a ground-up rewrite of what was already a fairly niche OS, for a different CPU, was not going to be a good bet. I'm surprised it got that far, to be honest.

Fri, Dec. 7th, 2018 09:33 am (UTC)
Ernő Zalka: MacOS in Amiga

On Amiga, there was a MacOS emulator, it was running

1. native (as Amiga was equipped with MC68000 family microprocessors, and there was no interference between the AmigaOS and the Mac API)

2. on a separate _screen_, which was pretty practical and also looked amazing

3. as AmigaOS was a real multitask OS (yes, without memory protection), and the emulation meant only system call wrappers: the Mac tasks were running parallel, so the Amiga was the first multi-task Mac

(Probably I'm wrong, I was just playing with it, has not used for serious things.)

Fri, Dec. 7th, 2018 12:45 pm (UTC)
liam_on_linux: Re: MacOS in Amiga

Thanks for that!

Yes, I knew of it. In fact it is an ambition of mine to get a Mac emulator running on my A1200 one of these days.

There was a Mac ST emulator, too:



You can even watch it booting!

It didn't multitask, but it did work and reportedly was highly compatible... and substantially cheaper than an actual Mac.