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

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

Ця документація була опублікована окремо про використання Rust у ядрі Linux та приклад модуля ядра з символьним драйвером пристрою на мові Rust. Код додав Стівен Ротвелл, співробітник відділення.

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

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

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

Іншою проблемою були спроби використовувати типи з плаваючою крапкою або 128 біт, які неприпустимі для середовищ, таких як ядро ​​Linux.

Ви можете не розуміти наслідків того, коли це може статися, тож, можливо
є меншою проблемою, ніж я думаю, але це принципово
Я думаю, якщо будь-яке відображення іржі може викликати паніку, це просто
_ принципово_ не прийнятно.

Помилки зіставлення в непрофільному контролері або коді, а саме для
визначення, всі нові коди Rust, ніколи НІКОЛИ не можуть спричинити
паніка в силі. Те саме стосується «о, в деяких випадках я не пробував використовувати
128-розрядні цілі числа або плаваюча крапка '.

Отже, якщо компілятор Rust викликає приховані призначення, яких не може бути
виявити і повернути як помилки, то я серйозно вважаю, що все це
підхід повинен бути повністю NAK'ed, а інфраструктура Rust,
або на рівні компілятора, або в обгортках ядра, вам потрібно більше
роботи

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

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

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

До цього Google оголосив про свою участь в ініціативі з просування підтримки Rust в ядрі Linux y надані технічні аспекти доцільності впровадження Rust для боротьби з проблемами, що виникають внаслідок помилок в роботі з пам'яттю.

Google вважає, що Rust готовий приєднатися до C як мови розробки Компоненти ядра Linux. У статті також наводяться приклади використання мови Rust для розробки драйверів ядра в контексті її використання на платформі Android (Rust визнана офіційно підтримуваною мовою для розробки Android).

Слід зазначити, що Google підготував початковий прототип контролера, написаний на Rust для міжпроцесорного механізму зв'язку Binder, що дозволить детально порівняти продуктивність та безпеку реалізацій Binder в C та Rust.

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

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


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

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

*

*

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

  1.   Мігель Родрігес - сказав він

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

  2.   Sete - сказав він

    Час від часу я перечитую статті автора Linux Adictos Але мені потрібно зовсім небагато часу, щоб впасти у відчай, коли я бачу, що незважаючи на дуже хороший вміст, кінцевий результат знищений жахливим правописом.
    Невже орфографія та граматика будуть такими складними?
    Ганьба!
    Підбадьорись!