Nova versione di patches per u kernel Linux cù supportu per a lingua Rust

Miguel Ojeda, autore di u prughjettu Rust-for-Linux, hà prupostu a liberazione di cumpunenti v5 per u sviluppu di i drivers di u dispositivu in a lingua Rust per cunsiderà da i sviluppatori di u kernel Linux. Questa hè a sesta edizione di i patches, tenendu in contu a prima versione, publicata senza un numeru di versione. U supportu Rust hè cunsideratu sperimentale, ma hè digià inclusu in u ramu linux-next è hè abbastanza sviluppatu per inizià u travagliu nantu à a creazione di strati di astrazione nantu à i sottosistemi di kernel, è ancu di scrive drivers è moduli. U sviluppu hè finanzatu da Google è l'ISRG (Internet Security Research Group), chì hè u fundatore di u prughjettu Let's Encrypt è prumove HTTPS è u sviluppu di tecnulugia per migliurà a sicurità di Internet.

Ricurdativi chì i cambiamenti pruposti permettenu di utilizà Rust cum'è una seconda lingua per u sviluppu di drivers è moduli di kernel. U supportu di Rust hè presentatu cum'è una opzione chì ùn hè micca attivata per automaticamente è ùn hà micca risultatu in l'inclusione di Rust trà e dipendenze di custruzzione necessarie per u kernel. Utilizà Rust per sviluppà i drivers vi permetterà di creà drivers più sicuri è megliu cù u minimu sforzu, senza prublemi cum'è l'accessu à una zona di memoria dopu chì hè liberatu, dereferencing null pointers, è buffer overruns.

A gestione sicura di a memoria hè furnita in Rust à u tempu di compilazione attraversu a verificazione di riferimentu, tenendu traccia di a pruprietà di l'ughjettu è a vita di l'ughjettu (scopu), è ancu per a valutazione di a correttezza di l'accessu di memoria durante l'esekzione di codice. Rust furnisce ancu prutezzione contra i overflows integer, esige l'inizializazione obligatoria di i valori variabili prima di l'usu, gestisce l'errori megliu in a biblioteca standard, applica u cuncettu di referenze immutabili è variabili per difettu, offre una forte tipografia statica per minimizzà l'errori lògichi.

A nova versione di i patches cuntinueghja à eliminà i cumenti fatti durante a discussione di a prima, a seconda, a terza, a quarta è a quinta edizione di i patch. In a nova versione:

  • U toolkit hè statu aghjurnatu per liberà Rust 1.59.0. Una variante di a libreria alloc hè ancu sincronizata cù a nova versione di Rust, eliminendu a pussibilità di generazione di un statu di "panicu" quandu l'errore accade, cum'è fora di memoria. A capacità di utilizà inserti di assembler ("caratteristica (global_asm)") hè stata stabilizzata.
  • Aghjunghje supportu per a creazione di prugrammi d'ospiti in Rust chì sò usati durante a compilazione di u kernel.
  • Invece di furnisce i schedarii di specificazione di a piattaforma di destinazione pre-generati, sò generati dinamicamente in basa di a cunfigurazione di u kernel.
  • Aggiuntu u paràmetru di kernel HAVE_RUST per attivà l'architetture chì supportanu Rust.
  • L'abstrazioni sò pruposte per l'usu in u codice Rust per un generatore di numeri pseudo-aleatoriu di hardware.
  • Permette l'usu di codici d'errore senza u prefissu "Error::" (per esempiu, "return Err(EINVAL)") per approssimativamente a gestione di codici d'errore in C.
  • Aggiuntu u tipu "CString" per i C-strings persunalizati. I tipi di Formatter è Buffer sò stati cumminati.
  • Aggiunti tipi Bool è LockInfo.
  • L'implementazione di spin locks hè stata simplificata.

Source: opennet.ru

Add a comment