Aplikace pro Linux budou brzy k dispozici na Chrome OS, počínaje Google Pixelbookem, díky Project Crostini. Co je Crostini a proč je tak důležitý? Ponoříme se do největší změny Chrome OS od integrace aplikací pro Android.
Zde je vše, co potřebujete vědět o rok trvajícím utajeném vývoji funkcí linuxových aplikací v Chrome OS společností Google, známém také jako Project Crostini.
Stručně řečeno, je to způsob, jak spouštět běžné linuxové aplikace v systému Chrome OS, aniž by došlo k ohrožení zabezpečení nebo povolení režimu pro vývojáře. (zatím není k dispozici) oficiální stavy nastavení že je to „Spouštět nástroje, editory a IDE Linux na vašem Chromebooku“.
Crostini je vyvrcholením několika let vývoje, který umožnil, aby funkce fungovala dostatečně bezpečně, aby splňovala vysoké bezpečnostní standardy Chrome OS. Abyste pochopili, proč se to jen objevuje, je nejlepší podívat se na to, co bylo předtím.
Zasazení Crostini do kontextu – temné doby Chrome OS
Než se na scénu objevily aplikace pro Android, v systému Chrome OS toho nebylo mnoho v cestě offline funkcí, natož užitečných aplikací pro zvýšení produktivity. Proč by si každý rozumný člověk kupoval Chromebook? „Je to jen webový prohlížeč,“ zněla závěrečná poznámka každé recenze Chromebooku. Internetový obchod Chrome byl tolik, kolik byste mohli dostat, ale výběr aplikací byl dost chudý a málokdy se aktualizoval. Odvážlivci si mohli zkusit spouštět aplikace pro Android pomocí nástroje tzv
Oblouková svářečka, ale to bylo trefa-nebo-minek a výkon byl slabý.Aby se vyhnuli omezením offline, frustrovaní uživatelé buď vymazali Chrome OS a nainstalovali Linux, nebo použili nástroj s otevřeným zdrojovým kódem kruton k nastavení simultánního desktopového prostředí [např. Ubuntu Unity] pracujícího na jádře Chrome OS.
Spuštění náhradní distribuce GNU/Linux nebo Crouton vyžadovalo pořádnou dávku know-how a často bylo prošpikováno chybami – a ani jedna z těchto možností nebyla nijak zvlášť uživatelsky přívětivá nebo bezpečná. Stiskněte nesprávnou klávesu a vymažete své zařízení nebo jej zablokujete, a pokud necháte prostředí Crouton nezašifrované, bude k němu mít přístup každý host.
Integrace aplikací pro Android, vytvoření precedentu
Aplikace pro Android přistály na Chrome OS v roce 2016 a znamenaly obrovský skok v offline funkčnosti, ale aktivace této funkce nebyla jen plug-and-play. Jediný způsob, jak by to mohlo fungovat na OS, který si cení zabezpečení, bylo, kdyby byl efektivně sandboxován.
Nové řešení, které si vývojáři Chrome OS vybrali, bylo kontejnerizace, způsob, jak sdružovat aplikace do samostatných spustitelných balíčků. Pomocí kontejneru a více než několika vylepšení se jim podařilo získat plné prostředí Android a vše jeho závislosti se spouštějí v kontejneru odděleném od zbytku Chrome OS, ale běží na stejném jádro.
Aplikace pro Android však obvykle nejsou vyvíjeny s ohledem na tvar stolního počítače/notebooku. Přidejte do mixu špatný dotykový zážitek v systému Chrome OS a pokud aplikace vůbec fungovaly, máte zaděláno na frustrující relaci produktivity.
Zatímco aplikace pro Android pomohly překonat dosavadní mezeru v produktivitě, stále tu byla touha po masivní knihovně plnohodnotných desktopových aplikací. Stejně jako v případě počátečního problému se systémem Android by se jednoduše otevřela možnost spouštět aplikace pro Linux zvýšit útočnou plochu systému Chrome OS, protože škodlivé aplikace by mohly mít přístup ke všemu v systému hostitelský OS. Tentokrát tedy vývojáři navrhli funkčnost linuxových aplikací co nejpřesněji, nad rámec toho, co se již naučili s Androidem.
Obrana do hloubky
Jak název napovídá, Crostini je jako Crouton, ale místo toho, aby vedle Chrome OS seděl nejistý uživatelský prostor, má mezi nimi dvě stěny. První stěnou je Termina VM, implementace Chrome OS KVM (Kernel-based Virtual Machine). Jakmile se tento virtuální počítač spustí, vloží druhou zeď – kontejner – který pak obsahuje aplikaci, kterou skutečně chcete spustit. Takže když chcete spustit svou plnohodnotnou desktopovou aplikaci Klondike, běží v kontejneru uvnitř virtuálního počítače.
Vývojáři neudělali veřejně přístupnou dokumentaci z netechnického hlediska nijak zvlášť stravitelnou, ale z mého neoficiálního laického čtení je software architektura pro Chrome OS nyní pravděpodobně vypadá takto [poznámka: všechny fungují moje vlastní, rozhodně to není oficiální dokument týmu Chrome OS, pravděpodobně zcela nepravdivé, prosím, ne zraň mě]:
Stručně řečeno, komponenta VM má samostatný uživatelský prostor a virtuální zařízení (vCPU, IP, MAC atd.) a kontejner je zabalená aplikace, která tyto prostředky využívá. V tomto bodě bych měl přidat upozornění, že komponenta VM ve skutečnosti neemuluje žádný hardware.
Jen bohatí lidé... zatím
Někteří, jako komunita na Redditu /r/Crostini, již začali šťourat s Crostini na svém Google Pixelbooks. Bohužel, Pixelbook je zatím jediné zařízení, které má funkce Crostini, ale známky ukazují na další zařízení, dokonce i ta se systémem ARM na čipech, která v budoucnu získají podporu. Ale možná pro 32bitové stroje ještě ne tak docela. Existují také rady, že některé části funkčnosti virtuálního počítače vyžadují ke spuštění Crostini nebude k dispozici pro zařízení se staršími verzemi jádra.
Pokud jste se dostali až sem, pravděpodobně se ptáte: Co mohu spustit? Úspěch byl omezený. Vývojáři Chrome naznačili, že mají spuštěné Visual Studio. Uživatelé Redditu zprovoznili WINE a Android Studio a ChromeUnboxed udělal užitečnou věc video demo. Pravděpodobně však nebudeme znát úplné možnosti – a omezení – dříve, než Google něco skutečně předvede. Co víme, je to aplikace jsou trvalé, což znamená, že můžete pokračovat tam, kde jste skončili, a že vývojáři pracují na jejich zpřístupnění ve vašem seznamu posledních aplikací.
Co dál? Několik bodů ke zvážení
Pokud jste v kanálu pro vývojáře na jiném Chromebooku, než je Pixelbook, je možné, že do vašeho Chromebooku dorazila aplikace Terminál. Může se zobrazit chyba „Nepodařilo se spustit službu concierge“. Je to proto, že funkce virtuálních počítačů nebyla povolena na jiných zařízeních než Pixelbook... zatím.
Zatím nevíme, jak jsou zdroje alokovány a jakou režii tyto vnořené aplikace produkují. Myšlenka hraní na hrách Steam kompatibilních s Linuxem je lákavá, ale pokud není k dispozici akcelerace GPU, pak je to prozatím nemožné.
Nevíme, jaká omezení způsobí vzduchová mezera hostitele/kontejneru (pokud nějaká existuje). Komunikace mezi kontejnerem a Chrome OS je řízena, bude to tedy znamenat latenci nebo dokonce deaktivovat některá periferní zařízení?
Máme mnoho nezodpovězených otázek a je jen otázkou času, kdy bude vše odhaleno. Mnozí jsou přesvědčeni Google I/O 2018 za pár týdnů to bude velké odhalení – dává to smysl, protože jde o vývojářskou konferenci. Mezitím zůstaňte naladěni, protože budeme sledovat Crostini.
Prameny:
Maksim Lin – Kontejnery Chrome OS
Chromium Git – Balíček kontejnerů ARC, vm_tools, projektová koncovka, crosvm