Ovako je programer uspio pokrenuti Mac OS X na Nintendo Wii konzoli

  • Programer uspijeva pokrenuti Mac OS X 10.0 Cheetah izravno na Nintendo Wii konzoli bez emulacije.
  • Ključno je to što oba uređaja dijele PowerPC arhitekturu, iako s vrlo različitim generacijama i dizajnom.
  • Projekt je zahtijevao prilagođeni bootloader, zakrpe za XNU kernel i izradu prilagođenih upravljačkih programa za video, USB i pohranu.
  • Iako nije koristan za svakodnevnu upotrebu, otvara vrata ponovnoj upotrebi retro hardvera i istraživanju klasičnih operativnih sustava u Europi i ostatku svijeta.

Mac OS X na Nintendo Wii konzoli

Neke ideje isprva zvuče kao šala među prijateljima, ali na kraju postanu vrlo ozbiljni projekti. Upravo se to dogodilo s eksperimentom Bryana Kellera, programera koji je uspio pokrenuti Mac OS X 10.0 Cheetah na Nintendo Wii , konzoli izdanoj 2006. godine i dizajniranoj za obiteljsko igranje, a ne da postane stolno računalo.

Daleko od jednostavnog trika, Kellerov rad pretvorio se u tehničko putovanje puno prepreka, dokumentacije i kreativnih rješenja. Rezultat je Wii sposoban prikazati Mac OS X Cheetah radnu površinu s Aqua sučeljem, podrškom za USB tipkovnicu i miš te izravnim pokretanjem sustava na hardver bez ikakvih slojeva virtualizacije - nešto što je privuklo pozornost zajednice retro hardvera i u Europi i diljem svijeta.

Skromna konzola koja nikada nije težila biti Mac

Kada je Nintendo Wii izašao u Europi 2006. godine, fokus nije bio na čistoj snazi. Dok su se Microsoft i Sony hvalili grafikom visoke razlučivosti s Xboxom 360 i PlayStationom 3 , Nintendo se istaknuo malom bijelom kutijom, 88 MB memorije i procesorom od 729 MHz, fokusirajući se na kontrole pokretima i obiteljsko igranje.

Na papiru, te specifikacije su se činile daleko od onoga što je potrebno stolnom sustavu poput Mac OS X-a, posebno onom koji je uveo tako vizualno upečatljivo sučelje kao što je Aqua. Međutim, ključ je bio unutra: Wii koristi PowerPC 750CL procesor, poznat kao Broadway , izravnog potomka PowerPC 750CXe čipova koje je Apple koristio u nekim iMacovima i iBookovima početkom 2000-ih.

Ova arhitektonska sličnost ne čini Wii Macom, ali uklanja jednu od najtežih prepreka u ovoj vrsti projekta: CPU i operativni sustav u biti govore istim osnovnim jezikom . Od tada, sve ostalo je bilo stvar prilagodbe vrlo specifičnog hardvera softveru koji nikada nije bio dizajniran za njega.

Nintendova konzola ima prilično jedinstvenu arhitekturu, s memorijom podijeljenom na MEM1 (24 MB) za bitne zadatke i MEM2 (64 MB) za grafiku i ostale namjene , a sve to upravlja Hollywood čip, koji centralizira veći dio logike sustava. Nadalje, ulazi i izlazi usmjereni su prema kontrolerima, igrama i priboru specifičnom za konzolu, a ne tvrdim diskovima, tipkovnicama ili miševima u klasičnom Mac stilu.

Prije ovog eksperimenta, Wii je već bio poligon za testiranje drugih sustava: scena moddera konzola uspjela je pokrenuti Linux, NetBSD, pa čak i Windows NT , a zajednica je također dijelila vodiče o najboljim emulatorima za Mac . Upravo je slučaj Windows NT-a konačno potaknuo Kellera da pokuša nešto što su mnogi smatrali nemogućim: prenijeti Mac OS X Cheetah na Wii.

Dizajniranje prilagođenog postupka pokretanja za Mac OS X na Wii konzoli

Jedna od najvećih prepreka projekta bila je odmah na početku sustava. Wii nema ništa poput Open Firmwarea ili BootX-a, klasičnih mehanizama pokretanja Mac PowerPC-a , pa pokušaj nametanja tih metoda na konzolu nije imao puno praktičnog smisla.

Umjesto prilagodbe postojećih komponenti, Keller se odlučio za izradu potpuno prilagođenog bootloadera , dizajniranog isključivo za ono što je apsolutno potrebno: inicijalizaciju osnovnog hardvera Wii konzole i učitavanje Mac OS X Cheetah kernela s SD kartice. Ovaj bootloader djeluje kao most između okruženja konzole i kernela Apple operativnog sustava.

Jezgra Mac OS X-a tog doba bila je temeljena na Mach-O formatu za svoje izvršne datoteke, uključujući i samu XNU jezgru. Ispravno učitavanje te jezgre na Wii konzoli bio je značajan izazov: Keller je morao ubrizgati osnovne parametre izravno u jezgru i koristiti neobične trikove za otklanjanje pogrešaka , poput postavljanja zakrpa koje su palile prednju LED diodu konzole u određenim točkama tijekom procesa pokretanja kako bi se identificiralo kada je došlo do pada sustava.

Uz početni proces pokretanja, bilo je potrebno prilagoditi mapu memorije. Način na koji Mac OS X očekuje pronaći RAM i uređaje uopće ne odgovara rasporedu MEM1/MEM2 na Wii konzoli , stoga je bilo bitno prilagoditi kernel kako bi mogao "razumjeti" raspored memorije konzole bez sukoba s ostatkom hardvera.

Kako sam programer detaljno opisuje u dokumentaciji objavljenoj na svom blogu i na GitHubu, proces je uključivao bezbrojne testove, ponovna pokretanja i postupne promjene. Cilj je bio pokrenuti XNU kernel, dizajniran za Macintosh računala s početka 2000-ih, u potpuno drugačijem okruženju bez gubitka stabilnosti.

Kontroleri, video i USB: hardverska zagonetka

Nakon što je osnovno pokretanje završeno, pojavili su se uobičajeni problemi pri pokušaju pokretanja operativnog sustava na neprikladnom uređaju: kontrolerima . Wii koristi dizajn s glavnim PowerPC procesorom i sekundarnim ARM čipom, odgovornim za upravljanje nekim perifernim uređajima, što dodatno komplicira zadatak.

Kako bi Mac OS X funkcionirao na minimalno upotrebljiv način, Keller je morao razviti prilagođene upravljačke programe za nekoliko ključnih komponenti. Počeo je s pristupom utoru za SD karticu , što je ključno da sustav prepozna medij za pohranu s kojeg se učitava i na koji se podaci spremaju. Bez ove podrške, sustav se ne bi mogao ni pokrenuti.

Drugi veliki izazov bio je video izlaz. Wii i Mac OS X Cheetah nisu dijelili ista očekivanja u vezi formata i prikaza boja, što je dovelo do neusklađenosti boja i problema s prikazom Aqua sučelja . Keller je morao prilagoditi način na koji je Appleov sustav crtao na zaslonu kako bi odgovarao onome što je konzola mogla prikazati.

Podrška za unos također nije bila jednostavna. Natjerati USB tipkovnicu i miš da rade na Wiiju pod Mac OS X-om uključivalo je pronalaženje i prilagođavanje koda USB upravljačkog programa koji je bio star više od dva desetljeća . Sam programer prepričava kako je morao pretraživati ​​IRC kanale za izvorni kod starog USB upravljačkog programa kako bi ga prilagodio specifičnostima Nintendovog hardvera.

Sav taj rad na kraju je rezultirao potpuno bootabilnom instalacijom Mac OS X-a na Wii konzoli, s funkcionalnom radnom površinom, kretanjem pokazivača miša, unosom s tipkovnice i prepoznavanjem memorije . Nije to sustav dizajniran za intenzivnu upotrebu, ali je dovoljno sveobuhvatan da se eksperiment smatra tehničkim uspjehom.

Kellerova predanost dosegla je točku u kojoj je čak ponio konzolu sa sobom na svoj havajski odmor kako bi nastavio raditi, koristeći svaki slobodni trenutak za napredak projekta. Ta upornost omogućila je zajednici da sada pristupi detaljnom vodiču i javno objavljenom izvornom kodu za port , što je posebno korisno za europske developere i entuzijaste koji žele proučiti projekt ili pokušati nešto slično sa svojom konzolom.

Mac OS X 10.0 Cheetah: Appleov stari operativni sustav u Wii tijelu

Sustav odabran za ovaj eksperiment nije slučajan. Mac OS X 10.0 Cheetah bio je prva komercijalna verzija Appleovog modernog operativnog sustava , objavljena 2001. godine i izgrađena na Darwin kernelu temeljenom na UNIX-u. Predstavljao je značajan skok naprijed u odnosu na klasični Mac OS 9, zahvaljujući preventivnom multitaskingu, zaštiti memorije i robusnijem sistemskom pristupu.

Cheetah je također služio kao ulaz u grafičko sučelje Aqua, s kompleksnijim vizualnim efektima za svoje vrijeme, prozirnostima i grafičkim mehanizmom Quartz temeljenim na PDF-u . Pokretanje svega toga na Wiiju, bez pristupa naprednom grafičkom ubrzanju Maca u to vrijeme, prisililo je CPU da značajan dio renderiranja obrađuje, što je rezultiralo padom performansi.

S tehničkog stajališta, sustav koristi hibridnu Mach/BSD XNU kernel, HFS+ datotečni sustav te biblioteke Carbon i Cocoa , koje su koegzistirale kako bi podržale i klasične aplikacije i moderniji softver. Da bi sve to radilo na Wiiju, bilo je potrebno implementirati framebuffer i rezoluciju kompatibilnu s očekivanjima sustava, prilagođavajući Aquain dizajn okruženju konzole.

Rezultat je Mac OS X 10.0 koji se može pokrenuti na Nintendo Wii konzoli, prikazati cijelu radnu površinu i reagirati na korisničke unose, iako s dugim vremenima učitavanja i određenom latencijom pri rukovanju prozorima i izbornicima . S obzirom na to da govorimo o hardveru s manje od 100 MB ukupne RAM memorije i vrlo osnovnim procesorom, iskustvo je više tehnička demonstracija nego ugodno radno okruženje.

Osim performansi, projekt još jednom ističe ulogu Cheetaha kao povijesnog dijela u Appleovoj evoluciji. Vidjeti ovu verziju kako radi na uređaju toliko različitom kao što je Wii omogućuje nam da s određene perspektive shvatimo koliko je macOS stigao posljednjih godina i što je značila ta promjena koja je promijenila eru početkom 2000-ih.

Izazov koji je započeo kao "to je nemoguće"

Čini se da je podrijetlo svega više iz znatiželje nego iz praktičnosti. Prema zajednici koja je pratila projekt, Keller ga je odlučio pokrenuti nakon što je netko tvrdio da je nemoguće pokrenuti macOS na Wiiju . Za svakog entuzijasta operativnih sustava to zvuči gotovo kao poziv.

Posljednjih godina slične inicijative su se proširile na europskim forumima i zajednicama posvećenim retro hardveru, pokušavajući prenijeti starije sustave na konzole, mikroračunala ili drugu opremu koja nikada nije bila na radaru proizvođača. Njihov cilj nije toliko ponuditi praktično rješenje koliko istražiti ograničenja hardvera i saznati više o tome kako sustavi interno funkcioniraju.

U ovom slučaju, projekt Cheetah na Wiiju postao je vrlo ilustrativan primjer što znači prilagoditi složeni operativni sustav potpuno drugačijoj platformi: modificiranje kernela, razumijevanje mape memorije, pisanje upravljačkih programa i rješavanje osobitosti svake komponente. Sve je to također otvoreno dokumentirano za analizu od strane zajednice.

Za studente računalnih znanosti, razvojne programere i entuzijaste u Španjolskoj i diljem Europe, susret s tako detaljnim repozitorijem i tehničkim prikazom predstavlja neprocjenjivu priliku za učenje. Izvorni kod objavljen na GitHubu i autorova objašnjenja omogućuju korisnicima da korak po korak prate kako se sustav poput Mac OS X-a rastavlja i ponovno sastavlja u nepoznatom okruženju.

Osim anegdote, ovakvi projekti također pomažu u očuvanju povijesnog softvera. Održavanje tako stare verzije Mac OS X-a pokretanjem na alternativnom hardveru osigurava da se ne ograničava isključivo na snimke zaslona ili stare videozapise , već ostaje sustav s kojim se zaista može komunicirati, čak i ako je to samo eksperimentalno.

Retro hardver s drugim životom

Jedna od temeljnih poruka ovog eksperimenta jest da stari hardver, daleko od toga da bude samo još jedan komad smeća koji skuplja prašinu, može postati vrlo zanimljiva platforma za tehničke projekte . Wii, koji se sada lako može pronaći na europskom tržištu rabljene robe po sniženim cijenama, prilično dobro odgovara toj ideji.

Njegova PowerPC arhitektura, niska potrošnja energije i relativno fleksibilna struktura za učitavanje prilagođenog softvera čine ga atraktivnim kandidatom za programere koji žele eksperimentirati s operativnim sustavima, upravljačkim programima ili čak obrazovnim projektima. Skromno je okruženje, da, ali vas prisiljava da optimizirate resurse i temeljito razumijete što svaka komponenta radi - nešto što se gubi s današnjim snažnijim hardverom.

U obrazovnim kontekstima ili kontekstima samostalnog učenja, posjedovanje jeftine platforme za eksperimentiranje bez straha od oštećenja radnog računala vrijedna je prednost. Projekti poput Kellerovog pokazuju da je moguće prenamijeniti umirovljene konzole za svrhe koje daleko nadilaze zabavu, od proučavanja kernela do istraživanja klasičnih arhitektura.

To ne znači da će Wii postati "novi Mac" za svakodnevnu upotrebu, niti da instaliranje Cheetaha za svakodnevne zadatke ima smisla. Sam programer jasno daje do znanja da se radi o tehničkoj demonstraciji, sa značajnim ograničenjima u performansama, kompatibilnosti aplikacija i podršci uređaja . Ali kao intelektualna vježba i alat za učenje, projekt je više nego ispunio svoju svrhu.

Gledano iz određene perspektive, ova priča prilično dobro sažima trend: dok se tržište stalno obnavlja novim modelima konzola i računala, dio tehnološke zajednice i dalje pronalazi vrijednost u davanju drugog života starijim uređajima, pomičući njihove mogućnosti izvan onoga što su njihovi tvorci ikada zamislili . Ta mješavina znatiželje, znanja i upornosti u konačnici je ono što omogućuje Nintendo Wii da danas prikazuje Mac OS X 10.0 Cheetah radnu površinu.

emulatori za mac
Povezani članak:
Najbolji emulatori za Mac

Dodaj kao preferirani izvor na Googleu