comp.lang.ada
 help / color / mirror / Atom feed
From: Doctor Who <doc@tardis.org>
Subject: Re: The Ravenscar profile and capabilities paradigm
Date: Tue, 12 Oct 2021 20:21:28 +0200	[thread overview]
Message-ID: <abkbmgduvlrjee1bm1v74oks4kv8kqqen6@4ax.com> (raw)
In-Reply-To: <sk4agl$8vt$1@gioia.aioe.org>

On Tue, 12 Oct 2021 16:43:07 +0100, "Luke A. Guest"
<laguest@archeia.com> wrote:

>On 12/10/2021 16:33, Shark8 wrote:
>> On Tuesday, October 12, 2021 at 9:04:09 AM UTC-6, Luke A. Guest wrote:
>>> On 12/10/2021 16:01, Shark8 wrote:
>>>> On Monday, October 11, 2021 at 1:24:48 PM UTC-6, Doctor Who wrote:
>>>>> On Mon, 11 Oct 2021 16:32:13 +0100, Simon Wright wrote:
>>>>>> Doctor Who writes:
>>>>>>
>>>>>>> someone knows how to introduce the capabilities paradigm in Ada,
>>>>>>> specifically for programs written using the Ravenscar profile ?
>>>>>>
>>>> Type Capability is ( Read, Copy, Whatever );
>>> There can be a capabiity for literally anything, even ownership and can
>>> be different depending on object/os service.
>>>
>>> I'd say a tagged type is better than an enum.
>> Possibly.
>> But there's no reason to complicate the general idea in example-form: even if it's a tagged type you're going to want the capability-instance to be limited-private; the implementation of the "permissions" component being a Boolean-array or a vector of Capability'Class [most obviously having Capability be an abstract tagged null record] is mostly irrelevant for that demonstration. (And using a vector of tagged-type instead of the array would have bogged the example down with importing and instantiating the Vector container and setting up multiple non-abstract Capability-descendants, cluttering the point of the example.)
>> 
>
>Capabilities allow granting and revoking of access, iirc, the kernel has 
>access to all, the kernel then grants access to certain processes, i.e. 
>memory server, filesystem server, etc. each of those processes can 
>further grant and revoke caps.
>

thank you all for the help, I hope this discussion goes far.
the most useful approach is the microkernel, where access to, and
operation of, each service is mediated by capabilities.

I would go so far to define and implement a capability-based
microkernel written in Ada using the Ravenscar profile.

  reply	other threads:[~2021-10-12 18:21 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-11 13:33 Doctor Who
2021-10-11 14:48 ` Luke A. Guest
2021-10-11 19:25   ` Doctor Who
2021-10-11 19:36     ` Luke A. Guest
2021-10-11 19:50       ` Doctor Who
2021-10-12  0:45         ` Luke A. Guest
2021-10-12  0:47           ` Luke A. Guest
2021-10-12  2:31             ` Doctor Who
2021-10-12  2:29           ` Doctor Who
2021-10-12  2:35             ` Doctor Who
2021-10-12  3:19             ` Doctor Who
2021-10-12  5:17         ` Richard Iswara
2021-10-12  6:42           ` Doctor Who
2021-10-12 11:51             ` Richard Iswara
2021-10-12 11:58               ` Luke A. Guest
2021-10-12 15:04                 ` Doctor Who
2021-10-11 15:32 ` Simon Wright
2021-10-11 19:24   ` Doctor Who
2021-10-12 15:01     ` Shark8
2021-10-12 15:02       ` Luke A. Guest
2021-10-12 15:33         ` Shark8
2021-10-12 15:43           ` Luke A. Guest
2021-10-12 18:21             ` Doctor Who [this message]
2021-10-12 18:24               ` Doctor Who
2021-10-14  3:46       ` Doctor Who
2021-10-14 15:16         ` Shark8
2021-10-14 16:38           ` Doctor Who
2021-10-14 21:20             ` Simon Wright
2021-10-15 11:21               ` Doctor Who
2021-10-11 15:48 ` Shark8
2021-10-11 19:25   ` Doctor Who
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox