Aplikacje dla systemu Linux w systemie operacyjnym Chrome

Aplikacje dla systemu Linux będą wkrótce dostępne w systemie operacyjnym Chrome, począwszy od Google Pixelbook, dzięki Project Crostini. Czym jest Crostini i dlaczego jest tak ważny? Omawiamy największą zmianę w systemie operacyjnym Chrome od czasu integracji aplikacji na Androida.

Oto wszystko, co musisz wiedzieć o trwającym przez cały rok tajnym rozwoju funkcjonalności aplikacji dla systemu Linux w systemie operacyjnym Chrome przez Google, znanym również jako Project Crostini.

Krótko mówiąc, jest to sposób na uruchamianie zwykłych aplikacji linuksowych w systemie operacyjnym Chrome bez narażania bezpieczeństwa i włączania trybu programisty. (jeszcze niedostępne) oficjalne stany ustawień że chodzi o „uruchamianie narzędzi, edytorów i środowisk IDE systemu Linux na Chromebooku”.

Crostini to kulminacja kilkuletnich prac rozwojowych, które umożliwiły bezpieczne działanie tej funkcjonalności i spełnienie wysokich standardów bezpieczeństwa systemu operacyjnego Chrome. Aby zrozumieć, dlaczego dopiero się pojawia, najlepiej przyjrzeć się temu, co było wcześniej.

Umieszczenie Crostiniego w kontekście – mroczne wieki systemu operacyjnego Chrome

Zanim pojawiły się aplikacje na Androida, nie było zbyt wielu funkcji offline, nie mówiąc już o przydatnych aplikacjach zwiększających produktywność w systemie operacyjnym Chrome. Dlaczego jakakolwiek rozsądna osoba miałaby kupić Chromebooka? „To tylko przeglądarka internetowa” – brzmiała uwaga końcowa każdej recenzji Chromebooka. W Chrome Web Store było tyle, ile można dostać, ale wybór aplikacji był dość ubogi i rzadko aktualizowany. Miłośnicy przygód mogą spróbować uruchomić aplikacje na Androida za pomocą narzędzia o nazwie Spawacz łukowy, ale to był strzał w dziesiątkę, a wydajność była słaba.

Aby obejść ograniczenia offline, sfrustrowani użytkownicy albo wyczyścili system operacyjny Chrome i zainstalowali Linuksa, albo skorzystali z narzędzia open source Grzanka aby skonfigurować jednoczesne środowisko graficzne [np. Ubuntu Unity] działające na jądrze systemu operacyjnego Chrome.

Instalowanie Crouton, zestawu narzędzi typu open source, który wcześniej był de facto sposobem uzyskiwania dostępu do aplikacji Linux w systemie operacyjnym Chrome, wkrótce będzie przestarzały

Uruchomienie zamiennej dystrybucji GNU/Linux lub Crouton wymagało sporej wiedzy i często było pełne błędów – a żadna z opcji nie była szczególnie przyjazna dla użytkownika ani bezpieczna. Naciśnij niewłaściwy klawisz, a wyczyścisz urządzenie lub go zablokujesz, a jeśli pozostawisz środowisko Crouton niezaszyfrowane, każdy użytkownik-gość będzie mógł uzyskać do niego dostęp.

Integracja aplikacji na Androida, ustanawiająca precedens

Aplikacje na Androida pojawiły się w systemie operacyjnym Chrome w 2016 r. i stanowiły ogromny krok naprzód w zakresie funkcjonalności offline, ale włączenie tej funkcji nie było jedynie kwestią typu plug-and-play. Jedynym sposobem, w jaki mogło działać na systemie operacyjnym, który ceni bezpieczeństwo, była skuteczna piaskownica.

Nowatorskim rozwiązaniem, które wybrali programiści Chrome OS, było konteneryzacja, sposób łączenia aplikacji w samodzielne pakiety wykonywalne. Używając kontenera i kilku poprawek, udało im się uzyskać pełne środowisko Androida i wszystko jego zależności do działania w kontenerze, oddzielonym od reszty systemu operacyjnego Chrome, ale działającego na tym samym jądro.

Jednak aplikacje na Androida nie są zwykle tworzone z myślą o obudowie komputera stacjonarnego/laptopa. Dodaj do tego kiepskie wrażenia dotykowe w systemie operacyjnym Chrome, a otrzymasz frustrującą sesję produktywności, jeśli aplikacje w ogóle będą działać.

Problemy ze zgodnością – aplikacje na Androida w systemie operacyjnym Chrome

Chociaż aplikacje na Androida pomogły jak dotąd wypełnić lukę w produktywności, nadal istniała tęsknota za ogromną biblioteką pełnych aplikacji komputerowych. Podobnie jak w przypadku początkowego problemu z Androidem, samo udostępnienie możliwości uruchamiania aplikacji dla systemu Linux mogłoby spowodować zwiększyć powierzchnię ataku systemu operacyjnego Chrome, ponieważ złośliwe aplikacje mogą uzyskać dostęp do wszystkiego w systemie operacyjnym system operacyjny hosta. Dlatego tym razem programiści zaprojektowali funkcjonalność aplikacji dla systemu Linux w możliwie najbardziej odizolowany sposób, opierając się na tym, czego nauczyli się już z Androidem.

Obrona w głębi

Jak sama nazwa wskazuje, Crostini jest jak Crouton, ale zamiast niepewnej przestrzeni użytkownika obok systemu operacyjnego Chrome, oddziela ją dwie ściany. Pierwszą ścianą jest Termina VM, implementacja Chrome OS KVM (maszyna wirtualna oparta na jądrze). Po uruchomieniu maszyna wirtualna tworzy drugą ścianę – kontener – w którym znajduje się aplikacja, którą faktycznie chcesz uruchomić. Jeśli więc chcesz uruchomić pełnoprawną aplikację komputerową Klondike, działa ona w kontenerze wewnątrz maszyny wirtualnej.

Twórcy nie sprawili, że dokumentacja udostępniana publicznie jest szczególnie zrozumiała z nietechnicznego punktu widzenia, ale z mojego nieoficjalnego laickiego czytania wynika, że ​​oprogramowanie architektura dla Chrome OS prawdopodobnie wygląda teraz tak [uwaga: wszystko działa samodzielnie, na pewno nie jest to oficjalny dokument zespołu Chrome OS, prawdopodobnie jest to całkowicie nieprawdziwe, proszę nie zrań mnie]:

Jak naszym zdaniem wygląda architektura Crostini. Nie jest to oficjalny dokument.

Krótko mówiąc, komponent VM ma oddzielną przestrzeń użytkownika i urządzenia wirtualne (vCPU, IP, MAC itp.), a kontener to spakowana aplikacja, która wykorzystuje te zasoby. W tym miejscu powinienem dodać zastrzeżenie, że komponent VM w rzeczywistości nie emuluje żadnego sprzętu.

Tylko bogaci ludzie… na razie

Niektórzy, jak społeczność Reddit's /r/Crostini, zaczęli już majstrować przy Crostini na swoim Pixelbooki Google. Niestety Pixelbook to jak dotąd jedyne urządzenie posiadające funkcjonalność Crostini, ale znaki wskazują, że inne urządzenia, nawet te z chipami ARM, otrzymają wsparcie w przyszłości. Ale może jeszcze nie dla maszyn 32-bitowych. Istnieją również wskazówki, że niektóre części funkcjonalności maszyny wirtualnej są wymagane do uruchomienia Crostini nie będzie dostępne dla urządzeń ze starszymi wersjami jądra.

Jeśli dotarłeś tak daleko, prawdopodobnie zastanawiasz się: Co mogę biegać? Sukces był ograniczony. Programiści Chrome zasugerowali, że mają uruchomione Visual Studio. Użytkownicy Reddita uruchomili WINE i Android Studio, a ChromeUnboxed się przydał demonstracja wideo. Ale prawdopodobnie nie poznamy pełnych możliwości – i ograniczeń – zanim Google faktycznie coś zaprezentuje. Wiemy tylko tyle aplikacje są trwałe, co oznacza, że ​​możesz kontynuować od miejsca, w którym przerwałeś, i że programiści pracują nad udostępnieniem ich na liście ostatnich aplikacji.

Co następne? Kilka punktów do rozważenia

Jeśli korzystasz z kanału programisty na Chromebooku innym niż Pixelbook, aplikacja Terminal mogła zostać zainstalowana na Twoim Chromebooku. Może pojawić się błąd „nie udało się uruchomić Concierge”. Dzieje się tak dlatego, że funkcjonalność maszyny wirtualnej nie została jeszcze włączona na urządzeniach innych niż Pixelbook… jeszcze.

Nie wiemy jeszcze, w jaki sposób przydzielane są zasoby i jakie obciążenie generują te zagnieżdżone aplikacje. Pomysł grania w gry Steam kompatybilne z Linuksem jest kuszący, ale jeśli akceleracja GPU nie jest dostępna, na razie nie ma to sensu.

Nie wiemy, jakie ograniczenia spowoduje szczelina powietrzna host/kontener (jeśli w ogóle). Komunikacja między kontenerem a systemem operacyjnym Chrome jest kontrolowana, więc czy spowoduje to opóźnienia lub nawet wyłączy niektóre urządzenia peryferyjne?

Mamy wiele pytań bez odpowiedzi, a ujawnienie wszystkich jest tylko kwestią czasu. Wielu jest przekonanych We/Wy Google 2018 za kilka tygodni nastąpi wielkie odkrycie — ma to sens, ponieważ jest to konferencja programistów. W międzyczasie bądźcie na bieżąco, ponieważ śledzimy Crostiniego.


Źródła:

Maksim Lin – kontenery Chrome OS

Chromium Git – Pakiet kontenerów ARC, vm_tools, koniec projektu, crosvm