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 13b92b9da33006, 13d3bd165e22: 14 This patch allows vfs.nfsd.srvmaxio to be set to 15 a value as high as 4Mbytes. It is usually set 16 via the nfs_server_maxio variable in /etc/rc.conf. 17 184c486fe40267: 19 The multicast routing modules, ip_mroute and ip6_mroute, are now FIB-aware. 20 That is, there is a multicast routing table per FIB, rather than a global 21 table. One can run a multicast routing daemon within each FIB; the FIB of 22 the routing socket determines the corresponding multicast routing table. 23 245c2186b99254,628d7a3270b6: 25 When the sector size for an NVMe namespace changes, nda(4) now 26 reports this as a media change rather than a disk resize 27 event. nda(4) also no longer reports a disk resize event in 28 some cases when the namespace's size had not changed. nda(4) 29 also reprobes NVMe namespaces each time they are opened to 30 check for a new sector size or namespace size. 31 327a323f873662: 33 Remove the le(4) driver. This driver supported older 10Mbps 34 and 100Mbps Ethernet adapters. True hardware devices have not 35 been used in FreeBSD systems in many years, but the driver was 36 previously retained for use with MIPS QEMU virtual machines. 37 38e51ef8ae490f: 39 Add initial support for instruction-based sampling (IBS) 40 performance counters on AMD processors to hwpmc(4). 41 42d69fc3a9dc71: 43 The EFI boot loader now tries all ZFS pools found during 44 probing when looking for a boot pool. Previously it would try 45 only the first pool found. 46 474d5c434ed16e: 48 Use the BSD-licensed implementation of diff3 instead of GNU diff3 49 by default. 50 517f54c65abc67: 52 Update the smartpqi(4) driver to vendor version 14.4690.0.2008 53 - 15.2.0.2008. This includes support for new controllers and 54 renaming Microsemi to Microchip. 55 56350c1232a57a: 57 nvmecontrol(8)'s telemetry-log now works reliably. 58 59d14e018024bb,b125c4d13095,1322760fd127,0730a05cd383: 60 Permit both SCHED_ULE and SCHED_4BSD to be compiled into the 61 same kernel. The scheduler can be selected at boot time by 62 setting the kern.sched_name tunable to the scheduler name 63 ("4BSD" or "ULE"). The default scheduler is ULE. This is 64 currently enabled in amd64 kernels by default. 65 6690a7728cd890: 67 Update nuageinit to request configuration on all network 68 interfaces. nuageinit will now issue DHCP requests on all 69 network interfaces and request configuration data from the 70 first interface which successfully obtains a lease. 71 7292ba9b2fe589: 73 Add RoCE support for Broadcom BCM576xx controllers. 74 75fb4b0c911951: 76 Add a facility to witness(4) to provide more detailed information 77 about lock order reversals detailing when initial lock orders were 78 established. 79 8065f5dd42f11c: 81 sh(1) add -l option which makes sh act as a login shell and read the profile. 82 83beab8b1ddf86: 84 bintrans(1) now supports the RFC2047 variant of quoted print 85 869dc96d8bc3f2: 87 libusb(3) hotplug event are now really hotplugged using either 88 nlsysevent or devd(9) if available. 89 90d64db8892f85: 91 sh(1) is the default shell in the release media. 92 9368ad2b0d7af2: 94 ncurses has been updated to 6.6 95 9652d19df19ed6: 97 nvi(1) has been update to 2.2.2 98 994d5c434ed16e, 2cfca8e710f2: 100 diff3(1) has replaced GNU diff3 and is now fully compatible. 101 102625dc44832cd: 103 tr(1) is now UTF-8 compliant. 104 10562fba0054d9e: 106 ee(1) is now UTF-8 compliant. 107 1085df6aca10906: 109 ed(1) is now UTF-8 compliant. 110 11128ff4d35f8b9: 112 Update libedit to 2026-04-03. 113 114b42e852e89cb: 115 Add a new pkg-serve(8) to serve packages over TCP via inetd. 116 1178b9775912cbc, 53b4ae3bf0f7: 118 Add support for an NFSv4 root file system. 119 Note that NFSv3 is still used for bootstrapping. See 120 "Diskless Operation with PXE" under "Advanced Networking" in the 121 FreeBSD Handbook. To configure an NFSv4 root fs, you will need 122 a line in /boot/loader.conf like boot.nfsroot.options="nfsv4" and 123 either a line in /etc/sysctl.conf like vfs.nfs.enable_uidtostring=1 124 or an additional line in /boot/loader.conf like 125 boot.nfsroot.user_domain="<user-domain>", 126 if you are running nfsuserd(8). 127 128ab9257599a5: 129 The src.conf(5) options WITHOUT_BZIP2 and WITHOUT_BZIP2_SUPPORT 130 have been removed. 131 132af099eaa5ec: 133 Users belonging to the new vmm group can now create bhyve VMs. See the 134 vmm(4) man page for details. 135 136c71354030a2: 137 Users wishing to use bhyve PCI passthrough in jails must create the 138 jail with the allow.vmm_ppt option configured. 139 1404d707825bf62: 141 The pdwait(2) system call was added. It provides wait(2)-like 142 functionality for a process descriptor (see procdesc(4)). 143 1445c2ee618d5ec: 145 The pdrfork(2) system call was added. It behaves like rfork(2) but 146 additionally returns a process descriptor (see procdesc(4)). 147 14841ccf82b29f3, 591c7a08bf8a: 149 On arm64, memcpy(3), memmove(3) and memset(3) are now implemented using 150 the MOPS (Memory Operations) feature instructions when they are 151 implemented by the system. 152 1533f0aea09689f: 154 posix_spawnattr_getexecfd_np(3) and posix_spawnattr_setexecfd_np(3) 155 functions were added to libc. The latter causes posix_spawn(3) to 156 call fexecve(2) on the specified file descriptor rather than executing 157 the file at the provided path. 158 159fb4b0c911951: 160 witness(4) now prints additional information to the system console when 161 a lock order reversal is detected, making debugging such issues easier. 162 1631322760fd127: 164 It is now possible to compile both the 4BSD and ULE schedulers into the 165 same kernel. The scheduler is selectable at boot-time using a tunable. 166 See the SCHEDULERS section of the tuning(7) man page for details. 167 168627e126dbb07: 169 The default value of the net.inet6.ip6.connect_in6addr_wild has changed 170 to 0. This means that connecting to the all-zeroes IPv6 address no longer 171 implicitly results in a loopback connection. 172 173afa70a8496e9: 174 The pthread_tryjoin_np(3) function was added to libthr(3). It provides 175 the same functionality as pthread_join(3) but returns instead of 176 blocking if the target thread has not yet exited. 177 178ecc039be7fdd: 179 NanoBSD images can now be built as a non-root user. 180 1817f54c65abc67: 182 Update smartpqi(4) to vendor version 14.4690.0.2008 - 15.2.0.2008 183 for the SmartArray storage controllers. This adds support for new 184 controllers, adds code that utilizes the new BIG_IOCTL_Command_struct 185 and allows the I/O buffer size for a single passthrough ioctl to be 186 stored as a 32 bit integer instead of the original 16 bit integer. 187 188b0d997095022: 189 The pf firewall now supports passing IPv6 packets to divert(4) 190 sockets via divert-to actions. 191 1920fa7b3bee72e, c71f18998e0b, 4162a419a475, f5a77dc8f8df: 193 LinuxKPI based wireless drivers, especially iwlwifi(4) are now 194 supported on RISC-V. 195 1968254b0dec02b3, bd55cbb50c588: 197 The mac(4) framework has been extended to support jail operations, 198 allowing a policy to constrain jail creation, modification, removal, and 199 attachment. Jails have additionally been made a first-class mac(4) 200 object, and a mac.label jail(8) property has been added to facilitate 201 administration of their labels. 202 203c558eca47970: 204 The smartpqi(4) driver was updated to vendor version 4660.0.2002 205 for the SmartArry storage controllers. 206 207493d26c58e73: 208 The aq(4) driver was added, imported from the vendor repository. 209 This provides support for Aquantia / Marvell PCIe 1/2.5/5/10 Gigabit 210 Ethernet adapters (AQC107, AQC108, AQC109, AQC111, AQC112). 211 2121a7151f79664: 213 A new CAM provider was added to dtrace. This enables tracing of I/O 214 requests through the CAM layer without relying on fragile function 215 boundary tracing. See dtrace_cam(4) for details. 216 217b8c99e7d912f: 218 The tdestroy(3) function was added to libc. The tdestroy() function 219 destroys a whole search tree, freeing all allocated nodes. 220 2214bf8ce037dc8: 222 The rge(4) driver was added, ported from OpenBSD. This provides 223 support for RealTek RTL8125, RTL8126 and RTL8127 PCIe Ethernet 224 controllers. 225 226cbc6f7e941e4: 227 bhyve(8)'s VNC device can now listen on a unix(4) socket for VNC client 228 connections. 229 23039ee24182b92: 231 An rc(8) service can now be started as a specific user for auditing 232 purposes by setting the <service>_audit_user rc.conf(5) variable. 233 234dcb0790bad43: 235 A setaudit(8) utility was added to the base system. This provides a 236 simple command-line wrapper for the setaudit(2) and setaudit_addr(2) 237 system calls. 238 2398e3fd450cc53, 949cff4dceff, 0e724de9ed6f, 9f49f436a9ec, e35191ccf3b3: 240 Add support for an extension to NFSv4.2 (RFCnnnn) that 241 supports handling of POSIX draft ACLs via getfacl(1)/setfacl(1). 242 243dbac191956f9, fe21dbf70aa8: 244 Support for the kcmp(2) system call and fcntl(F_DUPFD_QUERY) for Linux 245 binaries. 246 247a86dc94b84d1: 248 tzdata2025c was imported. 249 250a98e5d785001: 251 Add strdupa(3) and strndupa(3) macros for compatability with glibc. 252 253e967a2a03677: 254 divert socket compat removal, consumers must use PF_DIVERT instead of 255 PF_INET. 256 2574453ec5b8716b, 2a3b1641756a: 258 The reboot(8) and halt(8) commands now perform a graceful shutdown similar 259 to the shutdown(8) command including invoking rc.d scripts to shutdown 260 services. The fastboot(8) and fasthalt(8) commands still perform a "fast" 261 reboot or shutdown. 262 263d9788eabffa4: 264 ipfilter cannot be used in a jail by default. 265 2660ff0c19e7f70: 267 ipfs(8) is no longer built by default. 268 269575efcfff22f: 270 sendfile(2)'s SF_SYNC flag was removed. 271 272057dae35ffc6, 51a01f3debff, ca3e47b0ea68: 273 hwpmc(4) support for Intel Alder Lake 6-B7, 6-BA, and 6-BF CPU 274 hwpmc(4) support for Intel Emerald Rapids CPUs 275 hwpmc(4) support for Intel Alder Lake-N CPUs 276 2771ecf01065b45: 278 New library libuvmem provides the vmem(9) API to userspace applications. 279 280b6cad334e64: 281 Make game controller devices accessible by members of the "game" group 282 by default. 283 284791c531402bd: 285 Add driver for Feature Integration Technology Inc. (aka Fintek) F81232 286 USB to serial devices. 287 288ec0cd287f55f: 289 Support for NVMe/TCP offload on Chelsio T7 adapters. The nvmf_che(4) 290 module enables T7 adapters to process NVMe/TCP PDUs directly similar to 291 the PDU offload provided by cxgbei(4) for iSCSI. 292