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!news4.google.com!newsfeed2.dallas1.level3.net!news.level3.com!newsfeed-00.mathworks.com!prodigy.com!border1.nntp.dca.giganews.com!nntp.giganews.com!meganewsservers.com!feeder2.on.meganewsservers.com!feed.cgocable.net!read2.cgocable.net.POSTED!53ab2750!not-for-mail From: "Warren W. Gay VE3WWG" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: For the AdaOS folks 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> In-Reply-To: <1cza5d5x7snmd.lr7wfm9fdsvd.dlg@40tude.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: Date: Mon, 03 Jan 2005 11:36:34 -0500 NNTP-Posting-Host: 24.150.168.167 X-Complaints-To: abuse@cogeco.ca X-Trace: read2.cgocable.net 1104770127 24.150.168.167 (Mon, 03 Jan 2005 11:35:27 EST) NNTP-Posting-Date: Mon, 03 Jan 2005 11:35:27 EST Organization: Cogeco Cable Xref: g2news1.google.com comp.lang.ada:7409 Date: 2005-01-03T11:36:34-05:00 List-Id: 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