Rust, с чем, похоже, согласны разработчики Linux

Язык программирования Rust всегда стремился заменить C при разработке ядра Linux И дело в том, что по мере развития Rust несколько разработчиков проявили растущий интерес к его использованию в ядре Linux.

В виртуальной конференции Linux Plumbers 2020, поток микроконференций по LLVM организовал сессию по открытым вопросам и барьеры для принятия Rust в ядре Linux.

Интерес к этой теме очевиден, поскольку эта сессия была самой загруженной на мероприятии 2020 года.

Так стоит ли нам теперь полностью переписать ядро ​​Linux на языке Rust? Это обсуждение началось не с сегодняшнего дня и усилилось с момента появления первой стабильной версии Rust в 2015 году.

Учитывая возможности, которые он предлагает Rust, некоторые предлагают это сделать. В этом году на конференции Linux Plumbers в августе у спикеров снова было время обсудить это.

И что удивительно, они, кажется, согласны единогласно нет не переписывать существующий код в Rust, а для продолжения разработки ядра с использованием Rust. То есть они представляют себе мир, в котором новые фрагменты кода могут быть написаны на Rust.

Эта сессия основана на предыдущей работе многих разработчиков, в том числе на прошлогоднем выступлении Алекса Гейнора и Джеффри Томаса на саммите по безопасности Linux.

На конференции они представили свою работу по созданию прототипов модулей ядра Rust и выступили за внедрение Rust в ядро.

Они процитировали работу, показывающую, что примерно две трети уязвимостей ядра, присваиваемых CVE, в Android и Ubuntu связаны с проблемами безопасности памяти.

В итоге они объяснили, что Rust может полностью избежать такого рода ошибок благодаря более безопасным API включен типом вашей системы и вашим верификатором кредита.

Это исследование уже убедило нескольких специалистов по сопровождению Линус Торвальдс, который поддержал внедрение Rust в ядро. Томас и Гейнор, Джош Триплетт, сопредседатель группы разработчиков языка Rust и давний разработчик ядра Linux, а также другие заинтересованные разработчики приняли участие в обсуждении этой темы.

Они вкратце коснулись его работы и некоторых его первых мыслей и вопросов, прежде чем открыть большую часть времени для обсуждения.

Это использование существующих API в ядре, поддержка архитектуры и вопрос о совместимости ABI между Rust и C.

На самом деле они изначально считают, что Введение Rust в древовидную структуру должно соответствовать существующим C API. 

Однако всем кажется, что дьявол кроется в деталях, и как проделанная работа, так и беседа во время сеанса выявили некоторые открытые проблемы.

Например, Linux интенсивно использует макросы препроцессора и встроенные функции, которые не так легко поддерживаются инструментом bindgen и интерфейсом внешних функций Rust.

Согласно им, в настоящее время единственной зрелой реализацией Rust является компилятор rustc, который выдает код через LLVM.

Ядро Linux поддерживает широкий спектр архитектур, многие из которых не имеют доступного внутреннего интерфейса LLVM.

Со своей стороны Триплетт предположил, что добавление Rust в ядро ​​поможет увеличить архитектурную поддержку Rust, ссылаясь на свой опыт работы с проектом Debian. Он упомянул, что внедрение программного обеспечения Rust в Debian помогло мотивировать энтузиастов и пользователей нишевых архитектур на улучшение поддержки Rust, и он надеется добавить поддержку ядра, чтобы иметь аналогичный эффект.

В частности, он был убежден, что любая архитектура с бэкэндом LLVM быстро станет совместимой с Rust. Обсуждение также было сосредоточено на альтернативных реализациях Rust как пути к более широкой поддержке архитектуры.

Сессия закончилась без каких-либо конкретных вех, но, похоже, есть общий энтузиазм по поводу поддержки модов Rust и растущее согласие по общим требованиям для этой поддержки.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Автопилот сказал

    Кажется, начало новой эры, появляется неподвижная C.

    Привет, Ржавчина, пока, Линус Торвальдс!