I made a new branch of rumprun called "executive" that builds the
NetBSD userland tools as standalone binaries rather than dlopening
them. It partially works, but there are some issues.

The basic networking stuff, like ping, ifconfig seems to work fine.

For some odd reason ls does not return anything, so there is an odd
bug there. Possibly something to do with readwrite wrapper? Shouldn't
be too hard to debug.

The programs that use crypto (eg npfctl) are segfaulting as they use
the environment before my initialiser sets it up -  in _init. This is
fixable by several possible methods, eg shift it to use constructor
instead, or remove all the netbsd environ stuff from libc and use host
environ instead, or fix up the NetBSD init process.

Which leads to another possible option, which is to link rumpuser
statically with an implementation of the host syscalls it uses so it
does not need host libc, and then construct a wierd hybrid libc to run
NetBSD code, which is basically NetBSD libc except for certain host
parts, such as the dynamic linker. On NetBSD that should be quite
simple, on Linux maybe less so. Perhaps you could even run the NetBSD
linker on Linux though?

Overall it would be nicer than dlopen, and probably more portable (the
dlopen solution does require some oddness, hence not working on
NetBSD, or indeed Musl), but there are issues...

Justin

------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
rumpkernel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rumpkernel-users

Reply via email to