23.07.2008 | 01:39
Pa ovako ukratko,:
U našoj priči se spominju dvije vrste arhitekture računalnog sustava:
1. PPC (G5, G4, G3 i stariji procesori) - arhitektura koju je Apple napustio prije dvije ipol godine
2. X86 (intelovi i AMD-ovi procesori)- arhitektura koju je apple odabrao kao trenutnu na kojoj razvija svoje sustave
Koje su razlike među njima? Bitne i velike ako krenemo od memory managementa,vrste cjevovoda, radnog napona, hrpe drugih divnih stvari i onoga najvažnijega: tipa instrukcija
Znači X86 ima drugačije instrukcije od PPC- jednostavno kad intelu kažeš zbroji on zbroji, a ppc će reč ja to ne razumin-pričaju sa različitim jezicima
E sad Apple odluči otpilit PPC arhitekturu jer ovi ne znaju neke stvari dobro napravit i nekako im stane razvoj i odabere intela kao proizvođača svojih procesora...
E sad je appleu najlakše gurnit novi procesor i natjerat operativni sustav da radi na njemu jer su oni cijelo vrijeme otkako je izašao prvi OS X imali paralelnu verziju i za PPC i za Intela, ali što napraviti sa svim onim bidnim ljudima koji pišu programe i niti jedan njihov program neče raditi na novoj arhitekturi jer ne priča intelov jezik?
E tu ulazi u igru emulacija:
emulacija ti je stvaranje umjetne okoline za aplikaciju, to jest aplikacija priča sa emulatorom koji prevodi njene instrukcije procesoru... u ovom slučaju PPC aplikacija priča sa rosettom(emulatorom) a rosetta prevodi sve na intelov jezik... roseta je prevoditelj... zašto to radi sporije? zato što se tvoj bidni intel kompjuter muči prevodit instrukcije sa PPC koda na intel kod i tek ih onda izvršava...
Na taj način apple daje programerima vrimena da napišu programe na intelovom jeziku a njihove stare aplikacije još donekle rade na novima...
E onda dolazi novi problem... oni jadnici što imaju PPC računala, i ne mogu pratiti Appleovu želju za napretkom, jer slučajno nemaju love za novi komp svake godina, kad Appleu šune više ne mogu pokrenuti nove aplikacije koje su pisane na intelovom jeziku...
e sad tu postoje dva moguča rješenja: napisati anti-rosettu koja če prevoditi sa intel jezika na PPC ili napraviti ono što je apple i uradio: svaki program napisati na dva jezika, tako da se razume i jedni i drugi...(otprilike nešto kao naše dvojezične table u istri..Svi sretni i svi razume šta piše...)
E to se zove Universal Binary ilitiga UB-aplikacija koja se jednako brzo vrti i na PPC i na intel MAcu jer se vrti nativno (napisana je instrukcijama oba dva procesora) na obje arhitekture...
E sad imaš onu riječ kompajliranje... Programer kad piše program on piše nekakvim našim jezikom (koji nema veze sa intelovim ili ppc jezikom) kojega ljudi mogu razumit, npr:
if (a<3)
a++;
(prilično jednostavno za razumit)
dok glupi procesor nezna šta znači: if, a, 3, ++
on razumi samo jedinice i nule, pa ako mu kažeš:
1001001110100010000010000100000011111110001
on možda i nešto napravi..
(kako si možda i skonta do sada, Intel i PPC nemaju iste rasporede jedinica i nula za iste stvari i tu je največi problem...)
E sad da mi nebi morali učit jedinice i nule, a procesor nikad neče naučit if, a, ++ imamo jedan program koji naš jezik prevodi u strojni i to sam ja u svom slučaju nazvao kompajliranje...
znači naš kompajler kada pravimo program napravi jedan niz jedinica i nula za PPC a drugi za Intel i to se zove UB
Nadam se da si još jednu pametnu stvar naučio...