[cap-talk] Capability levels

David Hopwood david.nospam.hopwood at blueyonder.co.uk
Tue Aug 15 15:33:33 EDT 2006


Mark Seaborn wrote:
> Jed at Webstart <donnelley1 at webstart.com> wrote:
> 
>>I guess you're basing your argument on the issue of who's in
>>control?  I agree that the operating system is in control.  However,
>>I don't think that's particularly relevant to the level discussion.  You
>>could also say that the hardware level has yet a more over arching
>>level of control (e.g. microcode, etc.), but if I were to place the hardware
>>level into my suggested set of capability levels, I would do so as:
>>
>>1.  Hardware,
>>2.  Language,
>>3.  OS,
>>4.  Network
> 
> Looking at it in terms of what is more lightweight or heavyweight, I
> would agree with Jed's ordering.
> 
> Language-level capabilities are the most lightweight.  Objects at this
> level might only take up a few words, whereas OS-level objects are
> things like files or 4k data pages.  There will generally be more
> language-level objects in a system because not all language-level
> objects will be exported between processes.  Furthermore, exporting an
> object to another process can involve creating a (language-level)
> proxy object in that process -- this is how it works in Plash.
> 
> There is a similar situation between the OS/network levels: Most
> objects on one machine will not be exported across the network to
> another machine, and you might have a process dedicated to doing the
> proxying.

That's all very well, but it is a different issue to abstraction level.

The abstraction levels of capability system implementations have no
reason to be in the same order as the sizes of the scopes in which their
capability representations are valid.

A *typical* situation would be:

 <--------------// - - - - - - - - - //----scope---->
  Network cap   |                      Network cap   |
  protocol in   |                      protocol in   |
  process 1A    |                      process 2A    |
 ===============|                     ===============|
  <---scope---> |  <---scope--->       <---scope---> |
  Cap language  |  Cap language        Cap language  |
  in process 1A |  in process 1B       in process 2A |
 ================================    ================================
  <-----------scope------------>      <-----------scope------------>
       Cap OS for machine 1                Cap OS for machine 2

 ^
 |  increasing abstraction level
 |


As for performance or object size, different types of system do tend to
have different performance characteristics, but I don't see that this has
any direct link to what abstraction level they occupy.

-- 
David Hopwood <david.nospam.hopwood at blueyonder.co.uk>




More information about the cap-talk mailing list