Po sześciu miesiącach prac w końcu wydano wersję FreeBSD 14.1. Obrazy instalacyjne przygotowano dla architektur amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 i riscv64. Dodatkowo przygotowano pakiety dla systemów wirtualizacji (QCOW2, VHD, VMDK, raw) oraz środowisk chmurowych Amazon EC2, Google Compute Engine i Vagrant.
Główne zmiany:
- Przeprowadzono prace nad ulepszeniem stosu dźwiękowego. Wprowadzono możliwość odłączania urządzeń audio w trybie asynchronicznym, co jest niezbędne na przykład do gorącego odłączania kart dźwiękowych z interfejsem USB. Usunięto ramy snd_clone oraz powiązane z nimi parametry sysctl, co pozwoliło uprościć podsystem audio. Zamiast oddzielnych plików urządzeń dla każdego kanału audio (/dev/dspX.Y) teraz tworzony jest tylko podstawowy plik urządzenia (/dev/dspX).
- Funkcje pracy z ciągami znaków i pamięcią w libc zostały zoptymalizowane przy użyciu instrukcji SIMD na systemach z architekturą AMD64. Zaproponowano 17 funkcji zoptymalizowanych za pomocą SIMD, a także 9 funkcji przekształconych na wywołania funkcji zoptymalizowanych przez SIMD. W testach wydajność nowych funkcji przy przetwarzaniu ciągów o długości 64 znaków zwiększyła się 5,54 razy.
- Dodano wbudowane wsparcie dla konfiguracji za pomocą cloud-init, narzędzia do konfiguracji systemu na etapie rozruchu. Między innymi wspierane jest tworzenie użytkowników/grup, dodawanie kluczy ssh, konfiguracja parametrów połączenia sieciowego, określenie startowego skryptu nuageinit oraz konfiguracja partycji dyskowych (config-drive). Implementacja jest kompatybilna z OpenStack i wieloma hosting-dostawcami.
- Dla nowych systemów plików UFS2 tworzonych przez narzędzie newfs, domyślnie włączono dziennikowanie (soft updates).
- Udostępniono możliwość kompilacji jądra tylko z wsparciem IPv6 (INET6), bez IPv4 (INET).
- W narzędziu adduser, stosowanym w bsdinstall, zapewniono tworzenie oddzielnego zestawu danych ZFS (partycji, migawki lub klonu) dla katalogu domowego użytkownika, jeśli zestaw danych ZFS jest już używany dla katalogu nadrzędnego. Dodano również możliwość używania szyfrowania katalogów domowych przy użyciu ZFS. Do zarządzania aktywacją tych możliwości w adduser.conf dodano parametry „Zcreate” i „Zencrypt”.
- W „libutil” do funkcji „setusercontext” dodano wsparcie dla ustalania priorytetu procesów na podstawie ustawień z pliku „.login.conf”, umieszczonego w katalogu domowym. Przy ustalaniu priorytetu lub umask dodano wsparcie dla wartości „inherit”, według której priorytet i umask ustawiane są takie same jak w procesie rodzica.
- W narzędziu „date” dodano wsparcie dla precyzji nanosekund, na przykład „date -Ins” wyświetli „2024-06-04T10:20:28,763742224+05:00”, a „date +%N” — „415050400”.
- W narzędziu „dtrace” wdrożono możliwość generowania wyników w formatach, dogodnych do automatycznego parsowania i przeglądania, takich jak JSON, XML i HTML.
- W narzędziu „usbconfig” wbudowano możliwość wyświetlania dodatkowych informacji o urządzeniach USB i producentach, odpowiadających opisom z pliku /usr/share/misc/usb_vendors.
- Do sterownika „ice” dodano wsparcie dla kontrolerów Ethernet Intel E800 o przepustowości 100 Gb/s.
- W sterowniku Ethernet „msc” dodano wsparcie dla ustawiania adresu MAC na podstawie parametru „smsc95xx.macaddr”, przekazywanego przez niektóre modele płyt Raspberry Pi.
- Przeprowadzono prace nad zwiększeniem stabilności sterownika „iwlwifi” dla bezprzewodowych układów Intel.
- Dodano możliwość używania wielu obszarów PCI MCFG w systemach amd64 i i386 do segmentacji przestrzeni adresowej urządzeń PCI.
- Rozszerzono wsparcie dla sprzętu.
- W serwerze NFS „mountd” użyto biblioteki „strunvis” do dekodowania nazw katalogów w pliku „exports”, co pozwoliło na użycie w nazwach katalogów znaków specjalnych, takich jak spacje. Dodano nowe zmienne sysctl kern.rpc.unenc i kern.rpc.tls do konfiguracji NFS-over-TLS.
- W bootloaderze zapewniono odczyt plików konfiguracyjnych wymienionych w zmiennej local_loader_conf_files po plikach konfiguracyjnych określonych w pliku /boot/loader.conf.local. Dodano również możliwość wyciągania ustawień z SMBIOS związanych z identyfikatorami producenta i produktu. Ulepszono określanie konsoli w systemach z EFI. Implementacja ramki bufrowej w bootloaderze może teraz korzystać z konsolowych sterowników wideo.
- Zrealizowano możliwość używania bootloadera LinuxBoot (loader.kboot) do uruchamiania FreeBSD z środowisk opartych na Linuksie w systemach aarch64 i amd64.
- W pliku rc.conf dodano obsługę parametru kdc_restart, który umożliwia automatyczne ponowne uruchomienie kdc (serwera Kerberos 5) w przypadku awaryjnego zakończenia. Dodatkowo dostępny jest parametr kdc_restart_delay, który pozwala ustawić opóźnienie przed ponownym uruchomieniem.
- Domyślnie, w celu zmniejszenia rozmiaru raportów wysyłanych na e-mail, ograniczono dane o zmianach podczas wykonywania okresowo uruchamianych zadań i skryptów sprawdzających bezpieczeństwo. Aby skonfigurować poziom wyjścia, można użyć parametrów daily_diff_flags i security_status_diff_flags w periodic.conf.
- Zaktualizowano wersje komponentów zewnętrznych: Clang/LLVM 18.1.5, OpenZFS 2.2.4, OpenSSH 9.7p1, awk 2024-01-22 (z obsługą UTF-8 i trybem „-csv”), libarchive 3.7.4, sendmail 8.18.1, unbound 1.20.0.
Źródło: opennet.ru
