Dillon started DragonFly in the belief that that the methods and techniques being adopted for threading and SMP in FreeBSD 5 would lead to a poorly performing system that would be very difficult to maintain. He sought to correct these problems within the FreeBSD project, but others in the project did not think highly of his ideas and his ability to directly change the FreeBSD code was revoked.
DragonFly is derived from FreeBSD 4.8-RELEASE and imports features and bug fixes from FreeBSD 4 and 5 where appropriate, such as ACPI and a new ATA driver framework from FreeBSD 4. PAE support may also soon be added.
Intended to be "the logical continuation of the FreeBSD 4.x series," DragonFly is being developed in an entirely different direction from FreeBSD 5, including a new Light Weight Kernel Threads implementation and the beginings of a light weight ports/messaging system. Many concepts planned for DragonFly were inspired by the AmigaOS.
Whereas both Linux and FreeBSD employ fine-grained mutex models to achieve higher performance on multiprocessor systems, DragonFly does not. In DragonFly, threads are locked to CPUs by design, and each processor has its own LWKT scheduler. Threads are never preemptively switched from one processor to another; they are only migrated by the passing of an "Interprocessor Interrupt" (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 project goals to be met. The new infrastructure will allow many parts of the kernel to be migrated out into userland, whereby they will be more easily debugged and the system more robust - if a userspace driver crashes, it will not take out the kernel.
There is now a "Live CD" distribution that boots into a complete DragonFly system. In the future, this will be usable as a recovery CD, an installation CD and as a demo CD. It includes the base system and a complete set of manual pages and will include source code and useful packages in future versions.