I binari universali
by Michele
Gli ingegneri di Apple sono un gruppo di geni sempre pronti a stupirmi. Quando Jobs, l’estate scorsa presentò la migrazione verso Intel pensai subito a tutte le problematiche che avrebbe avuto la transizione ad una nuova architettura. Per evitare, di rilasciare due versioni diverse dello stesso software compilate per due diverse piattaforme, alla Apple si sono inventati il binario universale. Un binario che continente sia le istruzioni eseguibili da PowerPC sia quelle eseguibili da Intel x86.
In uno dei video tutorial del Developer Transition Resource Center ho trovato questo schema:

A sinistra è rappresentata la struttura di un binario universale. Si tratta sostanzialmente di un contenitore di altri binari Mach-O standard. Allo stato attuale gli universal binary contengono 3 binari: PowerPC, PowerPC64 e Intel. Ho già fatto delle prove con Universal Binary, compilando progetti Xcode completamente scritti in Objective-C/Cocoa. Per l’utente finale è del tutto trasparente, è possibile dare il programma ad un nostro amico che ha un Mac con diversa architettura e lui con un semplice doppio click lo può utilizzare. Niente trucchi, niente emulatori, codice nativo per l’hardware in cui viene eseguito. Qualcosa di estremamente potente!
Commenti
fico, anche se mi chiedo quanto spazio occuperà MicroSoft Office in versione uinversal avendo binari per tre piattaforme diverse. La mente vacilla
nulla di nuovo in realtà
anche sui server ibm (i-series), se non sbaglio, la piattaforma hrdware è indipendendte da quella software
Credo che é un prezzo che si puo pagare per rendere facile la vita agli utenti finali .
Una gran cosa di sicuro.. vediamo se ci sarà anche una triplicazione dello spazio occupato oppure se alcune cose verranno ottimizzate.
Nulla di nuovo, già Next aveva il supporto per i binari universali, solo che al tempo l’overhead di avere lo stesso programma compilato per più architetture era veramente insopportabile. Cmq se ci fate caso NextStep ha molte cose in comune con MacOS X… sarà perché Next è diventata la Apple che conosciamo?
Stavo leggendo proprio su “Wikipedia”:http://en.wikipedia.org/wiki/NeXTSTEP di questa cosa di NeXT Step che supportava diversi hardware e nella lista c’è anche x86. Quindi Jobs aveva già tantissimo codice sorgente compatibile con x86 quando hanno cominciato a sviluppare Mac OS X.
Michele, Mac OS X non è altro che la base di NeXT rivista e e aggiornata. Le API Cocoa non sono altro che l’AppKit e il FOundation Kit che c’era su NeXT e che c’è oggi su GNUStep. Le novità introdotte da Apple riguardano Aqua, OpenGL e svariate altre cose che per l’epoca erano sconosciute o impossibili da implementare.