V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Cbdy
V2EX  ›  服务器

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

  •  
  •   Cbdy · 2020-11-15 10:18:50 +08:00 via Android · 8747 次点击
    这是一个创建于 1498 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

    x86 会有落日的一天 这一天越来越近了
    reus
        19
    reus  
       2020-11-15 13:07:25 +08:00
    @Cbdy 我当然看了。
    Torvalds 的观点,就是 arm 在服务器不会成功。
    等于是,你的标题是:arm 在服务器不会成功,ARM 架构会在服务器领域火一把
    你难道没发现你的标题是前后矛盾的吗?
    germain
        20
    germain  
       2020-11-15 13:12:13 +08:00   ❤️ 15
    我稍微用 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
    charlie21
        21
    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
        22
    charlie21  
       2020-11-15 13:42:38 +08:00
    果机中的 “ X86 服务器开发机”( mbp 和 iMac )若告别 X86 架构,只能导致 「以买来作为 “ X86 服务器开发机” 的果机」 越卖越少(当然,设计师、轻办公者 会买,所以 里外里 可能越卖越多)

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

    醒醒吧! Apple 在甩开 X86 开发者。
    cmdOptionKana
        23
    cmdOptionKana  
       2020-11-15 13:54:23 +08:00 via Android
    @germain Linus 的嘴炮真的好强😂
    charlie21
        24
    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
        25
    echo1937  
       2020-11-15 14:01:34 +08:00
    小型机年代:是 x86 上写,小型机上测,小型机上跑,
    智能机年代:是 x86 上写,ARM 手机上测,ARM 手机上跑,

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

    显然,这是拿 X86 compatibility 去换的。普通用户可能不在乎,X86 开发者(你的最终开发作品会跑在 X86 服务器上那么你就是 X86 开发者)怎会不在乎?
    lewinlan
        27
    lewinlan  
       2020-11-15 14:08:58 +08:00 via Android   ❤️ 1
    以苹果的封闭尿性,不会真有人去上车吧,不会吧不会吧
    felixlong
        28
    felixlong  
       2020-11-15 14:28:38 +08:00
    @germain Linus 这个观点并不见得对。现在手机上的 app 哪个不是在 x86 上开发 ARM 上运行?
    Cbdy
        29
    Cbdy  
    OP
       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
        30
    deorth  
       2020-11-15 14:34:55 +08:00
    懂了,果子药丸
    felixcode
        31
    felixcode  
       2020-11-15 14:36:13 +08:00 via Android   ❤️ 1
    所以 m1 做 x86 开发的流程就是 m1 上没问题了,远程 x86 开发服务器上再跑一遍也没问题了,再放到 x86 生产服务器。

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

    用 m1 做 x86 开发的开发者水平肯定很高,有跨指令集解决问题的能力。
    charlie21
        32
    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
        33
    reus  
       2020-11-15 14:47:45 +08:00   ❤️ 1
    @Cbdy 别忘了也会有一部分用着 x86 mac 的开发者,因为 arm mac 和大环境不兼容,而转向使用 x86 的开发机,放弃使用新 mac 。而且大部分开发者都没有选择服务器的权力,公司用什么就用什么,谁没事折腾这个。

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

    不要以为 arm mac 可以继承 x86 mac 的开发者用户群体,兼容性做不好,开发者完全可以抛弃 mac 。
    reus
        34
    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
        35
    gggxxxx  
       2020-11-15 15:00:00 +08:00   ❤️ 1
    可以预见苹果转 arm 一定会很成功,但是服务器市场不一定,至少短时间不会。
    很简单,苹果转 arm 的意义不是简单的还指令集,而是自己玩设计整合所有芯片。单纯 arm 的例子就是树莓派这种,根本没有优势。arm mac 的最明显的优势就是,5nm 制程和共享内存以及机器学习模块。这些优势并不存在于服务器市场。
    felixcode
        36
    felixcode  
       2020-11-15 15:06:42 +08:00 via Android
    @gggxxxx
    共享内存就是内存加显存加机器学习共用 8GB 内存?
    sagaxu
        37
    sagaxu  
       2020-11-15 15:10:58 +08:00 via Android
    @Cbdy linus 今年刚升级他的主力机,是一台 32 核的 3970x,他有 air 也不奇怪啊,开发也不总是在写代码和调试,很多时间是在沟通。开发也有生活,不总是在工作。

    那个调查对象样本明显的互联网偏向性,28%的人是全栈 web 开发,在互联网之外可没这么高比例。
    tkl
        38
    tkl  
       2020-11-15 15:35:12 +08:00
    别忘了一件事 国产化
    gggxxxx
        39
    gggxxxx  
       2020-11-15 15:38:10 +08:00
    @felixcode 不用单独做显存了。
    也别拿 8g 内存说事了,今年的 3 款都是入门级产品,16g 封顶是有意义的。成本低利润高性能够用。
    明年的 iMac Pro,Mac Pro 和 14/16 mbp 不可能还是 16g 限制。
    THP301
        40
    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 获胜的原因。你真的认为这个世界已经发生了翻天覆地的变化吗?
    reus
        41
    reus  
       2020-11-15 15:47:40 +08:00
    @gggxxxx 现在不管 Intel 还是 AMD,核显都是用内存来做显存,M1 的内存也是硅片外面放的内存颗粒,架构没什么不同。
    charlie21
        42
    charlie21  
       2020-11-15 15:56:52 +08:00
    保守估计 ARM 果机 在 开发者笔记本电脑的市场占有量的 20% 以上才有可能带动大量的 X86 开发者阵营转行去 ARM 开发者阵营。在这之前,Apple 不过是给了消费者一个选择 ... 就像 Apple 摆了一个 shit 在货架上也会有人去买,“给了消费者一个选择” 一样,Apple 亏也是自己亏,无法起到搅动市场的效果,甚至无法拉消费者陪葬。
    felixcode
        43
    felixcode  
       2020-11-15 16:00:14 +08:00
    @gggxxxx
    不用单独做显存,难道 GPU 内置显存?还不得从内存芯片里取么
    按现有差价的话,8G/200 美元, 所以配上个 64G,内存都快上万了。生产力代价昂贵。
    msg7086
        44
    msg7086  
       2020-11-15 16:08:08 +08:00
    别的不说,同样一套代码,我写完 AVX 以后还要再写一份 Neon,闹不闹心啊。
    啊?你说用 C ?就是那个跑起来比汇编慢好几倍的东西?谁爱用谁用去……
    dahhd
        45
    dahhd  
       2020-11-15 16:26:11 +08:00
    @reus 个人电脑领域,难道不是因为苹果太贵?开放&&降价双管齐下,估计你比谁都直呼"真香"。只是苹果生来就高傲,这就注定了它不屑于和微软一样做 Windows 那样的垃圾系统。你还真别不信,照现在这猛烈的势头,未来 ARM 怎么样还真不是你我能预料到的,毕竟苹果改变世界这种事情不是第一次发生了。
    dahhd
        46
    dahhd  
       2020-11-15 16:34:12 +08:00
    @felixcode 你要那么大内存干嘛?拿来吃吗。既然新 M1 的 Mac 能给到你这么多内存,就是有信心保证你日常工作不会卡顿,性能不减;所以你在纠结什么?扯来扯去不就是价格贵吗?你直接说嫌贵不就行了。。。。。。。。。
    reus
        47
    reus  
       2020-11-15 16:40:07 +08:00   ❤️ 1
    @dahhd 不是苹果太贵,是 windows+x86 太便宜,这是三十年前苹果败于微软的事情,大家都知道啊。三十年后的今天,windows 仍然占有绝大部分市场,所以你所谓“双管齐下”,打算什么时候下呢?再等三十年吗?求你开放!求你降价!求你改变世界!求求你了!我信啊,我太信了,三十年啊,心酸死了!一个垃圾系统,居然坐苹果头上三十几年!
    namelosw
        48
    namelosw  
       2020-11-15 16:40:22 +08:00
    后端爱换什么语言技术栈都行, 但是前端和客户端选择却很少. 没有那么强的 lock in.

    同理对 CPU 架构也一样, 一旦性能和成本都很有吸引力的话, 就会导致用户大量迁移.
    felixcode
        49
    felixcode  
       2020-11-15 16:43:21 +08:00   ❤️ 3
    @dahhd
    我台式机 128G 用了 50 多 G 了,内存还真是刚需,你用不着就觉得别人用不着,坐井观天。
    我配的 Linux 机器真不比你的 Mac 便宜,所以不要用个 Mac 就感觉自己是个煤老板富二代一样,显得没见过世面。
    给个这点内存也就保障个日常工作,就别吹生产力和机器学习了,好好吹吹 office,笔记之类的还行,别闹笑话,现在不是 10 年前了,8G,16G 还当高端配置。
    abcbuzhiming
        50
    abcbuzhiming  
       2020-11-15 16:49:04 +08:00   ❤️ 1
    @Cbdy
    而苹果正在以一种强势的态度推动 ARM 进入个人电脑领域(跟风苹果?)。现在假定有一定的数量的开发者在使用 ARM 设备作为开发环境
    ===========
    我觉得,说句很不客气的话,使用苹果的开发者,最好还是不要觉得自己真的“有一定数量”比较好。

    “Torvalds 的观点“ARM 在服务器不会成功”的支持论据变化了”
    哪里变化了?在苹果上开发的开发者有多少人,占全部开发者的比例是多少?我觉得苹果设备的使用者最好不要做梦,也许用苹果是个很有逼格的事情。但是什么时候,苹果的使用者,敢在数量上和廉价的 x86 平台叫板了?
    impossibleshen
        51
    impossibleshen  
       2020-11-15 16:57:32 +08:00
    苹果如果有一天抛弃 x86,果断转回 Windows,现在 Windows 的版本做开发还行,虚拟化,终端什么的都起来了,看同事的一台 3950x+64g,跑编译的时候美滋滋~ 感觉 Windows 也不是以前的 Windows 了,说交叉编译的,好好醒醒吧~ 大型项目追求的就是稳定,而且能到一定级别的项目,who care 节能??? 你又不是一些产品和设计师,整天拿着 mac 会议室,休息区,咖啡厅装逼
    impossibleshen
        52
    impossibleshen  
       2020-11-15 17:00:58 +08:00
    @felixcode 赞同! 真到生产力了,神他妈节能,我不能节能跑半个小时,你节能跑 2 个小时有个鸡儿用,耽误大家时间。就像开发一样说句不好听的,台式机黑苹果配置上去了,真杠杠的,你前后端随便编译一下,10s 和 3~5 秒的差距,节约的是你个人的时间,单管压 I9 的伤不起
    TypeError
        53
    TypeError  
       2020-11-15 17:09:16 +08:00 via Android
    短期内都不是主流,
    写 Python/Go 时我都不想碰带 C 的库,兼容 Win/Mac/Linux 就够麻烦了
    更别提还兼容 ARM CPU
    hwdef
        54
    hwdef  
       2020-11-15 17:22:58 +08:00
    @Cbdy torvalds 用 xps
    Felldeadbird
        55
    Felldeadbird  
       2020-11-15 17:56:58 +08:00
    我想知道,一颗 服务器的 ARM,可以虚拟化多少个 操作系统。
    Vegetables
        56
    Vegetables  
       2020-11-15 18:43:30 +08:00
    苹果又改变世界了!!! windows 是垃圾系统!!! 牛逼~
    charlie21
        57
    charlie21  
       2020-11-15 19:07:51 +08:00
    你从头到尾都是按你自己的逻辑对 linus 的话进行解读。是你的逻辑,是你。
    UnitTest
        58
    UnitTest  
       2020-11-15 20:04:58 +08:00
    @Cbdy Torvalds 用 Macbook Air 是好多年前的新闻了, 之前 air 多年不更新了, 性能早就跟不上时代, 最近的 air 性能也有限.
    XPS 真香.
    dahhd
        59
    dahhd  
       2020-11-15 20:34:33 +08:00 via iPhone
    @felixcode 笑了,第一次听说电脑是靠堆内存来比的,安卓堆了几倍的内存还不是那屌样。我还真觉得你用不到什么高内存场景,你把电脑当服务器用啊。拿内存换性能,那么我告诉你本质原因还是你使用的系统优化的垃圾,真是怎么好意思拿内存来说话的呦。
    dahhd
        60
    dahhd  
       2020-11-15 20:48:58 +08:00 via iPhone
    @reus 你这逻辑奇了,有区别?要是一开始 mac 和普通 x86 pc 一个价,你觉得还有 x86 什么事吗?

    至于你后面说的,因为它是苹果,你有什么办法,要么你接受它要么自己滚蛋,会去降低姿态挽留你等普通用户?要是 windows 这样,已经去见诺基亚了吧,人苹果还不是好好的活着,市值富可敌国,学会接受现实 OK ?所以说苹果是个人 pc 的失败者就是个笑话。
    felixcode
        61
    felixcode  
       2020-11-15 20:49:51 +08:00 via Android
    @dahhd
    iPhone 牛 B,能杀后台来省内存,那服务器也杀后台好了,反正有架构优势,还有果粉忠诚度优势,杀完后台进程还一个劲的夸省内存,性能吊炸天。

    还有,可以问问 adobe 和 jetbrains 这些公司能不能把你破 8G 内存优化到用起来跟 32G 一样,看看 java 能不能利用 arm 架构把内存回收到汁都不剩,果粉靠信仰来省内存。

    不过对你来说 8G 可能也就足够了,桌面放上一个苹果的大标志,不经意的露出来,足够装 B 了。
    felixcode
        62
    felixcode  
       2020-11-15 21:01:40 +08:00 via Android
    @dahhd
    还有,我还就是把电脑当服务器用的,不至于得开个虚拟机连个远程服务器调试程序还洋洋得意为自诩为 Unix 正统命令行环境,实际上服务器程序都跑的不一样,脚本跟服务器不兼容,以后连个 x86 虚拟机都跑不了。

    号称程序员生产力工具,就是外带个虚拟机或远程服务器,连 IDE 都跑服务器上,本地就当个打字机敲字母用,整个就一个脱裤子放屁。
    yzbythesea
        63
    yzbythesea  
       2020-11-15 21:07:44 +08:00
    Linus 的论点是,用什么架构作开发的程序员倾向于用什么架构的云服务作部署
    北美 FAANG 程序员都是用 macbook 作开发
    未来的 macbook 都使用 ARM 了
    所以,大家以后都不用 x86 了,都部署在 ARM 的云服务上了

    最诡异的是,AWS 和 GCP 都于不久前推出基于 ARM 的计算单元,和 Apple 迁移到 ARM,同一个节点。这是 AWS,GCP 和 Apple 联手下得一盘大棋。
    buffzty
        64
    buffzty  
       2020-11-15 21:25:20 +08:00
    @felixcode 苹果的 8g 内存确实算高配置了.因为 8g 的价格快够买金士顿 64g 内存了
    reus
        65
    reus  
       2020-11-15 21:30:56 +08:00
    @dahhd 是先有的 mac,再有的 pc,windows 第一版就是参考了 mac 的,这都不知道,你来讨论个屁。__果_一个。
    neoblackcap
        66
    neoblackcap  
       2020-11-15 21:45:24 +08:00
    @Cbdy 你是把自己的个例当作一般,以果为因。一般公司是用 x86 server 所以要求程序员用 x86 电脑开发。不是你用了 arm 的 mac 所以就上 arm 的 server 。一般程序员的偏好并不能影响公司决策,那么何来 arm server 的普及?
    xuanbg
        67
    xuanbg  
       2020-11-15 22:44:21 +08:00
    @yzbythesea 这逻辑被苹果自家 Mac Server 的销量打脸……
    germain
        68
    germain  
       2020-11-15 22:47:29 +08:00
    @felixlong 不急着去对一个预见性的观点下对错的判断,先把他的观点看明白。我翻译了那么久,显然你是没看。
    “最终的结果:交叉开发主要是针对那些性能很烂的平台,以至于直接在这些平台上开发毫无意义。没有人直接在嵌入式平台上做开发。但只要目标平台性能强大到能够支持原生开发,开发者就会十分纠结,因为交叉开发的模式相对来说太痛苦了。”
    wsseo
        69
    wsseo  
       2020-11-15 22:48:50 +08:00
    我觉得:
    1. arm mac 一定会成功,以苹果对开发者和消费者的把控能力来说。
    2. arm 服务器短期不会火。苹果一向不擅长对公服务,公司讲成本,稳定,这与苹果的作风不符,所以苹果放弃了 osx server,苹果从公司产品那里赚不到钱。
    xuanbg
        70
    xuanbg  
       2020-11-15 22:53:46 +08:00
    交叉编译是一个非常坑的事情,要不然那轮得到 Java 跳出来号称自己能够「跨平台」。C/C 艹不过是多次编译而非一次编译罢了,还不是都一样到处运行?
    pisc
        71
    pisc  
       2020-11-16 00:59:58 +08:00 via Android
    2333,虽然这里是 i2ex,但上面的果粉老兄真是少见的清新脱俗,欢乐多
    systemcall
        72
    systemcall  
       2020-11-16 01:03:48 +08:00 via Android
    @echo1937 #25
    智能机年代,你拥有的设备是 X86 的开发机和 ARM 的测试手机,是这 2 个设备加起来构成的整体,没什么问题
    cubecube
        73
    cubecube  
       2020-11-16 01:17:07 +08:00
    @xuanbg 即便是 JAVA 的跨平台,换成 arm 运行,也是需要反复测试并排坑的。很多不符合 jmm 的多线程程序原来在 x86 上没问题,弱一致性的 arm 上有问题的概率很大。
    更别说 arm 的 jvm 上因为使用不足,排坑也有欠缺的
    fuxkcsdn
        74
    fuxkcsdn  
       2020-11-16 09:01:22 +08:00
    @Cbdy 续航? Intel evo 认证听说过吗?
    linksNoFound
        75
    linksNoFound  
       2020-11-16 09:11:36 +08:00
    不知道 i2ex 的码农们不是因为公司提供 mac 的话,还有多少人会自费买中高配 mac 做开发
    JimmyTinsley
        76
    JimmyTinsley  
       2020-11-16 09:30:37 +08:00
    @NerverLibis #14 听这个描述, 是 code01?
    pkoukk
        77
    pkoukk  
       2020-11-16 09:47:31 +08:00
    @yzbythesea 这不是胡扯么..原来跑在 x86 上的业务咋整?
    KaynW
        78
    KaynW  
       2020-11-16 09:48:31 +08:00
    苹果又出来改变世界了 /doge
    yzbythesea
        79
    yzbythesea  
       2020-11-16 10:55:08 +08:00
    @pkoukk 现在都是微服务啊,一点一点挪过去。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   862 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:30 · PVG 04:30 · LAX 12:30 · JFK 15:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.