做移动端开发的时候,编译器设置里会遇到Architectures配置,使用第三方库的时候也经常会遇到Architectures的报错。所以作为开发者应该了解常用的CPU架构。
CPU架构的发展
Inter与AMD
在IBM发明了PC成为霸主的年代,Inter(英特尔)还只是一个小公司。曾经IBM采购Intel的X86处理器来生产自家PC,但Intel一家无法满足IBM的订单,于是IBM要求Intel找伙伴公司代工生产X86处理器,同时IBM为了规避将来可能出现的采购风险,要求英特尔将x86专利授权给代工的公司,而AMD就是这个幸运的小伙伴之一。后来Intel做大后不愿意再分享X86,于是一方面规定被授权公司被收购后授权失效,一方面大打专利官司阻碍其他公司生产,一方面不断推出专利接口的产品阻止仿冒行为,加上Intel处理器性能的不断升级,其他公司纷纷跟不上脚步倒闭了事。唯独只有AMD,通过自行研发的K6架构苟延残喘下来,并且逐步站稳脚跟。
ARM
ARM成立于1991年,是一家出售IP(技术知识产权)的公司。ARM的架构是采用RISC架构,如同它的名称一样,Advanced RISC Machines,RISC架构在当初的PC架构争霸战虽然败给Intel所主导的x86处理器架构,却默默在另外的领域成长壮大;小从硬盘转速控制、电信基地台的计算、汽车喷射引擎的控制、音响系统、相机引擎,大到电动机具的控制等等,都能够看见采用ARM授权架构处理器的身影。
iPhone的出现也间接带起市场对于ARM架构应用处理器的需求,不过光是苹果也无法带起市场对于ARM处理器的需求,如WM(WP7)手机与Symbian也纷纷加入新一代智能手机战局,但是真正成为关键的,是Google Android宣布参战后,其它手机厂商取得一个相较过去成熟的通用智能手机平台,而各厂商又为了进行产品差异化,开始针对ARM架构应用处理器的效能以及硬件支持要求,使得过去发展缓速的ARM架构一下子热络起来,也让ARM架构一夕之间成为火热话题。
X86与ARM
X86是英特尔Intel首先开发制造的一种微处理器体系结构的泛称,包括Intel8086、80186、80286、80386以及80486以86结尾系列,英特尔统治整个CPU产业链长达数十年。但是,Intel以增加处理器本身复杂度作为代价,去换取更高的性能,但集成的指令集数量越来越多,给硬件带来的负荷也就越来越大,无形中增加了功耗和设计难度。
ARM(Advanced RISC Machines)公司是苹果、Acorn、VLSI、Technology等公司的合资企业。ARM采用将芯片的设计方案授权(licensing)给其他公司生产的模式,在世界范围结成了超过100个的合作伙伴(Partners),将封闭设计的Intel公司变成全民公敌。ARM处理器非常适用于移动通信领域,具有低成本、高性能和低耗电的特性,ARM的高性价比和低耗能在移动市场比英特尔更具优势。
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指令来完成所需的计算任务。RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大.
X86架构采用CISC,而ARM采用RISC。
为什么移动开发还需要支持X86
应用程序的语言最终都需要编译成为机器码才能运行,而不同的CPU架构的接口是不一致的,所以相应的机器码也有差异。虽然现在的移动终端设备都是ARM结构,但是我们开发人员都是通过PC进行开发,而无论是WindowsPC还是Mac基本都是Inter处理器,因为Inter处理器在PC上的优势远远超过ARM。所以为了保证我们能在PC上通过模拟器调试应用程序,项目的架构一般都需要支持X86。有时候我们使用一些第三方库无法在PC的模拟器上运行调试,就是因为不支持X86架构。