O pitch
O desenvolvedor Bryan Keller conseguiu executar nativamente o Mac OS X 10.0 (Cheetah) no hardware do Nintendo Wii, aproveitando a linhagem PowerPC que as duas plataformas compartilham. O projeto surgiu como uma façanha legítima de engenharia de baixo nível, que envolve aplicar patches binários ao kernel XNU para rodá-lo em um processador que não é da Apple.
Por dentro
O núcleo do projeto é um bootloader personalizado de código aberto chamado 'wiiMac' (Fonte: GitHub/bryankeller/wiiMac). Essa ferramenta faz a passagem inicial para o kernel Darwin, que foi modificado para reconhecer o processador 750CL do Wii. Como o Wii usa uma arquitetura de I/O fora do padrão, gerenciada por um SoC interno baseado em ARM, Keller desenvolveu um driver de ponte sob medida para viabilizar a comunicação (Fonte: OSnews).
O sistema inicializa a partir de um cartão SD usando uma device tree feita sob medida para mapear a memória e os periféricos do Wii (Fonte: Hackaday). A implementação consegue chegar à interface gráfica do WindowServer, mas os limites do hardware são evidentes. O Wii oferece apenas 88MB de RAM, o limite mínimo extremo para a estabilidade do Mac OS X (Fonte: Xiand.ai). Isso costuma gerar uma atividade de swap significativa, ainda mais lenta por causa da interface do cartão SD.
As limitações de desempenho e de entrada incluem:
* Renderização do framebuffer por software, por falta de aceleração de hardware (Fonte: Hackaday).
* Nenhum suporte nativo ao Wiimote ou ao hardware específico do Wii (Fonte: Hacker News).
* Alta latência na resposta do sistema, causada pelo I/O do cartão SD (Fonte: Hackaday).
* Ausência total de composição de janelas assistida por GPU (Fonte: OSnews).
Quanto à conectividade, ainda não sabemos se os drivers de WiFi ou Ethernet funcionam ou são estáveis, porque a documentação técnica não diz nada sobre rede. Também não temos dados sobre o comportamento do sistema sob cargas de I/O contínuas durante várias horas. Por enquanto, é uma janela frágil, embora tecnicamente sólida, para o início da história do Mac baseado em Unix.
Nossa opinião
É uma aula de programação de sistemas de baixo nível, que serve como um lembrete sóbrio de como nossas stacks modernas ficaram inchadas. Embora portar um sistema operacional de 25 anos para um console de 20 anos seja um ato de puro masoquismo de engenharia, isso não tem nenhum valor prático para qualquer ambiente de produção moderno. É um projeto paralelo para o público de “C e assembly”, que prova que o ecossistema PowerPC era mais coeso do que lembramos. Monte o seu se quiser ver um Wii fazer algo para o qual nunca foi pensado, mas mantenha as expectativas tão baixas quanto o teto de 88MB de RAM permite.