Linux-apps på Chrome OS

Linux-apps vil snart være tilgængelige på Chrome OS, startende med Google Pixelbook, takket være Project Crostini. Hvad er Crostini, og hvorfor er det så vigtigt? Vi dykker ned i den største ændring af Chrome OS siden integration med Android-apps.

Her er alt, hvad du behøver at vide om Googles årelange hemmelighedsfulde udvikling af Linux-appfunktionalitet i Chrome OS, også kendt som Project Crostini.

I en nøddeskal er det en måde at køre almindelige Linux-applikationer på Chrome OS uden at kompromittere sikkerheden eller aktivere udviklertilstand. (endnu ikke tilgængelig) officielle indstilling stater at det er at "køre Linux-værktøjer, editorer og IDE'er på din Chromebook."

Crostini er en kulmination på flere års udvikling, der gjorde det muligt for funktionaliteten at køre sikkert nok til at opfylde Chrome OS's høje sikkerhedsstandarder. For at forstå, hvorfor det kun lige dukker op, er det bedst at se på, hvad der kom før.

At sætte Crostini i kontekst – Chrome OS's mørke tidsalder

Før Android-apps kom på banen, var der ikke meget i vejen for offlinefunktionalitet endsige nyttige produktivitetsapps i Chrome OS. Hvorfor ville enhver fornuftig person købe en Chromebook? "Det er bare en webbrowser," var den afsluttende bemærkning af hver Chromebook-anmeldelse. Chrome Webshop var så meget, som du ville få, men udvalget af apps var temmelig dårligt og sjældent opdateret. De eventyrlystne kunne prøve at køre Android-applikationer ved hjælp af et værktøj kaldet

ARC svejser, men det var hit-or-miss, og præstationen var dårlig.

For at komme uden om offline-begrænsninger har frustrerede brugere enten slettet Chrome OS og installeret Linux eller brugt open source-værktøjet Crouton at konfigurere et simultant skrivebordsmiljø [f.eks. Ubuntu Unity], der arbejder oven på Chrome OS-kernen.

Installation af Crouton, et open source-værktøjssæt, tidligere de-facto-måden at få adgang til Linux-apps på Chrome OS, vil snart blive udfaset

At køre en erstatning for GNU/Linux-distribution eller Crouton krævede en del knowhow og var ofte fyldt med fejl – og ingen af ​​mulighederne var særlig brugervenlige eller sikre. Tryk på den forkerte tast, og du vil slette din enhed eller mure den, og hvis du efterlod dit Crouton-miljø ukrypteret, kunne enhver gæstebruger få adgang til det.

Android app-integration, der skaber præcedens

Android-apps landede på Chrome OS i 2016 og var et stort spring i offline-funktionalitet, men at aktivere denne funktionalitet var ikke kun plug-and-play. Den eneste måde, det kunne fungere på et OS, der værdsætter sikkerhed, var, hvis det var effektivt sandboxed.

Den nye løsning, Chrome OS-udviklerne valgte, var containerisering, en måde at samle applikationer i selvstændige eksekverbare pakker. Ved at bruge en container og mere end et par tweaks lykkedes det dem at få det fulde Android-miljø og det hele dets afhængigheder til at køre i en container, adskilt fra resten af ​​Chrome OS, men alligevel kører på det samme kerne.

Men Android-apps udvikles normalt ikke med en desktop/laptop-formfaktor i tankerne. Tilføj en dårlig berøringsoplevelse på Chrome OS til blandingen, og du har fået dig selv en frustrerende produktivitetssession, hvis apps overhovedet fungerede.

Hovedpine med kompatibilitet – Android-apps på Chrome OS

Mens Android-apps hjalp med at bygge bro over produktivitetsgabet indtil videre, var der stadig den længsel efter det enorme bibliotek af komplette desktop-apps. Som med det indledende Android-problem ville det blot at åbne muligheden for at køre Linux-applikationer øge Chrome OS's angrebsflade, fordi ondsindede applikationer kunne have adgang til alt på vært OS. Så denne gang designede udviklerne Linux-app-funktionaliteten så silet som muligt, oven i det, de allerede har lært med Android.

Forsvar i dybden

Som navnet antyder, er Crostini ligesom Crouton, men i stedet for at have et usikkert brugerrum ved siden af ​​Chrome OS, har det to vægge mellem dem. Den første væg er Termina VM, en Chrome OS KVM (Kernel-baseret Virtual Machine) implementering. Når først den VM starter, sætter den den anden væg op - en beholder - som så har den app, du faktisk vil køre. Så når du vil køre din fuldgyldige Klondike desktop-app, kører den i en container-inside-a-VM.

Udviklerne har ikke gjort den offentligt vendte dokumentation særlig fordøjelig fra et ikke-teknisk synspunkt, men fra min uofficielle lægmandslæsning, softwaren arkitekturen til Chrome OS ser nu sandsynligvis sådan her ud [bemærk: alt virker mit eget, bestemt ikke et officielt dokument fra Chrome OS-teamet, sandsynligvis fuldstændig usandt, lad vær med gør mig ondt]:

Sådan tror vi Crostini-arkitekturen ser ud. Ikke et officielt dokument.

Kort sagt har VM-komponenten et separat brugerrum og virtuelle enheder (vCPU, IP, MAC osv.), og containeren er en pakket app, der udnytter disse ressourcer. På dette tidspunkt bør jeg tilføje en advarsel om VM-komponenten emulerer faktisk ikke nogen hardware.

Kun rige mennesker... for nu

Nogle kan lide fællesskabet på Reddit's /r/Crostini, er allerede begyndt at pille ved Crostini på deres Google Pixelbooks. Desværre Pixelbook er den eneste enhed, der hidtil har Crostini-funktionalitet, men tegn peger på, at andre enheder, selv dem med ARM-system-på-chips, vil modtage støtte i fremtiden. Men måske ikke helt endnu for 32-bit maskiner. Der er også hints om, at nogle dele af VM-funktionaliteten kræves for at køre Crostini vil ikke være tilgængelig for enheder med ældre kerneversioner.

Hvis du er nået så langt, tænker du sikkert: Hvad kan jeg løbe? Succesen har været begrænset. Chrome-udviklere har antydet, at de har Visual Studio kørende. Reddit-brugere har fået WINE og Android Studio til at fungere, og ChromeUnboxed gjorde en handy video demo. Men vi kender nok ikke de fulde muligheder – og begrænsninger – før Google rent faktisk fremviser noget. Det, vi ved, er det apps er vedvarende, hvilket betyder, at du kan fortsætte, hvor du slap, og at udviklerne arbejder på at gøre dem tilgængelige på din liste over seneste apps.

Hvad er det næste? Et par punkter at overveje

Hvis du er i udviklerkanalen på en anden Chromebook end en Pixelbook, er Terminal-appen muligvis kommet til din Chromebook. Du kan muligvis se en "mislykkedes at starte concierge"-fejl. Det er fordi VM-funktionalitet ikke er blevet aktiveret på andre enheder end Pixelbook... endnu.

Vi ved endnu ikke, hvordan ressourcer allokeres, og hvilken slags overhead disse indlejrede apps producerer. Ideen om at spille på Linux-kompatible Steam-spil er lokkende, men hvis GPU-acceleration ikke er tilgængelig, så er det foreløbigt en no-go.

Vi ved ikke, hvilke begrænsninger værts/beholderens luftspalte vil frembringe (hvis nogen). Kommunikationen mellem containeren og Chrome OS er kontrolleret, så vil det introducere latens eller endda deaktivere nogle perifere enheder?

Vi har mange ubesvarede spørgsmål, og det er kun et spørgsmål om tid, før alt er afsløret. Mange er overbeviste Google I/O 2018 om et par uger vil være den store afsløring - det giver mening, da det er en udviklerkonference. I mellemtiden, følg med, mens vi holder styr på Crostini.


Kilder:

Maksim Lin – Chrome OS-beholdere

Chromium Git - ARC container bundt, vm_tools, projekt-termina, crosvm