[e-lang] simple question

Matej Kosik kosik at fiit.stuba.sk
Thu Aug 17 07:01:48 EDT 2006


Kevin Reid wrote:
> On Aug 15, 2006, at 15:59, Matej Kosik wrote:
> 

[snip]

> 
> 
> Of course they can.
> 
>    ? def makeEParser := <import:org.erights.e.elang.syntax.makeEParser>
> 
>    ? def program := makeEParser.run(<file:///home/kosik/program.e>)
>    # value: e`...`
> 
>    ? def object := program.eval(safeScope)
>    # value: <programWithoutAuthority>

I guess that the above command's semantics is that it evaluates a given
program inside current vat. That is, it does not create a new vat.

Is there a possibility to instantiate new vat (separate from the one
from which that command would be executed) for a given program in such a
way that:
1. the new vat will have initially no capabilities to external objects
2. the new vat tells the its "parent" what its "main object" is (this is
not unusual; in UNIX for example parent processes are able to identify
the childs they create)
3. and thus parent may deliver it all the capabilities to the outside
world the new vat needs, or tells other peers about this new vat so that
they send it requests (as messages) which convey proper capabilities so
that this new vat can do some useful work?

Suppose that someone wanted to re-write the harddisk driver
http://www.minix3.org/doc/AppendixB.html#at_winchester_task-12334
of Minix in E. It would be necessary to create a new vat inside which a
given program would run (initialize itself and then listen) and we would
need some way to talk it.

(the main motivation in this case need not to be security---in order for
the harddisk driver vat to be useful it must be able to write arbitrary
data to it and perhaps also destroy it, we simply have to trust certain
key components---the motiviation might be to glue OS components together
by better communication protocol (to avoid excess of authority (harddisk
driver shouldn't be able to destroy soundcard), to avoid deadlocks, to
privide more convenience for programmers, etc))

[snip]

Regards
-- 
Matej Kosik
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 256 bytes
Desc: OpenPGP digital signature
Url : http://www.eros-os.org/pipermail/e-lang/attachments/20060817/33337d88/attachment.bin 


More information about the e-lang mailing list