kids encyclopedia robot

DragonFly BSD facts for kids

Kids Encyclopedia Facts
Quick facts for kids
DragonFly BSD
DragonFly BSD Logo.svg
DragonFly BSD 6.2.1 boot loader screenshot.png
DragonFly BSD 6.2.1 UEFI boot loader
Company / developer Matthew Dillon
OS family Unix-like (BSD)
Working state Current
Source model Open source
Initial release 1.0 / 12 July 2004; 21 years ago (2004-07-12)
Latest stable release 6.4.2 / 9 May 2025; 3 months ago (2025-05-09)
Available language(s) English
Package manager DPorts, pkg
Supported platforms x86-64
Kernel type Hybrid
Userland BSD
Default user interface Unix shell
License BSD

DragonFly BSD is a free and open-source computer operating system. It's like the main program that helps your computer run. It was created from another system called FreeBSD 4.8.

Matthew Dillon, a computer developer, started working on DragonFly BSD in June 2003. He announced it to other developers in July 2003. Dillon believed that some changes planned for FreeBSD 5 would cause problems. He wanted to fix these issues. Even though he had some disagreements with other developers, DragonFly BSD and FreeBSD still work together. They share fixes for bugs and updates. Dillon named the project after seeing a dragonfly in his yard.

DragonFly BSD was meant to continue the ideas of FreeBSD 4.x. However, it has changed a lot since then. It uses special "lightweight kernel threads" (LWKT). It also has a unique way for parts of the system to send messages to each other. Plus, it uses a special file system called HAMMER. Many of its ideas were inspired by an older computer system called AmigaOS.

How DragonFly BSD Works

The Kernel

The kernel is the main part of an operating system. It controls everything. DragonFly's kernel has a special way for its different parts to communicate. This is called a messaging system. It's designed to be simple and work very efficiently.

According to Matthew Dillon, the team is working to improve how the kernel handles devices and files. This will allow many parts of the kernel to move outside of it. These parts will then run as smaller, separate programs. This makes them easier to fix if something goes wrong. It also makes the system stronger. If a part of the system crashes outside the kernel, the whole computer won't crash.

System calls are like requests from programs to the kernel. These are being split into two types: those that run inside the kernel and those that run outside. This helps make the kernel smaller and less complicated. It also helps DragonFly work with different versions and other systems like Linux.

How DragonFly Handles Tasks (Threading)

DragonFly BSD now works only on x86-64 computers. This makes it easier to support multiple processors. It used to run on older x86 computers, but that stopped with version 4.0. Since version 1.10, DragonFly supports a simple way for programs to run multiple tasks at once. This is called 1:1 userland threading. It also supports multi-threading, which it got from FreeBSD.

In DragonFly, each CPU (the brain of your computer) has its own task scheduler. Tasks are given to specific processors and usually stay there. They only move if a special message is sent between CPUs. This helps each processor use its own memory cache more effectively. It means each CPU can store different things it's working on. This leads to better performance.

The "Light Weight Kernel Threads" (LWKT) system helps divide work among many kernel tasks. For example, in the networking code, there's a separate task for each network rule on each processor. This reduces competition for shared resources.

Protecting Shared Resources

When multiple parts of the system need to use the same information, they need rules. These rules stop them from trying to change the same information at the same time. DragonFly uses "critical sections" and "serializing tokens" to prevent this. These methods help keep things organized and prevent problems.

Many core parts of DragonFly, like the LWKT system, work without needing special locks. This means each process works on its own CPU. Critical sections protect against interruptions on each CPU. This ensures a task won't be stopped while it's working.

Serializing tokens allow multiple tasks to access a shared resource. However, only one of those tasks can be actively running at any moment. This prevents issues like "deadlocks," where tasks get stuck waiting for each other. It also makes it easier to design complex procedures. DragonFly's token system is similar to a feature in Linux called "Read-copy-update."

DragonFly uses a special memory manager that works well with multiple processors. It doesn't need locks or waiting. This manager was also added to the standard C library for programs.

Virtual Kernel

Since release 1.8, DragonFly has a "virtual kernel" feature. This lets you run another kernel program inside the main system. It's like running a computer inside your computer. This virtual kernel runs in its own isolated space. It has fake network and storage connections. This makes it easier for developers to test new parts of the kernel.

The virtual kernel is different from the real one in two ways. It doesn't handle low-level hardware details. Also, it uses standard programming functions where possible. This helps keep the code for the real and virtual kernels organized.

The virtual kernel uses the main kernel for basic hardware functions. This includes things like timers, showing text on the screen, and using disk images.

Managing Software (Package Management)

You can get other software for DragonFly in two ways. You can use ready-to-install programs called "binary packages" through `pkgng`. Or, you can build them from source code using "DPorts."

DragonFly first used a system called FreeBSD Ports. Later, it switched to NetBSD's `pkgsrc` system. The idea was to make it easier to get third-party software. But keeping `pkgsrc` working with DragonFly became too much work. So, the project created DPorts. DPorts is a system built on top of FreeBSD Ports.

CARP Support

DragonFly BSD includes support for something called Common Address Redundancy Protocol (CARP). This feature helps make networks more reliable. It allows multiple computers to share the same network address. If one computer fails, another can take over. This was added to DragonFly in 2007.

HAMMER File Systems

DragonFly BSD supports the Unix File System, which is common on BSD systems. But it also has its own special file systems: HAMMER and HAMMER2. HAMMER2 became the main file system starting with version 5.2.0.

HAMMER was made just for DragonFly BSD. It was designed to be a powerful file system, similar to ZFS. HAMMER lets you keep a history of your files. It can also create "snapshots," which are like backups of your files at a certain time. It checks data for errors and can remove duplicate data.

HAMMER2 is the newer version of HAMMER. It is now considered stable and is the main focus for new development. Plans for HAMMER2 started in 2012. In 2017, Dillon announced that DragonFly BSD version 5.0.0 would include an early version of HAMMER2. With version 5.2.0, HAMMER2 became the default file system.

devfs

In 2007, DragonFly BSD got a new "device file system" called devfs. This system automatically adds and removes device names as needed. It lets you find devices by how they are connected. It also recognizes drives by their unique serial numbers. This means you don't need to manually set up device names beforehand. This feature was developed as part of a Google Summer of Code project in 2009.

Application Snapshots

DragonFly BSD has a feature similar to older Amiga computers. It can take a "snapshot" of a large program's memory after it loads. This allows the program to start much faster the next time you open it. This is very helpful for big programs that use many shared parts.

Development and How It's Shared

DragonFly BSD 6.2.1 Lumina desktop screenshot
DragonFly BSD 6.2.1 with Lumina desktop environment

Like other BSD systems, DragonFly developers are updating their programming code. They are moving from older C language styles to more modern ones. DragonFly also uses a special tool called the "Stack-Smashing Protector." This helps protect against certain types of computer attacks. However, since July 2005, the main kernel is not built with this protection by default.

DragonFly has an easy-to-use system for building the entire operating system from its source code. The developers use a system called Git to manage changes to the code. Because DragonFly has a smaller team of developers, it keeps both stable and experimental versions of its code in one place.

DragonFly includes a built-in "kernel debugger." This tool helps developers find and fix problems in the kernel. Since October 2004, a special "debug kernel" is installed by default. This helps create more useful bug reports. When a new kernel is installed, older versions are cleaned up to save disk space.

How DragonFly BSD is Distributed

DragonFly BSD is available as a "Live CD" or "Live USB." This means you can start your computer from it without installing it. It includes the basic system and helpful guides. This allows users to install the system, fix a damaged installation, or try it out. Daily updates are also available online.

Like other free and open-source BSD systems, DragonFly is shared under the terms of the BSD license. This license allows people to use, change, and share the software freely.

Release History

Here are some of the past versions of DragonFly BSD and what changed:

Version Date Changes
6.4.2 9 May 2025
  • Bug fixes
6.4.1 30 April 2025
  • Bug fixes
6.4 30 December 2022
6.2.1 9 January 2022
  • NVMM (a virtualization tool) was added.
  • Support for changing the size of HAMMER2 volumes was added.
  • Xdisk was added for mounting remote HAMMER2 disks (experimental).
  • Updated graphics drivers (amdgpu, DRM).
6.0 10 May 2021
  • Improved 'dsynth' tool for managing software.
  • Removed support for 'vkernel' in this release.
5.8 3 March 2020
5.6 17 June 2019
  • Improved virtual memory system.
  • Updates to graphics drivers.
  • Performance improvements for HAMMER2.
5.4 3 December 2018
  • Updated drivers for network, virtual machines, and display.
  • Included GCC 8.0.
  • More fixes for Hammer.
5.2 10 April 2018
  • HAMMER2 file system became stable.
  • Added protection against Meltdown and Spectre security issues.
  • Updates to the firewall (ipfw).
  • Improved graphics support.
5.0 16 October 2017
  • New HAMMER2 file system introduced.
  • Can now support over 900,000 processes on one machine.
  • Improved graphics support (i915).
  • Better performance for the firewall (IPFW).
4.8 27 March 2017
  • Initial support for AMD Ryzen processors.
  • Improved graphics support (i915).
  • Improved kernel performance.
  • Support for booting from eMMC storage.
  • LibreSSL replaced OpenSSL.
  • GCC 5.4.1 included.
  • Initial Clang framework.
  • Support for UEFI installation.
4.6 2 August 2016
  • Improved graphics support (i915 and Radeon).
  • Support for NVM Express storage.
  • Improved performance for multiple processors (SMP).
  • Improved network performance.
  • Early support for UEFI booting.
  • Autofs (for automatic mounting) was added from FreeBSD.
4.4 7 December 2015
  • GCC 5.2 included.
  • Gold became the default linker.
  • Improved graphics support (i915 and Radeon).
  • Complete update of the locale system.
  • Regex library replaced with TRE.
  • Many HAMMER fixes.
4.2 29 June 2015
  • GCC 5.1.1 included.
  • Improved graphics support (i915 and Radeon).
  • Improved sound support.
  • Better support for memory and temperature sensors.
  • Path MTU Discovery enabled by default.
  • SCTP support removed.
  • Sendmail replaced by DMA.
4.0 25 November 2014
  • Non-locking, multi-threading firewall (PF).
  • Networking improved for better speed.
  • Procctl security feature in kernel.
  • Support for up to 256 CPUs.
  • Improved wireless networking.
  • Rust and Free Pascal now supported.
  • i915 graphics support greatly improved.
  • GCC 4.7.4 included.
3.8 4 June 2014
  • Dynamic root and PAM support.
  • USB4BSD became default.
  • Native C-State support for Intel CPUs.
  • TCP port token split for better TCP connect performance.
  • GCC 4.7.3 included.
  • HAMMER2 included (not ready for use).
  • This was the final 32-bit release.
3.6 25 November 2013
  • Reduced SMP contention.
  • Kernel modesetting for Intel and AMD GPUs.
  • Hardware acceleration for Intel GPUs up to Ivy Bridge.
3.4 29 April 2013
  • New package manager, DPorts, introduced.
  • GCC 4.7 included.
  • Improved CPU usage and tmpfs performance under heavy load.
3.2 2 November 2012
  • Multiprocessor-capable kernel became required.
  • Performance improvements in the scheduler.
  • USB4BSD imported from FreeBSD.
  • PUFFS imported from NetBSD.
3.0 22 February 2012
  • Multiprocessor-capable kernel became the default.
  • HAMMER performance improvements.
  • TrueCrypt-compatible encryption support.
  • dm-crypt replaced with a BSD-licensed library.
  • Enhanced POSIX compatibility.
  • Device driver for ECC memory.
  • Major network and SMP improvements.
  • ACPI-related improvements.
2.10 26 April 2011
  • Giant lock removed from most areas.
  • HAMMER deduplication.
  • GCC 4.4 included.
  • Bridging system rewritten.
  • Major performance improvements.
2.8 30 October 2010
  • Wi-Fi stack imported from FreeBSD.
  • Logical volume management.
  • dm-crypt.
  • New disk scheduler.
  • Reduced giant lock usage.
2.6 6 April 2010
  • Swapcache.
  • tmpfs imported from NetBSD.
  • HAMMER and general I/O improvements.
2.4 16 September 2009
  • devfs.
  • New AHCI driver with NCQ support.
  • NFS improvements.
  • Full x86-64 support.
2.2 17 February 2009
  • HAMMER officially ready for use.
  • Major stability improvements.
  • New release media: LiveCD and LiveUSB.
2.0 20 July 2008
  • Major HAMMER improvements.
1.12 26 February 2008
  • Sensor framework imported from FreeBSD.
  • Bluetooth stack.
  • GCC 4.1 included.
  • DragonFly Mail Agent (DMA).
  • Support for the 386 CPU dropped.
  • Early x86-64 support (not working yet).
  • Experimental HAMMER support.
1.10 6 August 2007
  • Userland threading system.
  • Advanced Host Controller Interface support.
  • GUID Partition Table support.
1.8 30 January 2007
  • Virtual kernel implementation.
1.6 24 July 2006
  • New random number generator.
  • IEEE 802.11 framework updated.
  • Major giant lock, clustering, and userland VFS improvements.
  • Major stability improvements.
1.4 7 January 2006
  • GCC 3.4 included.
  • pkgsrc used by default.
  • Citrus imported from NetBSD.
1.2 8 April 2005
  • TCP SACK.
  • TCP Performance tuning.
  • ALTQ and PF.
  • Thread-local storage.
  • Console over IEEE 1394.
  • Namecache infrastructure rewritten.
  • X11 support.
  • pkgsrc support.
1.0 12 July 2004
  • Technology showcase.
  • New BSD Installer.
  • LWKT subsystem and lightweight ports/messaging system.
  • Mostly MP-safe networking stack.
  • Lockless memory allocator.
  • Variant symlinks.
  • Application checkpointing support.

More to Explore

  • Comparison of BSD operating systems
  • Comparison of open-source operating systems
  • Comparison of operating system kernels
  • Lumina (desktop environment)

See also

Kids robot.svg In Spanish: DragonFly BSD para niños

kids search engine
DragonFly BSD Facts for Kids. Kiddle Encyclopedia.