tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Rumpification (was Re: CVS commit: src/usr.sbin/envstat)
On Tue Dec 14 2010 at 20:24:22 +0000, David Holland wrote:
> If what you want is to configure interfaces on the rump kernel, then
> the right way is to ifconfig (all of ifconfig) on the rump kernel.
> This does not require modifying ifconfig, avoids all the problems that
> have been cited in this thread, and is semantically far cleaner. All
> it requires is an LD_PRELOAD hack or similar to intercept syscalls, so
> the ifconfig process runs on the rump kernel, and the rump equivalent
> of 'ssh rumpkernel $COMMAND' to bring back the ifconfig process's
> output.
It's not quite as trivial as you'd like to think without ever actually
working on the code. Some issues you'll have to deal with when you
implement your model:
* no sbrk/mmap/fork/exec etc. in a rump kernel (you can relegate
to host behind the syscall, but I thought you said running something
half in the kernel was gross)
* no file system or at least no populated file system. what will happen
when some util wants e.g. /etc/protocols or /etc/services or some other
static database
* related to the above, no requirement to support e.g. vfs or networking
in a rump kernel. e.g. network utils should work with networking
support only.
* the LD_PRELOAD hack (which is gross) does not trap syscalls from libc.
if you want to use ptrace(), you need some additional gross hacks
rump is *not* a usermode OS project and trying to hammer it into the
model you are familiar with is not a productive way to spend time.
--
älä karot toivorikkauttas, kyl rätei ja lumpui piisaa
Home |
Main Index |
Thread Index |
Old Index