
Della serie “Non l’eroe che meritiamo, ma quello di cui abbiamo bisogno” ecco arrivare la storia di uno sviluppatore che negli ultimi due anni ha dedicato parte della propria esistenza ad un solo ed unico scopo: veder girare Linux in una tab del browser.
Ora, se state pensando “eh grazie, basta aprire una qualsiasi interfaccia web di gestione delle virtual machine per vedere una console Linux” siete totalmente fuori strada. Qui non si parla di un terminale, bensì di un intero sistema Linux, quindi sì, del Kernel che è stato portato su WebAssembly (Wasm).
Wasm è un formato di codice binario eseguibile nel browser (e non solo) pensato per essere veloce quasi quanto il codice nativo. Permette di scrivere applicazioni in linguaggi come C, C++, Rust, Go, ecc., e farle girare sul web (o in ambienti server) insieme o al posto del JavaScript.
In pratica: compili il tuo codice in WebAssembly, e il browser lo esegue in modo sicuro, veloce e portabile.
Joel Severin, uno sviluppatore del Kernel Linux, ha quindi fatto due più due: ma se posso far girare qualsiasi codice, posso far girare anche Linux!
Assurdo?
Mica tanto, come lui stesso racconta nel messaggio di presentazione nella mailing list del Kernel:
During the past two years or so I have been slow-rolling an effort to port the Linux kernel to WebAssembly (Wasm). I’m now at the point where the kernel boots and I can run basic programs from a shell. As you will see if you play around with it for a bit, it’s not very stable and will crash sooner or later, but I think this is a good first step.
Negli ultimi due anni circa ho portato avanti lentamente un progetto per effettuare il porting del Kernel Linux su WebAssembly (Wasm). Ora sono arrivato al punto in cui il Kernel si avvia e posso eseguire programmi di base da una shell. Come noterai se ci giocherai un po’, non è molto stabile e prima o poi andrà in crash, ma penso che sia un buon primo passo.
La cosa è talmente reale che è possibile testare la soluzione che ha implementato all’indirizzo https://joelseverin.github.io/linux-wasm/ dove è disponibile un terminale interattivo in cui è possibile lanciare alcuni dei classici comandi Linux che sono stati backportati:

Come si può notare, la release del Kernel utilizzata è la 6.4.16, che guarda caso risale al giugno del 2023, ossia due anni fa, momento in cui il nostro Eroe ha iniziato questo periglioso cammino di backporting.
Tra l’altro proprio in quell’articolo raccontavamo di come Torvalds si rilassasse indentando codice Assembly… Hai visto mai, Assembly, WebAssembly… Che sia nata da lì l’idea?
Intanto Linux, se ce ne fosse ancora bisogno, ha dimostrato ancora una volta di essere un sistema letteralmente universale.
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.



















Lascia un commento