xref: /freebsd/RELNOTES (revision 89d155360810e6d1d7c4a20a72e5734fc9ab58bc)
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