From: "Warren W. Gay VE3WWG" <ve3wwg@NoSpam.cogeco.ca>
Subject: Re: For the AdaOS folks
Date: Mon, 03 Jan 2005 11:36:34 -0500
Date: 2005-01-03T11:36:34-05:00 [thread overview]
Message-ID: <jveCd.15296$Y_4.1365327@read2.cgocable.net> (raw)
In-Reply-To: <1cza5d5x7snmd.lr7wfm9fdsvd.dlg@40tude.net>
Dmitry A. Kazakov wrote:
> On Sun, 02 Jan 2005 17:04:29 -0500, Warren W. Gay VE3WWG wrote:
>>Dmitry A. Kazakov wrote:
>>>On Sat, 01 Jan 2005 19:31:56 -0500, Warren W. Gay VE3WWG wrote:
>>And how do your identify your GNAT object? At the end of the day,
>>you still have to grapple with "names" and "identities". Only
>>the details change.
>
> The "detail" is that you identify not some GNAT installation file #1534,
> but GNAT. GNAT itself is easy to find,
Is it? What if you 2 or 3 versions of it? There is an interesting
situation now with windows as well, since you can have a cygwin
version in addition to the usual gnat-3.15p type of release.
> its components are not. They may
> vary from version to version. It is GNAT's responsibility to know them, not
> of GNAT user.
If I want to install a binding, I need to know where GNAT has installed
its bindings (like win32). The registry makes this a trivial thing to
do (I know, because I have used it).
>>So just how do you expect to identify what piece of software
>>you want to know about, without using a name (or identity if
>>you prefer)? OO doesn't do away with this requirement.
>
> ADT allows to organize it in a proper way. We are using types to forget
> about bytes. In OSes we are still using "bytes" = files.
You haven't answered how you are going to identify your
object. This doesn't explain it away.
>>Can native objects be exported from operating systems? A
>>quick survey produces this list:
>>
>> - integer file descriptor (POSIX)
>> - handles (Windows)
>> - ports (Mach)
>> - identities (L4)
>> - ipc ID (UNIX SysV) for message queues, shared mem etc.
>>
>>These are all fancy "handles" of one sort or another. You won't
>>get much more than that from any O/S. Why? How do you share an
>>object in protected-mode with a user-mode process? You can't.
>>Even if you could, there would be parts of objects that the
>>O/S wouldn't want you to mess with, or perhaps even look at.
>>Maybe you can't because the object is just a Mach port.
>>
>>The best API answer seems to be to just provide a handle that
>>can be used to refer to the object (like an Ada access type),
>>or in the case of a Mach port, be the object metaphore. Then
>>you call varied API set (effectively methods) on that object,
>>using the given handle(s).
>
> It is not like Ada access type, because handle is not a pointer.
I am not suggesting they are the same, but merely that they are
used for the same purpose.
> It is a
> key in some associative array. To "dereference" it you have to switch to
> supervisor mode. Then you have to check it, because somebody could mess
> with its value etc. It is very inefficient. You have to do all this even if
> you call a function of a protected object, which could be safely performed
> in user-mode. BTW, the very notion of user-mode is also of old procedural
> fashion. A protected object is passive. You should be able to access it in
> any "mode". But when you want to queue to its entry or to call its
> procedure, only then you have to switch the context to make the object data
> available to write. It is not kernel business anymore.
But if you were to replace the file descriptor with an object that
implements the equivalent of a v-node, you wouldn't be able to do
this in "user mode".
> Your RPC services is another model. They are monitors. These can be exposed
> in API as tasks to have rendezvous with.
Or they could be simple procedure/function calls in Ada. It is merely
a point of presentation.
> Again OO/ADT could bring great
> advantages here. Imagine extensible tasks. Presently, if you have some
> sequence of actions to be performed on one service, you have to care about
> locking, serializing, then you implement it as separate inefficient RPCs to
> the server. Service extensions would be sort of stored procedures in DB
> terms.
Again, you can package it any way you like already. Just wrap it
in the trimmings you want.
>>Then if you want it to look different than that, you provide
>>a binding. The general idea however, is that an Ada based
>>O/S will have native bindings. The packages won't be
>>adaptations of C header files etc.
>
> OK, but that is more like C programming in Ada to me.
Why?
> This new OS will not
> become a breakthrough. It will be a stable decent OS, but who needs that?
Firewalls for one.
> See what happened with VMS? The only way to kill the Windows/UNIX monster
> to offer something really revolutionary.
I am not on any quest for world domination, though I don't
discourage others from trying to do so ;-)
--
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg
next prev parent reply other threads:[~2005-01-03 16:36 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 [this message]
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
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