[cap-talk] Announcing "Analysing Object-Capability Security" Paper and Authodox v. 0.2.0
David-Sarah Hopwood
david.hopwood at industrial-designers.co.uk
Fri May 30 20:22:12 CDT 2008
Jonathan S. Shapiro wrote:
> 1. The opaqueness boundary at the OS/application layer is a problem,
> because it forces the OS to make mostly static, conservative
> assumptions about program behavior. For most programs this is fine,
> but there are two classes of important programs for which it is
> a problem:
[...]
> B Memoryless programs. There is a class of programs that require
> state for realistic implementations, but none of that state
> remains live when the program returns from a given request.
> The OS cannot see this. Functional programming doesn't help,
> because the compiled realization of a functional program is
> generally stateful.
I'd dispute that functional programming doesn't help here. It helps by
providing a high-level programming model that does not depend on use of
logically visible state.
It is true that typical current implementations of functional
programming languages make heavy use of implementation-level state.
But suppose that the OS could snapshot the state of the process after
an initialization phase, and then reset it to the snapshot after each
application-level request. That would allow existing language
implementations (functional or not) to be used in a way that obtains
most of the advantages of statelessness, for application programs that
are logically stateless between requests.
> 4. Given a formal model, it really ought to be possible to connect
> the capability invocation layer (which occurs at the level of
> application semantics) to the behavior within the OS (which occurs
> at the layer of the cap runtime formal model).
>
> Point [4] was still fairly inchoate in my mind at that time. It took a
> comment by MarkM years later to bring it into clear focus: capability
> semantics is the semantics of lambda calculus with side effects.
*Sequential* capability semantics is essentially the semantics of the
lambda calculus with side effects.
--
David-Sarah Hopwood
More information about the cap-talk
mailing list