Kernel 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.
Kernel 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
· 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.