[cap-talk] Piping capability communication, data vs. descriptor capability strengths

Jed Donnelley capability at webstart.com
Fri Feb 27 03:21:13 EST 2009


cap-talk, e-lang,

I'd like to ask a question of the cap-talk/e-lang lists (please 
include cap-talk in any replies).  If this issue has been addressed 
before, somebody can just point me to the discussion (sorry if I missed it).

One of the strengths of Unix style systems is (I believe) their 
ability to "pipe" data among processes, e.g.:

ls -l | grep abc | sort > abc-files.txt

or perhaps:

intty wget <http://.>http://... | tr -u '\r' '\n' |
awk '!/^(Location|HTTP|--)/{if($0=="")print;else printf"%s\r",$0;fflush()}'

(something I just grabbed off the Web), etc.

In principle of course capability communication systems can provide 
similar facilities for "piping" data between running programs.

However, what about "piping" capabilities?  With capabilities as data 
this seems to me relatively straight forward.  After all, such 
capabilities are simply data and can - perhaps with minimal escaping 
or encoding - just flow through such "pipes".  However, what about in 
capability as descriptor systems?

Have there ever been such systems (e.g. E, 
KeyKos/EROS/Coyotos/CapROS, etc.) that can effectively "pipe" 
communication streams between running programs that include 
capabilities?  Perhaps supporting something like the Unix shell 
piping syntax, but including capabilities in the communication for 
tinker toy connections between working modules?

I'm not aware of any such mechanisms.  Perhaps this is just my 
ignorance.  If there are such I'd like to hear about them.

Even in Unix I've heard that open file descriptors can be sent 
through a pipe.  If that's so, what's the syntax (e.g. as above) look 
like?  How are the descriptors sent and received specified (by the 
sender on sending and by the OS on receiving to the receiver)?

This is an area where it has seemed to me that capabilities as data 
have some advantages over capabilities as descriptors.  If this isn't 
true I'd like to hear more about how this aspect of capabilities as 
descriptors work (e.g. in reference E or even in Unix with file descriptors).

Thanks for any time to respond.

--Jed  http://www.webstart.com/jed-signature.html 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.eros-os.org/pipermail/cap-talk/attachments/20090227/4d0fcde9/attachment.html 


More information about the cap-talk mailing list