Das Chromium-Projekt wird die Verwendung von Rust-Bibliotheken unterstützen

Chrom

, unterstützt das Chromium-Projekt die Verwendung von C++ Rust-Bibliotheken von Drittanbietern in Chromium

Google enthüllt News kürzlich, dass das Team hinter dem Chromium-Projekt arbeitet daran, eine Rust-Toolchain hinzuzufügen von der Produktion bis zu Ihrem Build-System.

Für diejenigen, die Rust noch nicht kennen, sollten sie sich gut daran erinnern, denn diese Programmiersprache, die von Mozilla speziell für die Verwendung beim Schreiben eines Browsers entwickelt wurde, hat begonnen, in viele wichtige Projekte einzusickern und akzeptiert zu werden, darunter auch das Rust-Kernel Linux.

Dadurch können wir den Rust-Code im Laufe des nächsten Jahres in die Chrome-Binärdatei aufnehmen. Das Ziel ist es, klein anzufangen und klare Erwartungen zu formulieren, welche Bibliotheken berücksichtigt werden, wenn sie bereit sind.

Es liegt also nahe, dass Chromium endlich auch mit der Einführung dieser Technologie beginnt. Für Google wird die Einführung von Rust in Chromium das Ziel erfüllen, eine einfachere und sicherere Möglichkeit zur Einhaltung der Zweierregel zu bieten, die darin besteht, die Entwicklung zu beschleunigen und die Sicherheit von Chrome zu verbessern, zusätzlich zur Verbesserung der Sicherheit und zum Entfernen von Speicherfehlern und Reduzieren der Fehlerdichte im Code.

Wir wissen, dass C++ und Rust dank Tools wie cxx, autocxx bindgen, cbindgen, diplomat und (experimentellen) crubit sehr gut zusammenarbeiten können. Allerdings gibt es auch Einschränkungen. Wir können davon ausgehen, dass sich die Form dieser Einschränkungen im Laufe der Zeit mit neuen oder verbesserten Tools ändern wird, aber die Entscheidungen und Beschreibungen hier basieren auf dem aktuellen Stand der Technik.

Entscheidung wurde als Teil einer Initiative ergriffen, um das Auftreten von Gedächtnisfehlern zu verhindern in der Chrome-Codebasis. Laut Statistik von vor zwei Jahren sind 70 % der kritischen und gefährlichen Sicherheitsprobleme in Chromium auf Speicherfehler zurückzuführen.

Die Verwendung der Sprache Rust, die sich auf eine sichere Speicherverwaltung konzentriert und bietet eine automatische Speicherverwaltung, verringert es das Risiko von Schwachstellen, die durch Probleme wie den Zugriff auf einen Speicherbereich nach dessen Freigabe und Pufferüberlauf verursacht werden.

Das Ziel, Rust auf Chromium zu bringen, ist es, einen einfacheren (kein IPC) und sichereren (weniger komplexes C++ im Allgemeinen, keine Sandbox-Speichersicherheitsfehler) Weg zu bieten, um die Zweierregel zu erfüllen, um die Entwicklung zu beschleunigen (weniger Code zu schreiben , weniger Designdokumente, weniger Sicherheitspatches) und zur Verbesserung der Sicherheit (mehr Codezeilen ohne Sicherheitsfehler im Speicher, geringere Fehlerdichte im Code) von Chrome. Darüber hinaus ist das Unternehmen zuversichtlich, dass wir Rust-Bibliotheken von Drittanbietern verwenden können, um dieses Ziel zu erreichen.

Anfang 2022 hatte das Chromium-Team bereits mit Rust experimentiert und kam nach ein paar Monaten zu dem Schluss dass die Sprache als C++-Ersatz für komplexe Aufgaben mit asynchronem Code, der neben vorhandenem Code laufen muss, zunächst ungeeignet ist.

Deshalb Der geplante Einsatz von Rust in Chromium ist zunächst deutlich eingeschränkt. Zum einen wird Interop nur in eine Richtung gehen: von C++ nach Rust. Andererseits ist zunächst nur die Verwendung von Bibliotheken Dritter erlaubt. Diese funktionieren als eigenständige Komponenten und sind unabhängig von den internen Komponenten von Chromium. Bibliotheken sollten eine einfache API für Ihre spezielle Aufgabe haben. Das Chromium-Team wird dann die Bibliotheken untersuchen.

Als solches ist es schließlich erwähnenswert Durch das Hinzufügen von Unterstützung in Chromium kann Rust-Code in Chrome-Binärdateien portiert werden ab nächstes Jahr. Die Entscheidung befasst sich hauptsächlich mit dem Thema Sicherheit: Rust bietet beim Schreiben in den Speicher eine größere Sicherheit als C++ und verbietet potenziell schädliche Verhaltensweisen wie das Lesen ungeschriebener Variablen, Zugriffe über die von Arrays gesetzten Grenzen hinaus, Dereferenzieren von Null- oder ungültigen Zeigern, die Verwendung von überschriebenen Iteratoren .

Wenn Sie daran interessiert sind, mehr darüber zu erfahren, können Sie die Details konsultieren im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.