On 21/10/14 08:36, Martin Lucina wrote:
> One thing that is missing right now is a writeup on what
> librumpkern_sys_linux and friends do exactly.  AFAIU they:
>
> 1) Translate struct stat and the like between Linux and NetBSD ABIs.
>
> 2) Translate (and handle TLS support for) rump_sys_* use of errno.
>
> Am I right? I should probably just go and read the source :-) but want
> to finish reading Antti's dissertation first. That presumably predates
> librumpkern_sys_linux -- there's a high level discussion of this in section
> 4.3.1 but nothing about the implementation as it stands today.

What the various rumpkern_sys_foo do is replace the syscall vector with 
wrappers which convert and unconvert types between userspace (e.g. 
Linux) and the rump kernel.  So, yes, you are right, though a bit 
unnecessarily enumerative, and strictly speaking TLS use for errno isn't 
part of the compat; however, errno _value_ translation is.

Your guess is also right, the dissertation predates repurposing the 
already existing NetBSD syscall compat code for rumpkern_sys_foo.  I 
really really spent a long time suffering with the type incompat between 
a non-NetBSD "userland" and a NetBSD rump kernel, and when I finally 
thought of using the syscall compat code, it was one of those "huh?  why 
didn't I think of that 5 years ago" moments.

Of course, a much more complete solution for the type incompat problem 
was provided last year by Justin, who thought of what's now known as 
rumprun-posix, i.e. running the entire software stack in userspace (and 
also made it work, despite my "that might be difficult"-negativity. 
though, in all fairness, I think it *was* a difficult job ;)

I seem to recall that there's a mail in the list archives discussing the 
relative merits of syscall compat vs. rumprun, but I couldn't find a 
link with a few minutes of searching.

Yes, the dissertation is out-of-date.  That why book.rumpkernel.org 
exists and I'm working on an updated version which describes all the new 
goodness -- or at least pretending to work on it.

Anyway, getting back to your proposal, I think I would prefer to guide 
new users just towards rumprun, where things just magically work on any 
platform.  Less explaining => better.  If learning about the type 
incompat becomes necessary, it can be an expert topic.  Makes sense?

   - antti

------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
rumpkernel-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rumpkernel-users

Reply via email to