DragonFly BSD

DragonFly's Major Features List


Please keep in mind that major modifications have been made to nearly the entire DragonFly kernel with regard to the original FreeBSD-4.8 fork. Significant changes have been made to every kernel subsystem, as a consequence this list is constrained to the largest, most user-visible changes unique to DragonFly.

HAMMER - DragonFly Filesystem

HAMMER(5) is the DragonFly filesystem, replacing UFS(5). HAMMER supports up to an Exabyte of storage, implements a fast UNDO/REDO FIFO for fsync(2), recovers instantly on boot after a crash (no fsck(8)), and implements a very sophisticated fine-grained historical access and snapshot mechanism. HAMMER also supports an extremely robust streaming, queueless master->multiple-slave mirroring capability which is also able to mirror snapshots and other historical data.

All non-temporary HAMMER filesystems in DragonFly by default automatically maintain 60 days worth of 1-day snapshots and 1-day worth of fine-grained (30-second) snapshots. These options can be further tuned to meet one's needs.

HAMMER is also designed to accommodate today's large drives.

NULLFS - NULL Filesystem Layer

A null or loop-back filesystem is common to a number of operating systems. The DragonFly null(5) filesystem is quite a different animal. It supports arbitrary mount points that do not loop, a problem on other operating systems, making it extremely flexible in its application. It is also extremely fast and reliable, something that few other operating systems can claim of their null filesystem layers.

TMPFS - Temporary FileSystem VFS

Originally a NetBSD port the guts have been radically adjusted and carefully tuned to provide a low-contention read path and to directly tie the backing store to the VM/paging system in a way that treats it almost like normal memory. Only memory pressure will force TMPFS(5) data pages into swap.

TMPFS(5) replaces MFS and MD (for post-boot use).

DM_TARGET_CRYPT, TCPLAY - Transparent disk encryption

DragonFly has a device mapper target called dm_target_crypt(4) (compatible with Linux's dm-crypt) that provides transparent disk encryption. It makes best use of available cryptographic hardware, as well as multi-processor software crypto.

DragonFly fully supports LUKS (cryptsetup(8)) and TrueCrypt as disk encryption methods. tcplay(8), is a free (BSD-licensed) 100% compatible TrueCrypt implementation built on dm_target_crypt(8).

SWAPCACHE - Managed SSD support

The swapcache(8) feature allows SSD-configured swap to also be used to cache clean filesystem data and meta-data. This feature is carefully managed to maximize the write endurance of the SSD. swapcache(8) is typically used to reduce or remove seek overheads related to managing filesystems with a large number of discrete inodes. DragonFly's swap subsystem also supports much larger than normal swap partitions. 64-bit systems support up to 512G of swap by default.


Variant (context-sensitive) symlinks (varsym(2)) give users, administrators and application authors an extremely useful tool to aid in configuration and management. Special varsym variables can be used within an otherwise conventional symbolic link and resolved at run-time.


Processes under DragonFly may be "checkpointed" or suspended to disk at any time. They may later be resumed on the originating system, or another system by "thawing" them. See sys_checkpoint(2) and checkpt(1) for more details.

DNTPD - DragonFly Network Time Daemon

DragonFly has its own from-scratch time daemon. After pulling our hair out over the many issues with open source time daemons we decided to write one by ourselves and add new system calls to support it. dntpd(8) uses a double staggered linear regression and correlation to make time corrections. It will also properly deal with network failures (including lack of connectivity on boot), duplicate IPs resolved by DNS, and time source failures (typically 1 second off) when multiple time sources are available. The linear regression and correlation allows dntpd(8) to make rough adjustments and frequency corrections within 5 minutes of boot and to make more fine-grained adjustments at any time following when the linear regression indicates accuracy beyond the noise floor.

DMA - DragonFly Mail Agent

The DragonFly Mail Agent (dma(8)) is a bare-bones (though not so bare-bones any more) mail transfer and mail terminus SMTP server which provides all the functionalities needed for local mail delivery and simple remote mail transfers.