1 points par GN⁺ 2025-06-21 | 1 commentaires | Partager sur WhatsApp
  • La plateforme Infinite Mac permet désormais d’exécuter les premières versions de la série Mac OS X (10.1, 10.3) dans un navigateur web
  • Le portage de l’émulateur PowerPC PearPC vers Emscripten/WebAssembly a permis d’améliorer la compatibilité et la stabilité
  • La comparaison avec DingusPPC a conduit à des améliorations de performances et à la correction de bugs inexpliqués, au prix d’un travail d’optimisation algorithmique
  • Une image disque Infinite HD adaptée à Mac OS X a aussi été reconstruite, donnant accès à divers logiciels et outils de développement des années 2000
  • L’adoption du style Aqua pour l’interface renforce l’expérience rétro, tout en laissant entrevoir de futures évolutions

Résumé

Infinite Mac, le projet qui permet d’essayer en ligne d’anciens systèmes historiques sur la plateforme Infinite Mac, peut désormais exécuter dans les navigateurs web modernes les premières versions de Mac OS X comme 10.1 et 10.3. Pour y parvenir, des émulateurs PowerPC comme PearPC et DingusPPC ont été portés vers Emscripten/WebAssembly, avec de nombreux efforts consacrés aux performances et à la stabilité. Grâce à l’optimisation des algorithmes et à la correction de bugs, la résolution et la fiabilité ont été améliorées par rapport au matériel d’origine, tandis qu’Infinite HD a aussi été reconstitué avec les logiciels et outils de développement de l’époque pour renforcer son utilité pratique. Le site adopte également un thème Aqua afin d’offrir une expérience plus évocatrice, et envisage à terme une extension vers des OS encore plus rétro comme A/UX ou Lisa. Le projet illustre ainsi une tentative technique aux objectifs multiples, mêlant émulation logicielle, extension d’archives open source et reconstitution d’interface.

Extension de la prise en charge de Mac OS X

  • Infinite Mac a été porté de façon à permettre l’exécution dans le navigateur des premières versions d’OS X, comme Mac OS X 10.1 et 10.3
  • Il reproduit la lenteur des performances du matériel réel, tout en permettant d’essayer des applications emblématiques de l’époque comme NetNewsWire Lite et Terminal
  • Les images disque récentes incluent aussi une partie des logiciels indépendants de l’époque, ce qui facilite l’exploration des logiciels rétro

Processus de portage de PearPC

  • Au départ, le travail s’est concentré sur le portage et la modification de l’émulateur DingusPPC, mais des problèmes de kernel panic et de corruption graphique ont conduit à un changement de cap vers PearPC
  • PearPC est une base de code multiplateforme conçue au début des années 2000 pour exécuter Mac OS X sur x86, ce qui a rendu le portage vers WebAssembly relativement simple sans travail supplémentaire majeur
  • Récemment, le principal mainteneur de Basilisk II et SheepShaver a créé une branche expérimentale de PearPC, rendant sa compilation possible sur les versions modernes de macOS
  • Le code source est ancien et repose sur du C++ legacy, avec des particularités comme une classe string maison, sprintf, un décodeur GIF, etc.
  • Grâce à son architecture multiplateforme, à une conception utilisant très peu les threads et à des couches d’abstraction structurelles, le portage a pu être mené rapidement

Optimisations de performances et limites

  • Dans PearPC, la fiabilité du démarrage et de l’exécution de Mac OS X 10.2 était élevée, mais la vitesse d’exécution restait inférieure à celle de DingusPPC
  • La dégradation des performances est notamment importante en raison de l’absence de cache MMU
  • Diverses optimisations algorithmiques appliquées à DingusPPC ont aussi été reportées sur PearPC, ce qui a permis de réduire partiellement les temps de démarrage
  • PearPC n’implémente qu’un sous-ensemble des instructions PowerPC nécessaires et s’appuie sur plusieurs « cheats » comme un firmware et des pilotes personnalisés
  • L’espoir demeure qu’à long terme, DingusPPC soit plus prometteur pour une émulation Mac OS X à la fois rapide et stable

Découverte annexe : gestion des exceptions FP

  • Lors de l’introduction d’un mode de décodage unifié dans l’interpréteur de PearPC, des erreurs d’affichage sont apparues dans les calculs en virgule flottante
  • Le noyau de Mac OS X enregistre la gestion des exceptions selon l’état du bit FP dans le registre MSI ; une fois ce comportement implémenté dans le code, les problèmes de rendu ont été résolus
  • Le même oubli du bit FP dans DingusPPC provoquait aussi un rendu incorrect du texte, et sa correction a fortement amélioré la stabilité
  • Le traitement est ainsi passé d’un bricolage à une implémentation « dans les règles », améliorant au final de façon notable la fiabilité d’exécution de 10.1
  • La combinaison des deux émulateurs élargit l’éventail des versions d’OS X pouvant être exécutées

Reconstruction de l’image disque Infinite HD

  • Une nouvelle image disque adaptée à l’ère Mac OS X a été construite, avec de nombreux logiciels indépendants et outils pour développeurs de cette période
  • Les anciens fichiers .dmg ne pouvant pas être montés directement sur les versions récentes de macOS, un pipeline automatisé de conversion a été mis en place avec des outils comme dmg2img
  • Malgré certaines limites liées aux différences entre les systèmes de fichiers HFS et HFS+, la plupart des logiciels fonctionnent normalement
  • Un environnement logiciel du début des années 2000 a été reconstitué à partir de sources variées, comme des bibliothèques en ligne et la Wayback Machine
  • Une technique de génération dynamique d’images multi-partitions permet de monter jusqu’à trois volumes : disque de démarrage, Infinite HD et Saved HD pour le stockage

Interface : application du style Aqua

  • Le thème Aqua a aussi été adopté dans l’interface d’Infinite Mac afin de pousser au maximum la sensibilité rétro
  • Les ressources graphiques de style Mac OS X 10.0/10.1 ont été extraites directement afin de reproduire jusqu’aux effets de transparence
  • Le style des contrôles du site s’adapte automatiquement à l’apparence propre à chaque OS (Classic, Platinum, NeXT, etc.)
  • Alors qu’Apple prépare de grands changements d’interface pour macOS, le site peut aussi servir de « point de référence » pour les interfaces du passé

Fonctions supplémentaires et jalons

  • Ajout du montage de partition Mac OS 9 et de l’exécution de l’environnement Classic (prise en charge uniquement sur 10.1)
  • Il devient possible de documenter les différences d’UX entre OS, comme le comportement des opérations répétées dans l’ancienne application Calculator
  • Activation du mode messages de démarrage (Verbose) intégré à PearPC, et implémentation dans DingusPPC d’une méthode de définition des variables Open Firmware
  • Une extension de marque via le domaine macosx.app est aussi envisagée, même s’il appartient actuellement à un tiers

Extensions futures et conclusion

  • En élargissant la prise en charge de Mac OS X, Infinite Mac établit un lien avec le macOS moderne
  • Pour aller plus loin dans le rétro, des portages potentiels d’A/UX, Lisa, Pippin ou Newton sont également évoqués
  • Un intérêt expérimental existe aussi pour QEMU basé sur WebAssembly (wasm), avec des signaux positifs observés lors des tests de performances
  • L’émulation web de Mac OS X offre de la valeur dans divers scénarios IT/startup, qu’il s’agisse d’expérimentation, de préservation des logiciels legacy ou de tests de développement

1 commentaires

 
GN⁺ 2025-06-21
Réactions sur Hacker News
  • Un commentaire dit se souvenir que PearPC a assez bien fonctionné pendant plusieurs années avant la transition vers Intel, tout en regrettant qu’il ait perdu l’essentiel de son élan après la mort de son principal développeur dans un accident de train ; l’auteur, ancien utilisateur passionné et membre actif de la communauté à l’époque, explique que cela le rend encore triste aujourd’hui, et joint un article à ce sujet lien
    • Cela fait penser à de nombreux cas de brillants développeurs morts soudainement, sans même une notice nécrologique, avec parfois un seul autre développeur au courant ; de là vient l’idée un peu fantasque qu’ils étaient peut-être si talentueux que des extraterrestres sont venus les enlever sur Terre
    • Quelqu’un souligne qu’un tiers a volé le travail du développeur de PearPC pour le vendre sous le nom de cherryos
    • Un commentaire regrette qu’il y ait un paywall en essayant d’accéder à l’article
  • Infinite Mac est présenté comme une collection qui permet d’utiliser facilement, dans un navigateur web, des versions classiques de Macintosh et de NeXT ainsi que leurs logiciels ; lien associé infinitemac.org
    • Un avis dit qu’il aurait été préférable que le billet de blog ajoute un lien hypertexte vers Infinite Mac ou explique de quoi il s’agit
    • Quelqu’un se réjouit d’avoir découvert la page Infinite Mac et estime que l’auteur du blog a commis une grosse erreur en oubliant le lien vers ce site ; sans ce commentaire, il n’aurait jamais trouvé ce site incroyable
  • L’un des points les plus intéressants de l’article, pour certains, est l’existence d’un émulateur de CPU PPC implémenté en moins de 700 lignes de code ; voir une telle concision, habituelle sur un émulateur 6502, appliquée à une architecture relativement plus moderne suscite la surprise ; lien vers le code TinyPPC.cpp
    • D’autres répondent que ce n’est pas si étonnant, puisque c’est une architecture RISC, et précisent qu’un émulateur MIPS a une taille comparable
  • Un commentaire imagine ce que ressentirait aujourd’hui un passionné de tech de 20 ans en découvrant OS X 10.4 (ainsi que .5 et .6) ; en regardant une sculpture classique pendant les âges sombres, on pourrait se dire : « Comment l’humanité a-t-elle pu créer quelque chose comme ça ? » ; mais les goûts changent avec les époques et la génération actuelle pourrait au contraire trouver les icônes photoréalistes ringardes
    • Selon un avis, l’apparence et le fonctionnement de 10.4 restent fondamentalement très proches du macOS moderne : installation par glisser-déposer de dmg, signets Finder, comportement du Dock, arrivée de Spotlight ; par comparaison avec l’écart entre Windows XP et Windows 11, le Mac a moins changé
    • Une personne de 20 ans dit avoir un vague souvenir d’avoir utilisé 10.5 ou 10.6 étant enfant, et y voit surtout une forme de nostalgie personnelle
    • Quelqu’un raconte avoir commencé sa carrière de développeur à l’époque de 10.4/10.5, avoir bricolé un quasi mode sombre et des réglages de thème, et se souvenir qu’il était bien plus simple qu’aujourd’hui de toucher au dossier système
    • À propos de l’expression « âges sombres », un commentaire rappelle que dans le contexte historique, il ne s’agissait pas d’une perte des techniques ou des compétences, mais d’une différence culturelle et budgétaire entre empire et royaumes indépendants ; il ajoute qu’on trouve aussi de très beaux objets et bâtiments au haut Moyen Âge, citant notamment le bateau funéraire de Sutton Hoo et des églises anglo-saxonnes vus en personne
  • En voyant les captures d’écran, certains trouvent Mac OS X bien plus beau et mieux ordonné que le Mac OS actuel, avec l’impression que « dans un tel environnement, on aurait vraiment envie de travailler » ; le Mac OS actuel paraît trop chargé et confus, et la personne demande si d’autres ressentent la même chose
    • Un autre répond que, dans l’interface, il ne rencontre au quotidien que la barre de menus, les trois points et Spotlight ; pour le reste, il utilise surtout des applications cross-platform basées sur le navigateur ou sur des systèmes de design tiers plutôt que l’OS lui-même ou des apps natives ; c’est pareil sous Windows, et l’aspect visuel lui fait peu d’effet
    • Quelqu’un dit préférer aujourd’hui les anciennes interfaces grises comme Win 95 ou macOS 9, qu’il trouve rassurantes et confortables, comme une simple calculatrice ou un pur outil
    • Un commentaire exprime sa déception : techniquement, le macOS moderne pourrait tout à fait reproduire l’ancien style, mais ne le fait pas parce que l’architecture logicielle n’est pas pensée de manière modulaire ; il devient difficile de croire que les éditeurs de logiciels savent encore bien concevoir leurs produits
    • Une autre personne explique préférer le mélange aqua et métal brossé de 10.3 Panther ; la barre de menus brillante de 10.4 Tiger lui paraît moins raffinée avec le recul ; 10.5 Leopard avait un Dock 3D spectaculaire, un menu supérieur transparent et des dégradés plus modernes, mais au final aqua et les textures métalliques restaient plus réussis ; les versions suivantes lui semblent plus fades
    • Quelqu’un se dit au contraire satisfait de la disparition du design à rayures de certaines fenêtres, qu’il trouvait un peu excessif
  • Certains disent que cela leur a rappelé de très bonnes anciennes interfaces : le Macintosh OS 8 de l’époque Platinum, l’élégance des éléments « lickables » de Mac OS X, ainsi que OpenLook, NeXTStep/OpenStep ou encore Windows 2000 ; les éléments d’interface de l’époque étaient clairs et cohérents, ce qui permettait de prévoir le comportement des contrôles et offrait une expérience homogène ; aujourd’hui, la personnalisation des thèmes est plus libre, mais au prix d’une perte partielle de cette expérience UI directe et cohérente
  • Un commentaire se dit surpris que le projet PearPC soit encore cité comme un exemple de réussite alors que plus de dix ans se sont écoulés depuis le dernier commit ; dépôt officiel github, fork personnel github ; même avec la prise en charge de WebAssembly ajoutée, le support x86-64 reste toujours présent ; il mentionne aussi un billet de blog sur l’ajout de NextStep à Infinite Mac lien du blog
  • Un commentaire dit simplement adorer ce genre de projet et affirme qu’Aqua, à son apparition, était une vraie révolution
    • À l’époque, presque tous les gestionnaires de fenêtres Linux proposaient un thème aqua, et Apple avait concrétisé l’OS dont rêvaient les utilisateurs attendant « l’année du desktop Linux » : un Unix grand public avec une excellente ergonomie et une large prise en charge des applications tierces, ce qui a conduit à un grand succès
    • Un autre estime qu’Aqua reste un design révolutionnaire : autrefois, on reconnaissait immédiatement les contrôles de fenêtre, alors qu’aujourd’hui ils sont au contraire devenus plus difficiles à distinguer ; il espère que Liquid Glass fera revivre en partie cette UX, et cite la cohérence et l’utilisabilité d’Aqua comme ce que Windows Vista ou certains thèmes Linux ont tenté d’imiter sans jamais l’égaler
    • Quelqu’un cite une phrase de Steve Jobs lors de la présentation d’« Aqua » : il s’agissait d’une interface entièrement nouvelle, inscrite dans la tradition propre à Apple, fluide comme son nom l’indique, et dont l’un des objectifs de design était de donner envie de la lécher rien qu’en la regardant
    • Un commentaire dit que Liquid Glass lui rappelle justement la philosophie de design de l’époque Aqua
  • Plusieurs personnes se souviennent du tout début d’OS X comme du véritable âge d’or du Mac : le matériel était alors très compétitif et le système d’exploitation au sommet de sa maturité ; puisque le matériel semble aujourd’hui vivre un nouvel âge d’or, certains espèrent que le logiciel finira par suivre ; mais sur les Mac récents, cette émulation reste trop peu réactive dans Safari pour être vraiment utilisable
    • Un avis estime qu’il est peu probable que Mac OS redevienne excellent
    • Un autre souligne l’ironie habituelle : le matériel apporte les performances, puis le logiciel vient les reprendre
    • Quelqu’un nuance, d’après son expérience sur les premiers modèles x86 : ce n’était pas vraiment compétitif en prix, les kernel panics étaient fréquents, les segmentation faults dans QuickTime pendant la lecture vidéo faisaient partie du quotidien ; il fallait sans cesse chercher des codecs pour lire divers formats de fichiers (wmv, divx), et les machines surchauffaient souvent à cause d’un design sans aérations pensé avant tout pour être joli
  • Enfin, certains approuvent l’idée que « ce n’est pas rapide, mais le vrai matériel de l’époque n’était pas tellement meilleur » ; sur la base d’une expérience Hackintosh vers 2008, ils trouvent que cette lenteur reproduit assez fidèlement celle des Mac de l’époque, ce qui renforce le réalisme ; ils se remémorent aussi les nombreux tâtonnements pour développer des apps destinées à l’iPod touch, tout en se disant soulagés qu’une installation ne prenne pas jusqu’à 24 heures