1Release notes for FreeBSD 16.0. 2 3This file describes new user-visible features, changes and updates relevant to 4users of binary FreeBSD releases. Each entry should describe the change in no 5more than several sentences and should reference manual pages where an 6interested user can find more information. Entries should wrap after 80 7columns. Each entry should begin with one or more commit IDs on one line, 8specified as a comma separated list and/or range, followed by a colon and a 9newline. Entries should be separated by a newline. 10 11Changes to this file should not be MFCed. 12 133fe5961a0b70: 14 sysconf(8) and libbsdconf(3) have been added. sysconf(8) queries 15 and edits loader.conf(5), sysctl.conf(5), and the make.conf(5) 16 family (make.conf, src.conf, and src-env.conf) in the style of 17 sysrc(8). The rc target passes through to sysrc(8). 18 197144a1d58c5c, a311bd18a6fb, 884ee8d6c9b4: 20 These three patches add the required "glue" so that the 21 nfsrdma.ko and nfsclrdma.ko modules can be loaded. 22 These modules provide server and client support for 23 NFS over RDMA. 24 2534bb38445b07: 26 libusb has been updated to upstream 1.0.27 compatible. 27 All missing part is implemented and version tag is bumped. 28 296563dcb6b1f5: 30 It is now possible to use connectat(2) to connect to a unix(4) socket 31 directly, i.e., without having to specify a name in the sockaddr. 32 3372e57bc26417, 3dfbbe8586bb, d8e8f9251975: 34 These patches provide improvements for the pNFS server 35 configuration. New optional features include: 36 - Support for striped Flexible File Layouts (RFC8435). 37 - Support for pre-creation of files, allowing the 38 Open/Create to be done without communicating with 39 any DSs, so long as the cache of pre-created files 40 is not depleted. 41 42b92b9da33006, 13d3bd165e22: 43 This patch allows vfs.nfsd.srvmaxio to be set to 44 a value as high as 4Mbytes. It is usually set 45 via the nfs_server_maxio variable in /etc/rc.conf. 46 474c486fe40267: 48 The multicast routing modules, ip_mroute and ip6_mroute, are now FIB-aware. 49 That is, there is a multicast routing table per FIB, rather than a global 50 table. One can run a multicast routing daemon within each FIB; the FIB of 51 the routing socket determines the corresponding multicast routing table. 52 535c2186b99254,628d7a3270b6: 54 When the sector size for an NVMe namespace changes, nda(4) now 55 reports this as a media change rather than a disk resize 56 event. nda(4) also no longer reports a disk resize event in 57 some cases when the namespace's size had not changed. nda(4) 58 also reprobes NVMe namespaces each time they are opened to 59 check for a new sector size or namespace size. 60 617a323f873662: 62 Remove the le(4) driver. This driver supported older 10Mbps 63 and 100Mbps Ethernet adapters. True hardware devices have not 64 been used in FreeBSD systems in many years, but the driver was 65 previously retained for use with MIPS QEMU virtual machines. 66 67e51ef8ae490f: 68 Add initial support for instruction-based sampling (IBS) 69 performance counters on AMD processors to hwpmc(4). 70 71d69fc3a9dc71: 72 The EFI boot loader now tries all ZFS pools found during 73 probing when looking for a boot pool. Previously it would try 74 only the first pool found. 75 764d5c434ed16e: 77 Use the BSD-licensed implementation of diff3 instead of GNU diff3 78 by default. 79 807f54c65abc67: 81 Update the smartpqi(4) driver to vendor version 14.4690.0.2008 82 - 15.2.0.2008. This includes support for new controllers and 83 renaming Microsemi to Microchip. 84 85350c1232a57a: 86 nvmecontrol(8)'s telemetry-log now works reliably. 87 88d14e018024bb,b125c4d13095,1322760fd127,0730a05cd383: 89 Permit both SCHED_ULE and SCHED_4BSD to be compiled into the 90 same kernel. The scheduler can be selected at boot time by 91 setting the kern.sched_name tunable to the scheduler name 92 ("4BSD" or "ULE"). The default scheduler is ULE. This is 93 currently enabled in amd64 kernels by default. 94 9590a7728cd890: 96 Update nuageinit to request configuration on all network 97 interfaces. nuageinit will now issue DHCP requests on all 98 network interfaces and request configuration data from the 99 first interface which successfully obtains a lease. 100 10192ba9b2fe589: 102 Add RoCE support for Broadcom BCM576xx controllers. 103 104fb4b0c911951: 105 Add a facility to witness(4) to provide more detailed information 106 about lock order reversals detailing when initial lock orders were 107 established. 108 10965f5dd42f11c: 110 sh(1) add -l option which makes sh act as a login shell and read the profile. 111 112beab8b1ddf86: 113 bintrans(1) now supports the RFC2047 variant of quoted print 114 1159dc96d8bc3f2: 116 libusb(3) hotplug event are now really hotplugged using either 117 nlsysevent or devd(9) if available. 118 119d64db8892f85: 120 sh(1) is the default shell in the release media. 121 12268ad2b0d7af2: 123 ncurses has been updated to 6.6 124 12552d19df19ed6: 126 nvi(1) has been update to 2.2.2 127 1284d5c434ed16e, 2cfca8e710f2: 129 diff3(1) has replaced GNU diff3 and is now fully compatible. 130 131625dc44832cd: 132 tr(1) is now UTF-8 compliant. 133 13462fba0054d9e: 135 ee(1) is now UTF-8 compliant. 136 1375df6aca10906: 138 ed(1) is now UTF-8 compliant. 139 14028ff4d35f8b9: 141 Update libedit to 2026-04-03. 142 143b42e852e89cb: 144 Add a new pkg-serve(8) to serve packages over TCP via inetd. 145 1468b9775912cbc, 53b4ae3bf0f7: 147 Add support for an NFSv4 root file system. 148 Note that NFSv3 is still used for bootstrapping. See 149 "Diskless Operation with PXE" under "Advanced Networking" in the 150 FreeBSD Handbook. To configure an NFSv4 root fs, you will need 151 a line in /boot/loader.conf like boot.nfsroot.options="nfsv4" and 152 either a line in /etc/sysctl.conf like vfs.nfs.enable_uidtostring=1 153 or an additional line in /boot/loader.conf like 154 boot.nfsroot.user_domain="<user-domain>", 155 if you are running nfsuserd(8). 156 157ab9257599a5: 158 The src.conf(5) options WITHOUT_BZIP2 and WITHOUT_BZIP2_SUPPORT 159 have been removed. 160 161af099eaa5ec: 162 Users belonging to the new vmm group can now create bhyve VMs. See the 163 vmm(4) man page for details. 164 165c71354030a2: 166 Users wishing to use bhyve PCI passthrough in jails must create the 167 jail with the allow.vmm_ppt option configured. 168 1694d707825bf62: 170 The pdwait(2) system call was added. It provides wait(2)-like 171 functionality for a process descriptor (see procdesc(4)). 172 1735c2ee618d5ec: 174 The pdrfork(2) system call was added. It behaves like rfork(2) but 175 additionally returns a process descriptor (see procdesc(4)). 176 17741ccf82b29f3, 591c7a08bf8a: 178 On arm64, memcpy(3), memmove(3) and memset(3) are now implemented using 179 the MOPS (Memory Operations) feature instructions when they are 180 implemented by the system. 181 1823f0aea09689f: 183 posix_spawnattr_getexecfd_np(3) and posix_spawnattr_setexecfd_np(3) 184 functions were added to libc. The latter causes posix_spawn(3) to 185 call fexecve(2) on the specified file descriptor rather than executing 186 the file at the provided path. 187 188fb4b0c911951: 189 witness(4) now prints additional information to the system console when 190 a lock order reversal is detected, making debugging such issues easier. 191 1921322760fd127: 193 It is now possible to compile both the 4BSD and ULE schedulers into the 194 same kernel. The scheduler is selectable at boot-time using a tunable. 195 See the SCHEDULERS section of the tuning(7) man page for details. 196 197627e126dbb07: 198 The default value of the net.inet6.ip6.connect_in6addr_wild has changed 199 to 0. This means that connecting to the all-zeroes IPv6 address no longer 200 implicitly results in a loopback connection. 201 202afa70a8496e9: 203 The pthread_tryjoin_np(3) function was added to libthr(3). It provides 204 the same functionality as pthread_join(3) but returns instead of 205 blocking if the target thread has not yet exited. 206 207ecc039be7fdd: 208 NanoBSD images can now be built as a non-root user. 209 2107f54c65abc67: 211 Update smartpqi(4) to vendor version 14.4690.0.2008 - 15.2.0.2008 212 for the SmartArray storage controllers. This adds support for new 213 controllers, adds code that utilizes the new BIG_IOCTL_Command_struct 214 and allows the I/O buffer size for a single passthrough ioctl to be 215 stored as a 32 bit integer instead of the original 16 bit integer. 216 217b0d997095022: 218 The pf firewall now supports passing IPv6 packets to divert(4) 219 sockets via divert-to actions. 220 2210fa7b3bee72e, c71f18998e0b, 4162a419a475, f5a77dc8f8df: 222 LinuxKPI based wireless drivers, especially iwlwifi(4) are now 223 supported on RISC-V. 224 2258254b0dec02b3, bd55cbb50c588: 226 The mac(4) framework has been extended to support jail operations, 227 allowing a policy to constrain jail creation, modification, removal, and 228 attachment. Jails have additionally been made a first-class mac(4) 229 object, and a mac.label jail(8) property has been added to facilitate 230 administration of their labels. 231 232c558eca47970: 233 The smartpqi(4) driver was updated to vendor version 4660.0.2002 234 for the SmartArry storage controllers. 235 236493d26c58e73: 237 The aq(4) driver was added, imported from the vendor repository. 238 This provides support for Aquantia / Marvell PCIe 1/2.5/5/10 Gigabit 239 Ethernet adapters (AQC107, AQC108, AQC109, AQC111, AQC112). 240 2411a7151f79664: 242 A new CAM provider was added to dtrace. This enables tracing of I/O 243 requests through the CAM layer without relying on fragile function 244 boundary tracing. See dtrace_cam(4) for details. 245 246b8c99e7d912f: 247 The tdestroy(3) function was added to libc. The tdestroy() function 248 destroys a whole search tree, freeing all allocated nodes. 249 2504bf8ce037dc8: 251 The rge(4) driver was added, ported from OpenBSD. This provides 252 support for RealTek RTL8125, RTL8126 and RTL8127 PCIe Ethernet 253 controllers. 254 255cbc6f7e941e4: 256 bhyve(8)'s VNC device can now listen on a unix(4) socket for VNC client 257 connections. 258 25939ee24182b92: 260 An rc(8) service can now be started as a specific user for auditing 261 purposes by setting the <service>_audit_user rc.conf(5) variable. 262 263dcb0790bad43: 264 A setaudit(8) utility was added to the base system. This provides a 265 simple command-line wrapper for the setaudit(2) and setaudit_addr(2) 266 system calls. 267 2688e3fd450cc53, 949cff4dceff, 0e724de9ed6f, 9f49f436a9ec, e35191ccf3b3: 269 Add support for an extension to NFSv4.2 (RFCnnnn) that 270 supports handling of POSIX draft ACLs via getfacl(1)/setfacl(1). 271 272dbac191956f9, fe21dbf70aa8: 273 Support for the kcmp(2) system call and fcntl(F_DUPFD_QUERY) for Linux 274 binaries. 275 276a86dc94b84d1: 277 tzdata2025c was imported. 278 279a98e5d785001: 280 Add strdupa(3) and strndupa(3) macros for compatability with glibc. 281 282e967a2a03677: 283 divert socket compat removal, consumers must use PF_DIVERT instead of 284 PF_INET. 285 2864453ec5b8716b, 2a3b1641756a: 287 The reboot(8) and halt(8) commands now perform a graceful shutdown similar 288 to the shutdown(8) command including invoking rc.d scripts to shutdown 289 services. The fastboot(8) and fasthalt(8) commands still perform a "fast" 290 reboot or shutdown. 291 292d9788eabffa4: 293 ipfilter cannot be used in a jail by default. 294 2950ff0c19e7f70: 296 ipfs(8) is no longer built by default. 297 298575efcfff22f: 299 sendfile(2)'s SF_SYNC flag was removed. 300 301057dae35ffc6, 51a01f3debff, ca3e47b0ea68: 302 hwpmc(4) support for Intel Alder Lake 6-B7, 6-BA, and 6-BF CPU 303 hwpmc(4) support for Intel Emerald Rapids CPUs 304 hwpmc(4) support for Intel Alder Lake-N CPUs 305 3061ecf01065b45: 307 New library libuvmem provides the vmem(9) API to userspace applications. 308 309b6cad334e64: 310 Make game controller devices accessible by members of the "game" group 311 by default. 312 313791c531402bd: 314 Add driver for Feature Integration Technology Inc. (aka Fintek) F81232 315 USB to serial devices. 316 317ec0cd287f55f: 318 Support for NVMe/TCP offload on Chelsio T7 adapters. The nvmf_che(4) 319 module enables T7 adapters to process NVMe/TCP PDUs directly similar to 320 the PDU offload provided by cxgbei(4) for iSCSI. 321