Trying to understand how capabilities are implemented

Albin Otterhäll albin at a12l.xyz
Sat Aug 19 03:35:46 CEST 2023


Hi!

I'm currently reading through Genode: Foundations, and I've some questions regarding the implementation that came up while reading section 3.1. Can you please confirm, or correct me if I've misunderstood something? It will help me understanding the content of the subsequent chapters

1. The RPC object A is created inside the protection domain 1, which result in the object identity A being created by the kernel.

2. A has a name, which is a natural number. 
   Q1: Is the RPC object's name the value of a class variable of type int?

3. Protection domain 1 has a capability space insied the kernel.
   Q2: Is the protection domain seperate from the capability space in the kernel, and they're "connected" with some map somewhere?
   Q3: Is the capability space a map between natural numbers and some form of address to the object identity? I.e. the map work similar to a set of OO references, there the keys are variable names; and the values are the memory addresses of object identities.
   Q4: If the answer to Q3 is yes, does that mean that delegagion is some form of mechanism to share the adress of the object identity with other protection domains?

Thanks for the help!
--
Albin Otterhäll



More information about the users mailing list