Linux-apps op Chrome OS - een overzicht van de grootste functie sinds Android-apps

Hier is alles wat u moet weten over de jarenlange geheime ontwikkeling van Google van Linux-app-functionaliteit in Chrome OS, ook 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 beschikbare) officiële instelling stelt dat het is om "Linux-tools, editors en IDE's op uw Chromebook uit te voeren."

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

Crostini in context plaatsen - de donkere eeuwen van Chrome OS

Voordat Android-apps op de markt kwamen, was er niet veel in de weg van offline functionaliteit, laat staan ​​nuttige productiviteits-apps in Chrome OS. Waarom zou iemand met een gezond verstand een Chromebook kopen? 'Het is gewoon een webbrowser', was de slotopmerking van elke Chromebook-recensie. De Chrome Web Store was zo veel als je zou krijgen, maar de selectie van apps was behoorlijk slecht en werd zelden bijgewerkt. De avontuurlijke zou kunnen proberen Android-applicaties uit te voeren met behulp van een tool genaamd ARC Welder, maar dat was onverwacht en de prestaties waren slecht.

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

Crouton installeren, een open-source toolkit, voorheen de feitelijke manier om toegang te krijgen tot Linux-apps op Chrome OS, binnenkort verouderd

Het uitvoeren van een vervangende GNU / Linux-distributie of Crouton vereiste behoorlijk wat knowhow en was vaak bezaaid met bugs - en geen van beide opties was bijzonder gebruiksvriendelijk of veilig. Druk op de verkeerde toets en je veegt je apparaat weg of blokkeert het, en als je je Crouton-omgeving onversleuteld achterlaat, heeft elke gastgebruiker er toegang toe.

Android-app-integratie, een precedent instellen

Android-apps landden in 2016 op Chrome OS en vormden 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 waardeert, was als het effectief in een sandbox werd geplaatst.

De nieuwe oplossing die de ontwikkelaars van Chrome OS 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 al zijn afhankelijkheden in een container te laten werken, gescheiden van de rest van Chrome OS en toch op dezelfde kernel.

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 de productiviteitskloof tot nu toe hebben helpen overbruggen, was er nog steeds dat verlangen naar de enorme bibliotheek met volledige desktop-apps. Net als bij het eerste Android-probleem, zou het eenvoudigweg openen van de mogelijkheid om Linux-applicaties uit te voeren het aanvalsoppervlak van Chrome OS vergroten, omdat kwaadwillende applicaties toegang hebben tot alles op het host-besturingssysteem. Dus ontwikkelden de ontwikkelaars deze keer de Linux app-functionaliteit zo stil mogelijk, bovenop wat ze al met Android hebben geleerd.

Verdediging diepgaand

Zoals de naam al aangeeft, lijkt Crostini op Crouton, maar in plaats van een onzekere gebruikersruimte naast Chrome OS, zitten er twee muren tussen. De eerste muur is Termina VM, een implementatie van Chrome OS KVM (op kernel gebaseerde virtuele machine). Als die VM eenmaal is gestart, wordt de tweede muur (een container) geplaatst, die vervolgens de app heeft die u eigenlijk wilt uitvoeren. Dus wanneer u uw volwaardige Klondike-desktop-app wilt uitvoeren, draait deze in een container-in-een-VM.

De ontwikkelaars hebben de documentatie voor het publiek niet bijzonder verteerbaar gemaakt vanuit een niet-technisch oogpunt, maar vanuit mijn onofficiële lezing, ziet de software-architectuur voor Chrome OS er nu waarschijnlijk als volgt uit [opmerking: allemaal mijn eigen, zeker niet een officieel document van het Chrome OS-team, waarschijnlijk helemaal niet waar, doe me alsjeblieft geen pijn]:

Hoe we denken dat de Crostini-architectuur eruit ziet. Geen officieel document.

Kortom, de VM-component heeft een afzonderlijke 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 waarschuwing toevoegen dat de VM-component geen hardware emuleert .

Alleen rijke mensen ... voorlopig

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

Als je zover bent gekomen, vraag je je waarschijnlijk af: wat kan ik rennen? Succes is beperkt. Chrome-ontwikkelaars hebben laten doorschemeren dat Visual Studio actief is. Reddit-gebruikers hebben WINE en Android Studio aan het werk gekregen en ChromeUnboxed heeft een handige videodemo gemaakt. Maar we zullen waarschijnlijk niet alle mogelijkheden - en beperkingen - kennen voordat Google daadwerkelijk iets presenteert. Wat we wel weten, is dat apps persistent zijn, wat betekent dat u kunt doorgaan waar u was gebleven en dat de ontwikkelaars werken aan het beschikbaar maken ervan in uw lijst met recente apps.

Wat nu? Enkele aandachtspunten

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

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

We weten niet welke beperkingen de luchtspleet tussen gastheer en container zal veroorzaken (indien aanwezig). De communicatie tussen de container en Chrome OS wordt geregeld, dus zal dat latentie introduceren of zelfs sommige randapparatuur uitschakelen?

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


bronnen:

Maksim Lin - Chrome OS-containers

Chromium Git - ARC-containerbundel, vm_tools, project-termina, crosvm