Aplicații Linux pe sistemul de operare Chrome

Aplicațiile Linux vor fi disponibile în curând pe Chrome OS, începând cu Google Pixelbook, datorită Proiectului Crostini. Ce este Crostini și de ce este atât de important? Ne aruncăm în cea mai mare schimbare a sistemului de operare Chrome de la integrarea aplicației Android.

Iată tot ce trebuie să știți despre dezvoltarea secretă de-a lungul unui an de către Google a funcționalității aplicației Linux în sistemul de operare Chrome, cunoscută și sub numele de Project Crostini.

Pe scurt, este o modalitate de a rula aplicații Linux obișnuite pe sistemul de operare Chrome fără a compromite securitatea sau a activa modul dezvoltator. (nu este încă disponibil) stabilirea oficială a statelor că este „Rulează instrumente, editori și IDE-uri Linux pe Chromebook”.

Crostini este punctul culminant al mai multor ani de dezvoltare care a permis funcționalității să ruleze suficient de sigur pentru a îndeplini standardele de înaltă securitate ale sistemului de operare Chrome. Pentru a înțelege de ce doar apare, cel mai bine este să te uiți la ce a apărut înainte.

Punând Crostini în context – epocile întunecate ale sistemului de operare Chrome

Înainte ca aplicațiile Android să apară pe scenă, nu existau prea multe în ceea ce privește funcționalitatea offline, cu atât mai puțin aplicațiile utile de productivitate în sistemul de operare Chrome. De ce ar cumpăra orice persoană sănătoasă un Chromebook? „Este doar un browser web”, a fost remarca de încheiere a fiecărei recenzii Chromebook. Magazinul web Chrome a fost la fel de mult pe cât ați obține, dar selecția de aplicații a fost destul de slabă și rar actualizată. Aventuroșii ar putea încerca să ruleze aplicații Android folosind un instrument numit Sudor ARC, dar asta a fost greșit și performanța a fost slabă.

Pentru a ocoli limitările offline, utilizatorii frustrați fie au șters sistemul de operare Chrome și au instalat Linux, fie au folosit instrumentul open source Cruton pentru a configura un mediu desktop simultan [de ex. Ubuntu Unity] care funcționează pe partea superioară a nucleului sistemului de operare Chrome.

Instalarea Crouton, un set de instrumente open-source, care anterior era modalitatea de facto de a accesa aplicațiile Linux pe sistemul de operare Chrome, care va fi în curând depreciată

Rularea unei distribuții GNU/Linux sau Crouton de înlocuire a necesitat un pic de cunoștințe și a fost adesea plină de erori – și nici una dintre opțiuni nu era deosebit de ușor de utilizat sau sigură. Apăsați tasta greșită și veți șterge dispozitivul sau îl veți bloca, iar dacă ați lăsat mediul Crouton necriptat, orice utilizator invitat l-ar putea accesa.

Integrarea aplicației Android, creând un precedent

Aplicațiile Android au ajuns pe sistemul de operare Chrome în 2016 și au reprezentat un salt uriaș în funcționalitatea offline, dar activarea acestei funcționalități nu a fost doar plug-and-play. Singurul mod în care ar putea funcționa pe un sistem de operare care prețuiește securitatea era dacă ar fi fost în mod eficient în sandbox.

Soluția nouă pe care au ales-o dezvoltatorii sistemului de operare Chrome a fost containerizare, o modalitate de a grupa aplicațiile în pachete executabile autonome. Folosind un container și mai mult de câteva ajustări, au reușit să obțină mediul Android complet și toate dependențele sale să ruleze într-un container, separat de restul sistemului de operare Chrome, dar rulând pe același nucleu.

Dar aplicațiile Android nu sunt de obicei dezvoltate având în vedere un factor de formă desktop/laptop. Adăugați o experiență tactilă slabă pe sistemul de operare Chrome în combinație și veți avea o sesiune de productivitate frustrantă dacă aplicațiile au funcționat deloc.

Dureri de cap cu compatibilitate — aplicații Android pe sistemul de operare Chrome

În timp ce aplicațiile Android au ajutat până acum la reducerea decalajului de productivitate, a existat încă această dorință pentru biblioteca masivă de aplicații desktop complete. Ca și în cazul problemei inițiale Android, pur și simplu deschiderea capacității de a rula aplicații Linux ar fi crește suprafața de atac a sistemului de operare Chrome deoarece aplicațiile rău intenționate ar putea avea acces la tot ce se află pe OS gazdă. Așa că, de data aceasta, dezvoltatorii au proiectat funcționalitatea aplicației Linux cât mai mult posibil, pe lângă ceea ce au învățat deja cu Android.

Apărare în profunzime

După cum sugerează și numele, Crostini este ca Crouton, dar în loc să aibă un spațiu de utilizator nesigur lângă sistemul de operare Chrome, are doi pereți între ei. Primul perete este Termina VM, o implementare Chrome OS KVM (Kernel-based Virtual Machine). Odată ce acea VM pornește, pune al doilea perete - un container - care apoi are aplicația pe care doriți să o rulați. Deci, atunci când doriți să rulați aplicația desktop Klondike cu drepturi depline, aceasta rulează într-un container-inside-a-VM.

Dezvoltatorii nu au făcut documentația destinată publicului deosebit de digerabilă din punct de vedere non-tehnic, dar din lectura mea neoficială a profanului, software-ul Arhitectura pentru sistemul de operare Chrome probabil arată acum așa [notă: toate funcționează pe cont propriu, cu siguranță nu este un document oficial al echipei Chrome OS, probabil complet neadevărat, vă rugăm să nu raneste-ma]:

Cum credem noi că arată arhitectura Crostini. Nu este un document oficial.

Pe scurt, componenta VM are un spațiu utilizator separat și dispozitive virtuale (vCPU, IP, MAC etc.), iar containerul este o aplicație ambalată care utilizează acele resurse. În acest moment, ar trebui să adaug o avertizare că componenta VM de fapt nu emulează niciun hardware.

Doar oameni bogați... deocamdată

Unii, cum ar fi comunitatea de la Reddit /r/Crostini, au început deja să joace cu Crostini pe lor Google Pixelbooks. Din păcate, Pixelbook este singurul dispozitiv care are până acum funcționalitatea Crostini, dar semnele indică alte dispozitive, chiar și cele cu sistem ARM pe cipuri, care vor primi suport în viitor. Dar poate încă nu pentru mașinile pe 32 de biți. Există, de asemenea, indicii că unele părți ale funcționalității VM sunt necesare pentru a rula Crostini nu va fi disponibil pentru dispozitivele cu versiuni mai vechi de kernel.

Dacă ați ajuns atât de departe, probabil vă întrebați: ce pot să alerg? Succesul a fost limitat. Dezvoltatorii Chrome au sugerat că rulează Visual Studio. Utilizatorii Reddit au făcut ca WINE și Android Studio să funcționeze, iar ChromeUnboxed a făcut un lucru util demonstrație video. Dar probabil că nu vom cunoaște toate capacitățile – și limitările – înainte ca Google să prezinte ceva. Ceea ce știm este că aplicațiile sunt persistente, ceea ce înseamnă că puteți continua de unde ați rămas și că dezvoltatorii lucrează pentru a le face disponibile în lista de aplicații recente.

Ce urmează? Câteva puncte de luat în considerare

Dacă vă aflați în canalul pentru dezvoltatori pe un Chromebook, altul decât un Pixelbook, este posibil ca aplicația Terminal să fi ajuns pe Chromebookul dvs. Este posibil să vedeți o eroare „Eșuat la pornirea concierge”. Asta pentru că funcționalitatea VM nu a fost activată pe alte dispozitive decât Pixelbook... încă.

Încă nu știm cum sunt alocate resursele și ce fel de suprasarcină produc aceste aplicații imbricate. Ideea de a juca pe jocuri Steam compatibile cu Linux este atrăgătoare, dar dacă accelerarea GPU-ului nu este disponibilă, atunci, deocamdată, nu se poate.

Nu știm ce limitări va produce spațiul de aer gazdă/container (dacă există). Comunicarea dintre container și sistemul de operare Chrome este controlată, așa că va introduce latența sau chiar va dezactiva unele periferice?

Avem multe întrebări fără răspuns și este doar o chestiune de timp până când totul va fi dezvăluit. Mulți sunt convinși Google I/O 2018 în câteva săptămâni va fi marea dezvăluire - are sens deoarece este o conferință pentru dezvoltatori. Între timp, rămâi pe fază pe măsură ce ținem evidența lui Crostini.


Surse:

Maksim Lin – Containere Chrome OS

Chromium Git - Pachet container ARC, vm_tools, proiect-termina, crosvm