RISC-V è un set di istruzioni di tipo Reduced Instruction Set Computer pensato per essere uno standard aperto a tutti per lo sviluppo di hardware. Introdotto nel 2010, ha trovato successivamente diffusione tra i produttori grazie alla possibilità di contenere i costi di progettazione per via della licenza completamente gratuita. Recentemente, le CPU di tipo RISC hanno trovato una grande diffusione nei dispositivi mobili, tra cui anche i portatili, grazie ad ARM, per via della loro miglior efficienza energetica. Motivo per cui è stato di recente aggiunto da parte dello standard anche il supporto al linguaggio Rust su kernel Linux.
RISC-V: Rust supportato ufficialmente su kernel Linux
Il lavoro è stato pubblicato su una pagina git ufficiale del kernel Linux. L’integrazione di Rust consente in questo modo a RISC-V di mettersi alla pari di altre architetture che già supportano il linguaggio, prima fra tutte x86-64, ma anche LoongArch e ARM64. L’utilizzo di Rust all’interno del kernel è tuttavia ancora piuttosto limitato, sono infatti presenti ancora pochi driver e i lavori per l’implementazione completa sono ancora in corso. Sono tuttavia già stati aggiunti diversi nuovi driver, oltre all’arrivo di supporti per nuovi sottosistemi che avverrà prossimamente.
Rush è un linguaggio di programmazione introdotto nel 2010 del tipo multi-paradigma, destinato alla creazione di sistemi complessi e molto sicuri, anche multithreaded. Per questo motivo, il linguaggio mette in risalto caratteristiche come il controllo dell’allocazione della memoria, la concorrenza dei processi e le prestazioni. Per fare un paragone, un programma che viene scritto in Rust ha una sicurezza maggiore rispetto a C++, mantenendo più o meno la medesima velocità di esecuzione. Uno degli svantaggi è tuttavia il tempo di compilazione più lungo.
L’aggiornamento al kernel Linux aggiunge nello specifico il byte/half-word compare-and-exchange, oltre al supporto per l’estensione Zihintpause all’interno di hwprobe, con benefici diretti sull’efficienza energetica, l’istruzione PR_RISCV_SET_ICACHE_FLUSH_CTX prctl() e lockless lockrefs.
Gli esperti possono ottenere più informazioni dettagliate direttamente nella pagina Git ufficiale.