Takto sa vývojárovi podarilo spustiť Mac OS X na Nintendo Wii

  • Vývojárovi sa podarilo spustiť Mac OS X 10.0 Cheetah priamo na hardvéri Nintendo Wii bez emulácie.
  • Kľúčové je, že obe zariadenia zdieľajú architektúru PowerPC, aj keď s veľmi odlišnými generáciami a dizajnom.
  • Projekt si vyžadoval vlastný bootloader, záplaty pre jadro XNU a vytvorenie vlastných ovládačov pre video, USB a úložisko.
  • Hoci to nie je užitočné na každodenné použitie, otvára to dvere k opätovnému použitiu retro hardvéru a objavovaniu klasických operačných systémov v Európe a zvyšku sveta.

Mac OS X na konzole Nintendo Wii

Niektoré nápady spočiatku znejú ako vtip medzi priateľmi, no nakoniec sa z nich stanú veľmi seriózne projekty. Presne to sa stalo s experimentom Bryana Kellera, vývojára, ktorému sa podarilo Spustenie systému Mac OS X 10.0 Cheetah na konzole Nintendo Wii, konzola uvedená na trh v roku 2006 a navrhnutá pre rodinné hranie, nie ako stolný počítač.

Kellerova práca zďaleka nie je jednoduchým trikom, ale technickou cestou plnou prekážok, dokumentácie a kreatívnych riešení. Výsledkom je Wii schopná zobraziť pracovnú plochu Mac OS X Cheetah s... Rozhranie Aqua, podpora USB klávesnice a myši a priame bootovanie z hardvéru, bez akýchkoľvek virtualizačných vrstiev medzi nimi, čo upútalo pozornosť komunity retro hardvéru v Európe aj vo zvyšku sveta.

Skromná konzola, ktorá nikdy netúžila byť Macom

Keď bol Nintendo Wii v roku 2006 uvedený na trh v Európe, dôraz nebol kladený na surový výkon. Zatiaľ čo Microsoft a Sony sa chválili... Grafika vo vysokom rozlíšení s konzolami Xbox 360 a PlayStation 3Nintendo vynikalo malou bielou krabičkou, 88 MB pamäte a 729 MHz procesorom, zameraným na pohybové ovládanie a hranie hier pre celú rodinu.

Na papieri sa zdalo, že tieto špecifikácie ani zďaleka nie sú to, čo by potreboval desktopový systém ako Mac OS X, najmä taký, ktorý priniesol také vizuálne pôsobivé rozhranie ako Aqua. Kľúčom však bolo vnútorné rozhranie: Wii používa... Procesor PowerPC 750CL, známy ako Broadway, priameho potomka čipov PowerPC 750CXe, ktoré Apple používal v niektorých iMacoch a iBookoch od začiatku 2000. storočia.

Táto architektonická podobnosť síce nerobí z Wii Mac, ale eliminuje jednu z najťažších bariér v tomto type projektu: CPU a operačný systém v podstate hovoria rovnakým základným jazykomOdvtedy bolo všetko ostatné otázkou prispôsobenia veľmi špecifického hardvéru softvéru, ktorý na to nikdy nebol určený.

Konzola Nintendo má pomerne unikátnu architektúru s pamäťou rozdelenou na MEM1 (24 MB) pre základné úlohy a MEM2 (64 MB) pre grafiku a iné použitieToto všetko riadi čip Hollywood, ktorý centralizuje veľkú časť logiky systému. Okrem toho sú vstupy a výstupy zamerané na ovládače, hry a príslušenstvo špecifické pre konzoly, nie na pevné disky, klávesnice alebo myši ako v klasickom štýle Macov.

Pred týmto experimentom už Wii slúžila ako testovacie pole pre iné systémy: na scéne moddingu konzol bolo možné spustiť Linux, NetBSD a dokonca aj Windows NTa komunita tiež zdieľa návody na najlepšie emulátory pre MacPráve prípad Windows NT nakoniec povzbudil Kellera k pokusu o niečo, čo mnohí považovali za nemožné: priniesť Mac OS X Cheetah na Wii.

Návrh vlastného bootovacieho procesu pre Mac OS X na Wii

Jednou z najväčších prekážok projektu bol samotný začiatok systému. Wii nemá nič podobné... Open Firmware alebo BootX, klasické bootovacie mechanizmy Mac PowerPCTakže pokus o vynútenie týchto metód v konzole nedával veľký praktický zmysel.

Namiesto prispôsobenia toho, čo už existovalo, sa Keller rozhodol vytvoriť úplne prispôsobiteľný bootloaderNavrhnutý výlučne na to, čo je nevyhnutné: inicializácia základného hardvéru Wii a načítanie jadra Mac OS X Cheetah z SD karty. Tento zavádzač funguje ako most medzi prostredím konzoly a jadrom systému Apple.

Jadro Mac OS X tej doby bolo založené na formáte Mach-O pre svoje spustiteľné súbory vrátane samotného jadra XNU. Dosiahnuť správne načítanie tohto jadra na Wii bola značná výzva: Keller musel vkladať základné parametre priamo do jadra a používať nezvyčajné ladiace triky, napríklad umiestnenie záplat, ktoré rozsvietia prednú LED diódu konzoly v určitých bodoch procesu zavádzania, aby sa identifikoval prípad zamrznutia.

Okrem tohto procesu bootovania bolo potrebné upraviť mapu pamäte. Takto má Mac OS X nájsť RAM a ďalšie zariadenia. Vôbec to nezodpovedá distribúcii MEM1/MEM2 na Wii.Preto bolo nevyhnutné prispôsobiť jadro tak, aby „rozumelo“ rozloženiu pamäte konzoly bez toho, aby kolidovalo so zvyškom hardvéru.

Ako samotný vývojár podrobne opisuje v dokumentácii, ktorú zverejnil na svojom blogu a na GitHube, proces zahŕňal nespočetné množstvo testov, reštartov a postupných zmien. Cieľom bolo vytvoriť jadro XNU, ktoré bolo navrhnuté pre počítače Macintosh od začiatku 2000. storočia, akceptoval by začiatok v úplne inom prostredí bez straty stability.

Ovládače, video a USB: hardvérová hádanka

Po zvládnutí základného spustenia sa objavili bežné problémy pri pokuse o inštaláciu operačného systému na nepredvídané zariadenie: KontrolóriWii používa dizajn s hlavným procesorom PowerPC a sekundárnym čipom založeným na ARM, ktorý je zodpovedný za správu niektorých periférií, čo úlohu ešte viac komplikuje.

Aby systém Mac OS X fungoval minimálne použiteľným spôsobom, Keller musel vyvinúť vlastné ovládače pre niekoľko kľúčových komponentov. Začal s... prístup k slotu SD kartyToto je nevyhnutné pre systém, aby rozpoznal pamäťové médium, z ktorého načítava a na ktorom sú dáta uložené. Bez tohto média by systém ani nebol schopný dokončiť spustenie.

Ďalším dôležitým problémom bol video výstup. Wii a Mac OS X Cheetah nezdieľali rovnaké očakávania týkajúce sa formátov a zobrazenia farieb, čo viedlo k Chromatické aberácie a problémy so zobrazením rozhrania AquaKeller musel upraviť spôsob, akým systém Apple kreslí na obrazovku, aby zodpovedal tomu, čo dokáže zobraziť konzola.

Podpora vstupu tiež nebola jednoduchá. Prinútiť USB klávesnicu a myš fungovať na Wii pod Mac OS X si vyžadovalo hľadanie a prispôsobovanie. Kód ovládača USB, ktorý je starší ako dve desaťročiaSám vývojár rozpráva, ako musel prehľadávať IRC kanály a hľadať zdrojový kód starého USB ovládača, aby ho mohol prispôsobiť špecifikám hardvéru Nintenda.

Všetka táto práca nakoniec viedla k plne bootovateľnej inštalácii Mac OS X na Wii s... funkčná pracovná plocha, pohyb ukazovateľa myši, vstup z klávesnice a rozpoznávanie úložiskaNie je to systém určený na intenzívne používanie, ale je dostatočne kompletný na to, aby sa experiment považoval za technický úspech.

Jeho odhodlanie dosiahlo bod, kedy si Keller vzal konzolu so sebou na cesty, aby mohol pokračovať v práci počas svojej dovolenky na Havaji a využiť každú voľnú chvíľu na pokrok projektu. Táto vytrvalosť umožnila komunite konzultovať... Podrobný návod a otvorene publikovaný zdrojový kód portuToto je obzvlášť užitočné pre európskych vývojárov a nadšencov, ktorí si chcú preštudovať prípad alebo vyskúšať niečo podobné s vlastnou konzolou.

Mac OS X 10.0 Cheetah: Starý operačný systém od spoločnosti Apple v tele Wii

Systém zvolený pre tento experiment nebol náhodný. Mac OS X 10.0 Cheetah bol... Prvá komerčná verzia moderného operačného systému od spoločnosti AppleVydaný v roku 2001 a postavený na jadre Darwin založenom na UNIXe, predstavoval významný skok vpred oproti klasickému Mac OS 9 vďaka preemptívnemu multitaskingu, ochrane pamäte a robustnejšiemu systémovému prístupu.

Cheetah bol tiež vstupnou bránou do grafického rozhrania Aqua. Zložitejšie vizuálne efekty pre čas, priehľadné fólie a grafický engine Quartz založený na PDFSpustenie všetkého tohto na Wii, bez prístupu k pokročilej grafickej akcelerácii Macu v tej dobe, nútilo veľkú časť vykresľovania dopadnúť na CPU, čo malo za následok zníženie výkonu.

Z technického hľadiska systém využíva Hybridné jadro XNU Mach/BSD, súborový systém HFS+ a knižnice Carbon a CocoaTieto systémy koexistovali, aby podporovali klasické aplikácie aj modernejší softvér. Aby toto všetko fungovalo na Wii, bolo potrebné implementovať framebuffer a rozlíšenie kompatibilné s očakávaniami systému, čím sa prispôsobila grafika Aqua prostrediu konzoly.

Výsledkom je Mac OS X 10.0, ktorý sa dá spustiť na konzole Nintendo Wii, zobraziť celú pracovnú plochu a reagovať na vstupy používateľa. s dlhými časmi načítavania a určitou latenciou pri práci s oknami a ponukamiVzhľadom na to, že hovoríme o hardvéri s menej ako 100 MB celkovej pamäte RAM a veľmi základným procesorom, ide skôr o technickú ukážku než o pohodlné pracovné prostredie.

Okrem výkonu projekt opäť zdôrazňuje úlohu Cheetah ako historického prvku v evolúcii spoločnosti Apple. Vidieť túto verziu bežiacu na takom odlišnom zariadení, ako je Wii, umožňuje oceniť, s určitou perspektívou, do akej miery sa macOS v posledných rokoch posunul ďalej A čo znamenala táto zmena éry na začiatku 2000. storočia?

Výzva, ktorá sa začala ako „to je nemožné“

Pôvod všetkého poukazuje skôr na zvedavosť než na užitočnosť. Podľa komunity, ktorá projekt sledovala, sa Keller rozhodol spustiť ho, keď niekto tvrdil, že Bolo nemožné spustiť macOS na WiiPre každého nadšenca operačných systémov to znie takmer ako pozvánka.

V posledných rokoch sa podobné iniciatívy rozšírili na európskych fórach a v komunitách venovaných retro hardvéru, ktoré sa snažia preniesť staršie systémy do konzol, mikropočítačov alebo zariadení, ktoré nikdy neboli v plánoch výrobcov. Ich cieľom nie je ponúknuť praktické riešenie, ale skôr Preskúmajte limity hardvéru a dozviete sa viac o tom, ako systémy fungujú zvnútra.

V tomto prípade sa projekt Cheetah na Wii stal veľmi ilustratívnym príkladom toho, čo znamená adaptovať komplexný operačný systém na úplne inú platformu: úprava jadra, pochopenie mapy pamäte, písanie ovládačov a riešenie zvláštností jednotlivých komponentov. Toto všetko je tiež otvorene zdokumentované pre komunitu na analýzu.

Pre študentov informatiky, vývojárov a nadšencov v Španielsku a v celej Európe predstavuje stretnutie s takýmto podrobným repozitárom a technickým popisom cennú príležitosť na učenie. Zdrojový kód zverejnený na GitHub a autorove vysvetlenia vám umožňujú sledovať postup krok za krokom. Ako rozobrať a znova zostaviť systém ako Mac OS X v neznámom prostredí.

Okrem anekdoty tieto druhy projektov tiež pomáhajú zachovať historický softvér. Udržiavanie takejto starej verzie Mac OS X pri živote jej spustením na alternatívnom hardvéri prispieva k jej zachovaniu. Nemalo by sa to obmedzovať len na snímky obrazovky alebo staré videá.ale že zostáva systémom, s ktorým je možné skutočne interagovať, aj keď len experimentálne.

Retro hardvér s druhým životom

Jedným zo základných posolstiev tohto experimentu je, že starý hardvér nie je len ďalším kusom haraburdia, ktorý zbiera prach, Môže sa stať veľmi zaujímavou platformou pre technické projektyWii, ktorá sa teraz dá ľahko zohnať na európskom trhu s použitým tovarom za znížené ceny, do tejto myšlienky celkom dobre zapadá.

Jeho architektúra PowerPC, nízka spotreba energie a relatívne flexibilná štruktúra pre načítavanie vlastného softvéru z neho robia atraktívneho kandidáta pre vývojárov, ktorí chcú experimentovať s operačnými systémami, ovládačmi alebo dokonca vzdelávacími projektmi. Je to skromné ​​prostredie, áno, ale Vyžaduje si to optimalizáciu zdrojov a veľmi dobré pochopenie toho, čo každá zložka robí., čo sa s dnešným hardvérom, ktorý je preťažený, stráca.

Vo vzdelávacích alebo samovzdelávacích kontextoch je cenným prínosom mať lacnú platformu na experimentovanie bez obáv z poškodenia pracovného počítača. Projekty ako Kellerov ukazujú, že je možné znovu využiť vyradené konzoly na účely ďaleko za hranicami zábavy, od od štúdií jadra až po skúmanie klasických architektúr.

To neznamená, že Wii sa stane „novým Macom“ na každodenné používanie, ani že má zmysel inštalovať Cheetah na každodenné úlohy. Sám vývojár jasne uvádza, že ide o technickú ukážku, s... významné obmedzenia výkonu, kompatibility aplikácií a podpory zariadeníAle ako intelektuálne cvičenie a nástroj učenia sa projekt viac než len dotkol svojho účelu.

Z určitého pohľadu tento príbeh v podstate vystihuje trend: zatiaľ čo trh sa neustále obnovuje novými modelmi konzol a počítačov, časť technologickej komunity naďalej nachádza hodnotu v... dať druhý život starým zariadeniam a posunúť ich možnosti nad rámec toho, čo si ich tvorcovia predstavovaliTáto kombinácia zvedavosti, vedomostí a vytrvalosti je nakoniec to, čo umožňuje Nintendu Wii zobrazovať dnes pracovnú plochu Mac OS X 10.0 Cheetah.

emulátory pre mac
Súvisiaci článok:
Najlepšie emulátory pre Mac

Pridať ako preferovaný zdroj