Infinite Mac OS X
(blog.persistent.info)- La plataforma Infinite Mac ahora puede ejecutar versiones iniciales de la serie Mac OS X (10.1, 10.3) en el navegador web
- Se logró mejorar la compatibilidad y la estabilidad al portar el emulador PowerPC PearPC a Emscripten/WebAssembly
- Mediante la comparación con DingusPPC, se mejoraron el rendimiento y errores de causa desconocida, pasando por un proceso de optimización algorítmica
- También se reconstruyó una imagen de disco Infinite HD adecuada para Mac OS X, permitiendo acceso a diverso software y herramientas de desarrollo de los años 2000
- Se reforzó la experiencia retro con la aplicación del estilo Aqua en la UI, sin perder de vista futuras posibilidades de expansión
Resumen
Infinite Mac, el proyecto que permite experimentar en línea sistemas legacy desde hace mucho tiempo dentro de la plataforma Infinite Mac, ahora puede ejecutar en navegadores web modernos versiones iniciales como Mac OS X 10.1 y 10.3. En este proceso, se portaron a Emscripten/WebAssembly emuladores PowerPC como PearPC y DingusPPC, con múltiples esfuerzos orientados a mejorar el rendimiento y asegurar la estabilidad. Gracias a la optimización algorítmica y la resolución de errores, se incrementaron la resolución y la confiabilidad frente al hardware original, y también se reconstruyó Infinite HD con software y herramientas de desarrollo de la época para reforzar su utilidad práctica. Además, se aplicó el tema Aqua a la UI del sitio para ofrecer una experiencia nostálgica, y se contempla expandirse en el futuro hacia sistemas aún más retro como A/UX y Lisa. El proyecto muestra un intento técnico con objetivos múltiples, como la emulación de programas, la ampliación de archivos de código abierto y la restauración de interfaces.
Expansión del soporte para Mac OS X
- En Infinite Mac se portaron versiones tempranas de OS X como Mac OS X 10.1 y 10.3 para poder ejecutarlas en el navegador web
- Se recrea incluso el bajo rendimiento del hardware real, y también es posible probar aplicaciones representativas de la época como NetNewsWire Lite y Terminal
- La imagen de disco más reciente también incluye parte del software indie de la época, facilitando explorar software retro
Proceso de portabilidad de PearPC
- Al principio se concentraron en portar y modificar el emulador DingusPPC, pero cambiaron de rumbo hacia PearPC por problemas de kernel panic y errores gráficos
- PearPC es una base de código multiplataforma diseñada a inicios de los 2000 para ejecutar Mac OS X sobre sistemas x86, por lo que su portabilidad a WebAssembly resultó relativamente sencilla sin trabajo adicional importante
- Recientemente, el principal mantenedor de Basilisk II y SheepShaver creó una rama experimental de PearPC que permite compilarlo en macOS moderno
- El código fuente es antiguo y está basado en C++ legacy, pero presenta peculiaridades como una string class personalizada,
sprintfy un decodificador GIF - Gracias a su estructura multiplataforma, al diseño que casi no usa hilos y a sus capas de abstracción estructural, la portabilidad avanzó con rapidez
Optimización de rendimiento y límites
- Aunque la confiabilidad para arrancar y ejecutar Mac OS X 10.2 en PearPC era alta, la velocidad de ejecución era menor que en DingusPPC
- La degradación de rendimiento por la ausencia de caché MMU era considerable
- Se trasladaron a PearPC varias optimizaciones algorítmicas aplicadas en DingusPPC, logrando reducir parcialmente los tiempos de arranque
- PearPC implementa solo el subconjunto necesario de instrucciones PowerPC y utiliza varios “trucos” como firmware y drivers personalizados
- Aun así, se mantiene la expectativa de que DingusPPC sea más prometedor a largo plazo para una emulación rápida y estable de Mac OS X
Hallazgo adicional: manejo de excepciones FP
- Al introducir en el intérprete de PearPC un método de decodificación unificada, aparecieron errores de renderizado en operaciones de punto flotante
- El kernel de Mac OS X registra el manejo de excepciones según el estado del bit FP del registro MSI; al implementarlo en el código, se resolvió el problema de renderizado
- En DingusPPC también faltaba ese mismo bit FP, causando anomalías en el renderizado de texto; tras corregirlo, la estabilidad mejoró notablemente
- Se pasó de un manejo improvisado a una implementación “canónica”, mejorando de forma importante la confiabilidad para ejecutar 10.1
- Al combinar ambos emuladores, se amplió el rango de versiones de OS X compatibles
Reconstrucción de la imagen de disco Infinite HD
- Se construyó una nueva imagen de disco adecuada para la era de Mac OS X, incluyendo abundante software indie y herramientas para desarrolladores de ese periodo
- Como los archivos
.dmgantiguos no se montan directamente en macOS actual, se creó un pipeline automatizado de conversión usando herramientas comodmg2img - Aunque existen algunas limitaciones por las diferencias entre los sistemas de archivos HFS y HFS+, la mayoría del software funciona correctamente
- Mediante diversas fuentes, como sitios de bibliotecas y Wayback Machine, se completó un entorno de ejecución de software de inicios de los 2000
- Se introdujo una técnica de generación dinámica de imágenes multipartición que permite montar hasta 3 volúmenes: disco de arranque, Infinite HD y Saved HD para almacenamiento
UI: aplicación del estilo Aqua
- También se adoptó el tema Aqua en la UI de Infinite Mac para maximizar la nostalgia retro
- Se extrajeron directamente recursos gráficos del estilo Mac OS X 10.0/10.1 para reproducir incluso efectos translúcidos
- El estilo de los controles del sitio también se aplica automáticamente según la apariencia de cada OS (Classic, Platinum, NeXT, etc.)
- De cara a los próximos grandes cambios de UI en Apple macOS, esto también ofrece un “punto de referencia” de interfaces del pasado
Funciones adicionales y milestones
- Se añadió la función de montar particiones de Mac OS 9 y ejecutar el entorno Classic (solo compatible con 10.1)
- También permite verificar diferencias de UX entre sistemas, como el comportamiento de operaciones repetidas en la antigua app Calculator
- Se activó en PearPC el modo de mensajes de arranque (Verbose) integrado, y en DingusPPC se implementó el método de definir variables de Open Firmware
- También se intenta ampliar el branding mediante el dominio macosx.app, aunque actualmente está en manos de otra persona
Próxima expansión y cierre
- Con la ampliación del soporte para Mac OS X, Infinite Mac establece un vínculo con el macOS moderno
- También se mencionan posibilidades de portabilidad futura para A/UX, Lisa, Pippin y Newton, con una nostalgia aún más profunda
- Existe interés experimental en QEMU basado en WebAssembly (wasm), y las pruebas de rendimiento han dado señales positivas
- La emulación web de Mac OS X ofrece valor en diversos escenarios de IT/startups, como experiencias prácticas, preservación de software legacy y experimentación de desarrollo
1 comentarios
Comentarios de Hacker News
.dmg), los marcadores del Finder, el comportamiento del Dock e incluso la introducción de Spotlight ya estaban ahí. Frente al salto entre Windows XP y Windows 11, consideran que el cambio en Mac no ha sido tan grandesegmentation fault; también recuerdan que era rutina buscar códecs para reproducir varios formatos de archivo (wmvodivx), y que por querer verse bonitos ni siquiera tenían ventilaciones adecuadas, así que el sobrecalentamiento del equipo era frecuente