Rust nel kernel Linux e Kids Mode in Microsoft Edge sono le due notizie che commento in questo appuntamento del 2021. La prima riguarda come si sviluppa il software di sistema; la seconda come si prova a rendere più guidata la navigazione dei bambini.

Sono argomenti diversi, uniti da una domanda: quali problemi possiamo prevenire attraverso la progettazione, invece di intervenire soltanto dopo che si sono manifestati?

Rust: prestazioni e gestione della memoria

Rust è un linguaggio compilato nato dal lavoro di Graydon Hoare e sviluppato inizialmente con il sostegno di Mozilla. Nel video mi interessa soprattutto la combinazione tra controllo delle risorse e prevenzione di alcune classi di errore.

Il linguaggio usa regole di proprietà e prestito dei valori per verificare molti aspetti della gestione della memoria durante la compilazione. Questo può ridurre errori che, in altri contesti, rimangono più direttamente affidati all'attenzione del programmatore.

Non significa che qualsiasi programma Rust sia privo di bug. Errori logici, interazioni con componenti esterni e uso di codice unsafe richiedono comunque analisi e verifiche.

Concorrenza non significa accesso senza regole

Nel video richiamo anche il software concorrente, nel quale più attività possono procedere con sovrapposizioni. Il problema non è soltanto farle partire insieme, ma coordinare l'accesso alle risorse.

Rust offre strumenti e vincoli che aiutano a prevenire alcune condizioni errate di condivisione. Non elimina automaticamente stalli, errori di progettazione o ogni comportamento indesiderato.

Il suo interesse per il software di sistema nasce proprio da questa possibilità di esprimere controlli utili mantenendo attenzione alle prestazioni.

Perché parlarne nel kernel Linux

Il kernel Linux è sviluppato prevalentemente in C, con una lunga storia di strumenti, convenzioni e architetture supportate. Introdurre un altro linguaggio significa aggiungere possibilità ma anche costi di integrazione e manutenzione.

Nel 2021 commento la proposta collegata al lavoro di Miguel Ojeda e di altri sviluppatori. Non si tratta di riscrivere immediatamente tutto Linux in Rust, ma di esplorare un uso circoscritto nel progetto.

Il supporto iniziale è poi entrato in Linux 6.1, come ricorda la documentazione del kernel. Questa evoluzione successiva va distinta dalla fase di proposta raccontata nel video.

Compilatori e architetture fanno parte della scelta

Nel commento mi soffermo sulla catena di compilazione e sul rapporto con LLVM e GCC. Un linguaggio adatto in astratto deve poter essere usato anche nei processi reali con cui il kernel viene costruito e mantenuto.

La compatibilità dipende da versioni degli strumenti, piattaforme e funzionalità disponibili. Aggiungere Rust non significa abbandonare automaticamente GCC per tutto il codice C o cancellare ogni architettura che non supporta i componenti Rust.

Il vantaggio va quindi valutato insieme ai compromessi, senza trasformare la scelta del compilatore in una contrapposizione tra strumenti buoni e cattivi.

Il mio entusiasmo e i suoi limiti

Mi piace l'idea di prevenire alcuni errori attraverso il linguaggio stesso. Nel video immagino benefici importanti per il futuro del kernel e per gli ambienti che ne dipendono.

Non ne deriva un collegamento magico tra alto e basso livello, né la scomparsa delle macchine virtuali. Astrazioni, compilazione e virtualizzazione rispondono a problemi differenti.

La direzione che considero promettente è più concreta: offrire agli sviluppatori strumenti migliori per costruire componenti affidabili e verificabili.

Edge Kids Mode: la proposta del 2021

La seconda notizia riguarda una modalità di Edge pensata per una navigazione guidata dei bambini. Nel video descrivo profili per fasce d'età, siti consentiti, ricerca filtrata e un aspetto grafico dedicato.

L'idea che apprezzo è rendere disponibili alcune impostazioni senza chiedere ai genitori di costruire tutto attraverso estensioni separate. La necessità delle credenziali dell'adulto per uscire dalla modalità fa parte di quel tentativo di controllo.

Non è però una garanzia che ogni contenuto raggiungibile sia adatto o che un filtro possa sostituire la presenza e il dialogo con un adulto.

Una funzione storica, oggi da non cercare come soluzione corrente

Kids Mode è stata successivamente deprecata con Edge 117, come indicato nelle note di rilascio archiviate di Microsoft.

Questo articolo conserva il commento alla sua introduzione, non offre una procedura attuale per attivarla. Anche l'ipotesi che formulavo su una futura integrazione nelle console era una previsione personale, non un annuncio verificato.

Rimane utile il principio: gli strumenti di navigazione per i più piccoli devono essere comprensibili, mantenuti e adattati alla situazione, senza promettere un web sicuro al cento per cento.

Progettare meglio significa rendere espliciti i limiti

Rust e Kids Mode affrontano problemi diversi e non vanno confrontati come soluzioni equivalenti. Entrambi mi portano però a guardare come le scelte iniziali possano ridurre alcuni errori o difficoltà.

Il valore di una tecnologia non cresce quando la descriviamo come infallibile. Cresce quando sappiamo quali problemi affronta, in quali condizioni funziona e quali responsabilità rimangono a chi la sviluppa e la usa.