Іржаві, з чим, схоже, погоджуються розробники Linux

Мова програмування Rust завжди прагнув замінити C у розробці ядра Linux І саме в той час, як Руст дозрів, кілька розробників виявили зростаючий інтерес до його використання в ядрі Linux.

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

Інтерес до цієї теми помітний, оскільки ця сесія була найактивнішою з подій 2020 року.

Тож чи слід нам зараз переписати все ядро ​​Linux на мову Rust? Ця дискусія не є датою сьогодні і наголошується на тому, що перша стабільна версія Rust з'явилася в 2015 році.

З огляду на можливості, які він пропонує Іржа, деякі пропонують це зробити. Цього року на конференції сантехніків Linux у серпні спікери знову встигли це обговорити.

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

Ця сесія базується на попередній роботі багатьох розробників, включаючи доповідь, проведену в минулому році Алексом Гейнором та Джеффрі Томасом на саміті Linux Security.

На конференції вони представили свою роботу з прототипування модулів ядра 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 Mods та зростаючої згоди щодо загальних вимог до цієї підтримки.


Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   автопілот - сказав він

    Здається, початок нової ери, нерухомий C приходить.

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