Universell binær - Universal binary
| Mac -overgang til Intel -prosessorer |
|---|
Det universelle binære formatet er, i Apple -språk, et format for kjørbare filer som kjøres på enten PowerPC eller Intel -produserte IA -32 eller Intel 64 eller ARM64 -baserte Macintosh -datamaskiner. Formatet stammer fra NeXTStep som " Multi-Architecture Binaries ", og konseptet er mer generelt kjent som en fet binær , sett på Power Macintosh .
Med utgivelsen av Mac OS X Snow Leopard , og før det, siden overgangen til 64-biters arkitekturer generelt, har noen programvareutgivere som Mozilla brukt begrepet "universal" for å referere til en fet binær som inkluderer builds for både i386 (32-biters Intel) og x86_64-systemer. Den samme mekanismen som brukes til å velge mellom PowerPC- eller Intel-byggene i et program, brukes også til å velge mellom 32-biters eller 64-biters bygg av enten PowerPC- eller Intel-arkitekturer.
Apple fortsatte imidlertid å kreve innfødt kompatibilitet med både PowerPC og Intel for å gi tredjeparts programvareutgivere tillatelse til å bruke Apples varemerker knyttet til universelle binære filer. Apple spesifiserer ikke om slike tredjeparts programvareutgivere må (eller bør) samle separate bygg for alle arkitekturer.
Universalbinarier ble introdusert i Mac OS på Apple Worldwide Developers Conference i 2005 som et middel for å lette overgangen fra den eksisterende PowerPC -arkitekturen til systemer basert på Intel -prosessorer, som begynte å sendes i 2006. Universelle binærfiler inkluderer vanligvis både PowerPC- og x86 -versjoner av en utarbeidet søknad. Det operativsystem gjenkjenner en universell binær ved sin øverste del, og utfører den aktuelle delen for arkitekturen i bruk. Dette gjør at applikasjonen kan kjøres naturlig på hvilken som helst støttet arkitektur, uten negativ ytelsespåvirkning utover en økning i lagringsplassen som blir tatt opp av den større binæren.
Fra og med Mac OS X Snow Leopard støttes bare Intel-baserte Mac-er, så programvare som spesifikt er avhengig av funksjoner som bare finnes i Mac OS X 10.6 eller nyere, vil bare kjøre på Intel-baserte Mac-maskiner og krever derfor ikke Intel/PPC fettbinarier . I tillegg, med OS X Lion , støttes bare 64-biters Intel Mac-er, så programvare som er spesielt avhengig av nye funksjoner i OS X 10.7 eller nyere, vil bare kjøre på 64-biters prosessorer og krever derfor ikke 32-biters/64- litt fete binære filer. Fett binære filer ville bare være nødvendig for programvare som er designet for å ha bakoverkompatibilitet med eldre versjoner av Mac OS X som kjører på eldre maskinvare.
Det nye binære formatet Universal 2 ble introdusert på Worldwide Developers Conference 2020. Universal 2 lar programmer kjøre på både Intel x86-64 -baserte og ARM64 -baserte Macintosh -datamaskiner, for å muliggjøre overgangen til Apple -silisium .
Motivasjon
Det er to generelle alternative løsninger. Den første er å ganske enkelt tilby to separate binære filer, en samlet for x86 -arkitekturen og en for PowerPC -arkitekturen. Dette kan imidlertid være forvirrende for programvarebrukere som ikke er kjent med forskjellen mellom de to, selv om forvirringen kan løses gjennom forbedret dokumentasjon eller bruk av hybrid -CDer . Det andre alternativet er å stole på emulering av en arkitektur av et system som kjører den andre arkitekturen. Denne tilnærmingen resulterer i lavere ytelse, og regnes generelt som en midlertidig løsning som bare skal brukes til universelle binære filer eller spesielt sammensatte binære filer er tilgjengelige som med Rosetta .
Universelle binære filer er større enn enkeltplattformbinarier, fordi flere kopier av den kompilerte koden må lagres. Men fordi noen ikke-kjørbare ressurser deles av de to arkitekturene, kan størrelsen på den resulterende universelle binæren være og er vanligvis mindre enn begge binærfiler tilsammen. De krever heller ikke ekstra RAM fordi bare en av de to kopiene er lastet inn for utførelse.
Historie
Konseptet med en Universal Binary stammer med " Multi-arkitektur Binaries " i Nextstep , den viktigste arkitektoniske grunnlaget for Mac OS X . Nextstep støtter universelle binærfiler, slik at en kjørbar bilde kan kjøre på flere arkitekturer, inkludert Motorola 's m68k , Intel ' s x86 , Sun Microsystems 's SPARC , og Hewlett-Packard er PA-RISC . NeXTSTEP og macOS bruker Mach-O- arkiv som det binære formatet som ligger til grunn for den universelle binære.
Apple brukte tidligere en lignende teknikk under overgangen fra 68 000 prosessorer til PowerPC på midten av 1990-tallet. Disse kjørbare filene med to plattformer kalles fettbinarier , med henvisning til deres større filstørrelse.
Apples Xcode 2.1 støtter opprettelsen av disse filene, en ny funksjon i den utgaven. En enkel applikasjon utviklet med prosessoruavhengighet i tankene kan kreve svært få endringer for å kompilere som en universell binær, men en kompleks applikasjon designet for å dra fordel av arkitekturspesifikke funksjoner kan kreve betydelig endring. Applikasjoner som opprinnelig ble bygget med andre utviklingsverktøy, kan kreve ytterligere endringer. Disse årsakene er gitt for forsinkelsen mellom introduksjonen av Intel-baserte Macintosh-datamaskiner og tilgjengeligheten av tredjepartsapplikasjoner i universelt binært format. Apples levering av Intel-baserte datamaskiner flere måneder foran deres tidligere annonserte tidsplan er en annen faktor i dette gapet.
Apples Xcode 2.4 tar konseptet med universelle binære filer enda lenger, ved å la firearkitekturbinarier opprettes (32- og 64-bit for både Intel og PowerPC), og dermed tillate en enkelt kjørbar å dra full nytte av CPU-egenskapene til alle Mac OS X -maskin.
Universelle applikasjoner
Mange programvareutviklere har levert universelle binære oppdateringer for produktene sine siden WWDC 2005. I desember 2008 oppgav Apples nettsted mer enn 7.500 Universal -applikasjoner.
16. april 2007 kunngjorde Adobe Systems utgivelsen av Adobe Creative Suite 3 , den første versjonen av applikasjonspakken i Universal Binary -formatet.
Fra 2006 til 2010 ble mange Mac OS X -applikasjoner portet til Universal Binary -format, inkludert QuarkXPress , Apples eget Final Cut Studio , Adobe Creative Suite , Microsoft Office 2008 og Shockwave Player med versjon 11 - etter den tiden ble de fleste laget kun Intel apper. Ikke-universelle 32-biters PowerPC-programmer vil kjøre på Intel Mac-maskiner som kjører Mac OS X 10.4, 10.5 og 10.6 (i de fleste tilfeller), men med ikke-optimal ytelse, siden de må oversettes on-the-fly av Rosetta ; de vil ikke kjøre på Mac OS X 10.7 Lion og senere ettersom Rosetta ikke lenger er en del av operativsystemet.
iOS
Apple har brukt samme binære format som Universal Binaries for iOS- applikasjoner som standard ved flere anledninger av arkitektonisk sameksistens: rundt 2010 under overgangen armv6-armv7-armv7s og rundt 2016 under overgangen armv7-arm64. Den App Store tynner automatisk binærfiler. Ingen handelsnavn ble avledet for denne praksisen, da det bare er et problem for utvikleren.
Universell 2
| Mac -overgang til Apple -silisium |
|---|
22. juni 2020 kunngjorde Apple en toårig permanent overgang fra Intel x86-64 -baserte prosessorer til ARM64 -basert Apple -silisium som begynte med macOS Big Sur i slutten av 2020. For å hjelpe til med denne overgangen ble en ny Universal 2 -binær introdusert for å gjøre det mulig å kjøre applikasjoner på enten x86-64- baserte prosessorer eller ARM64-baserte prosessorer.
Verktøy
Hovedverktøyet for å håndtere (lage eller dele) universelle binære filer er lipokommandoen som finnes i Xcode . Den filekommandoen på MacOS og flere andre Unix-lignende systemer kan identifisere Mach-O universelle binærfiler og rapport arkitektur støtte. Snow Leopard er Systemprofil gir denne informasjonen på Programmer -fanen.
Se også
- Apple -Intel -arkitektur
- Mac -overgang til Intel -prosessorer
- Mac -overgang til Apple -silisium
- Fett binær
- Xslimmer , et kommersielt Mac OS X -program som lar brukeren slanke seg på de fete universelle binære filene ved å fjerne koden for plattformen som ikke er i bruk.
