Abbiamo già parlato della Linux Plumbers Conference, l’esclusivo evento riservato ai contributori del Kernel Linux a proposito dell’utilizzo dell’AI per effettuare autotuning del Kernel Linux, ma ovviamente non è quello il solo tema ad essere emerso alla conferenza.
Ormai da tempo parliamo del supporto Rust in Linux e Miguel Ojeda, sviluppatore Rust del Kernel Linux, ha fornito gli ultimi aggiornamenti in merito allo stato delle cose, riportati in un articolo di ZDNet:
In brief, Rust Linux is continuing to mature and is getting strong support from developers and vendors, such as Cisco, Samsung, and Canonical… Rust is taking the steps it needs to become — along with C — a fully-fledged member of the Linux language toolchain… That’s not to say that we’re ready to retire C for Rust just yet. In fact, that day is unlikely ever to come. But Rust is definitely on its way to becoming an important language for Linux development…
In breve, Rust Linux sta continuando a maturare e sta ricevendo un forte supporto da sviluppatori e fornitori, come Cisco, Samsung e Canonical… Rust sta facendo i passi necessari per diventare, insieme a C, un membro a pieno titolo di la toolchain del linguaggio Linux… Questo non vuol dire che siamo ancora pronti a ritirare C per Rust. In effetti, difficilmente quel giorno arriverà mai. Ma Rust è sicuramente sulla buona strada per diventare un linguaggio importante per lo sviluppo di Linux…L’aspetto relativo al supporto fornito da grandi player quali Cisco, Samsung e Canonical è certamente rilevante perché, al netto dell’hype sempre altissimo riscosso dal linguaggio (che è sempre altissimo), certifica un interesse oggettivo, per così dire “commerciale”.
Continua Ojeda:
As for the day-to-day work that’s required to make Rust fully integrated with Linux, the “official” website of the initiative is now the self-explanatory Rust for Linux. This site is your one-stop source for all things Rust on Linux… However, the move forward has not been straightforward. Rust on Linux developers have discovered some problems along the way. For example, while deadlocks, when two or more threads are waiting on the other to finish, are safe in Rust, because they don’t result in undefined behavior, they’re not safe in the Linux kernel. The programmers are working on fixing this issue…
Per quanto riguarda il lavoro quotidiano necessario a rendere Rust completamente integrato con Linux, il sito web “ufficiale” dell’iniziativa è ora l’autoesplicativo Rust for Linux. Questo sito è la fonte unica per tutto ciò che riguarda Rust su Linux… Tuttavia, il passo avanti non è stato semplice. Gli sviluppatori di Rust su Linux hanno scoperto alcuni problemi lungo il percorso. Ad esempio, mentre i deadlock, quando due o più thread attendono che l’altro finisca, sono sicuri in Rust, poiché non determinano un comportamento indefinito, non sono sicuri nel kernel Linux. I programmatori stanno lavorando per risolvere questo problema…Quindi se ce ne fosse bisogno, ecco un’altra certificazione del fatto che Rust in Linux sia ben più di un “test”, c’è un sito dedicato, ci sono problemi derivanti l’integrazione e questi problemi sono all’ordine del giorno per essere risolti.
A related issue is that there’s growing interest in backporting Rust support into long-term support (LTS) versions of Linux, specifically 5.15 and 6.1. Some people are especially showing interest in the super LTS Linux 6.1 kernel. However, Linux doesn’t generally allow backports into LTS Linuxes. So, if you really, really want fully featured Rust support in an older LTS kernel, you’re going to need to pay for it in one way or the other. Another general rule that Rust developers have decided they’re going to try to “break” is the rule against duplicate drivers. Usually, no one wants anyone wasting time reinventing the wheel, but some maintainers are open to the idea of experimenting with Rust, by starting simple with a driver they’re already familiar with…
Un problema correlato è che c’è un crescente interesse nel backport del supporto Rust nelle versioni di supporto a lungo termine (LTS) di Linux, in particolare 5.15 e 6.1. Alcune persone mostrano particolare interesse per il kernel super LTS Linux 6.1. Tuttavia, Linux generalmente non consente il backport nei sistemi Linux LTS. Quindi, se vuoi davvero il supporto Rust completo in un kernel LTS più vecchio, dovrai pagare per questo in un modo o nell’altro. Un’altra regola generale che gli sviluppatori di Rust hanno deciso di provare a “infrangere” è la regola contro i driver duplicati. Di solito, nessuno vuole che qualcuno perda tempo a reinventare la ruota, ma alcuni manutentori sono aperti all’idea di sperimentare Rust, iniziando in modo semplice con un driver con cui hanno già familiarità…Quindi, ad ulteriore conferma di come sia ben lontano il momento in cui tutto il Kernel Linux verrà scritto in Rust, ecco comunque dei decisi passi dettati dal favorire la sua integrazione, a partire da queste “eccezioni” tra backport e duplicati che, se non fossero più che giustificate dalla qualità, non sarebbero certamente concesse.
Quello che è certo è come non sia così lontano il giorno in cui Rust e C saranno considerati “alla pari” nel Kernel Linux.
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.
Tags: integrazione, Kernel, Linux, Rust