Linus Torvalds为何更偏爱x86而非ARM?

  Linux先锋Linus Torvalds绝对是一位立场坚定的斗士。他对自己的感受直言不讳,也乐于坦诚面对自己的错误——例如最近Linux 4.8内核中的问题。然而就在上周的Linaro Connect大会上,他在被问及最偏爱的芯片架构时给出了令人震惊的答案。不假思索,他把宝贵一票投给了x86,而非ARM。

  Torvalds认为,x86的基础设施与生态系统更具亲和力。

  x86在PC上的历史显然更为悠久,也许正是这种使用习惯使他得出了答案。另外,x86阵营拥有丰富的软件与硬件选择,这意味用户能够轻松借此完成工作。

  人们对于指令集与CPU核心太过痴迷,Torvalds指出,但实际上与之相关的生态系统才更加重要。“真正重要的是与指令集相关的整体基础设施,而x86具备一切基础设施要素……且分布于多个不同层级,”Torvalds解释称。“它开辟了一条其它架构所不具备的道路。”

  相当一部分应用的开发工作立足于由英特尔或者AMD提供的x86芯片。对于x86芯片与PC来说,兼容性是最为关键的核心,而其确实拥有一套统一的硬件、开发及其它基础设施模式。而ARM则不具备这样的优势。从硬件供应商的角度来看,市场呈现出严重的碎片化趋势,Torvalds指出。

  “对于ARM生态系统而言,保证兼容性并不像x86生态系统那么重要,”Torvalds向在场的ARM开发者们开炮。

  ARM在移动设备市场上占据主导地位,而且Android系统正是以Linux内核为基础。然而,ARM生态系统的碎片化问题直接导致一系列支持与设备问题。

  举例来说:我们无法确保一套Android版本能够被部署在全部移动设备之上,因为其硬件配置各有不同。硬件制造商需要调整Android以确保其能够与设备中的芯片组相兼容。与Windows不同,单一Android无法服务于全部移动设备。

  英特尔一直在努力将x86芯片引入智能手机,但就目前来看效果并不明显。英特尔制定的一项目标,希望能够让Android更新适用于全部x86手机。

  另外,ARM服务器软件的开发同样面临难题。架构、网络与I/O特性在不同芯片组上皆有所区别,而软件必须有针对性地加以编写,从而顺应这些特性。服务器采用ARM芯片的趋势已经显著放缓,而x86则继续在这一领域保持绝对的领先优势。

  “我个人对于ARM作为硬件平台的表现相当失望,这不只是指令集的问题,当然我自己也存在问题,”Torvalds表示。“作为一套硬件平台,其使用感受仍然相当糟糕。”

  在个人成长过程中,Torvalds曾经利用机器码经由一块8位6502微处理器进行编程。他乐于享受这一过程,因为其指令非常流畅,远超过当时的其它同类硬件。这套架构能够提供更强大的芯片性能。

  “那时候我的梦想是拥有自己的一台Acorn Archimedes……事实上,ARM的名称也正是由此而来,”Torvalds指出。

  Arhimedes是一款基于Acorn Computer Group首块ARM RISC芯片打造的个人计算机。ARM正是Acorn的一种分支产物。

  Torvalds之所以喜爱Archimedes,是因为其拥有与6502类似的流水线式指令处理机制,而RAM芯片则让性能进一步提升。遗憾的是,他始终未能拥有这台计算机。

  而后,他找到了一台“奇怪的英国计算机”,即Sinclair QL,其市场反响比Acorn Archimedes更为糟糕,Torvalds表示。

  “那个时候信息还不发达,”Torvalds指出。“因此在这样的经历之后,我总结出了血的教训——永远不要购买那些缺乏基础设施的产品。”