So, I’ve been sitting on this one for a few days now, since I decided to let the sensationalist headlines pass by before I took a stab at it. Developer Christina B. has started – and released code for – an amazingly intriguing project: implementing Darwin/BSD on top of the Linux kernel. Just to make this absolutely clear: it’s not her intention to allow iOS applications to run on this new, hybrid system. Let me reiterate: it’s not her intention to allow iOS applications to run on this new, hybrid system. This, however, does not make this project any less interesting.
Magenta implements Darwin/BSD on top of the Linux kernel, and is binary compatible with iOs 5.0 – which doesn’t mean iOS applications can run on it (most of the higher-level frameworks have not been implemented), but that it uses the same binary format. So far, it includes the following libraries: CoreFoundation, libstdc++, libobjc, libc++abi, libicucore, and libncurses. As part of libSystem, the following libraries have also been implemented: libmath, libunwind, libsystem_blocks, and libC.
“All libraries are compiled for vanilla Darwin, so nothing is compiled for Linux. The only exception is libC (which resides inside the dynamic linker) as it serves as the main bridge between the userland and the kernel,” Christina B. explains, “The final goal is probably recreating the iPhone OS 1.0 stack. I think this is a pretty feasible goal, considering the fact that there are so many open source libs that can be used to replace the proprietary libs used by Apple.”
She is very clear about the ability to run iOS applications – it won’t be able to do so, no matter how many headlines you may read to the contrary. “Just think about how much work is required to have a 100% compatible implementation of UIKit or Celestial. HOWEVER, the CoreOS part should be 100% (or 99%) compatible. Just not the higher level OS,” she notes, “If you’re just interested in this because it will ‘run iOS apps’ please go away.”
The project is still in its very early stages, but I like the attitude its developer has towards the project. No grand promises or overly slick websites – just code. Definitely a project to follow.