Mold 高速链接器正在用 Rust 重写,有望成为 Linux 上的默认链接器

🐟 2026-09-12 21:29 1



Mold 高性能链接器通常优于 LLVM lld、GNU LD、Wild 等链接器,目前正在用 Rust 编程语言重写,并且还有一个雄心勃勃的目标,那就是成为 Linux 系统的默认链接器。


Mold 2.42.1 今天发布,作为这款开源链接器的新补丁版本。但 Mold 2.42.1 公告中最引人注目的是其后续版本 Mold 3.0 的计划。Mold 一直在从 C++ 重写为 Rust。如今,Rust 语言经过多年的发展已经足够成熟,Mold 计划利用其强大的安全保证和其他特性,这些特性也正是首席开发者 Rui Ueyama 所看重的。此前,Wild 链接器是另一个用 Rust 编程语言编写的高性能链接器。



Rui的目标是让Rust中的Mold 3.0在高速链接方面达到Mold 2.xx的水平。除此之外,Rui还希望Mold能够成为Linux系统的默认链接器。



过去20年间,已经开发出多种快速链接器,包括gold、lld和mold。然而,大多数Linux发行版的系统链接器/usr/bin/ld仍然是GNU ld。因此,mold只需几百毫秒就能完成的链接任务,使用默认链接器可能需要几秒、几十秒甚至几分钟。我认为这对Linux社区来说是一个不幸的情况。


作为 lld 和 mold 的原作者,我认为我对这种情况负有一定责任。我投入了大量精力来提升链接器的速度,但在兼容性方面投入的精力却不够,无法使快速链接器能够直接替代系统链接器。我们计划在 mold 3.0 中改变这一现状。mold 3.x 系列的主要目标之一是使 mold 能够被 Linux 发行版采用为 /usr/bin/ld。


为了实现这一目标,我们首先需要实现缺失的链接器脚本功能,以便 Mold 不仅可以链接用户空间程序,还可以链接内核和固件。之后,我们将进行广泛的兼容性测试,并与 Linux 发行版开发者紧密合作,使他们能够方便地将 Mold 作为 /usr/bin/ld 采用。实现这一目标是 Mold 3.x 的首要任务之一。



Mold 也在考虑最终支持增量链接,这是链接器此前一直不支持的一项功能:



“话虽如此,如果我们能找到一种简单的方法为模具添加增量链接功能,我们很乐意这样做。这仍然可以显著改善一些工作量。我们目前正在探索能够在保持模具的简易性和可靠性的同时,提供这些优势的设计方案。”



有兴趣了解 Mold 连接器项目这一重大转变更多细节的读者,可以在 Mold 2.42.1 公告中找到相关信息。

最新回复 (8)
  • 𝕐𝕖𝕒𝕙 09-12 22:51
    1

    GNU 唉,能说些什么呢

  • NukaColaM 09-12 22:53
    2

    Rust重写刻板印象继续加深。

  • Piako 09-13 19:27
    3

    又一个不是GPL的… ^-^

  • 🐟 楼主 09-13 19:27
    4

    rusted 系列基本都是 MIT


    所以有戏称说是科技公司的阴谋()

  • Piako 09-13 19:41
    5

    似乎是Rust语言机制的问题,不好像C/C++一样搞动态链接,都是静态链接。

    并且经常有人到会GPL的项目下面求作者改MIT,说我公司用不了GPL,求你改MIT之类的 ^-^

  • 🐟 楼主 09-13 19:42
    6


    其实是默认这么做?


    Rust 基金会毕竟基本上都是大厂力(


    GNU 系列好歹有自己的血统^-^

  • MicroSeg作者 09-13 19:45
    7

    rust编译太慢了,坐等优化

  • FlyLoongZ 09-13 19:48
    8

    AI时代,GPL又能有多少用呢 ^-^ ,不如直接MIT

* 帖子来源Linux.do
返回