In recent days there has been a lot of talk about Apple’s decision to release the source code of the iOS kernel. Some owners have been able to lead to confusion, because in reality that core had been released for years: now, however, the published code has been extended, which also covers part of the one used for the 64-bit ARM architectures used in the new Apple SoC.
What does that mean? Although for the community of developers and scholars in this field that published code has some interest, the common of mortals, including users of iOS devices, should not get too excited , because this release of code will not allow much less than possible create something like an iOS for your Android smartphone. That hypothesis already existed in fact with Mac OS X when it was launched and part of the code was released, and that also did not (almost) anything.
The eternal promises of Darwin
Many may not know, but even before Apple launched Mac OS X published the source code of that operating system. They specifically released the kernel, called XNU (acronym for “X is Not Unix”, not”XNU is Not Unix”), about which Darwin published.
That project was an operating system derived from NeXTstep and the BSD operating systems and that used the code of other famous components such as the Mach kernel from which the XNU kernel was then used, now used in macOS, iOS, tvOS and watchOS.
Darwin had some interest for academics and developers, but that system lacked a graphic interface and many other components that made Mac OS X Mac OS X. Those who thought that Darwin would create a Mac OS X for PCs and laptops “unofficial” I was wrong, because those deficiencies were too important.
The project, however, was the germ of some derived platforms, the best known of which was OpenDarwin, a kind of Linux distribution based on that core and those components to which were added others that did allow the platform to be brought closer to “more normal” user experience. The project, for example, managed to integrate the GNOME desktop environment, but its success and popularity was very limited, and the last stable version was launched in 2004.
You may also like to read: Cyanogen is dead but the world of ROMs cookers (fortunately) is still alive
The developers, the most benefited
What happened to Darwin on PCs and laptops is analogous to what will happen with that release of code for mobile devices. In Reddit in fact they commented how the publication of code for architectures ARM of 64 bits is incomplete, something that limits even more the reach of a code that has certain relevance, but that of course does not seem to offer many options to end users.
In fact, the most interesting aspect of this code published on GitHub is the ability of developers and experts in this field to analyze this code in order to detect failures and security problems or, in some cases, try to contribute to improving certain basic processes and functions of the core of the system.
Others will certainly be able to take advantage of this code to “adapt” it to their own projects in the area of creating a new kernel for a mobile or desktop operating system, but it will be difficult for revolutions to take place here: the Linux kernel has been allowed for more than 25 years the same, and its versatility is clear, as evidenced by the fact that it was used as the basis of the Android platform.
It is interesting to note however how the license used for that code is the Apple Public Source License 2.0 (APSL), a license that is quite restrictive and as explained in TL, DR Legal has some important points against. Even the Free Software Foundation criticized two important points : it is not truly copyleft (it allows linking to completely proprietary files) and it is incompatible with the GPL, something that does not make it recommendable for this organization.
Forget about being able to access a cloned iPhone
It is nevertheless a relatively small part of that platform, as is the XNU core of iOS: the number of components external to the core is so remarkable that it is precisely what characterizes both mobile platform (including the important graphic user interfaces) are more those additional components than the core as such.
It seems unlikely therefore that this code will help the developer community to create an “iOS Open Source”, since the number of external components that make up Apple’s mobile operating system is amazing.
So, good for Apple when it comes to giving developers more information on how the core of their mobile operating system works at a low level, but do not expect too much from this release. Its scope, we repeat, is limited!