Po dziewięciu miesiącach prac powstało wydanie FreeBSD 14.4. Obrazy instalacyjne zostały przygotowane dla architektur amd64, i386, aarch64, armv7, powerpc, powerpc64 oraz riscv64. Dodatkowo przygotowano wersje dla systemów wirtualizacji (QCOW2, VHD, VMDK, raw) oraz środowisk chmurowych Amazon EC2, Google Compute Engine i Vagrant.
Następna aktualizacja FreeBSD 14.5 planowana jest na wrzesień 2026 roku. Wsparcie dla bieżącej wersji FreeBSD 14.4 będzie realizowane do 31 grudnia 2026 roku, a dla poprzedniej wersji FreeBSD 14.3 do 30 czerwca 2026 roku. Ogólnie rzecz biorąc, gałąź FreeBSD 14 będzie wspierana do 30 listopada 2028 roku, a gałąź FreeBSD 13.x do 30 kwietnia 2026 roku. Równolegle rozwijana jest gałąź FreeBSD 15, której następne wydanie (15.1) zaplanowane jest na 2 czerwca 2026 roku.
Główne zmiany w FreeBSD 14.4:
- Dodano narzędzie sndctl do zarządzania ustawieniami kart dźwiękowych.
- Narzędzie swapon zyskało wsparcie dla zaszyfrowanych plików wymiany, dla których za pomocą fstab można używać urządzeń md z sufiksem „.eli”.
- Do narzędzia nuageinit, które wykonuje inicjalizację maszyn wirtualnych, dodano wsparcie dla cloud-init, konfiguracji sieciowej oraz zarządzania pakietami. Dla zgodności z cloud-init dodano komendy ‘runcmd’, ‘packages’, ‘fqdn’, ‘hostname’, ‘sudo’, ‘write_files’, ‘nameservers’, ‘tzsetup’ oraz ‘doas’. Zrealizowano pełnoprawny parser formatu YAML. Włączono prowadzenie logów. Wdrożono komendy „chpasswd”, ‘wakeonlan’, ‘set-name’ i ‘match.driver’.
- Czcionka konsolowa spleen została zaktualizowana do wersji 2.2.0 i rozszerzona o dodatkowe znaki (długie myślniki, krótkie myślniki, kreski, nawiasy kątowe, biały kwadrat, krzyż oraz podwójny krzyż). Poprawiono wyrównanie znaków na ekranach o wysokiej gęstości pikseli. Czcionka konsolowa gallant, która teraz obejmuje ponad 4300 glifów, zyskała wsparcie dla cyrylicy oraz zestawów z symbolami matematycznymi, strzałkami, walutami i ramkami.
- W skład dołączono system plików 9P (p9fs), który można wykorzystać z urządzeniami virtio-9p i hiperwizorem Bhyve do organizacji dostępu z maszyn wirtualnych do zawartości systemu plików środowiska hosta. Aby załadować sterownik w loader.conf, należy zastosować ustawienie „virtio_p9fs_load=YES”.
- W systemie plików tarfs uporządkowano możliwość pracy z plikami o rozmiarze większym niż 4 GB.
- W FS unionfs i nullfs wzmocniono kontrolę głównych vnode podczas przetwarzania ścieżek z „..”, aby zablokować potencjalne luki, które umożliwiają wyjście poza główny katalog środowiska jail.
- W subsystemie Jail ograniczono dostęp nieuprzywilejowanych użytkowników z rodzicielskiego Jail do wykonywania operacji debugowania, konfigurowania harmonogramu i wysyłania sygnałów do procesów działających w podrzędnych Jail. Aby wykonać takie operacje, wprowadzono osobne uprawnienia PRIV_SCHED_DIFFJAIL, PRIV_DEBUG_DIFFJAIL i PRIV_SIGNAL_DIFFJAIL. Aby przywrócić wcześniejsze zachowanie w zarządzaniu procesami w Jail, dodano ustawienie „allow.nounprivileged_parent_tampering”.
- W subsystemie Jail dodano obsługę parametrów „met” i „env”, które pozwalają na przypisywanie dowolnych metadanych tekstowych i danych konfiguracyjnych do środowisk Jail. Parametry te mogą być określone podczas tworzenia Jail, zmieniane poleceniem „jail -cm” i przeglądane poleceniem jls. Na przykład, ‚jail -cm … meta="tag1=value1 tag2=value2" env="configuration"‘. W celu ograniczenia maksymalnego rozmiaru danych dla parametrów wprowadzono ustawienie sysctl „security.jail.meta_maxbufsize”.
- Do narzędzia ngctl dodano flagę „-j” do uruchamiania poleceń we wskazanym środowisku Jail. Dodana flaga pozwala na manipulację węzłami netgraph w izolowanych środowiskach, w których nie zainstalowano narzędzia ngctl.
- Rozszerzono możliwości narzędzia mdo, które umożliwia uruchamianie poleceń jako inny użytkownik, analogicznie do narzędzia „su”, ale z wykorzystaniem zamiast setuid modułu jądra mac_do i systemowego wywołania setcred. W nowej wersji wprowadzono opcje do zarządzania identyfikatorami użytkowników i grup w uruchamianych procesach: „-k” do zachowania bieżących użytkowników; „-g” i „-G” do ustawiania głównych i dodatkowych grup; „-s” do zmiany grup dodatkowych; „—euid”, „—ruid”, „—svuid”, „—egid”, „—rgid” i „—svgid” do nadpisania ustalonych identyfikatorów.
- Do narzędzia kadmin, przeznaczonego do zarządzania Kerberos, dodano opcję „-f” do eksportu bazy danych Heimdal KDC w formacie kompatybilnym z MIT KDC, co pozwala na migrację z Heimdal Kerberos do MIT Kerberos bez konieczności pełnego przetwarzania bazy danych.
- W dostarczonej w podstawowym systemie ograniczonej wersji menedżera pakietów pkg(7) parsowanie opcji jest zharmonizowane z pełną wersją narzędzi pkg(8). Kolejność opcji dla poleceń w pkg(7) musi teraz odpowiadać zachowaniu pkg(8), na przykład zamiast «pkg -f bootstrap» należy podać «pkg bootstrap -f».
- W instalatorze bsdinstall wycofano wsparcie dla instalacji z wykorzystaniem systemu plików ZFS na dyskach z MBR (ZFS można używać tylko na dyskach z GPT). Zabezpieczono kopiowanie bootloadera loader.efi do wszystkich ESP (EFI System Partition) utworzonych na dyskach z ZFS, na wypadek, gdyby główny dysk uległ awarii.
- W narzędziu freebsd-update zapewniono surową kolejność instalacji wspólnych bibliotek: libsys, libc, libthr i następnie pozostałe, co eliminuje problemy przy aktualizacji z FreeBSD 14.x do gałęzi 15.x.
- Do narzędzia newfs dodano flagę «-u» do wyłączenia domyślnego mechanizmu «soft updates» oraz logowania dla systemu plików UFS2.
- W bibliotekach PAM (Pluggable Authentication Modules) zapewniono wyszukiwanie modułów w katalogu «${LOCALBASE}\/lib\/security» oprócz katalogu «${LOCALBASE}\/lib».
- W stosie bezprzewodowym net80211 dodano wsparcie dla kanałów VHT160 i VHT80P80, używanych w nowoczesnych punktach dostępowych.
- Rozszerzono wsparcie dla sprzętu. W sterowniku iwlwifi dla bezprzewodowych adapterów Intel dodano wsparcie ACPI. W sterownikach ix i ixv dodano wsparcie dla rodziny kart sieciowych Intel Ethernet E610 2.5G\/5G\/10G. W sterownikach mfi i mrsas dodano wsparcie dla kontrolerów RAID Fujitsu SAS 6Gbit\/s 1GB (D3116), wykorzystywanych w serwerach Fujitsu PRIMERGY.
- Do obrazów kart SD dodano wsparcie dla płyt Raspberry Pi Zero 2W.
- Proces w tle blacklistd, odpowiedzialny za dynamiczną blokadę portów sieciowych w celu ochrony przed atakami DoS, został zaktualizowany i przemianowany na blocklistd.
- Do podstawowego systemu dodano pakiet związków Lua dla libyaml.
- OpenSSH zaktualizowano z wersji 9.9p2 do 10.0p2 z domyślnym włączeniem hybrydowego algorytmu mlkem768x25519-sha256, odpornego na ataki z wykorzystaniem komputerów kwantowych.
- Zaktualizowano wersje komponentów zewnętrznych: OpenZFS 2.2.9 (wcześniej 2.2.7), OpenSSL 3.0.16, SQLite 3.50.4, unbound 1.24.1, libucl 0.9.2, expat 2.7.3, libyaml 0.2.5, libarchive 3.8.5, xz 5.8.2, less 685, bmake 20251111, bc 7.1.0.
- Do podstawowych nośników instalacyjnych (bootonly) dodano pakiety z firmwarem dla urządzeń bezprzewodowych, umożliwiające korzystanie z połączenia bezprzewodowego w celu pobierania plików instalacyjnych z sieci.
- Dodano wykonawcze plik sbin/ipfw15, zbudowane z nowym KBI (Kernel Binary Interface) w celu zapewnienia zgodności z jądrem FreeBSD 15. Oryginalne narzędzie ipfw samo określa obecność nowego KBI i uruchamia ipfw15 w razie potrzeby, aby poprawnie załadować zasady filtrowania pakietów podczas aktualizacji do FreeBSD 15.
- Wsparcie dla protokołu routingu RIP (routed, rtquery, route6d, rip6query) ogłoszono przestarzałe i planowane do usunięcia. Zamiast routed zaleca się korzystanie z pakietów 'bird' lub 'quagga' z kolekcji portów.
- Ogłoszona przestarzała wbudowana w jądro implementacja sekwencera MIDI.
- Usunięto kod służący do zgodności z wersjami filtra pakietów ipfw, dostarczanymi przed wydaniem FreeBSD 8.
Źródło: opennet.ru
