release14
Obtaining DragonFly 1.4.x for your system
1.4.4 ISO Images for CDs
DragonFly CDs are 'live', which means that the CD will boot your system and let you log in as root (no password). You can use this feature to check for hardware compatibility and play with DragonFly a little before actually installing it on your hard drive.
The CD includes an installer that can be run at the console, or (experimentally) via a web browser. Make sure you read the README file for more information. To activate the installer, boot the CD and login as 'installer'.
As of this release the installer has a Netboot server option. You can boot the CD on one machine, enable the feature via the installer, and then PXEBoot other systems and do a network based install. System operators should be aware that running the netboot server hardwires a 10.1.0.X network and runs a DHCP server which might interfere with other DHCP servers on your LAN.
See the 'Download Site' list below for a list of download locations.
The MD5 for the release is:
MD5 (dfly-1.4.0_REL.iso.gz) = 5dc706f0dc57d691a8291f44cd19998c
MD5 (dfly-1.4.4_REL.iso.gz) = dcc9c9670144d6afa7982b528544ea71
1.4.x Release Errata
DragonFly releases are meant to be stable, dependable entities. We backport compatible bug fixes from current development into release branches but we do not generally backport new features. The release CD is always a '.0', e.g. 1.4.0. The most common way to track a release is to use cvsup to track the release sources and then build and install a new world and kernel to keep your system updated.
We do not always get every last little fix into a release. Please be sure to read the errata page for the release CD!
Version | Date | Comments | |
---|---|---|---|
1.4.4 | 23-Apr-2006 | RELEASE CD | Errata |
1.4.x Release Sites
Organization | Mirrored Data | Access methods |
---|---|---|
Chlamydia.fs.ei.tum.de (Germany) | 1.4.4_REL image | HTTP FTP |
TheShell.com | 1.4.4_REL image | HTTP FTP TORRENT |
Dragonflybsd.org (USA) | 1.4.4_REL image | FTP (try to find another site first) |
Release Notes for DragonFly 1.4.4
1.4.4 is the fourth bug-fix sub-release in the 1.4 release branch.
- Fixed a bug in pcb_ext, used when mapping I/O.
- Fixed a number of bugs in UFS's softupdates.
- Fixed a bug related vesa mode screen restore.
- Fixed a module ref counting bug.
- Reengineered the Random Number Entropy gathering algorithm.
- Sysmouse termio defaults are now correct by default.
- Various NFS races have been fixed.
- A bug in the NFS access cache was fixed, related to coarse offset adjustments to the time of day.
- MSDOS filesystems can now be exported via NFS.
- A number of wchar related fixes have been made.
- A serious sendmail security fix was brought in.
- Numerous kernel memory disclosure holes have been closed.
- Various VFS races which could lead to filesystem corruption have been fixed.
- Various bugs in NDIS have been fixed.
- A microseconds vs nanoseconds mixup in adjtime() has been fixed.
- A number of IPSEC related bugs have been fixed
- A bug in the fork/exit code that could result in a hung process has been fixed.
- Numerous networking issues have been fixed.
- A linker bug related to TLS vs non-TLS storage has been fixed.
- Numerous installer errata has been fixed.
Release Notes for DragonFly 1.4.0
1.4 is our third major DragonFly release. DragonFly's policy is to only commit bug fixes to release branches.
The two biggest user-visible changes in this release are (a) A major revamping of libc, ctype, and wchar support, as well as changes made in the kernel which require us to bump the major rev for all of our shared libraries, and (b) The introduction of PKGSRC to manage third party applications. DragonFly no longer supports the FreeBSD PORTS system.
A huge amount of under-the-hood work has been accomplished with this release, in particular with network device drivers and protocol stacks, journaling, and the scheduler. A phenominal amount of work has gone into stabilizing major subsystems as part of our effort to remove the big giant lock. A lot of obscure race conditions and bugs have been found and fixed. From a stability perspective we believe this is our best release to date!
- Add the closefrom() system call.
- GCC 3.4 is now the default compiler. 2.95.x is no longer supported (it can't handle the new threading storage classes properly).
- Import Citrus from NetBSD.
- Implement direct TLS support for programs whether threaded or not.
- Major library and user-visible system structure changes (dirent, stat, errno, etc), and other work requires a major library bump for libc and other libraries. libc is now libc.so.6.
- stat: inode size now 64 bits, nlink now 32 bits. new fields, added pad.
- dirent: inode size now 64 bits, various fields disentangled from the UFS dirent.
- statfs: new fields, added pad.
- Clean up RC scripts that are not used by DragonFly.
- Remove the OS keyword requirement for RC scripts.
- Add support for unsigned quads to sysctl.
- Implement DNTPD, DragonFly's own NTP client time synchronization demon.
- Correct a large number of bugs in the third party ntpd code, but for client-side operations we now recommend you use dntpd.
- Add a framework for aggregating per-cpu structures for user reporting.
- Userland TLS (data spaces for threads) support added.
- Create a binary library compatibility infrastructure that allows us to install and/or upgrade older revs of shared libraries on newer machines to maintain compatibility with older programs.
- Fix issues related to the expansion of symbolic links by the bourne shell.
- Many, Many mdoc cleanups and fixes.
- Update cvs, openssl, ssh, sendmail, groff, and other numerous contributed applications.
- Bring in a brand new pam infrastructure.
- Introduce pkgsrc support.
- Get rid of libmsun.
- Implement backwards scanning and partial-transaction handling features in jscan.
- FreeBSD-SA-05:06.iir - major disk access vulnerability for IIR
- FreeBSD-SA-05:04.ifconf - memory disclosure vulnerability
- FreeBSD-SA-05:08.kmem - memory disclosure vulnerability
- FreeBSD-SA-05:16.zlib - possible buffer overflow in zlib
- FreeBSD-SA-05:18.zlib - possible buffer overflow in zlib
- FreeBSD-SA-05:15.tcp - fix TCP RESET window check (DOS attack vulnerability)
- ? - a bzip2 vulnerability
- Fix a bug in the TCP NewReno algorithm which could result in a large amount of data being unnecessarily retransmitted.
- Fix numerous TCP buffering issues.
- Implement TCP Appropriate Byte Counting
- Bring in ALTQ and reorganize the IF queueing code to remove per-driver depdendancies on ALTQ.
- Strip away numerous TCP hidden indirections that make code hard to read and understand.
- Introduce BPF_MTAP which includes an address family parameter.
- Reimplement network polling with a systimer, allowing the frequency to be adjusted on the fly.
- Remove the really bad hack that was calling the network polling code from the trap code.
- Completely rewrite nework polling support.
- Make the network IF serializer mandatory for all network device driver interrupts, ioctl's, and if_ callbacks.
- Implement a very fast memory object caching infrastructure. This will eventually replace zalloc() (but not yet).
- Rewrite the mbuf allocator using the new memory object caching infrastructure. Remove many crazily-large mbuf macros in favor of the new infrastructure.
- Convert all remaining uses of the old mbuf m_ext API to the new API. Remove support for the old API.
- Reorder the detach sequence in all network drivers. Unhook the interrupt first rather then last.
- Fix all instances where an mbuf packet header and mbuf data buffer were being referenced by the wrong name and all instances where the packet header flag was being improperly set or cleared.
- Fix a number of mbuf statistics counting bugs.
- Fix numerous bugs in ipfw/ipfw2 where m_tag data was not being stored in the right place, resulting in a panic.
- Add support for the experiemental SCTP protocol.
- Fix an issue with cloned interfaces being added twice.
- Add a passive IPIQ call for non-time-critical events such as memory free() calls.
- Add TLS support for threads using the GDT instead of the LDT.
- Greatly simplify and demystify the NTP kernel interface. Convert most aspects of the interface over to sysctls.
- Implement ranged fsync's in-kernel. This capability will eventually replace the write-behind heuristic.
- Introduce MP-safe mountlist scanning code.
- Introduce rip-out-safe red-black tree scanning code.
- Use the new RB scanning code to get rid of VPLACEMARKER and generally use the new RB scanning code to handle all RB tree scanning in a safe way (allowing the scan code callback to block).
- Zoneinfo upgrades
- Rename cpu_mb*() functions to cpu_mfence(), cpu_lfence(), and cpu_sfence() to make their function more apparent.
- Fix bugs in the LWKT token code related to token references being lost due to a preemption or blocking condition.
- Fix bugs in the LWKT rwlock code relating to preemption occuring during token acquisition.
- Fix a bug in the LWKT thread queueing and dequeueing code related to a preemption.
- Increase the size of the physmap[] array to accomodate newer PC's which have a larger number of memory segments and fix an overflow bug.
- Use the ACPI timer if present instead of one of the other 8254 timers (which are not dependable because BIOS calls might manipulate them).
- Change cpu statistics to be accounted for on a per-cpu basis.
- Make network routing statistics per-cpu.
- Extend the interrupt vector code to pass a frame as a pointer.
- Remove the last vestiges of the old mbuf tagging code.
- Add a serializer API and code (basically blockable mutexes).
- Add interrupt enablement and disablement features to the new serializer module to deal with races against blocked serializer locks when e.g. removing a driver.
- Remove bus_{disable,enable}_intr(), it was not generic enough for our needs.
- Remove all spl*() procedures and convert all uses to critical sections.
- Do not try to completely halt all cpus when panic()ing as this will likely leave the machine in a state that prevents it from being able to do a dump.
- Try to unwind certain conditions when panic()ing from a trap in order to give the machine a better chance to dump its core.
- A number of malloc()'s using M_NOWAIT really needed to be using M_WAITOK.
- Attempt to avoid a livelocked USB interrupt during boot by delaying the enablement of the EHCI interrupt until after all companion controllers have been attached.
- Reimplement the kernel tracepoint facility (KTR) to greatly reduce the complexity of the API as well as remove all hardwired flags and values. In addition, record two levels of call backtrace for each entry, if enabled.
- Beef up ktrdump to display symbolic results when possible.
- Beef up the slab allocator build with INVARINTS by adding a bitmap to detect duplicate frees and such.
- Remove the 16 bit count limit for file descriptors.
- Replace the file descriptor allocator with an O(log N) full-on in-place binary search tree.
- Allow the initial stack pointer for a use process to be randomized.
- Fix numerous scheduling issues that could cause the scheduler to lose track of a reschedule request, resulting in poor interactive performance. Rewrite the interactive/batch heuristic.
- Begin to implement a management system to allow multiple userland schedulers to be configured in a system.
- Add rm -I and add an alias for interactive shells to use it by default. -I is a less invasive -i.
- Fix a bug in the pipe code that was not handling kernel-space writes correctly. Such writes can occur whenever the kernel writes KVM-referenced data to a descriptor, such as that journaling code might do.
- Fix many issues with the high level filesystem journaling code. High level journal records are now considered fairly solid.
- Implement the transactional features of the high level journaling subsystem by allowing a journaling record to be written prior to the VFS operation being executed, then aborted if the VFS operation fails.
- Implement UNDO records for most journaling transaction types.
- Implement the journaling code's full-duplex ack protocol feature which allows journals to be broken and restarted without losing data.
- Implement a stat-visible FSMID (filesystem modification id). This identifier changes whenever any modifying operation on the file or directory occurs, and for directories this identifier also changes if anything in the sub-tree under the directory is modified (recursively). The FSMID is synthesized for filesystems which do not implement it directly in order to guarantee its usefulness for at least a subset of operations.
- Implement pesistent storage of the FSMID for UFS.
- Implement shutdown() support for pipes.
- Implement a low level spinlock facility. Basically the implementation gives us an MP-safe critical section type of vehicle. However, being a spinlock the facility may only be used for very short sections of code.
- Fix a bug with USB<->CAM communication for USB mass storage devices.
- Fix numerous bugs in USB, primarily EHCI.
- Fix multiple panics when a fatal trap occurs from an IPI or FAST interrupt. Interlock panics on multiple cpus so only the first is recognized as the 'real' panic.
- Add a large number of assertions to the scheduler and interrupt subsystems.
- Fix a critical IPI messaging bug (SMP only).
- Do not compile the kernel with the stack protector. The stack protector generates weird incorrect or unexpected code in some cases which interfere with the C<->assembly interactions in the kernel build
- Various bug fixes to softupdates.
- Fix a bitmap scanning bug in UFS which could sometimes result in a sanity check panic, but no data corruption.
- Fix a deadlock in UFS's ffs_balloc() related to an incorrect buffer locking order.
- Continued work on the buffer cache.
- Separate out APIC and ICU interrupt management.
- Rewrite the interrupt setup code.
- Major rewriting of the VFS directory scanning code. Add a new function vop_write_dirent() to create the dirent for return to userland. The new API is mandatory and filesystem code (not even UFS) may not make assumptions about the size of the userland-returned dirent.
- Major cleanup of the device identification method.
- Lots of driver updates.
- Ansify a great deal more of the codebase.
- Remove the now obsolete smp_rendezvous() mechanism.
- Compile up both the TFTP and the NFS PXE bootp code rather then the (previous) make.conf option to select one or the other.
- Convert the lockmgr interlock from a token to a spinlock, also incidently fixing an issue where non-blocking locks would still potentially issue a thread switch.
- Fix bugs in the interrupt livelock code.
- Rewrite the code handling stopped user processes.
- Rewrite tsleep()/wakeup() to be per-cpu and MPSAFE. Reorganize the process states (p_stat), removing a number of states but resynthesizing them in eproc for 'ps'.
- Integrate the new if_bridge code from Open/Net/FreeBSD.
- Add an emergency interrupt polling feature that can be used to get an otherwise non-working system working.