Aplikacije za Linux bodo kmalu na voljo v OS Chrome, začenši z Google Pixelbookom, zahvaljujoč projektu Crostini. Kaj je Crostini in zakaj je tako pomemben? Poglobili smo se v največjo spremembo sistema Chrome OS od integracije aplikacij za Android.
Tukaj je vse, kar morate vedeti o Googlovem celoletnem skrivnostnem razvoju funkcionalnosti aplikacij za Linux v sistemu Chrome OS, znanem tudi kot projekt Crostini.
Na kratko, to je način za zagon običajnih aplikacij Linux v sistemu Chrome OS brez ogrožanja varnosti ali omogočanja načina za razvijalce. (še ni na voljo) uradna nastavitev držav da je za "zagon orodij, urejevalnikov in IDE-jev za Linux v vašem Chromebooku."
Crostini je vrhunec večletnega razvoja, ki je omogočil dovolj varno delovanje funkcionalnosti za izpolnjevanje visokih varnostnih standardov sistema Chrome OS. Da bi razumeli, zakaj se šele pojavlja, je najbolje pogledati, kaj je bilo prej.
Postavitev Crostinija v kontekst – temna doba sistema Chrome OS
Preden so na sceno prispele aplikacije za Android, v sistemu Chrome OS ni bilo veliko funkcij brez povezave, kaj šele uporabnih aplikacij za produktivnost. Zakaj bi vsak zdrav človek kupil Chromebook? »To je samo spletni brskalnik,« je bila zaključna pripomba vsakega pregleda Chromebooka. Spletna trgovina Chrome je bila toliko, kot bi lahko dobili, vendar je bila izbira aplikacij precej slaba in redko posodobljena. Avanturisti lahko poskusijo zagnati aplikacije za Android z orodjem, imenovanim
ARC varilec, toda to je bilo zadetek ali napaka in uspešnost je bila slaba.Da bi se izognili omejitvam brez povezave, so razočarani uporabniki izbrisali Chrome OS in namestili Linux ali uporabili odprtokodno orodje Kruton za nastavitev hkratnega namiznega okolja [npr. Ubuntu Unity], ki deluje na vrhu jedra OS Chrome.
Izvajanje nadomestne distribucije GNU/Linux ali Crouton je zahtevalo precej znanja in izkušenj ter je bilo pogosto polno hroščev – in nobena možnost ni bila posebej uporabniku prijazna ali varna. Pritisnite napačno tipko in izbrisali boste svojo napravo ali jo zaklenili, in če ste svoje okolje Crouton pustili nešifrirano, lahko do njega dostopa vsak gostujoči uporabnik.
Integracija aplikacij za Android, precedens
Aplikacije za Android so pristale na sistemu Chrome OS leta 2016 in so pomenile velik preskok v delovanju brez povezave, vendar omogočanje te funkcije ni bilo samo vklopi in igraj. Edini način, da bi lahko deloval v operacijskem sistemu, ki ceni varnost, je bil, če bi bil učinkovito peskovnik.
Nova rešitev, ki so jo izbrali razvijalci sistema Chrome OS, je bila kontejnerizacija, način združevanja aplikacij v samostojne izvršljive pakete. Z uporabo vsebnika in več kot nekaj prilagoditvami jim je uspelo pridobiti celotno okolje Android in vse njegove odvisnosti za izvajanje v vsebniku, ločeno od preostalega sistema Chrome OS, vendar delujejo na istem jedro.
Toda aplikacije za Android običajno niso razvite z mislijo na obliko namizja/prenosnika. Mešanici dodajte slabo izkušnjo dotika v sistemu Chrome OS in imeli boste frustrirajočo sejo produktivnosti, če bodo aplikacije sploh delovale.
Čeprav so aplikacije za Android do zdaj pomagale premostiti vrzel v produktivnosti, je še vedno obstajalo hrepenenje po ogromni knjižnici polnih namiznih aplikacij. Tako kot pri začetni težavi z Androidom bi preprosto odpiranje možnosti za zagon aplikacij za Linux poveča napadalno površino sistema Chrome OS, ker imajo lahko zlonamerne aplikacije dostop do vsega na gostiteljski OS. Zato so razvijalci tokrat zasnovali funkcionalnost aplikacij za Linux, kolikor je le mogoče, poleg tega, kar so se že naučili z Androidom.
Globinska obramba
Kot pove že ime, je Crostini podoben Croutonu, vendar namesto negotovega uporabniškega prostora, ki sedi poleg sistema Chrome OS, ima med njima dve steni. Prva stena je Termina VM, implementacija KVM (virtualni stroj na osnovi jedra) za Chrome OS. Ko se ta VM zažene, postavi drugo steno – vsebnik – v katerem je nato aplikacija, ki jo dejansko želite zagnati. Torej, ko želite zagnati svojo polnopravno namizno aplikacijo Klondike, se izvaja v vsebniku znotraj VM.
Razvijalci niso poskrbeli, da bi bila javna dokumentacija posebej prebavljiva z netehničnega vidika, toda po mojem neuradnem laičnem branju programska oprema arhitektura za Chrome OS zdaj verjetno izgleda tako [opomba: vse deluje moje, vsekakor ni uradni dokument ekipe Chrome OS, verjetno popolnoma neresnično, prosim, ne prizadeni me]:
Skratka, komponenta VM ima ločen uporabniški prostor in virtualne naprave (vCPU, IP, MAC itd.), vsebnik pa je pakirana aplikacija, ki uporablja te vire. Na tej točki bi moral dodati opozorilo, da komponenta VM dejansko ne posnema nobene strojne opreme.
Samo bogati ljudje... za zdaj
Nekateri, kot je skupnost na Redditu /r/Crostini, so se že začeli ukvarjati s Crostinijem na svojem Google Pixelbooks. Na žalost, Pixelbook je doslej edina naprava, ki ima funkcijo Crostini, vendar znaki kažejo, da bodo druge naprave, tudi tiste s sistemom ARM na čipih, prejele podporo v prihodnosti. Ampak morda še ne povsem za 32-bitne stroje. Obstajajo tudi namigi, da so nekateri deli funkcionalnosti VM potrebni za zagon Crostinija ne bo na voljo za naprave s starejšimi različicami jedra.
Če ste prišli tako daleč, se verjetno sprašujete: Kaj lahko kandidiram? Uspeh je bil omejen. Razvijalci Chroma so namignili, da imajo nameščen Visual Studio. Uporabniki Reddita so poskrbeli, da WINE in Android Studio delujeta, ChromeUnboxed pa je bil zelo uporaben video demo. Toda verjetno ne bomo poznali vseh zmožnosti – in omejitev – preden Google nekaj dejansko predstavi. Kar vemo, je to aplikacije so obstojne, kar pomeni, da lahko nadaljujete, kjer ste končali, in da razvijalci delajo na tem, da bodo na voljo na seznamu nedavnih aplikacij.
Kaj je naslednje? Nekaj točk, ki jih je treba upoštevati
Če ste v kanalu za razvijalce v Chromebooku, ki ni Pixelbook, je aplikacija Terminal morda prispela v vaš Chromebook. Morda boste videli napako »zagon vratarja ni uspel«. To je zato, ker funkcija VM še ni bila omogočena v napravah, razen v Pixelbooku ...
Ne vemo še, kako se dodeljujejo viri in kakšne režijske stroške povzročajo te ugnezdene aplikacije. Zamisel o igranju iger v igrah Steam, ki so združljive z Linuxom, je vabljiva, a če GPU-pospešek ni na voljo, potem zaenkrat ne pride v poštev.
Ne vemo, kakšne omejitve bo povzročila zračna reža gostitelj/vsebnik (če sploh). Komunikacija med vsebnikom in sistemom Chrome OS je nadzorovana, ali bo to povzročilo zakasnitev ali celo onemogočilo nekatere zunanje naprave?
Imamo veliko neodgovorjenih vprašanj in samo vprašanje časa je, kdaj bo vse razkrito. Mnogi so prepričani Google I/O 2018 čez nekaj tednov bo veliko razkritje – to je logično, saj gre za konferenco za razvijalce. Medtem pa ostanite z nami, saj spremljamo Crostinija.
Viri:
Maksim Lin – Chrome OS Containers
Chromium Git - Paket vsebnikov ARC, vm_tools, projekt-termina, crosvm