Проект Chromium будет поддерживать использование библиотек Rust

Chromium

, проект Chromium будет поддерживать использование сторонних библиотек C++ Rust в Chromium.

Google представил новости недавно, что команда, стоящая за проектом Chromium работает над добавлением цепочки инструментов Rust от производства до вашей системы сборки.

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

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

Поэтому само собой разумеется, что Chromium наконец-то начинает внедрять и эту технологию. Для Google внедрение Rust в Chromium выполнит задачу предоставления более простого и безопасного способа соблюдения правила двух, которое заключается в ускорении разработки и повышении безопасности Chrome, в дополнение к повышению безопасности, удалению ошибок памяти. и снижение плотности ошибок в коде.

Мы знаем, что C++ и Rust могут очень хорошо работать вместе благодаря таким инструментам, как cxx, autocxx bindgen, cbindgen, дипломат и (экспериментальный) 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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.