Друга версія виправлень для підтримки драйверів Rust на Linux вже надіслана

У березні цього року на гілці linux-next в якому на той час він працював для ядра Linux 5.13, Початковий набір компонентів був включений для розробки драйверів пристроїв в мову Іржа, і тепер зроблено прохання включити друге видання виправлень, щоб додати підтримку Rust до ядра Linux.

Особою, яка направила запит розробникам Linux, є Мігель Охеда, автор проекту Rust-for-Linux, про якого ми також говорили кілька днів тому, оскільки його найняли для управління проектом "Prossimo", який в основному зосереджується на координації зусиль з переведення критичної програмної інфраструктури на захищений код для захисту пам'яті ядра Linux за допомогою Rust (якщо ви хочете дізнатись більше про проект, ви можете проконсультуватися розміщення за посиланням нижче.)

Драйвери Rust на Linux
Пов'язана стаття:
Prossimo, проект ISRG із захисту пам'яті ядра Linux за допомогою Rust

Запит, надісланий Мігелем Охедою, є другою оновленою версією компонентів для розробки драйверів пристроїв на мові Rust і в яких видаляються коментарі, зроблені під час обговорення першої версії латок, і до яких Лінус Торвальдс вже долучився до обговорення та запропонував змінити логіку для обробки деяких бітових операцій.

Всередині переваг що згадуються - це те безпечне управління пам'яттю гарантоване в Rust під час компіляції, перевіряючи посилання, відстежуючи право власності на об'єкт та час життя об'єкта, а також оцінюючи правильність доступу до пам'яті під час виконання.

Іржа також забезпечує цілочисельний захист від переповнення, вимагає обов'язкової ініціалізації значень змінних перед використанням, краще обробляє помилки в стандартній бібліотеці, за замовчуванням приймає концепцію посилань та незмінних змінних та пропонує потужне статичне написання для мінімізації логічних помилок.

Зі змін, які виділяються цієї нової версії виправлень згадується:

  • Код розподілу пам'яті запобігає можливості викликати паніку, коли виникають такі помилки, як відсутність пам'яті.
  • Включається варіант бібліотеки Rust alloc, в якому код був перероблений для обробки замків, але кінцева мета - довести всі необхідні функції ядра до основної версії alloc (зміни вже підготовлені та перенесені до стандартної бібліотеки Rust).
  • Замість нічних збірок тепер можна використовувати бета-версію та стабільну версію компілятор rustc для компіляції ядра з підтримкою Rust. В даний час rustc 1.54-beta1 використовується як довідковий компілятор, але після випуску 1.54 наприкінці місяця він буде підтримуватися як довідковий компілятор.
  • Додана підтримка написання тестів із використанням стандартного атрибута Rust "# [test]" та можливість використання doctests для використання зразкового коду з документації як тестів.
  • Підтримка архітектур ARM32 та RISCV була додана на додаток до раніше підтримуваних x86_64 та ARM64.
    Покращені реалізації GCC Rust (інтерфейс GCC для Rust) та rustc_codegen_gcc (внутрішній сервер rustc для GCC), який тепер проходить усі контрольні показники.
  • A новий рівень абстракції для програм Rust використовувати механізми ядра, написані на мові C, такі як дерева, об'єкти підрахунку посилань, створення дескрипторів файлів, завдань, файлів та векторів вводу-виводу.
  • Компоненти розробки драйверів покращили підтримку модуля "file_operations", макросу "module!", Журналу макросів та елементарних драйверів (перевірка та видалення).
  • Binder має підтримку передачі дескрипторів файлів та LSM-посилань.
  • Більш функціональний приклад драйвера Rust, bcm2835-rng, пропонується для апаратного генератора випадкових чисел для плат Raspberry Pi.

Нарешті, якщо вам цікаво дізнатись більше про це, ви можете проконсультуватися з деталями У наступному посиланні.


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

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

*

*

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