Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
How 'Marklar' OS X on Intel owes its start to a one-year-old boy (tuaw.com)
59 points by srikar on June 10, 2012 | hide | past | favorite | 32 comments


Direct link to the original Quora answer: http://www.quora.com/Apple-Inc-2/How-does-Apple-keep-secrets...


The bigger reveal seems to me that Steve then took the Vaio laptop running OS X to Japan (or Hawaii, see below) to meet with Sony. This is well after Apple had killed off their clone business, but it seems they were looking at a possible licensee deal? I can't begin to imagine how different the last 10 years would have been in the tech world if Sony had (finally) licensed Mac OS.

(quora comment mentioning Hawaii meeting: http://www.quora.com/Apple-Inc-2/How-does-Apple-keep-secrets...)


"Star Trek" was another Apple skunkworks project for x86, but Star Trek was running Mac OS on DR DOS in 1992!

https://en.wikipedia.org/wiki/Star_Trek_project


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.


I've never really done a whole lot of lower level programming but IIRC 68K/PowerPC was big endian and I believe that a lot of Carbon was pretty stubborn about that.

Also I don't know how much Altivec code would have needed to be ported to SSE (if any).


Excuse the pedantry, but it was Driver Kit in NEXTSTEP.


>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)


Worth noting, though, that those x86 builds used, and that classic theme was built in, Display Postscript.

The newer Quartz display subsystem only ever shipped for the PowerPC in the dev previews.


And the kernel changed from Mach 2.5 to Mach 3, see http://en.wikipedia.org/wiki/XNU.


There was also the odd Rhapsody project, which delivered a BSD-based Mac OS on x86 since 1997: http://en.wikipedia.org/wiki/Rhapsody_(operating_system) - wonder how that fits in with the quora post.


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.


Rhapsody as a Developer Preview was shipping in 1997 or 1998, within 2 years of Apple buying NeXT. Yes, it ran on x86.

You can see the timeline here: http://en.wikipedia.org/wiki/Rhapsody_%28operating_system%29

Rhapsody was the first OSX.


Rhapsody ran on x86 and PowerPC in 1998. This story says that by 2000 OS X no longer ran on x86 and required 18 person-months of effort to get it working again. That's a lot of bitrot.


I could believe it.

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.


I had the impression that NeXT had very high coding standards[1] including endian-neutrality and processor portability; I guess that went by the wayside during OS X development.

[1] Perhaps too high, considering the failure of original NeXT.


What was Apple supposed to do, fire all of their existing PPC C++ programmers and hire a whole new team? No, they utilised their existing resources very effectively to finish the Mac OS X project in surprisingly short time. Apple made the smartest possible move considering commercial realities.


Bogus - NeXTStep already ran on a few CPUs architectures: M68K, PA-RISC, INTEL. It wasn't a stretch for OS X to run on Intel or any other type of CPU Architecture. OS X owes its start to NeXTStep and nothing else.


OSX in 2001 (the time of this story) had evolved significantly from the NeXTStep of 1996 (when Apple bought NeXT). There was a lot of work to be done to bring all the Rhapsody and Yellow Box work to a second architecture.

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. :)


If a group of people can hack together a working MacOS Classic environment for BeOS (http://sheepshaver.cebix.net/) without source-code for the all-important ROM, there's nothing implausible about this story at all.

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.


Yes, take the account from the perspective of actual Apple employee, much more the one responsible for the side-project, and add your internet commenter "bogus" on it.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: