It’s still early days, but this has the potential to put more fuel on the Apple rumour mill fire than anything else in recent times. A BA thesis by Dutch student Tristan Schaap details how, during his internship at Apple’s Platform Technologies Group, he ported Darwin to a certain ARMv5 developer board. A few blog articles later, and the headline has already turned into ‘Mac OS X ported to ARM’. So, what have I been running on my iPhone and iPad all these years?
Tristan Schaap is a student at the Delft University of Technology in Delft, The Netherlands. The TU Delft is a well-respected technical university founded in 1842. Apparently, there’s close ties between Apple and the TU Delft, as Schaap was accepted as an intern at Apple.
Not just any intern, though – he was accepted into the Platform Technologies Group, a subdivision of the Core OS department responsible for embedded platforms in use by Apple. I’m not sure how intern-happy Apple is, but judging by the company’s focus on secrecy, I highly doubt they accept just anyone. This is further exemplified by the fact that after his internship, Schaap joined Apple as an employee.
His project as intern was pretty intriguing: it was his job to port Darwin, Mac OS X’s foundation, to an ARMv5te processor. More specifically, Marvell’s MV88F6281, a processor containing Marvell’s custom Sheeva core. His first goal was to get Darwin up and running in single-user mode; his second goal was to get it up and running in multi-user mode.
Schaap wrote a BA thesis about his undoubtedly awesome and gratifying experience working as an intern at the very core of Apple’s software division – I’m pretty sure several of you would die for such an opportunity. The thesis has been embargoed since 2010, when it was written (most likely at Apple’s request). However, the TU Delft finally published it recently, so now we can take a peek at just what Schaap was working on at Apple.
And here is where the internet goes wrong. Headlines about Apple working on porting Mac OS X to iPad-style ARM processors roll of the tongue nicely and fuel rumour fires quite well, but they’re wholly misleading and have little to nothing to do with either reality or with what Schaap has accomplished as an intern.
First and foremost, Mac OS X (large parts of it anyway, and most certainly Darwin) has been running on ARM for a long time, at least since the launch of the original iPhone, but most likely since years before that. Schaap even mentions this quite clearly in his thesis.
Second, Schaap wasn’t porting what people typically see as Mac OS X, but ‘only’ the lower levels we know as Darwin. That’s not to belittle the work Schaap has done, but just to make sure we understand what he’s been working on. Schaap is quite clear that he is porting Darwin, and not Mac OS X.
Third, he wasn’t porting it to ARM in general, but more specifically to ARMv5 – heck, to a specific ARMv5 core, even. This is troublesome for less technology-inclined people to understand, but ARM is not as (relatively) unified and compatible as, say, x86 or PowerPC is. ARM processors from different vendors, or even from the same vendor, generally aren’t particularly compatible. This is part of the reason why it takes many smartphone makers so long to port new Android versions to specific devices.
And lastly, technically speaking, Schaap wasn’t doing a port from scratch. He clearly explains some ARMv5 code was already in Darwin, but that it was neglected and incomplete. His project was more to get that code up and running and complete it. if you look at the release history of Darwin on ARM (roughly analogous to iOS releases), you can see why; the first iPhone ran an ARMv6 core, so ARMv6 code (and later) in Darwin is fully working and up-to-date. There has never been an ARMv5 iPhone (let alone an iPad) and as such, Apple never had much of an incentive to do much with that code.
It’s pretty obvious to anyone that Apple already has Mac OS X running on ARM, and there are probably several ARM-powered MacBooks, and maybe even iMacs, shuffling around the Cupertino campus. It would appear – but this is speculation – that Schaap’s project as an intern was more to allow him to demonstrate his skills and learn valuable things about working at Apple than it was about “porting Mac OS X to ARM”. Why would Apple leave such a valuable and sensitive task to an intern who has to write a public report about it?
In any case, Schaap’s thesis provides interesting insight into Darwin development at Apple, and that is reason enough in and of itself to read it.
Just wondering, since I’ve read that parts of the BSD userspace need to be installed when jailbreaking.
(And also, wouldn’t Apple’s wireless routers use Darwin?)