Apple Intern Spent 12 Weeks Porting Mac OS X To ARM
An anonymous reader writes "Apple hasn't released a Mac OS X device running on ARM yet, but a recently discovered thesis from a former Apple intern going by the name of Tristan Schapp details a 12-week project carried out in 2010 to port the OS to the ARMv5 architecture. The port got as far as booting to a multi-user prompt, but then hit hurdles to do with drivers and cache. The good news is that same intern now works for Apple as part of the CoreOS team. With rumors last year that a MacBook Air running on ARM could appear by 2013, could he be part of a team making that happen? If he is, I bet it will use the new ARMv8 architecture announced late last year."
NVIDIA is also working on high-end desktop/workstation ARM CPUs, under "Project Denver".
If something compelling emerges, perhaps ARM could be a player for sheer compute power.
Fat binaries might be useful again... ;-)
Galileo: "The Earth revolves around the Sun!"
Score: -1 100% Flamebait
If you really like freedom even a little bit, you need to recognize Apple's freedom to run their business however they want.
If you really like freedom even a little bit, you need to stop using rhetorical hyperbole posted on websites as a basis for decisions.
You do not have a moral or legal right to do absolutely anything you want.
It's always disconcerting to be on the wrong end of the power/performance curve when it means your computer will have less raw CPU in search of lower power requirements.
However, a change of platform generally means new compilers and fresh code.
I'm not convinced there will be any real-world performance difference when this is factored in.
Its not like Apple hasn't changed CPU architectures before. 68K->ppc->intel and if you want to count the Apple II, you can also include 6502->68k
I am Slashdot. Are you Slashdot as well?
You have to click through a lot of links to get there, but the PDF of his dissertation is online at his university's website: http://repository.tudelft.nl/assets/uuid:2f66fe0c-4080-4148-a01c-acd530160797/Report_BSc_complete.pdf
Sounds like standard intern hazing.
"Hey, Tim, take this source code (*drops huge book of source on desk*) and port it to... uh... ARM."
**12 weeks later.**
"Holy crap, he made it work."
At least it wasn't SPARC.
As how meany big apps will want to change architecture on apple yet again?
This may brake Photoshop plugins as well
Dropping X86 will take away windows dual boot as well.
Steam games and other games may also die on the mac
Assumption is its for the new mac book.
Would be funny if it turns out to be the much rumored apple tv.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
If you really like freedom a little bit, you need to be on your guard lest all manufacturers of computing devices priced for home users collude to design their products to take away the computing freedom of home users. This already happened decades ago in the video game industry.
It's no secret that one of the reasons Intel is subsidizing manufacturers over $100M for the Ultrabook project is to keep ARM at bay. This is compounded by Microsoft offering a ARM version of Windows. Apple putting out a really nice A8 MacBook Air could really shake things up.
However, the real issue Apple is going to have is MacOS or iOS. There's a lot of compelling reasons to move to iOS for Apple, but ultimately the closed nature of iOS would likely alienate the large programmer base they have built up.
Um... the A4 and A5 are ARM chips. That's what they're talking about this hypothetical MacBook Air running on.
"A more likely scenario is a MacBook Air based upon iOS with a built-in touchscreen."
An iPad with a keyboard? Not likely. But what kind of processor would make most sense to put in such a device? How about one that iOS already runs on: ARM.
http://alternatives.rzero.com/
Getting in the door with an internship is quickly becoming the best way to not get paid to do something you weren't hired to do.
When the foot seeks the place of the head, the line is crossed. Know your place. Keep your place. Be a shoe.
Since the various ARM SoC devices are radically different in how they boot and ennumerate devices a 12 week port time is pretty impressive but Darwin aready runs on arm v5 (and v7). iOS uses the darwin kernel. Since this was a marvell and not a samsung/apple A device a lot of work would have to be done to get the kernel to boot but the basic build system already fully supports ARM.
It's not a secret Apple keeps their options open arch-wise. After the switch the Intel it came out apple had an x86 build of darwin running for years before the switch was decided on. Keeping code portable is a good way to flush out bugs you might have otherwised missed and allows apple to try projects like iOS without a massive effort to get the basic system up and running.
iPAD and iPhone will obiovusly be getting arm v8 chips in a few generations. And I could see apple doing a hybrid macbook air that uses an arm chip to do background network access and the like but it's going to be a long time before ARM chips are playing in even Sandy Bridge territory, let alone what Intel will have in 2 years. I really don't see an arm-only apple notebook anytime soon.
Apparently you don't understand that the 30% is essentially the cost of running the store. Apple makes only a little bit of profit on the App Store.
If I used a sig over again, would anyone notice?
OS X is nowhere near "totally locked down".
But to answer your question, it matters to anyone who wants to be able to run apps written and compiled for a different CPU.
http://alternatives.rzero.com/
http://www.osnews.com/story/25588/No_Mac_OS_X_wasn_t_ported_to_ARM_by_an_intern
I'm reminded of this joke.
http://www.tensionnot.com/jokes/operating_systems_and_airlines
I am Bennett Haselton! I am Bennett Haselton!
Obarthelemy explicitly mentions the "30% cut of whatever they do allow you to sell on their platform". How you go from there to the $99/year entrance fee is quite mind-boggling.
You do need a password to log-in; I can't believe Apple would do that to us!
Um the closed console model for phones existed long before Apple. The reason most people don't remember back then didn't buy many apps because they were all shit. And back then it was the carrier controlling the access not the phones manufacturer. And you were lucky to get if the store only took 45%.
Well, there's spam egg sausage and spam, that's not got much spam in it.
Compared to iOS, OS X is a hippie commune all smoking freedom joints in a big freedom love-in; but it has its quirks...
That's just tepples. He lives to complain about Apple, logic need not apply. He'd complain that Apple products are racist because they are all white (if you conveniently ignore the other colors they have in their products).
Well, there's spam egg sausage and spam, that's not got much spam in it.
That's like saying America is socialist because of the welfare state or is laissez-faire because we have a robust capitalist system. Neither is true and it is a matter of degrees.
Not being open source doesn't make something "completely locked down." If that's what you want, more power to you, download Linux or FreeBSD.
Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
Yeah, that 30% cut for handling all the credit card processing, hosting, bandwidth, servers, storefront etc... Such a travesty.
Seriously, the 30% cut just for managing the payment stuff *alone* is a bargain, as anyone who has ever had to handle a merchant account and payment processing will tell you, especially for small transactions. It is very expensive and time consuming to deal with.
Apple's official financial statements have confirmed year over year that they do not make much at all on the store - the 30% really just covers the cost of running the thing. That's not the point of the exercise for them, though - the store exists to drive hardware sales, and the third party developers are a major part of that.
If you're stuck thinking that the 30% cut is some sort of daylight robbery or "quite bad" then you really have no idea what the costs (in time, resources and hassle) it is to handle distribution yourself.
Also, "responsible for translating the closed console ecosystem to phones"? How short is your memory?! Phones were anything *but* open before Apple entered the market. If anything Apple has made it more open, by driving the success of its main competition - Android.
Why don't you set up a store and find out? You pay for the bandwidth to download CS5.5 for 20,000+ people. And program the interface. And support all the credit card transactions. etc. etc. etc.
There are two types of people in the world: Those who crave closure
Microsoft is actively developing Windows 8 for ARM.
Also, the current MacBook Airs (with SSD boot devices) are already darn close to your description of an instant-on laptop.
http://alternatives.rzero.com/
[Industry-wide lockdown] already happened decades ago in the video game industry.
Happened decades ago with everything Apple too.
I agree with you that it happened long ago with iPod and iPhone, but how "decades ago" and how "everything Apple"? A copy of Xcode is bundled with every Mac (or at least was bundled with a Mac mini in the third quarter of 2009), and the computer's user can use it to develop Mac apps on a Mac without paying any separate annual fee.
Do you really think it costs that much to run a software repository?
Do you really think that the app store is a simple software repository? Apple writes and maintains the software to interface with the apps, runs the billing system and pays the credit card fees, vets apps and handles legal issues, buys bandwidth and server space, performs advertising, etc.
This is all done on a much larger and more involved scale than the usual "set it and forget it" software repository. Obviously Apple does make some profit from the app store but there's no doubt that they have significant expenditures in running the thing. Is 30% too much? Not when you compare it to how much other distribution channels take off the top. I'm sure if there is more competition then you'll see that 30% get shaved but right now 30% is pretty darn nice for what you get.
Sapere aude!
Due to a wonderful concept called "free markets" this will almost certainly not happen.
An oligopoly isn't especially a free market. Microsoft has announced that it will require OEMs of devices running Windows 8 for ARM to configure UEFI such that it won't boot anything but Windows 8.
That is, unless perhaps the government decides that "free computing" is dangerous, and mandates that all PCs are locked down.
This almost happened with the SSSCA/CBDTPA proposal. It's also starting to happen with a patent land grab on the part of companies opposed to free computing, namely Microsoft and Apple. Microsoft in particular rakes in royalties for Android equal to those for Windows Phone 7.
Until then, someone will always offer "unlocked" computers due to market demand.
Take this scenario for example: A locked computer costs $200, and an unlocked computer costs $2,000, and you have to be an established business with a secure office to qualify to buy an unlocked computer (source: warioworld.com among others). To what extent will the market demand unlocked computers under such conditions?
One of the more interesting developments in the area of "cheap, general purpose computing" lately is the sub $50 Raspberry Pi. Now there's a hacker platform if I've ever seen one!
But will it stay sub $50, or will the price shoot up as they run out of stock and people start reselling them for a 300% premium or more on eBay, like a recently launched game console?
One undergraduate spending 12 weeks porting Darwin (!) to a new CPU architecture as part of their senior internship should not be used to infer anything about what Apple will be doing moving forward. Have people lost their minds? This is the biggest non-story I've ever read. He could just as easily been doing this with *BSD or Linux or OpenVMS or whatever. Honestly.
TFA says he ported Darwin - the open-source version of the OS X kernel - and got as far as a multi-user login prompt (he'd need some of the BSD toolchain to get that far, but you could run BSD on the ARM-based Acorn Archimedes in the early 90s). Not to be sneezed at as an intern project - but a long, long way from porting "OS X".
Its the difference between porting "Linux" (in the correct sense of the name - i.e. the kernel) and porting Linux + GNU tools + X.Org + KDE/Gnome + ... in order to make something resembling modern Linux distro.
Not that its remotely unfeasible to port OS X to ARM (nobody outside of Apple knows how much of iOS code is directly ported from OS X but economic common sense says "as much as possible") and I'd be unsurprised if Apple had an ARM-based Mac lashed up behind a closed door at Infinite Loop. Apple know a thing or two about supporting multiple processor architectures and It might just make sense as a stop-gap between the iPad and the Air if it offered size/weight/power savings over Intel. Feasible, but probably not likely.
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
1) Power consumption. ARM devices can use fractions of 1W. Atom is getting better but it was at best 2.5W and 2) Customizable chips. While only a handful of manufacturers like Qualcomm can change the ARM core for customers, many can customize the chip with memory, GPU, etc for the customer if required.
Well, there's spam egg sausage and spam, that's not got much spam in it.
You do have freedom. Apple has never said that they were it. If you want freedom go for Android. But the flip side is you are more likely to get malware.
Well, there's spam egg sausage and spam, that's not got much spam in it.
"Apple learned their lesson last time with the G3/G4/G5 chips"
Which lesson is that? Keep your code portable? The G3, G4 and G5 were all PowerPC processors. They switched away from them to Intel, and supported both architectures (as well as PPC and Intel 64 bit architectures) at the same time.
Like the volunteer efforts to get Ubuntu running on the Asus Transformer series, perhaps there's a niche for a device that can run iOS and Mac OS - AT THE SAME TIME! The next-gen ARM chips support hardware virtualization.
Dock a keyboard and your iPad becomes a mobile OS X workstation for those who need to 'get real work done'. Not all of us need 'legacy' amd64 apps like Photoshop. :-) All the iApps would seamlessly share settings from a common home directory - surprising? not really, same code underneath, just reskinned.
Developing iOS apps in Xcode on the same CPU architecture via a hypervisor should be trivial. Apple would instantly double their iOS developer base, as the disincentive to have to additionally buy a $1000 Mac disappears. And yeah, these quad core CortexA15 ought to be grunty enough to run Xcode provided they're partnered with a decent amount of RAM.
I haven't owned any Apple products since the days of 68k but I'd strongly consider a device that supported seamlessly running both OSes rather than fiddle getting desktop Linux running on a tablet designed for Android (no acclerated drivers for Xorg etc.)
I guess I'm not the target market though...
And considering an intern could port a complete OS port in a mere 12 weeks, shows how portable it is. This person presumably had never touched the OS-X source before, yet manages to pull it off ...
It sounds more like Darwin that Mac OS X in a form the average user would recognize. From the summary: "The port got as far as booting to a multi-user prompt, but then hit hurdles to do with drivers and cache." If so he probably was familiar with it since Darwin is open source, http://www.apple.com/pr/library/2000/04/05Apple-Releases-Darwin-1-0-Open-Source.html.
That said, the intern did great work, I'm happy he got hired by the CoreOS team.
... I suppose portability is simply part of the demands by management ...
I would not be surprised to find that this is just an internal effort to verify portability. Replacing PowerPC as the "other" architecture since ARM represents a viable contingency. It might be wishful thinking to expect an ARM based Mac at any time in the near future.
... I don't think Microsoft will have such an easy time if they were ever to switch to another architecture.
Windows NT was portable from day one of internal development, MIPS and x86. Windows NT 4 shipped with four supported architectures on the standard retail CD: x86, MIPS, Alpha and PowerPC. While subsequent commercial versions of Windows NT only supported one architecture, well two if you count x86 and amd64 separately, Microsoft supposedly continues to build internally on some "other" architecture to maintain portability.
Twelve weeks is a specious number. Interns (i.e., no life) given an interesting project (and they're more likely to be interesting to interns) or trying to impress will often put in 80+ hours a week, so 12 weeks can easily mean 24 or 36 weeks. Granted there'll be some time wasted due to lack of knowledge, but that'll be more than compensated for in poor quality; Not necessarily in terms of errors, but quality in terms of usability by whoever takes over after the internship term ends. (Maybe Apple had to hire the intern.) As someone else posted, "Free lunch!" Indeed!
IOW, the real news has very little to do with the inaccurate, misleading title.
Lets start with being able to get source code for the OS ...
Core OS, filesystem, etc ... sure:
http://www.apple.com/pr/library/2000/04/05Apple-Releases-Darwin-1-0-Open-Source.html
http://www.apple.com/opensource/
... or any of the apps ...
Mac OS X runs the same console and X11 apps as Linux. The X11 display server is well integrated into Mac OS X.
http://docs.info.apple.com/article.html?path=Mac/10.7/en/mchlp2276.html
... Then we'll continue by discussing the DRM.
What is there to discuss? The record industry initially required audio files from the iTunes Store to include DRM but Apple eventually got them to abandon DRM. Mac OS X does not require DRM or the use of the Mac App Store. You can distribute binaries directly to users if you wish. You can distribute open source apps if you like.
Windows NT was actually developed originally on MIPS - and ironically, on DECstation 3000s - a DEC MIPS based workstation that was sold w/ only Ultrix - not VMS, and not NT. It was later ported to Intel and Alpha, and when released, it was released for x86, MIPS and Alphas. Silicon Graphics was one of the first companies w/ an NT box based on the MIPS R4000 called Magnum, while DEC released an EISA based PC based on the 21064. Since then, a number of companies tried building NT boxes based on either MIPS or Alpha, but Windows on RISC failed to make any market inroads.
Problem was that while NT was a hybrid architecture to start with, more and more things were moved from user to kernel when NT went from 3.1 to 3.5 to 4.0. As a result, unlike NEXTSTEP, NT became less portable. Also unhelpful was the fact that MS never made any serious attempts to make NT/RISC successful the way they did w/ Windows 95. E.g. the only Office port they did was Word and Excel, ignoring things like Access. End result was that those platforms never took off, and finally, Microsoft canned its support for all of them, including the PowerPC. While ARM has supported Windows CE, on which Windows Phone 7 is based, ARM does not support NT, so Windows 8 on ARM will really be the first port of NT to the ARM, as opposed to the sixth port of NT to the x86. Which is another thing that ensures that Windows 8 on ARM will be a dud. Oh, and incidentally, count Itanium amongst the dead platforms that once ran any version of NT.
Which is why Microsoft doing their phone version of Windows 8 on ARM makes no sense. Anybody who gets anything that runs Windows will expect to somehow run the software they've probably paid good money for on their new tablets or even phones, which won't work if it is based on ARM. I understand that Microsoft may have finally done what they could to make Windows 8 more micro-kernel-ish in order to improve portability, but 10 years after the demise of most RISC platforms, I'd say it's rather late in the game, and it still doesn't solve the issue of ARM not running Windows. A more sensible approach would have been to take AMD's Fusion platform and make a tablet out of it, and use that as the reference platform for Windows Phone 8 or Windows 8 Compact Edition. That way, at least people can be sure that if they manage to install their PC apps on their Windows tablets, it has at least a prayer of working.
If you're willing to include software that was developed, but not released, there are:
m68k (original NeXT hardware)
i386 (NEXTSTEP for Intel processors)
SPARC (NEXTSTEP for SPARC)
HPPA (NEXTSTEP for PA-RISC)
Motorola m88k (NeXT RISC Workstation - never released, but a working copy was at Apple when I worked there)
PowerPC (Mac OS X Server 1.0, later developed into Mac OS X)
Significant bits of NeXT software were also ported to Intel i860 and DEC Alpha, but not enough of the OS to actually qualify as a "NEXTSTEP port"
His name must be Tristan Schaap. Not Schapp.
He used to work for me, but Apple made him an offer he couldn't refuse. When he left, he said he was going to work in security. Apparently they found something else for him to do :-).
As far as I know he went to apple for an internship, and after that they asked him: finish your studies and come work for us after that.
Apple has spent years and millions on research and development into LLVM which while not currently ideal as a solution for producing VM code friendly with both ARM and x86 or ARM8 and x64, is in theory supposed to be able to handle this. Apple has worked very hard to develop the LLVM project in such a way that it will sooner than later take over the role GCC currently plays on Mac OS X. LLVM and CLang have certainly reached a level of maturity where GCC can soon be the optional compiler as opposed to the main compiler on the platform.
In reality, with the exception of a small amount of code to get the LLVM virtual machine functioning on start-up, it would be possible to get the majority of the system up and running without the need for fat binaries. In fact, even if Apple simply stays with x64, this is a better option than using GCC in the long run since it would allow improvements to LLVM make improvements to how the system performs otherwise. Also by improving the kernel link loader, it would be possible to perform tracing JIT optimization across library boundaries at run-time. This could in theory improve system performance between 10 and 50% depending on how many calls across library boundaries are made.
So, fat binaries, while entertaining are of little use today. Especially when you're talking about two little-endian processors with an instruction set which, while different fundamentally, mirrors one another's capabilities quite closely.
Oh.... and in the area of "compute' power where the GPU is being used for general purpose computing, a more advanced LLVM back-end could in theory recompile certain traces of code to produce GPU specific code. This isn't "that useful" in normal every day code, but it can be extremely useful if any of the languages supported by CLang were extended to support SIMD types like float4 of float8.