通用二進制

通用二進制(Universal binary)是蘋果電腦公司提出的一種程式代碼,使程式能以本地程式的形式運行在使用PowerPC或者英特爾微處理器(x86)的麥金塔電腦上,在同一個程式包中同時為兩種架構提供最理想的性能。硬體方面,蘋果電腦公司已經將其產品線上的所有麥金塔電腦2006年內轉為英特爾處理器,相對應的軟體方面,蘋果最早是在2005年世界開發者大會(WWDC)上就發布了通用二進制的內容來適應這種轉換。 當程式在作業系統中運行後,將自動檢測通用二進制代碼,根據使引用的架構自動選擇合適的代碼來執行,實現無損的本地程式運行速度。

基本介紹

  • 中文名:通用二進制
  • 外文名:Universal binary
  • 發明者:蘋果電腦公司
  • 公開時間:2005
  • 發布地點:世界開發者大會(WWDC)
  • 優點:實現無損的本地程式運行速度
概要,原理,案例,通用應用程式,

概要

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

原理

因為需要儲存多種代碼,通用二進制應用程式通常比單一平台二進制的程式要大,但是由於兩種架構有共通的非執行資源,所以並不會達到單一版本的兩倍之多。而且由於執行中只調用一部分代碼,運行起來也不需要額外的記憶體
90年代中期從68k處理器轉換到PowerPC的時候,蘋果電腦公司使用了一個類似的技術。當時這些雙平台可執行程式被稱為 "胖二進制(fat binaries)",因為他們檔案容量比原來要大。
截至2006年10月,蘋果公司的Xcode是唯一一個可以編譯通用二進制代碼GUI工具。一個使用processor-independence開發的簡單應用程式只需要改動很少的部分就可以實現通用二進制。但是對於那些基於要發揮一種架構特長的複雜程式來說,修改代碼通過連編就是一個比較複雜的工程。 使用其他開發工具製作的應用程式需要額外的修改。正因為這些原因,導致目前英特爾麥金塔電腦和那些第三方製作的通用二進制軟體不能同步的現象。而蘋果在硬體方面的轉換比預定計畫提前了好幾個月,也是造成這種差距的另外一個因素。

案例

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

通用應用程式

2005年WWDC大會以來,很多軟體開發者都已經為其產品提供了通用二進制代碼。到2006年8月,蘋果官方網站聲稱已經有三千多種通用應用程式。
儘管如此,一些高端的常用應用程式還沒有通用二進制版本,比如微軟公司的Microsoft Office 2004等等。這些產品目前必須使用Rosetta編譯器英特爾麥金塔電腦上運行。結果導致目前的Adobe Photoshop版本在英特爾麥金塔電腦上運行,要比在PowerPC處理器的麥金塔電腦,甚至比視窗系統中運行還要緩慢。Adobe公司已經聲明,不會發布現有產品的通用二進制版本,而是轉而在未來發布的新版本中進行通用二進制化。

熱門詞條

聯絡我們