Po dvou a půl letech od vydání verze 13.0 byl vytvořen release FreeBSD 14.0. Instalace jsou připraveny pro architektury amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, aarch64 a riscv64. Dále byly připraveny sestavy pro virtualizační systémy (QCOW2, VHD, VMDK, raw) a cloudová prostředí Amazon EC2, Google Compute Engine a Vagrant. Řada FreeBSD 14 bude poslední, která bude podporovat 32-bitové platformy. Ve FreeBSD 15 zůstane pouze podpora 64-bitových systémů, ale bude zachována možnost kompilace 32-bitových programů a použití režimu COMPAT_FREEBSD32 k spuštění 32-bitových spustitelných souborů v 64-bitovém prostředí.
Hlavní změny:
- Jako výchozí interpretr příkazů pro uživatele root je nastaven /bin/sh.
- Pro NVME zařízení je jako výchozí na všech platformách použit ovladač nda. Pro návrat ke starému ovladači nvd je v loader.conf k dispozici volba „hw.nvme.use_nvd=1“.
- Byla přidána nová utilita „fwget“, která určuje hardware vyžadující firmware a instaluje odpovídající balíčky s firmwarem. V současné době jsou podporována pouze PCI zařízení a firmware pro GPU Intel a AMD.
- Byla přidána nová utilita base64 pro kódování a dekódování dat ve formátu base64.
- Byla přidána utilita tcpsso, která umožňuje nastavovat možnosti soketu pro existující TCP spojení (např. lze změnit modul kontroly přetížení nebo TCP zásobník).
- Jako výchozí agent pro doručování pošty je použit dma (DragonFly Mail Agent) namísto sendmail. Sendmail zůstal v základní instalaci a byl aktualizován na verzi 8.17.1.
- V KTLS, implementaci protokolu TLS pracující na úrovni jádra FreeBSD, byla přidána podpora hardwarového zrychlení TLS 1.3 na přijímací straně. Zrychlení je zajištěno převedením některých operací spojených se zpracováním šifrovaných paketů na stranu síťové karty.
- Do konfiguračního souboru jail.conf byla přidána direktiva „.include“, která umožňuje při načítání konfigurace připojovat další soubory, v jejichž cestách může být použito maskování. Byl rozšířen sysctl parametr security.bsd.see_jail_proc, pomocí kterého lze neautorizovaným uživatelům v odděleném jail prostředí nyní zakázat nucené ukončení, změnu priority a ladění procesů.
- Programy pw a bsdinstall nyní ve výchozím nastavení vytvářejí uživatele v adresáři „/home“, nikoli v „/usr/home“. Symbolický odkaz pro „/home“, ukazující na „/usr/home“, se již nevytváří.
- Ve výchozím nastavení je zakázána konfigurace PROFILE - profilované verze systémových knihoven již nejsou poskytovány, místo toho je třeba využívat hardwarové profilační nástroje (hwpmc).
- Byla povolena kompilace spustitelných souborů pro 64bitové architektury v režimu PIE (Position Independent Executable).
- Do hypervizoru Bhyve byla přidána možnost pro průchod přístupu k TPM (Trusted Platform Module) a GPU (do virtuálních prostředí pro čipy AMD a Intel).
- Implementace souborového systému ZFS byla aktualizována na verzi OpenZFS 2.2. Do utilitky makefs byla přidána podpora souborového systému ZFS. Byla poskytnuta možnost vytvořit ZFS pool spojený s jedním virtuálním diskem vdev.
- Počet podporovaných jader CPU (parameter MAXCPU) v systémech založených na architekturách amd64 a arm64 byl zvýšen z 256 na 1024.
- Ve UFS pro konfigurace, ve kterých je povolen záznam (soft updates), je povoleno provádět pozadí kontrolu souborového systému pomocí snapshotů UFS. Do superbloků, map skupin válců a inode byly přidány další kontrolní součty pro detekci poškození.
- Byl přidán souborový systém tarfs, který lze použít s tar-archivy komprimovanými pomocí zstd.
- Byl přidán nástroj boottrace pro sledování událostí, které se vyskytly během fáze zavádění a ukončení systému.
- Byla přidána parametr konfigurace jádra FIRECRACKER pro zajištění spuštění FreeBSD v systému virtualizace Firecracker, navrženém pro spuštění virtuálních strojů s minimálními náklady. Doba zavádění jádra FreeBSD 14 běžícího pod Firecracker byla snížena na 25 milisekund, což umožňuje spouštět prostředí s FreeBSD podle potřeby pro realizaci bezserverové infrastruktury.
- V bootloaderu napsaném v jazyce Lua byla v speciálním sandboxovém prostředí implementována podpora pro provádění lua-souborů umístěných v adresáři loader_conf_files.
- Byla rozšířena podpora NFS. Přidána nová možnost montáže „syskrb5“ pro podporu Kerberos v NFSv 4.1/4.2 a byla implementována podpora operace ExchangeID. Byla umožněna možnost spouštění nfsd, nfsuserd, mountd, gssd a rpc.tlsservd v izolovaném síťovém prostředí vnet.
- Ve skriptu growfs byla implementována možnost umístění swap oddílu na konec rozšiřované oblasti na disku.
- Přidán nový DTrace-provající kód kinst (dtrace_kinst), který umožňuje sledování struktur jádra.
- Do kryptosystému jádra byla přidána podpora šifrovacího algoritmu XChaCha20-Poly1035 AEAD, stejně jako API pro použití eliptické křivky curve25519 (pro WireGuard).
- Byla zkrácena doba spuštění. Přidán sysctl-parametr kern.reboot_wait_time, díky němuž můžete změnit zpoždění před skutečným restartováním po výpisu všech diagnostických zpráv do konzole. Ve výchozím nastavení je zpoždění odstraněno.
- Do jádra byla přidána subsystém timerfd, který usnadňuje portování programů z Linuxu.
- Přidán sysctl machdep.mitigations.zenbleed.enable pro blokování zranitelnosti Zenbleed v procesorech AMD Zen2.
- Do wpa_supplicant a hostapd byla přidána podpora Wi-Fi 6. V ovladači iwlwifi byla zajištěna spolupráce s čipy Intel, které podporují Wi-Fi 6E AX411/AX211/AX210.
- Pro jádro na systémech amd64 byla zajištěna podpora nástrojů AddressSanitizer a MemorySanitizer z projektu LLVM.
- Ve skriptech rc.d bylo povoleno použití metody status, i když ve skriptu není definováno jméno programu (procname) a PID-soubor.
- Rychlost přenosu dat přes sériový port v jádře, zaváděčích a v uživatelském prostoru byla ve výchozím nastavení zvýšena z 9600 na 115200 bps. Tone pípnutí je ve výchozím nastavení nastaveno na 800Hz. Bylo zajištěno propojení s devd pro výstup pípnutí přes zvukovou kartu. Pro konzoli vt je pípnutí ve výchozím nastavení vypnuto (pro zapnutí je třeba provést příkazy „sysctl kern.vt.enable_bell=1“ a „kbdcontrol -b normal“).
- Byla vylepšena podpora architektury hardwarového zrychlení síťových operací NXP DPAA2 (Data Path Acceleration Architecture Gen2).
- Byl přidán ovladač igc pro Ethernetové řadiče Intel I225, podporující rychlost 2,5 Gbps.
- Ve výchozím nastavení je aktivována konfigurace net.inet.tcp.nolocaltimewait, která deaktivuje vytváření timewait záznamů pro TCP spojení, která byla ukončena na straně lokálního systému.
- Podpora komunikačního protokolu Netlink (RFC 3549) byla rozšířena a ve výchozím nastavení zahrnuta, jež se používá v Linuxu pro zajištění interakce mezi jádrem a procesy v uživatelském prostoru. Některé síťové utility byly převedeny na využití Netlink.
- V paketovém filtrů pf je zajištěna kompatibilita se syntaxí a chováním operací normalizace paketů (scrubbing) verze pf z OpenBSD. V pfsync byla implementována možnost využití transportu IPv6. Formát paketů pfsync byl rozšířen pro podporu front, normalizace paketů a pravidel route-to.
- Do síťového rozhraní if_stf (IPv6 přes IPv4) byla přidána podpora IPv6 Rychlé nasazení (RFC 5969). Výchozí stav režimu IPv6 nodeinfo (RFC 4620) je vypnut.
- Výchozí hodnotou sysctl parametru net.inet.tcp.nolocaltimewait je povoleno, aby se neprovádělo vytváření záznamů se stavem timewait pro místně přerušené TCP spojení.
- Ve výchozím nastavení je pro TCP aktivní mechanismus správy síťového přetížení CUBIC místo NewReno, což umožnilo rozšířit využití dostupné šířky pásma.
- V IPv4 byla zakázána odesílání vysílacích paketů na nulovou adresu podsítě, pokud není výslovně deklarována jako vysílací. Změna umožňuje použít pro hostitele adresy končící na „.0“.
- Byly změněny nastavení OpenSSH: v scp je ve výchozím nastavení použito protokolu SFTP místo scp/rcp, podpora podpisů RSA/SHA-1 byla vypnuta, parametry VerifyHostKeyDNS a X11Forwarding byly nastaveny na „ne“, byla odstraněna direktiva VersionAddendum, odstraněna podpora nastavení HPN.
- Do utility date byla přidána volba „-z“ pro převod časových pásem.
- Do utility diff byla přidána volba „—color“ pro vizuální zobrazení změn barvou.
- Do utility sleep byla přidána podpora jednotek měření, které nejsou pouze sekundy (například lze zadat „sleep 1h 30m“).
- Do utilit head a tail byla přidána podpora voleb „-q“ a „-h“, a také byla implementována možnost zadávání hodnot s příponami v mezinárodním systému jednotek SI. V head bylo odstraněno omezení maximálního počtu řádků 2^31.
- Do utility systat byla přidána příkaz „iolat“ pro zobrazení informací o zpožděních vstupu/výstupu, které byly vypočítány plánovačem CAM.
- Knihovna libncursesw byla rozdělena na dvě knihovny libtinfow a libncursesw. Byla přidána podpora využití v ncurses databáze terminfo, nikoli pouze termcap.
- Pro architekturu aarch64 (arm64) byla implementována a ve výchozím nastavení povolena možnost COMPAT_LIB32, která zajišťuje kompilaci 32bitových knihoven pro systémy ARM64, umožňující spouštění spustitelných souborů zkompilovaných pro platformu armv7.
- Byla vylepšena podpora cloudových systémů. Pro AWS EC2 byly přidány experimentální sestavení s kořenovým souborovým systémem ZFS a cloud-init. Pro Azure byly poskytnuty obrazy pro architektury arm64 a amd64, na výběr s UFS nebo ZFS. Byl přidán ovladač pro virtuální síťovou kartu gve (Google Virtual NIC).
- Do systému ACPI byla přidána podpora prahové hodnoty _CR3, která umožňuje nastavit teplotu, při jejímž dosažení bude systém přepnut do režimu spánku (S3).
- Byly aktualizovány verze externích aplikací a knihoven zahrnutých v základním systému: OpenSSH 9.5p1, OpenSSL 3.0.12 (dříve se používala větev 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. Implementace nástroje objdump byla nahrazena llvm-objdump. Kompilátor Clang byl aktualizován na větev 16.
- Byla provedena údržba zastaralých systémů:
- Základní systém byl zbaven podpory jednorázových hesel OPIE (pro obnovení použití lze nainstalovat port security/opie).
- Byly odstraněny ovladače pro zvukové karty s rozhraním ISA.
- Byly odstraněny nástroje fmtree a minigzip.
- Byly odstraněny komponenty ATM v netgraph (NgATM).
- Byl odstraněn na pozadí běžící proces telnetd (můžete použít port net/freebsd-telnetd).
- Byla odstraněna třída VINUM v geom.
- Byly odstraněny zastaralé ovladače amr, iscsi_initiator, iir, mn, mly, nlmrsa a twa.
- Z jader GENERIC a MINIMAL byla odstraněna položka VESA.
- Z funkčního jádra kryptografického rámce OCF (Open Cryptographic Framework) byla odstraněna podpora asymetrických kryptografických operací.
- Nástroj mergemaster byl oznámen jako zastaralý, místo něj se doporučuje používat etcupdate.
- Nástroj portsnap byl odstraněn (pro získání portů použijte "git clone https://git.FreeBSD.org/ports.git /usr/ports").
- Bylo zastaveno vytváření sestavení pro architekturu armv6.
- Byla odstraněna podpora architektury MIPS.
Zdroj: opennet.ru
