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

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

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

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

8534 次点击
所在节点    服务器
79 条回复
charlie21
2020-11-15 13:34:49 +08:00
Node and Ruby applications do fail on ARM though, when it comes to native libraries and extensions. And now your whole distro is different than your development machine, which adds complexity.

Linus Torvalds:Agreed. ARM Node.js 不同于 X86 Node.js ,ARM ruby 不同于 X86 ruby 。用 ARM Node.js 和 ARM ruby 的 ARM 开发者不同于用 X86 Node.js 和 X86 ruby 的 X86 开发者。ARM 的个人电脑是自绝于人民,当他们要把他们的 ARM app 上传到 X86 服务器上运行的时候 —— which adds complexity.

ARM 就是二等公民,只要有 X86 的存在。
ARM 的一套体系就是二等公民,只要有 X86 的一套体系存在。这包括但不限于 X86 服务器,X86 SDK,X86 开发者工具,X86 开发者等。

Apple 不是擅长建立生态吗? Apple 的 ARM CPU 不是很牛逼吗?为什么不建立服务器生态呢?

—— 当然,既然 Apple 这么擅长建立生态,最好建立一个 ARM 服务器的生态,彻底干掉 X86 服务器。以后 Apple server 要超过 linux server 了,多久以后呢我们拭目以待吧

长远看,搞 ARM 一套只能把自己越玩越小。“小生态也是生态” 是没错的。毕竟有的 VPS 提供商是有专门提供 Apple server 的,尽管 DigitalOcean Linode Vultr 都不提供。

-
charlie21
2020-11-15 13:42:38 +08:00
果机中的 “ X86 服务器开发机”( mbp 和 iMac )若告别 X86 架构,只能导致 「以买来作为 “ X86 服务器开发机” 的果机」 越卖越少(当然,设计师、轻办公者 会买,所以 里外里 可能越卖越多)

卖不出去,十年后要么死掉,要么回到 X86 (当然 借着 设计师、轻办公者 带来的大大销量 —— 填补了开发者不买了的空缺,最后 “ X86 服务器开发机” 已经不是果机的目标客户了,而果机销量依然很好)

醒醒吧! Apple 在甩开 X86 开发者。
cmdOptionKana
2020-11-15 13:54:23 +08:00
@germain Linus 的嘴炮真的好强😂
charlie21
2020-11-15 13:54:56 +08:00
Apple 整个的产品线都在 “去 X86 化”,那么 ARM Apple 的最大受益人并不是 Apple 而是:一是 X86 的 Ubuntu 及各个 linux 发行版,二是 Win WSL

这样做非常符合 Apple 开拓市场的风格,可以开拓一个新市场,“超级续航笔记本电脑” ,比如 假设在未来有(人民群众喜闻乐见的)续航长达 48 小时的笔记本电脑,那么 它极大可能就来自 ARM 笔记本电脑,就是来自 Apple 。这一创建就像 iPhone 开拓了智能手机新市场。

这一开拓的举动本身就是建立在牺牲掉 X86 开发者之上的。高!
echo1937
2020-11-15 14:01:34 +08:00
小型机年代:是 x86 上写,小型机上测,小型机上跑,
智能机年代:是 x86 上写,ARM 手机上测,ARM 手机上跑,

换成 ARM Mac,也是这个道理:ARM 上写,x86 上测,x86 上跑,为啥就不行,
至于能不能实现”ARM 上写,ARM 上测,ARM 上跑“,这个和苹果关系不大,
苹果又没有服务器产品线了,要看各大互联网厂商和云巨头是否会转向 ARM 。
charlie21
2020-11-15 14:02:17 +08:00
人民群众喜闻乐见的续航长达 48 小时的笔记本电脑 /t/723891

显然,这是拿 X86 compatibility 去换的。普通用户可能不在乎,X86 开发者(你的最终开发作品会跑在 X86 服务器上那么你就是 X86 开发者)怎会不在乎?
lewinlan
2020-11-15 14:08:58 +08:00
以苹果的封闭尿性,不会真有人去上车吧,不会吧不会吧
felixlong
2020-11-15 14:28:38 +08:00
@germain Linus 这个观点并不见得对。现在手机上的 app 哪个不是在 x86 上开发 ARM 上运行?
Cbdy
2020-11-15 14:30:36 +08:00
@reus 确实表述有一些不妥,不清晰
@charlie21
@echo1937

Torvalds 的观点“ARM 在服务器不会成功”,实际是一个结论——因为开发者倾向于把应用部署在和自己开发环境一样的环境。

而苹果正在以一种强势的态度推动 ARM 进入个人电脑领域(跟风苹果?)。现在假定有一定的数量的开发者在使用 ARM 设备作为开发环境,那么按照 Torvalds 的逻辑,这些开发者将会倾向于使用 ARM 服务器——就像 x86 服务器变得流行那样。

关于 x86 开发者这个说法,应该是先有 x86 设备,然后再有 x86 开发者。如果 ARM 设备开发者流行自然就变成 ARM 开发者,什么体系结构的设备流行会是形成什么体系结构的开发者的土壤,他们在一台随便的 ARM 设备跑一些东西,后来随着工作负载的扩大——

引用一下 20 楼的翻译

""
筒子们,你们是真的不知道 x86 为什么会占领服务器市场吗?
这不仅仅是价格的问题。而是因为要"在家开发"的需求。成千上万的小公司最终把一些随机的小的内部工作负载简单的放到随便一台白盒 PC 上,然后自己还在上面运行一些很傻逼的小东西。然后随着工作负载的扩大,它就变成了一台 "真正的服务器"。然后一旦这个东西又扩大了,让别人来管理硬件和托管就突然变得很有意义了,于是云平台就接管了。
""

于是故事就改变了——Torvalds 的观点“ARM 在服务器不会成功”的支持论据变化了,结论自然也改变了。
deorth
2020-11-15 14:34:55 +08:00
懂了,果子药丸
felixcode
2020-11-15 14:36:13 +08:00
所以 m1 做 x86 开发的流程就是 m1 上没问题了,远程 x86 开发服务器上再跑一遍也没问题了,再放到 x86 生产服务器。

如果出了 bug 就再走一遍,但问题是 x86 上遇到的问题和 m1 的遇到的问题很可能完全不是一回事。

用 m1 做 x86 开发的开发者水平肯定很高,有跨指令集解决问题的能力。
charlie21
2020-11-15 14:46:33 +08:00
首先,Linus Torvalds 是没有逻辑的。看衰 ARM 服务器而已,看衰 ARM 服务器领域生态。看衰未来事物需要逻辑吗?
Torvalds 的发现来自他的直觉!这是一个来自常年和 内核、指令集 打交道的人的直觉

通过 Linus 的发言,我可以推测,ARM 的繁荣可能会增加 linux 内核开发的工作量(因为 linux 内核要适配 X86 和 ARM 架构)

实际上你去看看 Linus 的过往发言就知道了,他一直唱衰 ARM 架构的 CPU 。他对不同的人,有翻开不同的 ARM 唱衰经。

比如你看 Linus 对的看法:

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

(对关注开发体验的人的 ARM 唱衰经)最后,Linus 依然坚持自己对交叉开发的观点,他认为交叉开发主要是针对那些性能比较差的平台,意义不大。只要目标主机强大到足以支持原生开发,没人会选择交叉开发。
https://www.oschina.net/news/104650/linus-torvalds-arm-x86-servers

Linus 是专业的,专业唱衰 ARM 。

当然,业界另一个大牛,Redis 创始人 Salvatore Sanfilippo (网名:antirez )和 Linus 持相反看法。antirez 表示自己正努力将 ARM 作为 Redis 的主要架构。

当别人把 Linus 搬出来的时候,你可以把 antirez 搬出来。

-
reus
2020-11-15 14:47:45 +08:00
@Cbdy 别忘了也会有一部分用着 x86 mac 的开发者,因为 arm mac 和大环境不兼容,而转向使用 x86 的开发机,放弃使用新 mac 。而且大部分开发者都没有选择服务器的权力,公司用什么就用什么,谁没事折腾这个。

更何况,Linus 说的是 x86 linux 做开发,跑在 x86 linux 服务器上。但 mac 根本就没有 arm 服务器,你用 arm mac 开发了,也只能跑在 arm linux 上。

不要以为 arm mac 可以继承 x86 mac 的开发者用户群体,兼容性做不好,开发者完全可以抛弃 mac 。
reus
2020-11-15 14:56:06 +08:00
@charlie21 https://twitter.com/antirez/status/1275713660015575041

"Not sure about that, because Redis was ported to ARM a few years ago and there should be very little to do."

redis 早就移植到 arm 了,现在都不用做什么,更谈不上“自己正努力将 ARM 作为 Redis 的主要架构”。antirez 也已经撒手不管了 redis: http://antirez.com/news/133

搬 antirez 出来砸自己的脚?
gggxxxx
2020-11-15 15:00:00 +08:00
可以预见苹果转 arm 一定会很成功,但是服务器市场不一定,至少短时间不会。
很简单,苹果转 arm 的意义不是简单的还指令集,而是自己玩设计整合所有芯片。单纯 arm 的例子就是树莓派这种,根本没有优势。arm mac 的最明显的优势就是,5nm 制程和共享内存以及机器学习模块。这些优势并不存在于服务器市场。
felixcode
2020-11-15 15:06:42 +08:00
@gggxxxx
共享内存就是内存加显存加机器学习共用 8GB 内存?
sagaxu
2020-11-15 15:10:58 +08:00
@Cbdy linus 今年刚升级他的主力机,是一台 32 核的 3970x,他有 air 也不奇怪啊,开发也不总是在写代码和调试,很多时间是在沟通。开发也有生活,不总是在工作。

那个调查对象样本明显的互联网偏向性,28%的人是全栈 web 开发,在互联网之外可没这么高比例。
tkl
2020-11-15 15:35:12 +08:00
别忘了一件事 国产化
gggxxxx
2020-11-15 15:38:10 +08:00
@felixcode 不用单独做显存了。
也别拿 8g 内存说事了,今年的 3 款都是入门级产品,16g 封顶是有意义的。成本低利润高性能够用。
明年的 iMac Pro,Mac Pro 和 14/16 mbp 不可能还是 16g 限制。
THP301
2020-11-15 15:41:15 +08:00
我几乎可以保证,只要大家做交叉开发,这个平台就不会那么稳定。

或者说是成功的。

有些人认为 "云 "就是指令集不重要。在家开发,在云端部署。

这是扯淡。如果你在 x86 上开发,那么你会想要在 x86 上部署,因为你将能够在 "家里"(我说的 "家里 "不是指字面上的家里,而是指你的工作环境)运行你测试的东西。

这意味着你会很乐意为 x86 云主机支付更多的费用,只是因为它与你可以在自己的本地设置上测试的东西相匹配,而且你得到的错误会转化得更好。

即使你主要做的是一些表面上跨平台的事情,比如只是运行 perl 脚本或其他什么,也是如此。只是因为你会希望有一个尽可能相似的环境。

这又意味着云提供商最终会从 x86 方面赚到更多的钱,这意味着他们会优先考虑 x86,而任何 ARM 产品都是次要的,可能会沦为无脑的渣渣(也许是前端,也许只是静态 html,那种东西)。

伙计们,你们真的不明白 x86 为什么会占领服务器市场吗?

这不仅仅是价格的问题。而是因为 "在家开发 "的问题。成千上万的小公司最后都有一些随机的小的内部工作负载,在这些工作负载中,很容易得到一台随机的白盒电脑,然后自己在上面运行一些愚蠢的小东西。然后随着工作负载的扩大,它就变成了一个 "真正的服务器"。然后一旦这个东西扩大了,突然让别人来管理硬件和托管就变得很有意义了,于是云端就接管了。

你真的不明白吗?这不是火箭科学。这不是一些编造的故事。这是真的发生了什么,是什么杀死了所有的 RISC 厂商,并使 x86 成为服务器中无可争议的山丘之王,到了这个地步,其他的人都只是一个四舍五入的错误。这在几十年前听起来完全是虚构的事情。

如果没有一个开发平台,服务器领域的 ARM 是永远也做不起来的。当你没有客户,也没有工作负载的时候,试图销售 64 位 "超扩展 "模式是愚蠢的,因为你从来没有销售过当初让整个市场开始的小型廉价盒子。

ARM 服务器的价格优势永远不会存在,除非你获得足够的数量来弥补英特尔现在在服务器数量上的绝对巨大优势。当你无法在数量上弥补开发成本的时候,做一个更小的裸片,更便宜的 NRE,一点都不重要。看看至今为止的每一款 ARM 服务器产品:它们不仅更慢,而且更贵!

而且功率优势在很大程度上还是理论上的,无论如何在系统层面上都不会有太大的表现,而且如果人们最终愿意为 x86 盒子支付更多的费用,仅仅是因为他们是在 x86 盒子上开发负载的,那么这也是完全无关紧要的。

这就使得 ARM 完全没有任何实际优势。

这是基本的经济学原理。

而改变这种情况的唯一方法就是你最终说:"看,你可以在 ARM 盒子上更便宜地部署,这就是你可以在上面进行工作的开发盒子"。

对于开发者来说,实际的硬件是非常重要的。我认真地声称,这就是为什么 PC 接管了,为什么其他一切都死了。

所以,你可以尽情地嘘嘘,说 "只是交叉构建",但只要你这么做,你就会成为极少数人,你没有看到大局,你忽视了实际的真实历史。

顺便说一句,称这是 "unixoid "的思维方式,只是说明你与现实完全脱节,你的论点是多么愚蠢。Unix 输了。是的,它以 Linux 的形式存活了下来,但 Unix 不仅输给了 Linux,还输给了 Windows 。事实上,可以说是它先输给了 windows 。

为什么呢?一模一样的原因,只是在软件方面。在这两种情况下。你在哪里找到的开发者?你在 Windows 和 Linux 上找到了他们,因为那是开发者可以接触到的东西。当这些工作负载成长为 "真正的 "工作负载时,它们继续在 Windows 和 Linux 上运行,它们没有被转移到 Unix 平台上,即使在 Linux 的情况下那会相当容易。不,那只是不必要的、无意义的工作。只要继续在同一个平台上部署就可以了。

软件方面的问题和硬件方面的问题完全一样。当替代方案是在同一平台上开发和部署时,交叉开发是毫无意义和愚蠢的。是的,你可以这样做,但是如果可能的话,你一般都希望避免这样做。

最终的结果是:交叉开发主要是针对那些太弱的平台,以至于在这些平台上开发毫无意义。在嵌入式领域,没有人做原生开发。但只要目标足够强大,能够支持原生开发,就会有巨大的压力,因为交叉开发模式相对来说太痛苦了。

以上的推论是,是的,当目标环境太贵,无法进行原生开发时,也会进行交叉开发。大铁和传统的大 Unix 盒子就是如此。但这严重削弱了对昂贵平台的支持,也使得廉价开发平台更有能力和可能成长为这个领域的一员。

这也是 x86 获胜的原因。你真的认为这个世界已经发生了翻天覆地的变化吗?

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

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

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

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

© 2021 V2EX