1 <!--#set var="title" value="DragonFly - January 2006 Release 1.4.x Download" -->
2 <!--#include virtual="/includes/header.shtml" -->
3 <!-- $DragonFly: site/data/community/release1_4.shtml,v 1.4 2008/09/28 06:15:36 dillon Exp $ -->
6 <h1>Obtaining DragonFly 1.4.x for your system</h1>
8 <h2>1.4.4 ISO Images for CDs</h2>
11 DragonFly CDs are 'live', which means that the CD will boot your system
12 and let you log in as root (no password). You can use this feature to
13 check for hardware compatibility and play with DragonFly a little before
14 actually installing it on your hard drive.
17 The CD includes an installer that can be run at the console, or
18 (experimentally) via a web browser. Make sure you read the
19 <a href="/cgi-bin/cvsweb.cgi/~checkout~/src/nrelease/root/README">README</a>
20 file for more information. To activate the installer, boot the CD and
24 As of this release the installer has a Netboot server option. You can
25 boot the CD on one machine, enable the feature via the installer, and
26 then PXEBoot other systems and do a network based install. System
27 operators should be aware that running the netboot server hardwires
28 a 10.1.0.X network and runs a DHCP server which might interfere with
29 other DHCP servers on your LAN.
32 See the 'Download Site' list below for a list of download locations.
36 <b>The MD5 for the release is:
37 <br />MD5 (dfly-1.4.0_REL.iso.gz) = 5dc706f0dc57d691a8291f44cd19998c
38 <br />MD5 (dfly-1.4.4_REL.iso.gz) = dcc9c9670144d6afa7982b528544ea71
42 <h2>1.4.x Release Errata</h2>
44 DragonFly releases are meant to be stable, dependable entities. We
45 backport compatible bug fixes from current development into release
46 branches but we do not generally backport new features.
47 The release CD is always a '.0', e.g. 1.4.0. The most common way to
48 track a release is to use cvsup to track the release sources and then
49 build and install a new world and kernel to keep your system updated.
52 <B>We do not always get every last little fix into a release. Please
53 be sure to read the errata page for the release CD!</B>
66 <TD><A HREF="errata1_4_4.shtml">Errata</A></TD>
74 <h2>1.4.x Release Sites</h2>
79 <TH>Mirrored Data</TH>
80 <TH>Access methods</TH>
84 <TR><TD>Fortunaty.net</TD>
85 <TD>1.4.4_REL image</TD>
86 <TD><A HREF="http://ftp.fortunaty.net/DragonFly/iso-images/dfly-1.4.4_REL.iso.gz">HTTP</A></TD></TR>
89 <TR><TD>Chlamydia.fs.ei.tum.de (Germany)</TD>
90 <TD>1.4.4_REL image</TD>
92 <A HREF="http://chlamydia.fs.ei.tum.de/pub/DragonFly/iso-images/dfly-1.4.4_REL.iso.gz">HTTP</A>
93 <A HREF="ftp://chlamydia.fs.ei.tum.de/pub/DragonFly/iso-images/dfly-1.4.4_REL.iso.gz">FTP</A>
98 <TR><TD>BGP4.net (USA)</TD>
99 <TD>1.4.4_REL image</TD>
101 <A HREF="http://mirror.bgp4.net/pub/DragonFly/iso-images/dfly-1.4.4_REL.iso.gz">HTTP</A>
102 <A HREF="ftp://mirror.bgp4.net/pub/DragonFly/iso-images/dfly-1.4.4_REL.iso.gz">FTP</A>
106 <TR><TD>TheShell.com</TD>
107 <TD>1.4.4_REL image</TD>
109 <A HREF="http://www.theshell.com/pub/DragonFly/iso-images/dfly-1.4.4_REL.iso.gz">HTTP</A>
110 <A HREF="ftp://ftp.theshell.com/pub/DragonFly/iso-images/dfly-1.4.4_REL.iso.gz">FTP</A>
111 <A HREF="http://www.theshell.com/dfly-1.4.4_REL.iso.gz.torrent">TORRENT</A>
115 <TR><TD>Dragonflybsd.org (USA)</TD>
116 <TD>1.4.4_REL image</TD>
117 <TD><A HREF="ftp://ftp.dragonflybsd.org/iso-images/dfly-1.4.4_REL.iso.gz">FTP</A>
118 (<I>try to find another site first</I>)</TD></TR>
122 <h1>Release Notes for DragonFly 1.4.4</h1>
125 1.4.4 is the fourth bug-fix sub-release in the 1.4 release branch.
129 <li>Fixed a bug in pcb_ext, used when mapping I/O.
130 <li>Fixed a number of bugs in UFS's softupdates.
131 <li>Fixed a bug related vesa mode screen restore.
132 <li>Fixed a module ref counting bug.
133 <li>Reengineered the Random Number Entropy gathering algorithm.
134 <li>Sysmouse termio defaults are now correct by default.
135 <li>Various NFS races have been fixed.
136 <li>A bug in the NFS access cache was fixed, related to coarse
137 offset adjustments to the time of day.
138 <li>MSDOS filesystems can now be exported via NFS.
139 <li>A number of wchar related fixes have been made.
140 <li>A serious sendmail security fix was brought in.
141 <li>Numerous kernel memory disclosure holes have been closed.
142 <li>Various VFS races which could lead to filesystem corruption
144 <li>Various bugs in NDIS have been fixed.
145 <li>A microseconds vs nanoseconds mixup in adjtime() has been fixed.
146 <li>A number of IPSEC related bugs have been fixed
147 <li>A bug in the fork/exit code that could result in a hung process
149 <li>Numerous networking issues have been fixed.
150 <li>A linker bug related to TLS vs non-TLS storage has been fixed.
151 <li>Numerous installer errata has been fixed.
155 <h1>Release Notes for DragonFly 1.4.0</h1>
158 1.4 is our third major DragonFly release. DragonFly's policy is to
159 only commit bug fixes to release branches.
162 The two biggest user-visible changes in this release are (a) A major
163 revamping of libc, ctype, and wchar support, as well as changes made
164 in the kernel which require us to bump the major rev for all of our
165 shared libraries, and (b) The introduction of PKGSRC to manage third
166 party applications. DragonFly no longer supports the FreeBSD PORTS
170 A huge amount of under-the-hood work has been accomplished with this
171 release, in particular with network device drivers and protocol stacks,
172 journaling, and the scheduler. A phenominal amount of work has gone
173 into stabilizing major subsystems as part of our effort to remove the
174 big giant lock. A lot of obscure race conditions and bugs have been
175 found and fixed. From a stability perspective we believe this is our
176 best release to date!
180 <li><b>Add the closefrom() system call.</b>
181 <li><b>GCC 3.4 is now the default compiler. 2.95.x is no longer
182 supported (it can't handle the new threading storage classes
184 <li><b>Import Citrus from NetBSD.</b>
185 <li><b>Implement direct TLS support for programs whether threaded or not.</b>
186 <li><b>Major library and user-visible system structure changes
187 (dirent, stat, errno, etc), and other work requires a major
188 library bump for libc and other libraries. libc is now
190 <li><b>stat: inode size now 64 bits, nlink now 32 bits. new fields,
192 <li><b>dirent: inode size now 64 bits, various fields disentangled from
194 <li><b>statfs: new fields, added pad.</b>
195 <li>Clean up RC scripts that are not used by DragonFly.
196 <li>Remove the OS keyword requirement for RC scripts.
197 <li>Add support for unsigned quads to sysctl.
198 <li><b>Implement DNTPD, DragonFly's own NTP client time synchronization
200 <li>Correct a large number of bugs in the third party ntpd code, but
201 for client-side operations we now recommend you use dntpd.
202 <li>Add a framework for aggregating per-cpu structures for user
204 <li><b>Userland TLS (data spaces for threads) support added.</b>
205 <li><b>Create a binary library compatibility infrastructure that
206 allows us to install and/or upgrade older revs of shared
207 libraries on newer machines to maintain compatibility with
209 <li>Fix issues related to the expansion of symbolic links by the
211 <li>Many, Many mdoc cleanups and fixes.
212 <li>Update cvs, openssl, ssh, sendmail, groff,
213 and other numerous contributed applications.
214 <li><b>Bring in a brand new pam infrastructure.</b>
215 <li><b>Introduce pkgsrc support.</b>
216 <li>Get rid of libmsun.
217 <li>Implement backwards scanning and partial-transaction handling
221 <li>FreeBSD-SA-05:06.iir - major disk access vulnerability for IIR
222 <li>FreeBSD-SA-05:04.ifconf - memory disclosure vulnerability
223 <li>FreeBSD-SA-05:08.kmem - memory disclosure vulnerability
224 <li>FreeBSD-SA-05:16.zlib - possible buffer overflow in zlib
225 <li>FreeBSD-SA-05:18.zlib - possible buffer overflow in zlib
226 <li>FreeBSD-SA-05:15.tcp - fix TCP RESET window check
227 (DOS attack vulnerability)
228 <li>? - a bzip2 vulnerability
231 <li>Fix a bug in the TCP NewReno algorithm which could result in
232 a large amount of data being unnecessarily retransmitted.
233 <li>Fix numerous TCP buffering issues.
234 <li>Implement TCP Appropriate Byte Counting
235 <li>Bring in ALTQ and reorganize the IF queueing code to remove
236 per-driver depdendancies on ALTQ.
237 <li>Strip away numerous TCP hidden indirections that make code hard
238 to read and understand.
239 <li>Introduce BPF_MTAP which includes an address family parameter.
240 <li>Reimplement network polling with a systimer, allowing the
241 frequency to be adjusted on the fly.
242 <li>Remove the really bad hack that was calling the network polling
243 code from the trap code.
244 <li>Completely rewrite nework polling support.
245 <li>Make the network IF serializer mandatory for all network device
246 driver interrupts, ioctl's, and if_ callbacks.
247 <li>Implement a very fast memory object caching infrastructure. This
248 will eventually replace zalloc() (but not yet).
249 <li>Rewrite the mbuf allocator using the new memory object caching
250 infrastructure. Remove many crazily-large mbuf macros in favor
251 of the new infrastructure.
252 <li>Convert all remaining uses of the old mbuf m_ext API to the new
253 API. Remove support for the old API.
254 <li>Reorder the detach sequence in all network drivers. Unhook the
255 interrupt first rather then last.
256 <li>Fix all instances where an mbuf packet header and mbuf data
257 buffer were being referenced by the wrong name and all instances
258 where the packet header flag was being improperly set or cleared.
259 <li>Fix a number of mbuf statistics counting bugs.
260 <li>Fix numerous bugs in ipfw/ipfw2 where m_tag data was not being
261 stored in the right place, resulting in a panic.
262 <li>Add support for the experiemental SCTP protocol.
263 <li>Fix an issue with cloned interfaces being added twice.
266 <li>Add a passive IPIQ call for non-time-critical events such as
268 <li>Add TLS support for threads using the GDT instead of the LDT.
269 <li>Greatly simplify and demystify the NTP kernel interface. Convert
270 most aspects of the interface over to sysctls.
271 <li>Implement ranged fsync's in-kernel. This capability will
272 eventually replace the write-behind heuristic.
274 <li>Introduce MP-safe mountlist scanning code.
275 <li>Introduce rip-out-safe red-black tree scanning code.
276 <li>Use the new RB scanning code to get rid of VPLACEMARKER and
277 generally use the new RB scanning code to handle all RB tree
278 scanning in a safe way (allowing the scan code callback to block).
279 <li>Zoneinfo upgrades
280 <li>Rename cpu_mb*() functions to cpu_mfence(), cpu_lfence(), and
281 cpu_sfence() to make their function more apparent.
282 <li>Fix bugs in the LWKT token code related to token references
283 being lost due to a preemption or blocking condition.
284 <li>Fix bugs in the LWKT rwlock code relating to preemption occuring
285 during token acquisition.
286 <li>Fix a bug in the LWKT thread queueing and dequeueing code
287 related to a preemption.
288 <li>Increase the size of the physmap[] array to accomodate newer
289 PC's which have a larger number of memory segments and fix
291 <li>Use the ACPI timer if present instead of one of the other 8254
292 timers (which are not dependable because BIOS calls might
294 <li>Change cpu statistics to be accounted for on a per-cpu basis.
295 <li>Make network routing statistics per-cpu.
296 <li>Extend the interrupt vector code to pass a frame as a pointer.
297 <li>Remove the last vestiges of the old mbuf tagging code.
298 <li>Add a serializer API and code (basically blockable mutexes).
299 <li>Add interrupt enablement and disablement features to the new
300 serializer module to deal with races against blocked serializer
301 locks when e.g. removing a driver.
302 <li>Remove bus_{disable,enable}_intr(), it was not generic enough
304 <li>Remove all spl*() procedures and convert all uses to critical
306 <li>Do not try to completely halt all cpus when panic()ing as this
307 will likely leave the machine in a state that prevents it from
308 being able to do a dump.
309 <li>Try to unwind certain conditions when panic()ing from a trap
310 in order to give the machine a better chance to dump its core.
311 <li>A number of malloc()'s using M_NOWAIT really needed to be
313 <li>Attempt to avoid a livelocked USB interrupt during boot by
314 delaying the enablement of the EHCI interrupt until after all
315 companion controllers have been attached.
316 <li>Reimplement the kernel tracepoint facility (KTR) to greatly
317 reduce the complexity of the API as well as remove all hardwired
318 flags and values. In addition, record two levels of call
319 backtrace for each entry, if enabled.
320 <li>Beef up ktrdump to display symbolic results when possible.
321 <li>Beef up the slab allocator build with INVARINTS by adding a
322 bitmap to detect duplicate frees and such.
323 <li>Remove the 16 bit count limit for file descriptors.
324 <li>Replace the file descriptor allocator with an O(log N)
325 full-on in-place binary search tree.
326 <li>Allow the initial stack pointer for a use process to be
328 <li>Fix numerous scheduling issues that could cause the scheduler
329 to lose track of a reschedule request, resulting in poor
330 interactive performance. Rewrite the interactive/batch
332 <li>Begin to implement a management system to allow multiple
333 userland schedulers to be configured in a system.
334 <li>Add rm -I and add an alias for interactive shells to use it
335 by default. -I is a less invasive -i.
336 <li>Fix a bug in the pipe code that was not handling kernel-space
337 writes correctly. Such writes can occur whenever the kernel
338 writes KVM-referenced data to a descriptor, such as that
339 journaling code might do.
340 <li>Fix many issues with the high level filesystem journaling code.
341 High level journal records are now considered fairly solid.
342 <li>Implement the transactional features of the high level journaling
343 subsystem by allowing a journaling record to be written prior to
344 the VFS operation being executed, then aborted if the VFS operation
346 <li>Implement UNDO records for most journaling transaction types.
347 <li>Implement the journaling code's full-duplex ack protocol feature
348 which allows journals to be broken and restarted without losing
350 <li>Implement a stat-visible FSMID (filesystem modification id). This
351 identifier changes whenever any modifying operation on the file
352 or directory occurs, and for directories this identifier also
353 changes if anything in the sub-tree under the directory is
354 modified (recursively). The FSMID is synthesized for filesystems
355 which do not implement it directly in order to guarantee its
356 usefulness for at least a subset of operations.
357 <li>Implement pesistent storage of the FSMID for UFS.
358 <li>Implement shutdown() support for pipes.
359 <li>Implement a low level spinlock facility. Basically the
360 implementation gives us an MP-safe critical section type of
361 vehicle. However, being a spinlock the facility may only be
362 used for very short sections of code.
363 <li>Fix a bug with USB<->CAM communication for USB mass storage
365 <li>Fix numerous bugs in USB, primarily EHCI.
366 <li>Fix multiple panics when a fatal trap occurs from an IPI or
367 FAST interrupt. Interlock panics on multiple cpus so only the
368 first is recognized as the 'real' panic.
369 <li>Add a large number of assertions to the scheduler and interrupt
371 <li>Fix a critical IPI messaging bug (SMP only).
372 <li>Do not compile the kernel with the stack protector. The stack
373 protector generates weird incorrect or unexpected code in some
374 cases which interfere with the C<->assembly interactions in the
376 <li>Various bug fixes to softupdates.
377 <li>Fix a bitmap scanning bug in UFS which could sometimes result
378 in a sanity check panic, but no data corruption.
379 <li>Fix a deadlock in UFS's ffs_balloc() related to an incorrect
380 buffer locking order.
381 <li>Continued work on the buffer cache.
382 <li>Separate out APIC and ICU interrupt management.
383 <li>Rewrite the interrupt setup code.
384 <li>Major rewriting of the VFS directory scanning code. Add a new
385 function vop_write_dirent() to create the dirent for return to
386 userland. The new API is mandatory and filesystem code (not
387 even UFS) may not make assumptions about the size of the
388 userland-returned dirent.
389 <li>Major cleanup of the device identification method.
390 <li>Lots of driver updates.
391 <li>Ansify a great deal more of the codebase.
392 <li>Remove the now obsolete smp_rendezvous() mechanism.
393 <li>Compile up both the TFTP and the NFS PXE bootp code rather
394 then the (previous) make.conf option to select one or the other.
395 <li>Convert the lockmgr interlock from a token to a spinlock, also
396 incidently fixing an issue where non-blocking locks would
397 still potentially issue a thread switch.
398 <li>Fix bugs in the interrupt livelock code.
399 <li>Rewrite the code handling stopped user processes.
400 <li>Rewrite tsleep()/wakeup() to be per-cpu and MPSAFE. Reorganize
401 the process states (p_stat), removing a number of states but
402 resynthesizing them in eproc for 'ps'.
403 <li>Integrate the new if_bridge code from Open/Net/FreeBSD.
404 <li>Add an emergency interrupt polling feature that can be used
405 to get an otherwise non-working system working.
410 <!--#include virtual="/includes/footer.shtml" -->