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!news2.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 20:55:43 +0100 Organization: cbb software GmbH Message-ID: <1klgtuv6sbypt.1wlc9u1ixz7ua$.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> <1hwsfqc0hx63i$.1dl0hkengaf6i$.dlg@40tude.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: individual.net NVcNCsor9UNuArVzB/ONDwWIHojlw2PtdpShmRe9OFXDgYKxo= User-Agent: 40tude_Dialog/2.0.12.1 Xref: g2news1.google.com comp.lang.ada:7415 Date: 2005-01-03T20:55:43+01:00 List-Id: On Mon, 03 Jan 2005 14:01:42 -0500, Warren W. Gay VE3WWG wrote: > Dmitry A. Kazakov wrote: > >> 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. > > Aha! The name/identification is couched in the terms > "parameters so and so". You cannot dispense with names. The parameters needed to identify your version. BTW I am not sure that it is the best possible way to deal with versions. It is yet another story. In any case it would be easier to handle versions using objects instead of names and paths. >>>>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. > > Pardon me? The GNAT win32 binding is installed in a very > specific location. I place APQ in the same parent directory. Forget about locations. GNAT object will have a hook (or a container) to attach plug-ins. Your APQ is just a new object to attach there. >>>>>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 >> ... > > Which version of two does this get? All. You continue then: Get_Conform_To (GNAT_Installation, Required_Version); >>>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. > > But then it won't function! For example, how can you > use a kernel mode pointer within the v-node in user mode? Your application will be mapped there. To obtain an object is like loading a library. The pointer you will use to read public data will be a user-mode one. >>>>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! > > Ah, not necessarily. To enforce policy, it makes sense to throttle > all of a company's access to the world-wild-net through one "gate", > rather than try to administer it on the bases of every host, pc, > and laptop within an organization. But in our hypothetical OS each possible way of access will be represented by some safe system object. These objects, when properly designed will provide necessary administrative services. Do you have one "gate" for hard drive I/O? Do you need a firewall to tunnel open/close/read/write to floppy drives? It would be nonsense. The problem is that network protocols do not have safety of a file system. The foundations of file systems were established long before the disaster named MS. > Even at home, there is much more safety in doing things this way. It an imaginary safety. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de