Po roku prac rozwojowych opublikowano wydanie FreeBSD 13.1. Obrazy instalacyjne są dostępne dla architektur amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 i riscv64. Dodatkowo przygotowano zestawy dla systemów wirtualizacji (QCOW2, VHD, VMDK, raw) oraz chmur Amazon EC2, Google Compute Engine i Vagrant.
W nowej wersji:
- Zaprezentowano sterownik iwlwifi dla bezprzewodowych kart Intel z obsługą nowych chipów i standardu 802.11ac. Sterownik oparty jest na sterowniku dla systemu Linux oraz kodzie z podsystemu net80211 w Linuxie, a jego działanie w FreeBSD zapewnia warstwa linuxkpi.
- Wdrożenie systemu plików ZFS zaktualizowano do wydania OpenZFS 2.1 z obsługą technologii dRAID (Distributed Spare RAID) oraz znacznymi optymalizacjami wydajności.
- Dodano nowy skrypt rc zfskeys, który umożliwia na etapie rozruchu automatyczne odszyfrowanie zaszyfrowanych partycji ZFS.
- W stosie sieciowym zmieniono działanie dla adresów IPv4 z zerowym ostatnim numerem (x.x.x.0), które teraz można używać jako hosta, a domyślnie nie jest do niego stosowane szerokie wysyłanie. Starą metodę można przywrócić za pomocą sysctl net.inet.ip.broadcast_lowest.
- Dla architektur 64-bitowych domyślnie włączono kompilację podstawowego systemu z użyciem trybu PIE (Position Independent Executable). Umożliwiono również dezaktywację tej funkcji przy pomocy opcji WITHOUT_PIE.
- Dodano możliwość wywołania chroot przez procesy nieuprzywilejowane, dla których ustawiono flagę NO_NEW_PRIVS. Tryb można włączyć za pomocą sysctl security.bsd.unprivileged_chroot. Do narzędzia chroot dodano opcję "-n", która ustawia flagę NO_NEW_PRIVS dla procesu przed jego izolacją.
- Do instalatora bsdinstall dodano tryb automatycznej edycji partycji dyskowych, który pozwala dla różnych nazw dysków podłączać skrypty partycjonowania, działające bez ingerencji użytkownika. Proponowana funkcjonalność ułatwia tworzenie całkowicie automatycznych nośników instalacyjnych dla systemów maszyn wirtualnych z różnymi dyskami.
- Poprawiono obsługę uruchamiania na systemach UEFI. W bootloaderze dodano automatyczne ustawienie parametru copy_staging w zależności od możliwości uruchamianego jądra.
- Przeprowadzono prace mające na celu zwiększenie wydajności bootloadera, nvme, rtsold, inicjalizacji generatora liczb losowych oraz kalibracji zegara, co pozwoliło na skrócenie czasu uruchamiania.
- Dodano wsparcie dla NFS działającego przez szyfrowany kanał komunikacyjny oparty na TLS 1.3. Nowa implementacja wykorzystuje stos TLS dostarczany przez jądro, co pozwala na wykorzystanie sprzętowego wsparcia w akceleracji. Procesy rpc.tlsclntd i rpc.tlsservd z implementacją klienta i serwera NFS-over-TLS są domyślnie włączone dla architektur amd64 i arm64.
- Dla NFSv4.1 i 4.2 wprowadzono opcję montowania nconnect, określającą liczbę nawiązanych połączeń serwerem TCP. Pierwsze połączenie jest używane do małych wiadomości RPC, a pozostałe do równoważenia ruchu z przesyłanymi danymi.
- Dla serwera NFS dodano sysctl vfs.nfsd.srvmaxio, umożliwiający zmianę maksymalnego rozmiaru bloku wejścia/wyjścia (domyślnie 128Kb).
- Poprawiono wsparcie sprzętu. W sterowniku igc dodano wsparcie dla kontrolera Ethernet Intel I225. Ulepszono wsparcie dla systemów Big-endian. Dodano sterownik mgb dla kontrolera Ethernet Microchip devices LAN7430 PCIe Gigabit Ethernet.
- Sterownik ice, używany dla kontrolerów Ethernet Intel E800, zaktualizowano do wersji 1.34.2-k, która dodaje wsparcie dla odbicia w logach systemowych wydarzeń firmware oraz wprowadza wstępną implementację rozszerzeń protokołu DCB (Data Center Bridging).
- Obrazy dla Amazon EC2 domyślnie obsługują uruchamianie za pomocą UEFI zamiast BIOS.
- W hipernadzorze bhyve zaktualizowano komponenty do emulacji dysków NVMe, co zapewnia wsparcie specyfikacji NVMe 1.4. Rozwiązano problemy z NVMe iovec przy intensywnym wejściu/wyjściu.
- Biblioteka CAM została przeniesiona na użycie wywołania realpath podczas przetwarzania nazw urządzeń, co pozwala na stosowanie symlinków do urządzeń w narzędziach camcontrol i smartctl. W camcontrol rozwiązano problemy z ładowaniem firmware na urządzenia.
- Zaprzestano kompilacji narzędzia svnlite w systemie podstawowym.
- Dodano wersje Linux oprogramowania do obliczania sum kontrolnych (md5sum, sha1sum itp.), które są realizowane przez wywołanie dostępnych narzędzi BSD (md5, sha1 itp.) z opcją „-r”.
- W narzędziu mpsutil dodano wsparcie dla zarządzania NCQ oraz wyświetlanie informacji o adapterze.
- W /etc/defaults/rc.conf domyślnie włączono stosowanie opcji „-i” przy wywoływaniu procesów rtsol i rtsold, odpowiedzialnych za wysyłanie wiadomości ICMPv6 RS (Router Solicitation). Wskazana opcja wyłącza losowe opóźnienie przed wysłaniem wiadomości.
- Dla architektur riscv64 i riscv64sf włączono kompilację bibliotek z ASAN (adres sanitarny), UBSAN (sanalizacja nieokreślonego zachowania), OpenMP oraz OFED (Open Fabrics Enterprise Distribution).
- Rozwiązano problemy z identyfikacją obsługiwanych przez procesory ARMv7 i ARM64 metod sprzętowego przyspieszania operacji kryptograficznych, co pozwoliło znacznie przyspieszyć działanie algorytmów aes-256-gcm oraz sha256 na systemach ARM.
- Dla architektury powerpc do głównej kompozycji dołączono debuger LLDB, rozwijany przez projekt LLVM.
- Biblioteka OpenSSL została zaktualizowana do wersji 1.1.1o i rozszerzona o zastosowanie optymalizacji assemblerowych dla architektur powerpc, powerpc64 i powerpc64le.
- Serwer i klient SSH zaktualizowane do OpenSSH 8.8p1 z wyłączeniem wsparcia dla cyfrowych podpisów rsa-sha oraz wsparciem dla dwuskładnikowej autoryzacji przy użyciu urządzeń opartych na protokole FIDO/U2F. Dodano nowe typy kluczy „ecdsa-sk” oraz „ed25519-sk”, które wykorzystują algorytmy cyfrowego podpisu ECDSA i Ed25519, w połączeniu z haszem SHA-256.
- Zaktualizowane wersje aplikacji zewnętrznych wchodzących w skład systemu bazowego: awk 20210215 (z poprawkami wyłączającymi wykorzystanie lokalizacji dla zakresów i poprawiającymi kompatybilność z gawk i mawk), zlib 1.2.12, libarchive 3.6.0.
Źródło: opennet.ru
