DragonFly kernel List (threaded) for 2004-07
12 July 2004
One year after starting the project as a fork off the FreeBSD-4.x tree,
the DragonFly team is pleased to announce our 1.0 release!
We've made excellent progress in our first year. We have replaced nearly
all of the core threading, process, interrupt, and network infrastructure
with DragonFly native subsystems. We have our own MP-friendly slab allocator,
a Light Weight Kernel Threading (LWKT) system that is separate from the
dynamic userland scheduler, a fine-grained system timer abstraction for
kernel use, a fully integrated light weight messaging system, and a core
IPI (Inter Processor Interrupts) messaging system for inter-processor
We have managed to retain 4.x's vaunted stability throughout the development
process, despite ripping out and replacing major subsystems, and we have
a demonstratively superior coding model which is both UP (Uni-Processor) and
MP (Multi-Processor) friendly and which is nearly as efficient on UP systems
as the original 4.x UP-centric code is on UP systems.
We have made excellent progress bringing in those pieces from FreeBSD, NetBSD,
and OpenBSD that fit our model. For example, NEWBUS/BUS_DMA, the USB
infrastructure, RCNG (next generation system startup infrastructure), and
so forth, and we have made an excellent start reformulating the build
and release infrastructure including an excellent new system installer
which, while still in its infancy for the 1.0 release, has been coded in
a manner that will allow us to greatly improve and expand its capabilities
in coming months.
We have done so much that it cannot all be listed here. Please checkout the
diary on our main site for the technical minutia.
The two largest user-visible subsystems that still have major work pending
are the userland threading and ports/packages subsystems. People will find
that the DragonFly-1.0 release is still using the old 4.x pthreads model,
and at the moment we are relying on the FreeBSD ports tree with DragonFly
specific overrides for third party application support... about as severe a
hack as it is possible to have. These two stop-gap items will be at the
forefront of the work for the next year, along with a major move to start
removing the BGL (Big Giant Lock, also known as the MP lock) from code
inherited from 4.x, threading the VFS (Virtual File System) subsystem (the
network subsystem is already threaded as of 1.0), and implementing
asynchronous messaged system calls. And that is just the tip of the iceberg,
we will be doing far more in the coming year!
-The DragonFly Team-