April 27th, 2011· 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.
· 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.
· 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.
· Compiler updates - DragonFly now uses gcc 4.4 as the default system compiler, and is the first BSD to take that step.
· 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.
· 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
· Overall Performance - DragonFly now offers significant performance gains over previous releases, especially for machines using AHCI or implementing swapcache(8).
· ACPI Support - Major update to DragonFly's ACPI support have been made, particularly for interrupt routing.
April 7th, 2010Kernel changes:
· Ported tmpfs (efficient memory filesystem) from NetBSD
· Added support for minidumps
· Added swapcache support for SSDs
· Ported POSIX Message Queues from NetBSD (Google Summer of Code Project).
· Updated Linuxulator (now runs java, flash,...) for i386
· fixed vinum root mounts
· Added watchdog framework (compatible with watchdogd(8))
· Added gpio framework
· Ported minidumps from FreeBSD (enabled by default)
· Added vkernel64 (64-bit vkernels - experimental)
· Added hotplug pseudo-device
· Removed msfbufs and reimplemented sfbufs as a consumer of the newly added lwbufs (lightweight buffers)
· fixed checkpointing
· Updated opencrypto from FreeBSD-current
· Updated ACPI from FreeBSD 7.2
· Updated CPU initialization code From FreeBSD
· Serious reduction in KVM use for i386
· KVM expanded to 8GB for x86_64
· Major performance fixes for random I/O
HAMMER changes:
· Updated to HAMMER version 4
· snapshot settings and snapstops moved out of /snapshots and into meta-data
· REDO generation and recovery added to support fast fsync
· Extended 'hammer snapls' output to print mountpoints and snapshot notes.
· 'hammer viconfig' takes editor preference into account now
· Numerous low-memory deadlocks fixed
Hardware changes (non-networking):
· uchcom(4): The driver for WinChipHead CH341/CH340 is now working stable
· glxsb(4): The driver has been imported from FreeBSD
· hifn(4): The driver has been fixed to work with updated opencrypto
· cs5536: Added support for watchdog and gpio on this chip
· nsclpcsio(4): The driver has been imported from OpenBSD
· Geode LX: Enable identification and features of this CPU
· New aibs(4) driver for ASUSTeK AI Booster ACPI ATK0110 voltage, temperature and fan sensors
· New kate(4) and km(4) drivers for AMD Family 0Fh, 10h and 11h AMD64 temperature sensors
· New aps(4) driver for ThinkPad Active Protection System accelerometer
· New wbsio(4) driver for Winbond LPC Super I/O attachment of lm(4) on any ISA port
Hardware changes (networking):
· Imported the alc(4) driver for Atheros AR8131/AR8132 NICs
· Imported the e1000(4) driver from FreeBSD for Intel Pro/1000 NICs
Userland changes:
· null mounts now accept -o update
· awk(1): increased input field separator width to handle extended regexps.
· cpdup(1): added -VV option to verify file's contents and ignore mtime entirely.
· mount_nfs(8): rdirplus is now the default
· periodic(8) security now also reports pkgsrc vulnerabilities
· watchdogd: import from OpenBSD
· hotplugd(8): import from OpenBSD
amd64 related changes:
· amd64 has been renamed to x86_64
· 64-bit vkernels now work on 64-bit boxes
Removals:
· The T/TCP extension is no longer supported
Contributed Software:
· Updated BIND to 9.5.2-P3 incl. DNSSEC support available by default
· Updated SENDMAIL to 8.14.4
· Updated wpa_supplicant to 0.6.10
· Updated hostapd to 0.6.10
· Updated groff to 1.20.1
· Updated file to 5.04
· Updated ncurses to 5.7
· Updated top to 3.8beta1 including DragonFly specific patches
· Updated less to 436
· Updated openssh to 5.3p1 (with HPN patch)
· Updated gcc 4.4 to 4.4.2
· Added binutils 2.20
· Added cryptodev support to OpenSSL
Security related:
· ssh server: change defaults for new installations to disallow plain text passwords and allow root login via public key
September 17th, 2009Kernel changes:
· acpi(4): Import acpica-unix-20090521.
· acpi(4): Improved power & frequency management for cpus.
· acpi(4): Significantly improved APIC support.
· buf/bio: New read-prioritizing bioq sort algorithm. The new algorithm does a much better job prioritizing reads over writes and also contains features to avoid starving-out writes. It works best with CAM based drivers but NATA uses some of its functionality too.
· buf/bio: Make biowait(), getpbuf(), and most other buf/bio functions MPSAFE.
· buffer-cache: Improved pipe-lining for writes.
· bpf(4): Add autocloning support
· devfs(5): Replaced the static /dev directory with a dynamic device file system written by Alex Hornung during the Google Summer of Code 2009.
· ddb(4): Fix an IPI messaging lockup which can occur while in ddb(4).
· disklabel64(5): Add UFS + HAMMER boot support (was previously just HAMMER boot support).
· drm(4): Sync code with latest from FreeBSD.
· ext2fs: Support variable inode size (from FreeBSD).
· mountctl/mount -v: New infrastructure for reporting mount flags.
· NFS improvements
· msdos(5): Fixed a number of bugs.
· pci(4): Sync code with FreeBSD 7.2.
· Bring iscsi_initiator(4) from FreeBSD.
· pipe(2): Pipes are now 100% MPSAFE.
· Add new cred/privilege infrastructure for jail and general use.
· Consolidate VOP access tests in vop_helper_access().
· usched_set: Add USCHED_CPU_GET for retrieving the current CPU.
· revoke(2): Reimplemented the revoke code.
· pty: Add Unix98 ptys (/dev/ptmx and /dev/pts/*).
· sound: add autocloning support for dsp devices.
· tcp: Fixed a reestablishment bug for TCP connections if one side reboots without closing the connection. A port pair could wind up becoming unusable for upwards of an hour or longer.
· tcp: Improve performance by implementing an automatic high-water mark when it is not otherwise specified, allowing hysteresis between the kernel and the tcp protocol stack.
· tsleep: New tsleep interlock mechanics implemented to fix races.
· vkernel(7) improvements
· vn(4): Add autocloning support
· Fixed permissions check for utimes() - owner can call even if u-w.
· Replace the old BSD malloc code with a port of our slab allocator.
· Fix various clang compile issues
· Add HPET cputimer.
· Add lapic timer and enable it by default.
· Add kernel-layer support for chflags checks, remove (most) from the VFS layer.
HAMMER changes:
· Return shorter-form softlinks "@@-1:d" when appropriate.
· Add a B-Tree rebalancing feature (hammer rebalance).
· Fixed improper cred checks for utimes().
· Fixed edge case in mirroring code.
· Fixed nohistory mounts and a rare lost inode issue.
· Fixed sticky bit directory handling for deletions.
· Break-up initial mirroring batch so restarts do not start from scratch.
· Better CRC handling, bad-file handling.
· Refactor merged search function to try to avoid missed entries.
· Limit recursion for long directory chains, update mtime/ctime.
· Improve performance for large write loads.
· Improve directory layout (in-place upgrade to version 2).
· Allow hammer -b to specify bytes per second if no suffix is supplied.
· Extract PFS null mounts from anywhere in the filesystem, instead of just from the /pfs subdirectory.
· Add hammer info directive which prints useful info about a hammer filesystem.
Hardware changes (non-networking):
· ath(4): Add open source HAL code (from FreeBSD) and make it possible to build it into the kernel.
· cxm(4): Add new driver for Hauppauge PVR-250/350 video capture cards (from FreeBSD).
· kbdmux(4): Add multiple keyboards on the console via keyboard multiplexer (from FreeBSD).
· mpi(4): Sync the driver with the latest version from FreeBSD.
· mpt(4): Sync the driver with the latest version from FreeBSD.
· ahci(4): Implement a native AHCI driver with full hot-plug and port multiplier support. Also implement ATA pass-through. Uses CAM.
· sili(4): Implement a native Silicon Image 3132 driver with full hot-plug and port multiplier support. Also implement ATA pass-through. Uses CAM.
· Hardware changes (networking)
· ae(4): Add driver for Attansic/Atheros L2 FastEthernet (from FreeBSD).
· em(4): Synced with Intel's em-6.9.6 (from FreeBSD).
· emx(4): Copy of em(4) which supports only 8257{1,2,3} parts.
· iwi(4): Upgrade to use 3.0 firmware and use firmware(9) API to load firmware.
· mxge(4): Add driver for mxge 10GigE (from FreeBSD + minor adjustments)
· tap(4): Add ifclone support and autoclone support.
· vke(4): Convert from kqueue API to cothread API.
· Turn on adaptive MPSAFE for network threads, and MPSAFE for IP and ARP.
· RSS: Add Toeplitz hash function.
· Split ifnet serializer.
· Add ifpoll, which support hardware TX/RX queues based polling.
Userland changes:
· Fixed a huge number of compiler warnings for various userland utilities.
· battd(8): Fix some errors and improve the man page
· compilers.conf(5): This file allows to configure ''external'' compilers (e.g. LLVM/clang) for usage with the DragonFly build(7) system.
· cpdup(1): Allow uid/gid/flags changes to fail if running as user.
· env(1): unbreak build of 2.2 release branch under HEAD.
· expr(1): Add support for -- as required by POSIX.
· fetch(1): Synced with FreeBSD.
· devtab: As devfs(5) support access to devices via serial numbers, /etc/devtab can be used to map serial number to human readable labels.
· devfsctl(1): New utility to add/remove/control devfs(5) rules.
· dma(1): The DragonFly Mail Agent is now more robust and reliable.
· ifconfig(8): Add static ARP support.
· installer: Fix the bug when used from console with the LiveDVD.
· installer: Fixed various bugs and cleaned the code.
· iscontrol(8): Brought from FreeBSD.
· libc updates
· libfetch(3): Synced with FreeBSD.
· libiconv: Add support for static binaries.
· libm improvements
· magic(3): Fix program name extraction from core dumps.
· mount_msdos(8): Add UTF8 support.
· mount_ntfs(8): Add UTF8 support.
· ncal(1): Highlight current day (from FreeBSD).
· pax(1): Add a -O option: force one volume (from NetBSD).
· pkgsrc: pkgsrc GIT repo now shipped instead of CVS repo.
· telnetd(8): Apply FreeBSD-SA-09:05.telnet - fix environment based code execution vulnerability.
· window(1): Synced with NetBSD.
· vknetd(8): Add features, allow IP address to be set in unsecure mode, allow address 0.
· smbfs(8): Add UTF8 support.
· syslogd(8): Sync with FreeBSD.
· telnet(1): Autologin is now disabled by default.
· undo(1) improvements
· vinum(8): Support for geometries larger than 2 TB was added.
· A pkgsrc git repo is now available on the CD. You can copy it to /usr/pkgsrc and then use standard GIT commands to do an incremental update to the latest pkgsrc.
· amd64 related changes
· From Jordan Gordeev's Google Summer of Code 2009 project.
· Kernel can now map 512G if KVA space.
· Kernel now supports the entire user VM space.
· Signal stacks, handlers, dynamic binaries, compiler warnings, etc.
· Misc fixes for cross-building amd64.
· Add a build system for amd64 build/test environments.
· Both cross-build and native world/kernel builds work.
· Pkgsrc builds are ramping up.
· Load testing using parallel pkgsrc bulk builds succeeded!
· SMP now works!
Removals:
· GNU cpio(1) was removed. The BSD licensed rewrite based on libarchive(3) is now default.
· GNU GCC 3.4 was removed. GCC 4.1.2 and 4.4.1 remain in base.
· Kerberos/heimdal was removed. Use the version from pkgsrc (security/heimdal).
· iwicontrol(8) was removed. The iwi(4) firmware is now loaded automatically.
Contributed Software:
· Update file to version 5.03.
· GCC 4.4.1 was added to base, but is not enabled by default.
· Update less to version 429.
· Update OpenSSH to version 5.2p1.
· Update OpenSSL to version 0.9.8k.
· Sync zoneinfo database with tzdata2009l.
April 30th, 2009Kernel changes:
· Fixes for libthread_xu: MAP_STACK and an errno leak.
Hardware changes:
· Bug fixes for sppp(4), and i4b(4).
· Fixed recursive lock in detached close of /dev/tty.
HAMMER changes:
· HAMMER VFS: Added missing hammer_rel_volume() call in deadlock/retry case.
Networking changes:
· Allowed the IP_MINTTL socket option to be set to zero.
Release improvements:
· Fixed an installworld failure due to kernel fixes and a libthread_xu issue.
· Installer now works correctly in the console, and properly creates device files if they don't exist.
Userland changes:
· Updates for msdosfs, pax(1), and magic(3)
· Allowed uid/gid/flags changes to fail if running cpdup as a user
Contributed software:
· Synced zoneinfo database with tzdata2009f from elsie.
Security updates:
· FreeBSD-SA-09:05.telnet - fix environment based code execution vulnerability
February 18th, 2009· The HAMMER filesystem is considered production-ready in this release; it was first released in July 2008. The 2.2 release represents major stability improvements across the board, new drivers, much better pkgsrc support and integration, and a brand new release infrastructure with multiple target options. Three 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 (less than 512M). We offer over 7,300 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.