1 pontos por GN⁺ 2025-06-21 | 1 comentários | Compartilhar no WhatsApp
  • Na plataforma Infinite Mac, agora é possível executar versões iniciais da série Mac OS X (10.1, 10.3) no navegador
  • O emulador PowerPC PearPC foi portado para Emscripten/WebAssembly, alcançando melhorias de compatibilidade e estabilidade
  • Em comparação com o DingusPPC, houve melhorias de desempenho e correções de bugs de causa desconhecida, passando por um processo de otimização algorítmica
  • Também foi reconstruída uma imagem de disco Infinite HD adequada ao Mac OS X, permitindo acesso a diversos softwares e ferramentas de desenvolvimento dos anos 2000
  • Com a aplicação do estilo Aqua na UI, a experiência retrô foi reforçada, mantendo em vista possibilidades de evolução futura

Resumo

O projeto Infinite Mac, que permite experimentar online sistemas legados há muito tempo, passou a suportar versões iniciais como Mac OS X 10.1 e 10.3, tornando possível executá-las em navegadores modernos. Nesse processo, emuladores PowerPC como PearPC e DingusPPC foram portados com base em Emscripten/WebAssembly, com vários esforços para melhorar o desempenho e garantir a estabilidade. Por meio de otimizações algorítmicas e correções de bugs, a resolução e a confiabilidade foram elevadas em relação ao hardware original, enquanto o Infinite HD, contendo softwares e ferramentas de desenvolvimento da época, também foi reconstituído para ampliar a utilidade. Além disso, o tema Aqua foi aplicado à interface do site para oferecer uma experiência nostálgica, e a expansão futura para sistemas ainda mais retrô, como A/UX e Lisa, também está sendo considerada. O projeto demonstra uma tentativa técnica de atingir múltiplos objetivos, como emulação de programas, expansão de arquivos open source e restauração de UI.

Expansão do suporte ao Mac OS X

  • No Infinite Mac, versões iniciais do OS X, como Mac OS X 10.1 e 10.3, foram portadas para rodar no navegador
  • Reproduzindo o desempenho lento do hardware real, também é possível experimentar aplicativos representativos da época, como NetNewsWire Lite e Terminal
  • As imagens de disco mais recentes incluem parte do software indie da época, facilitando a exploração de softwares retrô

Processo de port do PearPC

  • No início, o foco estava em portar e modificar o emulador DingusPPC, mas a direção mudou para o PearPC por causa de problemas de kernel panic e falhas gráficas
  • O PearPC é uma base de código multiplataforma projetada para executar Mac OS X em sistemas x86 do início dos anos 2000, o que tornou relativamente fácil portá-lo para WebAssembly sem trabalho adicional significativo
  • Recentemente, o principal mantenedor de Basilisk II e SheepShaver criou um branch experimental do PearPC, permitindo build em versões modernas do macOS
  • O código-fonte é antigo e baseado em C++ legado, mas traz particularidades como uma string class personalizada, sprintf e um decodificador GIF
  • Graças à estrutura multiplataforma, ao design com quase nenhum uso de threads e às camadas estruturais de abstração, a migração foi concluída rapidamente

Otimização de desempenho e limitações

  • No PearPC, a confiabilidade no boot e execução do Mac OS X 10.2 era alta, mas a velocidade de execução era inferior à do DingusPPC
  • A perda de desempenho causada pela ausência de cache de MMU era significativa
  • Várias otimizações baseadas em algoritmos aplicadas no DingusPPC também foram levadas ao PearPC, obtendo algum ganho na redução do tempo de boot
  • O PearPC implementa apenas o subconjunto necessário de instruções PowerPC e utiliza vários “truques”, como firmware e drivers customizados
  • Ainda há a expectativa de que, no longo prazo, o DingusPPC seja mais promissor para uma emulação de Mac OS X rápida e estável

Descoberta paralela: tratamento de exceções FP

  • Ao introduzir um método de decodificação unificado no interpretador do PearPC, surgiram falhas de renderização em operações de ponto flutuante
  • Como o kernel do Mac OS X registra o tratamento de exceções de acordo com o estado do bit FP no registrador MSI, o problema de renderização foi resolvido ao implementar isso no código
  • No DingusPPC, o mesmo problema de ausência do bit FP também causava anomalias na renderização de texto, e a estabilidade melhorou bastante após a correção
  • A implementação evoluiu de um tratamento improvisado para uma abordagem mais correta, melhorando bastante também a confiabilidade da execução do 10.1
  • Combinando os dois emuladores, o suporte foi ampliado para executar uma variedade maior de versões do OS X

Reconstrução da imagem de disco Infinite HD

  • Foi criada uma nova imagem de disco adequada à era do Mac OS X, incluindo muitos softwares indie e ferramentas para desenvolvedores daquele período
  • Como arquivos .dmg antigos não são montados diretamente no macOS atual, foi montado um pipeline automatizado de conversão com ferramentas como dmg2img
  • Há algumas limitações por causa das diferenças entre os sistemas de arquivos HFS e HFS+, mas a maior parte dos softwares funciona normalmente
  • O ambiente de execução de softwares do início dos anos 2000 foi completado com diversas fontes, como sites de bibliotecas e o Wayback Machine
  • Com a adoção de uma técnica de geração dinâmica de imagens multipartição, é possível montar até 3 volumes: disco de boot, Infinite HD e Saved HD para armazenamento

UI: aplicação do estilo Aqua

  • O tema Aqua também foi adotado na UI do Infinite Mac para maximizar a nostalgia retrô
  • Os assets de imagem do estilo Mac OS X 10.0/10.1 foram extraídos manualmente, chegando a reproduzir até os efeitos de translucidez
  • O estilo dos controles do site também é aplicado automaticamente de acordo com a aparência de cada OS (Classic, Platinum, NeXT etc.)
  • Em sintonia com a expectativa de grandes mudanças futuras na UI do Apple macOS, isso também serve como um “ponto de referência” da UI do passado

Recursos adicionais e marcos

  • Adição do recurso de montar partições do Mac OS 9 e executar o ambiente Classic (suportado apenas no 10.1)
  • Também é possível verificar diferenças de UX entre OSes, como o comportamento de operações repetidas no antigo app Calculator
  • O modo mensagens de boot (Verbose) embutido no PearPC foi ativado, e no DingusPPC foi implementada a forma de definir variáveis do Open Firmware
  • A expansão da marca por meio do domínio macosx.app também está sendo tentada, mas no momento ele está em posse de outra pessoa

Expansão futura e encerramento

  • Com a expansão do suporte ao Mac OS X, o Infinite Mac criou uma ponte com o macOS moderno
  • Para um retrô mais profundo, também são mencionadas possibilidades de port para A/UX, Lisa, Pippin e Newton
  • Há interesse experimental também no QEMU baseado em WebAssembly (wasm), com sinais positivos observados em testes de desempenho
  • A emulação de Mac OS X via web oferece valor em diversos cenários de TI/startups, como experimentação, preservação de software legado e testes de desenvolvimento

1 comentários

 
GN⁺ 2025-06-21
Comentários do Hacker News
  • Alguém comentou que se lembra de o PearPC ter funcionado de forma bastante bem-sucedida por alguns anos, até a transição para Intel, mas lamentou que o projeto tenha perdido quase todo o impulso depois que o principal desenvolvedor morreu em um acidente de trem; também compartilhou que era um usuário entusiasmado e membro da comunidade na época e que ainda hoje fica triste ao pensar nisso, anexando um artigo relacionado link
    • Isso fez a pessoa lembrar de vários casos de desenvolvedores brilhantes que morreram de repente e, em situações em que não há nem obituário e só um outro desenvolvedor sabe da notícia, acaba imaginando se eles não eram tão brilhantes que alienígenas os levaram da Terra
    • Alguém apontou que roubaram o trabalho do desenvolvedor do PearPC e o venderam com o nome cherryos
    • Outra pessoa lamentou que, ao tentar acessar o artigo, encontrou um paywall
  • Infinite Mac foi apresentado como uma coleção que permite usar facilmente lançamentos e softwares clássicos de sistemas Macintosh e NeXT no navegador, com o link relacionado infinitemac.org
    • Houve a opinião de que seria bom se o post do blog explicasse ou ao menos linkasse o que é o Infinite Mac
    • Alguém disse que ficou feliz por descobrir a página do Infinite Mac e considerou um grande erro o autor do blog ter omitido o link do site; sem esse comentário, não teria encontrado esse site incrível
  • Entre os pontos do artigo, o que mais chamou atenção foi o fato de haver um emulador de CPU PPC implementado em menos de 700 linhas de código; houve surpresa ao ver, em uma arquitetura relativamente moderna, uma concisão que normalmente se esperaria de um emulador de 6502, com link para o código relacionado TinyPPC.cpp
    • Outra opinião disse que isso não é tão surpreendente por ser uma arquitetura RISC e compartilhou que emuladores de MIPS têm tamanho parecido
  • Houve quem imaginasse como um entusiasta de tecnologia de 20 anos hoje reagiria ao entrar em contato com o OS X 10.4 (incluindo .5 e .6); comparando com a visão de esculturas clássicas em uma “idade das trevas”, comentou-se a sensação de pensar “como a humanidade conseguiu criar algo assim?”, embora também se reconheça que o gosto muda com o tempo e que a geração atual talvez ache ícones fotorrealistas cafonas
    • Uma opinião foi a de que a aparência e o funcionamento do 10.4 são basicamente muito parecidos com o macOS atual; instalação por arrastar .dmg, favoritos do Finder, comportamento do Dock e até a introdução do Spotlight já estavam presentes naquela época, e que, comparado à mudança entre Windows XP e Windows 11, o Mac mudou pouco
    • Um usuário de 20 anos comentou que lembra de ter usado por alto o 10.5 ou 10.6 quando era criança e que, pessoalmente, a sensação é mais de nostalgia daquele período
    • Outra pessoa compartilhou que começou a carreira de desenvolvedor na era 10.4/10.5, mexendo em algo como meio dark mode e ajustes de tema, e achava que naquela época era muito mais simples modificar a pasta do sistema do que hoje
    • Sobre a expressão “idade das trevas”, alguém explicou que, no contexto histórico, não se tratava de perda de tecnologia ou capacidade, mas de diferenças culturais e orçamentárias entre impérios e reinos independentes; acrescentou ainda que havia muitos artefatos e construções belíssimos no início da Idade Média, mencionando experiência pessoal ao ver de perto o enterro naval de Sutton Hoo e igrejas anglo-saxãs
  • Ao ver as capturas de tela, houve quem sentisse que o Mac OS X oferecia um ambiente muito mais bonito e organizado do que o Mac OS atual, passando a impressão de “nesse ambiente daria até gosto de trabalhar”; já o Mac OS atual parece bagunçado e confuso, e a pessoa quis saber se outros sentem o mesmo
    • Pessoalmente, outra opinião foi a de que a interface encontrada no dia a dia se limita à barra de menu, os três pontinhos e o Spotlight, e que na prática se usam muito mais aplicativos multiplataforma baseados em navegador ou em sistemas de design de terceiros do que o próprio sistema operacional ou apps nativos; no Windows seria a mesma coisa, então o aspecto visual não desperta grande emoção
    • Outra pessoa disse que hoje em dia até prefere interfaces cinzas antigas como Win 95 ou macOS 9, por transmitirem uma sensação estável e confortável, como a de uma calculadora, algo puramente utilitário
    • Houve frustração com o fato de que, tecnicamente, seria totalmente possível reproduzir o estilo antigo no macOS moderno, mas isso não acontece porque a estrutura do software não é modular; também se expressou decepção com a dificuldade de ainda confiar que empresas de software saibam fazer software direito
    • Pessoalmente, alguém disse preferir a mistura de aqua com brushed metal do 10.3 Panther; já a barra de menu brilhante do 10.4 Tiger pareceu menos sofisticada com o tempo, e o 10.5 Leopard tinha Dock 3D chamativo, menu superior transparente e gradientes mais modernos, mas no fim aqua e textura metálica pareceram mais elegantes; versões posteriores foram consideradas um tanto sem graça
    • Outra pessoa comentou que o design listrado do Windows era um pouco exagerado e que ficou até melhor depois que ele desapareceu
  • Houve o comentário de que isso fez a pessoa lembrar de interfaces antigas de que gostava: o Macintosh OS 8 da era Platinum, a sofisticação dos lickables do MacOS X, e também OpenLook, NeXTStep/OpenStep e a era do Windows 2000; como os elementos de interface naquela época eram claros e consistentes, era possível prever o comportamento dos controles e ter uma experiência uniforme, enquanto hoje a personalização de temas ficou mais livre, mas ao custo de parte dessa experiência direta e consistente
  • Alguém reagiu com surpresa ao fato de o projeto PearPC ainda ser citado como um caso de sucesso mesmo mais de dez anos após o último commit, citando o repositório oficial github, um fork pessoal github e o fato de que o suporte a x86-64 continua presente mesmo após a adição de suporte a WebAssembly; também mencionou ter escrito em um blog sobre a experiência de adicionar NextStep ao Infinite Mac link do blog
  • Houve um comentário pessoal de que projetos assim são realmente ótimos e que o Aqua foi de fato revolucionário quando apareceu
    • Na época, quase todos os window managers do Linux ofereciam um tema aqua, e a opinião foi a de que a Apple acabou entregando o sistema operacional com que sonhavam os usuários que esperavam “o ano do desktop Linux”; por ser um Unix mainstream com excelente usabilidade e amplo suporte a aplicativos de terceiros, acabou sendo um grande sucesso
    • Houve também a opinião de que o Aqua continua sendo um design revolucionário; antes era possível reconhecer imediatamente os controles de janela, mas recentemente isso ficou mais difícil, e expressou-se a esperança de que o Liquid Glass recupere um pouco dessa UX; a consistência e a usabilidade do Aqua foram apontadas como algo que temas do Windows Vista ou do Linux tentaram imitar, mas nunca conseguiram alcançar
    • Foi citada a fala de Steve Jobs na apresentação do “Aqua”: Aqua era uma interface totalmente nova, herdava a tradição própria da Apple e, como o nome sugere, era fluida; um dos objetivos de design era criar algo que desse vontade de lamber só de olhar
    • Outra impressão foi a de que o Liquid Glass traz de volta a filosofia de design da era do Aqua
  • Alguém relembrou que o início da era OS X foi o verdadeiro auge do Mac, quando o hardware também era muito competitivo e o sistema operacional tinha um nível de acabamento excelente; como hoje o hardware voltou a viver uma era de ouro, há esperança de que o software um dia acompanhe, embora também se tenha comentado que, ao usar o Safari em um Mac atual, o desempenho dessa emulação é pouco responsivo e difícil de usar na prática
    • Houve a opinião de que não parece haver chance de o Mac OS voltar a ser excelente
    • Outra pessoa destacou a ironia de que, quando o hardware entrega desempenho, o software vai lá e toma esse desempenho de volta
    • Com base na experiência de uso dos primeiros modelos x86, alguém apontou que eles não eram exatamente competitivos em preço, sofriam kernel panics frequentes e segmentation faults no QuickTime até ao assistir vídeos; procurar codecs para reproduzir vários formatos de arquivo (wmv ou divx) fazia parte da rotina, e o superaquecimento também era frequente porque, para parecer bonito, os aparelhos nem tinham saídas de ventilação
  • Houve concordância com a avaliação de que “não é rápido, mas o hardware real da época também não era muito melhor”; com base na experiência de usar Hackintosh por volta de 2008, comentou-se que os Macs daquela época realmente eram lentos, então a emulação pareceu realista nesse aspecto; também foram compartilhadas lembranças das inúmeras tentativas e erros ao criar apps para iPod touch naquele tempo, com o alívio de que pelo menos a instalação não levava até 24 horas