From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,b95a522100671708 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: For the AdaOS folks Date: Mon, 3 Jan 2005 18:05:03 +0100 Organization: cbb software GmbH Message-ID: <1hwsfqc0hx63i$.1dl0hkengaf6i$.dlg@40tude.net> References: <1PTAd.1218$0y4.421@read1.cgocable.net> <1vemlj8wqr9ea$.qyecszhsmtqa$.dlg@40tude.net> <1b48kdfqsk3mw.7gajq12fsa82.dlg@40tude.net> <52fBd.42256$nV.1324414@news20.bellglobal.com> <_gHBd.14666$0y4.10314@read1.cgocable.net> <8rz51zshvp8k$.gvir0kpiedzk.dlg@40tude.net> <1cza5d5x7snmd.lr7wfm9fdsvd.dlg@40tude.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: individual.net PSHtq1ToywLp5n+gBKDcSgdn/5xMVKYCo3rpLCaHBTocoWtWw= User-Agent: 40tude_Dialog/2.0.12.1 Xref: g2news1.google.com comp.lang.ada:7412 Date: 2005-01-03T18:05:03+01:00 List-Id: On Mon, 03 Jan 2005 11:36:34 -0500, Warren W. Gay VE3WWG wrote: > 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. OK, these will be different objects. An application should probably be a factory object of its versions. So you will ask GNAT factory: give me an instance of GNAT with the parameters so and so. >> 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). Nowhere. It is installed and available. >>>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. The same way you identify objects in your program: declare GNAT_Installation : Application_Type'Class := Get (Local_Machine, "GNAT"); begin ... >> 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 application may have read-only mapping to the public parts of the descriptor. >> 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. You cannot make a conditional or timed call to a procedure. You cannot requeue to a procedure. Why not to use the advantages Ada gives? >> 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. Turing completeness... >> This new OS will not >> become a breakthrough. It will be a stable decent OS, but who needs that? > > Firewalls for one. Huh, firewalls only exist because of that crippled, buggy, unsafe OSes! >> 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 ;-) Seriously, I do think that Windows/UNIX impact on history of humankind is yet to estimate. But it is another story... -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de