Announcing DragonFly BSD!
Matthew Dillon
dillon at apollo.backplane.com
Wed Jul 16 13:29:27 PDT 2003
:I'm especially encouraged by the committment to fix the VFS subsystem
:so that stackable filesystems will really work, by the caching/locking
:discussion, and the acknowledgement that system configuration and packages
:need a publish-subscribe (not Matt's words) mechanism.
:
:Manuel Kasper's m0n0wall configuration system, XML-based, is
:really cool. You could easily extend it to signed XML for
:trusted packages/components.
:
:Crypto and ACL filesystems could finally be done in a modular,
:stackable way. Esp. if the messaging subsystem works as
:advertised.
:
:This announcement has made an otherwise dreary and mind-numbing day at
:work a little better, thanks.
That is the intent. Also the ability to develop and debug VFS layers
as userland processes, or even run non-critical filesystems like msdosfs
and cd9660 in userland outright.
Fixing VFS is probably the single most difficult problem that we will
face. Fixing DEV (which I am going to do as soon as I change the
I/O system over to using VM object ranges) is a lot easier because DEV
entry points are already inherently asynch, or easily asynchronized.
E.g. the IDE driver takes a request and 'queues' it for action. The
UFS filesystem, on the otherhand, executes the request synchronously
in the context of the caller and may sleep/wakeup many times. There is
a big difference.
Fixing VFS will require breaking it first... that is, it will require
breaking its performance first by encapsulating the entire function set
in a single thread which processes requests one at a time, whether they
block or not.
Once this is accomplished individual VFS devices, starting with the
block conversion devices (VN, MD, etc) and ending with the filesystems
(UFS, etc) can be 'asynchronized'. The asynchronizing will require a
huge amount of work.
I'm probably not going to bother trying to remove the MP lock until
after DEV, VFS, VM, and KMEM have been fixed. It's far more important
to maintain a stable system for development while these crucial
subsystems are being worked on. One reason why I decided to integrate
MP lock manipulation in the LWKT scheduler (even though the LWKT subsystem
does not itself need the MP lock to operate) is because I know I am going
to be saddled with it for a long time and I might as well make it as
painless as possible.
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
More information about the Kernel
mailing list