Skip to main content

Linux 之父和 Redis 之父在这事上有分歧了

https://www.anandtech.com/show/13959/arm-announces-neoverse-n1-platform

据官方介绍,这两款产品实现了对基础架构性能的巨大提升。Arm 表示他们已在移动设备领域取得了不错的成绩,但因为整体性能的一些不足,所以未能在服务器市场占有一席之地。不过他们一直在努力提升性能,以将其市场从移动设备扩大到服务器。为实现这一目标,Arm 在2018年做了很多的工作 —— 推出了堪称性能巅峰的全新 Cortex A76 微架构,而这两款即将发布的产品,毫无疑问正是承载了 Arm 进军服务器市场的宏愿。

没成想 Arm 宣布的这则消息引起了 Linux 之父 Linus Torvalds 的兴趣。他在 realworldtech 网站报道 Arm 即将推出面向服务器的产品的帖子中进行了回复


大意是 Linus 对 Arm 的说法持保留态度,不过他也坦陈 ARM 确实比以前有了很大的进步。

看到 Linus 的回复,一位名为 Michael S 的用户回复了这么一句话:“Linus is the ultimate unixoid. I paid attention that even less devoted unixoids are high on native development. For me, as one that drinks and breaths cross-development all his professional life, it sounds strange, but this mindset is not rare at all.”大意是认为 Linus 不甚了解交叉开发对大多数开发者的意义,而这恰好是 ARM 的长处

正是这条回复,使得 Linus 开启了“战(pen)斗(zi)”模式,直言兼容 ARM 架构的处理器永远不会主宰服务器市场,并用“如果每个人都采用交叉开发的模式,那么必将影响产品的稳定性”这个论据以支撑自己的观点。

Linus 说到,某些人认为了有了“云”之后,指令集架构变得不再那么重要了。Linus 表示这根本就是在扯淡,因为如果你在 x86 上开发程序,那肯定希望部署在 x86 上。这就意味着你会愿意为 x86 架构的云主机支付更多的费用,因为这能保证在本地环境开发的程序在云中执行也会有同样结果。反过来,这就意味着云厂商最终将从他们 x86 架构的云主机赚到更多的钱,也就是说,他们将优先考虑 x86,而选择将 ARM 的产品调到更低的位置。x86 海量的用户以及用户对其的依赖性,使得 x86 成为了无可争议的服务器之王。

“所以,你还不能理解为什么 x86 能统治服务器市场吗?” Linus 说道。

Linus 还表示,ARM 的价格虽然便宜,但它的这个价格优势永远不会出现在 ARM 服务器上 —— 除非其使用者的数量足够大。而就目前看来,Arm 所提供的每个 ARM 服务器不仅速度慢,而且价格比 x86 更贵。

最后,Linus 依然坚持自己对交叉开发的观点,他认为交叉开发主要是针对那些性能比较差的平台,意义不大。只要目标主机强大到足以支持原生开发,没人会选择交叉开发。

对于 Linus 的这番言论,Redis 创始人 Salvatore Sanfilippo(网名:antirez)似乎有不同的声音,他在 Hacker News 的一篇帖子中发表了自己的看法:


antirez 表示自己正努力将 ARM 作为 Redis 的主要架构,恰好 Redis 中的一段底层代码仅可在 ARM 上运行,并且所有测试都可以通过,没有任何稳定性的问题。为此,他并不同意 Linus 的观点。

结合大多数开发者对于此事的回复,他们基本都赞成 antirez 的观点,普遍都认为 Linus 的看法在过去可能是正确的,但他未能预见到未来变革的可能性。根据最新的消息,苹果可能最快明年推出使用 ARM 芯片的 Mac,微软也已为 Windows 10 的应用开发提供对 ARM 的支持。总而言之,他们认为 ARM 的前景未来可期。

对于这次关于 x86 和 ARM 的争论,你又有怎样的看法?欢迎留言交流。

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...