Comment by patrickgzill

14 years ago

I don't believe this story at all, at all... NeXTStep, the precursor to OS X, was running on a 486DX2/66 I had in about 1995.

NeXTStep ran on PA-RISC, Intel x86, Motorola 68K and SPARC architectures since well before 2000. Rumors of ports to other platforms such as DEC Alpha, MIPS, etc. were also around, but I have no idea whether or not this ever happened.

Supposedly Jobs had a "NRW" the NeXT RISC Workstation, which was a Motorola 88K based system running NeXTSTep, on his desk for quite some time. I have no way of knowing how true this. see http://en.wikipedia.org/wiki/Motorola_88000

Speaking as someone that had Marklar running on a beige box under my desk at Apple, this story is close enough to the reality of things. As people noted, there was half a decade between NeXTStep and OS X, and a lot of room for bitrot and divergence in that time.

The NeXT base made the project much easier, but there was still a lot of work involved with what was added later, and legacy Apple bits.

  • I'm very curious about what sort of work was involved in such a project. Presumably there was some sort of relatively low level compatibility layer involved, since Marklar was kept updated to run 10.2, 10.3 and 10.4, apparently with a small team (Quora post said the guy needed a project he could do alone).

    There were at least two other successful ports of MacOS to x86 back in the pre-Steve days, both described in Jim Carlton's book "Apple." Presumably those ports were trickier since they were porting code originally developed specifically for 680x0 chips rather than originally developed on a portable Unix-like operating system. Still, they were able to get things up and running remarkably quickly. Performance and bug fixing and third party compatibility were another matter.

    • Carbon et al was an issue. Rosetta wasn't there until the very end. You can get an idea of the lower level work by diffing the divergent Darwin sources from the time (two source branches were used, and Apple released distinct x86/ppc source drops)

How about the part where the team scaled up to a dozen people? Do you disbelieve there was enough work achieving feature parity to keep a team of engineers busy?

The article doesn't report it took JK 18 months to be able to boot into OS X, simply that that's when it got greater visibility. I think it's highly plausible that 1.5 years was enough time to get somewhere between "won't boot" and "everything works great".

Edit: re-read, and realized I made an assumption that wasn't explicit. I'm assuming that OS X diverged in significant ways from Next, and did not maintain compatibility for non-PPC architectures. I think that's highly likely. I'd also wonder how much of JK's time was spent dealing with device drivers.

Technically, all of the display code (Quartz) was not part of NeXTSTEP. NeXTSTEP used Adobe Display Postscript which cost too much and had too many licensing restrictions to be used on OS X. Also, all the code imported from Mac OS would beed to be converted.

  • These are all layers on top of the lower-level OS, which is the only part that would need to be ported; and it was already ported.

    Quartz is basically "Display PDF" instead of "Display PostScript" with the architectural difference being that DPS was client-server, with bits of PostScript being interpreted on the fly; while Quartz got rid of the round trips between client and server, merging everything into one faster, monolithic layer. I recommend you look at the PS and then the PDF specs, they are about 90% identical.

    The code imported from MacOS also ran in a separate "box" on top of the lower-level details.

    Really the best case I can make for my argument is to point out the similarity between NeXTStep's IOKit drivers and the OSX IOKit drivers. That is the part, that really DOES interface with the guts of the system.

    • Quartz was written new for OS X and didn't use any of the code from Display Postscript. The licensing fee for DPS was cost prohibitive for Apple and NeXT/Apple did not own the code. I am well aware of the PDF and PS specs (I have programmed in PS for a while). It should be noted that PS and PDF have diverged and PS looks to be no longer updating.

      I think you discount the complexity of Carbon a little bit.

      NeXTStep's IOKit uses Objective-C and the OSX uses a cut spec version of C++. Driver code is not compatible.

      1 reply →

>I don't believe this story at all, at all... NeXTStep, the precursor to OS X, was running on a 486DX2/66 I had in about 1995. NeXTStep ran on PA-RISC, Intel x86, Motorola 68K and SPARC architectures since well before 2000.

You missed the part where OS X diverged A LOT from NeXTStep in the years that followed.

1996's NeXTStep running on x86 and 2001's OS X running on x86 is a different beast altogether.

You seem to think OS X is just NeXTStep with a new theme -- actually it had lots of changes and hell of a lot of frameworks that didn't exist in NeXTStep.

From simple stuff (the window compositing manager, wasn't in NeXTStep, the Dock wasn't in NeXTStep, etc) to heavy additions: Carbon wasn't in NeXTStep, and it was absolutely crucial to OS X at the time, for easy porting of apps from OS 9.

  • up until OSX DP1 the x86 builds were regularly shipped to ADC members with a familiar Mac UI. it seemed like "Classic" aka OS7/8/9 binaries running with minimal emulation was the main reason x86 builds temporarily disappeared from the public eye (to a very strange shock & awe in journalistic circles upon its return)

  • Carbon sits on top of lower-level pieces - remember, we are talking about the guts of Mach and BSD and IO and drivers, not software that sits on top of it. There was definitely a Dock in NS :-)

    May I ask, have you ever used a NS3.3 or 4.2 based system for any length of time?

    • To get to the welcome to the Macintosh screen (per the original answer), we are talking about the software on top of it. Carbon was probably not an easy port (endian issues to start with) never mind the switch in vector units.

    • >Carbon sits on top of lower-level pieces - remember, we are talking about the guts of Mach and BSD and IO and drivers

      No, we also talk about all the higher level stuff -- the post says that he showed them a booting OS X, with Aqua, Carbon, apps et al running normally. This is not just porting the lower levels, this is a full stack port of OS X to x86.

      >*There was definitely a Dock in NS :-)(

      Not the Dock.app. The tiled NS dock has nothing to do with the functionality and look of the OS X app, it's a completely different app.

IIRC when introducing switch to Intel processors Jobs told that each version OS X was running on Intel since day one.

  • I love how polar opposite HN can be regarding Steve Jobs/Apple. When it comes to Steve saying something is revolutionary and fantastic everyone trots out examples saying he is wrong or that it was already done, but when something he says can be used to break an argument it is used as gospel.

    How about we chalk that up to marketing. I don't think the original Mac OS X ran on X86 nor would I be inclined to believe it.