# DragonFly Release 3.0 ## ?? February 2012 The DragonFly 3.0 release is here! ## Big-ticket items ### HAMMER performance greatly increased A new time domain multiplexing method has been added to balance storage operation types over long time periods. As a result, HAMMER performance increased by XX% under some typical scenarios (see benchmarks here, here, here) and HAMMER fairness and throughput under heavy storage loads is now better than all tested alternatives. http://leaf.dragonflybsd.org/mailarchive/commits/2011-07/msg00086.html HAMMER's behavior in very low memory configurations has also improved; it will no longer readily starve a system of kernel allocation space. ### SMP kernel installed by default ACPI + interrupt routing have been upgraded. A SMP kernel will work on all machines and can be installed by default. ### Major VM SMP work 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 improved. Results for Postgres and MySQL, among others, are excellent. See: http://leaf.dragonflybsd.org/mailarchive/kernel/2011-11/msg00004.html http://dl.wolfpond.org/Pg-benchmarks.pdf ## Availability 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. * An ISO, to be burned to a physical cd or used as an image to install a virtual machine. * A bootable USB disk-key image (minimum 2G USB stick needed) * A GUI bootable USB disk-key image with a full X environment. _Minimum_ 4G USB stick needed. 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 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. ### MD5 sums * MD5 (dfly-i386-2.12.1_REL.img.bz2) = * MD5 (dfly-i386-2.12.1_REL.iso.bz2) = * MD5 (dfly-i386-gui-2.12.1_REL.img.bz2) = * MD5 (dfly-x86_64-2.12.1_REL.img.bz2) = * MD5 (dfly-x86_64-2.12.1_REL.iso.bz2) = * MD5 (dfly-x86_64-gui-2.12.1_REL.img.bz2) = * MD5 (dfly-i386-2.12.1_REL.img) = * MD5 (dfly-i386-2.12.1_REL.iso) = * MD5 (dfly-i386-gui-2.12.1_REL.img) = * MD5 (dfly-x86_64-2.12.1_REL.img) = * MD5 (dfly-x86_64-2.12.1_REL.iso) = * MD5 (dfly-x86_64-gui-2.12.1_REL.img) = ### pkgsrc packages 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§ion=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`. To get a list of all packages, let [pkg_search(1)](http://leaf.dragonflybsd.org/cgi/web-man?command=pkg_search§ion=ANY) download the summary file for that release: # pkg_search -d 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. ## DragonFly 2.12 Special Installation and Upgrade Notes **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. **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.) **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. **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. ## DragonFly 2.12 Release Notes ### Release Improvements > ### Kernel changes * crypto(4) now supports the AES-GCM, Twofish, Serpent, Twofish-XTS and Serpent-XTS ciphers. * Fixed dm(4)'s remove_all so that it works correctly when the volumes are interdependent. * Improved dm(4) performance by reducing serialization in the I/O path. * dm_target_crypt now supports plain64 IV generator. * dm_target_crypt now supports Serpent and Twofish XTS modes. * dm_target_crypt now uses per-volume mpipes. This fixes a major issue with stacked volumes. * 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. * Fixed some potential deadlocks in dsched(4) and dsched_fq. * bfq(4), an experimental, work-in-progress budget fair queuing dsched(4) policy has been added. * Substantial update to the kernel's ELF handling * The refcount API has been overhauled. * A netgraph MP race has been fixed. * A bug in the kernel smb code relating to directory scanning has been fixed. * NFS server updates were pulled in from FreeBSD; read and write clustering behavior is improved. > ### Hardware changes (non-networking) * padlock(4) now supports the built-in random number generator and feeds entropy into the kernel's entropy pool. * ubsec(4) has now been fixed to be compatible with the new crypto(4) framework. * lsi(4) updated to version 3.981. * mfi(4) & mfiutil(8) updated. * hptiop(4) updated. * safe(4) added. > ### Hardware changes (networking) * bge(4) now supports the 5761, 5784, and 57780 chipsets. * ndis(4) updated. > ### New Multiprocessor Safe Work * vm_objects now use per-object tokens and a hold/release based-lock protocol, rather than the global VM token. > ### Userland changes * The C library slab allocator (nmalloc) has been replaced with a considerably more scalable, faster design on x86-64 (dmalloc). * proplib(3) has been updated * libdm, a simple BSD-licensed device mapper library that is API-compatible with libdevicemapper has been added. * 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. * tcplay(3), a library based on tcplay(8) that allows access to TrueCrypt volumes, has been added. * POSIX 2008 fmemopen(3) and open_memstream(3) routines have been added to libc * Bug in socket timeouts has been fixed, allowing Varnish to run w/ default configuration. * The jail rc.d script can now automatically mount a devfs inside the jails. * Minor fix in hammer(8) for snapshot count in the info directive. * Major update to rtld-elf. * Major update and bugfixes to sh(1). > ### x86_64-specific changes * A bug in the initial stack pointer alignment has been fixed. * File-descriptor passing via sendmsg has been fixed on x86_64 * MTRR support added to x86_64 kernel > ### Removals * 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). > ### Contributed Software * Shipping with pkgsrc-2011Q3 built packages. * ldns/drill updated to 1.6.9 * sendmail updated to v8.14.15 * grep updated to 2.7 * GNU sort replaced by NetBSD's * gcc44 updated to 4.4.7 * gdb updated to 7.2 * binutils220 updated to 2.20.1 * binutils 2.21 imported * xchat removed from GUI build * file updated to 5.09 * less updated to 444 * awk updated to 20110810 * OpenSSH updated to 5.9p1 * OpenSSL updated to 1.0.0e * zoneinfo database updated to tzdata2011l * mdocml update to 1.11.3 >### Security related