Dystrybucja Clear Linux Intela zyskała ostatnio sporo uwagi, ze względu na jej niekonwencjonalnie wysoką wydajność w benchmarkach. Choć dystrybucja ta została stworzona i jest zarządzana przez Intela, nawet AMD zaleca uruchamianie benchmarków swoich nowych procesorów pod Clear Linuxem, aby uzyskać najwyższe wyniki.
Ostatnio w serwisie Phoronix Michael Larabel przetestował system Threadripper 3990X wykorzystując dziewięć różnych dystrybucji Linuksa, z których jedną był Clear Linux – dystrybucja Intela uzyskała trzy razy więcej wyników na pierwszym miejscu niż jakakolwiek inna testowana dystrybucja. Próbując zebrać wszystkie wyniki testów w jedną średnią geometryczną, Larabel odkrył, że wyniki dystrybucji były średnio o 14% szybsze niż najwolniejszych testowanych dystrybucji (CentOS 8 i Ubuntu 18.04.3).
Nie ma wątpliwości, że Clear Linux jest najlepszym wyborem jeśli chcesz osiągnąć najlepsze możliwe wyniki w benchmarkach. Pytanie, które nie zostało tutaj poruszone to, jak to jest pracować z Clear Linuxem jako codziennym kierowcą? Byliśmy ciekawi, więc zabraliśmy go na przejażdżkę.
Instalacja Clear Linux
Instalacja jest taka sama dla Clear Linux jak dla każdego innego systemu operacyjnego- pobierz ISO, zrzuć na pendrive, uruchom i już. Dostępne są dwie wersje instalatora: „serwer”, który działa tylko w trybie tekstowym i „pulpit”, który wykorzystuje w pełni funkcjonalne środowisko pulpitu na żywo. Wybraliśmy wersję desktopową. Na prawdziwym sprzęcie Clear nie sprawił nam kłopotów i zainstalował się natychmiast, ale w środowisku KVM początkowo odmówił instalacji, z niezbyt pomocnym komunikatem o błędzie „nie przeszedł kontroli przedinstalacyjnej”.
Drobne poszukiwania w sieci ujawniły fakt, że podczas gdy środowisko Clear Linux live desktop uruchomi się w trybie BIOS, rzeczywisty system operacyjny wymaga UEFI. W naszym środowisku wirtualizacji – Linux KVM, pod Ubuntu 19.10 – nowe maszyny wirtualne domyślnie uruchamiają się w trybie BIOS, chyba że w ostatnim kroku zaznaczymy opcję „Dostosuj konfigurację przed instalacją”, a następnie w zakładce Przegląd zmienimy tryb z BIOS na UEFI. Tak więc usunęliśmy maszynę wirtualną, odtworzyliśmy ją z odpowiednim firmware UEFI i ruszyliśmy do wyścigu.
Po wyprostowaniu architektury firmware naszej maszyny wirtualnej, instalacja Clear Linuksa w maszynie wirtualnej była równie prosta jak na prawdziwym sprzęcie – prawdziwym sprzęcie z firmware UEFI. Jeśli miałeś nadzieję zainstalować Clear Linuksa na starszym sprzęcie, który obsługuje tylko tryb BIOS, masz pecha.
Instalator jest przejrzysty i prosty. Musisz wybrać język (obecnie z bardzo ograniczonej listy), cel instalacji oraz podać instalatorowi nazwę użytkownika i hasło do nowego systemu operacyjnego. Musisz również pozwolić mu wiedzieć, czy jesteś optując w lub nie z phone-home telemetrii używane do QA i dev purposes.
Podczas ustawiania celu instalacji, Clear Linux oferuje albo „bezpieczne” instalacji lub „destrukcyjne” jeden. Nie testowaliśmy bezpiecznego instalatora, zamiast tego wybierając Clear Linux jako jedyny dostępny system operacyjny.
Po wybraniu opcji, Clear nie powinien zająć więcej niż kilka minut w sumie, aby faktycznie zainstalować – ale jeśli odejdziesz i wrócisz, warto zdać sobie sprawę, że wygaszacz ekranu blokady może kopnąć w ciebie. (Jeśli nie jesteś przyzwyczajony do Gnome3, kliknij i przeciągnij w górę, aby odrzucić ekran blokady.)
Post-instalacja: Wyścig GIMP-a
Przez większość czasu nie wydawało się, aby był sens robić tradycyjne benchmarki wydajności w Clear Linuksie. Phoronix przeprowadził ich już wiele – i tak, bez wątpienia Clear Linux jest średnio szybszy niż większość dystrybucji. Ale wygrywanie benchmarków to niekoniecznie to samo co poczucie szybkości.
Bez punktu odniesienia dla porównania – obserwowanego i tykającego zegara lub wyścigu head-to-head – większość ludzi nie zauważy mniej niż 33% różnicy w czasie wykonania znanego zadania. Typowy obserwator – taki, który nie mierzy czasu – stojąc przed godzinnym zadaniem, które wykonał w 40 minut, pomyśli „hej, to wydawało się szybkie”. Ten sam obserwator, czekający na wykonanie jednosekundowego zadania, generalnie zacznie marszczyć brwi w okolicach 1300ms.
Powinniśmy również zaznaczyć, że większość benchmarków Phoronixa skupia się na długo trwających zadaniach obliczeniowych lub związanych z przechowywaniem danych. Ten typ benchmarków lepiej koreluje ze zmianami w sprzęcie niż ze zmianami w oprogramowaniu na poziomie dystrybucji. Oznacza to, że nawet jeśli Clear Linux jest szybszy w zadaniach istotnych z punktu widzenia wydajności desktopu, różnica może być łatwo przytłoczona przez różnice w samym desktopie lub konkretnym pakiecie aplikacji.
Kiedy zainstalowałem i otworzyłem GIMP’a w maszynie wirtualnej Clear Linux pomyślałem, „to jest szybkie” – ale spodziewałem się, że będzie szybkie. Aby sprawdzić moje początkowe postrzeganie, otworzyłem również GIMP na mojej stacji roboczej Ubuntu 19.04 i policzyłem Mississippi-okazuje się, że pulpit Ubuntu był w rzeczywistości dwa razy szybszy niż pulpit Clear. To tyle jeśli chodzi o ludzką percepcję? Być może nie – często pracuję w maszynach wirtualnych, więc być może podświadomie porównywałem maszynę Clear do maszyny wirtualnej Ubuntu, a nie do Ubuntu na stacji roboczej hosta.
Aby sprawdzić tę teorię, postawiłem obok siebie maszynę wirtualną Ubuntu 18.04.4 i maszynę wirtualną Clear Linux, każdą z czterema vCPU i 4GB przydzielonej pamięci RAM. Następnie zainstalowałem i skonfigurowałem demona NTP na obu maszynach wirtualnych, aby ustawić ich zegary w granicach jednej milisekundy od siebie i zainstalowałem moje własne narzędzie do harmonogramowania whenits. Po wykonaniu wszystkich tych czynności, wyniki „wyścigu GIMP-a” nie różniły się od siebie – pomimo posiadania tych samych zasobów przydzielonych każdej z nich, maszyna Ubuntu 18.04 nadal „wygrywała” z łatwością.
Badając dalej, zauważyłem, że Ubuntu 18.04 używa starszej wersji GIMP-a niż Clear. Odinstalowałem więc dostarczony przez system GIMP 2.08 z maszyny wirtualnej Ubuntu i zainstalowałem najnowszą wersję 2.10.14 – tę samą, której używa Clear – z PPA. Wynik nie zmienił się znacząco-GIMP nadal otwierał się szybciej w Ubuntu VM, i można zobaczyć obok siebie wyniki tego ostatecznego „wyścigu” w krótkim klipie wideo powyżej.
Żaden z tych wyników nie powinien być traktowany jako ostateczny benchmark czyniąc Clear Linux jest „powolny”. Pokazuje to jednak zawodność ludzkiej percepcji i granice wpływu „szybkiej” dystrybucji na normalne, codzienne działanie systemu biurkowego. Poza uruchamianiem systemu, Clear Linux nie wydawał się zauważalnie szybszy od Ubuntu w ogólnym zastosowaniu – ani w maszynach wirtualnych na mojej stacji roboczej z procesorem Ryzen 3700X, ani na Dellu Latitude z procesorem i7-6500U, na którym zainstalowałem go bezpośrednio.
Jeśli jesteś osobą, która entuzjastycznie podchodzi do optymalizacji kompilatorów w pakietach Gentoo lub Arch – lub jeśli masz bardzo konkretne zadanie, które chcesz przyspieszyć o 15% lub więcej – Clear Linux może być dla Ciebie. Ale jeśli oczekujesz przyspieszenia, które twoi przyjaciele natychmiast zauważą i będą się nad nim ślinić, prawdopodobnie będziesz rozczarowany.
Instalowanie oprogramowania
Ubuntu 19.10 i Clear Linux wykorzystują Centrum Oprogramowania Gnome jako GUI do instalowania i usuwania oprogramowania. Najbardziej oczywistą różnicą jest wysiłek Canonical, aby repozytoria w ich wersji Centrum Oprogramowania sprawiały wrażenie bardziej dopracowanych i zadbanych – Centrum Oprogramowania Ubuntu w widoczny sposób prezentuje Editor’s Picks i wyróżnione aplikacje, których Clear Linux nie posiada.
Co ważniejsze, Canonical ma znacznie głębsze repozytoria niż Clear – i to może mieć wpływ nawet wtedy, gdy obie dystrybucje oferują konkretną aplikację. Na przykład, gra Frozen Bubble jest dostępna w Centrum Oprogramowania na każdej z dystrybucji, ale na Clear, jest ona dostarczana jako flatpak, pochodzący z zewnętrznego źródła dl.flathub.org.
Na Ubuntu, Frozen Bubble pochodzi z własnego repozytorium Universe firmy Canonical, a nie z zewnętrznego źródła. Może to nie brzmi, jakby miało znaczenie, ale instalacja gry na Ubuntu z własnego repozytorium Canonical zajęła tylko kilka sekund, podczas gdy na Clear trwała prawie dziesięć minut.
Czy to Chrome?
Ani Clear Linux, ani Ubuntu nie zawierają przeglądarki Google Chrome, ale na Ubuntu instalacja jest tak prosta, jak na Windows: wyszukiwanie, pobieranie, kliknięcie i gotowe. Rzeczywiste pobieranie dostaniesz jest Ubuntu natywny plik .deb, a oprócz instalacji samej przeglądarki, to automatycznie aktualizuje listę repozytoriów – więc od tego momentu, Chrome będzie automatycznie aktualizowane przez Ubuntu, w ten sam sposób i przy użyciu tych samych narzędzi, jak standardowe aktualizacje systemu.
Browsing do strony pobierania Chrome w Clear Linux natywnie zainstalowany Firefox prezentuje się z tym samym wyborem .deb lub .rpm pobrania – ale żaden z nich nie będzie „po prostu działa”. Istnieje pewna sztuczka, którą można wykonać w wierszu poleceń Clear Linuxa, aby pobrać plik .rpm, rozpakować go i zainstalować, a następnie dokonać ręcznej rekonfiguracji, aby czcionki nie wyglądały dziwnie.
Niestety, Chrome nie będzie automatycznie aktualizowany tak jak na Ubuntu lub większości innych dystrybucji desktopowych – zamiast tego będziesz musiał pamiętać, aby zaktualizować go samodzielnie i przejść przez te same kilka kroków w wierszu poleceń (w tym rekonfiguracja czcionek) za każdym razem, gdy to zrobisz.
Zarządzanie pakietami
Oczywiście, bardziej zaawansowani użytkownicy prawdopodobnie nigdy nie będą zawracać sobie głowy Centrum Oprogramowania w pierwszej kolejności, w każdej z dystrybucji. Ubuntu, jako dystrybucja oparta na Debianie, używa pakietów .deb pod maską, które mogą być instalowane, aktualizowane, usuwane i wyszukiwane za pomocą narzędzia wiersza poleceń apt
. Clear Linux nie używa apt
ani yum
, zypper
, pacman
, pkg
, ani niczego innego, o czym prawdopodobnie słyszałeś. Zamiast tego używa własnego narzędzia do zarządzania pakietami z wiersza poleceń o nazwie swupd
.
W przeważającej części, swupd
działa jak każdy inny menedżer pakietów – jest argument do instalowania pakietów, inna para do przeszukiwania ich albo według nazwy/opisu pakietu, albo według dołączonych plików, i tak dalej. Niestety, muszę przyznać, że uważam swupd
za konsekwentnie frustrujące – w szczególności argumenty są obszerne i dziwnie sformułowane.
W Debianie, Ubuntu, Fedorze, OpenSUSE, CentOS-ie lub FreeBSD trzeba <packagemanager> install <package>
zainstalować nową aplikację z repozytoriów – na przykład apt install gimp
. Ale w swupd
, ty swupd bundle-add <package>
zamiast tego. Podobnie bundle-remove
, bundle-list
, bundle-info
i tak dalej.
Może to brzmieć jak drobne, małostkowe rozróżnienie, ale dla mnie było to dość uciążliwe. Pomyliłem składnię – na przykład, omyłkowo wpisując add-bundle
zamiast bundle-add
– znacznie częściej niż zwykle, gdy używam nieznanego menedżera pakietów.
Same pakiety również dość często łamią względnie standardowe konwencje nazewnictwa. Na przykład, kiedy znalazłem się w potrzebie szczególnego zestawu nagłówków, które Ubuntu ma w uuid-dev
, a Fedora w libuuid-devel
, Clear Linux zamiast tego miał je w os-core-dev
– i rozgryzienie tego było ogromnym kłopotem. Próba swupd search uuid
w ogóle nie spowodowała wyświetlenia pakietu os-core-dev
– podobnie jak szukanie potrzebnego mi pliku w swupd search-file uuid.h
. (Więcej na ten temat później.)
Chociaż swupd
działa, czuje się, że jest to wynik syndromu NIH. Intel twierdzi, że wiele sekretnego sosu Clear Linuksa znajduje się w opakowaniu, i być może naprawdę potrzebował zbudować własne narzędzie do zarządzania od podstaw. Ale z perspektywy administratora trudno dostrzec korzyści, łatwo natomiast dostrzec wady – trochę więcej wysiłku poświęconego dopracowaniu i użyteczności swupd
przeszłoby długą drogę.
Czy to będzie ZFS?
Nie każdy będzie się przejmował tym, czy OpenZFS działa na Clear Linuxie. Ale mnie na pewno obchodziło, i spędziłem niedorzeczną ilość czasu goniąc tego konkretnego smoka. Poważnie rozważałem wybrukowanie mojego głównego laptopa i przeinstalowanie go na Clear Linuksa dla długoterminowej jazdy testowej – ale nawet na „tylko laptopie” nie chciałem rezygnować z możliwości ZFS do szybkiej asynchronicznej replikacji, kryptograficznego wykrywania i naprawiania bitrotów, używania kompresji inline, i tak dalej i tak dalej.
Sam projekt OpenZFS nie posiada żadnych notatek instalacyjnych dla Clear Linuksa, a swupd search zfs
nie przyniosło żadnych rezultatów, więc poszperałem w Internecie. Wyszukiwanie „Clear Linux ZFS” prowadzi szybko do FAQ Clear, które stwierdza „ZFS nie jest dostępny w Clear Linux OS” i oferuje btrfs jako alternatywę.
Btrfs oferuje większość tych samych funkcji co ZFS – ale niestety, jeśli faktycznie używasz najciekawszych z nich, takich jak redundantne tablice z leczeniem danych, szybka replikacja, czy kompresja inline, szybko staje się zawodny. (Tak, naprawdę – komercyjne urządzenia NAS, takie jak Synology i ReadyNAS firmy Netgear, używają btrfs, ale nakładają go na LVM i mdraid, i robią to nie bez powodu. Zobacz wiki Debiana po więcej i zwróć uwagę na decyzję Red Hata o całkowitym odrzuceniu btrfs w RHEL 7.4.)
Clear Linux FAQ wskazuje nam także na starszy problem na Githubie, w którym użytkownik prosi o pakiet ZFS i zostaje odrzucony. Inny użytkownik prosi o pomoc w uruchomieniu niepodpisanych modułów jądra i dostaje wskazówkę do dokumentacji poprzez nieistniejący już link. Znalazłem kopię martwego linku na web.archive.org (a później, członek projektu Clear Linux dostarczył zaktualizowany link do aktualnej wersji), ale to również nie doprowadziło mnie tam, gdzie potrzebowałem się udać.
Instalacja pakietu linux-lts-dev
była prosta, podobnie jak utworzenie pliku konfiguracyjnego jądra, który pozwoliłby na załadowanie niepodpisanych modułów. Ale przełączenie się z powrotem na jądro LTS – konieczne, ponieważ natywne jądro było trochę za bardzo przestarzałe dla oficjalnego wsparcia OpenZFS – okazało się trudniejsze. Instalacja jądra była prosta-swupd bundle-add kernel-lts2018
ale uzyskanie Clear Linuksa do faktycznego uruchomienia z niego było trochę koszmarem.
Dystrybucja nie przechowuje konfiguracji zarządzania bootowaniem w żadnym z miejsc, w których doświadczony użytkownik *nixa mógłby ich szukać-/boot
, /etc/default
, cokolwiek związanego z grub
, itd. Nigdy nie udało mi się znaleźć faktycznej lokalizacji danych konfiguracyjnych, ale w końcu odkryłem, że od doświadczonego użytkownika Linuksa oczekuje się manipulowania środowiskiem startowym za pomocą narzędzia clr-boot-manager
. Niestety, clr-boot-manager set-kernel org.clearlinux.lts2018.4.19.103-113
a następnie clr-boot-manager update
– co powinno było wybrać to jądro do użycia przy następnym starcie – nie zrobiło absolutnie nic, a ja kręciłem się w kółko grzebiąc w rzeczach, restartując się, uruchamiając uname -a
i wciąż widząc jądro 5.5 działające przez jakiś czas.
W końcu zrezygnowałem z clr-boot-manager set-kernel
i zamiast tego spróbowałem clr-boot-manager set-timeout 10
. To faktycznie zadziałało – po ponownym uruchomieniu tym razem, zostałem przedstawiony z listą kerneli i ręcznie wybrałem kernel 4.19 LTS. Teraz, uname -a
pokazało mi, że działam na jądrze 4.19 i byłem gotowy do kompilacji ZFS!
Problemy były dalekie od końca, niestety. Pobierając i rozpakowując tarball ze źródłem OpenZFS, chdir
wchodząc do niego i uruchamiając ./configure
, otrzymałem błąd: uuid/uuid.h missing, libuuid-devel package required
. Niestety, w swupd
nie ma pakietu libuuid-devel
– nie ma też libuuid
, uuid
, uuid-dev
, uuid-devel
, ani niczego innego w tym stylu. Ani swupd search uuid
ani swupd search-file uuid.h
nie przyniosły żadnych użytecznych wyników, mimo że powinny.
W końcu otworzyłem nowy problem w trackerze ZFS on Linux, mając nadzieję, że albo ktoś inny uruchomił ZFS na Clear, albo że mogę uzyskać wystarczająco dużo informacji o skrypcie configure, aby spróbować go samemu załatać. Brian Behlendorf – twórca linuksowego portu OpenZFS i ogólnie miły facet – również nie miał odpowiedzi.
Ale Brian dał mi wskazówkę, która ostatecznie rozwiązała zagadkę – chociaż swupd search-file uuid.h
nie znalazł pakietu, którego potrzebowałem, swupd search-file libuuid.so.1
znalazł. Tak więc jedno swupd bundle-add os-core-dev
później/configure
i make install
, oba zakończone sukcesem!
Pozostały problem, z którym się zetknąłem, polega na tym, że proste polecenie insmod
manipulacji modułem jądra Linuksa (LKM) – które pozwala określić ścieżkę do modułu, który ma być wstawiony do jądra – nie rozwiązuje zależności, a więc insmod /path/to/zfs.ko
zakończyło się niepowodzeniem z błędem unknown symbol
. Znacznie mądrzejsze narzędzie modprobe
wykryje i rozwiąże problemy z zależnościami, ale nie pozwoli ci określić ścieżki do modułów jądra, a instalator wrzucił je w miejsca, gdzie modprobe
nie wiedział, jak szukać.
Po pewnym zamieszaniu w końcu po prostu wrzuciłem symlink do każdego z plików package.ko
ZFS-a, które znajdowały się w indywidualnych katalogach pod /lib/modules/extra
– bezpośrednio do samego /lib/modules
. Dzięki temu modprobe zfs
zadziałał, a ja faktycznie miałem ZFS działający na Clear Linuxie. Huzzah!
Pomimo że ZFS był teraz funkcjonalny, wciąż były cięcia papieru, z którymi trzeba było sobie poradzić. Komendy zpool
i zfs
były w /usr/local/sbin
, który nie jest częścią domyślnego PATH
w Clear Linuxie. Ponadto, moduł ZFS nie był ustawiony na automatyczne ładowanie przy starcie systemu. Te pozostałe problemy są na szczęście dość trywialne do rozwiązania. Aby naprawić problem ze ścieżką, albo zaktualizuj swój PATH
tak, aby zawierał /usr/local/sbin
, albo symlinkuj znajdujące się tam narzędzia do /usr/local/bin
. Aby zmusić ZFS do autoloadowania przy starcie systemu, stwórz katalog /etc/modules-load.d
, następnie stwórz plik /etc/modules-load.d/zfs.conf
i wypełnij go pojedynczą linią o treści zfs
.
Ta historia o kudłatym psie nie dotyczy samego ZFS, ale faktu, że problemy, które są stosunkowo proste w bardziej popularnych dystrybucjach, mogą być wielkim wrzodem na tyłku w Clear Linuksie. Tego typu problemy można oczywiście rozwiązać, ale jeśli nie jesteś chętny i podekscytowany, aby być częścią wysiłku, aby rozwiązać je samemu lub dla tych, którzy przyjdą po tobie, prawdopodobnie powinieneś trzymać się z dala od Clear jako codziennego kierowcy.
Dobrze
- Clear Linux jest wspierany przez Intel, jedną z największych i czołowych firm komputerowych na świecie
- Clear Linux ma zwięzły, jasny mandat: be secure, be fast, do things right
- Most things work with little or no tweaking
- If you’re bound and determined to have The Fastest Linux In The West, this is the distro for it-sorry, Arch and Gentoo users
- „This is Linux! I know this!”
The bad
- Although most things work without tweaking, most users will quickly want something that doesn’t
- Intel’s
swupd
package management tool is clunky, warty, and doesn’t seem to index all packages properly - There are so few users, searching for help can seem like time travel to the past (Who were you, DenverCoder9? Co widziałeś?!)
Brzydki
- Czysty Linux – przynajmniej na razie – jest o wiele lepiej przystosowany do prostego zestawu powtarzalnych zadań, gdzie szybkość wykonania jest absolutnie krytyczna, niż do szerokiego, ogólnego zastosowania na co dzień
.