Introducing a cmp() operation
Bernhard Kauer
kauer at os.inf.tu-dresden.de
Tue Jun 14 20:33:37 CEST 2005
> The second example was the reference counter, which
> is the more important one! The above example you give is just the
> basic example, while the reference counter shows the bigger problem.
No, the answer for the reference counter problem is simple: cooperation.
Just as reminder:
Situation: S -> C -> (1 reference) A -> B
Goal: /-> (1 reference) A
S-> C
\-> (1 reference) B
1. In the start situation A is trusted by B to provide the endpoint to S.
Since A could unmap this endpoint everytime.
2. Therefore B can ask A for a new reference. Since A can not provide this
service, it asks C and attaches a [1] return endpoint to B in its message.
3. C answers directly to B and maps them a new reference.
> > A transparent interpose of different endpoints with a
> > single one is otherwise not possible.
>
> This just shows that reintroducing global IDs through the backdoor is
> ill-advised.
What are the global IDs? We do not have one.
I mean here that if everybody can do a cmp() it is possible to detect,
whether two "capabilities" pointing to endpoints, which are interposed
e.g. by a monitor, are the same or not.
Bernhard
[1] the endpoint where C send its reply to the RPC
More information about the l4-hackers
mailing list