comp.lang.ada
 help / color / mirror / Atom feed
From: Nick Roberts <nick.roberts@acm.org>
Subject: Re: For the AdaOS folks
Date: Fri, 31 Dec 2004 18:47:48 +0000
Date: 2004-12-31T18:47:48+00:00	[thread overview]
Message-ID: <gemini.i9lo7n001cmv901w4.nick.roberts@acm.org> (raw)
In-Reply-To: 1PTAd.1218$0y4.421@read1.cgocable.net

"Warren W. Gay VE3WWG" <ve3wwg@NoSpam.cogeco.ca> wrote:

> Its too bad that the L4 microkernel is not very secure yet. Apparently,
> they are trying to fix that in L4ng, but it appears that they got so
> focused on efficiency that they didn't get security. The efficiency of L4
> otherwise makes it very attractive. 

The major problems with L4 that stopped me using it (or its interface) were
its security problems, and the fact that it does not support process
migration. Of course, that support could be added on top, in an extra layer;
but obviously I felt there's no point in having that extra layer, I might
just as well design a microkernel that supports it directly. There are a
number of other minor problems with L4, too.

There are other problems. I want to write the microkernel (mostly) in Ada,
so I would have to rewrite L4 anyway. It might have still been attractive to
use the L4 interface, but since there is only a binary interface and a C
interface (no published Ada interface), this doesn't turn out to be such an
advantage. Similar comments apply to other kernels, including Mach.

> I also don't like the way that L4 ties communications to threads. The Mach
> approach is much easier to work with, with its single receiver and
> multiple send and send-once rights.

This issue is related to the problem of process migration. Mach supports it
by not tying communications to threads. But this creates all sorts of
communications routing complexity inside the kernel. I think Bachar does
much better: communications are thread-addressed, but a mechanism permits
proxy threads (which can be in separate processes) to be transparently
interposed when non-local communication is required (and removed when it is
not). This way, you get simplicity and efficiency, but process migration is
still properly supported. Note that there are some other subtleties: all
Bachar resources can be addressed (identified) in a way that can be exactly
reproduced in the target machine when a process is migrated; most
microkernels do not seem to support this functionality. Bachar provides
functionality that allows any process to be frozen, dissected, reconstructed
(on the target machine), and then reanimated. These functions can be done by
a higher layer, but it makes more sense for them to be supported directly by
the kernel.

> I've been mulling this over myself. Unfortunately, as soon as you say that
> all computers must work together, you introduce all sorts of problems and
> overheads. Endianness and page size are two issues, between two computers.
> I have been wondering if this shouldn't be tiered:
> 
>    1. Clustered systems with all the same endianness and page size
>    2. "Networked Clusters" of #1 groupings
> 
> In this way, it would be efficiently possible to cluster similar
> equipment, and yet still provide "one-ness" in the different computer
> cases, with the necessary overhead and complexity. This would also permit
> a tiered development approach.

Interesting idea. But I am assuming a network made up entirely of
workstations sufficiently similar in architecture that a process can be
migrated from any one to any other. In practice, to start with, that means a
set of PCs.

Obviously we will support heterogeneous networking, but I think we might as
well use IP to do this, and all the existing (reliable) technologies built
on top of it. I'd like to support both IPv4 and IPv6.

A widely-distributed (heterogeneous architecture) filesystem and database
system would be a very nice idea, however. I'm hoping that once we get a
core AdaOS working, people will develop all sorts of nice ideas for it.

> I wonder if networking really belongs in the microkernel. This is
> necessary for example if like Mach, you say that ports can speak to other
> Mach machines on the network/cluster.

I'm sorry, I didn't mean to imply that Bachar will do any networking. It
won't. It really will be a microkernel (maybe not as tiny as L4).

Networking will be implemented in device drivers and layers just above the
kernel, especially in the ORB engine (called Avarus).

> I always get scoffed at for suggesting this, and I have no love for M$,
> but the one idea they have had, which is useful, is the registry. I think
> there are better ways of doing this however, but the general idea is good.
> You can see that GNOME and Mozilla both use it, so it obviously satisfies
> a need. I think any OS today that is going to support point and click
> administration, is going to need some sort of a registry, even if it is
> just layering it on a RieserFS.

Exactly. The main problem with the Registry is that it is not a proper
database system.

-- 
Nick Roberts



  parent reply	other threads:[~2004-12-31 18:47 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-27  5:09 For the AdaOS folks Wes Groleau
2004-12-27 10:56 ` Florian Weimer
2004-12-27 12:50   ` Georg Bauhaus
2004-12-27 13:12     ` Florian Weimer
2004-12-28  1:18   ` Wes Groleau
2004-12-27 13:46 ` Adrien Plisson
2004-12-27 16:28   ` Georg Bauhaus
2004-12-28  6:19   ` Microkernels & Ada (Was for the AdaOS folks) Warren W. Gay VE3WWG
2004-12-28 12:02     ` Adrien Plisson
2004-12-28 15:28       ` Warren W. Gay VE3WWG
2004-12-30  1:19 ` For the AdaOS folks Nick Roberts
2004-12-30 13:58   ` Warren W. Gay VE3WWG
2004-12-30 15:27     ` Dmitry A. Kazakov
2004-12-30 16:30       ` Warren W. Gay VE3WWG
     [not found]         ` <otb8t09dkjh54e1k5s5ccn23ggkqk6ndui@4ax.com>
2004-12-30 19:06           ` OT: Mach Ports (For the AdaOS folks) Warren W. Gay VE3WWG
2004-12-31 10:03         ` For the AdaOS folks Dmitry A. Kazakov
2004-12-31 11:30           ` Warren W. Gay VE3WWG
2004-12-31 12:31             ` Dmitry A. Kazakov
2004-12-31 16:24               ` Warren W. Gay VE3WWG
2004-12-31 17:57                 ` Marven Lee
2004-12-31 18:40                   ` Warren W. Gay VE3WWG
2004-12-31 19:22                     ` Warren W. Gay VE3WWG
2005-01-02 15:09                     ` Marven Lee
2005-01-02 20:06                       ` Luke A. Guest
2005-01-03  3:13                         ` Warren W. Gay VE3WWG
2005-01-03  6:40                           ` Luke A. Guest
2005-01-03 10:30                             ` Marven Lee
2005-01-03 15:52                             ` Warren W. Gay VE3WWG
2005-01-03 16:48                           ` Ad Buijsen
2005-01-03 18:49                             ` Warren W. Gay VE3WWG
2005-01-03 13:43                         ` Marven Lee
2005-01-04 23:36                         ` Nick Roberts
2005-01-03 16:22                       ` Warren W. Gay VE3WWG
2005-01-04 23:16                       ` Nick Roberts
2005-01-05  3:48                         ` Warren W. Gay VE3WWG
2005-01-05 13:14                           ` Nick Roberts
2005-01-01 12:53                 ` Dmitry A. Kazakov
2005-01-02  0:31                   ` Warren W. Gay VE3WWG
2005-01-02 11:50                     ` Dmitry A. Kazakov
2005-01-02 22:04                       ` Warren W. Gay VE3WWG
2005-01-03 10:30                         ` Dmitry A. Kazakov
2005-01-03 16:36                           ` Warren W. Gay VE3WWG
2005-01-03 17:05                             ` Dmitry A. Kazakov
2005-01-03 19:01                               ` Warren W. Gay VE3WWG
2005-01-03 19:55                                 ` Dmitry A. Kazakov
2005-01-03 20:44                                   ` Warren W. Gay VE3WWG
2005-01-04  0:02                                     ` Randy Brukardt
2005-01-04 17:44                                       ` Warren W. Gay VE3WWG
2005-01-04 20:14                                         ` Nick Roberts
2005-01-04  9:59                                     ` Dmitry A. Kazakov
2005-01-04 18:00                                       ` Warren W. Gay VE3WWG
2005-01-04 19:07                                         ` Dmitry A. Kazakov
2005-01-04 19:57                                           ` Warren W. Gay VE3WWG
2005-01-05  0:02                                             ` Nick Roberts
2005-01-05  4:37                                               ` Warren W. Gay VE3WWG
2005-01-05 18:54                                                 ` Nick Roberts
2005-01-05 20:04                                                   ` Warren W. Gay VE3WWG
2005-01-06  0:32                                                     ` Nick Roberts
2005-01-06  1:29                                                   ` Wes Groleau
2005-01-06 11:03                                                     ` Dmitry A. Kazakov
2005-01-05  9:39                                             ` Dmitry A. Kazakov
2005-01-05 11:20                                               ` Warren W. Gay VE3WWG
2005-01-05 12:18                                                 ` Dmitry A. Kazakov
2005-01-05 14:39                                                   ` Warren W. Gay VE3WWG
2005-01-05 17:16                                                     ` zest_fien
2005-01-05 19:44                                                       ` Larry Kilgallen
2005-01-04 20:09           ` Nick Roberts
2005-01-05 10:19             ` Dmitry A. Kazakov
2005-01-05 18:33               ` Nick Roberts
2005-01-05 20:15                 ` Dmitry A. Kazakov
2004-12-31 18:47     ` Nick Roberts [this message]
2004-12-31 20:36       ` Warren W. Gay VE3WWG
2005-01-04 18:22         ` Nick Roberts
2005-01-05  5:12           ` Warren W. Gay VE3WWG
2005-01-05 18:02             ` Nick Roberts
2005-01-05 19:55               ` Warren W. Gay VE3WWG
2005-01-06  0:57                 ` Nick Roberts
2005-01-06  2:34                   ` Warren W. Gay VE3WWG
  -- strict thread matches above, loose matches on Subject: below --
2005-01-05 12:14 Mike Brenner
2005-01-05 18:04 ` Warren W. Gay VE3WWG
replies disabled

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