Po trzech miesiącach prac rozwojowych dostępna jest wersja menedżera systemu systemd 260. Kluczowe zmiany: zakończenie wsparcia dla skryptów usług w formacie System V, mechanizm „mstack” do tworzenia wielowarstwowych hierarchii montowania, narzędzie systemd-report, wsparcie dla integracji systemd-networkd z ModemManager, wsparcie dla użytkowników przenośnych usług, koncepcja „xaccess” w systemd-logind i systemd-udevd.
Wśród zmian w nowej wersji:
- Zakończono wsparcie dla skryptów usług w formacie System V oraz dostarczania komponentów rc-local.service, systemd-sysv-install, systemd-rc-local-generator i systemd-sysv-generator.
- Zrealizowano mechanizm „mstack” (Mount Stack), który pozwala używać katalogów z sufiksem „.mstack/” do tworzenia złożonej hierarchii katalogów utworzonej poprzez sekwencyjne montowanie i nakładanie obrazów dysków oraz części systemu plików za pomocą OverlayFS i „mount —bind”. Dodano polecenie systemd-mstack, opcję „—mstack” w systemd-nspawn oraz parametr RootMStack w jednostkach, które mogą być używane do montowania i odmontowywania wszystkich elementów zdefiniowanych w konfiguracji „.mstack” jednocześnie, na przykład do szybkiego odtwarzania obrazu kontenera lub środowiska roboczego usługi. Każdy plik lub podkatalog w „.mstack/” definiuje jeden poziom montowania lub warstwę „overlayfs”.
Na przykład, poniższa konfiguracja „foobar.mstack/” definiuje overlayfs z dwoma warstwami w trybie tylko do odczytu z obrazów dysków base.raw i app.raw (podane jako dowiązania symboliczne) oraz katalogiem „rw” z możliwością zapisu: foobar.mstack/layer@0.raw → ../base.raw foobar.mstack/layer@1.raw → ../app.raw foobar.mstack/rw/
- Zrealizowano ramy „metrics” i „report”, które mogą być używane przez komponenty systemowe do wyprowadzania statystyk poprzez Varlink w katalogu /run/systemd/report/. Dodano narzędzie systemd-report, które tworzy zbiorczy raport, łączący statystyki ze wszystkich komponentów i wyprowadzający je w formacie JSON. Obecnie metryk dostarczają jedynie menedżer usług oraz systemd-networkd.
- W systemd-networkd zapewniono integrację z ModemManager i dodano sekcję „[MobileNetwork]” z ustawieniami APN, AllowedAuthenticationMechanisms, User, Password, IPFamily, AllowRoaming, PIN, OperatorId, RouteMetric i UseGateway, pozwalającymi wykorzystać systemd-networkd do łączenia się z operatorami komórkowymi przez modem.
- Dodano wsparcie dla uruchamiania systemd-portabled jako usługi użytkownika, uruchamianej przez nieuprzywilejowanego użytkownika. Do narzędzia portablectl dodano flagi „—user” i „—system” do wyboru typu usługi. Usługi przenośne („Portable Services”) to usługi systemowe przedstawione w formie samowystarczalnych kontenerów (dostarczane w postaci obrazu systemowego, ale obsługiwane jak zwykła usługa).
- W systemd-logind i systemd-udevd dodano wsparcie dla koncepcji „xaccess” (Extended Access), umożliwiającej w sesji graficznej zapewnienie dostępu do GPU dla użytkowników zdalnych, którzy fizycznie nie korzystają z monitora i urządzeń wejściowych na lokalnym systemie (analogicznie do dostępu uaccess, obejmującego fizycznie pracujących z komputerem użytkowników). W celu skonfigurowania sesji w tym przypadku zaleca się ustawienie zmiennej środowiskowej XDG_SESSION_EXTRA_DEVICE_ACCESS przez PAM.
- Dla automatyzacji konfiguracji DeviceTree w obrazach UKI (Unified Kernel Image) zaproponowano kanoniczny zestaw plików z identyfikatorami sprzętu w lokalizacji /usr/lib/systemd/boot/hwids/, łączących identyfikatory urządzeń z elementami DeviceTree. Dzięki temu zestawowi obraz UKI automatycznie znajduje i ładuje wymagany DTB (Device Tree Blob) podczas rozruchu bez potrzeby tworzenia obrazów specyficznych dla każdego urządzenia. W obecnej chwili pliki hwid zostały utworzone dla urządzeń ARM64 opartych na chipach Snapdragon.
- W /etc/os-release dodano nowe pole „FANCY_NAME”, różniące się od „PRETTY_NAME” możliwością użycia nie-ASCII glifów Unicode. W przypadku istnienia pola „FANCY_NAME” będzie ono używane w wyjściu systemd, systemd-hostnamed i hostnamectl zamiast „PRETTY_NAME”.
- Usługi udostępniające publiczne interfejsy Varlink zostały zgrupowane w jednym katalogu /run/varlink/registry/ za pomocą dowiązań symbolicznych. Do przeglądania listy takich usług zrealizowano polecenie ‘varlinkctl list-registry’.
- W jednostkach wprowadzono możliwość określenia w parametrze PrivateUsers wartości „managed” dla automatycznego przypisywania jednostkom zakresów identyfikatorów użytkowników i grup (UID/GID) przez systemd-nsresourced.
- W jednostkach dodano ustawienie RefreshOnReload do aktualizacji rozszerzeń i poświadczeń podczas ponownego uruchamiania jednostki.
- W jednostkach dodano ustawienie BindNetworkInterface do automatycznego wiązania wszystkich soketów tworzonych w jednostce z określonym interfejsem sieciowym.
- Do jednostek dodano ustawienia ConditionPathIsSocket i AssertPathIsSocket do zmiany zachowania lub awaryjnego zakończenia jednostki, jeśli podane ścieżki nie są gniazdami.
- W systemctl dodano polecenie ‘enqueue-marked’, wywołujące metodę D-Bus EnqueueMarkedJobs(). Dotychczas używany do tych celów parametr ‘—marked’ został uznany za przestarzały.
- Do serwisów dodano ustawienie MemoryTHP do zarządzania użyciem dużych stron pamięci w serwisach (THP — Transparent Huge Pages).
- W plikach .delegate systemd-resolved dodano wsparcie dla parametru FirewallMark do oznaczania w stosie sieciowym etykiety zapory ogniowej („firewall mark”) dla generowanego ruchu DNS.
- W systemd-sysupdate dodano polecenie ‘acquire’ do rozdzielenia etapów ładowania oraz instalacji lub aktualizacji. Wprowadzono wsparcie dla oznaczania partycji jako częściowo załadowanych.
- W systemd-vmspawn dodano opcję „—image-format” do wyboru formatu (qcow2 lub raw) obrazu dysku.
- W systemd-inhibit dla opcji „—list” wprowadzono wsparcie formatu „JSON” z możliwością użycia flagów „—what”, „—who”, „—why” i „—mode” do filtrowania wyników.
- W systemd-repart dodano podstawowe wsparcie dla kontroli integralności szyfrowanych partycji, używając dm-integrity.
- W narzędziu systemd-keyutil dodano polecenie ‘extract-certificate’ do wyświetlania zawartości certyfikatów X.509.
- W systemd-sysext i varlinkctl wprowadzono wsparcie dla interaktywnego przechodzenia autoryzacji przy użyciu polkit.
- Dodano politykę polkit, która pozwala na wywołanie systemd-ask-password przez użytkowników bez uprawnień.
- W systemd-importd dodano możliwość ładowania obrazów OCI poleceniem „importctl pull-oci”, które są przechowywane w formie obrazów do zamontowania przez „mstack”.
- Dodano wsparcie dla kolorów SYSTEMD_COLORS=auto-16, SYSTEMD_COLORS=auto-256 i SYSTEMD_COLORS=auto-24bit.
- Udostępniono w pełni funkcjonalne oddzielne pliki wykonywalne systemd-sysusers i systemd-tmpfiles (wcześniej zbierane były okrojone wersje).
- W systemd-oomd dodano „prekill hook”, pozwalający na podłączenie obsługi, która uruchamia się przed wymuszeniem zakończenia procesu z powodu braku pamięci w systemie.
- Wznowiono, ale oznaczono jako przestarzałe, możliwość użycia niesystemowych użytkowników i grup w regułach udev (OWNER=\GROUP=) i ustawieniach systemd-networkd (User=\Group=).
- W systemd-repart wprowadzono nową funkcjonalność narzędzia mkfs.xfs dostępnej w xfsprogs 6.17.0 do wdrożenia początkowej zawartości systemu plików z określonego katalogu.
- Zwiększone wymagania dotyczące minimalnych wersji: jądro Linux 5.4 → 5.10 (zalecane 5.14, a dla pełnej funkcjonalności — 6.6), libidn → libidn2, Python 3.7.0 → 3.9.0, glibc 2.31 → 2.34, OpenSSL 1.1.0 → 3.0.0, cryptsetup 2.0.1/2.3.0 → 2.4.0, elfutils 158 → 177, libblkid 2.24 → 2.37, libseccomp 2.3.1 → 2.4.0.
- Przepisano i uproszczono zasady zapewnienia przenośności i stabilności, w których wzmocniono obowiązki mające na celu uniknięcie widocznych regresji dla użytkowników w publicznych interfejsach.
Źródło: opennet.ru
