Кіріспе

Apple көп архитектуралы бинарлық файлдар

Универсалды бинарлық формат – PowerPC немесе Intel IA 32 немесе Intel 64 немесе ARM64 негізіндегі Macintosh компьютерлерінде орындалатын файлдар үшін формат. Формат NeXTStep жүйесінде «Көп архитектуралы бинарлар» ретінде пайда болды, ал бұл түсінік жалпы алғанда «майлы бинар» ретінде белгілі, Power Macintosh-та көрінгендей. Mac OS X Snow Leopard шығарылымымен және одан бұрын, 64 биттік архитектураларға көшкеннен бері, кейбір бағдарламалық жасақтама шығарушылар, мысалы Mozilla, i386 (32 бит Intel) және x86 64 жүйелеріне арналған құрастыруларды қамтитын ірі бинарлық файлға сілтеме жасау үшін «универсалды» терминін қолданды. PowerPC немесе Intel бағдарламасының құрастыруын таңдау үшін қолданылатын механизм, PowerPC немесе Intel архитектурасының 32 биттік немесе 64 биттік құрастыруларын таңдау үшін де қолданылады. Apple компаниясы, сонымен қатар, PowerPC және Intel үшін Apple-дің универсалды бинарлық файлдарға қатысты сауда белгілерін пайдалануға рұқсат беру үшін, олардың үйлесімділігін талап етуді жалғастырды. Apple компаниясы мұндай үшінші тарап бағдарламалық жасақтамаларын шығарушылар барлық архитектуралар үшін жеке құрастыруларды жинақтауы керек (немесе қажет) екенін нақтыламайды. Универсалды бинарлық файлдар Mac OS жүйесіне 2005 жылғы Apple Worldwide Developers Conference-те қолданыстағы PowerPC архитектурасынан Intel процессорларына негізделген жүйелерге өтуді жеңілдету құралы ретінде енгізілді, олар 2006 жылы жеткізіле бастады. Универсалды бинарлық файлдар әдетте құрастырылған қосымшаның PowerPC және x86 нұсқаларын қамтиды. Операциялық жүйе өзінің бас жазуы арқылы универсалды бинарлық файлды анықтайды және қолданылып жүрген архитектураға сәйкес бөлімді орындайды. Бұл қосымшаны кез келген қолдайтын архитектурада іске қосуға мүмкіндік береді, үлкен бинарлық файлдың сақталатын кеңістігін ұлғайтудан басқа, өнімділікке кері әсер етпейді. Mac OS X Snow Leopard-тан бастап, тек Intel негізделген Mac-тар қолдайды, сондықтан Mac OS X 10.6 немесе одан жаңа нұсқаларда ғана бар мүмкіндіктерге байланысты бағдарламалық қамтамасыз ету тек Intel негізделген Mac-тарда жұмыс істейді, сондықтан Intel/PPC бинарлық файлдарын қажет етпейді. Сонымен қатар, OS X Lion-нан бастап, тек 64 бит Intel Mac-тар қолдайды, сондықтан OS X 10.7 немесе одан жаңа мүмкіндіктерге байланысты бағдарламалық қамтамасыз ету тек 64 бит процессорларда жұмыс істейді, сондықтан 32 бит/64 бит бинарлық файлдар қажет емес. Майлы бинарлық файлдар тек Mac OS X-тің ескі аппараттық құрылғыларда жұмыс істейтін ескі нұсқаларымен кері үйлесімділікке ие болу үшін жасалған бағдарламалық жасақтама үшін қажет. Жаңа Universal 2 бинарлық форматы 2020 жылы Бүкіләлемдік әзірлеушілер конференциясында таныстырылды. Universal 2 бағдарламалық жасақтамаларға Intel x86 64 және ARM64 Macintosh компьютерлерінде жұмыс істеуге мүмкіндік береді, бұл Apple кремнийіне көшуді қамтамасыз етеді.

Мотивация

Екі жалпылама балама шешім бар. Біріншісі – екі жеке бинарлық файлды ұсыну, бірі x86 архитектурасы үшін компиляцияланған, екіншісі PowerPC архитектурасы үшін. Дегенмен, бұл екі архитектураның айырмашылығын білмейтін бағдарлама қолданушыларын жаңылыстыруы мүмкін, бірақ жақсартылған құжаттама немесе гибридті дискілерді пайдалану арқылы осы жаңылыстыруды жоюға болады. Екінші балама – бір архитектураны екінші архитектурада жұмыс істейтін жүйе эмуляциялауына сену. Бұл тәсіл өнімділіктің төмендеуіне әкеледі және Розетта сияқты әмбебап бинарлық файлдар немесе арнайы компиляцияланған бинарлық файлдар қолжетімді болғанға дейін қолданылатын уақытша шешім деп есептеледі. әмбебап бинарлық файлдар бір платформалық бинарлық файлдардан үлкен болады, себебі компиляцияланған кодтың бірнеше көшірмесі сақталуы тиіс. Алайда, кейбір орындалмайтын ресурстар екі архитектурамен ортақ болғандықтан, нәтижедегі әмбебап бинарлық файлдың көлемі екі жеке бинарлық файлдың жалпы көлемінен кіші болуы мүмкін және көбінесе кішірек болады. Олар қосымша жедел жадты қажет етпейді, өйткені орындалу үшін осы екі көшірмелердің тек біреуі жүктеледі.

Тарих

Универсалды бинарлық тұжырымдама Mac OS X-тің негізгі архитектуралық негізі болған NeXTSTEP-тегі «Көп архитектуралы бинарлықтар» арқылы пайда болды. NeXTSTEP универсалды бинарлық файлдарды қолдайды, сондықтан бір атқарылатын файл бірнеше архитектурада жұмыс істей алады, оның ішінде Motorola-ның m68k, Intel-дің x86, Sun Microsystems-тің SPARC және Hewlett Packard-тың PA RISC. NeXTSTEP және macOS Mach O архивін универсалды бинарлықтың негізіндегі бинарлық формат ретінде пайдаланады. Apple бұрын 68k процессорларынан PowerPC-ге ауысу кезінде 1990 жылдардың ортасында осыған ұқсас техниканы қолданған. Бұл екі платформалық атқарылатын файлдар үлкен файл мөлшеріне байланысты «майлы бинарлықтар» деп аталады. Apple-дың Xcode 2.1 осы файлдарды құруды қолдайды, бұл сол нұсқаудағы жаңа мүмкіндік. Процессорға тәуелділіксіз жасалған қарапайым қосымшаны универсалды бинарлық ретінде компиляциялау үшін аздаған өзгерістер ғана қажет болуы мүмкін, бірақ архитектураның ерекшеліктерін пайдалануға арналған күрделі қосымшаға маңызды өзгерістер қажет болуы мүмкін. Бастапқыда басқа әзірлеу құралдарын пайдаланып жасалған қосымшаларға қосымша өзгертулер қажет болуы мүмкін. Осы себептер Intel-ге негізделген Macintosh компьютерлерін енгізу мен үшінші тарап қосымшаларының универсалды бинарлық форматта қолдануға болатыны арасындағы кешігуге байланысты айтылды. Apple-дың Intel-ге негізделген компьютерлерді бұрын жарияланған кестеден бірнеше ай бұрын жеткізуі осы айырмашылықтың тағы бір факторы болып табылады. Apple-дың Xcode 2.4 универсалды бинарлық тұжырымдамасын одан әрі дамытады, төрт архитектуралық бинарлық файлды (Intel және PowerPC үшін 32 және 64 бит) жасауға мүмкіндік береді, соның арқасында бір атқарылатын файл кез келген Mac OS X машинасының процессор мүмкіндіктерін толыққанды пайдалана алады.

Жалпыға ортақ қолдану

Көптеген бағдарламалық жасақтама жасаушылар 2005 жылғы WWDC-ден бастап өз өнімдеріне әмбебап бинарлық жаңартулар ұсынды. 2008 жылдың желтоқсанына қарай Apple веб-сайтында 7500-ден астам Universal қосымшасы тізімделген. 2007 жылдың 16 сәуірінде Adobe Systems компаниясы Universal Binary форматындағы Adobe Creative Suite 3 бағдарламалық жиынтығының алғашқы нұсқасын жариялады. 2006 жылдан 2010 жылға дейін көптеген Mac OS X қолданбалары Universal Binary форматына көшірілді, оның ішінде QuarkXPress, Apple-дің Final Cut Studio, Adobe Creative Suite, Microsoft Office 2008 және 11 нұсқасы бар Shockwave Player. Одан кейін көптеген қолданбалар тек Intel процессорлары үшін жасалды. Универсалды емес 32 биттік PowerPC бағдарламалары Mac OS X 10.4, 10.5 және 10.6 (көбінесе) жүйтілетін Intel Mac компьютерлерінде жұмыс істейді, бірақ тиімділігі төмен болады, себебі олар Rosetta арқылы дереу аударылуы керек; олар Mac OS X 10.7 Lion және одан кейінгі нұсқаларда жұмыс істемейді, өйткені Rosetta енді операциялық жүйенің құрамына кірмейді.

iOS жүйесі

Apple компаниясы iOS қосымшалары үшін Universal Binaries сияқты екілік форматты архитектуралық үйлесімділік кезеңдерінде бірнеше рет әдепкі бойынша пайдаланған: шамамен 2010 жылы armv6, armv7 және armv7s арасындағы ауысу кезінде, сондай-ақ шамамен 2016 жылы armv7 және arm64 арасындағы ауысу кезінде. App Store автоматты түрде бинарлық файлдарды оптимизациялайды. Бұл практикаға есім берілген жоқ, себебі ол әзірлеушілерді ғана қызықтырады.

Жалпыға бірдей 2

2020 жылдың 22 маусымында Apple компаниясы Intel x86 64 негізіндегі процессорлардан ARM64 негізіндегі Apple кремнийіне екі жылдық толық ауысуды жариялады, ол 2020 жылдың соңында macOS Big Sur жүйесімен басталады. Осы ауысуға көмектесу үшін, жаңа Universal 2 бинарлық форматы енгізілді, ол қолданбаларды x86 64 немесе ARM64 процессорларында іске қосуға мүмкіндік береді. Snow Leopard жүйесіндегі Жүйе туралы ақпарат құралы бұл ақпаратты "Қолданбалар" бөлімінде көрсетеді.