Проект Chromium підтримуватиме використання бібліотек Rust

Хром

, проект Chromium підтримуватиме використання сторонніх бібліотек C++ Rust у Chromium

Google представив Останні новини про те, що команда проекту Chromium працює над додаванням ланцюжка інструментів Rust від виробництва до вашої системи складання.

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

Це дозволить нам включити код Rust у двійковий файл Chrome протягом наступного року. Мета полягає в тому, щоб почати з малого та встановити чіткі очікування щодо того, які бібліотеки будуть розглянуті, коли вони будуть готові.

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

Ми знаємо, що C++ і Rust можуть дуже добре працювати разом завдяки таким інструментам, як cxx, autocxx bindgen, cbindgen, diplomat і (експериментальний) crubit. Однак існують і обмеження. Ми можемо очікувати, що форма цих обмежень зміниться з часом із новими або вдосконаленими інструментами, але рішення та описи тут базуються на поточному стані технологій.

Рішення було прийнято в рамках ініціативи щодо запобігання появі помилок пам'яті у кодовій базі Chrome. Згідно зі статистичними даними, наданими два роки тому, 70% критичних і небезпечних проблем безпеки в Chromium виникають через помилки пам’яті.

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

Мета впровадження Rust у Chromium полягає в тому, щоб забезпечити простіший (без IPC) і безпечніший (менш складний C++ загалом, відсутність помилок безпеки пам’яті в ізольованому середовищі) спосіб задовольнити правило двох, щоб пришвидшити розробку (менше коду для написання , менше проектних документів, менше патчів безпеки) і покращити безпеку (більше рядків коду без помилок безпеки в пам’яті, менша щільність коду помилок) Chrome. Крім того, компанія впевнена, що ми можемо використовувати сторонні бібліотеки Rust для досягнення цієї мети.

На початку 2022 року команда Chromium вже експериментувала з Rust і через кілька місяців дійшов висновку що ця мова спочатку не підходить як заміна C++ для складних завдань з асинхронним кодом, який повинен працювати разом з існуючим кодом.

Таким чином, заплановане використання Rust у Chromium спочатку явно обмежене. З одного боку, взаємодія буде проходити лише в один бік: від C++ до Rust. З іншого боку, спочатку дозволено лише використання сторонніх бібліотек. Вони працюють як окремі компоненти та не залежать від внутрішніх компонентів Chromium. Бібліотеки повинні мати простий API для ваших конкретних завдань. Потім команда Chromium перевірить бібліотеки.

Нарешті, варто згадати, що як таке додавання підтримки в Chromium дозволить коду Rust портуватись у двійкові файли Chrome починаючи з наступного року. Рішення в основному розглядає проблему безпеки: Rust пропонує більший рівень безпеки під час запису в пам’ять, ніж C++, і забороняє потенційно шкідливу поведінку, наприклад читання незаписаних змінних, доступ за межі, встановлені масивами, розіменування нульових або недійсних покажчиків, використання перевизначених ітераторів. .

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


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

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

*

*

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