La prossima iterazione di Rust in Linux 6.2 riaccende i dibattiti sullo scambio di C con Rust

Rust Linux

L'integrazione di Rust in Linux ha avuto un alto livello di accettazione da parte della comunità e degli sviluppatori

Uno dei grossi problemi che sono sorti nello sviluppo del Kernel di Linux per molto tempo, è l'idea di trovare un candidato perfetto per cambiare il linguaggio di programmazione "C" per uno più moderno e fino a poco tempo fa con l'arrivo di Rust, questa idea non ha smesso di essere messa sul tavolo.

Con la prima anteprima di Rust su Linux 6.1, Ravvivo gli animi da parte di gran parte degli sviluppatori del Kernel e Jonathan Corbet fa notare che "non ci sarebbe ancora abbastanza Rust nel kernel per fare qualcosa di interessante", l'inclusione di questo linguaggio ha riacceso il dibattito sulla necessità di scartare il linguaggio C a favore di Rust in termini della programmazione del sistema. La domanda divide la comunità degli sviluppatori.

asahi linia ha assunto il compito di sviluppare un driver per unità di elaborazione grafica (GPU) per il Mac M1 in Rust.

Sul tuo confronto tra le lingue Rust e C menziona che:

"Non c'è assolutamente alcuna possibilità che tu non abbia a che fare con la gestione degli accessi simultanei, i tentativi post-rilascio di accedere alle aree di memoria e tutti i tipi di altri problemi se dovessi scrivere questo in C. Tutti i problemi di concorrenza scompaiono con Rust! La memoria viene liberata quando serve! Una volta che impari a far funzionare Rust per te, penso che ti guiderà a scrivere un codice decente, anche oltre le promesse di sicurezza del linguaggio. È davvero magico! »

"C'è molto dibattito sull'utilità o meno di Rust nel kernel... nella mia esperienza, è molto più utile di quanto avessi mai immaginato!" ", aggiunge.

I tuoi commenti si ripetono da una raccolta di motivi tecnici che probabilmente giustificare l'abbandono del linguaggio C a favore di Rust. Infatti, il 15,9% delle 2288 vulnerabilità che hanno colpito il kernel Linux in 20 anni (dati del dizionario Common Vulnerabilities and Exposure (CVE)) sono legate a falle nel linguaggio C, problemi legati alla gestione della memoria: buffer overflow , allocazioni non liberate, accesso ad aree di memoria non valide o liberate, ecc.

Inoltre, i principali manutentori del kernel Linux hanno familiarità con il linguaggio C, la cui età è già considerata nella terza età. È in aumento una nuova generazione di manutentori la cui età è intorno ai trent'anni, e quindi è probabile che la difficoltà di trovare manutentori per il kernel Linux aumenti se il suo sviluppo continua nel linguaggio C. Motivi per cui Linus Torvalds ha aperto la porta al kernel sviluppo in Rust.

Sulla questione della possibilità di scartare il linguaggio C, il creatore del linguaggio C elenca una serie di motivi per cui è probabile che le iniziative falliscano che vanno in questa direzione:

La toolchain del linguaggio VS

Il linguaggio C non è solo il linguaggio stesso, ma anche tutti gli strumenti di sviluppo sviluppati per questo linguaggio.

Vuoi fare un'analisi statica del tuo codice sorgente? – Ci sono molte persone che lavorano su questo per C. Strumenti per rilevare perdite di memoria, corse di dati e altri errori? Ce ne sono molti, anche se la tua lingua è meglio equipaggiata.

Se vuoi prendere di mira una piattaforma poco conosciuta, è probabile che tu stia utilizzando C. Lo stato di C come lingua franca dell'informatica oggi fa sì che valga la pena scrivere strumenti per e molti strumenti sono scritti.

Se qualcuno ha una toolchain funzionante:

perché rischiare di cambiare lingua? Una "C migliore" dovrebbe generare molta produttività aggiuntiva per motivare il tempo impiegato per creare una nuova toolchain. Resta da vedere se ciò sia possibile.

Le incertezze di un nuovo linguaggio

Prima che una lingua raggiunga la maturità, è probabile che contenga dei bug. ed è significativamente modificato per affrontare i problemi semantici della lingua. E la lingua è anche coerente con l'annuncio? Può offrire qualcosa come "tempi di compilazione eccezionali" o "più veloce di C", ma questi obiettivi diventano difficili da raggiungere quando il linguaggio aggiunge il

E i manutentori? Certo, puoi biforcare un linguaggio open source, ma dubito che molte aziende sarebbero interessate a utilizzare un linguaggio che potrebbero essere costrette a mantenere in seguito. Scommettere su una nuova lingua è un grosso rischio.

Il fatto che la lingua potrebbe non essere abbastanza buona

La lingua affronta i veri punti dolenti di C?

Si scopre che Le persone non sono sempre d'accordo su quali siano i punti deboli di C. L'allocazione della memoria, la gestione di array e stringhe sono spesso complicate, ma con le giuste librerie e una buona strategia di memoria, possono essere ridotte al minimo.

La lingua non affronta problemi di cui gli utenti avanzati non si preoccupano davvero? In tal caso, il suo valore effettivo potrebbe essere molto inferiore al previsto.

E ancora peggio, cosa succede se la lingua omette caratteristiche cruciali che sono presenti in C? Funzionalità su cui fanno affidamento i programmatori C avanzati? Questo rischio aumenta se il progettista del linguaggio non ha usato molto C, ma proviene da C++, Java, ecc.

Mancanza di sviluppatori esperti per una nuova lingua

Un nuovo linguaggio avrà naturalmente un pool molto più piccolo di sviluppatori esperti. Per qualsiasi azienda di medie o grandi dimensioni, questo è un grosso problema. Più sviluppatori sono disponibili per un'azienda, meglio è.

Inoltre, se l'azienda ha esperienza nel reclutamento di sviluppatori C, non sa come reclutare per questo nuovo linguaggio.

Infine, se sei interessato a saperne di più, puoi consultare il dettagli nel seguente collegamento.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.