Split my changes between kernel and hardware, add more details
[ikiwiki.git] / release30 / index.mdwn
1 # DragonFly Release 3.0
2
3 ## 22 February 2012 (3.0.1 release)
4 ## 26 March 2012 (3.0.2)
5
6 The DragonFly 3.0 release is here!  This release was delayed from our regular schedule for tracking down [what appears to be a AMD CPU bug](http://gitweb.dragonflybsd.org/dragonfly.git/commit/8e32ecc0a77082f1e232a3e6d12e2f163f9667a4).  As a pleasant side effect, the giant kernel lock has been removed from much of the system and this release performs significantly better on multi-core systems than previous DragonFly versions.
7
8 ## Big-ticket items
9
10 ### Major VM SMP work
11
12 Previously the majority of the VM was under a single token, the vm_token; now vm_objects (mappable entities) are each under a private token, concurrent page faults in the same object can proceed, and VM SMP scalability overall is improved. Results for Postgres and MySQL, among others, are excellent.
13
14 Francois Tigeot [worked on benchmarks](http://leaf.dragonflybsd.org/mailarchive/kernel/2011-11/msg00004.html) comparing DragonFly 2.10 and DragonFly 2.13, among other operating systems.  The resulting graphs show how well DragonFly responds to multiple CPUs on a 24-threads Xeon system.  (2.13 is the development version of DragonFly that became 3.0.) 
15
16 [[!img  pgbench-dfly-210-213.png alt="Graph of Pgbench improvement between DragonFly releases"]]
17
18 ### HAMMER performance greatly increased
19
20 A new [time domain multiplexing method](http://leaf.dragonflybsd.org/mailarchive/commits/2011-07/msg00086.html) has been added to balance storage operation types over long time periods.  HAMMER fairness and throughput under heavy storage loads has significantly improved.
21
22 HAMMER's behavior in very low memory configurations has also improved; it will no longer readily starve a system of kernel allocation space.  HAMMER should work on systems with as little as 256MB of RAM.
23
24 ### SMP kernel installed by default
25
26 ACPI + interrupt routing have been upgraded.  A SMP kernel will work on all machines and is installed by default.
27
28 ### Disk Encryption
29
30 DragonFly now has [tcplay(8)](http://leaf.dragonflybsd.org/cgi/web-man?command=tcplay&section=8), a tool for creating and managing encrypted disk volumes.  It is 100% [TrueCrypt](http://www.truecrypt.org/) compatible and BSD licensed.
31
32 ## Availability
33
34 Four release options are now available for 32-bit as well as for 64-bit.  64-bit installations are recommended if you do not need the linux emulation layer.
35
36 * An ISO, to be burned to a physical CD or used as an image to install a virtual machine.
37 * A bootable USB disk-key image. (minimum 2G USB stick needed)
38 * A GUI bootable ISO image with a full X environment.  DVD disc required. 
39 * A GUI bootable USB disk-key image with a full X environment.  (minimum 4G USB stick needed) 
40 * The GUI images also include a snapshot of our git repos in /usr/src/.git and /usr/pkgsrc/.git which can be incrementally updated after the installation.
41
42 Note that the x86_64 GUI ISO image had booting problems that are now fixed.
43
44 The 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 master site. Each image is in the "Live CD" format, meaning that it boots into a running and fully functional DragonFly system, which can be used for testing or system recovery tasks as well as installation.  Check the [hardware page](http://www.dragonflybsd.org/docs/supportedhardware/) or boot a Live CD to check for compatibility.  
45
46 The GUI bootable USB image also contains the DragonFly git repo in /usr/src and the pkgsrc git repo in /usr/pkgsrc.  The code can be trivially checked out using these repos and can be incrementally updated from master sites, post-install.
47
48 ### MD5 sums
49
50 MD5 sums for the compressed images:
51
52 * MD5 (dfly-i386-3.0.1_REL.img.bz2) = 8f812dbcb9c0ca28a61f5a0ae1e35a9e
53 * MD5 (dfly-i386-3.0.1_REL.iso.bz2) = 0c602e122c4f8c7b31e1578fb7c975e4
54 * MD5 (dfly-i386-gui-3.0.1_REL.img.bz2) = f113ecb9839b4b1edcd0d33376d32362
55 * MD5 (dfly-i386-gui-3.0.1_REL.iso.bz2) = 3d8fcc33fbf2169868a33b8928c53d53
56 * MD5 (dfly-x86_64-3.0.1_REL.img.bz2) = d9d7880ad328c5ccf9e46b1c9de36fff
57 * MD5 (dfly-x86_64-3.0.1_REL.iso.bz2) = dcc2b27a9ef938470433465342655a90
58 * MD5 (dfly-x86_64-gui-3.0.1_REL.img.bz2) = 6ede68b56b329ab079e9fd22af343160
59 * MD5 (dfly-x86_64-gui-3.0.1_REL.iso.bz2) = 4c45c0e5249cc6f7eb325f9152eb6dd5
60 * MD5 (dfly-i386-3.0.2_REL.img.bz2) = a5981672beb23cc840d4f439399e8a9d
61 * MD5 (dfly-i386-3.0.2_REL.iso.bz2) = f09ab20769124ca70abc7d0e832d8b92
62 * MD5 (dfly-i386-gui-3.0.2_REL.img.bz2) = a3f917600067df7d06c2263c8ce768a5
63 * MD5 (dfly-i386-gui-3.0.2_REL.iso.bz2) = bf3bc18fdaa2d633aa34a178ca72cde2
64 * MD5 (dfly-x86_64-3.0.2_REL.img) = 561e9d7b2b38f9c65a437009d46d8076
65 * MD5 (dfly-x86_64-3.0.2_REL.img.bz2) = f76af56e17cd8b00f402a3e4fb615179
66 * MD5 (dfly-x86_64-3.0.2_REL.iso.bz2) = 2094b62a7b77019f45f4f45745ae8984
67 * MD5 (dfly-x86_64-gui-3.0.2_REL.img.bz2) = 33aa6333c509262b606cf78098712ea7
68 * MD5 (dfly-x86_64-gui-3.0.2_REL.iso.bz2) = f4c79ca19e35569524bc3b550840a417
69
70
71 MD5 sums for the uncompressed images:
72
73 * MD5 (dfly-i386-3.0.1_REL.img) = a7cc87b26c04a179476f9c3f20f8ce9d
74 * MD5 (dfly-i386-3.0.1_REL.iso) = dcabe48f2c5b427a1afbe5c44d9b2f04
75 * MD5 (dfly-i386-gui-3.0.1_REL.img) = f4e098334058e692f257545f7f7e0cda
76 * MD5 (dfly-i386-gui-3.0.1_REL.iso) = 64a1a228da4ee1ec37942f092094bdcf
77 * MD5 (dfly-x86_64-3.0.1_REL.img) = 9c235b5e8d8a59b0c53db3523647f9fc
78 * MD5 (dfly-x86_64-3.0.1_REL.iso) = 8bd79fb3174184f8ddf1e6ebceb028eb
79 * MD5 (dfly-x86_64-gui-3.0.1_REL.img) = 25bf66c189809910d855419551e5cd26
80 * MD5 (dfly-x86_64-gui-3.0.1_REL.iso) = 97ddd44b372c4eb0155f5d014f9325ee
81 * MD5 (dfly-i386-3.0.2_REL.img) = 97d977a2e3da997fe810a971005fb70f
82 * MD5 (dfly-i386-3.0.2_REL.iso) = c0c1ef518cb29c4e4a5f7c22f6ed6607
83 * MD5 (dfly-i386-gui-3.0.2_REL.img) = 982a4ffb2a6e4bbd911d21e863e9d644
84 * MD5 (dfly-i386-gui-3.0.2_REL.iso) = c15e0a14d6ed3d24d4fb4201a6790d8a
85 * MD5 (dfly-x86_64-3.0.2_REL.img) = 86d328e1d492131735670e1053719408
86 * MD5 (dfly-x86_64-3.0.2_REL.iso) = 2d9941ad37f973e4ecef5e4307d72b9c
87 * MD5 (dfly-x86_64-gui-3.0.2_REL.img) = 0d26160d1b0b57f3e1cfef4438d83621
88 * MD5 (dfly-x86_64-gui-3.0.2_REL.iso) = fa0bfca6babaae4f13bac654e634de8e
89
90 ### pkgsrc packages
91
92 We offer roughly 10,000 pre-built [pkgsrc](http://www.pkgsrc.org) packages for this release. The [pkg_radd(1)](http://leaf.dragonflybsd.org/cgi/web-man?command=pkg_radd&section=ANY) utility may be used to download pre-built binary packages.  The path can be overridden by setting BINPKG_BASE in `/etc/pkg_radd.conf`.
93
94 To get a list of all packages, let [pkg_search(1)](http://leaf.dragonflybsd.org/cgi/web-man?command=pkg_search&section=ANY) download the summary file for that release:
95
96     # pkg_search -d
97
98 We supply a Makefile in `/usr` to track the pkgsrc tree and we supply a Git mirror of the NetBSD pkgsrc CVS repo at `git://git.dragonflybsd.org/pkgsrcv2.git`.  We recommend that users use it, instead of pulling from NetBSD with CVS.  Our Git mirror is updated several times a day.  Type 'make' in /usr to see the available commands for performing these actions.
99
100 ## DragonFly 3.0 Special Installation and Upgrade Notes
101
102 **Disk size warning** - Unless your hard disk is 50G or larger, we recommend doing a UFS install and not the default HAMMER install.  We also recommend installing from the CD ISO, not the GUI .img, for smaller drives.  A more serious installation should use HAMMER with at least 50G of disk space and can install from the GUI .img.  HAMMER on smaller disk drives is possible but requires careful pruning to keep from filling the disk with file history.
103
104 **Virtual PC users** - Virtual PC does not supply serial numbers for the virtual disks.  The system may need to be manually directed in the boot loader if the disk identifier changes.  (Hit ? in the boot loader for a list of available volumes.)
105
106 **Qemu users** - If you see a large number of error messages on the console when booting, you may need to boot DragonFly with ACPI disabled.  This can be done in the menu presented at initial boot.  If that doesn't help, try placing hw.ioapic_enable=0 in /boot/loader.conf.
107
108 **Installer Crypt Options** - The installer can encrypt the root volume and the swap volume.  It will not work properly for other volumes despite any additional check-boxes you might see.  Installer and boot-time support works but is still a bit rough around the edges.  Performance will be relatively high on multi-core machines.
109
110 **ISA driver removal** - A number of ISA hardware drivers have been removed.  One of these drivers, ie(4), was in our GENERIC config. Another driver, aha(4), was in both our GENERIC and our X86_64_GENERIC kernel configuration files.  If you are using a kernel config based on a previous release's GENERIC config file, you may need to remove these drivers in order to successfully compile the kernel.
111
112 **PAM Changes** - The pam_krb5 and pam_ksu modules have been removed as part of a PAM update.  If you were using these modules, the security/pam-krb5 package in pkgsrc is a suitable replacement.
113
114 **crypt(3) / master.passwd changes** - Improved crypt(3) routines have been implemented as
115 part of this release. New installations will use sha512 format passwords, with improved
116 hashing available for the previous sha256 default. Though care was taken to ensure 
117 backwards compatibility with older password files, legacy binaries reading password 
118 entries will need to be rebuilt in order to authenticate against the new hashing schemes.
119 To convert existing databases to the new format, re-run passwd(1) on the desired accounts.
120
121 **Remaining issues** - The DragonFly bug tracker mentions some issues still known but not fully diagnosed at time of release.  Specifically, building world with more than 4 processes (-j 5) may cause issues on i386, and some users have seen issues with NFS.  Check the [3.0 release ticket](http://bugs.dragonflybsd.org/issues/2286) for details.
122
123 ## DragonFly 3.0.2 Release Notes
124
125 >### Kernel Changes
126
127 * Disable the I/O APIC when booting in a virtual environment by default; some VMs did not work well with DragonFly when this option was on.
128
129 ## DragonFly 3.0.1 Release Notes
130
131 > ### Kernel changes
132 * crypto(4) now supports the AES-GCM, Twofish, Serpent, Twofish-XTS and Serpent-XTS ciphers.
133 * Fixed dm(4)'s remove_all so that it works correctly when the volumes are interdependent.
134 * Improved dm(4) performance by reducing serialization in the I/O path.
135 * dm_target_crypt now supports plain64 IV generator.
136 * dm_target_crypt now supports Serpent and Twofish XTS modes.
137 * dm_target_crypt now uses per-volume mpipes. This fixes a major issue with stacked volumes.
138 * devfs(4) has been changed to track related devices explicitly by cdev pointer instead of by (sub)name. The devfs subname* API has been completely replaced by the related* API.
139 * Fixed some potential deadlocks in dsched(4) and dsched_fq.
140 * bfq(4), an experimental, work-in-progress budget fair queuing dsched(4) policy has been added.
141 * mps(4) driver has been updated and now supports RAID.
142 * pf(4) has been converted to use kmalloc instead of zalloc.
143 * Substantial update to the kernel's ELF handling.
144 * The refcount API has been overhauled.
145 * A netgraph MP race has been fixed.
146 * A bug in the kernel smb code relating to directory scanning has been fixed.
147 * NFS server updates were pulled in from FreeBSD; read and write clustering behavior is improved.
148 * MSI (Managed System Interrupt) and MSI-X support has been greatly expanded.
149 * Soft tokens can now be taken in shared mode in addition to the classical exclusive mode.
150 * Virtual file system accounting support has been added and will serve as a basis for future file-system independent quota work.
151 * Appletalk support removed.
152 * tmpfs filesystems can now be exported via NFS.
153 * libm has been updated with multiple math functions brought in from NetBSD/FreeBSD.
154 * Position-Independent Executables (PIE) support added.
155 * TRIM support added.
156 * PCI MMC/SD drivers are included in the GENERIC kernel.
157
158 > ### Hardware changes (non-networking)
159 * padlock(4) now supports the built-in random number generator and feeds entropy into the kernel's entropy pool.
160 * ubsec(4) has now been fixed to be compatible with the new crypto(4) framework.
161 * mfi(4) updated to LSI's version 3.981.
162 * hptiop(4) updated.
163 * safe(4) added.
164 * mps(4) driver updated
165 * ecc(4) now supports more hardware.
166 * coretemp(4) updated.
167
168 > ### Hardware changes (networking)
169 * bge(4) now supports the 5761, 5784, and 57780 chipsets.
170 * ndis(4) updated.
171 * msk(4) updated.
172 * re(4) updated.
173 * lgue(4) added.
174 * bce(4) updated.
175 * em(4)/emx(4) updated.
176
177 > ### New Multiprocessor-safe Work
178 * VM: vm_objects now use per-object tokens and a hold/release based-lock protocol, rather than the global VM token.
179 * VM: VM page queues locking is now fine-grained
180 * VM: x86-64 PMAP has been rewritten to synchronize at the page/object level rather than using the vm_token.
181 * VM: PMAP operations are now fine-grained.
182 * kqueue: kqueue uses per-kq and per-list token rather than a global page queue token.
183 * signals: processing locks are now per-LWP instead of per-process.
184 * exec: The entire fork/exec path is contention-free.
185 * files: The file read path through HAMMER (for the cache case) and also most of TMPFS is contention-free.
186
187 > ### Userland changes
188 * The C library slab allocator (nmalloc) has been replaced with a considerably more scalable, faster design on x86-64 (dmalloc).
189 * proplib(3) has been updated
190 * libdm, a simple BSD-licensed device mapper library that is API-compatible with libdevicemapper has been added.
191 * tcplay(8), a simple BSD-licensed tool that allows creation, managing and mapping of TrueCrypt volumes has been added. It is fully integrated with initrd and cryptdisks and 100% compatible with TrueCrypt.
192 * tcplay(3), a library based on tcplay(8) that allows access to TrueCrypt volumes, has been added.
193 * POSIX 2008 fmemopen(3) and open_memstream(3) routines have been added to libc
194 * Bug in socket timeouts has been fixed, allowing Varnish to run w/ default configuration.
195 * The jail rc.d script can now automatically mount a devfs inside the jails.
196 * Minor fix in hammer(8) for snapshot count in the info directive.
197 * Major update to rtld-elf.
198 * Major update and bugfixes to sh(1).
199 * 'hammer dedup' can run in fixed memory by running multiple passes.
200 * buildworld can now be run in parallel for faster results.
201 * dfregress, a regression testing framework, added. 
202 * Support for exception handling on statically-linked binaries.
203 * libhammer, a library for HAMMER functions, has been added.
204 * tuxload, a tool for stressing the VM system's free memory, has been added.
205 * Patches for use with Coccinelle and DragonFly are now included.
206 * crypt(3) password hashing improvments, with more secure sha512 format passwords as default.
207
208 > ### x86_64-specific changes
209 * A bug in the initial stack pointer alignment has been fixed.
210 * File-descriptor passing via sendmsg has been fixed on x86_64
211 * MTRR support added to x86_64 kernel
212 * dmalloc added (see Userland Changes)
213
214 > ### Removals
215 * The following ISA only drivers have been removed along with a couple of associated userland tools: aha(4), asc(4), sasc(1), ctx, dgb(4), el(4), gpib, gsc(4), sgsc(1), ie(4), labpc(4), le(4),  mse(4), rc(4), rdp(4), spigot, tw(4) & xten(1) & xtend(8), wl(4),  wlconfig(8), wt(4).
216
217 > ### Contributed Software
218 * Shipping with pkgsrc-2011Q4 built packages.
219 * binutils 2.20 removed
220 * libgnuregex removed
221 * BSD gprof replaced with GNU gprof
222 * GNU sort replaced by NetBSD sort
223 * xchat removed from GUI build
224 * awk updated to 20110810
225 * binutils updated to 2.22 (2.21 is the default)
226 * dma updated to 0.7
227 * diffutils updated to 3.2
228 * file updated to 5.10
229 * ftp updated to match NetBSD's tnftp as of 2012/01/08
230 * gcc44 updated to 4.4.7
231 * gdb (and kdgb) updated to 7.3
232 * gdtoa 20110321 added
233 * grep updated to 2.9
234 * ldns/drill updated to 1.6.11
235 * less updated to 444
236 * libarchive updated to 3.0.3
237 * libgmp updated to 5.0.2
238 * libmpfr updated to 3.1
239 * libpcap updated to 1.2.1
240 * mdocml updated to 1.11.3
241 * OpenPAM updated to 'Lycopsida'
242 * OpenSSH updated to 5.9p1
243 * OpenSSL updated to 1.0.0g
244 * sendmail updated to v8.14.15
245 * tcpdump updated to 4.2.1
246 * texinfo updated to 4.13
247 * xz updated to 5.0.3
248 * zoneinfo database updated to tzdata2011n 
249
250 >### Security related
251
252 * CVE-2011-4862, telnetd, fixed.
253 * CVE-2011-3581, CVE-2011-3207, CVE-2011-3210, CVE-2010-3864 CVE-2010-2939 fixed through contrib software updates.
254 * crypt(3) changed to use the Linux implementation of SHA256/512.  SHA512 is the new default.