Los usuarios de Linux hace ya años que pueden correr aplicaciones de Windows en su sistema operativo gracias a Wine, un software que carga librerÃas del sistema operativo de Redmond y permite asà correr aplicaciones de éste de manera nativa.
Sin embargo, hasta ahora no existÃa un equivalente para hacer lo mismo con aplicaciones de OS X. Darling viene a cubrir esta carencia, con una capa de emulación para correr aplicaciones del sistema operativo de la manzana en Linux. Su desarrollador LuboÅ¡ Doležel lo cuenta asÃ:
El objetivo es conseguir soporte de binarios compatibles para Darwin/OS X en Linux, para además ofrecer herramientas útiles que ayudarán en la instalación de aplicaciones.
Para el que no lo sepa, Darwin es el núcleo de OS X, que por su parte es open source, y es lo que permite que Darling cobre vida. El nombre nace de la fusión de los nombres “Darwin” y Linux”.
Todo suena muy técnico, pero resumiendo un poco, Darling implementa la base de OS X sobre Linux (Darwin, las librerÃas y los *framework) y asà las aplicaciones creen que están corriendo sobre un Mac, por lo que podrán ejecutarse.
Este proyecto nació hace cosa de un año, pero no se ha materializado hasta ahora. Aún asà está muy verde, y de momento es capaz de ejecutar algunas aplicaciones de consola, como Bash, VIM o el compilador GCC de Apple. Asà que olvÃdate de momento de tener aplicaciones como Tweetbot, iTunes, ReadKit o AirMail corriendo sobre tu Linux.
A pesar de que parezca lo contrario, que Darling sea capaz de llegar muy lejos es mucho más fácil que Wine, ya que la base de Windows no tiene nada que ver con el de Linux. Sin embargo, OS X y Linux comparten la base, que no es otra que UNIX.
¿Cómo funciona Darling?
Asà pues, una vez comience a crecer, Darling tendrá que dejar caer gran parte de su peso sobre GNUstep, una implementación de la API de Cocoa de código abierto. Éste proporcionará bastantes frameworks a Darling y será el gran culpable de que podamos o no correr ciertas aplicaciones con interfaz gráfica.
Por desgracia, Darling no usa ingenierÃa inversa sobre el código de Apple, ya que esto podrÃa ocasionar problemas legales con Apple. Aunque serÃa mucho más fácil portar los framework de Apple, no servirÃa de nada porque Darling y el entorno en el que corre es diferente al de OS X. Asà que no valen ports, sino que hay que adaptar las bases.
El procedimiento para que una aplicación de OS X corra sobre Darling es el siguiente: se examina qué frameworks y API utiliza, se miran las API que faltan en la documentación de Apple, y se implementan. El problema es que muchas veces la documentación de Apple es muy pobre en información, y no es por otra cosa que porque los desarrolladores de OS X no necesitan saber toda esta información tan interna de OS X para desarrollar sus aplicaciones.
El desarrollador afirma que aún faltan años de desarrollo por delante, y que al igual que en Wine, habrá una lista de aplicaciones compatibles que irá creciendo con el tiempo. Además, Darling funcionará en todas las distribuciones de Linux, aunque el tema de los 32 bit y 64 bit dará algún que otro quebradero de cabeza en los sistemas Linux.
Lo mejor es que como iOS también está basado en UNIX en un futuro lejano también será posible portar aplicaciones del sistema operativo móvil de Apple a Linux.
Darling | Web oficial