How 'Marklar' OS X on Intel owes its start to a one-year-old boy
tuaw.com
tuaw.com
(quora comment mentioning Hawaii meeting: http://www.quora.com/Apple-Inc-2/How-does-Apple-keep-secrets...)
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
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.
May I ask, have you ever used a NS3.3 or 4.2 based system for any length of time?
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.
The newer Quartz display subsystem only ever shipped for the PowerPC in the dev previews.
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.
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.
Also I don't know how much Altivec code would have needed to be ported to SSE (if any).
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.
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.
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.
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.
You can see the timeline here: http://en.wikipedia.org/wiki/Rhapsody_%28operating_system%29
Rhapsody was the first OSX.
The period from 1996 to 2000 had many many hundreds of Mac OS programmers rewriting and adapting existing technologies over, much of it C++ not ObjC -- classic apis (aka Carbon), Quicktime, Sound Manager, Quartz, font management, speech, probably lots more I can't think of.
So that's hundreds of programmers over two years or more. And to introduce C++ compatibility into shedloads of new code takes a single person half the time? Probably while simultaneously teaching himself about the intricacies of a new hardware platform and hundreds of big libraries he's probably never coded for before?
I think it sounds impressive.
[1] Perhaps too high, considering the failure of original NeXT.
1.5 man-years? Plausible, I think.
This story is fairly content-free, and the source being that man-year worker's adoring wife, wrapping up a pleasant family history definitely squeaks of pablum. But the basic premise is believable. :)
The task of porting and keeping an OS under active development ported is no small task but certainly within the capability of a talented, knowledgable engineer.
Being based on NeXTStep made it easy. People working ACTIVELY on it made it possible.
You seem to have forgotten that on top of NeXTStep tons of stuff had been added in PPC land that weren't at all present: Aqua, for starters, tons of functionality ported from OS 9, the OS 9 filesystem and much more. That NeXT had a x86 port several years BEFORE OS 10 (0.1) was introduced means absolutely nothing.
And by the time it did come out publicly, it also had a translation layer, Rosetta, to run PPC apps.