Szczegółowe informacje o wewnętrznych mechanizmach

Jest to zaawansowany proces, którego nie zalecamy nowym użytkownikom Linuksa.

ChromeOS obsługuje uruchamianie dowolnego kodu w maszynach wirtualnych. To dokumentacja niskiego poziomu dotycząca tej funkcji. Bardziej przystępne informacje znajdziesz w faq.

Wymagania wstępne

Funkcje środowiska wykonawczego

Podczas korzystania z kontenera Linuksa powinny działać te funkcje:

  • Połączenia sieciowe wychodzące (IPv4).
  • Grafika bez akceleracji.
  • programy Wayland (preferowane; za pomocą Sommelier);
  • Programy X (zgodność za pomocą SommelierXWayland).
  • Wyjście audio w przypadku obrazów M74+ i eksperymentalne przechwytywanie/mikrofon w przypadku obrazów R79+.

Brakuje niektórych funkcji

  • sprzętowe dekodowanie wideo;
  • IME.

Zespół ChromeOS wprowadza nowe funkcje w sposób przemyślany, aby nie naruszyć ogólnego bezpieczeństwa systemu. Szczegółowe informacje na temat większości zagadnień związanych z programowaniem w systemie Linux na urządzeniach z ChromeOS znajdziesz w najczęstszych pytaniach dotyczących Crostini.

Bezpieczeństwo

Uruchamianie dowolnego kodu jest zwykle ryzykowne z punktu widzenia bezpieczeństwa, ale zespół ChromeOS uważa, że model środowiska wykonawczego używany przez kontener Linux na ChromeOS wystarczająco ogranicza to ryzyko. Maszyna wirtualna jest granicą bezpieczeństwa, a wszystko, co się w niej znajduje, jest uznawane za niezaufane. Obecny obraz gościa maszyny wirtualnej korzysta też z niestandardowego, wzmocnionego jądra, aby jeszcze bardziej zwiększyć bezpieczeństwo kontenerów, ale jest to raczej dodatkowa funkcja niż element niezbędny do zapewnienia ogólnego bezpieczeństwa systemu.

W tym modelu pozostała część systemu ChromeOS powinna być chroniona przed dowolnym kodem (złośliwym lub przypadkowym) uruchamianym w kontenerach wewnątrz maszyny wirtualnej.

Jedyny kontakt ze światem zewnętrznym odbywa się za pomocą crosvm, a każdy kanał komunikuje się z poszczególnymi procesami (z których każdy jest ściśle odizolowany).

Dane użytkownika w kontenerze

W związku z przejściem na usługi w chmurze obecne podejście do bezpieczeństwa podkreśla, że uzyskanie danych logowania do konta (np. haseł do Google lub Facebooka) jest bardziej opłacalnym wektorem ataku niż atakowanie komputera stacjonarnego lub laptopa. Nie są one błędne. Obecne rozwiązanie ChromeOS oparte na maszynach wirtualnych i kontenerach nie poprawia tej sytuacji. Mówiąc wprost, za wszystko, co zostanie wpisane w kontenerze, odpowiada obecnie użytkownik. Jeśli więc uruchomisz niezabezpieczony lub przejęty kontener, a następnie wpiszesz w nim hasła, mogą one zostać skradzione, nawet jeśli reszta systemu ChromeOS pozostanie bezpieczna.

Trwałość procesu

Procesy na maszynach wirtualnych i w kontenerach nie są zachowywane po wylogowaniu (ponieważ znajdują się w zaszyfrowanym magazynie użytkownika) i są automatycznie zamykane. Nie uruchamiają się też automatycznie po zalogowaniu (aby uniknąć trwałych ataków) ani automatycznie podczas uruchamiania (bez sesji logowania), ponieważ nie byłyby dostępne (ponieważ znajdują się w zaszyfrowanym magazynie użytkownika).

Kod wykonywalny i zapisywalny

Obraz dysku maszyny wirtualnej Termina jest pobierany do partycji z zapisywalnym stanem, tak jak inne komponenty Chrome. Aby mieć pewność, że zawartość nie zostanie zmodyfikowana, używamy dm-verity. Oznacza to również, że można wczytywać tylko obrazy podpisane przez Google, a obraz jest zawsze tylko do odczytu.

Ataki na sprzęt

Luki w zabezpieczeniach Meltdown i Spectre mają wpływ na bezpieczne korzystanie z maszyn wirtualnych. Wprowadziliśmy poprawki i środki zaradcze, aby uniemożliwić maszynom wirtualnym atakowanie systemu hosta lub innych maszyn wirtualnych. Więcej informacji znajdziesz na stronie witryny wiki systemu operacyjnego Chromium poświęconej statusowi podatności na ataki Meltdown i podatności Spectre na urządzeniach z ChromeOS.

Cykle życia

Gdy włączysz kontener Linuxa (co spowoduje zainstalowanie wszystkich innych niezbędnych komponentów, takich jak Termina), system będzie gotowy do użycia.

Chociaż te komponenty mogą być zainstalowane, nic nie zaczyna działać od razu. Po wylogowaniu wszystko jest wyłączane i kończone, a po zalogowaniu nic nie jest automatycznie wznawiane.

Gdy uruchomisz aplikację Terminal lub inną aplikację na Linuksa, która uruchamia kontener, a jej kontener nadrzędny nie jest jeszcze uruchomiony, maszyna wirtualna Termina zostanie uruchomiona automatycznie, a w niej zostanie uruchomiony domyślny kontener Linuksa w ChromeOS (znany też jako Crostini). Umożliwia to łączenie się z kontenerem przez SSH lub SFTP (za pomocą aplikacji Pliki).

Gdy zamkniesz wszystkie widoczne aplikacje, maszyna wirtualna lub kontenery nie zostaną wyłączone. Możesz je ręcznie zatrzymywać i uruchamiać, a także tworzyć więcej kontenerów niż tylko domyślny.

Trwałość danych

Wszystkie utworzone maszyny wirtualne i kontenery oraz dane w tych kontenerach będą przechowywane między sesjami użytkownika (wylogowanie/zalogowanie). Są one przechowywane w tym samym zaszyfrowanym magazynie danych użytkownika co pozostałe dane przeglądarki.

Jeśli maszyna wirtualna lub kontener zostanie zatrzymana lub zamknięta w nieprawidłowy sposób (np. z powodu utraty zasilania), dane mogą zostać utracone i trzeba będzie je odzyskać, tak jak w przypadku innych elementów systemu.

Obsługa urządzeń

Chociaż chcemy, aby Linux na ChromeOS działał na wszystkich Chromebookach, wymagane funkcje jądra i sprzętu ograniczają możliwość jego wdrożenia. Zespół skupił się na bezpieczeństwie i stabilności systemu, a także na portowaniu wstecznym funkcji, gdy ma to sens. To obszar, nad którym stale pracujemy.

Obecnie obsługiwane

Listę obecnie obsługiwanych urządzeń znajdziesz w artykule Systemy ChromeOS obsługujące Linuxa.

Wymagania sprzętowe

Obecnie nie ma minimalnej ilości pamięci RAM, miejsca na dane ani szybkości procesora wymaganej do uruchomienia kontenera Linux na ChromeOS, ale im więcej masz każdego z tych zasobów, tym lepiej będzie działać system.

Musisz jednak mieć procesor obsługujący wirtualizację sprzętową. Na platformach x86 ma to wiele nazw. Intel nazywa ją VT-xVMX. AMD nazywa ją AMD-VSVM.

Systemy BayTrail

Chromebooki z procesorem Intel BayTrail nie obsługują VT-x. Ten procesor zwykle zawiera VMX, ale wariant w Chromebookach nie, więc niestety nigdy nie będzie obsługiwany.

Aby sprawdzić, czy dana tablica jest obsługiwana, wyszukaj BayTrail na naszej publicznej liście urządzeń w kolumnie Platform.

Stare jądra

Nie planujemy obsługi systemu Linux w wersji 3.14 ani starszej. Wymagają one przeniesienia nowych funkcji, co jest pracochłonne i często wiąże się z dużymi zmianami. Na przykład:

Aby sprawdzić, czy dana tablica jest obsługiwana, wyszukaj na naszej publicznej liście urządzeń numery wersji mniejsze niż 3.14 w kolumnie Kernel.

32-bitowe procesory ARM

Uruchomienie maszyn wirtualnych na 32-bitowych procesorach ARM jest trudne, niestandardowe i wymaga koordynacji z oprogramowaniem sprzętowym. Niestety oprogramowanie układowe ChromeOS zwykle nie konfiguruje rozszerzeń. Dlatego te systemy nie są obsługiwane.

Aby sprawdzić, czy dana tablica jest obsługiwana, wyszukaj arm na naszej publicznej liście urządzeń w kolumnie Kernel ABI.