banner
Casa / Blog / Più ruggine
Blog

Più ruggine

Oct 29, 2023Oct 29, 2023

La ruggine è la lingua che tutti aspettiamo che ci salvi e ha appena segnato altri due gol. Il progetto Chromium ha deciso di sostenerlo e Mozilla, la casa originale di Rust, ha un progetto Servo rivitalizzato.

Il fatto che la ruggine si sia fatta strada in Linux è di per sé sorprendente poiché Linus Torvalds è stato un fanatico del C per molto tempo. Di conseguenza, l'unico linguaggio da utilizzare per il kernel Linux era il C, ma ora Rust si sta facendo strada. Tali miglioramenti modesti, ma importanti, sono il genere di cose che vedono un linguaggio passare dalle mani degli entusiasti primi utilizzatori a il mainstream.

Ora abbiamo la notizia che Rust si è unito a un altro "grande" progetto - Chromium - la parte open source di Chrome ed Edge. Il blog sulla sicurezza di Google dice:

"Siamo lieti di annunciare che da ora in poi il progetto Chromium supporterà l'uso di librerie Rust di terze parti da C++ in Chromium. Per fare ciò, stiamo ora cercando attivamente di aggiungere una toolchain Rust di produzione al nostro sistema di build. Questo ci consentirà di includere il codice Rust nel binario di Chrome entro il prossimo anno. Stiamo iniziando lentamente e definendo aspettative chiare su quali librerie prenderemo in considerazione una volta che saremo pronti."

Come ho detto all'inizio, Rust è ciò che speriamo ci salverà, ma da cosa esattamente:

Il nostro obiettivo nel portare Rust in Chromium è fornire un modo più semplice (nessun IPC) e più sicuro (C++ meno complesso nel complesso, nessun bug di sicurezza della memoria in una sandbox) per soddisfare la regola del due, al fine di accelerare lo sviluppo (meno codice da scrivere, meno documenti di progettazione, meno controlli di sicurezza) e migliorare la sicurezza (aumentando il numero di righe di codice senza bug di sicurezza della memoria, diminuendo la densità di bug del codice) di Chrome. E crediamo di poter utilizzare le librerie Rust di terze parti per raggiungere questo obiettivo.

Wow... e pensavi che Rust fosse solo un'altra lingua. Il problema principale nell'utilizzo di C o C++ è la sicurezza della memoria. Per citare un recente post sul blog del team di Google Android:

"Per più di un decennio, le vulnerabilità relative alla sicurezza della memoria hanno rappresentato costantemente oltre il 65% delle vulnerabilità tra i prodotti e in tutto il settore."

Lo stesso post segnala anche un calo costante di tali problemi poiché linguaggi sicuri per la memoria come Rust, Kotlin e Java prendono il posto di C/C++. Android 12 supporta Rust per lo sviluppo principale di nuovi componenti. Attualmente non sono presenti vulnerabilità di sicurezza della memoria nel codice Rust di Android.

Tuttavia la cura miracolosa non è tutta una navigazione semplice. Il post sul blog sottolinea alcune delle difficoltà legate all'interazione tra codice C++ e Rust. Se consenti l'interoperabilità in entrambe le direzioni rischi di introdurre problemi. Per ora l'interoperabilità avverrà dal codice C++ che richiama il codice Rust sicuro. Elencando i modi in cui le cose potrebbero andare storte, il post suggerisce che sono necessari strumenti per tenere le cose sotto controllo e quindi Google sta investendo in Cubit, un esperimento su come rendere più sicuro il C++ per Rust.

La seconda buona notizia è che Servo è ancora una volta in fase di sviluppo. Nel caso non lo ricordi, Servo doveva essere un nuovo renderer per Firefox scritto in Rust. Il progetto fu abbandonato quando Mozilla decise che pagare ingenti somme di denaro a un livello di gestione in gran parte non necessario era più importante della creazione di codice. Fu più o meno nello stesso periodo in cui consegnarono Rust alla comunità generale e persero l'opportunità di fare ancora più bene. Un nuovo renderer scritto in Rust avrebbe potuto essere proprio ciò di cui Firefox aveva bisogno per aumentare la propria base di utenti dalla piccola percentuale che ora comanda a qualcosa di più rispettabile. Mi piacerebbe poter riferire che la resurrezione di Servo è un'indicazione che Mozilla ha ripreso la sua rotta, ma no. Il post del blog dice:

"Vorremmo condividere alcune notizie interessanti sul progetto Servo. Quest'anno, grazie a nuovi finanziamenti esterni, un team di sviluppatori lavorerà attivamente su Servo. Il primo compito è riattivare il progetto e la comunità che lo circonda, quindi può attrarre nuovi collaboratori e sponsor per il progetto."

Sembra che altre persone credano in Servo più che in Mozilla. La maggior parte dell'iniziativa è dovuta al fatto che Igalia ha pagato quattro persone per lavorare al progetto. Perché? Sembra perché credono nel codice open source, se solo Mozilla lo facesse.