aibs(4) was included in 2.4.1
[ikiwiki.git] / release24 / index.mdwn
28b7a1a1 1# DragonFly Release 2.4
357d6877 2## 16 September 2009 (2.4.0)
3## 01 October 2009 (2.4.1)
f13f8a35 4
682f69da 5The DragonFly 2.4 release is here!
f13f8a35 6
682f69da 7Three release options are now available: Our bare-bones CD ISO, a DVD ISO which includes a fully operational X environment, and a bare-bones bootable USB disk-key image (1G disk keys recommended).
90ca02dd 8
682f69da 9In addition we will for the first time be shipping a 64-bit ISO. 64-bit support is stable but there will only be limited
4b7e2fb8 10pkgsrc support in this release. Both the bare-bones CD ISO and a bootable USB disk-key image are available for the 64-bit release.
f13f8a35 11
12## Availability
14The release ISO images should be available on most of the [[mirrors|mirrors]]. If the ISO is not available on a certain mirror, please try another one or download it from the DragonFly FTP server.
4b7e2fb8 16**Special Note on 2.4.1 mirror availability** - Unfortunately one of our primary mirrors, which other mirrors use as a source, had a snafu
7eb0a194 17that probably will not be fixed any time soon. Our second fastest mirror is <a href=""></a>, so please use that to obtain the 2.4.1 ISOs and IMGs
18you desire if you cannot find them on a more local mirror.
4b7e2fb8 19
f13f8a35 20### MD5 sums
5d781b29 22* MD5 (dfly-2.4.0_REL.img.gz) = d879282c1ed9d1b36282c4b55aa13b83
23* MD5 (dfly-2.4.0_REL.iso.gz) = 1a7d1980671e96564d74e9c128d80009
24* MD5 (dfly-amd64-2.4.0_REL.iso.gz) = 226139fe8127b406d1bf8239eef420eb
25* MD5 (dfly-gui-2.4.0_REL.iso.gz) = 219eb1f640d2b8034b685a74645fef23
4b7e2fb8 26
5d781b29 27* MD5 (dfly-2.4.0_REL.img) = 2ac933f712a9138af1fba712c21cc80a
28* MD5 (dfly-2.4.0_REL.iso) = 495183dfe161af066935f6ffa8093556
29* MD5 (dfly-amd64-2.4.0_REL.iso) = f06135a066ef8e5b8d413d65371d98c8
30* MD5 (dfly-gui-2.4.0_REL.iso) = 191fc66f6822af04eff9b3fd0693dbfc
f13f8a35 31
4b7e2fb8 32* MD5 (dfly-2.4.1_REL.img.gz) = 3fd8412329de1db906e09e3115e512b6
33* MD5 (dfly-2.4.1_REL.iso.gz) = 5a828b57db2869e718adacf63943d270
34* MD5 (dfly-gui-2.4.1_REL.iso.gz) = 015e3c56ac3f2a7f8073a126a282ff01
35* MD5 (dfly-amd64-2.4.1_REL.img.gz) = 17aa83495fd1b11484c7e5dd4342a447
36* MD5 (dfly-amd64-2.4.1_REL.iso.gz) = e3ccc01771b8e37b330014afa30a4f9b
38* MD5 (dfly-2.4.1_REL.img) = 3cd38cdbc191a8635a87db9adb34b7bd
39* MD5 (dfly-2.4.1_REL.iso) = 0f32153897fe25aa2bd8c168a2fce9a7
40* MD5 (dfly-amd64-2.4.1_REL.img) = 34f9c6bd2ec8794ff24eed64c1abd03c
41* MD5 (dfly-amd64-2.4.1_REL.iso) = c7d84edd1a85cab012a4b0f6e4cda5ec
42* MD5 (dfly-gui-2.4.1_REL.iso) = bef875c47c1d7b81d664a8ba236cfdbe
f13f8a35 44### pkgsrc packages
90ca02dd 46We offer over 6000 pre-built [pkgsrc]( packages for this release. The [pkg_radd(1)]( utility may be used to download pre-built binary packages. By default this script will query the main package site for a random redirect to one of our mirrors. The path can be overridden by setting BINPKG_SITES in `/etc/settings.conf`.
f13f8a35 47
48To get a list of all packages, let [pkg_search(1)]( download the summary file for that release:
50 # pkg_search -d
b24500cc 52We supply a Makefile in /usr to track the pkgsrc tree. We also supply a GIT mirror of the NetBSD pkgsrc CVS repo as
53well as the pkgsrc/wip (work in progress) repo at git:// and we recommend that
54users use it instead of pulling from NetBSD with CVS. Our GIT mirror is updated four times a day.
4b7e2fb8 56## DragonFly 2.4.x Special Installation and Upgrade Notes
5d781b29 57
32f91a42 58**VirtualBox and VMWare users** - Unless your virtual hard disk is 50G or larger we recommend
59doing a UFS install and not the default HAMMER install. We also recommend installing from the CD ISO
60and not the DVD ISO. The DVD ISO HAMMER install has bugs (see [[Known Release Issues|issues24]]).
4b7e2fb8 62**DVD ISO HAMMER install bugs (2.4.0 only)** - You will get a 'guard1x fail @...' loader panic.
03e640a3 63See [[Known Release Issues|issues24]] on how to fix.
4b7e2fb8 652.4.x is a bigger release than normal. The single most invasive change is the introduction of DEVFS.
5d781b29 66The /dev filesystem is now mounted by the kernel after it mounts the root filesystem. All major and
67minor numbers have changed and the old /dev is no longer meaningful. People who use jails or chroots
68will need to adjust their scripts to either mount_null /dev into their jails and chroots or to make
69independent DEVFS mounts via mount_devfs into their jails and chroots.
71Within DEVFS the entire tty/pty scheme has changed. Users upgrading from 2.2 need to be absolutely
72sure to upgrade their world and kernel at the same time or fireworks may ensue.
28b4a553 74With this release the libc major number has also been bumped from 6 to 7. Applications should remain
5d781b29 75fairly compatible across the upgrade but we recommend that all applications be recompiled and/or
4b7e2fb8 76fresh binary packages be loaded from pkgsrc. Certain pty-based applications such as "screen"
77may require recompiling.
f13f8a35 78
5d781b29 79With this release our new native AHCI driver is now standard. If your system is AHCI-capable and
80AHCI-enabled the new driver will take over from NATA and drives may wind up being renamed due to
81this. For example, ad6 might become da0. Any legacy ATA ports will continue to be probed by the NATA
82driver but their drives may be named differently. USB mass storage devices will also be numbered starting
83at 8, for example da8, to avoid conflicting with lower-numbered da* devices.
e6e8781f 84
5d781b29 85DEVFS now probes serial numbers. The serial numbers for all ATA, SATA, and SCSI devices will be
86recorded by DEVFS in /dev/serno/<SERIALNUMBER>. USB mass storage devices are more problematic
87as the on-device controllers typically do not implement serial number reporting. Users are
88encouraged to use /dev/serno/<SERIALNUMBER> paths in their /etc/fstab and /etc/rc.conf, and
89to even specify the root mount in /boot/loader.conf using a devfs-relative serial number
90path such as: vfs.root.mountfrom="hammer:serno/AB34394.s1d". The use of serial numbers to
91specify the location of mass storage devices allows you to attach those devices in virtually any
92manner without confusing the system. This is particularly important as SATA Port Multiplier
93enclosures and systems with large numbers of SATA and E-SATA connectors become prevalent.
234cb3b8 95The installer now installs (and we recommend) a BOOT+HAMMER setup by default. The installer will
96also reference mount points by serial numbers.
688283ca 98We expect there will be numerous issues with this release and we intend to roll a 2.4.1
99out in about a month to address what comes up. [[Known Release Issues|issues24]]
b9a5aee5 100
5d781b29 101So upgrading to 2.4.x will certainly be a bit painful for users of 2.2.x or earlier releases. We
102believe the pain will be well worth the effort.
104## DragonFly 2.4.0 Release Notes
e6e8781f 105
f13f8a35 106### Release Improvements
e6e8781f 108> ### Kernel changes
f13f8a35 109
74db7afe 110 * acpi(4): Import acpica-unix-20090521.
57104edf 111 * acpi(4): Improved power & frequency management for cpus.
112 * acpi(4): Significantly improved APIC support.
b24500cc 113 * **buf/bio: New read-prioritizing bioq sort algorithm.** The new algorithm does a much better job
ea98de88 114 prioritizing reads over writes and also contains features to avoid starving-out writes. It
115 works best with CAM based drivers but NATA uses some of its functionality too.
ec1de45c 116 * buf/bio: Make biowait(), getpbuf(), and most other buf/bio functions MPSAFE.
ea98de88 117 * buffer-cache: Improved pipe-lining for writes.
1626d6a7 118 * bpf(4): Add autocloning support
b24500cc 119 * **devfs(5): Replaced the static /dev directory with a dynamic device file system written by Alex Hornung during the Google Summer of Code 2009.**
ea98de88 120 * All block devices now auto-probe their slices and partitions.
121 * All block devices now auto-probe serial numbers and may be mounted and otherwise referenced by serial number.
ea98de88 122 * loader.conf now supports specifying the root device by serial number.
90ca02dd 123 * Autocloning support for cloning devices such as VN.
e6e8781f 124 * ddb(4): Fix an IPI messaging lockup which can occur while in ddb(4).
b24500cc 125 * **disklabel64(5): Add UFS + HAMMER boot support** (was previously just HAMMER boot support).
74db7afe 126 * drm(4): Sync code with latest from FreeBSD.
e6e8781f 127 * ext2fs: Support variable inode size (from FreeBSD).
ec1de45c 128 * mountctl/mount -v: New infrastructure for reporting mount flags.
d47bcb30 129 * NFS
b24500cc 130 * **The client-side RPC code has been rewritten.** Two kernel threads are now created
234cb3b8 131 for each NFS mount. One handles reading from the socket and the other handles
d47bcb30 132 writing to the socket. A virtually unlimited number of RPCs may be in-flight
234cb3b8 133 at any given moment. The days of multiplicative threads each running synchronous
134 RPCs are over!
b24500cc 135 * **Use TCP mounts by default as the new RPC architecture can now trivally blow
136 out UDP sockbufs.**
137 * **Hugely improved client-side performance.**
234cb3b8 138 * Fixed fsx test regressions.
139 * Fixed Linux compatibility issues (fix bugs in readdirplus)
e6e8781f 140 * msdos(5): Fixed a number of bugs.
141 * pci(4): Sync code with FreeBSD 7.2.
fabe150e 142 * Bring iscsi_initiator(4) from FreeBSD.
ec1de45c 143 * pipe(2): Pipes are now 100% MPSAFE.
144 * Add new cred/privilege infrastructure for jail and general use.
145 * Consolidate VOP access tests in vop_helper_access().
e6e8781f 146 * usched_set: Add USCHED_CPU_GET for retrieving the current CPU.
74db7afe 147 * revoke(2): Reimplemented the revoke code.
ec1de45c 148 * pty: Add Unix98 ptys (/dev/ptmx and /dev/pts/*).
149 * sound: add autocloning support for dsp devices.
234cb3b8 150 * tcp: Fixed a reestablishment bug for TCP connections if one side reboots without
ec1de45c 151 closing the connection. A port pair could wind up becoming unusable for
152 upwards of an hour or longer.
153 * tcp: Improve performance by implementing an automatic high-water mark when
154 it is not otherwise specified, allowing hysteresis between the kernel and
155 the tcp protocol stack.
156 * tsleep: New tsleep interlock mechanics implemented to fix races.
74db7afe 157 * vkernel(7)
234cb3b8 158 * Fixed entry into ddb(4) when running a SMP vkernel. Fixes stop/cont.
159 * Fixed startup race with I/O cothread support.
160 * Fixed some issues - enable ithread preemption, races, and more.
161 * Fixed races in stopsig() and ipisig().
90ca02dd 162 * libkvm now understands live vkernels.
163 * libkvm: Add support for accessing a running vkernel's memory by reading its `/proc/$pid/mem` file.
19f7f95c 164 * vn(4): Add autocloning support
234cb3b8 165 * Fixed permissions check for utimes() - owner can call even if u-w.
99df6ac2 166 * Replace the old BSD malloc code with a port of our slab allocator.
167 * Fix various clang compile issues
168 * Add HPET cputimer.
169 * Add lapic timer and enable it by default.
170 * Add kernel-layer support for chflags checks, remove (most) from the VFS layer.
ea98de88 172> ### HAMMER changes
f13f8a35 173
99df6ac2 174 * Return shorter-form softlinks "@@-1:%05d" when appropriate.
d47bcb30 175 * Add a B-Tree rebalancing feature (hammer rebalance).
234cb3b8 176 * Fixed improper cred checks for utimes().
177 * Fixed edge case in mirroring code.
b24500cc 178 * **Fixed nohistory mounts and a rare lost inode issue.**
234cb3b8 179 * Fixed sticky bit directory handling for deletions.
d47bcb30 180 * Break-up initial mirroring batch so restarts do not start from scratch.
99df6ac2 181 * Better CRC handling, bad-file handling.
99df6ac2 182 * Refactor merged search function to try to avoid missed entries.
183 * Limit recursion for long directory chains, update mtime/ctime.
184 * Improve performance for large write loads.
185 * Improve directory layout (in-place upgrade to version 2).
186 * Allow hammer -b to specify bytes per second if no suffix is supplied.
d47bcb30 187 * Extract PFS null mounts from anywhere in the filesystem, instead of just from the `/pfs` subdirectory.
90ca02dd 188 * Add hammer info directive which prints useful info about a hammer filesystem.
f13f8a35 189
ea98de88 190> ### Hardware changes (non-networking)
f13f8a35 191
e8a1c705 192 * cxm(4): Add new driver for Hauppauge PVR-250/350 video capture cards (from FreeBSD).
90ca02dd 193 * kbdmux(4): Add multiple keyboards on the console via keyboard multiplexer (from FreeBSD).
ec1de45c 194 * mpi(4): Sync the driver with the latest version from FreeBSD.
195 * mpt(4): Sync the driver with the latest version from FreeBSD.
b24500cc 196 * **ahci(4): Implement a native AHCI driver with full hot-plug and port multiplier support.**
90ca02dd 197 Also implement ATA pass-through. Uses CAM.
b24500cc 198 * **sili(4): Implement a native Silicon Image 3132 driver with full hot-plug and port multiplier support.**
90ca02dd 199 Also implement ATA pass-through. Uses CAM.
f13f8a35 200
ea98de88 201> ### Hardware changes (networking)
f13f8a35 202
e6e8781f 203 * ae(4): Add driver for Attansic/Atheros L2 FastEthernet (from FreeBSD).
a26d6990 204 * ath(4): Add open source HAL code (from FreeBSD) and make it possible to build it into the kernel.
99df6ac2 205 * em(4): Synced with Intel's em-6.9.6 (from FreeBSD).
206 * emx(4): Copy of em(4) which supports only 8257{1,2,3} parts.
207 * iwi(4): Upgrade to use 3.0 firmware and use firmware(9) API to load firmware.
02f7409b 208 * mxge(4): Add driver for mxge 10GigE (from FreeBSD + minor adjustments)
19f7f95c 209 * tap(4): Add ifclone support and autoclone support.
e8a1c705 210 * vke(4): Convert from kqueue API to cothread API.
e6e8781f 211 * Turn on adaptive MPSAFE for network threads, and MPSAFE for IP and ARP.
212 * RSS: Add Toeplitz hash function.
99df6ac2 213 * Split ifnet serializer.
214 * Add ifpoll, which support hardware TX/RX queues based polling.
f13f8a35 215
e6e8781f 216> ### Userland changes
f13f8a35 217
234cb3b8 218 * Fixed a huge number of compiler warnings for various userland utilities.
99df6ac2 219 * battd(8): Fix some errors and improve the man page
e8a1c705 220 * compilers.conf(5): This file allows to configure ''external'' compilers (e.g. LLVM/clang) for usage with the DragonFly build(7) system.
221 * cpdup(1): Allow uid/gid/flags changes to fail if running as user.
222 * env(1): unbreak build of 2.2 release branch under HEAD.
223 * expr(1): Add support for -- as required by POSIX.
e8a1c705 224 * fetch(1): Synced with FreeBSD.
ff8f168d 225 * devtab: As devfs(5) support access to devices via serial numbers, `/etc/devtab` can be used to map serial number to human readable labels.
e8a1c705 226 * devfsctl(1): New utility to add/remove/control devfs(5) rules.
b24500cc 227 * **dma(1): The DragonFly Mail Agent is now more robust and reliable.**
e6e8781f 228 * ifconfig(8): Add static ARP support.
e8a1c705 229 * installer: Fix the bug when used from console with the LiveDVD.
230 * installer: Fixed various bugs and cleaned the code.
fabe150e 231 * iscontrol(8): Brought from FreeBSD.
74db7afe 232 * libc
233 * Synced various parts with FreeBSD and NetBSD.
234 * Add some new system calls.
90ca02dd 235 * Add locale support for static binaries.
e6e8781f 236 * Apply FreeBSD-SA-09:07.libc - fix information leak in db(3).
b24500cc 237 * **Version bump to**
e8a1c705 238 * libfetch(3): Synced with FreeBSD.
90ca02dd 239 * libiconv: Add support for static binaries.
0b8fef9e 240 * libm
241 * Imported complex arithmetic functions from {Net,Free}BSD.
242 * Imported maximum, minimum, and positive difference functions from FreeBSD.
e8a1c705 243 * magic(3): Fix program name extraction from core dumps.
90ca02dd 244 * mount_msdos(8): Add UTF8 support.
245 * mount_ntfs(8): Add UTF8 support.
e6e8781f 246 * ncal(1): Highlight current day (from FreeBSD).
247 * pax(1): Add a -O option: force one volume (from NetBSD).
57104edf 248 * pkgsrc: pkgsrc GIT repo now shipped instead of CVS repo.
e6e8781f 249 * telnetd(8): Apply FreeBSD-SA-09:05.telnet - fix environment based code execution vulnerability.
99df6ac2 250 * window(1): Synced with NetBSD.
49934474 251 * vknetd(8): Add features, allow IP address to be set in unsecure mode, allow address 0.
90ca02dd 252 * smbfs(8): Add UTF8 support.
e6e8781f 253 * syslogd(8): Sync with FreeBSD.
e8a1c705 254 * telnet(1): Autologin is now disabled by default.
74db7afe 255 * undo(1)
234cb3b8 256 * Fixed @@ formatting used by undo -ad and fix duplicate test
e6e8781f 257 * Use a Red-Black tree to track HAMMER transaction IDs.
258 * It can now detect all prior replacements of a file.
259 * Add an indexing feature to the -t option.
141c9354 260 * unix98 ptys
261 * Implement posix_openpt, ptsname, grantpt, unlockpt
f82fa39b 262 * Change openpty(3) to use unix98 ptys by default and let it fall back to bsd ptys if any problem occurs.
e6e8781f 263 * vinum(8): Support for geometries larger than 2 TB was added.
234cb3b8 264 * A pkgsrc git repo is now available on the CD. You can copy it to /usr/pkgsrc and then use
265 standard GIT commands to do an incremental update to the latest pkgsrc.
99df6ac2 266
e6e8781f 267> ### amd64 related changes
99df6ac2 268
85ccfdb2 269 * From Jordan Gordeev's Google Summer of Code 2009 project.
90ca02dd 270 * Kernel can now map 512G if KVA space.
271 * Kernel now supports the entire user VM space.
4b7bc467 272 * Signal stacks, handlers, dynamic binaries, compiler warnings, etc.
99df6ac2 273 * Misc fixes for cross-building amd64.
e6e8781f 274 * Add a build system for amd64 build/test environments.
4b7bc467 275 * Both cross-build and native world/kernel builds work.
276 * Pkgsrc builds are ramping up.
277 * Load testing using parallel pkgsrc bulk builds succeeded!
90ca02dd 278 * SMP now works!
99df6ac2 279
e6e8781f 280> ### Removals
f13f8a35 281
74db7afe 282 * GNU cpio(1) was removed. The BSD licensed rewrite based on libarchive(3) is now default.
2fcd7e15 283 * GNU GCC 3.4 was removed. GCC 4.1.2 and 4.4.1 remain in base.
e6e8781f 284 * Kerberos/heimdal was removed. Use the version from pkgsrc (`security/heimdal`).
401a2ae4 285 * iwicontrol(8) was removed. The iwi(4) firmware is now loaded automatically.
f13f8a35 286
e6e8781f 287> ### Contributed Software
f13f8a35 288
e6e8781f 289 * Update file to version 5.03.
74db7afe 290 * GCC 4.4.1 was added to base, but is not enabled by default.
336a5c7d 291 * Update less to version 429.
292 * Update OpenSSH to version 5.2p1.
293 * Update OpenSSL to version 0.9.8k.
e8a1c705 294 * Sync zoneinfo database with tzdata2009l.
7a618d46 295
296## DragonFly 2.4.1 Release Notes
298### General Improvements
300 * Issues with kqueue and SIGIO not working properly on pipes have been fixed. This issue affected numerous programs including postfix, dovecot,
301 and others,which use pipes and kqueue for I/O notification.
302 * 64-bit kernels were unable to probe USB mass storage devices. Now fixed, and a 64-bit USB image is now available for 2.4.1.
303 * cdrecord sometimes paniced after burning completed.
304 * Kernel failed to finish CAM probes during boot. (Note that some drivers may still register their CAM busses too late, and this problem
305 has not yet been tracked down).
306 * Manual pages specified with relative paths which include a directory component did not work.
307 * Misc. setuid/setgid issues with exec and [f]chdir, operations sometimes failed.
308 * Installer's beastie.4th (boot loader issues) have been corrected.
309 * Boot loader now contains real-mode fixes which may improve booting from USB memory sticks.
310 * tcsh updated (fixes incorrect default autologout settings)
311 * Added support for VIA Nano and VIA C7
312 * Added support for probing OpenBSD slices
313 * Misc manual page improvements.
048d9708 314 * New aibs(4) driver for ASUSTeK AI Booster ACPI ATK0110 voltage, temperature and fan sensors.
7a618d46 316
317### Contributed Software
319 * Updated tcsh to 6.17.00