Опубліковано четверту версію патчів для підтримки драйверів Rust в Linux

Мігель Охеда, автор проекту Rust-for-Linux, Teme нещодавно оприлюднив четверту пропозицію для компоненти драйвера пристрою Rust для розробників ядра Linux.

Підтримка іржі вважається експериментальною, але його вже було погоджено включити до гілки linux-next і достатньо зріло, щоб почати працювати над рівнями абстракції поверх підсистем ядра, а також писати драйвери та модулі. Розробка фінансується Google і ISRG (Internet Security Research Group), яка є засновником проекту Let's Encrypt і сприяє HTTPS і розробці технологій для підвищення безпеки в Інтернеті.

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

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

Безпека пам’яті забезпечується в Rust під час компіляції шляхом перевірки посилань, відстеження володіння об’єктом і тривалості життя (області) об’єкта, а також шляхом оцінки правильності доступу до пам’яті під час виконання коду.

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

Які зміни в четвертій частині?

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

Ми будемо оновлюватися, доки не будемо залежати від нестабільних функцій;
в цей момент ми можемо почати оголошувати мінімальну версію Rust
підтримується, як це робиться, наприклад, для GCC і Clang.

Подібним чином ми також перейшли до версії мови Rust 2021 року.

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

  • Перехід на використання стабільної версії Rust 1.58.0 як еталонного компілятора.
  • Зміни, необхідні для проекту, які ще не включені в основний набір інструментів Rust, включають прапор "-Zsymbol-mangling-version=v0" (очікується в Rust 1.59.0) і режим "maybe_uninit_extra" (очікується в Rust 1.60.0) .
  • Додано автоматичну перевірку доступності інструментів Rust та їх придатності, а також розширено можливість тестування підтримки Rust в системі.
  • Запропоновано нові абстракції, щоб мати можливість отримати доступ до таблиць ідентифікаторів пристроїв ("IdArray" і "IdTable") з коду Rust.
  • Додані шари для виклику функцій, які пов’язані з таймером (кадр годинника).
  • Контролери платформи тепер визначаються за допомогою реалізацій ознак.
  • Для спрощення реєстрації драйверів платформи було додано новий макрос, а також запропоновано новий загальний шаблон драйвера.
  • Додано нові макроси для структур "dev_*".
  • Додано нові методи "{read,write}*_relaxed" для типу IoMem .
  • Вилучено властивість FileOpener для спрощення операцій з файлами.
  • До числа аргументів, переданих під час реєстрації контролера, додано параметр "ThisModule".
  • Запропоновано типовий шаблон для створення модулів ядра на мові Rust.

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


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

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

*

*

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