Safekipedia

DragonFly BSD

Adapted from Wikipedia · Discoverer experience

Screenshot of DragonFly BSD 6.2.1 UEFI boot loader

DragonFly BSD is a free and open-source Unix-like operating system that began in June 2003. It was created by Matthew Dillon, who was an Amiga developer in the late 1980s and early 1990s and later worked on FreeBSD from 1994 to 2003. Matthew started DragonFly BSD because he believed some new ways of handling tasks in FreeBSD 5 would cause problems. Although he couldn't change FreeBSD directly, his ideas led to the start of this new project.

DragonFly BSD was meant to continue the ideas of the FreeBSD 4.x series but has become very different. It uses special ways to handle tasks, a system for passing messages inside the computer, and a special way to organize files called HAMMER. Many of its ideas come from AmigaOS, the operating system that Matthew worked with when he developed for the Amiga computer. Even though the DragonFly BSD and FreeBSD projects are separate, they still share helpful updates and fixes.

System design

Kernel

DragonFly BSD is being built with a special messaging system in its kernel, similar to systems in some advanced computers. This messaging system can work in different ways to keep things running smoothly.

The creator, Matthew Dillon, is working on adding better ways for the computer to handle devices and file systems. This will make it easier to fix problems because parts of the kernel can be moved out and tested separately without affecting the whole system. If a part crashes, it won’t stop the whole system from working.

System calls, which are how programs talk to the kernel, are being split into two parts. This makes the kernel smaller and simpler and helps keep different versions of DragonFly working together.

Threading

DragonFly BSD focuses on running on modern 64-bit processors. It supports multiple threads of processing, which means it can handle many tasks at once. Each processor has its own scheduler to manage these threads, helping the system run more efficiently by using each processor’s cache effectively.

Shared resources protection

To keep things running safely on computers with multiple processors, DragonFly uses special methods to make sure threads don’t try to change the same thing at the same time. It uses critical sections and serializing tokens instead of more complex methods, which helps prevent problems and makes the system easier to manage.

Virtual kernel

Since version 1.8, DragonFly BSD can run a special version of itself inside the main system. This virtual kernel helps test new features safely without affecting the real system.

Package management

DragonFly BSD offers third-party software through binary packages or a special collection of software sources called DPorts.

CARP support

DragonFly BSD includes support for CARP, a protocol that allows multiple computers to share the same network address, which was added in 2011.

HAMMER file systems

DragonFly BSD supports special file systems called HAMMER and HAMMER2. HAMMER2 became the default file system in version 5.2.0. These file systems offer features like keeping past versions of files and checking for errors.

devfs

In 2007, DragonFly BSD added a new way to handle device files that changes based on what devices are connected, making it easier to manage devices.

Application snapshots

DragonFly BSD can take snapshots of programs when they start, which helps them load faster in the future. This is especially useful for large programs with many shared parts.

Development and distribution

DragonFly BSD, like FreeBSD and OpenBSD, is being updated by its developers to use newer programming standards. It includes special safety features to protect against certain types of attacks. DragonFly uses a system that helps developers track and fix problems in the core part of the operating system.

The operating system can be used right away from a CD or USB drive, letting users try it out or fix problems on their computers without needing to install it permanently. It is shared freely under open terms, allowing anyone to use, change, or share it.

VersionDateChanges
6.4.29 May 2025
Bug fixes
6.4.130 April 2025
Bug fixes
6.430 December 2022
6.2.19 January 2022
NVMM ported to DragonFly
Added support for growfs to changing the size of an existing HAMMER2 volume.
Added xdisk. Remote HAMMER2 disks can be mounted (experimental feature)
Imported amdgpu driver, matches Linux 4.19 support.
Updated DRM
6.010 May 2021
Improved work of 'dsynth' - tool that allow to maintain local DPort repository
Removed support of MAP_VPAGETABLE mmap(), as result no 'vkernel' in this release able to work
5.83 March 2020
5.617 June 2019
Improved virtual memory system
Updates to radeon and ttm
Performance improvements for HAMMER2
5.43 December 2018
Updated drivers for network, virtual machines & display
GCC 8.0 with the previous GCC releases
Hammer with more issue fixes
5.210 April 2018
HAMMER2 filesystem is now considered stable
Meltdown and Spectre mitigation support
ipfw Updates
Improved graphics support
5.016 October 2017
New HAMMER2 filesystem
Can now support over 900,000 processes on a single machine
Improved i915 support
IPFW better performance
4.827 March 2017
Initial AMD Ryzen support
Improved i915 support
Improved kernel performance
eMMC boot support
LibreSSL replaced OpenSSL in base
GCC 5.4.1
LTO support
Initial Clang framework
UEFI install support
4.62 August 2016
Improved i915 and Radeon support
NVM Express support
Improved SMP performance
Improved network performance
Preliminary support for UEFI booting
autofs imported from FreeBSD, amd removed
4.47 December 2015
GCC 5.2
gold now the default linker
Improved i915 and Radeon support
Complete overhaul of the locale system
Collation support for named locales
Regex library replaced with TRE
Symbol versioning support in libc
Numerous HAMMER cleanups and fixes
4.229 June 2015
GCC 5.1.1
Improved i915 and Radeon support
Improved sound support
Improved support for memory controller and temperature sensors
Path MTU Discovery enabled by default
SCTP support removed
Sendmail replaced by DMA
GNU Info pages removed
4.025 November 2014
Non-locking, multi-threading PF
Related networking better-threaded for improved throughput
Procctl security feature in kernel
Support for up to 256 CPUs
Improved wireless networking support
Rust and Free Pascal now supported
i915 support greatly improved
GCC 4.7.4
3.84 June 2014
Dynamic root and PAM support
USB4BSD now default
Native C-State support for Intel CPUs
TCP port token split for better TCP connect(2) performance
GCC 4.7.3
HAMMER2 in system ( not ready for production use )
Final 32-bit release
3.625 November 2013
SMP contention reduction
Kernel modesetting for Intel and AMD GPUs
Hardware acceleration for Intel GPUs up to Ivy Bridge
3.429 April 2013
New package manager, DPorts, introduced
GCC 4.7
Improved CPU usage and tmpfs performance under extreme load
3.22 November 2012
Multiprocessor-capable kernel became mandatory.
Performance improvements in the scheduler.
USB4BSD imported from FreeBSD.
PUFFS imported from NetBSD.
3.022 February 2012
Multiprocessor-capable kernel became the default
HAMMER performance improvements
TrueCrypt-compatible encryption support
dm-crypt replaced with a compatible BSD-licensed library
Enhanced POSIX compatibility
Device driver for ECC memory
Major network protocol stack and SMP improvements
ACPI-related improvements
2.1026 April 2011
Giant lock removed from every area except the virtual memory subsystem
HAMMER deduplication
GCC 4.4
Bridging system rewritten
Major performance improvements
2.830 October 2010
Wi-Fi stack imported from FreeBSD
New disk scheduler
Reduced giant lock usage
2.66 April 2010
Swapcache
tmpfs imported from NetBSD
HAMMER and general I/O improvements
2.416 September 2009
New AHCI driver, including full NCQ support
NFS improvements
Full x86-64 support
2.217 February 2009
HAMMER officially production-ready
Major stability improvements
New release media: LiveCD and LiveUSB
2.020 July 2008
Major HAMMER improvements
1.1226 February 2008
Bluetooth stack
GCC 4.1
DragonFly Mail Agent (DMA), a stub MTA
Support for the 386 CPU dropped
Preliminary x86-64 support (not functional)
Experimental HAMMER support
1.106 August 2007
Userland threading system
1.830 January 2007
Virtual kernel implementation
1.624 July 2006
New random number generator
IEEE 802.11 framework refactored
Major giant lock, clustering, and userland VFS improvements
Major stability improvements
1.47 January 2006
GCC 3.4
pkgsrc used by default
Citrus imported from NetBSD
1.28 April 2005
TCP SACK
TCP Performance tuning
ALTQ and PF
Console over IEEE 1394
Namecache infrastructure rewritten
X11 support
pkgsrc support
1.012 July 2004
Technology showcase
New BSD Installer
LWKT subsystem and lightweight ports/messaging system
Mostly MP-safe networking stack
Lockless memory allocator

Related articles

This article is a child-friendly adaptation of the Wikipedia article on DragonFly BSD, available under CC BY-SA 4.0.

Images from Wikimedia Commons. Tap any image to view credits and license.