Itanic 是否终于撞上了最后一座冰山?经过一番波折后,它已被从 Linux 内核中移除。 Itanic 是否终于撞上了最后一座冰山?经过一番波折后,它已被从 Linux 内核中移除。

Itanic 是否终于撞上了最后一座冰山?经过一番波折后,它已被从 Linux 内核中移除。

iTanic如果这话你已经听过了,就打断我……

我们用的这套设备非常老旧。我们知道应该淘汰它。但是我们不能,因为……

  • 这对我们的业务/运营至关重要,但供应商已经倒闭,所以我们无法升级。
  • 这家供应商并没有倒闭,但是这个旧版本的操作系统、数据库或其他任何东西都是他们支持的最新版本,而且也没有其他竞争的应用软件供应商。
  • 改用其他方案成本巨大。
  • 它满足了我们的需求,而替代产品却做不到我们离不开的这个奇怪功能。
  • 我们只把它用在一个流程或一个客户那里,而且他们可能很快就会离开,所以我们不想花大价钱去更换它,结果以后就用不上了。当然,我们这话已经说了十年了。

如果你曾经从事过企业IT工作,这些情况对你来说一定非常熟悉。

通常涉及的技术包括 Windows Server 2003 或 RedHat Enterprise Linux 6,或者非常老版本的 Oracle 或 IBM DB/2,甚至可能是大型机。

但最近我和一位在大公司工作的朋友聊天,他告诉我他们正准备把Itanium服务器从一个数据中心迁移到另一个数据中心。我倒吸了一口凉气。Itanium?2026年?开什么玩笑……好吧,事情的起因和上面提到的一些因素有关。

安坦合金仍然存在。但还能存在多久呢?

意大利号的故事

Itanium(ia64架构)于2001年首次发布,是英特尔和惠普合作的成果。惠普不想继续投入资金维护其PA-RISC架构,因此与英特尔合作。英特尔则希望实现64位计算(当时32位x86是标准),更有效地与IBM的大型POWER芯片竞争,并在无需与AMD分享市场份额的情况下,将个人电脑市场重新纳入其拥有众多专利的掌控之下。

可惜的是,这个计划有几个方面进展不顺利。

首先,Itanium 处理器一问世,性能就远逊于当时的同类芯片。它还需要非常复杂的编译器才能充分发挥其所有特性,其中一些特性虽然技术上很有意思,但最终还是被其他方案取代了。而最关键的是,AMD 迅速推出了 x86-64 架构作为回应。

x86-64 的巨大优势在于它向下兼容 32 位代码,使用开发者喜爱的熟悉工具链,并且与 Itanium 一样是 64 位的。

(想象一下,如果有一种IPv7版本,它既向下兼容IPv4,又提供128位地址。也许它没有IPv6的所有功能,但它向下兼容并解决了主要痛点,这将使它大获成功。)

英特尔很不情愿地授权了x86-64架构(英特尔和AMD之间的交叉专利纠纷错综复杂),而这款芯片随后风靡全球。2001年,业内专家预测英特尔的安腾芯片年销售额将达到350亿美元。到了2007年,这一预测值已跌破50亿美元。

最终,只有四款操作系统运行在安腾处理器上:微软Windows、Linux、OpenVMS和HP-UX。后两者是惠普的,而且惠普比任何人都(甚至比英特尔)更希望安腾处理器取得成功。毕竟,即使安腾处理器失败,英特尔还可以继续销售x86-64芯片,但惠普已经关闭了其PA-RISC产品线,并将专有的Unix集群押注在安腾处理器上。惠普生产了所有安腾系统80%的份额,到2015年,它是唯一一家仍在生产安腾系统的公司。

Windows 在 2008 R2 之后停止了对基于 Itanium 的 Windows Server 的支持,而 Windows Server R2 的支持已于 2020 年终止。最后一个支持 Itanium 的 OpenVMS 版本发布于 2021 年。HP-UX 自 2007 年以来一直停留在 11.31 版本,最迟将于 2025 年停止支持。

这就只剩下 Linux 了……或者说,直到去年秋天之前都是如此。

基于安腾芯片的 Linux

Debian 在 Debian 8 中弃用了它。RHEL 在 RHEL 5 中逐步淘汰了它。SUSE Linux 在版本 11 中重新启用了它(但并非在启动意义上)。

内核版本 2.3.43 引入了对 Itanium 的支持,而现在版本 6.7 已经移除了这项支持。

当然,这并非一帆风顺。最初提出移除该功能的是编写 EFI 支持代码的人员。他们指出,对这段代码的任何更改都需要有人在 Itanium 平台上进行测试,而这方面只有少数志愿者愿意承担。然而,人们普遍认为,虽然有人在 Itanium 平台上测试和验证代码,但实际上却没有人真正使用它。换句话说,测试架构的规模可能比最终用户群体还要庞大。

维护者评论道

作为维护者,我觉得要求贡献者为 Itanium 构建测试他们的修改不太合适,而且对大多数人来说,启动测试也不现实,即使有些人愿意为此提供基础设施访问权限。一般来说,使用远程访问修改内核或引导加载程序(EFI 组件就位于其中)非常棘手。

归根结底,虽然我知道至少有 2 个人(在 cc 上)在 Itanium 上测试东西并为其打包软件,但我认为现在已经没有真正的用户了,因此要求人们花费时间和精力在这上面是否合理值得怀疑。

LWN.net 从这里开始报道

在内核中移除 ia64 支持后不久,Frank Scheiner 在邮件列表中抱怨说,他和一些人一直在努力解决这种架构的问题,结果却眼睁睁地看着它被移除。Linus Torvalds 回应说,他或许愿意看到它最终回归。

Linus说:

所以,我愿意回到“我们能否恢复它”的讨论中来,但不是立即——更像是这样:“你看,我们已经在内核树外维护它一年了,其他基础设施仍然运行良好,对内核的其他部分没有影响,我们能否再试一次?”

但现在glibc的维护者们提议在下一版glibc中移除ia64支持。这无疑是给“其他基础设施”棺材钉上了一颗重钉。

看来安腾(Itanium)最终还是难逃消亡的命运。到了2026年,恐怕没人会怀念它了。谷歌Chrome浏览器似乎也做好了迎接它的准备……它尽职尽责地将本文中所有提到“Itanium”的地方都用红色下划线标出,并判定为拼写错误。

接下来是不是要放弃对 486 平台 Linux 的支持了