通用二进制

更新时间:2022-10-26 06:57:33 阅读: 评论:0

概要

通用二进制代码有两种基本类型。一种类型就是简单提供两种独立的二进制代码,一个用来对应x86架构,一个用来对应PowerPC架构。但是对于不熟悉代码的普通软件使用者来说,在购买和使用的时候,可能搞不清二者区别。另外一种类型就是只编写一个架构的代码,当另外一种处理环境时让系统自动调用模拟器运行。这会导致运行速度下降,一般是作为“通用二进制”或者“特别连编二进制”出现之前暂时使用的折衷办法。(参见Rotta.)

原理

因为需要储存多种代码,通用二进制应用程序通常比单一平台二进制的程序要大,但是   由于两种架构有共通的非执行资源,所以并不会达到单一版本的两倍之多。而且由于执行中只调用一部分代码,运行起来也不需要额外的内存。

在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等等。这些产品目前必须使用Rotta编译器在英特尔麦金塔电脑上运行。结果导致目前的Adobe Photoshop版本在英特尔麦金塔电脑上运行,要比在PowerPC处理器的麦金塔电脑,甚至比视窗系统中运行还要缓慢。Adobe公司已经声明,不会发布现有产品的通用二进制版本,而是转而在未来发布的新版本中进行通用二进制化。

本文发布于:2022-10-26 06:57:33,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/83/378686.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:通用二进制
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图