Proyek Chromium akan mendukung penggunaan pustaka Rust

Khrom

, proyek Chromium akan mendukung penggunaan pustaka C++ Rust pihak ketiga di Chromium

Google baru-baru ini mengumumkan bahwa tim di balik proyek Chromium sedang berupaya menambahkan toolchain Rust untuk produksi ke sistem build mereka.

Bagi mereka yang masih belum mengetahui tentang Rust, mereka harus mengingatnya dengan baik karena bahasa pemrograman yang dikembangkan oleh Mozilla khusus untuk digunakan dalam menulis browser ini mulai meresap dan diterima dalam banyak proyek penting, salah satunya adalah Rust Kernel.Linux.

Ini akan memungkinkan kami untuk memasukkan kode Rust di biner Chrome selama tahun depan. Tujuannya adalah untuk memulai dari yang kecil dan menetapkan ekspektasi yang jelas tentang perpustakaan mana yang akan dipertimbangkan saat sudah siap.

Maka, logis jika Chromium akhirnya mulai mengembangkan teknologi ini juga. Bagi Google, pengenalan Rust di Chromium akan memenuhi tujuan untuk menyediakan cara yang lebih mudah dan aman untuk mencapai "aturan dua," yang terdiri dari mempercepat pengembangan dan meningkatkan keamanan Chrome. Lebih jauh lagi, ini meningkatkan keamanan dengan menghilangkan kesalahan memori dan mengurangi kepadatan bug dalam kode.

Kita tahu bahwa C++ dan Rust dapat bekerja sama dengan sangat baik, berkat alat seperti cxx, autocxx bindgen, cbindgen, diplomat, dan crubit (eksperimental). Namun, ada juga batasannya. Kami dapat mengharapkan bentuk batasan ini berubah seiring waktu dengan alat baru atau yang lebih baik, tetapi keputusan dan deskripsi di sini didasarkan pada keadaan teknologi saat ini.

Keputusan tersebut dibuat sebagai bagian dari inisiatif untuk mencegah munculnya kesalahan memori dalam kode sumber Chrome. Menurut statistik yang diberikan dua tahun lalu, 70% masalah keamanan kritis dan berbahaya di Chromium disebabkan oleh kesalahan memori.

Penggunaan bahasa Rust, yang berfokus pada manajemen memori yang aman dan menyediakan manajemen memori otomatis, akan mengurangi risiko kerentanan yang disebabkan oleh masalah seperti mengakses area memori setelah dibebaskan dan buffer overflow.

Tujuan membawa Rust ke Chromium adalah untuk menyediakan cara yang lebih mudah (tanpa IPC) dan lebih aman (C++ yang tidak terlalu rumit secara umum, tanpa bug keamanan memori kotak pasir) untuk memenuhi aturan dua, untuk mempercepat pengembangan (lebih sedikit kode untuk ditulis , lebih sedikit dokumen desain, lebih sedikit tambalan keamanan) dan untuk meningkatkan keamanan (lebih banyak baris kode tanpa bug keamanan di memori, kepadatan bug kode lebih rendah) dari Chrome. Selain itu, perusahaan yakin bahwa kami dapat menggunakan pustaka Rust pihak ketiga untuk mencapai tujuan ini.

Pada awal tahun 2022, tim Chromium telah bereksperimen dengan Rust dan, setelah beberapa bulan, menyimpulkan bahwa bahasa tersebut pada awalnya tidak cocok sebagai pengganti C++ untuk tugas-tugas kompleks dengan kode asinkron yang perlu bekerja bersama dengan kode yang sudah ada.

Oleh karena itu, penggunaan Rust yang direncanakan di Chromium jelas terbatas pada awalnya . Di satu sisi, interoperabilitas hanya akan berjalan satu arah: dari C++ ke Rust. Di sisi lain, awalnya hanya penggunaan pustaka pihak ketiga yang diizinkan. Pustaka ini berfungsi sebagai komponen mandiri dan independen dari komponen internal Chromium. Pustaka tersebut harus memiliki API sederhana untuk tugas spesifiknya. Tim Chromium kemudian akan meninjau pustaka-pustaka tersebut.

Terakhir, perlu disebutkan bahwa penambahan dukungan di Chromium akan memungkinkan kode Rust untuk diporting ke biner Chrome mulai tahun depan. Keputusan ini terutama didorong oleh masalah keamanan: Rust menawarkan keamanan yang lebih besar saat menulis ke memori daripada C++ dan melarang perilaku yang berpotensi berbahaya seperti membaca variabel yang belum ditulis, mengakses nilai di luar batas yang ditetapkan oleh array, melakukan dereferensi pointer null atau tidak valid, dan menggunakan iterator yang tidak valid.

Jika Anda tertarik untuk mempelajari lebih lanjut, Anda dapat menemukan detailnya di tautan berikut.


Tambahkan sebagai sumber pilihan di Google