DragonFly kernel List (threaded) for 2003-07
Re: Annoucning DragonFly BSD!
: I can give you a hint :). I am sure you know the answer already.
:Copy-on-write for big messages... I think mach lets you hand the
:"memory object" over to the receiving process for a certain amount of time
:at which point the receiver should do some sort of copy.
:Not using the kernel as a userland message-passing data storage area
:seems to be a good goal. Unix has all that icky virtual memory with address
:protection and mmap is butt-ugly to use for many communicating processes :).
:Anyway... that's what I would like to see.
:We can continue this on one of the dragonfly mailing lists :) I am signing up today.
Well, I don't expect expect messages to ever get 'big' per say, auxillary
data will still be passed with pointer references from user->kernel
though anything that goes deeper into the kernel will likely be converted
into an iovec-like array of VM Objects.
Most messages will be declared on the stack... for example, most messages
used in system calls, even in multi-threaded programs, would simply be
declared on that thread's stack and the kernel would copy it in.
Having a dedicated shared memory area might be more efficient on those
architectures which do not map user and kernel space together in the
same address space, but it creates some rather severe flexibility
issues in a multi-threaded environment and it also creates security
issues in regards to data integrity once the message has been handed off
to the kernel.