comp.lang.ada
 help / color / mirror / Atom feed
* Ada OS  : towards an Ada Micro-kernel
@ 2002-08-13  9:47 OPERA
  2002-08-13 11:08 ` antoine terrienne
  2002-08-31  3:38 ` Nick Roberts
  0 siblings, 2 replies; 3+ messages in thread
From: OPERA @ 2002-08-13  9:47 UTC (permalink / raw)


Hello,

I have seen many discussions about using a micro-kernel such as L4 as a
foundation for
a new OS for ADA. I believe this can be a great idea, I would like to
suggest some ideas
about that :

First of all, if you consider the GNAT Runtime environnement, (GNARL) it
si based on very
simple primitives, far less complex than the Posix primitives, because
the Posix primitives were
not compatible with ADA requirements such as abortion. These primitives
are (tell me if I'm
wrong !) :
- Mutex Read/Write Lock
- Mutex Unlock
- Sleep      -- a task is waiting to be awoken
- Awake   -- an other task
- Wait Until
There is not even a simple conditionnal variable because in the general
case, the Posix ones are
not compatible with abortion ! The whole GNARL environnement is based
upon these trivial
primitives, that are implemented by the underlying kernel.

So the first choice for an ADA  micro-kernel would be to simply
implement efficiency these trivial primitives !!
But looking carefully we can see that :
- Protected objects can be implemented efficiency with :
    Mutex Read/Write Lock and Unlock
    Condition_Wait(condition, mutex)   --wait for a conditionnal
variable
    Condition_Signal(condition)
 provided that this primitives are compatible with abortion at the
micro-kernel level.

- Simple Rendez-vous can be implemented through IPC
    Message_Send (entry)    -- entry call
    Message_Accept(entry)  -- Accept statement
    Message_Reply(entry)    -- end of rendez-vous
And the IPC capabilities of L4 can be a great basis to developp these
primitives.
But, for me, L4 primitives are not fully compatible with ADA
requirements : in particular,
they can't be used to implement multiple "select alternatives". As an
example, we need new primitives
that allow something like : Message_Accept( "list of entries").

Therefore, I believe that the creation of a new micro-kernel must follow
two steps :
1. identify what primitives ADA needs, and their level of abstraction
2. try to implement them efficiency on a given machine (= to make a
micro-kernel), by
reusing if needed existing micro-kernel such as L4 or Hurd.

Any comment on this would be greatly appreciated !

Vincent Diemuunsch




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-08-31  3:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-13  9:47 Ada OS : towards an Ada Micro-kernel OPERA
2002-08-13 11:08 ` antoine terrienne
2002-08-31  3:38 ` Nick Roberts

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