Втората версия на кръпките за поддръжка на Rust драйвер за Linux е изпратена

През март тази година на linux-next клон в който по това време работи за ядрото на Linux 5.13, Включен е първоначален набор от компоненти за разработване на драйвери за устройства през езика Rust и сега е отправено искането за включване на второ издание от кръпки, за да добавите поддръжка на 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, като дървета, обекти за преброяване на референции, създаване на файлови дескриптори, задачи, файлове и I / O вектори.
  • Компонентите за разработка на драйвери са подобрили поддръжката за модула „file_operations“, „модула!“ Макрос, регистриране на макроси и елементарни драйвери (сонда и изтриване).
  • Binder има поддръжка за предаване на файлови дескриптори и LSM връзки.
  • По-функционален пример за Rust драйвер, bcm2835-rng, се предлага за хардуерен генератор на произволни числа за платките Raspberry Pi.

И накрая, ако се интересувате да научите повече за това, можете да се консултирате с подробностите В следващия линк.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорник за данните: AB Internet Networks 2008 SL
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.