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