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