通用二進制

通用二進制

? ? 通用二進制(Universal binary)是蘋果電腦公司提出的一種程序代碼,使程序能以本地程序的形式運行在使用PowerPC或者英特爾微處理器(x86)的麥金塔電腦上,在同一個程序包中同時為兩種架構提供最理想的性能。硬件方面,蘋果電腦公司已經將其產品線上的所有麥金塔電腦在2006年內轉為英特爾處理器,相對應的軟件方面,蘋果最早是在2005年蘋果電腦全球研發者大會上就發布了通用二進制的內容來適應這種轉換。

? ? 當程序在操作系統中運行后,將自動檢測通用二進制代碼,然后根據使用的架構自動選擇合適的代碼來執行,因此實現無損的本地程序運行速度。

?

概要

? ? 通用二進制代碼有兩種基本類型。一種類型就是簡單提供兩種獨立的二進制代碼,一個用來對應x86架構,一個用來對應PowerPC架構。但是對于不熟悉代碼的普通軟件使用者來說,在購買和使用的時候,可能搞不清二者區別。另外一種類型就是只編寫一個架構的代碼,當另外一種處理環境時讓系統自動調用模擬器運行。這會導致運行速度下降,一般是作為“通用二進制”或者“特別連編二進制”出現之前暫時使用的折衷辦法。(參見Rosetta)

? ? 因為需要儲存多種代碼,通用二進制應用程序通常比單一平臺二進制的程序要大,但是由于兩種架構有共通的非執行資源,所以并不會達到單一版本的兩倍之多。而且由于執行中只調用一部分代碼,運行起來也不需要額外的內存。

? ? 在1990年代中期從68k處理器轉換到PowerPC的時候,蘋果電腦公司使用了一個類似的技術。當時這些雙平臺可執行程序被稱為 "胖二進制(fat binaries)",因為他們文件容量比原來要大。

? ? 目前,蘋果公司的Xcode是唯一一個可以編譯通用二進制代碼的GUI工具。一個使用processor-independence開發的簡單應用程序只需要改動很少的部分就可以實現通用二進制。但是對于那些基于要發揮一種架構特長的復雜程序來說,修改代碼通過連編就是一個比較復雜的工程。 使用其他開發工具制作的應用程序需要額外的修改。正因為這些原因,導致目前英特爾麥金塔電腦和那些第三方制作的通用二進制軟件不能同步的現象。而蘋果在硬件方面的轉換比預定計劃提前了好幾個月,也是造成這種差距的另外一個因素。

? ? 蘋果公司的Xcode 2.4版本將通用二進制的概念進一步推廣,支持創建四架構二進制(對應英特爾和PowerPC中32位和64位平臺),因此可以讓一個執行程序在所有Mac OS X機器上運行。

?

通用應用程序

? ? 2005年蘋果電腦全球研發者大會以來,很多軟件開發者都已經為其產品提供了通用二進制代碼。到2008年12月,蘋果官方網站列出了超過7500種通用應用程序。[1]

? ? 盡管如此,一些老舊的應用程式與遊戲還沒有通用二進制版本,如暴雪的星海爭霸。這些產品目前必須使用Rosetta編譯器在英特爾麥金塔電腦上運行。在Adobe Photoshop推出適用於英特爾麥金塔電腦運行的版本前,該軟體要比在PowerPC處理器的麥金塔電腦,甚至比視窗系統中運行還要緩慢。Adobe公司已經聲明,不會發布舊產品的通用二進制版本,而是轉而在未來發布的新版本中進行通用二進制化。[2] 微軟也發布了類似的聲明。[3]

? ? 2007年4月16日,Adobe發布了Adobe Creative Suite 3,該產品第一個使用通用二進制格式的版本[4]。

? ? 在2008年3月,許多Mac OS X的程序已經被轉換成了通用二進制格式,包括QuarkXPress,Apple的Final Cut Studio,Adobe Creative Suite,Microsoft Office 2008和Shockwave Player(11版以后)。其余只有PowerPC版本的程序在Intel處理器的Mac上運行時必須使用Rosetta。

? ? 隨著Mac OS X 10.6 Snow Leopard的發布,由于系統僅支持Intel處理器等原因,部分程序已經去除了對PowerPC處理器的支持。

?

參見

· 英特爾

· 蘋果電腦公司

?

注釋

1 ^ Macintosh Products Guide: Universal Applications. 蘋果公司 [2008-12-22].

2 ^ 基于 Intel 的 Mac支持(簡體中文). Adobe公司 [2006-10-14].

3 ^ Q&A: 在英特爾麥金塔電腦上使用微軟產品(英文). 微軟 [2006-10-14].

4 ^ http://www.adobe.com/aboutadobe/pressroom/pressreleases/200704/041607CS3Shipping.html

? 外部鏈接

· 蘋果網站:通用應用程序簡體中文

· 蘋果電腦網站: Universal 應用程式繁體中文

· 蘋果開發者關于通用二進制代碼編程指南的介紹簡體中文

?

原文鏈接:http://dictionnaire.sensagent.com/通用二進制/zh-zh/

轉載于:https://www.cnblogs.com/elta/articles/4766555.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458966.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458966.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458966.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python~win32com~Excel

import win32com.client#wwin32com.client.Dispatch("Word.Application") #w.Visible1owin32com.client.Dispatch("Excel.Application") o.Visible1 o.Workbooks.Add() o.Cells(1,1).Value"Hello"轉載于:https://www.cnblogs.com/lynclynn/p/530…

linux顯示光盤命令行,使用wodim在命令行下燒錄光盤

使用wodim在命令行下燒錄光盤發布時間:2009-02-27 16:23:11來源:紅聯作者:zhania作者:linuxtoy出自http://linuxtoy.org/archives/burning-cd-with-wodim.html我們以前介紹的 Linux 光盤燒錄工具多為圖形化的程序,今天來看看如何使用 wodim 在命令行下燒…

Android(java)學習筆記144:網絡圖片瀏覽器的實現(ANR)

1.我們在Android下,實現使用http協議進行網絡通信,請求網絡數據。這里是獲取網絡上的圖片信息,讓它可以顯示在手機上; 但是我們這個手機連接網絡是很費時間,如果我們在主線程(UI線程)中寫這個網…

DLL導出函數名稱改編的解決方法

*************************************************** 更多精彩,歡迎進入:http://shop115376623.taobao.com *************************************************** 1.DLL編譯后導出函數名稱改變 在編寫一個DLL后,為了能被別的程序調用&…

組合自定義控件的步驟詳解

Android 步驟&#xff1a; 1 自定義組合控件的布局settint_view.xml<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"vertical"and…

linux如何建立隱藏目錄,【Linux】文件與目錄的默認權限與隱藏權限

01. 文件默認權限&#xff1a;umask文件的權限可以使用chmod來改變&#xff0c;但是我們默認創建文件的權限是什么&#xff1f;那就是與umask這個有關了。下來我們學習這個指令1.1 簡單使用umask[rootiZbp13q6hd8z3xaagcmz6gZ /]# umask0022[rootiZbp13q6hd8z3xaagcmz6gZ /]# u…

Servlet和JSP學習指導與實踐(二):Session追蹤

前言&#xff1a; web應用中經常需要對某些有用的信息進行存儲或者附加一些信息。本文主要介紹session&#xff0c;即“會話”跟蹤的幾種不同方式~ ----------------------------4種管理session的方式&#xff1a; 1.重寫url 通過在請求的url后面追加參數信息進行會話跟蹤。如&…

數據存儲和界面展示(二)

#測試 黑盒測試 測試邏輯業務 白盒測試 測試邏輯方法 根據測試粒度 方法測試&#xff1a;function test 單元測試&#xff1a;unit test 集成測試&#xff1a;integration test 系統測試&#xff1a;system test 根據測試暴力程度 冒煙測試&#xff1a;smoke test 壓力測…

linux在A目錄下創建B文件,Linux課程---5、常用文件命令和目錄命令(創建文件命令)...

Linux課程---5、常用文件命令和目錄命令(創建文件命令)一、總結一句話總結&#xff1a;touch file11、管道符|有什么用&#xff1f;將前一個命令的結果作為后一個命令的輸入&#xff1a;比如查看文件前3行&#xff1a;cat file1 | head -32、linux下如何復制粘貼命令是什么&…

window 系統上傳文件到linux 系統出現dos 格式換行符

Windows里的文件在Unix/Mac下打開的話&#xff0c;在每行的結尾可能會多出一個^M符號&#xff0c;Unix/Mac系統下的文件在Windows里打開的話&#xff0c;所有文字會變成一行&#xff0c;所以為了避免這種情況的發生&#xff0c;我們可以在linux系統內轉換格式 Centos系列可以直…

#pragma once與 #ifndef的區別

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** 為了避免同一個文件被include多次 1 #ifndef方式2 #pragma once方式 在能夠支持這…

android學習者優秀網址推薦

非常漂亮的android UI庫集合&#xff0c;別人整理的&#xff0c;如果感覺不錯&#xff0c;趕快收藏吧&#xff01;&#xff01; https://github.com/wasabeef/awesome-android-ui https://github.com/Trinea/android-open-project android中文社區網 http://www.android-studio…

linux while read文件,linux shell腳本用while read逐行讀取文本的問題

問題:我現在是想用一個腳本獲取一定列表服務器的運行時間。首先我建立一個名字為ip.txt的IP列表(一個IP一行)&#xff0c;再建好密鑰實現不用密碼直接登錄。然后寫腳本如下&#xff1a;#!/bin/bashwhile read ips;doecho $ips;done < ip.txt腳本實現了逐行讀取列表中的IP&am…

常用字符串處理函數匯總

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** (一)strcmp函數 strcmp函數是比較兩個字符串的大小,返回比較的結果。一般形式是&…

兼容性記錄-class屬性

getAttribute獲得class屬性時,IE6,IE7的傳參是className,IE7和現代游覽器都是class全部游覽器DOMElement均有的className屬性,其在IE各版本號下的均表現良好返回屬性class值的字符串此外html5中DOMElement有個classList屬性,它返回一個類型為DOMTokenList的對象,它當中有非常多…

magenta內核與linux,谷歌將推出新操作系統Fuchsia:Magenta語言為內核

谷歌現在研發出來并且推出使用的系統有Chrome OS、Android和Chromecasts&#xff0c;這三者在操作系統的市場中占得份額很高&#xff0c;但是好像谷歌對此并不滿意&#xff0c;因為有相關消息顯示&#xff0c;谷歌正在研發新的操作系統Fuchsia&#xff0c;該系統采用Magenta語言…

BZOJ 1968: [Ahoi2005]COMMON 約數研究 水題

1968: [Ahoi2005]COMMON 約數研究 Time Limit: 20 Sec Memory Limit: 256 MB 題目連接 http://www.lydsy.com/JudgeOnline/problem.php?id1968 Description Input 只有一行一個整數 N&#xff08;0 < N < 1000000&#xff09;。 Output 只有一行輸出&#xff0c;為整數M…

VC內存對齊準則(Memory alignment)

*************************************************** 更多精彩&#xff0c;歡迎進入&#xff1a;http://shop115376623.taobao.com *************************************************** 本文所有內容在建立在一個前提下&#xff1a;使用VC編譯器。著重點在于&#xff1a;VC…

[redis設計與實現][7]基本數據結構——對象

Redis對基礎數據類型進行了封裝&#xff0c;構建出上層的對象系統&#xff0c;這個系統包含&#xff1a;字符串對象、列表對象、哈希對象、集合對象和有序集合對象。 Redis對象結構&#xff1a; [cce lang”c”] typedef struct redisObject { //類型 unsigned type:4; //編碼 …

Linux中samba的權限詳解,活用三種權限 理解Samba的權限控制

在企業內網開發環境方面&#xff0c;文件服務器是一個非常重要的環節。在這當中&#xff0c;Samba服務器由于其權限控制的高度靈活性&#xff0c;在這里撫琴煮酒會進行一些列詳細的說明。之前我們已經介紹了Samba服務器一些入門和基本的更換用戶、端口監聽、列表控制等技巧&…