Gdzie mogę porozmawiać z deweloperami?
Wszystkie dyskusje dotyczące rozwoju Chromium OS odbywają się na Forum pomocy Chromebooka. Możesz pytać o wszystko, ale najpierw sprawdź, czy Twoje pytanie nie zostało już zadane.
Gdzie mogę przesyłać prośby o dodanie funkcji?
Jako że jest to nowy projekt, mamy dużo pracy i planujemy kolejne wydania, więc na razie wstrzymamy się z tym i wrócimy do tematu po kilku kolejnych wersjach ChromeOS.
W międzyczasie możesz porozmawiać lub zadać pytanie na liście mailingowej powyżej.
Gdy sytuacja się ustabilizuje, będziesz mieć możliwość korzystania z naszego narzędzia do śledzenia problemów. Szczegółowe informacje znajdziesz w odpowiedzi na następne pytanie.
Gdzie mogę zgłaszać błędy?
Najpierw sprawdź, czy korzystasz z najnowszej wersji deweloperskiej. Wiele prac jest w toku.
Następnie sprawdź, czy problem nie jest już znany lub rozwiązany. Możesz sprawdzić listę istniejących błędów.
Jeśli nadal chcesz przesłać opinię, możesz zgłosić problem i w opisie uwzględnić #crostini (inną nazwę Linuksa w ChromeOS). Opinie o dowolnej części ChromeOS można przesyłać za pomocą skrótu alt+shift+i.
Jeśli nadal chcesz zgłosić błąd deweloperom, kliknij ten link, aby przekazać zgłoszenie odpowiednim osobom.
Skąd nazwa crostini?
Jest to gra słów nawiązująca do crouton, czyli projektu, który umożliwia łatwe tworzenie pełnych środowisk Linuksa (w tym narzędzi dla deweloperów) dla użytkowników, którzy włączyli tryb deweloperski. Crostini (Linux na ChromeOS) ma na celu zaspokojenie większości przypadków użycia, które obejmuje crouton. Jest to większa i smaczniejsza przekąska niż grzanka, stąd nazwa.
Jaki jest związek między Crostini (Linux w ChromeOS) a Croutonem?
crouton pomógł zdefiniować wiele przypadków użycia, które deweloperzy chcieli wykorzystać w ChromeOS, dzięki czemu pomógł w określeniu wymagań dotyczących systemu Linux na ChromeOS. Chcieliśmy mieć pewność, że większość użytkowników croutona będzie mogła zamiast niego korzystać z Linuksa w ChromeOS w bezpiecznym środowisku.
Crouton pomógł wyznaczyć kierunek rozwoju Linuksa w ChromeOS, ale nie udostępniono ani nie wykorzystano ponownie żadnego kodu. Nie chodzi o to, że crouton jest zły, tylko o to, że jest to zupełnie inny model.
Kiedy moje urządzenie będzie obsługiwane?
Obecnie nie publikujemy żadnych informacji poza tym dokumentem. Jeśli Twojego urządzenia nie ma w sekcji Obsługiwane urządzenia w oficjalnej dokumentacji Chromium OS, oznacza to, że nie podjęliśmy jeszcze żadnych decyzji dotyczących tego konkretnego urządzenia, które byłyby gotowe do publicznego ogłoszenia.
Nie pytaj nas o harmonogramy obsługi urządzeń, ponieważ ich nie mamy.
Czy muszę włączyć tryb programisty?
Nie musisz włączać trybu dewelopera (w którym podczas uruchamiania wyświetla się przerażający ekran z informacją o wyłączeniu weryfikacji systemu operacyjnego). Wszystkie te funkcje są zaprojektowane tak, aby działały bezpiecznie, gdy system jest uruchomiony w trybie normalnym lub zweryfikowanym.
W przypadku niektórych urządzeń może być konieczne przełączenie się na kanał deweloperski, ale nie ma to nic wspólnego z trybem deweloperskim.
Czy używam Linuksa w ChromeOS?
Jeśli używasz aplikacji Terminal lub programów w kontenerze domyślnym, który udostępniamy, w tym naszych programów ułatwiających integrację (np. Sommelier), to tak.
Jeśli używasz własnego kontenera lub maszyny wirtualnej, nie.
Dlaczego warto uruchamiać maszyny wirtualne? Czy kontenery nie są bezpieczne?
Kontenery często izolują się od siebie (za pomocą przestrzeni nazw w systemie Linux), ale nie izolują jądra ani podobnych zasobów systemowych. Oznacza to, że wystarczy jeden błąd w jądrze, aby w pełni wykorzystać system i ukraść Twoje dane.
W przypadku ChromeOS to nie wystarczy, dlatego wszystko umieszczamy w maszynie wirtualnej. Teraz musisz wykorzystać crosvm za pomocą jego ograniczonych interakcji z gościem, a sam crosvm jest mocno odizolowany.
Więcej informacji znajdziesz w sekcji Bezpieczeństwo w oficjalnej dokumentacji Chromium OS.
Jak udostępniać pliki między ChromeOS a kontenerem?
Pamięć domyślnego kontenera Linuksa w ChromeOS jest dostępna w aplikacji Pliki w ChromeOS w sekcji „Pliki Linuksa”. Za pomocą Secure Shell możesz skonfigurować połączenie SFTP z innymi kontenerami zdalnymi, a następnie przeglądać je w aplikacji Pliki.
Czy mogę uzyskać dostęp do plików, gdy kontener nie jest uruchomiony?
Obecnie, aby uzyskać dostęp do zawartości kontenera, musi on być uruchomiony. Domyślny kontener Linuksa w ChromeOS zostanie uruchomiony automatycznie, gdy w aplikacji Pliki otworzysz „Pliki Linuksa”.
Czy mogę instalować niestandardowe moduły jądra?
Obecnie Termina nie obsługuje modułów. Oznacza to, że próba użycia oprogramowania, które wymaga kompilowania lub wczytywania niestandardowych modułów jądra (np. VirtualBox), nie będzie działać. Zobacz też następne pytanie.
Czy mogę uruchomić maszynę wirtualną w maszynie wirtualnej?
Wirtualizacja zagnieżdżona jest obsługiwana na niektórych urządzeniach z ChromeOS, aby umożliwić obsługę emulatora Androida. Możesz też uruchomić qemu-system, aby emulować sprzęt i uruchomić w nim dowolny system operacyjny. Niestety będzie to dość wolne, ponieważ QEMU nie będzie mogło korzystać z KVM do akceleracji sprzętowej.
Czy mogę uruchomić kontener Dockera lub inny kontener w kontenerze Linuksa w ChromeOS?
Tak. Prawdopodobnie najpierw musisz zainstalować odpowiednie pakiety dla wybranego formatu kontenera.
Jaka architektura działa w moim systemie?
Architektura kontenera Linuksa będzie zgodna z architekturą urządzenia. Możesz to sprawdzić na 2 sposoby:
- Na nowej karcie otwórz stronę chrome://settings/help/details i sprawdź platformę. Następnie dopasuj nazwę płyty do naszej publicznej listy urządzeń. W polu „User ABI” (Interfejs binarny aplikacji użytkownika) sprawdź, jakiego typu procesor masz.
- Otwórz crosh i uruchom
uname -m. Spowoduje to wydrukowanie architektury bieżącego urządzenia.
Jeśli widzisz ikonę x86_64, możesz uruchamiać kod skompilowany dla procesorów Intel/AMD (32-bitowych, 64-bitowych i x32).
Jeśli widzisz arm (lub coś podobnego, np. armv7l) lub aarch64, możesz uruchomić kod skompilowany dla ARM/ARM64.
Czy mogę uruchamiać inne architektury?
Obecnie nie ma zintegrowanej obsługi uruchamiania np. kodu ARM na systemie Intel ani odwrotnie. Możesz to zrobić samodzielnie (np. za pomocą qemu-user), ale jeśli znasz qemu-user, to już o tym wiesz.
Czy mogę uruchamiać programy, które działają po wylogowaniu?
Nie. Wszystkie maszyny wirtualne (i ich kontenery) są powiązane z Twoją sesją logowania. Gdy się wylogujesz, wszystkie programy zostaną zamknięte.
Wszystkie Twoje dane znajdują się w zaszyfrowanym katalogu domowym, więc nie chcemy, aby mogły wyciec po wylogowaniu.
Więcej informacji znajdziesz w sekcji Bezpieczeństwo w oficjalnej dokumentacji Chromium OS.
Czy mogę automatycznie uruchamiać programy po zalogowaniu?
Nie. Wszystkie maszyny wirtualne (i ich kontenery) trzeba będzie ponownie uruchomić ręcznie. Pomaga to zapobiegać trwałym exploitom.
Więcej informacji znajdziesz w sekcji Bezpieczeństwo w oficjalnej dokumentacji Chromium OS.
Czy mogę automatycznie uruchamiać programy podczas rozruchu?
Nie. Zobacz poprzednie pytania.
Czy mogę ustawić zmienne środowiskowe dla kontenera?
Jasne! Możesz to zrobić na kilka sposobów.
- environment.d umożliwia ustawianie zmiennych środowiskowych dla sesji
systemd --user, która obejmuje Terminal i wszystkie aplikacje GUI. Aby użyć tej metody, możesz potrzebować nowszego kontenera, Debian 10 „buster”. - Jeśli chcesz mieć zmienne środowiskowe tylko w Terminalu, ustaw je w pliku konfiguracyjnym powłoki, np.
~/.bashrclub~/.zshrc.
Zmiany zmiennych środowiskowych są widoczne tylko w nowo uruchomionych programach. Aby zmiany zaczęły obowiązywać, może być też konieczne ponowne uruchomienie programów lub całego kontenera.
Czy obsługiwane jest wiele profili?
Nie, Terminal jest obsługiwany tylko w profilu głównym (*). Naszym celem jest zapewnienie w nim pełnej funkcjonalności i płynności działania, a także uniknięcie awarii i problemów w profilach dodatkowych. Nie planujemy dodawania do profili dodatkowych nowych funkcji.
Jeśli nie znasz obsługi wielu profili, zapoznaj się z ogólną dokumentacją dotyczącą wielu profili, aby dowiedzieć się więcej.
(*) Aplikacja Terminal jest wyłączona we wszystkich profilach dodatkowych. Użytkownicy mogą ręcznie uruchamiać maszyny wirtualne za pomocą crosh i kontenerów, ale interfejs i aplikacja Pliki prawdopodobnie nie będą się automatycznie integrować.
Czy konta dzieci są obsługiwane?
Nie, Terminal nie jest obsługiwany na kontach dzieci. Nie planujemy udostępniać tej funkcji na takich kontach.
Jeśli nie znasz kont dziecka, zapoznaj się z ogólną dokumentacją kont dziecka, aby dowiedzieć się więcej.
Czy moje maszyny wirtualne, kontenery i dane są synchronizowane lub tworzone są ich kopie zapasowe?
Ostatecznie to Ty odpowiadasz za wszelkie dane, które trafiają do kontenerów. Aby łatwo synchronizować dane, np. folder projektu, między urządzeniami, możesz udostępnić folder na Dysku Linuksowi. Wszystko, co dodasz do tego folderu, zostanie zarchiwizowane na Dysku i zsynchronizowane między Twoimi urządzeniami.
Jak utworzyć kopię zapasową maszyny wirtualnej?
Najprostszym rozwiązaniem jest użycie nowej funkcji tworzenia kopii zapasowej wbudowanej w ChromeOS. Aby to zrobić, otwórz Ustawienia i w menu po lewej stronie wybierz „Deweloperzy”. Następnie otwórz „Linux”. Znajdziesz tam opcję „Kopia zapasowa i przywracanie”. Po otwarciu tego menu zobaczysz przycisk „Kopia zapasowa”, który zapisuje plik .tini.
Jeśli chcesz utworzyć kopię zapasową pojedynczego kontenera, możesz użyć standardowych poleceń LXC.
Polecenie vmc export umożliwia ręczne wyeksportowanie całej maszyny wirtualnej. Domyślnie obraz dysku qcow2 zostanie zapisany w folderze Pobrane. Pamiętaj, że nie ma jeszcze możliwości importowania maszyn wirtualnych, więc ta funkcja jest przydatna tylko do diagnostyki lub używania innego systemu do wyodrębniania plików.
Czy mogę uzyskać bezpośredni dostęp do plików maszyny wirtualnej lub kontenera (np. za pomocą aplikacji Pliki)?
Obecnie nie ma możliwości uzyskania dostępu do plików obrazów używanych przez maszynę wirtualną. Nie planujemy tego zmieniać.
Jeśli chcesz utworzyć kopię zapasową, musisz to zrobić ręcznie.
Dlaczego czas w maszynie wirtualnej lub kontenerze jest niezsynchronizowany?
Zegar w maszynie wirtualnej (a co za tym idzie, w kontenerach) jest automatycznie synchronizowany z zegarem ChromeOS. Nie musisz więc samodzielnie uruchamiać usług synchronizacji czasu (np. ntp). Zegar ten jest oparty na UTC.
Od wersji R75 próbujemy synchronizować dane strefy czasowej z kontenerem za pomocą polecenia timedatectl. Jeśli to nie zadziała, wyeksportujemy zmienną środowiskową TZ.
Obecnie nie aktualizujemy szczegółów strefy czasowej w samej maszynie wirtualnej. Nie próbujemy też aktualizować żadnych innych ustawień strefy czasowej, ponieważ są one niestandardowe w różnych dystrybucjach. W tych środowiskach czas może się wydawać nieprawidłowy lub nieaktualny, jeśli używana jest zmienna środowiskowa TZ.
Szczegółowe informacje techniczne znajdziesz na stronie https://crbug.com/829934. To bardziej skomplikowane, niż myślisz.
Jakie formaty kopiowania i wklejania są obsługiwane?
Obecnie obsługiwane są tylko treści text/plain. Wkrótce planujemy dodać kolejne formaty (np. image/png i text/rtf).
Aktualną listę obsługiwanych źródeł danych znajdziesz w pliku exo/data_source.cc.
Chociaż X/Wayland obsługuje dowolną liczbę formatów MIME, naszym ostatecznym celem jest obsługa tylko tych formatów, które obsługuje sama przeglądarka Chrome. Listę znajdziesz w pliku clipboard_constants.cc.
Pamiętaj, że mówimy tylko o ograniczeniach dotyczących danych przechowywanych w schowku. Aplikacje Wayland nadal mogą bezpłatnie przesyłać dane bezpośrednio między sobą w dowolnym formacie.
Czy mogę automatycznie odczytywać i zapisywać dane w schowku z poziomu maszyny wirtualnej?
Obecnie nie.
Z punktu widzenia bezpieczeństwa nie chcemy, aby niezaufany kod cicho lub automatycznie wyodrębniał wszystko, co użytkownik skopiował. Sesja przeglądarki może kopiować dane osobowe lub hasła. To ten sam problem, z którym zmaga się platforma internetowa.
Nie jest to to samo co ręczne wklejanie danych przez użytkowników (np. za pomocą skrótu Ctrl+V). Dotyczy to tylko odczytu programowego.
Nie spodziewamy się, że tak będzie zawsze. Gdy będziemy mieć model uprawnień i interfejs do zarządzania tymi kwestiami, możemy rozważyć zezwolenie użytkownikom na przyznawanie tych uprawnień.
Jeśli używasz narzędzi xclip lub X, często mają one lokalny bufor (w XWayland), ale nie synchronizuje się on automatycznie z resztą systemu.
Czy muszę zarządzać aktualizacjami maszyn wirtualnych?
Nie. Termina to komponent, który jest aktualizowany automatycznie.
Pamiętaj, że maszyna wirtualna jest oddzielona od kontenera.
Jak sprawdzić wersję Termina?
Termina to pobrany komponent, więc możesz otworzyć stronę chrome://components na nowej karcie i poszukać cros-termina.
Możesz też połączyć się z maszyną wirtualną za pomocą vsh i uruchomić cat /etc/lsb-release.
Czy muszę zarządzać aktualizacjami kontenera?
Pakiety dostarczone przez Google w kontenerze, które komunikują się z ChromeOS lub są wymagane do integracji z ChromeOS, będą regularnie aktualizowane automatycznie. Spowoduje to automatyczne zainstalowanie wszystkich niezbędnych zależności.
Nie ma automatycznej aktualizacji innych zainstalowanych pakietów w kontenerze. Wolimy unikać aktualizowania pakietów, które mogą spowodować nieprawidłowe działanie już zainstalowanych programów. Kontener jest podobny do każdej innej dystrybucji Linuksa, więc jeśli chcesz korzystać z nowszych wersji oprogramowania, musisz go od czasu do czasu aktualizować.
Możesz wyświetlać sudo apt-get update && sudo apt-get dist-upgrade.
Czy mogę używać protokołu IPv6?
Tak, od wersji R81. Obsługiwane są zarówno sieci z podwójnym stosem, jak i sieci obsługujące tylko IPv6.
ChromeOS obsługuje tylko SLAAC. Więcej informacji znajdziesz na stronie pomocy dotyczącej obsługi IPv6 w ChromeOS.
Czy mam dostęp do sieci warstwy 2?
Obecnie nie. Dostęp do sieci jest możliwy tylko na warstwie 3 (czyli IP). Nie będziesz więc mieć możliwości tworzenia mostów ani innych tego typu konstrukcji.
Nie wiadomo, czy i kiedy to się zmieni. W przypadku Wi-Fi trudno jest połączyć się ze światem zewnętrznym, a niewiele urządzeń ma połączenie Ethernet. Możemy obsługiwać warstwę 2 między kontenerami, ale nie wiemy, ilu użytkowników tego potrzebuje, aby uzasadnić wysiłek, jaki musimy w to włożyć.
Czy sieci VPN skonfigurowane przez ChromeOS lub Androida (poza maszyną wirtualną lub kontenerami) działają?
Obecnie nie. Aby otrzymywać aktualizacje, możesz dodać do ulubionych stronę https://crbug.com/834585.
Czy wyjście audio jest obsługiwane?
Tak, od wersji R74 (Termina 11707.0.0+).
Jeśli kontener został skonfigurowany przed wdrożeniem obsługi dźwięku, może być nieprawidłowo skonfigurowany (domyślnie przed wdrożeniem dźwięku dane były przesyłane do urządzenia zerowego). Aby odzyskać dostęp, wykonaj te czynności:
# Make sure the new cros-pulse-config package is installed. $ sudo apt-get update $ sudo apt-get dist-upgrade # Clear out existing pulse settings. $ rm -rf ~/.config/pulse # Turn it off & on again via crosh ([Ctrl]+[[Alt]]+[[T]]). crosh> vmc stop termina
Czy przechwytywanie dźwięku (np. mikrofon) jest obsługiwane?
Jest to teraz obsługiwane w wersji M84 ChromeOS. Aby włączyć nagrywanie dźwięku, otwórz Ustawienia i w panelu nawigacyjnym po lewej stronie wybierz „Dla programistów”. Następnie otwórz „Linux”. W tym menu znajdziesz opcję „Zezwalaj Linuksowi na dostęp do mikrofonu”.
Czy mogę uzyskać dostęp do sprzętu (np. USB, Bluetooth, port szeregowy)?
ChromeOS umożliwia teraz udostępnianie niektórych urządzeń przez USB. Aby włączyć dostęp do USB, otwórz Ustawienia i w panelu nawigacyjnym po lewej stronie wybierz „Opcje programisty”. Następnie otwórz „Linux” i „Ustawienia USB”. W tym miejscu możesz włączyć dostęp do USB w poszczególnych przypadkach.
Zespół aktywnie pracuje nad tym obszarem i z czasem będzie obsługiwać więcej urządzeń.
Czy mogę uruchamiać programy Wayland?
Tak, a nawet są one preferowane. Chrome intensywnie korzysta z klientów Wayland, więc po uaktualnieniu prawdopodobnie wszystko będzie działać bez problemów.
Sommelier zapewnia to wsparcie w sposób płynny.
Czy mogę uruchamiać programy X?
Tak, chociaż możesz napotkać pewne problemy ze zgodnością i prawdopodobnie nigdy nie będzie to tak idealne jak w przypadku tradycyjnego serwera X. Jednak w związku z tym, że szersza społeczność przechodzi na Wayland, powinno to wystarczyć.
Sommelier odpowiada za uruchamianie XWayland, pełni funkcję menedżera okien i tłumaczy żądania X i Wayland między Chrome a programami X.
Dlaczego okna są czasami małe lub niewyraźne?
Aplikacje na Linuxa widoczne na półce programu uruchamiającego powinny mieć opcję używania wysokiej lub niskiej gęstości. Jeśli okaże się, że rozdzielczość nie działa zgodnie z oczekiwaniami, kliknij ikonę prawym przyciskiem myszy, aby wyświetlić możliwość przełączania między wysoką a niską gęstością.
Chrome obsługuje wyświetlacze o wysokiej rozdzielczości, ale wiele aplikacji na Linuxa nie. Jeśli program nie obsługuje prawidłowo skalowania DPI, wyniki są słabe.
Obecnie udostępniamy aplikacjom wbudowaną rozdzielczość i DPI. Jeśli są małe lub rozmyte, oznacza to, że nie obsługują prawidłowego skalowania. Zgłaszaj te problemy do odpowiednich projektów nadrzędnych, aby w przyszłości wszystko „po prostu działało”.
Tymczasem Sommelier udostępnia niektóre ustawienia czasu działania, dzięki czemu możesz ustawić współczynnik skalowania dla każdego programu, aby obejść nieprawidłowe działanie. Więcej informacji znajdziesz w dokumentacji Sommelier.
Jeśli stosujesz powiększenie w całym systemie lub w inny sposób zmieniasz domyślną rozdzielczość wyświetlania, staramy się dopasować do niej skalę wyjścia aplikacji. Może to spowodować rozmycie wyników. Możesz dostosować rozdzielczość wyświetlacza lub zmienić ustawienia za pomocą Sommelier (więcej informacji znajdziesz powyżej). Aplikacje na Linuxa widoczne na półce programu uruchamiającego powinny mieć opcję używania wysokiej lub niskiej gęstości. Jeśli okaże się, że rozdzielczość nie działa zgodnie z oczekiwaniami, kliknij ikonę prawym przyciskiem myszy, aby wyświetlić możliwość przełączania między wysoką a niską gęstością.
Czy Synergy będzie działać?
Synergy nie będzie działać (jako klient ani serwer). Wymaga to przechwytywania i podrabiania danych wejściowych (np. myszy lub klawiatury) we wszystkich oknach. Ponieważ korzystamy z Wayland, z założenia jeden klient nie może uzyskać dostępu do żadnego innego klienta w systemie. Jest to silna granica zabezpieczeń między klientami, ponieważ nie chcemy, aby dowolny kod uruchomiony w kontenerze mógł się z niego wydostać i zaatakować innych klientów (np. przeglądarkę) oraz wysyłać dowolne naciśnięcia klawiszy.
Nie planujemy włączenia tego rodzaju kontroli z poziomu kontenera. Nie oznacza to, że w ChromeOS nigdy nie pojawi się rozwiązanie podobne do Synergy (np. CRD), ale nie będzie to Synergy ani żadne inne narzędzie w kontenerze.
Możesz uruchomić Synergy i prawdopodobnie sprawić, że będzie przekazywać zdarzenia wejściowe dla jednego okna, w którym działa, ale to wszystko.
Czy mogę uruchamiać programy na Windowsa?
Jasne, wypróbuj WINE. Zgodność będzie w dużej mierze zależeć od WINE, więc nie proś nas o pomoc.
Czy mogę uruchamiać programy na macOS?
Raczej nie. Możesz wypróbować różne istniejące rozwiązania dla systemu Linux, ale prawdopodobnie będą one jeszcze bardziej niedopracowane.
Dlaczego warto zaimplementować crosvm od zera (zamiast używać QEMU, kvmtool itp.)?
Nie mamy nic przeciwko żadnemu z tych projektów. Wszystkie są świetne, a ich projekty wpłynęły na nasze. Co najważniejsze, robiły one więcej, niż potrzebowaliśmy, i nie miały tak dobrego modelu zabezpieczeń, jak ten, który udało nam się osiągnąć, pisząc własne oprogramowanie. crosvm nie może robić wszystkiego, co inne projekty, ale robi tylko to, czego potrzebujemy.
Więcej informacji znajdziesz w projekcie crosvm.
Czy maszyny wirtualne nie spowalniają wszystkiego?
To prawda, że maszyny wirtualne zwiększają obciążenie w porównaniu z uruchamianiem tylko w kontenerze lub bezpośrednio w systemie. Jednak w naszych testach obciążenie to jest nieistotne dla wygody użytkowników i warto je ponieść ze względu na znaczne zwiększenie bezpieczeństwa systemu.
Więcej informacji znajdziesz w sekcji Bezpieczeństwo w oficjalnej dokumentacji Chromium OS.
Dlaczego warto uruchamiać kontenery w maszynie wirtualnej? Dlaczego nie uruchamiać programów bezpośrednio na maszynie wirtualnej?
Aby skrócić czas uruchamiania maszyny wirtualnej, musimy zadbać o to, aby Termina była jak najmniejsza. Oznacza to wyeliminowanie programów i plików, których nie potrzebujemy lub które nie są nam potrzebne.
Używamy dm-verity, które wymaga, aby obraz Termina był tylko do odczytu ze względu na bezpieczeństwo. Oznacza to jednak również, że możemy bezpiecznie udostępniać go między instancjami maszyn wirtualnych.
Ponadto wersje programów i bibliotek, które udostępniamy, są często nowsze niż w przypadku innych dystrybucji (ponieważ bazujemy na Gentoo) i są kompilowane z dodatkowymi flagami bezpieczeństwa.
Zezwolenie użytkownikom na modyfikowanie maszyny wirtualnej uniemożliwia korzystanie z obrazu bezstanowego, który zawsze działa i jest odporny na błędy użytkowników oraz błędy w programach.
Ogólnie rzecz biorąc, obsługa uruchamiania dowolnych programów jest trudna i sprawiłaby, że system nie miałby wielu pożądanych właściwości wymienionych powyżej. Wymuszanie umieszczania wszystkiego w kontenerze zapewnia bardziej niezawodne rozwiązanie i umożliwia użytkownikom swobodne eksperymentowanie bez obaw.
Czy problem Foreshadow (znany też jako L1TF / CVE-2018-3646) jest rozwiązany?
Tak. Więcej informacji znajdziesz w naszej publicznej dokumentacji.
Czy mogę usunąć kontenery, których już nie chcę?
Jasne, możesz usunąć wszystko, co chcesz. Nie ma jednak obecnie interfejsu ani poleceń, które mogłyby w tym pomóc.
Czy mogę usunąć maszyny wirtualne, których już nie potrzebuję?
Jasne, możesz usunąć wszystko, co chcesz. Możesz je usunąć ręcznie za pomocą polecenia vmc destroy.
Czy mogę wyłączyć te funkcje?
Administratorzy mogą kontrolować dostęp do kontenerów i maszyn wirtualnych za pomocą konsoli zarządzania, dzięki czemu organizacje biznesowe i edukacyjne, które chcą ograniczyć ten dostęp, mogą to zrobić.
Początkowo w standardowych ustawieniach ChromeOS znajduje się opcja „Linux”, ale w dłuższej perspektywie planujemy usunąć ten przełącznik, aby wszystko działało na żądanie. W tym momencie na urządzeniach niezarządzanych nie będzie dostępny suwak.
Czy mogę uruchomić inny system operacyjny, np. Windows, macOS, Linux, *BSD itp.?
Obecnie nie. Możesz uruchomić tylko naszą niestandardową maszynę wirtualną z systemem Linux o nazwie Termina. Zapoznaj się też z kilkoma następnymi pytaniami.
Czy mogę uruchomić własną maszynę wirtualną lub jądro?
Obecnie nie. Możesz uruchomić tylko Termina, która korzysta z naszego niestandardowego jądra i konfiguracji systemu Linux. Więcej informacji już wkrótce.
Czy mogę używać innej dystrybucji Linuksa?
Oczywiście. Dostępny jest pełny wiersz poleceń LXD, a dołączony zdalny obraz zawiera wiele innych dystrybucji do wyboru. Nie testujemy jednak niczego poza domyślnym kontenerem, który dostarczamy, więc w przypadku uruchomienia innej dystrybucji mogą wystąpić problemy.
Używam dystrybucji (insert distro here). Jak mogę uzyskać {GUI apps, launcher icons, etc…}?
Pliki binarne Sommelier i Garcon są montowane w każdym kontenerze, więc nie trzeba ich instalować ani kompilować krzyżowo. Jednostki systemd i pliki konfiguracyjne z pakietu cros-container-guest-tools uruchomią te demony w sesji użytkownika systemd. Warto też uruchomić loginctl enable-linger <user>, aby umożliwić im działanie w tle.
Ile maszyn wirtualnych mogę uruchomić?
Możesz utworzyć tyle instancji, ile Twój system jest w stanie obsłużyć (pod względem pamięci RAM i procesora). Są one od siebie niezależne.
Ile kontenerów mogę uruchomić?
Możesz utworzyć tyle instancji, ile Twój system jest w stanie obsłużyć (pod względem pamięci RAM i procesora). Każda instancja maszyny wirtualnej może hostować wiele kontenerów.
Jakie formaty kontenerów są obsługiwane?
Termina obsługuje obecnie bezpośrednio tylko LXC. Znamy Kubernetes, Dockera, OCI, rkt itp. i chcemy, aby wszystkie te narzędzia były łatwe w użyciu.
Tymczasowe obejście problemu znajdziesz w odpowiedzi na poprzednie pytanie.