Main Page | See live article

DragonFlyBSD

DragonFly BSD was first announced to the world through the FreeBSD mailing lists on 16 July 2003 by Matt Dillon a long-time FreeBSD and Amiga developer of considerable skill. Designed to be "the logical continuation of the FreeBSD 4.x series" of operating systems, it is quickly evolving in an entirely different direction than FreeBSD 5, including a brand new "Light Weight Kernel Threads " (LWKT) implementation, and the beginings of a light weight ports/messaging system to go with it. Many of the ideas being implemented in DragonFly were inspired by the AmigaOS.

The DragonFly BSD Project was started because Matt believes that the methods and techniques being employed in the latest versions of FreeBSD related to both threading and SMP will ultimately lead to a poorly performing system that will become a nightmare to maintain. Matt long sought to fix what he thought was wrong with the FreeBSD kernel, but others in the FreeBSD project did not think highly of his ideas, and he lost his commit bit.

DragonFly is derived from FreeBSD 4.8-RELEASE. In addition to new code generated by DragonFly's own developers, bug fixes and new code is imported from FreeBSD 4 and 5, where it makes sense to do so. Recently imported features include ACPI and a new ATA driver framework, both imported from the 4.x series. PAE support may also soon make its way into DragonFly by way of FreeBSD 4.

Both Linux and FreeBSD employ fine-grained mutex models to achieve higher performance on multiprocessor systems, whereas DragonFly does not. In DragonFly, threads are locked to CPUs by design, and each processor has it's own LWKT scheduler. Threads are never preemptively switched from one processor to another, and are only migrated by the passing of an "Interprocessor Interupt" (IPI) message between the CPUs involved.

System calls are being split and encapsulated into messages, and there is progress being made to provide both device and "Virtual File System" (VFS) messaging capabilities that will allow the remainder of the goals outlined on the DragonFly website to be met. Among other things, this new infrastructure will allow many of the things in the kernel to be migrated out into userland, where the can be more easilly debugged, and as an added bonus, make the system more robust (if a userspace driver croaks, it will not take out the kernel).

There is now a single "Live CD" distribution that boots into a complete DragonFly system. In the future, this will be used as a recovery CD, as the installation CD, and as a demo CD. Not only does it have the base system, but also a complete set of manual pages, and will include both source code and some useful packages in future versions. Some additional interesting features that are new to BSD (if not to computer science in general) include variant symlinks, and application checkpointing support.

Ultimately, Matt wants DragonFly to enable "secure anonymous system clustering over the Internet" and the light weight ports/messaging system will help to provide this capability.

External links