Proyek Chromium akan mendukung penggunaan pustaka Rust

Khrom

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

Google meluncurkan berita baru-baru ini bahwa tim di balik proyek Chromium sedang berupaya menambahkan rantai alat Rust dari produksi hingga sistem build Anda.

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.

Jadi masuk akal jika Chromium akhirnya mulai meluncurkan teknologi itu juga. Bagi Google, pengenalan Rust di Chromium akan memenuhi tujuan menyediakan cara yang lebih mudah dan aman untuk mematuhi aturan dua, yaitu mempercepat pengembangan dan meningkatkan keamanan Chrome, selain meningkatkan keamanan, menghilangkan kesalahan memori dan mengurangi kepadatan kesalahan 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 diambil sebagai bagian dari inisiatif untuk mencegah munculnya kesalahan memori di basis kode 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, ini 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.

Di awal tahun 2022, tim Chromium sudah bereksperimen dengan Rust dan, setelah beberapa bulan, sampai pada kesimpulan bahwa bahasa tersebut awalnya tidak cocok sebagai pengganti C++ untuk tugas-tugas kompleks dengan kode asinkron yang harus bekerja berdampingan dengan kode yang sudah ada.

Oleh karena itu, rencana penggunaan Rust in Chromium jelas terbatas pada awalnya. Untuk satu hal, interop hanya akan berjalan satu arah: dari C++ ke Rust. Di sisi lain, awalnya hanya diperbolehkan menggunakan perpustakaan pihak ketiga. Ini berfungsi sebagai komponen mandiri dan tidak bergantung pada komponen internal Chromium. Perpustakaan harus memiliki API sederhana untuk tugas khusus Anda. Tim Chromium kemudian akan memeriksa perpustakaan.

Akhirnya, perlu disebutkan seperti itu menambahkan dukungan di Chromium akan memungkinkan kode Rust untuk dipindahkan ke biner Chrome mulai tahun depan. Keputusan terutama melihat masalah keamanan: Rust menawarkan keamanan yang lebih besar saat menulis ke memori daripada C++ dan melarang perilaku yang berpotensi berbahaya seperti membaca variabel tidak tertulis, mengakses di luar batas yang ditetapkan oleh array, dereferencing null atau pointer tidak valid, penggunaan overridden iterators .

Jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat berkonsultasi dengan detailnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.