Universal binary

Logo

Een universal binary, of in het Nederlands: een universeel binair bestand, is een door computerfabrikant Apple geïntroduceerd begrip voor een uitvoerbaar bestand dat zowel op een PowerPC- als op een op Intel x86-gebaseerde Apple Macintosh-computer draait. Een universal binary bevat hiertoe twee verschillende varianten van de uitvoerbare code voor een toepassing: enerzijds de uitvoerbare code voor een PowerPC-processor en anderzijds de code voor een Intel-processor. Voor de Mac-gebruiker bestaat er echter geen verschil in gebruik; het programma wordt op de gewoonlijke wijze geïnstalleerd en gebruikt.

Het Mac OS X besturingssysteem kan een Universal Binary bij het uitvoeren herkennen aan de header. Het zorgt vervolgens dat alleen de juiste uitvoerbare code wordt verwerkt. Het grote voordeel van Universal Binaries is dat toepassingen voor beide typen Macs volledig geschikt zijn. Indien een (oudere) toepassing alleen in PowerPC formaat beschikbaar is, kan deze toch op een Intel-processor draaien dankzij een vertaalsysteem genaamd Rosetta. Ook hier merkt de gebruiker geen verschil in gebruik op, maar treedt echter wel snelheidsverlies op. De keerzijde van een Universal Binary is dat het altijd de programma-code in tweevoud bevat. Dat betekent dat er enige opslagruimte verspild wordt, aangezien de Mac altijd maar een van de twee binaire bestanden gebruikt. Om deze reden kiezen een aantal programmeurs / ontwikkelaars ervoor om een programma apart ter beschikking te stellen in respectievelijk Intel en PowerPC formaat. Een voorbeeld hiervan is VLC media player.

De Universal Binary werd op de Worldwide Developers Conference (WWDC) 2005 aangekondigd, om de overgang tussen de bestaande PowerPC-architectuur naar de nieuwe Intel-gebaseerde systemen te versoepelen. De oorsprong van Universal Binaries is te vinden in het Mach-O-Fat-formaat, dat in de NeXTSTEP en OPENSTEP besturingssystemen werd gebruikt, aangezien deze systemen voor meerdere architecturen geschikt moesten zijn. Heden ten dage bevatten open source-bestanddelen van Mac OS X nog steeds verwijzingen naar toenmalige processoren, zoals M68k en SPARC.

Achtergrond

Universal binaries worden tot stand gebracht met het binaire formaat Mach-O, dat binaire code voor meerdere processorarchitecturen kan bevatten. Dit in tegenstelling tot het ELF-formaat, dat bij Linux en andere Unix-achtige besturingssystemen veel wordt toegepast. Met het tool objdump uit de GNU Binutils kan de binaire code van een Universal Binary worden uitgelezen.

Voorgeschiedenis

Bij de overstap van de Motorola 68k naar de PowerPC processor-architectuur gebruikte Apple al het idee om in één bestand code voor meerdere processoren onder te brengen. Toen werd daarvoor het begrip Fat Binary gebruikt. Het werd toen niet gerealiseerd als Mach-O-bestand, maar in het modernere PEF-bestandsformaat (Preferred Executable Format). De code voor de 68k-processor was daarbij ondergebracht in de resource fork en de code voor de PPC-processor in de data fork.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.