Linux-apps op Chrome OS

Linux-apps zijn binnenkort beschikbaar in Chrome OS, te beginnen met het Google Pixelbook, dankzij Project Crostini. Wat is Crostini en waarom is het zo belangrijk? We duiken in de grootste verandering in Chrome OS sinds de integratie van Android-apps.

Hier is alles wat u moet weten over Google's jarenlange geheime ontwikkeling van Linux-app-functionaliteit in Chrome OS, ook wel bekend als Project Crostini.

Kortom, het is een manier om reguliere Linux-applicaties op Chrome OS uit te voeren zonder de beveiliging in gevaar te brengen of de ontwikkelaarsmodus in te schakelen. De (nog niet beschikbaar) officiële instelling staten dat het is om "Linux-tools, editors en IDE's op uw Chromebook uit te voeren".

Crostini is het resultaat van meerdere jaren van ontwikkeling waardoor de functionaliteit veilig genoeg kon worden uitgevoerd om te voldoen aan de hoge beveiligingsnormen van Chrome OS. Om te begrijpen waarom het nog maar net verschijnt, kun je het beste kijken naar wat ervoor kwam.

Crostini in context plaatsen: de middeleeuwen van Chrome OS

Voordat Android-apps ter plaatse kwamen, was er niet veel offline functionaliteit, laat staan ​​nuttige productiviteits-apps in Chrome OS. Waarom zou een weldenkend mens een Chromebook kopen? "Het is maar een webbrowser", was de slotopmerking van elke Chromebook-recensie. De Chrome Web Store was zoveel als je zou krijgen, maar de selectie van apps was behoorlijk slecht en werd zelden bijgewerkt. De avonturiers kunnen proberen Android-applicaties uit te voeren met behulp van een tool genaamd ARC lasser, maar dat was een schot in de roos en de prestaties waren slecht.

Om offline beperkingen te omzeilen, hebben gefrustreerde gebruikers Chrome OS gewist en Linux geïnstalleerd of de open source-tool gebruikt Crouton om een ​​gelijktijdige desktopomgeving in te stellen [bijv. Ubuntu Unity] die bovenop de Chrome OS-kernel werkt.

Het installeren van Crouton, een open-source toolkit, voorheen de de facto manier om toegang te krijgen tot Linux-apps op Chrome OS, wordt binnenkort beëindigd

Het uitvoeren van een vervangende GNU/Linux-distributie of Crouton vereiste behoorlijk wat knowhow en zat vaak vol met bugs - en geen van beide opties was bijzonder gebruiksvriendelijk of veilig. Druk op de verkeerde toets en je wist je apparaat of blokkeerde het, en als je je Crouton-omgeving niet versleuteld liet, zou elke gastgebruiker er toegang toe hebben.

Integratie van Android-apps, een precedent scheppend

Android-apps kwamen in 2016 op Chrome OS terecht en waren een enorme sprong voorwaarts in offline-functionaliteit, maar het inschakelen van deze functionaliteit was niet alleen plug-and-play. De enige manier waarop het zou kunnen werken op een besturingssysteem dat veiligheid hoog in het vaandel heeft staan, was als het effectief in een sandbox was geplaatst.

De nieuwe oplossing die de Chrome OS-ontwikkelaars kozen was containerisatie, een manier om applicaties te bundelen in zelfstandige uitvoerbare pakketten. Met behulp van een container en meer dan een paar tweaks slaagden ze erin om de volledige Android-omgeving en zo te krijgen zijn afhankelijkheden om in een container te draaien, gescheiden van de rest van Chrome OS maar toch op hetzelfde draaien pit.

Maar Android-apps worden meestal niet ontwikkeld met het oog op een desktop/laptop-vormfactor. Voeg een slechte touch-ervaring op Chrome OS toe aan de mix en je hebt een frustrerende productiviteitssessie als apps überhaupt werken.

Hoofdpijn met compatibiliteit: Android-apps op Chrome OS

Hoewel Android-apps tot nu toe hebben bijgedragen aan het overbruggen van de productiviteitskloof, was er nog steeds het verlangen naar de enorme bibliotheek met volledige desktop-apps. Net als bij het aanvankelijke Android-probleem, zou het simpelweg openen van de mogelijkheid om Linux-applicaties uit te voeren vergroot het aanvalsoppervlak van Chrome OS omdat kwaadaardige applicaties toegang kunnen hebben tot alles op de host-besturingssysteem. Dus deze keer hebben de ontwikkelaars de functionaliteit van de Linux-app zo geïsoleerd mogelijk ontworpen, bovenop wat ze al met Android hebben geleerd.

Verdediging in de diepte

Zoals de naam al aangeeft, lijkt Crostini op Crouton, maar in plaats van een onveilige gebruikersruimte naast Chrome OS te hebben, heeft het twee muren ertussen. De eerste muur is Termina VM, een Chrome OS KVM-implementatie (Kernel-based Virtual Machine). Zodra die VM start, plaatst hij de tweede muur - een container - die vervolgens de app bevat die u daadwerkelijk wilt uitvoeren. Dus als u uw volwaardige Klondike desktop-app wilt uitvoeren, draait deze in een container-in-een-VM.

De ontwikkelaars hebben de openbare documentatie niet bijzonder verteerbaar gemaakt vanuit een niet-technisch oogpunt, maar vanuit mijn onofficiële lekenlezing, de software architectuur voor Chrome OS ziet er nu waarschijnlijk zo uit [opmerking: allemaal werk van mezelf, zeker geen officieel document van het Chrome OS-team, waarschijnlijk helemaal niet waar, alsjeblieft niet doe mij pijn]:

Hoe wij denken dat de architectuur van Crostini eruit ziet. Geen officieel document.

Kortom, de VM-component heeft een aparte gebruikersruimte en virtuele apparaten (vCPU, IP, MAC, enz.), en de container is een verpakte app die deze bronnen gebruikt. Op dit punt moet ik een voorbehoud toevoegen dat de VM-component emuleert eigenlijk geen hardware.

Alleen rijke mensen… voorlopig

Sommigen, zoals de community bij Reddit's /r/Crostini, zijn al begonnen met het sleutelen aan Crostini op hun Google Pixelboeken. Helaas, de Pixelbook is tot nu toe het enige apparaat met Crostini-functionaliteit, maar tekenen wijzen erop dat andere apparaten, zelfs apparaten met ARM-systeem-op-chips, in de toekomst ondersteuning zullen krijgen. Maar misschien nog niet helemaal voor 32-bits machines. Er zijn ook aanwijzingen dat sommige delen van de VM-functionaliteit vereist zijn om Crostini uit te voeren zal niet beschikbaar zijn voor apparaten met oudere kernelversies.

Als je zo ver bent gekomen, vraag je je waarschijnlijk af: wat kan ik doen? Het succes is beperkt gebleven. Chrome-ontwikkelaars hebben laten doorschemeren dat ze Visual Studio draaien. Reddit-gebruikers hebben WINE en Android Studio aan het werk gekregen, en ChromeUnboxed deed het handig video-demo. Maar we zullen waarschijnlijk niet de volledige mogelijkheden en beperkingen kennen voordat Google daadwerkelijk iets laat zien. Wat we wel weten is dat apps zijn hardnekkig, wat betekent dat u kunt doorgaan waar u was gebleven en dat de ontwikkelaars eraan werken om ze beschikbaar te maken in uw lijst met recente apps.

Wat nu? Een paar punten om te overwegen

Als u zich in het ontwikkelaarskanaal bevindt op een andere Chromebook dan een Pixelbook, is de Terminal-app mogelijk aangekomen op uw Chromebook. Mogelijk ziet u de foutmelding 'Kan conciërge niet starten'. Dat komt omdat VM-functionaliteit nog niet is ingeschakeld op andere apparaten dan het Pixelbook.

We weten nog niet hoe resources worden toegewezen en wat voor soort overhead deze geneste apps produceren. Het idee van gamen op Linux-compatibele Steam-games is aanlokkelijk, maar als GPU-versnelling niet beschikbaar is, is het voorlopig een no-go.

We weten niet welke beperkingen de luchtspleet tussen host en container zal opleveren (indien aanwezig). De communicatie tussen de container en Chrome OS wordt gecontroleerd, dus zorgt dat voor latentie of zelfs voor het uitschakelen van sommige randapparatuur?

We hebben veel onbeantwoorde vragen en het is slechts een kwestie van tijd voordat alles wordt onthuld. Velen zijn overtuigd Google I/O 2018 over een paar weken zal de grote onthulling zijn - het is logisch omdat het een ontwikkelaarsconferentie is. Blijf in de tussentijd op de hoogte terwijl we Crostini volgen.


bronnen:

Maksim Lin - Chrome OS-containers

Chromium Git - ARC-containerbundel, vm_tools, project-beëindiging, kruisvm