systemd menedżer systemu wersja 251

Po pięciu miesiącach prac zaprezentowano wydanie menedżera systemu Systemd 251.

Główne zmiany:

  • Zwiększono wymagania systemowe. Minimalna obsługiwana wersja jądra Linuksa została zwiększona z 3.13 do 4.15. Do działania wymagany jest timer CLOCK_BOOTTIME. Do kompilacji potrzebny jest kompilator obsługujący standard C11 i rozszerzenia GNU (w przypadku plików nagłówkowych nadal używany jest standard C89).
  • Dodano eksperymentalne narzędzie systemd-sysupdate do automatycznego wykrywania, pobierania i instalowania aktualizacji przy użyciu atomowego mechanizmu zastępowania partycji, plików lub katalogów (używane są dwie niezależne partycje/pliki/katalogi, z których jedna zawiera bieżący zasób roboczy, a druga instaluje następna aktualizacja, po której następuje zamiana sekcji/plików/katalogów).
  • Wprowadzono nową wewnętrzną bibliotekę współdzieloną libsystemd-core- .so, który jest instalowany w katalogu /usr/lib/systemd/system i odpowiada istniejącej bibliotece libsystemd-shared- .Więc. Korzystanie z biblioteki współdzielonej libsystemd-core- .so pozwala zmniejszyć całkowity rozmiar instalacji poprzez ponowne użycie kodu binarnego. Numer wersji można określić za pomocą parametru „shared-lib-tag” w systemie kompilacji meson i umożliwia to dystrybucjom dostarczanie wielu wersji tych bibliotek jednocześnie.
  • Zaimplementowano transfer zmiennych środowiskowych $MONITOR_SERVICE_RESULT, $MONITOR_EXIT_CODE, $MONITOR_EXIT_STATUS, $MONITOR_INVOCATION_ID i $MONITOR_UNIT z informacji o monitorowanej jednostce do procedur obsługi OnFailure/OnSuccess.
  • W przypadku jednostek zaimplementowano ustawienie ExtensionDirectories, które można wykorzystać do zorganizowania ładowania komponentów System Extension ze zwykłych katalogów, a nie z obrazów dysków. Zawartość katalogu rozszerzeń systemu jest nakładana przy użyciu OverlayFS i służy do rozszerzania hierarchii katalogów /usr/ i /opt/ oraz dodawania dodatkowych plików w czasie wykonywania, nawet jeśli wspomniane katalogi są zamontowane w trybie tylko do odczytu. Polecenie „portablectl załącznik --extension=” dodało także obsługę określania katalogu.
  • W przypadku jednostek wymuszonych terminacji przez procedurę obsługi systemd-oomd z powodu braku pamięci w systemie przesyłany jest atrybut „oom-kill”, a liczba wymuszonych terminacji jest odzwierciedlana w atrybucie „user.oomd_ooms”.
  • Dla jednostek dodano nowe specyfikatory ścieżki %y/%Y, odzwierciedlające znormalizowaną ścieżkę do jednostki (z rozwinięciem dowiązań symbolicznych). Dodano także specyfikatory %q do podstawienia wartości PRETTY_HOSTNAME i %d do podstawienia CREDENTIALS_DIRECTORY.
  • W nieuprzywilejowanych usługach uruchamianych przez zwykłego użytkownika przy użyciu flagi „--user” zmiany ustawień RootDirectory, MountAPIVFS, ExtensionDirectories, *Capabilities*, ProtectHome, *Directory, TemporaryFileSystem, PrivateTmp, PrivateDevices, PrivateNetwork, NetworkNamespacePath, PrivateIPC, IPCNamespacePath , PrivateUsers, ProtectClock są dozwolone, ProtectKernelTunables, ProtectKernelModules, ProtectKernelLogs i MountFlags. Ta funkcja jest dostępna tylko wtedy, gdy w systemie włączono przestrzenie nazw użytkowników.
  • Ustawienie LoadCredential umożliwia określenie nazwy katalogu jako argumentu. W takim przypadku podejmowana jest próba załadowania poświadczeń ze wszystkich plików w określonym katalogu.
  • W systemctl w parametrze „—timestamp” stało się możliwe określenie flagi „unix” umożliwiającej wyświetlanie czasu w formacie epokowym (liczba sekund od 1 stycznia 1970 r.).
  • „Status systemctl” implementuje flagę „old-kernel”, która jest wyświetlana, jeśli jądro załadowane w sesji ma starszy numer wersji niż jądro podstawowe dostępne w systemie. Dodano także flagę „unmerged-usr”, aby określić, że zawartość katalogów /bin/ i /sbin/ nie jest tworzona poprzez dowiązania symboliczne do /usr.
  • Dla generatorów uruchamianych przez proces PID 1 dostępne są nowe zmienne środowiskowe: $SYSTEMD_SCOPE (uruchomienie z systemu lub usługi użytkownika), $SYSTEMD_IN_INITRD (uruchomienie ze środowiska initrd lub hosta), $SYSTEMD_FIRST_BOOT (wskaźnik pierwszego rozruchu), $SYSTEMD_VIRTUALIZATION ( obecność wirtualizacji lub uruchomienie w kontenerze) i $SYSTEMD_ARCHITECTURE (architektura, dla której zbudowano jądro).
  • Procedura obsługi PID 1 umożliwia ładowanie parametrów poświadczeń systemowych z interfejsu QEMU fw_cfg lub poprzez określenie parametru systemd.set_credential w wierszu poleceń jądra. Dyrektywa LoadCredential zapewnia automatyczne wyszukiwanie referencji w katalogach /etc/credstore/, /run/credstore/ i /usr/lib/credstore/, jeśli jako argument podano ścieżkę względną. Podobne zachowanie dotyczy dyrektywy LoadCredentialEncrypted, która dodatkowo sprawdza katalogi /etc/credstore.encrypted/, /run/credstore.encrypted/ i /usr/lib/credstore.encrypted/.
  • Możliwość eksportu w formacie JSON została ustabilizowana w systemd-journald. Polecenia „journalctl --list-boots” i „bootctl list” obsługują teraz dane wyjściowe w formacie JSON (flaga „--json”).
  • Do udev dodano nowe pliki z bazami danych hwdb, zawierające informacje o urządzeniach przenośnych (PDA, kalkulatorach itp.) oraz urządzeniach służących do tworzenia dźwięku i obrazu (konsolety DJ, klawiatury).
  • Do udevadm dodano nowe opcje „--prioritized-subsystem” w celu ustawienia priorytetu następujących systemów (używanych w systemd-udev-trigger.service do przetwarzania najpierw urządzeń blokowych i modułów TPM), „-type=all”, „-initialized -match” i „--initialized-nomatch”, aby wybrać zainicjowane lub niezainicjowane urządzenia, „udevadm info -tree”, aby wyświetlić drzewo obiektów w hierarchii /sys/. udevadm dodaje także nowe polecenia „wait” i „lock”, które służą do czekania na pojawienie się wpisu urządzenia w bazie danych i blokowania urządzenia blokowego podczas formatowania lub zapisywania tablicy partycji.
  • Dodano nowy zestaw dowiązań symbolicznych do urządzeń /dev/disk/by-diskseq/ do identyfikacji urządzeń blokowych po numerze seryjnym („diskseq”).
  • Dodano obsługę parametru „Firmware” do plików .link w sekcji [Match] w celu dopasowania urządzenia zgodnie z opisem oprogramowania sprzętowego.
  • W systemie systemd-networkd dla tras emisji pojedynczej skonfigurowanych w sekcji [Route] wartość zakresu została domyślnie zmieniona na „link”, aby dopasować zachowanie polecenia „ip Route”. Do sekcji [Bridge] dodano parametr Izolowany=true|false umożliwiający skonfigurowanie w jądrze atrybutu o tej samej nazwie dla mostów sieciowych. W sekcji [Tunnel] dodano parametr Zewnętrzny umożliwiający ustawienie typu tunelu na zewnętrzny (tryb gromadzenia metadanych). W sekcji [DHCPServer] dodano parametry BootServerName, BootServerAddress i BootFilename umożliwiające skonfigurowanie adresu serwera, nazwy serwera i nazwy pliku startowego wysyłanych przez serwer DHCP podczas uruchamiania w trybie PXE. W sekcji [Sieć] usunięto parametr L2TP, zamiast którego w plikach .netdev można zastosować nowe ustawienie Local w połączeniu z interfejsem L2TP.
  • Dodano nową jednostkę „systemd-networkd-wait-online@” .service”, którego można użyć do oczekiwania na pojawienie się określonego interfejsu sieciowego.
  • Możliwe jest teraz wykorzystanie plików .netdev do tworzenia wirtualnych urządzeń WLAN, które można skonfigurować w sekcji [WLAN].
  • W plikach .link/.network sekcja [Match] implementuje parametr Kind do dopasowywania według typu urządzenia („bond”, „bridge”, „gre”, „tun”, „veth”).
  • Systemd-resolved został uruchomiony na wcześniejszym etapie rozruchu, łącznie z uruchomieniem z initrd, jeśli w obrazie initrd jest obecny systemd-resolved.
  • systemd-cryptenroll dodaje opcję --fido2-credential-algorithm, aby wybrać algorytm szyfrowania poświadczeń, oraz opcję --tpm2-with-pin, aby kontrolować wprowadzanie kodu PIN podczas odblokowywania partycji przy użyciu modułu TPM. Podobna opcja tpm2-pin została dodana do /etc/crypttab. Podczas odblokowywania urządzeń za pomocą modułu TPM ustawienia są szyfrowane w celu ochrony przed przechwyceniem kluczy szyfrujących.
  • systemd-timesyncd dodaje interfejs API D-Bus do dynamicznego pobierania informacji z serwera NTP za pośrednictwem IPC.
  • Aby określić potrzebę wyprowadzania kolorów, wszystkie polecenia oprócz wcześniej sprawdzonych zmiennych NO_COLOR, SYSTEMD_COLORS i TERM sprawdzają zmienną środowiskową COLORTERM.
  • System kompilacji Meson implementuje opcję install_tag do selektywnego montażu i instalacji niezbędnych komponentów: pam, nss, devel (pkg-config), systemd-boot, libsystemd, libudev. Dodano opcję kompilacji default-compression, aby wybrać algorytm kompresji dla systemd-journald i systemd-coredump.
  • Dodano eksperymentalne ustawienie „reboot-for-bitlocker” do sd-boot w pliku Loader.conf w celu uruchomienia systemu Microsoft Windows z funkcją BitLocker TPM.

Źródło: opennet.ru

Dodaj komentarz