Donation from Diederik de Groot. Thanks, Diederik!
[ikiwiki.git] / release40 / index.mdwn
1 # DragonFly BSD 4.0
2
3 * Version 4.0.1 released 25 November 2014.
4 * Version 4.0.2 released 07 January 2015.
5 * Version 4.0.3 released 21 January 2015.
6 * Version 4.0.4 released 09 March 2015.
7 * Version 4.0.5 released 23 March 2015.
8 * Version 4.0.6 released 13 June 2015.
9
10
11
12 Version 4 of DragonFly brings Haswell graphics support, 3D acceleration, and improved performance in extremely high-traffic networks.  DragonFly now supports up to 256 CPUs, Haswell graphics (i915), concurrent pf operation, and a variety of other devices.
13
14 The details of all commits between the 3.8 and 4.0 branches are available in the associated commit messages for [4.0RC1](http://lists.dragonflybsd.org/pipermail/commits/2014-October/343769.html), [4.0RC2](http://lists.dragonflybsd.org/pipermail/commits/2014-November/380405.html), [4.0RC3](http://lists.dragonflybsd.org/pipermail/commits/2014-November/380414.html), [4.0.1 release](http://lists.dragonflybsd.org/pipermail/commits/2014-November/380538.html), [4.0.2 release](http://lists.dragonflybsd.org/pipermail/commits/2015-January/417500.html),  [4.0.3 release](http://lists.dragonflybsd.org/pipermail/commits/2015-January/417669.html), [4.0.4 release](http://lists.dragonflybsd.org/pipermail/commits/2015-March/418098.html), [4.0.5 release](http://lists.dragonflybsd.org/pipermail/commits/2015-March/418256.html), and [4.0.6 release](http://lists.dragonflybsd.org/pipermail/commits/2015-June/418759.html).
15
16 ## Big-ticket items
17
18 ### Improved graphics support
19
20 DragonFly 4.0 now supports GPUs from the Haswell family, and OpenGL acceleration is now available out of the box.
21
22 ### 32-bit i386 architecture no longer supported
23
24 As announced during the 3.8 release, DragonFly BSD is 64-bit only. No 32-bit installation images have been generated, and no compatibility work is being done for 32-bit systems.
25
26 ## Changes since DragonFly 3.8
27
28 ### Kernel
29
30 New device files /dev/upmap and /dev/kpmap have been added.
31
32 These memory mappable drivers allow for a per process or common to the kernel shared memory space.  The objective is to allow kernel-provided information to be directly read from memory, without having to pay the cost of a traditional system call.  This a bit similar to the VDSO mechanism in Linux.
33
34 * /dev/upmap is writable and per-process
35 * /dev/kpmap is read-only and global between kernel and userland
36
37
38 System calls using this new functionality :
39
40 * getpid(2)
41 * setproctitle(3)
42 * clock_gettime(2)
43
44 When more than 10 calls are made to these functions, the upmap/kpmap mechanism is enabled and information is read directly from memory, reducing considerably the overhead of these system calls. gettimeofday(2) is still implemented as a traditional system call in order to provide more precise temporal values.  Performance-wise, it is thus important to use clock_gettime(2) instead of gettimeofday(2).
45
46 The usb4bsd stack has been marked MPSAFE.
47
48 ### CPU limit increased
49
50 DragonFly 4.0 now supports systems with up to 256 CPUs, up from 63 in DragonFly 3.8. 
51
52 ### Graphics
53
54 The drm/i915 driver is now mostly based on the Linux 3.8.13 implementation and is no longer similar to the FreeBSD driver. Many Linux APIs and data structures have been implemented in the DragonFly kernel in order to reuse as many parts as possible of the Linux drm/i915 code without modifications.  The most notable improvements are added support for the Haswell GPU generation and increased stability.
55
56 The drm(4) driver has been slightly improved in order to support the i915 changes and is now marked MPSAFE.
57
58 Many bugfixes have been applied to the drm/radeon driver and its drm/ttm memory manager. The kernel radeon driver is now used by default, the last user-mode setting xf86-video-ati driver still being available if desired.
59
60 Hardware accelerated OpenGL support is now available out of the box on supported i915 and radeon GPUs. Software rendering is also improved and makes use of recent CPU vector instructions such as AVX when available.
61
62 The mach64, mga, r128, savage, sis and tdfx drm drivers have been removed. They were used to provide OpenGL acceleration with old GPUs from the 1990s to early 2000s.  
63 The Mesa 3D library having already dropped support for them in 2011, these drivers were no longer useful.
64
65 ### Networking
66
67 More parts of the UDP stack are now handled in parallel on multiple CPUs, leading to performance increases.
68 For example, on an Intel Core i3-3770 system with a 10Gb Intel 82599ES network adapter, UDP transaction rate with 18 byte packets has been improved by 19%, going from 1.12 to 1.34 million of transactions per second.
69
70 ARP, IP, IGMP, TCP and routing performance has also been improved.
71
72 The urndis driver has been imported from FreeBSD, allowing USB tethering. Devices providing shared USB connections such as smartphones, can now be used as a network card.
73
74 The if_lagg(4) driver has been ported from FreeBSD. It allows many network  interfaces to be aggregated in a single virtual one.  The various physical interfaces can be load-balanced together or function in a master/backup way, with backup interfaces being automatically used if the master one encounters problems.  This driver also contains an implementation of the IEEE 802.3ad protocol, which allows the previous mechanisms to be used with remote interfaces present in a network switch for example.
75
76 The igb(4) driver now uses MSI-X interrupts on i354 hardware
77
78 The iwn(4) driver has been synchronized to FreeBSD.
79
80 ath(4) has been updated from FreeBSD.
81
82 The re(4) driver now uses MPSAFE callouts.
83
84 ### Packet Filter (pf)
85
86 The pf firewall is now able to work in a concurrent manner on many CPUs.
87
88 ### Storage drivers
89
90 A mrsas(4) driver has been added by Sascha Wildner. It provides support for LSI Thunderbolt and more recent (Invader and Fury) RAID adapters.
91
92 The ciss(4), isp(4), mfi(4), mpt(4), mrsas(4) and twa(4) have been marked as MPSAFE.
93
94 ### Crypto
95
96 Alex Hornung has added the ChaCha algorithm, an improved variant of Salsa20, used among other things by BLAKE, one of the five finalist of the NIST competition to determine the SHA-3 algorithm.
97 Chacha has been added in order to be used for the new pseudo-random number generater (CSPRNG) based on Fortuna.
98
99 A new sysctl entry has been added in order to choose the generator used for /dev/random. 3 modes are possible:
100
101 * csprng, in order to use Fortuna
102 * ibaa, in order ot use the old IBAA generator
103 * mixed, combining the output of the two previous generators by a XOR operation. This is the default mode.
104
105 ### Mobile devices
106
107 An atmel_mxt driver has been added for the touchscreen driver of the Acer C720P notebook.
108
109 ### Userland
110
111 #### Various tools have been upgraded in the base system:
112
113 * ACPICA has been upgraded to version 20140828.
114 * ftp was upgraded to version 1.205 from NetBSD
115 * GCC was upgraded from 4.7.3 to 4.7.4
116 * GNU grep was upgraded to version 2.20
117 * Libedit was upgraded to version 2014-06-20
118 * OpenSSL was upgraded to version 1.0.1n in order to fix various vulnerabilities (CVE-2014-3513, CVE-2014-3566, CVE-2014-3567, CVE-2014-3568, etc.).
119 * wpa_supplicant has been upgraded to version 2.1
120 * XZ was upgraded to version 5.0.7.
121 * The zoneinfo database has been upgraded to tzdata2014i
122
123 #### Other improvements
124
125 * The binutils 2.24 version is now used by default
126 * dhclient now understands the -x and -w options and has received various improvements from OpenBSD
127 * libfetch has been synchronized with FreeBSD
128 * libradius has been synchronized with FreeBSD
129 * Support for POSIX semaphores has been added into libthread_xu
130 * The rescue initrd is no longer built during the make buildworld stage. A first initrd image is now installed unconditionally by the DragonFly installer
131 * sed(1) now recognizes the -r option for compatibility with GNU sed
132 * systat has been improved with the -pftop and -netbw options
133
134 Some work has also been done by John Marino in order to make the base system buildable by clang.
135
136 #### rcreload
137
138 Zachary Crownover has provided a new rcreload functionality to rcrun(8).