Estos últimos días se ha hablado mucho de la decisión de Apple de liberar el código fuente del núcleo kernel de iOS. Algunos titulares han podido llevar a confusión, porque en realidad ese núcleo llevaba años liberado: ahora, no obstante, se ha ampliado el código publicado, que también cubre parte del usado para las arquitecturas ARM de 64 bits utilizadas en los nuevos SoC de Apple.
¿Qué significa eso? Aunque para la comunidad de desarrolladores y estudiosos de este ámbito ese código publicado tiene cierto interés, el común de los mortales —incluidos usuarios de dispositivos iOS— no deberían emocionarse demasiado, porque esa liberación de código no va a permitir ni mucho menos que sea posible crear algo así como un iOS para tu smartphone Android. Esa hipótesis ya existió de hecho con Mac OS X cuando se lanzó y se liberó parte del código, y aquello tampoco sirvió de (casi) nada.
Las eternas promesas de Darwin
Puede que muchos no lo sepáis, pero antes incluso de que Apple lanzara Mac OS X publicó el código fuente de parte de ese sistema operativo. En concreto liberó el núcleo, llamado XNU (acrónimo de "X is Not Unix", no de "XNU is Not Unix"), sobre el cual publicó Darwin.
Ese proyecto fue un sistema operativo derivado de NeXTstep y de los sistemas operativos BSD y que usaba código de otros componentes célebres como el kernel Mach del que luego se derivó el propio kernel XNU utilizado ahora en macOS, iOS, tvOS y watchOS.
Darwin tenía cierto interés para académicos y desarrolladores, pero aquel sistema carecía de interfaz gráfica y de muchos otros componentes que hacían que Mac OS X fuese Mac OS X. Quienes pensaron que Darwin permitiría crear un Mac OS X para PCs y portátiles "no oficiales" estaba equivocado, porque aquellas carencias eran demasiado importantes.
El proyecto, no obstante, fue el germen de algunas plataformas derivadas, la más conocida de las cueles fue OpenDarwin, una especie de distribución Linux basada en ese núcleo y esos componentes a los que se les añadieron otros que sí permitían acercar la plataforma a una experiencia de usuario "más normal". El proyecto por ejemplo logró integrar el entorno de escritorio GNOME, pero su éxito y popularidad fue muy limitado, y la última versión estable se lanzó en 2004.
Los desarrolladores, los más beneficiados
Lo que pasó para Darwin en PCs y portátiles es análogo a lo que ocurrirá con esa liberación de código para dispositivos móviles. En Reddit de hecho comentaban cómo la publicación de código para arquitecturas ARM de 64 bits es incompleta, algo que limita aún más el alcance de un código que tiene cierta relevancia, pero que desde luego no tiene visos de ofrecer muchas opciones a usuarios finales.
De hecho lo más interesante de ese código publicado en GitHub es la capacidad que tendrán desarrolladores y expertos en este ámbito de analizar ese código para poder detectar fallos y problemas de seguridad o, en algunos casos, tratar de contribuir a mejorar ciertos procesos y funciones básicas del núcleo del sistema.
Otros ciertamente podrán aprovechar ese código para "adaptarlo" a sus propios proyectos en el ámbito de la creación de un nuevo kernel para un sistema operativo móvil o de escritorio, pero será difícil que aquí haya revoluciones: el núcleo Linux lleva más de 25 años permitiendo eso mismo, y su versatilidad es patente, como demuestra el hecho de haber sido utilizado como base de la plataforma Android.
Es interesante comprobar no obstante cómo la licencia utilizada para ese código es la Apple Public Source License 2.0 (APSL), una licencia que es bastante restrictiva y que como explican en TL;DR Legal tiene algunos puntos en contra importantes. Incluso la Free Software Foundation criticaba dos puntos importantes: no es verdaderamente copyleft (permite enlazar a ficheros totalmente propietarios) y es incompatible con la GPL, algo que no la hace recomendable para este organismo.
Olvídate de poder acceder a un iPhone clónico
Es no obstante una parte relativamente pequeña de esa plataforma, como también lo es ese núcleo XNU de iOS: la cantidad de componentes externos al núcleo es tan notable que precisamente lo que caracteriza a una y otra plataforma móvil (incluidas las importantes interfaces gráficas de usuario, por ejemplo) son más esos componentes adicionales que el núcleo como tal.
No parece probable por tanto que ese código sirva para que la comunidad de desarrolladores logre crear un "iOS Open Source", ya que la cantidad de componentes externos que componen el sistema operativo móvil de Apple es asombrosa.
Así pues, bien por Apple a la hora de dar más información a los desarrolladores de cómo funciona a bajo nivel el núcleo de su sistema operativo móvil, pero no esperéis demasiado de este lanzamiento. Su alcance, repetimos, es limitado.
Más información | Darwin-XNU en GitHub | Apple Open Source
En Xataka | ¿Es Apple un ejemplo a seguir en el mundo Open Source?
Ver 14 comentarios