Mac 68K

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Mac 68K a fost un emulator software inclus cu toate versiunile de Mac OS pentru procesoarele PowerPC . Emulatorul a permis aplicațiilor și componentelor sistemului de operare scrise în cod 68000 să ruleze pe procesoare PowerPC. Emulatorul a fost total transparent pentru utilizator și aproape transparent pentru programator. Inițial, emulatorul a fost scris de Gary Davidian pentru procesoarele 88000, procesoarele RISC pe care Apple dorea inițial să le folosească pentru a înlocui procesoarele 68000. Ulterior, emulatorul a fost scris pentru PowerPC și s-a folosit recompilarea dinamică pentru a-și îmbunătăți performanțele. Această versiune a fost scris de Eric Traut care a lucrat ulterior la dezvoltarea Virtual Game Station și a emulatorului Virtual PC .

Toate versiunile au imitat instrucțiunile utilizatorului Motorola 68EC040 și handlerul excepției procesorului 68020/68030. Mașina emulată era similară cu Centris 610 , un computer bazat pe Motorola 68EC040. [1] Prima versiune a luat instrucțiunile individuale 68000 și le-a transformat în instrucțiuni PowerPC echivalente, ulterior a fost introdusă o nouă versiune cu recompilare dinamică a software-ului cu sistemele PCI PowerMac. Recompilarea dinamică a scanat secțiuni întregi de cod și le-a convertit în cod PowerPC. Aceste fragmente de cod au fost păstrate în memorie pentru a le putea reutiliza direct fără a fi recompilate în cazul în care au fost necesare din nou. Acest lucru a permis emulatorului să fie chiar mai rapid decât un procesor echivalent 68EC040.

Emulatorul a fost încorporat în sistemul de operare la un nivel foarte scăzut. Acest lucru a fost, de asemenea, necesar, deoarece o mare parte a sistemului de operare atunci când au fost prezentate mașinile PowerPC nu au fost convertite în cod PowerPC, ci au rămas în codul 680X0. Când un program numit API neconvertit , procesorul PowerPC a lansat o excepție care a declanșat emulatorul care a rulat API-ul. Sistemul de operare a fost convertit cu o oarecare încetinire de către Apple în cod PowerPC, acest lucru se datorează faptului că sistemul de operare nu a fost scris pentru a fi portabil și, prin urmare, o mare parte a sistemului de operare a fost de fapt rescrisă în totalitate. Acest lucru a făcut ca sistemul de operare să devină mai rapid pe măsură ce conversia a continuat.

Pentru programator, tranziția la arhitectura PowerPC a fost aproape nedureroasă, emulatorul activat și blocat într-un mod transparent, fără a interfera cu fluxurile normale de program. Pentru tranziție a fost dezvoltat un nou tip de pointer, numit Pointerul Universal de Procedură (UPP). Pentru codul 680X0 acesta a fost un indicator normal, dar în realitate acesta a abordat o structură de date specială, aceasta a fost utilizată pentru a determina dacă codul care trebuie executat a fost PowerPC sau 680X0 și această structură de date a fost utilizată pentru a porni codul corect de când aplicațiile scrise în timpul perioada tranzițiilor conținute în codul PowerPC și codul 680X0. Acest lucru a permis, de asemenea, amestecarea codului 680X0 și PowerPC în aceeași aplicație, astfel încât programatorul să poată converti aplicațiile câte o componentă odată împărțind lucrarea în mai multe faze.

Emulatorul a fost integrat în mediul clasic al macOS, dar odată cu trecerea la arhitectura Intel, această componentă a fost eliminată și, împreună cu acesta, și emulatorul.

Notă

Elemente conexe