¿Por qué los Mac no pueden ejecutar las miles de aplicaciones de Windows?

Al igual que la mayoría de los sistemas operativos modernos, el software que se ejecuta en ellos depende de una cantidad considerable de infraestructura y y servicios que el SO proporciona.

OS X no’ ejecuta aplicaciones de Windows de forma nativa por la misma razón que Linux no’ y Windows no’ ejecuta aplicaciones de OS X o Linux: la sobrecarga. Para ejecutar las aplicaciones extranjeras, tendrías que proporcionar todas las bibliotecas y servicios del sistema operativo de la plataforma extranjera. Esto requeriría almacenamiento adicional, RAM, recursos de CPU, añadiría complejidad e incurriría en enormes costes de ingeniería, todo ello para un producto que probablemente sólo ejecutaría una parte del software de la plataforma extranjera. En el caso particular de Windows, las librerías del núcleo del sistema operativo están tan mal documentadas y llenas de diversos errores que las aplicaciones de Windows dependen de que sean justas, que sería una tarea enorme implementar esa masa de espaguetis (en comparación, Linux es totalmente de código abierto, y el núcleo de OS X y muchos de sus marcos también son de código abierto).

Eso no quiere decir que no haya habido un esfuerzo. El proyecto Wine tiene como objetivo la ingeniería inversa de las API de WIN32 para hacer posible la ejecución de binarios de Windows en otras plataformas. Llevan trabajando diligentemente desde 1993 en esta tarea. Puedes descargarlo para OS X o conseguir una versión bien empaquetada para OS X en CodeWeavers. El problema es que todavía no está completo y aunque ejecuta mucho software de Windows. La API de WIN32 es y siempre ha sido un lío horrible – tanto es así que una de las mayores características de Windows 8 es una depreciación de las APIs tradicionales de la plataforma de Windows en favor de la nueva plataforma WinRT.

El software de máquina virtual como VirtualBox, Parallels Desktop y VMWare Fusion no hacen ningún intento de emular o traducir las aplicaciones de Windows en el entorno de OS X, en su lugar hacen algo que es técnicamente mucho más simple: simulan el hardware de un ordenador en el software. De hecho, la simulación de un ordenador completo es una tarea mucho más sencilla de llevar a cabo, y te permite instalar cualquier software que quieras en el ordenador simulado, ejecutar múltiples simulaciones al mismo tiempo, guardar el estado de la simulación en el disco, sacarlo de la memoria y recuperarlo más adelante… todo tipo de cosas interesantes. Esta es la forma más común de ejecutar aplicaciones de Windows en otros sistemas operativos porque, desde una perspectiva de ingeniería, es mucho más fácil, funciona muy bien, y ejecutará cualquier software tal y como lo haría en el hardware físico.