LWN:拯救Itanium的尝试!

本文讲述了Itanium架构在Linux内核中的支持经历起伏,从最初的期待到最终被逐步移除,反映了技术变迁与社区决策对边缘架构的影响。

关注了就能看到更多这么棒的文章哦~

The push to save Itanium

By Jonathan Corbet
November 9, 2023
ChatGPT translation
https://lwn.net/Articles/950466/

在内核中添加代码相对容易;然而,要在之后删除该代码就更为困难了。最近的一个例子就是 ia64(“Itanium”)架构的故事,该架构的支持在 6.7 合并窗口期间被移除。这个移除动作让一小群忠实的 ia64 用户感到不满,并希望能在一年后恢复该支持。

到了 20 世纪 90 年代末,32 位处理器逐渐无法继续支撑许多应用程序,从而走向生命劲头。主要是 32 位无法满足逐渐出现在高端系统上的内存 size 需求。作为回应,英特尔启动了一个名为“Merced”的计划,旨在创建 x86 的继任者。这是一种与英特尔之前销售的任何东西完全不兼容的 RISC 体系结构。但由于是英特尔,因此它被认为将成为下一个重大突破。

当时,关于这种新架构的信息都受到保密协议的约束,远远不足以让 Linux 开发人员确定何时能够将内核移植到 Merced,甚至是否可能移植。这是在英特尔进行对Red Hat的投资之前的事情,这标志着大量资金进入 Linux 的开始。有可能 Linux 会被排除在这款被我们可靠地告知将成为未来计算的处理器之外,从而只支持 Windows 和专有的 Unix。

当然,最终事情并未按照这种方式发展。英特尔成为 Linux 的最早支持者之一,并确保在一个名为Trillian的项目名称下,让这种新架构很好地支持了 Linux,最终被命名为 ia64(或在销售文献中称为“Itanium”)。最初的 Itanium 支持进入了 2000 年初的 2.3.43 开发内核版本中。看起来我们的 Linux-on-Itanium 未来的道路光明且清晰。

然而,唯一的问题是事情没有按照计划走下去。早期的 Itanium 系统未能达到炒作中承诺的速度。与此同时,AMD 创建了 x86-64 体系结构,增加了 64 位操作的能力,同时尽量保持与大量部署的 32 位软件的兼容性。这种新架构迅速赢得了市场,迫使英特尔效仿 AMD 的步伐;Itanium 最终成为几乎被遗忘的角落。一些系统有被销售出去,并且英特尔继续多年都在制造这些 CPU,但市场有限。Red Hat 在 2010 年放弃了 ia64 支持。

尽管如此,ia64 体系结构代码在内核中得到了维护,只是相关的兴趣迅速减弱。近年来,ia64 代码经常被视为对内核开发的拖累。在 ia64 代码中发现的一个缺陷在一月份被追踪到后,内核开发人员开始更加认真地讨论是否完全移除对该架构的支持。当时进行了一些讨论,一些业余用户对这个想法表示了不满,但当时没有做任何更改。

然而,这个话题在 5 月份卷土重来,当时 Ard Biesheuvel 推动从内核中删除ia64支持,称该架构妨碍了他在 EFI 子系统中的工作:

作为一个维护者,我觉得很不好意思要求贡献者针对 Itanium 平台构建并且测试其更改,并且对大多数人来说进行引导测试是不切实际的要求,即使是有一些人愿意提供硬件设备来来进行这种测试的情况下。总的来说,在远程访问的情况下进行内核或引导加载程序(bootloader, 也就是 EFI 组件所在的地方)的修改是很棘手的。

虽然我知道至少有 2 个人(抄送名单上的)在 Itanium 上测试软件并为其打包,但我认为真正的用户已经没有了,既然如此,是否值得要求人们在这方面花费时间和精力?

在那次讨论中,Debian ia64 移植版的维护者 John Paul Adrian Glaubitz 建议保留 ia64 支持,直到下一个长期支持的内核发布之后,然后可以放弃它。他说,这样可以最大程度地延长 ia64 对剩余用户的支持时间。事情似乎是这样发展的:在 6.7 合并窗口期间,ia64支持被移除。对于 Linux 来说,ia64 的故事现在已经结束。

然而情况并非如此。在 ia64 支持从内核中消失后不久,Frank Scheiner 向邮件列表投诉,表示他和其他人一直在努力解决这个架构的问题,却看到它被移除。Linus Torvalds 回应道,他愿意看到它再次回归—不过是在一段时间后:

因此,我愿意来进行“我们是否能够复活它”的讨论,但不会立即做这个事情—更像是“看,我们已经在代码仓库外维护它一年了,其他基础设施仍然存在,对内核的其余部分没有影响,我们能否再试一次”?

Scheiner 对ia64支持的移除并不完全满意,但 Glaubitz 描述这个一年的计划是“非常合理的”。

因此,那些想要继续支持这个架构的业余爱好者,在此之前已经面临了艰巨的任务,现在看到挑战变得更加严峻。在主线内核不断演进并解除了以前由于需要维持 ia64 运行而被阻挡的那些改动的情况下,在代码树外维护这个架构的支持对于胆小的人来说并不是一项容易的任务。并且使事情变得更加复杂的是,正如 Tony Luck 在 5 月份指出的那样,未来的内核变更可能在被向后移植(backport)到稳定内核来进行更新时,会在那些内核中破坏 ia64。由于在稳定更新上工作的人无法测试 ia64 系统(即使他们愿意),这样的问题可能会很长时间都不被注意到。

在 ia64 恢复的条件之一是 Torvalds 提出的:“其他基础设施仍然存在”。ia64 爱好者们没有忽略这一点,因此当 Adhemerval Zanella 提议从 GNU C 库(glibc)中删除 ia64 支持时,他们感到担忧—这是其他基础设施中最重要的一部分。Zanella 指出 ia64 移植的状况不佳,存在一些似乎难以解决的问题。Scheiner 回答道,也许可以为 libc 库的测试提供少量的 ia64 机器,并申请更多时间来解决一些问题。

然而,Zanella 随后提出了删除ia64支持的补丁。Scheiner 回应道:“这样的速度让我感到非常惊讶,我希望没有必要急于删除它”。然而,其他开发人员,包括Joseph Myers、Florian Weimer以及 glibc 的维护者Carlos O'Donell,都支持删除 ia64 支持。因此,不出意外的话,很可能会在 2.39 版本中看到真正被删除,该版本预计将于明年 2 月发布,或者最迟在下一个版本中看到。

这毫无疑问对 ia64 的支持者提出了更高的要求。虽然绝不应低估一群坚定开发者能够取得的成就,但基本可以得出结论,ia64 的内核支持已经彻底消失。有些人可能会对此感到失望,但这也是一个向社区证明是否值得不遗余力地保持一个架构,即使它以前没有太多用户,现在几乎没有用户了。这种支持,可以说,本来可以在多年前移除而不会引起太大不适,但是从内核中删除代码是一项困难的任务。正如在这里所见到的,有时还是能做到删除代码的。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

format,png

内容概要:本文系统研究了Picard迭代法在非线性常微分方程参数估计中的应用,深入阐述了该方法的数学原理及其在参数辨识中的收敛性与稳定性优势。通过构建最小化误差的目标函数,并结合数值积分技术,采用迭代方式逐步逼近系统的真实参数值,有效解决了非线性动态系统中因缺乏解析解而难以进行精确建模的问题。文中提供了完整的Matlab代码实现,涵盖模型定义、迭代求解、参数更新与结果可视化等关键环节,增强了方法的可操作性与工程实用性。研究通过典型非线性系统案例验证了算法的有效性,展示了其在科学计算与工程建模中的良好适应性与推广潜力。; 适合人群:具备常微分方程理论、数值分析基础及Matlab编程能力,从事系统建模、参数辨识、动力学仿真等相关方向的研究生、科研人员和工程技术开发者。; 使用场景及目标:①解决实际工程中非线性微分方程模型的未知参数估计问题;②深入理解Picard迭代法在科学计算中的实现机制与数值特性;③为学术论文复现、科研项目开发或课程设计提供可运行、易调试的技术方案与代码参考。; 阅读建议:建议读者结合文中的数学推导与Matlab代码逐行分析,重点关注迭代流程、目标函数构造与数值积分的耦合实现,通过修改模型结构或噪声条件进行扩展实验,以深化对算法鲁棒性与适用边界的理解。配套资源可通过指定公众号和网盘链接获取,推荐同步学习以加速科研进程。
内容概要:本文详细介绍了一种基于多尺度集成极限学习机(Extreme Learning Machine, ELM)的回归方法,并提供了完整的Matlab代码实现。该方法通过构建多尺度特征表示与集成学习机制,有效提升了ELM在处理非线性、高维复杂数据时的预测精度与模型鲁棒性,特别适用于时间序列回归任务。文档不仅阐述了算法的核心原理与技术流程,还系统展示了其在风电功率预测等工程场景中的应用潜力。同时,文中附带了丰富的科研仿真案例集合,涵盖智能优化算法、深度学习、信号处理、电力系统调度等多个前沿方向,体现了多学科交叉融合的技术优势与实践价值。; 适合人群:具备一定Matlab编程能力,从事科学研究或工程应用的研究生、科研人员及工程技术开发者,尤其适合专注于机器学习、智能算法优化、新能源预测与电力系统建模等相关领域的专业人员。; 使用场景及目标:①用于风电、光伏、负荷等时间序列数据的高精度回归预测任务;②为科研工作者提供可复现的多尺度集成ELM模型代码框架,支持快速算法验证与二次开发;③满足实际工程项目中对高效建模、实时预测与智能决策的技术需求。; 阅读建议:建议读者结合所提供的Matlab代码进行动手实践,深入理解多尺度特征构造与集成策略的设计思想,同时可参考文档中其他相关算法案例进行横向比较与综合应用,以提升整体科研创新能力。
内容概要:本文详细介绍了一种基于Simulink的Ćuk转换器仿真方法,该转换器能够将输入的直流电压高效地转换为极性相反的输出直流电压,具备优异的升降压能力与系统稳定性。文章深入剖析了Ćuk转换器的核心工作原理、电路拓扑结构(包含开关管、电感、电容、二极管等关键元件)及其在能量存储与传递过程中的动态行为。通过构建精确的Simulink仿真模型,验证了系统在不同输入条件下的稳态与暂态响应特性,充分展示了其输出电压反相、纹波小、效率高的优势,适用于对负压电源有严苛要求的应用场景。此外,文档还整合了大量基于Matlab/Simulink和Python的科研仿真资源,涵盖风电预测、微电网优化、GAN场景生成、电力电子系统建模等多个前沿方向,凸显了其在现代电力电子与系统仿真研究中的重要价值。; 适合人群:电气工程、自动化、电力电子及相关专业的本科生、研究生、科研人员及具备电路理论基础和Simulink仿真经验的工程技术人员。; 使用场景及目标:①深入理解Ćuk转换器的工作机理及其在直流-直流变换中的独特优势;②利用Simulink平台开展电力电子电路的建模、仿真与性能分析;③为需要稳定负压输出的电源系统设计提供理论依据和技术验证方案。; 阅读建议:建议结合Simulink软件动手实践,重点掌握电路拓扑搭建、关键参数配置及仿真结果解读技巧,同时可延伸学习文中提供的其他科研案例,以拓宽技术视野并提升综合仿真能力。
内容概要:本文提出并实现了一种基于角蜥蜴优化算法(HLOA)优化BP神经网络的风电功率预测模型,旨在解决传统BP神经网络在处理高随机性、强波动性风电数据时存在的收敛速度慢、易陷入局部最优等问题。通过HLOA对BP神经网络的初始权重和阈值进行全局寻优,有效提升了模型的预测精度与稳定性。研究详细阐述了HLOA的搜索机制及其与BP网络的集成方法,并提供了完整的Matlab代码实现,便于复现与验证。实验结果表明,相较于传统BP、GWO-BP、PSO-BP等模型,HLOA-BP在均方根误差(RMSE)、平均绝对误差(MAE)等指标上表现更优,具备更强的泛化能力和鲁棒性,适用于风电场短期功率预测的实际工程场景。; 适合人群:具备一定机器学习理论基础和电力系统知识,熟悉Matlab编程的研究生、科研人员及能源领域的工程技术人员,尤其适合从事新能源发电预测、智能优化算法开发与应用的相关研究人员。; 使用场景及目标:①应用于风电场功率预测系统,提升电网调度的可靠性与运行效率;②作为智能优化算法与神经网络融合的典型范例,用于教学演示、科研复现与模型拓展;③为撰写高水平学术论文提供可验证的技术路线与实验支撑。; 阅读建议:建议读者结合所提供的Matlab代码逐模块分析算法实现细节,重点理解HLOA的个体更新机制与BP网络参数的耦合方式,并可通过更换实际风电数据集或对比其他优化算法(如WOA、SCA等)进一步开展消融实验与性能评估。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值