Bring back 1.4
[ikiwiki.git] / release14 / index.html
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 $ -->
4
5
6 <h1>Obtaining DragonFly 1.4.x for your system</h1>
7
8 <h2>1.4.4 ISO Images for CDs</h2>
9
10 <p>
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. 
15 </p>
16 <p>
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
21 login as 'installer'.
22 </p>
23 <p>
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.
30 </p>
31 <p>
32 See the 'Download Site' list below for a list of download locations. 
33 </p>
34
35 <p>
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
39
40 </b><br /> </p>
41
42 <h2>1.4.x Release Errata</h2>
43 <p>
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.
50 </p>
51 <p>
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>
54 </p>
55 <TABLE BORDER="1">
56 <TR>
57 <TH>Version</TH>
58 <TH>Date</TH>
59 <TH>Comments</TH>
60 <TH></TH>
61 </TR>
62 <TR>
63 <TD>1.4.4</TD>
64 <TD>23-Apr-2006</TD>
65 <TD>RELEASE CD</TD>
66 <TD><A HREF="errata1_4_4.shtml">Errata</A></TD>
67 </TR>
68 </TABLE>
69
70 <p>
71 </p>
72
73
74 <h2>1.4.x Release Sites</h2>
75
76 <TABLE BORDER="1">
77 <TR>
78 <TH>Organization</TH>
79 <TH>Mirrored Data</TH>
80 <TH>Access methods</TH>
81 </TR>
82
83 <!--
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>
87 -->
88
89 <TR><TD>Chlamydia.fs.ei.tum.de (Germany)</TD>
90 <TD>1.4.4_REL image</TD>
91 <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>
94 </TD>
95 </TR>
96
97 <!--
98 <TR><TD>BGP4.net (USA)</TD>
99 <TD>1.4.4_REL image</TD>
100 <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>
103 </TD></TR>
104 -->
105
106 <TR><TD>TheShell.com</TD>
107 <TD>1.4.4_REL image</TD>
108 <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>
112 </TD></TR>
113
114
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>
119
120 </TABLE>
121
122 <h1>Release Notes for DragonFly 1.4.4</h1>
123
124 <p>
125 1.4.4 is the fourth bug-fix sub-release in the 1.4 release branch.
126 </p>
127 <p>
128 <ul>
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
143         have been fixed.
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
148         has been fixed.
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.
152 </ul>
153 </p>
154
155 <h1>Release Notes for DragonFly 1.4.0</h1>
156
157 <p>
158 1.4 is our third major DragonFly release.  DragonFly's policy is to
159 only commit bug fixes to release branches.
160 </p>
161 <p>
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 
167 system.
168 </p>
169 <p>
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!
177 </p>
178 <p>
179 <ul>
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
183             properly).</b>
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
189             libc.so.6.</b>
190         <li><b>stat: inode size now 64 bits, nlink now 32 bits.  new fields, 
191             added pad.</b>
192         <li><b>dirent: inode size now 64 bits, various fields disentangled from
193             the UFS dirent.</b>
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
199             demon.</b>
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 
203             reporting.
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
208             older programs.</b>
209         <li>Fix issues related to the expansion of symbolic links by the
210             bourne shell.
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
218             features in jscan.
219
220         <p></p>
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
229
230         <p></p>
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.
264
265         <p></p>
266         <li>Add a passive IPIQ call for non-time-critical events such as
267             memory free() calls.
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.
273
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
290             an overflow bug.
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 
293             manipulate them).
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
303             for our needs.
304         <li>Remove all spl*() procedures and convert all uses to critical
305             sections.
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
312             using M_WAITOK.
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
327             randomized.
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
331             heuristic.
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
345             fails.
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
349             data.
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
364             devices.
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
370             subsystems.
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
375             kernel build
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.
406 </ul>
407 </p>
408
409
410 <!--#include virtual="/includes/footer.shtml" -->