Darwin-xnu: The Darwin Kernel
github.com
github.com
I am happy they are making sources available. It would be wonderful if Apple started developing their kernel in public (I would like to read those code reviews). What tools they use should be up to the developers.
I'm not saying it's useless, but it's certainly much less useful than a proper version-history, and very much a declaration that it is in no way intended to be a collaborative project.
But I guess that shouldn't surprise anyone either. It's Apple, after all.
[1] Yes, technically "not Apple" in the sense that Node.js isn't Joyent.
[2] Admittedly partial credit at best since they've orphaned it in favor of their proprietary Metal API. I'd guess however that Metal will get open-sourced pretty soon.
What is new however is that Apple is now seemingly actively using GitHub to publish their opensource contributions.
XNU is built on Mach (initially 2.x back when it was NeXTStep/OpenStep, later 3.0 for OS X), but everything runs in a single address space. Mach ports are retained throughout the OS as a communication mechanism, including userland, but all the core stuff is in the kernel, and Apple has transitioned many Mach port IPC responsibilites to more traditional syscalls to work around the fact that ports are comparatively slow. For example, all POSIX operations such as read and write are BSD syscalls that correspond to entrypoints in the kernel; they're not IPC messages.
This is not true. iOS components were always stripped out until now.
We're working on a full iPhone emulator based on QEMU, and currently, while we are able to boot into early userspace from an unmodified iOS image, the release of the iOS-specific code will be quite helpful in speeding up bug elimination and the development of the virtual graphics hardware that can get us past a basic graphical framebuffer.
https://github.com/joshumax/QEMU-s5l89xx-port
Or this:
https://github.com/nvsio/qemu-ios
Found sort of via this:
https://www.reddit.com/r/jailbreak/comments/6crw5t/question_...
I assume they won't mind my sharing. They posted it publicly with the same username and have public Git pages.
Although quick note, a lot of work is being done in a private repo until it passes the "clean room" test, after which it will be pushed to the public repos. :)
There seems to be some confusion on whether the iOS kernel was or was not newly open sourced and whether it's the complete iOS kernel or not.
https://github.com/apple/darwin-xnu/blob/master/pexpert/arm/...
It would be nice to see more of iOS open sourced. Not everything, but enough to run the GUI and maybe Safari.
I think that could be a huge win for Apple. Lower end, open source iOS compatible phone could attack Android offering, particularly at the lower end. They'd gain control over the market (as it would be derived from their source, and compatible with their ecosystem) without having to do much work.
Honestly, if Apple don't do it, someone should come up with an open source iOS compatible offering, which developers could easily re-target their apps to.
VCs reading this, I'm offering 15% for 3MUSD for the above idea. ;)
what you described is a loss of control. business is hard.
Apple doesn't need others to make lower and cheaper devices. They're more than capable of doing it themselves, they just don't want to.
Potentially they could convert many Android users to open source iOS. It wouldn’t come with the branding, I think it could be to their advantage.
It’s not likely to happen, but I think an open source iOS clone/fork would be nice and could also have potential benefits for Apple.
In 2016 Apple got 104% of the entire mobile industry's profit. Not revenue. Profit [1]
I hardly see how disappearance of Android would bring Apple any more advantages.
This year Samsung looks like they might beat Apple on profits ... due to large sales of components "to a major smartphone customer" [2]
[1] http://fortune.com/2016/11/04/apple-smartphone-profits/ [2] http://money.cnn.com/2017/07/27/technology/samsung-profit-ap...
How do you get >100% of the profits available in a given industry?
I should definitely try and get this funded. :)
I'm still somewhat curious why a iOS compatible open source clone might be a such a bad idea. Even if it was from a different vendor perhaps.
HN helped, but I'd credit WordPress.
Now of course, they're a behemoth company and I'm sure they're tackling complex problems, but they're not rewriting entire operating systems or browsers, they're not strong in the Cloud, they don't have a massive distributed systems offering, they're not creating whole new languages, which I would think is what gets the star engineers going on the middle to long term. The reason for that is that their current pace is more about refining things and not messing with a formula that's been making billions year in and year out for the past, what, 10 years?
You do raise a great point about the hardware part of their business though, I would agree, it is something that sets them apart from companies like Google, Facebook, Amazon or Microsoft and that is a game-defining aspect as far as attracting talent goes, though in a specific niche.
Apple is also doing a lot of cool stuff with hardware, AI, and machine learning, including hardware specifically designed for machine-learning products like Face ID.
In terms of distributed systems, the app store and iTunes media services are among the highest-traffic services on the internet.
All of this stuff involves a lot of behind-the-scenes work that is very interesting to engineers.
If anything it's a net negative.
It may help other developers understand how iOS works.
Overall, I think it’s unlikely to be hugely useful, in terms of actuallly using it for anything.
$ find . -name "*.c" -exec grep goto {} \; -print | wc -l
8701
Most of it to unify releasing resources on function returns to one place at the end of the function body. This is what makes RAII in C++ so important/convenient.It's interesting how Dijkstra's take on the use of goto has blinded a large number of developers on the practicalities of its use.
This reminds me of the C++ developer who, when asked what his favorite snippet of C++ source code was, replied with:
}macOS kernel has been open source since OSX came out.
(For software, there are plenty of alternatives).
For example I imagine there are a few people long unhappy with Darwin's open/closed hybrid state that are perfectly happy with Linux or *BSD ... And a bunch of those won't necessarily increase their happiness with Apple even if they open up a bit more. So it's correct to say Apple can't or won't please that type.
Why can my top-of-the-line desktop be libre but must my phone be locked down?
https://i.imgur.com/VE7kEeC.png
"debo" must have been an intern.