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

  • Programer uspijeva pokrenuti Mac OS X 10.0 Cheetah direktno 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 kreiranje prilagođenih drajvera za video, USB i pohranu.
  • Iako nije koristan za svakodnevnu upotrebu, otvara vrata ponovnoj upotrebi retro hardvera i istraživanju klasičnih operativnih sistema u Evropi i ostatku svijeta.

Mac OS X na Nintendo Wii konzoli

Neke ideje u početku 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 Pokretanje Mac OS X 10.0 Cheetah na Nintendo Wii konzoli, konzola lansirana 2006. godine i dizajnirana za porodično igranje, a ne da postane desktop računar.

Daleko od toga da je jednostavan trik, Kellerov rad je postao tehničko putovanje puno prepreka, dokumentacije i kreativnih rješenja. Rezultat je Wii sposoban da prikaže Mac OS X Cheetah radnu površinu sa... Aqua interfejs, podrška za USB tastaturu i miš i direktno pokretanje sa hardvera, bez ikakvih slojeva virtualizacije između, nešto što je privuklo pažnju zajednice retro hardvera i u Evropi i u ostatku svijeta.

Skromna konzola koja nikada nije težila da bude Mac

Kada je Nintendo Wii izašao u Evropi 2006. godine, fokus nije bio na sirovoj snazi. Dok su se Microsoft i Sony hvalili... Grafika visoke definicije s Xbox 360 i PlayStation 3Nintendo se istakao malom bijelom kutijom, 88 MB memorije i procesorom od 729 MHz, fokusiranim na kontrole pokretima i porodično igranje.

Na papiru, te specifikacije su izgledale daleko od onoga što je bilo potrebno desktop sistemu poput Mac OS X-a, posebno onom koji je uveo tako vizualno upečatljiv interfejs kao što je Aqua. Međutim, ključ je bio unutra: Wii koristi... Procesor PowerPC 750CL, poznat kao Broadway, direktni potomak PowerPC 750CXe čipova koje je Apple koristio u nekim iMac i iBook računarima od početka 2000-ih.

Ta arhitektonska sličnost ne pretvara Wii u Mac, ali eliminira jednu od najtežih prepreka u ovoj vrsti projekta: CPU i operativni sistem u suštini govore istim osnovnim jezikomOd tada, sve ostalo se svodi na prilagođavanje vrlo specifičnog hardvera softveru koji nikada nije bio namijenjen za to.

Nintendova konzola ima prilično jedinstvenu arhitekturu, s memorijom podijeljenom na MEM1 (24 MB) za osnovne zadatke i MEM2 (64 MB) za grafiku i ostale namjeneSvim ovim upravlja Hollywood čip, koji centralizuje veliki dio logike sistema. Nadalje, ulazi i izlazi su usmjereni prema kontrolerima, igrama i dodacima specifičnim za konzole, a ne prema tvrdim diskovima, tastaturama ili miševima u klasičnom Mac stilu.

Prije ovog eksperimenta, Wii je već bio poligon za testiranje drugih sistema: na sceni modovanja konzola, bilo je moguće pokrenuti Linux, NetBSD, pa čak i Windows NTa zajednica također dijeli vodiče o najbolji emulatori za MacUpravo je slučaj Windows NT-a konačno ohrabrio Kellera da pokuša nešto što su mnogi smatrali nemogućim: prenošenje Mac OS X Cheetah-a na Wii.

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

Jedna od najvećih prepreka projekta bila je na samom početku sistema. Wii nema ništa slično... Open Firmware ili BootX, klasični mehanizmi pokretanja Mac PowerPC-aDakle, pokušaj nametanja tih metoda konzoli nije imao mnogo praktičnog smisla.

Umjesto prilagođavanja onoga što je već postojalo, Keller se odlučio za stvaranje potpuno prilagođen bootloaderDizajniran isključivo za ono što je strogo neophodno: inicijalizaciju osnovnog hardvera Wii konzole i učitavanje Mac OS X Cheetah kernela sa SD kartice. Ovaj boot loader djeluje kao most između okruženja konzole i Apple sistemskog kernela.

Jezgro Mac OS X-a iz tog doba bilo je zasnovano na Mach-O formatu za svoje izvršne datoteke, uključujući i samo XNU jezgro. Ispravno učitavanje tog jezgra na Wii konzoli predstavljalo je značajan izazov: Keller je morao ubrizgati osnovne parametre direktno u kernel i koristiti neobične trikove za otklanjanje grešaka, kao što je postavljanje zakrpa koje su palile prednju LED diodu konzole u određenim tačkama tokom procesa pokretanja kako bi se identifikovalo kada je došlo do zamrzavanja.

Pored tog procesa pokretanja, bilo je potrebno prilagoditi mapu memorije. Na ovaj način Mac OS X očekuje da pronađe RAM i ostale uređaje. Uopšte ne odgovara MEM1/MEM2 distribuciji Wii konzole.Stoga je bilo neophodno prilagoditi kernel tako da "razumije" raspored memorije konzole bez kolizije s ostatkom hardvera.

Kako sam programer detaljno opisuje u dokumentaciji koju je objavio na svom blogu i na GitHubu, proces je uključivao bezbroj testova, ponovnih pokretanja i postepenih promjena. Cilj je bio napraviti XNU kernel, dizajniran za Macintosh računare od ranih 2000-ih, prihvatio bi početak u potpuno drugačijem okruženju bez gubitka stabilnosti.

Kontroleri, video i USB: hardverska slagalica

Nakon što je savladano osnovno pokretanje, pojavili su se uobičajeni problemi pri pokušaju instaliranja operativnog sistema na nepredviđeni uređaj: KontroleriWii koristi dizajn s glavnim PowerPC procesorom i sekundarnim ARM čipom, odgovornim za upravljanje nekim perifernim uređajima, što dodatno komplikuje zadatak.

Da bi Mac OS X funkcionisao na minimalno upotrebljiv način, Keller je morao razviti prilagođene drajvere za nekoliko ključnih komponenti. Počeo je sa pristup SD utoruOvo je neophodno da bi sistem prepoznao medij za pohranu s kojeg se učitava i na kojem su podaci pohranjeni. Bez ovog medija, sistem ne bi mogao ni završiti pokretanje.

Još jedno važno pitanje bio je video izlaz. Wii i Mac OS X Cheetah nisu dijelili ista očekivanja u vezi s formatima i reprezentacijom boja, što je dovelo do... Hromatske aberacije i problemi na prikazu Aqua interfejsaKeller je morao prilagoditi način na koji Appleov sistem crta na ekranu kako bi odgovarao onome što konzola može prikazati.

Ni podrška za unos podataka nije bila jednostavna. Natjerati USB tastaturu i miš da rade na Wii-ju pod Mac OS X-om zahtijevalo je pretraživanje i prilagođavanje. Kod USB drajvera star preko dvije decenijeSam programer prepričava kako je morao pretraživati ​​IRC kanale u potrazi za izvornim kodom za stari USB drajver kako bi ga prilagodio specifičnostima Nintendovog hardvera.

Sav ovaj rad je konačno rezultirao potpuno bootabilnom instalacijom Mac OS X-a na Wii-ju, sa funkcionalna radna površina, kretanje pokazivača miša, unos s tastature i prepoznavanje memorijeNije sistem dizajniran za intenzivnu upotrebu, ali je dovoljno kompletan da se eksperiment smatra tehnički uspješnim.

Njegova posvećenost je dostigla tačku u kojoj je Keller ponio konzolu sa sobom na putovanje kako bi nastavio raditi tokom odmora na Havajima, koristeći svaki slobodan trenutak za unapređenje projekta. Ta upornost je omogućila zajednici da se konsultuje sa... Detaljan tutorijal i javno objavljeni izvorni kod portaOvo je posebno korisno za evropske developere i entuzijaste koji žele proučiti slučaj ili isprobati nešto slično sa svojom konzolom.

Mac OS X 10.0 Cheetah: Appleov stari operativni sistem u Wii kućištu

Sistem odabran za ovaj eksperiment nije bio slučajan. Mac OS X 10.0 Cheetah je bio... Appleova prva komercijalna verzija modernog operativnog sistemaObjavljen 2001. godine i izgrađen na Darwin kernelu zasnovanom 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 bio ulaz u grafički interfejs Aqua, sa Složeniji vizualni efekti za vrijeme, prozirnosti i grafički mehanizam Quartz zasnovan na PDF-uPokretanje svega toga na Wii-ju, bez pristupa naprednoj grafičkoj akceleraciji Maca u to vrijeme, prisililo je veliki dio renderiranja da padne na CPU, što je rezultiralo smanjenjem performansi.

Sa tehničke tačke gledišta, sistem koristi XNU hibridni Mach/BSD kernel, HFS+ datotečni sistem i biblioteke Carbon i CocoaOvi sistemi su koegzistirali kako bi podržavali i klasične aplikacije i moderniji softver. Da bi sve ovo radilo na Wii-ju, bilo je potrebno implementirati framebuffer i rezoluciju kompatibilnu sa očekivanjima sistema, prilagođavajući Aqua-inu grafičku sliku 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 vremenom učitavanja i određenom latencijom pri rukovanju prozorima i menijimaS 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.

Pored performansi, projekat još jednom ističe ulogu Cheetah-a kao historijskog dijela u evoluciji Apple-a. Vidjeti ovu verziju kako radi na uređaju koji je toliko drugačiji kao što je Wii omogućava da se, iz određene perspektive, cijeni, u kojoj mjeri je macOS napredovao posljednjih godina I šta je značila ta promjena ere početkom 2000-ih?

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

Porijeklo svega toga više ukazuje na znatiželju nego na korisnost. Prema zajednici koja je pratila projekat, Keller je odlučio da ga pokrene kada je neko tvrdio da Bilo je nemoguće natjerati macOS da radi na Wii konzoliZa svakog entuzijastu operativnih sistema, to zvuči gotovo kao poziv.

Posljednjih godina, slične inicijative su se proširile na evropskim forumima i zajednicama posvećenim retro hardveru, pokušavajući da starije sisteme prenesu na konzole, mikroračunare ili opremu koja nikada nije bila na planovima proizvođača. One ne toliko teže da ponude praktično rješenje koliko... Istražite granice hardvera i saznajte više o tome kako sistemi funkcionišu iznutra.

U ovom slučaju, projekat Cheetah na Wii konzoli postao je vrlo ilustrativan primjer šta znači prilagoditi složeni operativni sistem potpuno drugačijoj platformi: modificiranje kernela, razumijevanje mape memorije, pisanje drajvera i rješavanje specifičnosti svake komponente. Sve ovo je također otvoreno dokumentirano za analizu od strane zajednice.

Za studente informatike, programere i entuzijaste u Španiji i širom Evrope, susret s ovako detaljnim repozitorijem i tehničkim opisom predstavlja vrijednu priliku za učenje. Izvorni kod objavljen na GitHub-u i autorova objašnjenja omogućavaju vam da pratite korak po korak. Kako rastaviti i ponovo sastaviti sistem poput Mac OS X-a u nepoznatom okruženju.

Osim anegdote, ovakvi projekti također pomažu u očuvanju historijskog softvera. Održavanje tako stare verzije Mac OS X-a pokretanjem na alternativnom hardveru doprinosi njegovom očuvanju. Ne bi trebalo biti ograničeno samo na snimke ekrana ili stare video zapise.ali da ostaje sistem s kojim se zaista može komunicirati, čak i ako je to samo eksperimentalno.

Retro hardver s drugim životom

Jedna od osnovnih poruka ovog eksperimenta je da stari hardver, daleko od toga da bude samo još jedan komad smeća koji skuplja prašinu, Može postati veoma zanimljiva platforma za tehničke projekteWii, koji se sada lako može naći na evropskom tržištu polovnih proizvoda po sniženim cijenama, prilično se dobro uklapa u tu ideju.

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 sistemima, drajverima ili čak obrazovnim projektima. Skromno je okruženje, da, ali... To zahtijeva optimizaciju resursa i dobro razumijevanje šta svaka komponenta radi., nešto što se gubi s današnjim hardverom, koji je premoćan.

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

To ne znači da će Wii postati "novi Mac" za svakodnevnu upotrebu, niti da ima smisla instalirati Cheetah za svakodnevne zadatke. Sam programer jasno stavlja do znanja da se radi o tehničkoj demonstraciji, sa značajna ograničenja u performansama, kompatibilnosti aplikacija i podršci za uređajeAli kao intelektualna vježba i alat za učenje, projekat je više nego ispunio svoju svrhu.

Gledano iz određene perspektive, ova priča prilično dobro sažima jedan trend: dok se tržište stalno obnavlja novim modelima konzola i računara, dio tehnološke zajednice i dalje pronalazi vrijednost u... dati drugi život starim uređajima, istiskujući njihove mogućnosti iznad onoga što su njihovi tvorci zamišljaliTa mješavina radoznalosti, znanja i upornosti je, na kraju krajeva, ono što omogućava Nintendo Wii da danas prikazuje Mac OS X 10.0 Cheetah desktop.

emulatori za mac
Vezani članak:
Najbolji emulatori za Mac

Dodaj kao preferirani izvor