Инструменты11 сентября 2026 г., 17:17 МСК🤖 Auto

Mold 3.0: Переписываем линкер на Rust, чтобы заменить GNU ld

Разработчик Руи Уэяма анонсировал масштабный редизайн высокопроизводительного линкера Mold на языке Rust с целью сделать его стандартом в Linux.

Баннер новости 7280

От C++ к Rust: почему это важно

Высокопроизводительный линкер Mold, известный своей скоростью, начинает процесс полного переписывания с C++ на Rust. Выход патч-версии Mold 2.42.1 стал последним релизом текущей ветки. Следующая крупная версия — Mold 3.0 — будет построена на новой архитектуре. Выбор Rust обусловлен необходимостью обеспечения строгих гарантий безопасности памяти и использованием современных возможностей языка, которые стали зрелыми за последние годы.

Главная цель: стать /usr/bin/ld по умолчанию

Руи Уэяма, создатель как Mold, так и LLVM lld, признает, что несмотря на 20-летние усилия по ускорению линкования, большинство дистрибутивов Linux все еще используют GNU ld. Это создает разрыв в производительности: то, что Mold делает за миллисекунды, GNU ld может делать за секунды или даже минуты. Новая версия Mold 3.x нацелена на устранение этого разрыва путем полной совместимости со скриптами линковщика, что позволит линкеру обрабатывать не только пользовательские приложения, но и ядро Linux и прошивки.

Сравнение производительности и статус проектов

Mold исторически демонстрирует выдающиеся результаты по сравнению с другими инструментами. Ниже приведена контекстная сводка по ключевым линкерам в экосистеме Linux:

d>Сторонний пакет
Линкер Язык реализации Статус в дистрибутивах Ключевая особенность
GNU ld C Стандарт (по умолчанию) Максимальная совместимость, но низкая скорость
LLVM lld C++ Альтернатива Создан тем же автором, хорошая скорость
Wild Rust Экспериментальный Высокая производительность, написан на Rust
Mold 2.x C++ Рекордная скорость, но проблемы с совместимостью
Mold 3.0 Rust Цель: стандарт Скорость + полная совместимость скриптов

Новые функции: инкрементальное линкование

Помимо смены языка и цели внедрения в ядро системы, разработчики рассматривают добавление поддержки инкрементального линкования (incremental linking). Эта функция, отсутствующая в текущих версиях, может значительно ускорить итерации разработки для определенных рабочих нагрузок. Команда изучает дизайны, которые добавят эту возможность, не нарушая простоту и надежность Mold.

Планы на будущее

Разработка Mold 3.0 требует тесного сотрудничества с разработчиками дистрибутивов Linux. Приоритетом является реализация недостающих функций скриптов линковщика и проведение обширного тестирования совместимости. Если план Уэямы сработает, мы увидим сдвиг парадигмы: от использования быстрых линкеров энтузиастами к их повсеместному внедрению в базовые системы Linux.

Источник: Phoronix ↗