Не е изключена възможността за интегриране на поддръжката на Rust в ядрото на Linux 5.20

На конференцията на върха с отворен код 2022 продължава тези дни, в секцията с често задавани въпроси, Линус Торвалдс спомена възможността за ранна интеграция в ядрото на Linux от компоненти за разработка Драйвери на устройства в Rust.

Така че беше споменато, че пачове с активиран Rust могат да бъдат приети в следващия регистър на промените, който съставлява композицията на ядрото 5.20, планиран за края на септември.

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

В рамките на известни проекти, които се интересуват от ръжда от миналата година, можем да подчертаем например Android, тъй като той се интересуваше от Ръжда защото позволява постигане на производителност, близка до езиците C и C++, което позволява да се използва за разработване на части от платформата на ниско ниво и компоненти за взаимодействие с хардуера.

За да гарантира безопасността на C и C ++ кода, Android използва изолиране на пясъчника, статичен анализ и размиващи тестове. Възможностите за изолиране на пясъчника са ограничени и са достигнали границата на своите възможности (по-нататъшното фрагментиране в процесите не е практично от гледна точка на потреблението на ресурси).

Сред ограниченията при използването на пясъчника те споменават високите режийни разходи и по-високата консумация на памет, причинена от необходимостта от генериране на нови процеси, както и допълнителната латентност, свързана с използването на IPC.

Rust-Android
Свързана статия:
Rust вече е фаворит за разработката на Android

От друга страна, не трябва да забравяме това Линус Торвалдс също даде мнението си за Rust и в който похарчени за преглед на изпълнението кръпка от възможности за задаване на драйвери за език Rust в ядрото на Linux и изрази известна критика.

Най-големите оплаквания бяха причинени от потенциалът за бягство "Паника при неуспешно изпълнение" при грешни ситуации, например в ситуация без памет, когато операциите за динамично разпределение на паметта, включително операции на ядрото, могат да се провалят.

Торвалдс заяви, че такъв фокус върху ядрото е фундаментално неприемлив, И ако не разбирате тази точка, можете напълно да отхвърлите всеки код, който се опитва да използва такъв подход. От друга страна, разработчикът на пластира се съгласи с проблема и го счете за разрешим.

Линус Торвалдс
Свързана статия:
Ръждата не беше освободена от критиките на Линус Торвалдс

Но минаха няколко месеца, откакто Линус даде своята обратна връзка и беше положена упорита работа за подобряване на изпълнението. Като такъв, заявка за изтегляне за ядрото в момента все още не е изпратена до Torvalds, но наборът от корекции беше допълнително ревизиран, основните бележки бяха премахнати, тествани на Linux-следващия клон за известно време и доведени до състояние, подходящо за изграждане на абстрактни слоеве върху подсистемите на ядрото, писане на драйвери и модули.

Поддръжката за ръжда идва като опция което не е активирано по подразбиране и не води до включването на Rust сред необходимите компилационни зависимости за ядрото.

Предложените промени правят възможно използването на Rust като втори език за разработване на драйвери и модули на ядрото. Използването на Rust за разработване на драйвери ще ви позволи да създадете по-добри и по-безопасни драйвери с минимално усилие, без проблеми като достъп до област на паметта след освобождаването й, дерефериране на нулеви указатели и препълване на буфер.

Безопасността на паметта се осигурява в Rust по време на компилиране чрез проверка на препратките, проследяване на собствеността на обекта и живота на обекта (обхват), както и чрез оценка на коректността на достъпа до паметта по време на изпълнение на кода. Rust също така осигурява защита от целочислено препълване, изисква променливите да бъдат инициализирани преди употреба, по-добре се справя с грешките в стандартната библиотека, налага концепцията за неизменни променливи и препратки по подразбиране и предлага силно статично въвеждане за минимизиране на логическите грешки.


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

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

*

*

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