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

* Re: Ada OS  : towards an Ada Micro-kernel
  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
  1 sibling, 0 replies; 3+ messages in thread
From: antoine terrienne @ 2002-08-13 11:08 UTC (permalink / raw)


OPERA wrote:
> 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 :
> 
  *skip*
> 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").
> 

That's right. L4 provides only tasking and ipc. anything like
memory managing, mutexes, scheduling, IRQ managing, dynamic
linking etc.. should be provided by servers on top of L4

> 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
> 

humm.. hurd is not a microkernel it is a collection of servers running
on top of gnumach. But mach is an old microkernel with low efficiency.
Hurd will be ported on L4 v4 (Pistachio) is the distant future as L4 is
the new generation microkernel (mush more efficient as it is mush more
minimal). for info on hurd on L4 see :
http://kerneltrap.org/node.php?id=157

For information there is a project (ADX) to build such an operating
system. Well for now there is noting done yet I stil work on the
specifications. http://antoine.terrienne.free.fr/adx/index.html

If you want to discuss about desinging an Ada os on top of L4 you are
also wellcome on the ADX mailing list :
http://fr.groups.yahoo.com/group/projet-adx/




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

* Re: Ada OS  : towards an Ada Micro-kernel
  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
  1 sibling, 0 replies; 3+ messages in thread
From: Nick Roberts @ 2002-08-31  3:38 UTC (permalink / raw)


On Tue, 13 Aug 2002 11:47:35 +0200, OPERA <vincent.diemunsch@edf.fr>
strongly typed:

>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 :
>...
>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").

It's funny, people keep suggesting AdaOS be based on L4, and I keep saying
that it has some serious shortcomings. It's nice to see someone actually
noticing one of these shortcomings. Well done Vincent!

>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 !

Hopefully the arguments as to the microkernel basis will go away very soon.
I am about to publish my own design (called 'Bachar'), which solves the
various problems that need to be solved (including a few that neither L4
nor anyone else that I'm aware of have even addressed). More info soon.

-- 
Nick Roberts



^ 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