Linux-apper vil snart være tilgjengelige på Chrome OS, fra og med Google Pixelbook, takket være Project Crostini. Hva er Crostini og hvorfor er det så viktig? Vi dykker ned i den største endringen i Chrome OS siden integrering av Android-apper.
Her er alt du trenger å vite om Googles årelange hemmelighetsfulle utvikling av Linux-appfunksjonalitet i Chrome OS, også kjent som Project Crostini.
I et nøtteskall er det en måte å kjøre vanlige Linux-applikasjoner på Chrome OS uten å kompromittere sikkerheten eller aktivere utviklermodus. (ennå ikke tilgjengelig) offisielle setting stater at det er å "kjøre Linux-verktøy, -redigerere og IDE-er på Chromebooken din."
Crostini er en kulminasjon av flere års utvikling som gjorde at funksjonaliteten kunne kjøre sikkert nok til å møte Chrome OSs høye sikkerhetsstandarder. For å forstå hvorfor det bare dukker opp, er det best å se på det som kom før.
Sette Crostini i kontekst – de mørke tidene til Chrome OS
Før Android-apper kom på banen, var det ikke mye i veien for offline-funksjonalitet enn si nyttige produktivitetsapper i Chrome OS. Hvorfor skulle en fornuftig person kjøpe en Chromebook? "Det er bare en nettleser," var den avsluttende bemerkningen av hver Chromebook-anmeldelse. Chrome Nettmarked var så mye som du ville få, men utvalget av apper var ganske dårlig og ble sjelden oppdatert. De eventyrlystne kunne prøve å kjøre Android-applikasjoner ved å bruke et verktøy som heter
For å omgå frakoblede begrensninger, tørket frustrerte brukere enten Chrome OS og installerte Linux eller brukte åpen kildekode-verktøyet Kruton for å sette opp et samtidig skrivebordsmiljø [f.eks. Ubuntu Unity] som jobber på toppen av Chrome OS-kjernen.
Å kjøre en erstatning for GNU/Linux-distribusjon eller Crouton krevde en del kunnskap og var ofte full av feil – og ingen av alternativene var spesielt brukervennlige eller sikre. Trykk på feil tast og du vil tørke enheten din eller mure den, og hvis du forlot Crouton-miljøet ditt ukryptert, kan enhver gjestebruker få tilgang til det.
Android-appintegrasjon, skaper presedens
Android-apper landet på Chrome OS i 2016 og var et stort sprang i offline-funksjonalitet, men å aktivere denne funksjonaliteten var ikke bare plug-and-play. Den eneste måten det kunne fungere på et OS som verdsetter sikkerhet, var hvis det var effektivt sandkasse.
Den nye løsningen Chrome OS-utviklerne valgte var containerisering, en måte å samle applikasjoner i frittstående kjørbare pakker. Ved å bruke en beholder og mer enn noen få justeringer, klarte de å få hele Android-miljøet og alt avhengighetene til å kjøre i en beholder, atskilt fra resten av Chrome OS, men kjører på det samme kjerne.
Men Android-apper utvikles vanligvis ikke med en stasjonær/bærbar formfaktor i tankene. Legg til en dårlig berøringsopplevelse på Chrome OS, og du har en frustrerende produktivitetsøkt hvis apper i det hele tatt fungerte.
Mens Android-apper bidro til å bygge bro over produktivitetsgapet så langt, var det fortsatt lengselen etter det enorme biblioteket med fulle desktop-apper. Som med det første Android-problemet, ville det bare å åpne muligheten til å kjøre Linux-applikasjoner øke Chrome OSs angrepsoverflate fordi ondsinnede applikasjoner kan ha tilgang til alt på vert OS. Så denne gangen utviklet utviklerne Linux-appfunksjonaliteten så silkemyk som mulig, på toppen av det de allerede har lært med Android.
Forsvar i dybden
Som navnet tilsier, er Crostini som Crouton, men i stedet for å ha en usikker brukerplass ved siden av Chrome OS, har den to vegger mellom seg. Den første veggen er Termina VM, en Chrome OS KVM (Kernel-based Virtual Machine) implementering. Når den VM starter, setter den opp den andre veggen - en beholder - som deretter har appen du faktisk vil kjøre. Så når du vil kjøre den fullverdige Klondike-skrivebordsappen din, kjører den i en container-inne-en-VM.
Utviklerne har ikke gjort den offentlige dokumentasjonen spesielt fordøyelig fra et ikke-teknisk synspunkt, men fra min uoffisielle lekmannslesning, programvaren arkitektur for Chrome OS ser nå sannsynligvis slik ut [merk: alt fungerer mitt eget, definitivt ikke et offisielt dokument fra Chrome OS-teamet, sannsynligvis helt usant, vennligst ikke skad meg]:
Kort sagt, VM-komponenten har et eget brukerområde og virtuelle enheter (vCPU, IP, MAC, etc.), og containeren er en pakket app som bruker disse ressursene. På dette tidspunktet bør jeg legge til et forbehold om VM-komponenten emulerer faktisk ingen maskinvare.
Bare rike mennesker... foreløpig
Noen liker samfunnet på Reddit's /r/Crostini, har allerede begynt å fikle med Crostini på deres Google Pixelbooks. Dessverre Pixelbook er den eneste enheten som har Crostini-funksjonalitet så langt, men tegn peker på at andre enheter, selv de med ARM-system-på-brikker, vil motta støtte i fremtiden. Men kanskje ikke helt ennå for 32-bits maskiner. Det er også hint om at noen deler av VM-funksjonaliteten kreves for å kjøre Crostini vil ikke være tilgjengelig for enheter med eldre kjerneversjoner.
Hvis du har kommet så langt, lurer du sannsynligvis på: Hva kan jeg løpe? Suksessen har vært begrenset. Chrome-utviklere har antydet at de kjører Visual Studio. Reddit-brukere har fått WINE og Android Studio til å fungere, og ChromeUnboxed gjorde en hendig video demo. Men vi vil sannsynligvis ikke vite de fulle egenskapene – og begrensningene – før Google faktisk viser frem noe. Det vi vet er det appene er vedvarende, noe som betyr at du kan fortsette der du slapp og at utviklerne jobber med å gjøre dem tilgjengelige i listen over nylige apper.
Hva nå? Noen få punkter å vurdere
Hvis du er i utviklerkanalen på en annen Chromebook enn en Pixelbook, kan Terminal-appen ha kommet til Chromebooken din. Det kan hende du ser en feilmelding om at du ikke kunne starte concierge. Det er fordi VM-funksjonalitet ikke er aktivert på andre enheter enn Pixelbook … ennå.
Vi vet ennå ikke hvordan ressursene fordeles og hva slags overhead disse nestede appene produserer. Ideen om å spille på Linux-kompatible Steam-spill er fristende, men hvis GPU-akselerasjon ikke er tilgjengelig, så er det foreløpig en no-go.
Vi vet ikke hvilke begrensninger verten/beholderens luftspalte vil gi (hvis noen). Kommunikasjonen mellom beholderen og Chrome OS er kontrollert, så vil det introdusere latens eller til og med deaktivere enkelte periferiutstyr?
Vi har mange ubesvarte spørsmål, og det er bare et spørsmål om tid før alt er avslørt. Mange er overbevist Google I/O 2018 om noen uker vil det være den store avsløringen – det er fornuftig siden det er en utviklerkonferanse. I mellomtiden, følg med mens vi holder styr på Crostini.
Kilder:
Maksim Lin – Chrome OS-beholdere
Chromium Git - ARC-beholderbunt, vm_tools, prosjekttermina, crosvm