Heed a warning against "short" USB sticks.
[ikiwiki.git] / release210 / index.mdwn
1 # DragonFly Release 2.10
2 ## 26 April 2011 (2.10.1)
3
4 The DragonFly 2.10 release is here!
5
6 ## Big-ticket items
7
8 **Hardware and multiprocessor support** - This release supports a much larger variety of hardware and multiprocessor systems than previous releases, thanks to updates of ACPI and APIC and ACPI interrupt routing support.
9
10 **Hammer Deduplication** - Hammer volumes can now deduplicate volumes overnight in a batch process and during live operation.  The 'hammer dedup-simulate' command can be used to estimate space savings for existing data.
11
12 **Packet Filter (pf)** - Pf was updated to a version based upon OpenBSD 4.4. The previous version of pf in DragonFly was based on OpenBSD 4.2. 
13
14 **Compiler updates** - DragonFly now uses gcc 4.4 as the default system compiler, and is the first BSD to take that step.  
15
16 **New bridging functionality** - The bridging system has been rewritten.  Multiple interfaces on a single system can be bound together transparently under a single virtual MAC address, and bandwidth aggregated to that new interface.
17
18 **MP Performance** - The MPLOCK (the primary lock, that when held ensures only a single cpu is operating within the kernel) has been removed from every area except the VM system. DragonFly is one of the few non-academic operating systems to use a primary sychronization mechanism that is not a blocking mutex
19
20 **Overall Performance** - DragonFly now offers significant performance gains over previous releases, especially for machines using AHCI or implementing swapcache(8).
21
22 **ACPI Support** - Major update to DragonFly's ACPI support have been made, particularly for interrupt routing.
23
24 ## Availability
25
26 Three 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.
27
28 * An ISO, to be burned to a physical cd or used as an image to install a virtual machine.
29 * A bootable USB disk-key image (minimum 2G USB stick needed)
30 * A GUI bootable USB disk-key image with a full X environment.  Minimum 4G USB stick needed. Some sticks
31 labelled as "4GB" actually provide just something like
32 3.88e9 bytes, short of any reasonable "4GB" value.
33 The image is pretty crammed towards "4GB", you better check actual sizes before the large download.
34
35 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
36
37 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 even an old repo can be incrementally updated from master sites post-install.
38
39 ### MD5 sums
40
41 * MD5 (dfly-i386-2.10.1_REL.img.bz2) = 3b296fdbdb6189c802954b1267956048
42 * MD5 (dfly-i386-2.10.1_REL.iso.bz2) = 3761a7deedcf4b07168a822cb068bf27
43 * MD5 (dfly-i386-gui-2.10.1_REL.img.bz2) = ae4df7b369f1c6129638eb0daa424cab
44 * MD5 (dfly-x86_64-2.10.1_REL.img.bz2) = 3cc9df8f74f8c329605ad08cd8045a80
45 * MD5 (dfly-x86_64-2.10.1_REL.iso.bz2) = 980305aa5282138a3fdecbe182334e53
46 * MD5 (dfly-x86_64-gui-2.10.1_REL.img.bz2) = 13243061d32cc68d95eeb8cf36aefb1d
47 * MD5 (dfly-i386-2.10.1_REL.img) = d9c210e32b34d5697744c3db60d8c734
48 * MD5 (dfly-i386-2.10.1_REL.iso) = 7ead78315076382bc3410c6af12d4bcd
49 * MD5 (dfly-i386-gui-2.10.1_REL.img) = 152188ac8ba600c4428e774d6e70a787
50 * MD5 (dfly-x86_64-2.10.1_REL.img) = 088ee5b4119b1a7fc8986912f15d06fb
51 * MD5 (dfly-x86_64-2.10.1_REL.iso) = 069f8c819b4a0418c05ca1a8b375092b
52 * MD5 (dfly-x86_64-gui-2.10.1_REL.img) = ab4ed9e564efe6d48122a3b1c949cfd4
53
54 ### pkgsrc packages
55
56 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`.
57
58 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:
59
60     # pkg_search -d
61
62 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.
63
64 ## DragonFly 2.10 Special Installation and Upgrade Notes
65
66 **Using deduplication** - Hammer volumes need to be upgraded to version 5 to use deduplication.  The 'hammer version-upgrade <filesystem> <version>' command will perform this in-place. To enable periodic deduplication, run 'hammer viconfig' on each PFS and add the line 'dedup     1d 5m'.
67
68 **APIC_IO** - The APIC_IO kernel option can now also be controlled via the hw.apic_io_enable /boot/loader.conf tunable.  The kernel option simply specifies the default now.
69
70 **VirtualBox, Virtual PC, and VMWare users** - Unless your virtual 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 and not the GUI IMG.  A more serious installation should use HAMMER with at least a 50G disk image and can install from the GUI IMG.
71
72 **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.)
73
74 **Interrupt Routing Issues** - If you are experiencing interrupt routing issues there are several boot options you can try.  You can try booting both UP and MP kernels (both are available via the boot menu), you can try booting without ACPI, you can boot with ACPI but disable ACPI-based interrupt routing by setting debug.acpi.disabled="pcib", you can disable use of the IO APICs by setting hw.apic_io_enable=0, and you can enable an emergency interrupt polling thread by setting kern.emergency_intr_enable=1.  Once you have a working system you can edit /boot/loader.conf on the USB stick to set your new defaults in stone.
75
76 **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.
77
78 ## DragonFly 2.10 Release Notes
79
80 ### Release Improvements
81
82 > ### Kernel changes
83  * Update of pf from OpenBSD 4.2 to 4.4, keeping DragonFly specific additions (support for pickups and fairq).
84  * mlockall(2)/munlockall(2) implemented
85  * devfs chown/chmod bug fixes
86  * Major overhaul of the device mapper (dm)
87  * dm_target_crypt now uses mpipe for memory allocations
88  * New kern.proc.cwd sysctl
89  * Major overhaul of the vn(4) driver
90  * Many sysctls now have a description
91  * msdosfs bug fixes
92  * mbuf now supports MJUMPAGESIZE
93  * Fix fstatfs() and fstatvfs() when called from a null-mounted chroot()
94  * Several subsystems switched from zalloc to objcache (ufs dirhash, NFS, aio, crypto)
95  * Minimum UNDO storage raised to 500M by newfs_hammer.
96  * Lots of code WARNS raises to improve portability.
97  * ACPI interrupt routing implemented and enabled by default
98  * ACPI - tons of work has gone into our ACPI support.
99  * APIC_IO now acts as a default and can be changed in /boot/loader.conf
100  * Overhaul LWKT and USCHED schedulers for MP performance when many cpus are present.
101  * Significant HAMMER bug fixes and performance improvements.
102  * HAMMER enhancements to allow swapcache to more easily cache file data via vfs.hammer.double_buffer mode.
103  * HAMMER double_buffer mode's strategy code is now asynchronous.
104  * CAM tag reservation code fixed for AHCI and SILI drivers.
105  * CAM DA driver enhanced to separate read and write streams, allowing concurrent write completion in the face of many stalled read requests.
106  * Major enhancements to the if_bridge code, adding support for bonding, weights, and other features.
107  * Use blocking mbufs in TAP/TUN to avoid unnecessary packet loss.
108  * Fixed a few difficult-to-reproduce bugs in the VM system
109  * Major timer functionality changes, the 8254 will no longer be used unless there is no other choice.
110  * Jump page support added to the mbuf API and used in several WIFI drivers.
111  * Fix bugs in ktrace related to the MP work which could freeze the system.
112  * LWKT thread migration code redone.
113  * The FAIRQ altq has been significantly enhanced and now supports weighted expansion of bandwidths up to the interface bandwidth.
114  * Lots of MP-related bug fixes to the network stack.
115  * Use MONITOR/MWAIT in the idle thread as an intermediate step prior to ACPI halt.
116  * Added mmap offset randomization. The randomization is controllable via the sysctl vm.randomize_mmap, which by default is 0 (off).
117
118 > ### Hardware changes (non-networking)
119  * mfi(4) RAID driver and mfiutil(8) configuration tool added.
120  * arcmsr(4) updated
121  * twe(4) updated
122  * amr(4) updated
123  * aac(4) updated
124  * hptmv(4) added
125  * hptiop(4) added
126  * dc(4) support for the Abocom FE2500
127  * tws(4) added, a driver for the LSI 3ware 9750 series SATA/SAS RAID controllers.
128  * aesni(4) bug fixes
129  * kqueue added to ulpt to improve CUPS support.
130  * AHCI driver enhanced to better support semi-broken chipsets which do not properly mask transient phy events during training.
131  * AHCI driver hotplug support improved.
132
133 > ### Hardware changes (networking)
134  * Wireless cards utilizing the following drivers are supported in this release: ath, iwi, iwn, ral, wi, wpi. (update me)
135  * The following drivers have not been ported and will not yet work: acx, an, bwi, ndis, rtw, rum, ural. (update me)
136
137 > ### New Multiprocessor Safe Work
138  * BGL replaced by mp_token, mp_token replaced by per-subsystem tokens in nearly all cases
139  * Most per-subsystem tokens replaced with fine-grained tokens, except for VM.
140  * The lwkt_token API has been greatly simplified.
141  * Numerous scheduler and memory management changes to improve MP performance.
142
143 > ### Userland changes
144  * The installer now allows you to crypt swap and root
145  * libcrypt now supports sha256/512
146  * The default password hash is now sha256
147  * dmsetup now supports remove_all
148  * utmpx and wtmpx support
149  * newfs now supports volume names
150  * hammer(8) now supports listing volumes
151  * New library libfsid, used to determine what FS is on a given volume
152  * New utility: devattr, exposes the libdevattr and kern_udev functionality
153  * fstat(1) now supports devfs
154  * powerd now dynamically reduces the set of cpus available and adjusts their frequencies independently when the hardware supports it.
155  * GLOB_LIMIT removed from ftpd because it was getting hit by nominal pkgsrc operations.  Swapcache removes most of the DOS attack potential.
156
157 > ### x86_64-specific changes
158 * 64-bit systems now can support up to 63 CPUs and 512G of RAM
159 * Much faster early-kernel-boot memory test
160 * More generous kernel resource limits
161
162 > ### Removals
163 * TBD
164
165 > ### Contributed Software
166 * Shipping with pkgsrc-2011Q1 built packages.
167 * Code from DragonFly's participation in Google Code-In 2011
168 * Updated ldns/drill to 1.6.7
169 * Updated libarchive to 2.8.4
170 * Updated zlib to 1.2.5
171 * Updated OpenSSL to 1.0.0d
172 * Updated OpenSSH to -5.8p1
173 * Updated file to 5.05
174 * Updated zoneinfo to tzdata2011g
175 * Updated binutils to 2.21
176 * Updated acpica to 20110211
177 * Updated mdocml to 1.10.9
178 * Updated gcc to 4.4.5
179 * Imported xz-5.0.0
180 * Imported binutils 2.21
181
182
183
184 >### Security related
185 * A security issue in OpenSSL (CVE-2011-0014) was fixed.
186