按照 Torvalds 的观点, ARM 架构会在服务器领域火一把?

2020-11-15 10:18:50 +08:00
 Cbdy

随着苹果在个人电脑领域拥抱 ARM 架构

Torvalds 的观点见这里👇 https://news.ycombinator.com/item?id=19224579

8520 次点击
所在节点    服务器
79 条回复
reus
2020-11-15 10:36:20 +08:00
小学英语水平都不至于错误理解
标题是:Linus Torvalds on Why ARM Won't Win the Server Space (realworldtech.com)
苹果在个人电脑领域就是个败者,现在换个 cpu 就想引领潮流?
当初换到主流的 x86,也不见超越微软,现在抛弃主流,反倒会影响到服务器领域?
完全不合逻辑。
cheng6563
2020-11-15 10:43:19 +08:00
要火早火了,早就有 n 个核的 arm 服务器了。现在 amd 都火不动 arm 凭什么能火
Cbdy
2020-11-15 10:55:03 +08:00
@reus 你有没有进去看那篇文章?你英语很好吗?那为什么没有看就开始杠了呢?

那个文章当时很有名啊。Torvalds 认为开发者的开发环境是 x86 的是导致他们在选择服务器环境的时候倾向于选择同架构的服务器,所以 ARM 架构在服务器领域不可能成功
sagaxu
2020-11-15 11:01:41 +08:00
苹果拥抱 ARM 没用,就算苹果告别 X86,就他那点儿零头般的份额,影响不大
Cbdy
2020-11-15 11:02:46 +08:00
我觉得 Torvalds 的观点是很有道理,虽然 Python 、JVM 等运行环境屏蔽了底层的架构,但是随着应用场景的丰富,“抽象泄漏”难免发生。
我曾经写过一个图像处理相关的程序,用 Java 的 JNI 调用的 C 库,在本地测试良好。如果我要部署到服务器上,我肯定倾向于选择 x86,不然我就要交叉编译,不知道会出什么幺蛾子。但是如果我开发测试的时候实在 ARM 的机器呢?也许我就会选择 ARM 的机器了
plko345
2020-11-15 11:04:16 +08:00
@cheng6563 有 n 个核的 arm 服务器,但短期内我也不看好
ipwx
2020-11-15 11:05:02 +08:00
逆否命题才等价,也就是说:

a => !b 可以推出 b => !a 但不能推出 !a => b

这里 a = “开发者的个人电脑习惯用 x86”,b = “服务器普及 arm”
Cbdy
2020-11-15 11:10:59 +08:00
@sagaxu 我是这样想的,一方面,虽然苹果设备用户少,但是开发者中用 MacBook 的似乎挺多的(当然,我没有实际看过相关统计😂);另一方面,尝到了十几个小时甜头,甚至二十小时的长续航,其他平台会不会反过来也推出 ARM 的设备呢?
Osk
2020-11-15 11:19:34 +08:00
ARM Linux 之前被 Linus 骂,纯属活该,在内核里写板子的支持信息就很离谱。

然后改成 FDT 了,我觉得也坑,还是和 x86 差了一大截。

现在 ARM 明白了,不能让厂商过于自由发挥,开推 SBBR/EBBR 规范,然而。。。
icyalala
2020-11-15 11:21:05 +08:00
@ipwx
如果 "开发者习惯用 x86 开发" 导致 "服务端流行 x86" 这个观点是对的,
那么 "开发者习惯用 arm 开发" 也应该导致 "服务端流行 arm"。
大概是这种感觉。。
3dwelcome
2020-11-15 12:14:51 +08:00
5nm 的苹果 arm cpu 和 14nm 的 intel cpu,我也不知道怎么选了。
代码能写好的话,我选前者。。
还有百度云服务器早就是 arm 了,这种不需要密集型计算,又省电。
3dwelcome
2020-11-15 12:19:51 +08:00
@Cbdy 不写跨 x86/arm 架构的 c 程序员,不是好程序员。
sagaxu
2020-11-15 12:21:17 +08:00
@Cbdy 为啥我认识的开发大多数是台式机呢,笔记本也是联想 dell 为主,产品和运营倒是不少 macbook
NerverLibis
2020-11-15 12:22:14 +08:00
@Cbdy 现在 amd 8 核笔记本续航也是十几小时 16g 512 全接口 才 4000 多 15.6 寸
yzbythesea
2020-11-15 12:25:14 +08:00
悄悄话,年初就开始火起来了。一个词,便宜!
JohnLou
2020-11-15 12:29:24 +08:00
如果 windows 重心也转到 arm 架构上,厂商就可以买个公版 arm 架构做 cpu 了,不需要 intel 和 amd 二选一了。
Cbdy
2020-11-15 12:58:22 +08:00
@sagaxu 稍微搜了一下
https://insights.stackoverflow.com/survey/2016#technology-desktop-operating-system

另外,Torvalds 本人也用 MacBook Air
ZRS
2020-11-15 13:02:29 +08:00
我认为 ARM 是未来 RISC-V 是更远的未来

x86 会有落日的一天 这一天越来越近了
reus
2020-11-15 13:07:25 +08:00
@Cbdy 我当然看了。
Torvalds 的观点,就是 arm 在服务器不会成功。
等于是,你的标题是:arm 在服务器不会成功,ARM 架构会在服务器领域火一把
你难道没发现你的标题是前后矛盾的吗?
germain
2020-11-15 13:12:13 +08:00
我稍微用 Linus 的口吻翻译了下:


Michael S 写给 Linus 的 email:
> Linus 是 Unix 死忠。我注意到,即使开发者不是 Unix 死忠,对原生开发的要求也很高。
> 对于作为在跨平台开发领域摸爬滚打一辈子的我来说,这听起来有点奇怪,但这种心态一
> 点也不稀奇。

Linus 的回复:


我差不多能确定,只要大家都做跨平台开发,这个平台就不可能稳定,也不可能成功。
很多人认为有了"云"了,就意味着指令集变的不重要了。可以在家开发好了,再上传到云端部署。
这完全是扯淡啊。如果你在 x86 上开发,那么你肯定会偏向于在 x86 上部署,因为你要让代码运行起来和你在家开发测试的时候一毛一样(我说的 "家里 "不是指字面上的家里,而是指你的工作开发环境)。
这就意味着你舍得在 x86 的云主机服务商那儿烧更多的钱,仅仅就因为它和你本地的测试环境一毛一样,可以更好的理解跳出来的错误信息排错。
同样的原因,你也会选 x86,因为即使你主要做的是一些非常极低的跨平台任务,比如只是运行 perl 脚本或其他类似的东西,仅仅因为你希望有一个尽可能相似的系统环境。
这就意味着云提供商最终会从 x86 方面赚到更多的钱,这意味着他们会优先考虑 x86,而其他所有 ARM 的相关产品都自然变成次要的了,可能会沦为低技术含量的边缘服务(也许是托管前端,也许只是静态 html,这类渣渣)。
筒子们,你们是真的不知道 x86 为什么会占领服务器市场吗?
这不仅仅是价格的问题。而是因为要"在家开发"的需求。成千上万的小公司最终把一些随机的小的内部工作负载简单的放到随便一台白盒 PC 上,然后自己还在上面运行一些很傻逼的小东西。然后随着工作负载的扩大,它就变成了一台 "真正的服务器"。然后一旦这个东西又扩大了,让别人来管理硬件和托管就突然变得很有意义了,于是云平台就接管了。
你真的不明白?这又不是特么的造火箭。这可不是我瞎扯淡编故事。这是真正发生过的事,是什么弄死了所有的 RISC 厂商,又让 x86 成为服务器中无可争议的山大王,一直到把其他友商都四舍五入灭掉。几十年前这么讲没人会相信这一切会发生。
如果没有一个开发平台,ARM 不可能在服务器领域做起来。你没有客户,却试图要销售 64-bit 的"超扩展"模型是极度愚蠢的,你没有工作量,因为在整个服务器市场定型之前你也从没卖掉过一个你的廉价小盒子。
ARM 服务器的价格优势永远不会产生,除非你获得足够的订单来弥补英特尔现在在服务器数量上的绝对优势。当在讨论大量使用 ARM 平台开发的开发成本的时候,做一个更小的裸芯片,并且有一个更便宜的 NRE,这真的一点都不重要。看看至今为止的每一款 ARM 服务器产品:它们不仅更慢,而且更贵!

而且功耗上的优势现在在很大程度上也是空谈,无论如何在系统层面上都不会有太好的表现,而且如果人们最终仅仅只是因为他们在 x86 的开发环境上开发就愿意在 x86 的平台花更多的钱,那么功耗也是没什么紧要的了。
这就使得 ARM 完全没有任何实际优势。
这是基本的经济学原理。
而改变这种情况的唯一方法就是你最终能说:"看,你可以在 ARM 机器上更加便宜地部署,这是你工作的开发机器"。
对于开发者来说,实际的硬件是非常重要的。我可以郑重申明,这就是为什么 PC 接管这个领域了,为什么其它的都玩儿完了。
所以,你可以尽情地逼逼,喊“交叉编译“,但只要你这么做,你就会被边缘化,你没有看到大局,你无视真实发生过的历史。
顺便说一句,称这是 "unixoid "的思维方式,只是说明你与现实完全脱节,加上你的论点是多么傻逼。Unix 失败了。是的,它以 Linux 的形式存活了下来,但 Unix 不仅输给了 Linux,还输给了 Windows 。事实上,严格的讲它先输给了 Windows 。
为什么呢?一毛一样的原因,只不过是在软件方面。在这两种不同的情况下。你在哪里找到的开发者?你在 Windows 和 Linux 上找到了他们,因为那是开发者可以接触到的东西。当这些工作负载升级成为“真正的”工作负载时,它们依然还在 Windows 和 Linux 上运行,它们没有被转移到 Unix 平台上,即使在 Linux 的工作负载可以很简单的迁移到 Unix 上。但是,那是完全不必要、无意义的工作。在同相同平台上继续部署下去不就行了么。
软件方面的情况和硬件方面的完全一致。当替代方案是在同一个平台上开发和部署时,交叉开发是毫无意义和愚蠢的。是的,你可以交叉开发,但一般来说你会极力的避免这么做。
最终的结果:交叉开发主要是针对那些性能很烂的平台,以至于直接在这些平台上开发毫无意义。没有人直接在嵌入式平台上做开发。但只要目标平台性能强大到能够支持原生开发,开发者就会十分纠结,因为交叉开发的模式相对来说太痛苦了。
综上所述还得出结论:同样,当在目标环境中作原生开发成本太大时,也会用交叉开发。大型机和传统的大 Unix 机的开发就是这样。但这么做严重削弱了对这些昂贵平台的支持,也相对的加强了廉价开发平台在这些领域的竞争力。
这也是 x86 获胜的原因。你不会真的以为 ARM 突然让这个世界发生了翻天覆地的变化吧?


Linus

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/725372

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX