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; 20 years ago (2004-07-12)
Latest stable release 6.4.0 / 30 December 2022; 2 years ago (2022-12-30)
Available language(s) English
Package manager pkg
Supported platforms x86-64
Kernel type Hybrid
Userland BSD
Default user interface Unix shell
License BSD

DragonFly BSD is a special kind of operating system that is free to use and change. It's like a computer's main brain that controls everything. It was created from another operating system called FreeBSD 4.8.

A developer named Matthew Dillon started working on DragonFly BSD in June 2003. He announced it to the world in July 2003. Matthew had worked on computers like the Amiga in the past. He also worked on FreeBSD for many years.

Matthew started DragonFly because he thought some new ways of handling computer tasks in FreeBSD 5 would cause problems. These problems were about how the system handles many tasks at once (called threading) and uses multiple processors (called symmetric multiprocessing). He wanted to fix these issues. Even though he had disagreements with other FreeBSD developers, DragonFly BSD and FreeBSD still work together. They share fixes for bugs and updates for hardware.

DragonFly BSD was meant to be the next step after FreeBSD 4.x. But it has changed a lot since then. It uses its own special ways to handle tasks, like "lightweight kernel threads" (LWKT). It also has a unique way for parts of the system to talk to each other, called "message passing." Plus, it has its own file system called HAMMER. Many of its ideas came from the old AmigaOS system.

How DragonFly BSD Works

The Kernel

The kernel is the main part of the operating system. It manages everything on your computer. DragonFly's kernel has a special way for different parts to send messages to each other. This is similar to how some other advanced kernels work, but it's simpler. This messaging system helps the computer run as fast as possible.

According to Matthew Dillon, they are making progress in how devices and files talk to the kernel. This will allow many parts of the kernel to move outside of the main kernel area. When they are outside, they become smaller, separate programs. This makes them easier to fix if something goes wrong. It also makes the system stronger. If one of these separate programs crashes, the whole kernel won't crash.

The system is also changing how it handles requests from programs (called system calls). Some of these requests are being moved outside the kernel. This helps make the kernel smaller and simpler. It also helps new versions of DragonFly work with older programs.

How It Handles Tasks (Threading)

DragonFly BSD now only works on computers with x86-64 processors. It used to work on older x86 computers, but not anymore since version 4.0. Since version 1.10, DragonFly uses a simple way to handle tasks called "1:1 userland threading." This means each task a program wants to do gets its own kernel task.

In DragonFly, each CPU (processor) has its own way of scheduling tasks. Once a task is given to a processor, it usually stays there. Tasks only move to another processor if they send a special message. This helps each processor keep its own memory cache clear. This means each processor can store different information it's working on, which makes the computer run faster.

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

Protecting Shared Information

When many parts of the computer are working at the same time, they might try to change the same information. To stop this from happening, DragonFly uses special methods. These methods are called "critical sections" and "serializing tokens." They make sure that only one task can change a piece of information at a time.

Many core parts of DragonFly, like the LWKT system, work without needing special "locks." This means they can work very efficiently. Critical sections protect against interruptions on each CPU. This makes sure a task isn't stopped while it's working.

Serializing tokens are used to stop other CPUs from trying to access the same information at the same time. Many tasks can hold these tokens, but only one of them will be actively running at any moment. This helps prevent problems like "deadlocks," where tasks get stuck waiting for each other. DragonFly also uses a special memory manager that doesn't need locks, making memory tasks faster.

Virtual Kernel

Since version 1.8, DragonFly has a cool feature called a "virtual kernel" (vkernel). It's like running a mini-kernel inside the main system. This vkernel runs in its own isolated space. It has its own fake network and storage. This makes it much easier for developers to test new parts of the kernel without affecting the main system.

The vkernel is a bit different from the real kernel. It doesn't handle low-level hardware directly. It also uses standard programming functions whenever possible. This helps keep the code for the real kernel cleaner. The vkernel uses the main kernel to handle things like timers and connecting to the internet.

Managing Software (Package Management)

You can get extra software for DragonFly in two main ways. You can use "binary packages" through a tool called `pkgng`. Or you can use "DPorts," which is a system that helps you build software from its source code.

DragonFly used to use a system from FreeBSD for managing software. Then it tried a system from NetBSD called `pkgsrc`. But keeping `pkgsrc` working was too much effort. So, the project created DPorts, which is based on the FreeBSD system again.

CARP Support

DragonFly BSD also includes support for something called CARP. This helps make sure that if one computer fails, another can quickly take over its job. This is important for keeping services running smoothly.

HAMMER File Systems

DragonFly BSD supports its own special file systems called HAMMER and HAMMER2. A file system is how your computer organizes and stores files on a disk. HAMMER2 is the main one used now, since version 5.2.0.

HAMMER was made just for DragonFly BSD. It's designed to be powerful and easy to use. It lets you do things like keep a history of your files, take "snapshots" (copies of your files at a certain time), check for errors, and remove duplicate data.

HAMMER2 is the newer version of HAMMER. It's now considered stable and is the main focus for new improvements. It became the default file system in version 5.2.0.

devfs

In 2007, DragonFly BSD got a new "device file system" called devfs. This system automatically adds and removes device names as you plug in or unplug devices. It also lets you find devices by their unique serial numbers. This means you don't need a pre-made list of all possible devices.

Application Snapshots

DragonFly BSD has a feature that helps large programs start much faster. It's like taking a "snapshot" of a program's memory after it first loads. The next time you open that program, it can use this snapshot to start up more quickly. This is especially helpful for big programs that use many shared parts, like those found in KDE Software Compilation.

Development and How It's Given Out

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

DragonFly BSD developers are updating old programming code to newer standards. The system also has a security feature called "Stack-Smashing Protector." This helps protect against certain types of attacks on the computer. However, the main kernel doesn't use this protection by default anymore.

DragonFly has a built-in system that can rebuild the entire operating system from its source code with just a few commands. 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 testing versions of its code in one place.

Like other operating systems, DragonFly has a "kernel debugger." This helps developers find and fix problems in the kernel. A special "debug kernel" is installed by default. This helps create useful reports if the system crashes, making it easier to track down bugs.

How You Get It (Distribution Media)

You can get DragonFly BSD as a "Live CD" or "Live USB." This means you can start your computer from the CD or USB drive. It will run a full DragonFly system without needing to install it on your hard drive. This is great for trying it out, fixing a broken installation, or showing off the system. You can also download daily versions for the most recent updates.

DragonFly is free and open-source. This means anyone can use, change, and share it under the rules of the BSD license.

Release History

Version Date Changes
6.4 30 December 2022
6.2.1 9 January 2022
  • NVMM (a virtual machine tool) was added.
  • You can now change the size of existing HAMMER2 storage.
  • Added xdisk, which lets you mount remote HAMMER2 disks (experimental).
  • Updated graphics drivers for AMD.
  • Updated DRM (for graphics).
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 how the system uses memory.
  • Updates to graphics drivers.
  • HAMMER2 file system got faster.
5.4 3 December 2018
  • Updated drivers for network, virtual machines, and display.
  • Included GCC 8.0 (a programming tool).
  • More fixes for the Hammer file system.
5.2 10 April 2018
  • HAMMER2 file system is now considered stable and ready to use.
  • Added support to protect against Meltdown and Spectre security issues.
  • Updates to the firewall (ipfw).
  • Better graphics support.
5.0 16 October 2017
  • New HAMMER2 file system introduced.
  • Can now support over 900,000 running programs on one computer.
  • Improved graphics support for Intel.
  • Firewall (IPFW) got better performance.
4.8 27 March 2017
  • Initial support for AMD Ryzen processors.
  • Improved graphics support for Intel.
  • Kernel performance got better.
  • Can boot from eMMC storage.
  • LibreSSL replaced OpenSSL (for security).
  • Included GCC 5.4.1 (a programming tool).
  • Initial support for Clang (another programming tool).
  • Can install using UEFI.
4.6 2 August 2016
  • Improved graphics support for Intel and Radeon.
  • Support for NVM Express (fast storage).
  • Improved performance for multiple processors (SMP).
  • Improved network performance.
  • Early support for UEFI booting.
  • Autofs (for automatically mounting drives) was added.
4.4 7 December 2015
  • Included GCC 5.2 (a programming tool).
  • Gold is now the default linker (a tool for making programs).
  • Improved graphics support for Intel and Radeon.
  • Major changes to how language and region settings work.
  • Regex library was replaced.
  • Many fixes for HAMMER.
4.2 29 June 2015
  • Included GCC 5.1.1 (a programming tool).
  • Improved graphics support for Intel and Radeon.
  • Improved sound support.
  • Better support for memory and temperature sensors.
  • Path MTU Discovery (for network speed) is on by default.
  • SCTP (a network protocol) support was removed.
  • Sendmail (for email) was replaced by DMA.
  • GNU Info pages were removed.
4.0 25 November 2014
  • Firewall (PF) now works better with multiple tasks.
  • Networking is better for speed.
  • Procctl security feature in the kernel.
  • Can support up to 256 CPUs.
  • Improved wireless networking.
  • Support for Rust and Free Pascal programming languages.
  • Intel graphics support greatly improved.
  • Included GCC 4.7.4 (a programming tool).
3.8 4 June 2014
  • Dynamic root and PAM support.
  • USB4BSD is now the default (for USB devices).
  • Native C-State support for Intel CPUs (for power saving).
  • TCP port token split for better network connection speed.
  • Included GCC 4.7.3 (a programming tool).
  • HAMMER2 was included (not ready for full use yet).
  • This was the last release for 32-bit computers.
3.6 25 November 2013
  • Reduced competition for resources in multiple processors.
  • Kernel modesetting for Intel and AMD graphics cards.
  • Hardware acceleration for Intel graphics up to Ivy Bridge.
3.4 29 April 2013
  • New software manager, DPorts, was introduced.
  • Included GCC 4.7 (a programming tool).
  • Improved CPU usage and temporary file system performance under heavy use.
3.2 2 November 2012
  • Kernel that works with multiple processors became required.
  • Performance improvements in how tasks are scheduled.
  • USB4BSD was brought in from FreeBSD.
  • PUFFS was brought in from NetBSD.
3.0 22 February 2012
  • Kernel that works with multiple processors became the default.
  • HAMMER file system performance improved.
  • Support for TrueCrypt-compatible encryption.
  • dm-crypt was replaced with a BSD-licensed library.
  • Better POSIX compatibility.
  • Device driver for ECC memory.
  • Major improvements to network and multiple processor support.
  • ACPI (for power management) improvements.
2.10 26 April 2011
  • "Giant lock" (a system lock) was removed from most areas.
  • HAMMER deduplication (removes duplicate data).
  • Included GCC 4.4 (a programming tool).
  • Network bridging system was rewritten.
  • Major performance improvements.
2.8 30 October 2010
  • Wi-Fi stack was brought in from FreeBSD.
  • Logical volume management (for disk space).
  • dm-crypt (for encryption).
  • New disk scheduler.
  • Reduced "giant lock" usage.
2.6 6 April 2010
  • Swapcache (for faster memory swapping).
  • tmpfs (temporary file system) was brought in from NetBSD.
  • HAMMER and general input/output improvements.
2.4 16 September 2009
  • devfs (for managing devices).
  • New AHCI driver (for storage), including NCQ support.
  • NFS (Network File System) improvements.
  • Full x86-64 support.
2.2 17 February 2009
  • HAMMER was officially ready for use.
  • Major stability improvements.
  • New ways to get the system: LiveCD and LiveUSB.
2.0 20 July 2008
  • Major HAMMER improvements.
1.12 26 February 2008
  • Sensor framework was brought in from FreeBSD.
  • Bluetooth stack.
  • Included GCC 4.1 (a programming tool).
  • DragonFly Mail Agent (DMA), a simple email tool.
  • Support for the old 386 CPU was 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 was implemented.
1.6 24 July 2006
  • New random number generator.
  • IEEE 802.11 (Wi-Fi) framework was changed.
  • Major improvements to giant lock, clustering, and userland VFS.
  • Major stability improvements.
1.4 7 January 2006
  • Included GCC 3.4 (a programming tool).
  • pkgsrc was used by default for software.
  • Citrus was brought in from NetBSD.
1.2 8 April 2005
  • TCP SACK (for network speed).
  • TCP Performance tuning.
  • ALTQ and PF (firewall).
  • Thread-local storage.
  • Console over IEEE 1394.
  • Namecache infrastructure was rewritten.
  • X11 support.
  • pkgsrc support.
1.0 12 July 2004
  • First official release.
  • New BSD Installer.
  • LWKT subsystem and lightweight messaging system.
  • Mostly safe networking for multiple processors.
  • Memory allocator without locks.
  • Variant symlinks.
  • Application checkpointing support.

See also

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

  • Comparison of BSD operating systems
  • Comparison of open-source operating systems
  • Comparison of operating system kernels
  • Lumina (desktop environment)
kids search engine
DragonFly BSD Facts for Kids. Kiddle Encyclopedia.