"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Wednesday, August 03, 2005

Adding Capabilities

Chris Double writes in a comment about Factor and his concurrency model...

I'm also keen to look into capabilities and how support for that could be added. But I'm completely unknowledgable in that area at the moment.
I intend to look into this with Termite and hopefully discuss this with Guillaume and I hope others.

The basic idea is to give each process its own set of known capabilities and aquire new capabilities from other processes (some coming from the "outside" world). A capability would be the ability to send a message to another process and some fundamental actions like spawning a new process, file I/O, etc. Joe Armstrong's work on unifying these actions as all being message sends would help with the design.

This implementation would require capabilities (e.g. process ID's and perhaps node ID's) to be unguessable and unforgeable. Rather a Pet Naming scheme would make capabilities more usable for developers.

Similarly connections to the outside world, e.g. the Internet, would apply the concept to URL's and so on.

Update: This reminds Chris of Plan 9. Just so... Plan 9 I recall has the same ability to map a tree of names (i.e. file system) onto a set of capabilities (i.e. the actual files, drivers, etc.) such that any given user's tree of names will refer to potentially *different* objects, based on the capabilities that user has.

No comments:

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.