Projek Chromium akan menyokong penggunaan perpustakaan Rust

Kromium

, projek Chromium akan menyokong penggunaan pustaka C++ Rust pihak ketiga dalam Chromium

Google melancarkan berita baru-baru ini bahawa pasukan di sebalik projek Chromium sedang berusaha untuk menambah rantai alat Rust daripada pengeluaran kepada sistem binaan anda.

Bagi mereka yang masih tidak mengetahui tentang Rust, mereka harus mengingatinya dengan baik kerana bahasa pengaturcaraan ini, yang dibangunkan oleh Mozilla khusus untuk digunakan dalam menulis pelayar, telah mula meresap masuk dan diterima dalam banyak projek penting, salah satunya adalah Inti Karat. Linux.

Ini akan membolehkan kami memasukkan kod Rust dalam binari Chrome sepanjang tahun hadapan. Matlamatnya adalah untuk bermula dari kecil dan menetapkan jangkaan yang jelas untuk perpustakaan yang akan dipertimbangkan apabila ia sudah bersedia.

Jadi wajarlah bahawa Chromium akhirnya mula melancarkan teknologi itu juga. Untuk Google, pengenalan Rust dalam Chromium akan memenuhi objektif untuk menyediakan cara yang lebih mudah dan selamat untuk mematuhi peraturan dua, iaitu untuk mempercepatkan pembangunan dan meningkatkan keselamatan Chrome, selain meningkatkan keselamatan, mengalih keluar ralat memori dan mengurangkan ketumpatan ralat dalam kod.

Kami tahu bahawa C++ dan Rust boleh berfungsi dengan baik bersama-sama, terima kasih kepada alatan seperti cxx, autocxx bindgen, cbindgen, diplomat dan crubit (eksperimen). Walau bagaimanapun, terdapat juga batasan. Kita boleh menjangkakan bentuk pengehadan ini berubah dari semasa ke semasa dengan alat baharu atau dipertingkatkan, tetapi keputusan dan penerangan di sini adalah berdasarkan keadaan teknologi semasa.

Keputusannya telah diambil sebagai sebahagian daripada inisiatif untuk mengelakkan ralat ingatan daripada muncul dalam pangkalan kod Chrome. Menurut statistik yang diberikan dua tahun lalu, 70% isu keselamatan kritikal dan berbahaya dalam Chromium adalah disebabkan oleh ralat ingatan.

Penggunaan bahasa Rust, yang memberi tumpuan kepada pengurusan ingatan yang selamat dan menyediakan pengurusan memori automatik, ia akan mengurangkan risiko kelemahan yang disebabkan oleh isu seperti mengakses kawasan memori selepas ia dibebaskan dan limpahan penimbal.

Matlamat membawa Rust ke Chromium adalah untuk menyediakan cara yang lebih mudah (tiada IPC) dan lebih selamat (kurang kompleks C++ secara umum, tiada pepijat keselamatan memori kotak pasir) untuk memenuhi peraturan dua, untuk mempercepatkan pembangunan (kurang kod untuk ditulis , lebih sedikit dokumen reka bentuk, lebih sedikit tampung keselamatan) dan untuk meningkatkan keselamatan (lebih banyak baris kod tanpa pepijat keselamatan dalam ingatan, ketumpatan pepijat kod yang lebih rendah) Chrome. Selain itu, syarikat yakin bahawa kami boleh menggunakan perpustakaan Rust pihak ketiga untuk mencapai matlamat ini.

Pada awal 2022, pasukan Chromium telah pun bereksperimen dengan Rust dan, selepas beberapa bulan, sampai pada kesimpulan bahawa bahasa itu pada mulanya tidak sesuai sebagai pengganti C++ untuk tugas kompleks dengan kod tak segerak yang mesti berfungsi bersama kod sedia ada.

Oleh itu, penggunaan terancang Rust dalam Chromium jelas terhad pada mulanya. Untuk satu perkara, interop hanya akan pergi satu cara: dari C++ ke Rust. Sebaliknya, pada mulanya hanya penggunaan perpustakaan pihak ketiga dibenarkan. Ini berfungsi sebagai komponen kendiri dan bebas daripada komponen dalaman Chromium. Perpustakaan harus mempunyai API mudah untuk tugas khusus anda. Pasukan Chromium kemudiannya akan memeriksa perpustakaan.

Akhir sekali, adalah wajar untuk menyebut bahawa seperti itu menambahkan sokongan dalam Chromium akan membenarkan kod Rust untuk dipindahkan ke perduaan Chrome mulai tahun depan. Keputusan itu terutamanya melihat pada isu keselamatan: Rust menawarkan keselamatan yang lebih besar apabila menulis ke ingatan daripada C++ dan melarang tingkah laku yang berpotensi berbahaya seperti membaca pembolehubah tidak bertulis, mengakses melebihi had yang ditetapkan oleh tatasusunan, membatalkan rujukan penunjuk nol atau tidak sah, penggunaan iterator yang dibatalkan. .

Jika anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh rujuk butirannya Dalam pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.