Wydanie FreeBSD 14.0

Po dwóch i pół roku od publikacji gałęzi 13.0, wydanie FreeBSD 14.0 zostało sformułowane. Obrazy instalacyjne zostały przygotowane dla architektur amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 i riscv64. Dodatkowo przygotowano kompilacje dla systemów wirtualizacji (QCOW2, VHD, VMDK, raw) oraz środowisk chmurowych Amazon EC2, Google Compute Engine i Vagrant. Gałąź FreeBSD 14 będzie ostatnią z obsługą platform 32-bitowych. W FreeBSD 15 pozostanie tylko obsługa systemów 64-bitowych, ale będzie możliwe kompilowanie programów 32-bitowych i korzystanie z trybu COMPAT_FREEBSD32 do uruchamiania 32-bitowych plików wykonywalnych w środowisku 64-bitowym.

Główne zmiany:

  • Dla użytkownika root domyślnym interpretem poleceń jest /bin/sh.
  • Dla urządzeń NVME domyślnie na wszystkich platformach używany jest sterownik nda. Aby przywrócić stary sterownik nvd, w loader.conf przewidziano ustawienie „hw.nvme.use_nvd=1”.
  • Dodano nowe narzędzie „fwget”, które identyfikuje sprzęt wymagający aktualizacji firmware oraz instaluje odpowiednie pakiety z firmware. Obecnie obsługiwane są tylko urządzenia PCI i firmware dla GPU Intel i AMD.
  • Dodano nowe narzędzie base64 do kodowania i dekodowania danych w formacie base64.
  • Dodano narzędzie tcpsso, które pozwala ustawić opcje gniazda dla istniejących połączeń TCP (na przykład można zmienić moduł kontroli przeciążenia lub stos TCP).
  • Jako domyślny agent dostarczania poczty zamiast sendmail używany jest dma (DragonFly Mail Agent). Sendmail pozostaje w podstawowej wersji i został zaktualizowany do wersji 8.17.1.
  • W KTLS, implementacji protokołu TLS działającej na poziomie jądra FreeBSD, dodano wsparcie dla sprzętowego przyspieszenia TLS 1.3 po stronie odbiorczej. Przyspieszenie zapewniono poprzez przeniesienie niektórych operacji związanych z przetwarzaniem zaszyfrowanych pakietów na stronę karty sieciowej.
  • Do pliku konfiguracyjnego jail.conf dodano dyrektywę „.include”, umożliwiającą dołączanie dodatkowych plików podczas ładowania konfiguracji, w których ścieżkach dozwolone jest użycie masek. Rozszerzono parametr sysctl security.bsd.see_jail_proc, dzięki któremu użytkownikom nieautoryzowanym w oddzielnym środowisku jail można teraz zabronić przymusowego kończenia, zmiany priorytetu i debugowania procesów.
  • Programy pw i bsdinstall domyślnie tworzą teraz użytkowników w katalogu „/home”, a nie w „/usr/home”. Symboliczne łącze dla „/home”, wskazujące na „/usr/home”, nie jest już tworzone.
  • Domyślnie wyłączono opcję kompilacji PROFILE — wersje profilowane bibliotek systemowych nie są już dostępne, zamiast nich należy używać sprzętu do profilowania (hwpmc).
  • Włączono kompilację plików wykonywalnych dla architektur 64-bitowych w trybie PIE (Position Independent Executable).
  • W hipernadzorze Bhyve dodano możliwość przekazywania dostępu do TPM (Trusted Platform Module) i GPU (w wirtualnych środowiskach dla chipów AMD i Intel).
  • Implementacja systemu plików ZFS została zaktualizowana do wersji OpenZFS 2.2. Do narzędzia makefs dodano wsparcie dla systemu plików ZFS. Umożliwiono tworzenie puli ZFS związanej z jednym wirtualnym dyskiem vdev.
  • Liczba obsługiwanych rdzeni CPU (parametr MAXCPU) została zwiększona z 256 do 1024 w systemach opartych na architekturze amd64 i arm64.
  • W UFS dla konfiguracji z włączonym rejestrowaniem (soft updates) zezwolono na wykonywanie w tle sprawdzania systemu plików przy użyciu migawków UFS. Do superbloków, map cylindrów i inode dodano dodatkowe kontrole sumy kontrolnej w celu wykrywania uszkodzeń.
  • Dodano system plików tarfs, który można używać z archiwami tar skompresowanymi za pomocą zstd.
  • Dodano narzędzie boottrace do śledzenia zdarzeń, które miały miejsce podczas uruchamiania oraz zamykania systemu.
  • Dodano parametr konfiguracji jądra FIRECRACKER, aby umożliwić uruchamianie FreeBSD w systemie wirtualizacji Firecracker, zaprojektowanym do uruchamiania maszyn wirtualnych przy minimalnych nakładach. Czas ładowania jądra FreeBSD 14 w systemie Firecracker został skrócony do 25 milisekund, co pozwala na uruchamianie środowisk z FreeBSD w miarę potrzeby w celu realizacji infrastruktury bezserwerowych obliczeń.
  • W bootloaderze napisanym w języku Lua, w specjalnym środowisku sandbox, wprowadzono wsparcie dla wykonywania plików lua umieszczonych w katalogu loader_conf_files.
  • Rozszerzono wsparcie NFS. Dodano nową opcję montowania „syskrb5” dla wsparcia Kerberos w NFSv 4.1/4.2, a także wprowadzono wsparcie dla operacji ExchangeID. Umożliwiono uruchamianie nfsd, nfsuserd, mountd, gssd i rpc.tlsservd w izolowanym środowisku sieciowym vnet.
  • W skrypcie growfs wprowadzono możliwość umieszczania partycji swap na końcu rozszerzalnego obszaru na dysku.
  • Dodano nowy dostawca DTrace kinst (dtrace_kinst), umożliwiający śledzenie struktur jądra.
  • W podsystemie kryptograficznym jądra dodano wsparcie dla algorytmu szyfrowania XChaCha20-Poly1035 AEAD oraz API do wykorzystania krzywej eliptycznej curve25519 (dla WireGuard).
  • Skrócono czas ponownego uruchamiania. Dodano parametr sysctl kern.reboot_wait_time, za pomocą którego można zmienić opóźnienie przed faktycznym ponownym uruchomieniem po wyświetleniu wszystkich komunikatów diagnostycznych na konsoli. Domyślnie opóźnienie zostało usunięte.
  • Do jądra dodano podsystem timerfd, ułatwiający portowanie programów z Linuxa.
  • Dodano sysctl machdep.mitigations.zenbleed.enable do zablokowania podatności Zenbleed w procesorach AMD Zen2.
  • W wpa_supplicant i hostapd dodano wsparcie dla Wi-Fi 6. W sterowniku iwlwifi zapewniono współpracę z chipami Intela obsługującymi Wi-Fi 6E AX411/AX211/AX210.
  • Dla jądra w systemach amd64 zapewniono wsparcie dla narzędzi AddressSanitizer i MemorySanitizer z projektu LLVM.
  • W skryptach rc.d dozwolone jest użycie metody status, nawet jeśli w skrypcie nie jest określona nazwa programu (procname) i plik PID.
  • Prędkość przesyłania danych przez port szeregowy w jądrze, bootloaderach i przestrzeni użytkownika domyślnie zwiększona z 9600 do 115200 bps. Ton dzwonka domyślnie ustawiony na 800Hz. Zapewniono integrację z devd w celu odtwarzania dzwonka przez kartę dźwiękową. Dla konsoli vt dzwonek został domyślnie wyłączony (aby go włączyć, należy wykonać polecenia „sysctl kern.vt.enable_bell=1” i „kbdcontrol -b normal”).
  • Poprawiono wsparcie dla architektury przyspieszenia sprzętowego operacji sieciowych NXP DPAA2 (Data Path Acceleration Architecture Gen2).
  • Dodano sterownik igc dla kontrolerów Ethernet Intel I225, obsługujący prędkość 2.5 Gbps.
  • Domyślnie włączono ustawienie net.inet.tcp.nolocaltimewait, które wyłącza tworzenie zapisów timewait dla połączeń TCP zakończonych po stronie lokalnej.
  • Rozszerzono i domyślnie włączono wsparcie dla protokołu komunikacyjnego Netlink (RFC 3549), stosowanego w Linuxie do organizowania interakcji jądra z procesami w przestrzeni użytkownika. Niektóre narzędzia sieciowe przekształcono na korzystanie z Netlink.
  • W filtrze pakietów pf zapewniono zgodność z składnią i zachowaniem operacji normalizacji pakietów (scrubbing) wersji pf z OpenBSD. W pfsync zaimplementowano możliwość korzystania z transportu IPv6. Format pakietów pfsync został rozszerzony, aby wspierać kolejkowanie, normalizację pakietów oraz zasady route-to.
  • Do interfejsu sieciowego if_stf (IPv6 przez IPv4) dodano wsparcie IPv6 Szybkie wdrażanie (RFC 5969). Domyślnie wyłączono tryb IPv6 nodeinfo (RFC 4620).
  • Domyślnie włączono parametr sysctl net.inet.tcp.nolocaltimewait, który wyłącza tworzenie wpisów ze stanem timewait dla lokalnie przerwanych połączeń TCP.
  • Domyślnie dla TCP wprowadzono mechanizm zarządzania przeciążeniem sieci CUBIC zamiast NewReno, co pozwoliło na szersze wykorzystanie dostępnej przepustowości.
  • W IPv4 wyłączono wysyłanie pakietów rozgłoszeniowych do zerowego adresu podsieci, chyba że adres ten został wyraźnie zadeklarowany jako adres rozgłoszeniowy. Zmiana ta umożliwia użycie dla hostów adresów kończących się na „.0”.
  • Zmodyfikowano ustawienia OpenSSH: w scp domyślnie używany jest protokół SFTP zamiast scp/rcp, wyłączono wsparcie dla podpisów RSA/SHA-1, parametry VerifyHostKeyDNS i X11Forwarding ustawiono na „no”, usunięto dyrektywę VersionAddendum, usunięto wsparcie dla ustawień HPN.
  • Do narzędzia date dodano opcję „-z” do konwersji stref czasowych.
  • Do narzędzia diff dodano opcję „—color” dla lepszej wizualizacji zmian kolorem.
  • Do narzędzia sleep dodano wsparcie dla jednostek miary innych niż sekundy (np. można podać „sleep 1h 30m”).
  • Do narzędzi head i tail dodano wsparcie dla opcji „-q” i „-h”, a także wprowadzono możliwość podawania wielkości z sufiksami w międzynarodowym systemie jednostek SI. W head usunięto ograniczenie na maksymalną liczbę wierszy 2^31.
  • Do narzędzia systat dodano polecenie „iolat” do wyświetlania informacji o opóźnieniach wejścia/wyjścia, obliczonych przez planistę CAM.
  • Biblioteka libncursesw została podzielona na dwie biblioteki libtinfow i libncursesw. Dodano wsparcie dla korzystania w ncurses z bazy terminfo, a nie tylko termcap.
  • Dla architektury aarch64 (arm64) wprowadzono i domyślnie włączono opcję kompilacji COMPAT_LIB32, umożliwiającą kompilację 32-bitowych bibliotek dla systemów ARM64, co pozwala na uruchamianie plików wykonywalnych skompilowanych dla platformy armv7.
  • Ulepszono wsparcie systemów chmurowych. Dla AWS EC2 dodano eksperymentalne kompilacje z systemem plików ZFS i cloud-init. Dla Azure udostępniono obrazy dla architektur arm64 i amd64, do wyboru z UFS lub ZFS. Dodano sterownik dla wirtualnej karty sieciowej gve (Google Virtual NIC).
  • W systemie ACPI dodano wsparcie dla wartości progowej _CR3, która pozwala ustawić temperaturę, po osiągnięciu której system przechodzi w tryb uśpienia (S3).
  • Zaktualizowano wersje oprogramowania i bibliotek dostępnych w systemie podstawowym: OpenSSH 9.5p1, OpenSSL 3.0.12 (wcześniej używano gałęzi 1.1.1), awk 2021072, bc 6.6.0, libbsdxml 2.4.7, libfido2 1.13.0, tcpdump 4.99.4, libpcap 1.10.4, xz 5.4.3, zlib 1.3, zstd 1.5.2. Realizacja narzędzia objdump została zastąpiona przez llvm-objdump. Kompilator Clang zaktualizowano do gałęzi 16.
  • Przeprowadzono czyszczenie przestarzałych systemów:
    • Z systemu podstawowego usunięto wsparcie dla jednorazowych haseł OPIE (można ponownie użyć, instalując port security/opie).
    • Usunięto sterowniki kart dźwiękowych z interfejsem ISA.
    • Usunięto narzędzia fmtree i minigzip.
    • Usunięto komponenty ATM w netgraph (NgATM).
    • Usunięto proces w tle telnetd (można użyć portu net/freebsd-telnetd).
    • Usunięto klasę VINUM w geom.
    • Usunięto przestarzałe sterowniki amr, iscsi_initiator, iir, mn, mly, nlmrsa i twa.
    • Z jąder GENERIC i MINIMAL usunięto parametr VESA.
    • Usunięto wsparcie dla asymetrycznych operacji kryptograficznych z działającego na poziomie jądra frameworku kryptograficznego OCF (Open Cryptographic Framework).
    • Ogłoszono przestarzałe narzędzie mergemaster, które należy zastąpić przez etcupdate.
    • Usunięto narzędzie portsnap (do wydobywania portów należy używać „git clone https://git.FreeBSD.org/ports.git /usr/ports”).
    • Zakończono tworzenie kompilacji dla architektury armv6.
    • Usunięto wsparcie dla architektury MIPS.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster