Не виключена можливість інтеграції підтримки Rust в ядро ​​Linux 5.20

На конференції Open Source Summit 2022 в ці дні в розділі поширених запитань, Лінус Торвальдс згадав про можливість ранньої інтеграції в ядрі Linux компонентів для розробки Драйвери пристроїв в Rust.

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

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

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

Щоб забезпечити безпеку коду на C і C ++, Android використовує ізоляцію пісочниці, статичний аналіз та нечіткі тести. Можливості ізоляції пісочниці обмежені і досягли межі своїх можливостей (подальша фрагментація процесів не є практичною з точки зору споживання ресурсів).

Серед обмежень використання пісочниці вони згадують великі накладні витрати та більш високе споживання пам'яті, спричинені необхідністю генерувати нові процеси, а також додаткову затримку, пов'язану з використанням IPC.

Rust-Android
Пов'язана стаття:
Іржа вже є фаворитом для розробки Android

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

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

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

Лінус Торвальдс
Пов'язана стаття:
Іржа не був звільнений від критики Лінуса Торвальда

Але минуло кілька місяців відтоді, як Лінус залишив свій відгук, і була зроблена важка робота, щоб покращити впровадження. Як такий, запит на витяг для ядра на даний момент ще не надіслано Торвальдсу, але набір виправлень було додатково переглянуто, ключові нотатки видалено, перевірено на гілці linux-next протягом досить тривалого часу та доведено до стану, придатного для побудови шарів абстракції поверх підсистем ядра, написання драйверів і модулів.

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

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

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


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

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

*

*

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