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.