A FreeBSD 13.2 kiadás 11 hónapos fejlesztés után megjelent. Telepítő képek készültek amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 és riscv64 architektúrákhoz. Továbbá a virtuális rendszerekhez (QCOW2, VHD, VMDK, raw) és az Amazon EC2, a Google Compute Engine és a Vagrant felhő környezetekhez is készültek build-ek.
Kulcsfontosságú változások:
- Megvalósult az UFS és FFS fájlrendszerek pillanatfelvételeinek létrehozásának lehetősége, amelyeken engedélyezve van a naplózás (soft updates). Ezen kívül hozzáadódott a háttérben történő dump mentés támogatása (dump indítása az „-L” kapcsolóval) a naplózott UFS fájlrendszerek csatolt tartalmával. A naplózás használata esetén nem elérhető lehetőségek közül továbbra is elérhető a háttérben történő integritás-ellenőrzés fsck segédprogram segítségével.
- A fő csapatba felvették a wg nevű, kernel szintű meghajtót a WireGuard hálózati interfész megvalósításához. VPN A szükséges titkosító algoritmusok használatához a FreeBSD kernel kriptográfiai alrendszerének API-ja kiterjesztésre került, amelybe egy olyan interfész került, amely lehetővé teszi a libsodium könyvtárban található FreeBSD-ben nem támogatott algoritmusok használatát a standard kripto-API-n keresztül. A fejlesztések során optimalizálás is történt a titkosítási és dekódolási feladatok egyenletes elosztására a CPU magok között, amely csökkentette a WireGuard csomagok feldolgozásakor felmerülő költségeket.
A WireGuard FreeBSD-be való integrálására tett korábbi kísérlet 2020-ban történt, de botrányba fulladt, amelynek következtében a már hozzáadott kódot nem megfelelő minőség, a pufferek helytelen kezelése, a helyettesítő értékek használata tesztelések helyett, a protokoll hiányos megvalósítása és a GPL licenc megsértése miatt eltávolították. Az új implementációt a FreeBSD és a WireGuard fejlesztői csapatai közösen készítették Jason A. Donenfeld, a WireGuard VPN szerzője, és John H. Baldwin, a FreeBSD neves fejlesztője részvételével. Az új kód elfogadása előtt a FreeBSD Foundation támogatásával teljes körű felülvizsgálatot végeztek a módosításokon.
- Megvalósították a Netlink kommunikációs protokoll (RFC 3549) támogatását, amelyet a Linuxban a kernel és a felhasználói térben futó folyamatok közötti interakciós lehetőségek szervezésére használnak. A projekt a NETLINK_ROUTE műveletek családjának támogatására korlátozódik, amely lehetővé teszi a hálózati alrendszer állapotának kezelését a kernelben, így a FreeBSD-ben használható a Linux ip utility az iproute2 csomagból a hálózati interfészek kezelésére. IP-címek, a routingszabályok beállítására és a nexthop objektumok manipulálására, amelyek az adatokat tárolják, amelyek az adatcsomagok célhelyre történő továbbításához szükségesek.
- Az alapvető rendszer összes végrehajtható fájlja 64 bites platformokon alapértelmezetten tartalmazza a címterület-randomizálást (ASLR, Address Space Layout Randomization). Az ASLR kivételes letiltásához a "proccontrol -m aslr -s disable" vagy az "elfctl -e +noaslr" parancsokat lehet használni.
- Az ipfw a MAC-címek kereséséhez alapötleteken alapuló táblázatokat (Radix table) használ, ami lehetővé teszi a MAC-címtáblák létrehozását és azok forgalom szűrésére történő felhasználását. Például: ipfw table 1 create type mac ipfw table 1 add 11:22:33:44:55:66/48 ipfw add skipto tablearg src-mac ‘table(1)’ ipfw add deny src-mac ‘table(1, 100)’ ipfw add deny lookup dst-mac 1
- Az dpdk_lpm4 és dpdk_lpm6 kernel modulok hozzá lettek adva, és elérhetők a loader.conf-on keresztül, amelyek megvalósítják a DIR-24-8 útvonalkeresési algoritmust IPv4/IPv6 esetén, amely optimalizálja a routingszabályok funkcióit olyan hostok számára, amelyek nagyon nagy routingtáblákkal rendelkeznek (tesztek során 25%-os sebességnövekedés figyelhető meg). A modulok beállításához a beépített route utility használható (hozzáadott FIB_ALGO opcióval).
- A ZFS fájlrendszer implementációja frissítve lett az OpenZFS 2.1.9 kiadásra. A zfskeys indító szkript automatikus kulcsfeltöltést biztosít, amelyeket a ZFS fájlrendszerben tárolnak. Egy új RC-szkript zpoolreguid lett hozzáadva, amely lehetővé teszi az egy vagy több zpool-hoz GUID azonosító hozzárendelését (például hasznos közös adatokkal rendelkező virtualizációs környezetek számára).
- A Bhyve hipervizorban és a vmm modulban megvalósították a vendég rendszerhez való több mint 15 virtuális CPU csatlakoztatásának támogatását (a sysctl hw.vmm.maxcpu útján szabályozva). A bhyve utility implementálta a virtio-input eszköz emulációját, amellyel billentyűzet és egér eseményeket lehet közvetíteni a vendég rendszerbe.
- A KTLS, a TLS protocol implementation that operates at the FreeBSD kernel level, has added support for hardware acceleration of TLS 1.3 by offloading certain operations related to processing encrypted incoming packets to the network card. Previously, such capabilities were available for TLS 1.1 and TLS 1.2.
- In the growfs startup script, when expanding the root filesystem, a swap partition is now added if such a partition was initially absent (for example, useful when installing a ready-made system image onto an SD card). A new parameter growfs_swap_size has been added to rc.conf to manage swap size.
- In the hostid startup script, random UUID generation is ensured if the file /etc/hostid is missing and UUID retrieval from the hardware is impossible. A file /etc/machine-id has also been added, providing a compact representation of the host identifier (without dashes).
- The rc.conf has added variables defaultrouter_fibN and ipv6_defaultrouter_fibN, which allow adding default routes to FIB tables that are different from the primary one.
- Support for SHA-512/224 hashes has been added to the libmd library.
- Support for the semantics of functions used in Linux has been implemented in the pthread library.
- Support for decoding Linux system calls has been added to kdump. Support for tracing Linux-style system calls has been added to kdump and sysdecode.
- The killall utility now allows sending signals to processes tied to a specific terminal (for example, 'killall -t pts/1').
- A new utility nproc has been added to output the number of available computing units for the current process.
- Support for decoding ACS (Access Control Services) parameters has been added to the pciconf utility.
- A configuration option SPLIT_KERNEL_DEBUG has been added to the kernel, allowing debug information for the kernel and kernel modules to be saved to separate files.
- Support for the vDSO (virtual dynamic shared objects) mechanism, which provides a limited set of system calls available in user space without context switching, is nearly complete in ABI linux. The ABI linux on ARM64 systems has reached parity with the implementation for the AMD64 architecture.
- Fejlesztett hardvertámogatás. Hozzáadva a teljesítményfigyelés (hwpmc) támogatása az Intel Alder Lake CPU-hoz. Frissítve az iwlwifi illesztőprogramot az Intel vezeték nélküli kártyákhoz, új chipek és az 802.11ac szabvány támogatásával. Hozzáadva az rtw88 illesztőprogram a Realtek vezeték nélküli kártyákhoz PCI interfészen. Bővítették a linuxkpi réteg funkcióit a FreeBSD Linux illesztőprogramok használatához.
- Az OpenSSL könyvtár frissítve lett 1.1.1t verzióra, az LLVM/Clang 14.0.5 verzióra, a SSH szerver és kliens pedig OpenSSH 9.2p1-re frissült (az előző verzióban OpenSSH 8.8p1 volt használatban). Továbbá frissült a bc 6.2.4, expat 2.5.0, file 5.43, less 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1 és a zlib 1.2.13 verziója.
Továbbá bejelentették a OPIE egyszer használatos jelszavak, a ce és cp illesztőprogramok, ISA interfésszel rendelkező kártyák illesztőprogramjainak, a mergemaster és minigzip segédprogramok, az ATM komponensek netgraph-ban (NgATM), a telnetd háttérfolyamat, valamint a VINUM osztály eltávolítását, amelyek elavultnak minősülnek, kezdve a FreeBSD 14.0 ágból.
Forrás: opennet.ru
