Le app Linux saranno presto disponibili su Chrome OS, a partire da Google Pixelbook, grazie a Project Crostini. Cos'è Crostini e perché è così importante? Ci addentriamo nel più grande cambiamento di Chrome OS dall'integrazione delle app Android.
Ecco tutto ciò che devi sapere sullo sviluppo segreto di Google per un anno della funzionalità dell'app Linux in Chrome OS, noto anche come Project Crostini.
In poche parole, è un modo per eseguire normali applicazioni Linux su Chrome OS senza compromettere la sicurezza o abilitare la modalità sviluppatore. Il (non ancora disponibile) stati di impostazione ufficiali che è "Esegui strumenti, editor e IDE Linux sul tuo Chromebook".
Crostini è il culmine di diversi anni di sviluppo che hanno consentito alla funzionalità di funzionare in modo sufficientemente sicuro da soddisfare gli elevati standard di sicurezza di Chrome OS. Per capire perché sta solo apparendo, è meglio guardare cosa è successo prima.
Contestualizzare Crostini: i secoli bui di Chrome OS
Prima che le app Android arrivassero sulla scena, non c'era molto in termini di funzionalità offline, per non parlare di utili app di produttività in Chrome OS. Perché una persona sana di mente dovrebbe acquistare un Chromebook? "È solo un browser Web", è stata l'osservazione conclusiva di ogni recensione del Chromebook. Il Chrome Web Store era quanto avresti ottenuto, ma la selezione di app era piuttosto scarsa e raramente aggiornata. I più avventurosi potrebbero provare a eseguire applicazioni Android utilizzando uno strumento chiamato Saldatore ad arco, ma è stato un successo e le prestazioni sono state scarse.
Per aggirare le limitazioni offline, gli utenti frustrati hanno cancellato Chrome OS e installato Linux o utilizzato lo strumento open source Crostino per configurare un ambiente desktop simultaneo [ad es. Ubuntu Unity] funzionante sul kernel di Chrome OS.
L'esecuzione di una distribuzione sostitutiva GNU/Linux o Crouton richiedeva un bel po' di know-how ed era spesso piena di bug, e nessuna delle due opzioni era particolarmente facile da usare o sicura. Premi il tasto sbagliato e cancellerai il tuo dispositivo o lo murarai, e se hai lasciato il tuo ambiente Crouton non crittografato, qualsiasi utente ospite potrebbe accedervi.
Integrazione di app Android, creando un precedente
Le app Android sono arrivate su Chrome OS nel 2016 e hanno rappresentato un enorme balzo in avanti nella funzionalità offline, ma l'abilitazione di questa funzionalità non era solo plug-and-play. L'unico modo in cui poteva funzionare su un sistema operativo che valorizza la sicurezza era se fosse effettivamente sandbox.
La nuova soluzione scelta dagli sviluppatori di Chrome OS era containerizzazione, un modo per raggruppare le applicazioni in pacchetti eseguibili autonomi. Utilizzando un contenitore e più di alcune modifiche, sono riusciti a ottenere l'ambiente Android completo e tutto il resto le sue dipendenze da eseguire in un contenitore, separato dal resto di Chrome OS ma in esecuzione sullo stesso nocciolo.
Ma le app Android di solito non sono sviluppate pensando a un fattore di forma desktop/laptop. Aggiungi una scarsa esperienza tattile su Chrome OS nel mix e avrai una sessione di produttività frustrante se le app hanno funzionato.
Mentre finora le app Android hanno contribuito a colmare il divario di produttività, c'era ancora quel desiderio per l'enorme libreria di app desktop complete. Come per il problema iniziale di Android, sarebbe sufficiente aprire la possibilità di eseguire applicazioni Linux aumentare la superficie di attacco di Chrome OS perché le applicazioni dannose potrebbero avere accesso a tutto sul sistema operativo host. Quindi questa volta gli sviluppatori hanno progettato la funzionalità dell'app Linux il più isolata possibile, oltre a ciò che hanno già appreso con Android.
Difesa in profondità
Come suggerisce il nome, Crostini è come Crouton, ma invece di avere uno spazio utente insicuro accanto a Chrome OS, ha due muri tra di loro. Il primo muro è Termina VM, un'implementazione KVM (Kernel-based Virtual Machine) di Chrome OS. Una volta che la VM si avvia, monta il secondo muro, un contenitore, che poi ha l'app che vuoi effettivamente eseguire. Quindi, quando vuoi eseguire la tua app desktop Klondike completa, viene eseguita in un contenitore all'interno di una VM.
Gli sviluppatori non hanno reso la documentazione pubblica particolarmente digeribile da un punto di vista non tecnico, ma dalla mia lettura non ufficiale da profano, il software l'architettura per Chrome OS ora probabilmente assomiglia a questa [nota: tutto funziona da solo, sicuramente non è un documento ufficiale del team di Chrome OS, probabilmente completamente falso, per favore non farlo farmi male]:
In breve, il componente VM ha uno spazio utente separato e dispositivi virtuali (vCPU, IP, MAC e così via) e il contenitore è un'app in pacchetto che utilizza tali risorse. A questo punto, dovrei aggiungere un avvertimento che il componente VM in realtà non emula alcun hardware.
Solo persone ricche... per ora
Alcuni, come la comunità di Reddit /r/Crostini, hanno già iniziato ad armeggiare con Crostini sul loro Google Pixelbook. Sfortunatamente, il Finora Pixelbook è l'unico dispositivo che dispone della funzionalità Crostini, ma i segnali indicano che altri dispositivi, anche quelli con sistema su chip ARM, riceveranno supporto in futuro. Ma forse non ancora per le macchine a 32 bit. Ci sono anche suggerimenti che alcune parti della funzionalità VM sono necessarie per eseguire Crostini non sarà disponibile per i dispositivi con versioni precedenti del kernel.
Se sei arrivato fin qui, probabilmente ti starai chiedendo: cosa posso correre? Il successo è stato limitato. Gli sviluppatori di Chrome hanno lasciato intendere che hanno Visual Studio in esecuzione. Gli utenti di Reddit hanno fatto funzionare WINE e Android Studio e ChromeUnboxed è stato utile dimostrazione video. Ma probabilmente non conosceremo tutte le capacità e le limitazioni prima che Google mostri effettivamente qualcosa. Quello che sappiamo è che le app sono persistenti, il che significa che puoi continuare da dove eri rimasto e che gli sviluppatori stanno lavorando per renderle disponibili nel tuo elenco di app recenti.
E dopo? Alcuni punti da considerare
Se ti trovi nel canale sviluppatore su un Chromebook diverso da Pixelbook, l'app Terminal potrebbe essere arrivata sul tuo Chromebook. Potresti visualizzare un errore "Impossibile avviare il concierge". Questo perché la funzionalità VM non è stata abilitata su dispositivi diversi dal Pixelbook... ancora.
Non sappiamo ancora come vengono allocate le risorse e che tipo di sovraccarico producono queste app nidificate. L'idea di giocare su giochi Steam compatibili con Linux è allettante, ma se l'accelerazione della GPU non è disponibile, per ora è un gioco da ragazzi.
Non sappiamo quali limitazioni produrrà il gap d'aria ospite/contenitore (se presente). La comunicazione tra il contenitore e Chrome OS è controllata, quindi ciò introdurrà latenza o addirittura disabiliterà alcune periferiche?
Abbiamo molte domande senza risposta ed è solo questione di tempo prima che tutto venga rivelato. Molti sono convinti Google I/O 2018 tra poche settimane ci sarà la grande rivelazione: ha senso dato che si tratta di una conferenza per sviluppatori. Nel frattempo, rimanete sintonizzati mentre seguiamo Crostini.
Fonti:
Maksim Lin – Contenitori di Chrome OS
Cromo Git - Pacchetto contenitore ARC, vm_tools, progetto-termina, crosvm