DragonFly kernel List (threaded) for 2004-03
Re: Goals for first release (June/USENIX)
I'm wondering if this first release is going to include much in the way
of pre-compiled packages? Because my old box just doesn't have the
steam to compile everything from ports.
Matthew Dillon wrote:
I think this would be a good time to start a discussion on what our
goals should be for our first release. I will begin by talking about
my personal development goals.
After a great deal of thought I have decided that the AMD64 port can wait
until after the first release. Instead, I would like to finish up and
make operational (hopefully) three major infrastructure interfaces. I
have my work cut out for me, to say the least. Here are my personal
* Directory services. Most of the infrastructure is now in place, the
next step for me is to start integrating support into libc.
* Syscall interface layer and messaging (true async syscalls), and
related upcall and other interfaces, such as placing the syscall
compatibility layer into userland.
I'm not happy with the current infrastructure. I am going to rework it
and use a shared memory segment between userland and the kernel that
the messages would be transfered through, allowing us to avoid
copyin/copyout. The same rendezvous memory API could be used to
augment the directory services IPC syscalls (CAPS calls) to greatly
improve their performance as well.
I don't know if I will have time to actually move the compatibility
layer (sysv, ibcs, linux compat) to userland before the first release,
but I'll try.
* Userland VFS and DEV interfaces. Not yet started. I'll consider this
goal as 'done' when I have sucessfully created a userland 'vn' like
device and migrated, say, ext2fs, to userland. As part of this I
am going to try to 'fix' the buffer cache code to reduce the number
of kvm mappings it has to do.
Those are my personal goals. Others can post their own personal goal
set for the first release. There are lots of categories that are being
worked on by various developers and, of course, lots of things that need
to be done. My focus is to do the 'hard part' of the basic infrastructure
in order to enable others to then augment, expand, and otherwise
implement things on top of that infrastructure.