Linuxi rakendused Chrome OS-is

Tänu Project Crostinile on Linuxi rakendused peagi saadaval ka Chrome OS-is, alates Google Pixelbookist. Mis on Crostini ja miks see nii oluline on? Sukeldume suurimasse muudatusesse Chrome OS-is pärast Androidi rakenduste integreerimist.

Siin on kõik, mida pead teadma Google'i aastapikkuse salajase arenduse kohta Linuxi rakenduste funktsionaalsuse arendamisel Chrome OS-is, mida tuntakse ka kui Project Crostini.

Lühidalt öeldes on see viis tavaliste Linuxi rakenduste käitamiseks Chrome OS-is ilma turvalisust ohustamata või arendajarežiimi lubamata. (pole veel saadaval) ametlikud sätted et see on "Käitage oma Chromebookis Linuxi tööriistu, redigeerijaid ja IDE-sid".

Crostini on mitmeaastase arenduse kulminatsioon, mis võimaldas funktsionaalsusel piisavalt turvaliselt töötada, et see vastaks Chrome OS-i kõrgetele turvastandarditele. Et mõista, miks see alles ilmub, on kõige parem vaadata seda, mis oli varem.

Pannes Crostini konteksti – Chrome OS-i pimedad ajastud

Enne Androidi rakenduste sündmuskohale jõudmist ei olnud palju võrguühenduseta funktsioone, rääkimata kasulikest tootlikkuse rakendustest Chrome OS-is. Miks peaks iga mõistlik inimene Chromebooki ostma? "See on lihtsalt veebibrauser," oli iga Chromebooki arvustuse lõppmärkus. Chrome'i veebipood oli nii palju kui võimalik, kuid rakenduste valik oli üsna kehv ja seda värskendati harva. Seiklushimulised võiksid proovida Androidi rakendusi käivitada, kasutades selleks tööriista nimega

ARC keevitaja, kuid see oli tabamus-või möödalaskmine ja jõudlus oli kehv.

Võrguühenduseta piirangutest ülesaamiseks kustutasid pettunud kasutajad Chrome OS-i ja installisid Linuxi või kasutasid avatud lähtekoodiga tööriista Krutoon Chrome OS-i kerneli peal töötava samaaegse töölauakeskkonna (nt Ubuntu Unity) seadistamiseks.

Avatud lähtekoodiga tööriistakomplekti Crouton installimine, mis oli varem de facto viis Linuxi rakendustele Chrome OS-is juurdepääsemiseks, on peagi aegunud

GNU/Linuxi asendusdistributsiooni või Croutoni käitamine nõudis üsna vähe oskusteavet ja oli sageli täis vigu – ja kumbki variant polnud eriti kasutajasõbralik ega turvaline. Vajutage valet klahvi ja kustutate oma seadme või blokeerite selle ning kui jätsite oma Croutoni keskkonna krüptimata, pääseb iga külaliskasutaja sellele juurde.

Androidi rakenduste integreerimine, pretsedendi loomine

Androidi rakendused jõudsid Chrome OS-i 2016. aastal ja see oli suur hüpe võrguühenduseta funktsionaalsuses, kuid selle funktsiooni lubamine ei olnud lihtsalt plug-and-play. Ainus viis, kuidas see turvalisust väärtustava OS-iga töötada, oli see, kui see oleks tõhusalt liivakastis.

Uudne lahendus, mille Chrome OS-i arendajad valisid, oli konteineriseerimine, viis rakenduste koondamiseks eraldiseisvateks täitmispakettideks. Konteinerit ja rohkem kui paari näpunäidet kasutades õnnestus neil saada täielik Androidi keskkond ja kõik selle sõltuvused töötama konteineris, mis on eraldatud ülejäänud Chrome OS-ist, kuid töötab samas kernel.

Kuid Androidi rakendusi ei arendata tavaliselt laua-/sülearvuti vormitegurit silmas pidades. Lisage Chrome OS-i kehv puudutuskogemus ja saate endale masendava tootlikkuse seansi, kui rakendused üldse töötasid.

Peavalud ühilduvusega – Androidi rakendused Chrome OS-is

Kuigi Androidi rakendused aitasid seni tootlikkuse lõhet ületada, oli endiselt igatsus tohutu täieliku töölauarakenduste raamatukogu järele. Nagu algse Androidi probleemi puhul, oleks lihtsalt Linuxi rakenduste käitamise võimaluse avamine suurendada Chrome OS-i rünnakupinda, sest pahatahtlikud rakendused võivad pääseda juurde kõigele, mis on host OS. Nii et seekord kujundasid arendajad Linuxi rakenduse funktsionaalsuse võimalikult pehmeks, lisaks sellele, mida nad Androidiga juba õppisid.

Kaitse sügavuti

Nagu nimigi ütleb, on Crostini nagu Crouton, kuid selle asemel, et Chrome OS-i kõrval oleks ebaturvaline kasutajaruum, on selle vahel kaks seina. Esimene sein on Termina VM, Chrome OS-i KVM (kernelipõhine virtuaalmasin) rakendus. Kui VM käivitub, paneb see üles teise seina – konteineri –, kus on siis rakendus, mida tegelikult käitada soovite. Nii et kui soovite käitada oma täieõiguslikku Klondike'i töölauarakendust, töötab see VM-i sees konteineris.

Arendajad ei ole muutnud avalikkusele suunatud dokumentatsiooni mittetehnilisest vaatenurgast eriti seeditavaks, kuid minu mitteametliku võhiku lugemise põhjal on tarkvara Chrome OS-i arhitektuur näeb nüüd ilmselt välja selline [märkus: kõik töötavad minu omal, kindlasti mitte Chrome OS-i meeskonna ametlik dokument, tõenäoliselt täiesti vale, palun ärge tehke tee mulle haiget]:

Kuidas meie arvates Crostini arhitektuur välja näeb. Pole ametlik dokument.

Lühidalt öeldes on VM-i komponendil eraldi kasutajaruum ja virtuaalsed seadmed (vCPU, IP, MAC jne) ning konteiner on pakitud rakendus, mis kasutab neid ressursse. Siinkohal peaksin lisama hoiatuse, et VM-i komponent ei emuleeri tegelikult ühtegi riistvara.

Ainult rikkad inimesed… praegu

Mõned, näiteks Redditi kogukond /r/Crostini, on juba Crostiniga oma peal nokitsema hakanud Google Pixelbooks. Kahjuks on Pixelbook on seni ainus seade, millel on Crostini funktsionaalsus, kuid märgid viitavad teistele seadmetele, isegi neile, millel on ARM-kiibid, mis saavad tulevikus tuge. Aga võib-olla mitte veel 32-bitiste masinate jaoks. Samuti on vihjeid, et Crostini käitamiseks on vaja mõnda VM-i funktsiooni osa ei ole saadaval vanemate kerneli versioonidega seadmete jaoks.

Kui olete nii kaugele jõudnud, mõtlete tõenäoliselt: mida ma saan joosta? Edu on olnud piiratud. Chrome'i arendajad on vihjanud, et neil töötab Visual Studio. Redditi kasutajad on WINE'i ja Android Studio tööle pannud ning ChromeUnboxed tegi sellest abi video demo. Kuid me ei tea tõenäoliselt kõiki võimalusi ja piiranguid, enne kui Google midagi tegelikult esitleb. Mida me teame, on see rakendused on püsivad, mis tähendab, et saate jätkata sealt, kus pooleli jäite ja et arendajad töötavad selle nimel, et need teie viimaste rakenduste loendis kättesaadavaks teha.

Mis edasi? Mõned punktid, mida kaaluda

Kui olete mõne muu Chromebooki kui Pixelbooki arendajakanalis, võib terminali rakendus teie Chromebooki jõuda. Võite näha viga "Concierge'i käivitamine nurjus". Selle põhjuseks on asjaolu, et VM-i funktsioon pole muudes seadmetes peale Pixelbooki veel lubatud.

Me ei tea veel, kuidas ressursse jaotatakse ja millist üldkulusid need pesastatud rakendused toodavad. Idee mängida Linuxiga ühilduvate Steami mängudega on ahvatlev, kuid kui GPU-kiirendus pole saadaval, on see praegu keelatud.

Me ei tea, milliseid piiranguid hosti/mahuti õhupilu tekitab (kui see on olemas). Konteineri ja Chrome OS-i vahelist sidet juhitakse, nii et kas see lisab latentsusaega või keelab isegi mõned välisseadmed?

Meil on palju vastuseta küsimusi ja on vaid aja küsimus, kuni kõik selgub. Paljud on veendunud Google I/O 2018 mõne nädala pärast on see suur paljastamine – see on mõistlik, kuna tegemist on arendajate konverentsiga. Seniks olge kursis, kui jälgime Crostinit.


Allikad:

Maksim Lin – Chrome OS-i konteinerid

Chromium Git – ARC konteineri komplekt, vm_tools, projekt-termina, crosvm