Hello Sid,

Additionally, I think I finally understood how unwrapping works - and this
yields quite nicely into why you might have been encouraging me to use the
same endpoint for all the servers(i.e., merge the servers). If I merge them
into a single server, I can hand out badged EP of the same original
endpoint to all the server's clients. Now unwrapping will reveal the badge
of any badged EP cap since they are badged versions of the EP via which the
message arrives. If I still want to encode type information(memory
allocator or vspace manager), I can encode that into the badge instead of
using a different un-badged endpoint for each type.


To restate, I would encourage you to design your servers as if they were in different address spaces and cspaces, even if they are not. If you encounter a situation where you can't separate two servers cleanly, that may be an indication of a design problem. For example, you may be trying to separate functionality into different servers that may make more sense living in one server.

IMHO, in general, each server should use exactly one endpoint, and issue badged endpoint caps as you have described in order to multiplex over the same endpoint.

I don't recommend putting everything in the same server though -- I'm just pointing out there are tradeoffs to consider in how you separate things, and I don't think sharing address spaces or badge secrets is a good solution/workaround to these server design issues.

- JB
_______________________________________________
Devel mailing list -- devel@sel4.systems
To unsubscribe send an email to devel-leave@sel4.systems

Reply via email to