Chromium projesi, Rust kitaplıklarının kullanımını destekleyecektir

Krom

, Chromium projesi, Chromium'da üçüncü taraf C++ Rust kitaplıklarının kullanımını destekleyecektir.

Google kısa süre önce Chromium projesinin arkasındaki ekibin, derleme sistemine üretim için bir Rust araç zinciri eklemek üzerinde çalıştığını duyurdu.

Henüz Rust'tan habersiz olanlar iyi hatırlasınlar çünkü Mozilla'nın tarayıcı yazmak için özel olarak geliştirdiği bu programlama dili, birçok önemli projeye sızmaya ve kabul görmeye başladı. Rust Kernel.Linux.

Bu, önümüzdeki yıl boyunca Rust kodunu Chrome ikili dosyasına dahil etmemizi sağlayacaktır. Amaç, küçükten başlamak ve hazır olduklarında hangi kitaplıkların dikkate alınacağına dair net beklentiler belirlemektir.

Bu nedenle, Chromium'un da nihayet bu teknolojiyi geliştirmeye başlaması mantıklı. Google için, Chromium'a Rust'ın entegre edilmesi, geliştirme sürecini hızlandırmak ve Chrome'un güvenliğini artırmak anlamına gelen "iki kuralı"nı daha kolay ve güvenli bir şekilde gerçekleştirme hedefini yerine getirecektir. Dahası, bellek hatalarını ortadan kaldırarak ve koddaki hata yoğunluğunu azaltarak güvenliği de artırıyor.

Cxx, autocxx bindgen, cbindgen, diplomat ve (deneysel) crubit gibi araçlar sayesinde C++ ve Rust'ın birlikte çok iyi çalışabileceğini biliyoruz. Bununla birlikte, sınırlamalar da vardır. Bu sınırlamaların şeklinin yeni veya geliştirilmiş araçlarla zaman içinde değişmesini bekleyebiliriz, ancak buradaki kararlar ve açıklamalar teknolojinin mevcut durumuna dayanmaktadır.

Bu karar, Chrome'un kod tabanında bellek hatalarının oluşmasını önleme girişiminin bir parçası olarak alındı . İki yıl önce verilen istatistiklere göre, Chromium'daki kritik ve tehlikeli güvenlik sorunlarının %70'i bellek hatalarından kaynaklanıyor.

Güvenli bellek yönetimine odaklanan ve otomatik bellek yönetimi sağlayan Rust dilini kullanmak, bellek alanının serbest bırakıldıktan sonra erişilmesi ve arabellek taşması gibi sorunlardan kaynaklanan güvenlik açığı riskini azaltacaktır.

Rust'ı Chromium'a getirmenin amacı, geliştirmeyi hızlandırmak için (yazılacak daha az kod) iki kuralını yerine getirmenin daha kolay (IPC yok) ve daha güvenli (genel olarak daha az karmaşık C++, korumalı alana alınmış bellek güvenlik hataları yok) bir yolunu sağlamaktır. , daha az tasarım belgesi, daha az güvenlik yaması) ve Chrome'un güvenliğini artırmak (bellekte güvenlik hatası olmayan daha fazla kod satırı, daha düşük kod hatası yoğunluğu). Ayrıca şirket, bu hedefe ulaşmak için üçüncü taraf Rust kitaplıklarını kullanabileceğimize güveniyor.

2022 yılının başlarında Chromium ekibi Rust ile denemeler yapmış ve birkaç ay sonra, dilin başlangıçta mevcut kodla birlikte çalışması gereken eşzamansız kod içeren karmaşık görevler için C++'ın yerini almaya uygun olmadığı sonucuna varmıştı.

Bu nedenle, Chromium'da Rust kullanımının planlı bir şekilde sınırlı olması başlangıçta açıkça bellidir . Bir yandan, birlikte çalışabilirlik yalnızca tek yönde olacaktır: C++'dan Rust'a. Diğer yandan, başlangıçta yalnızca üçüncü taraf kütüphanelerin kullanımına izin verilir. Bunlar bağımsız bileşenler olarak işlev görür ve Chromium'un dahili bileşenlerinden bağımsızdır. Kütüphanelerin, belirli görevleri için basit bir API'ye sahip olması gerekir. Chromium ekibi daha sonra kütüphaneleri inceleyecektir.

Son olarak, Chromium'a destek eklenmesinin, Rust kodunun gelecek yıldan itibaren Chrome ikili dosyalarına taşınmasına olanak sağlayacağını belirtmekte fayda var . Bu karar öncelikle güvenlik endişelerinden kaynaklanıyor: Rust, belleğe yazma konusunda C++'tan daha fazla güvenlik sunuyor ve yazılmamış değişkenleri okuma, diziler tarafından belirlenen sınırların ötesindeki değerlere erişme, boş veya geçersiz işaretçileri referans alma ve geçersiz yineleyicileri kullanma gibi potansiyel olarak zararlı davranışları yasaklıyor.

Daha fazla bilgi edinmek isterseniz, aşağıdaki bağlantıdan detaylara ulaşabilirsiniz.


Google'da tercih edilen kaynak olarak ekleyin.