home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.arch
- Path: sparky!uunet!wupost!zaphod.mps.ohio-state.edu!menudo.uh.edu!sugar!ficc!peter
- From: peter@ferranti.com (peter da silva)
- Subject: Re: <None> (Should be Open Systems, bloody NEWS system...)
- Message-ID: <id.SQ3W.IB6@ferranti.com>
- Organization: Xenix Support, FICC
- References: <1992Dec23.050719.4047@ryn.mro4.dec.com> <id.CG2W.R8A@ferranti.com> <1992Dec23.212321.26522@ryn.mro4.dec.com>
- Date: Thu, 24 Dec 1992 21:26:24 GMT
- Lines: 137
-
- In article <1992Dec23.212321.26522@ryn.mro4.dec.com> Peter.Mayne@cao.mts.dec.com writes:
- > In article <id.CG2W.R8A@ferranti.com>, peter@ferranti.com (peter da silva) writes:
- > >That's right. The UNIX programming model. The point is that the UNIX API is
- > >very high level, and can be modified to provide any capability I've ever
- > >heard of without breaking it. There is NO excuse for any new operating
- > >system after about 1984 or 85 to use anything lower level. It increases the
- > >cost of software design, increases the cost of education and training, and
- > >decreases the amount of commonly available high quality software.
-
- > OK, try this. VMS has something called an AST (Asynchronous System Trap) which
- > is similar to a user-mode interrupt.
-
- Yes, I'm familiar with it from RMX. There, at least, unless you're working
- in assembler it's something to be used with extreme care lest you trash the
- language runtime.
-
- > This may occur at any time: for instance,
- > an asynchronous I/O can call an AST routine when the I/O completes. When the
- > AST routine completes, control returns to the code that was executing at the
- > time the AST occurred. (The analogy in NT is the APC, or Asynchronous
- > Procedure Call.)
-
- And in UNIX the analog is a "signal". Now, a signal is a little "safer" than
- an AST (at least as under RMX), in that it's guaranteed to run in your task
- context.
-
- > Now, much of the run-time stuff in UNIX is non-reentrant.
-
- Much of the *C* run-time in *any* language is non-reentrant, and I would
- be surprised if the VMS library was any better. If I get an AST while I'm
- in the runtime (say, in the Fortran library in the middle of a formatted
- I/O statement) I would expect dire consequences from calling the language
- runtime. I have never written an asyncronous signal handler under any
- operating system (out of UNIX, RMX, AmigaOS, and RSX-11) where I didn't
- have to watch for that sort of thing. In RSX all you can do from an AST,
- pretty much, is access memory.
-
- > In particular, the
- > use of errno springs to mind. If the AST (or APC) was introduced into the
- > UNIX model,
-
- It's in there.
-
- > how can I use these non-reentrant routines safely in an AST
- > routine without screwing things up?
-
- You can't. Can you really do
-
- WRITE (*,10) AA
- 10 FORMAT (1X,80A1)
-
- in an AST under VMS?
-
- > >But the UNIX operating system interface is centered on the file system.
-
- > But that doesn't mean that I can put an ACL on a UNIX operating system object.
-
- A UNIX "operating system object" *is* a file. If the file system supports ACLs
- you certainly can. What "operating system objects" are you trying to put an
- ACL on?
-
- > >You mean like ulimit?
-
- > Get the process's file size limit.
- > Set the process's file size limit.
- > Get the maximum possible break value.
-
- All possible in System V.
-
- > NT and VMS people might have a rather more pervasive idea of quotas.
- > What are hierarchy quotas?
-
- Limits the disk space used under a node in the file system regardless of
- who owns the file.
-
- > >> (1) POSIX 1003.1 does not address the many areas that Win32 does.
-
- > >Where it doesn't it can be trivially extended to do so.
-
- > Including my example above?
-
- Everything you've said so far, yes.
-
- > >> (2) POSIX 1003.1 is not a UNIX API.
-
- > >Yes it is.
-
- > Why? It is similar to the UNIX API you mention,
-
- It is entirely based on, and where possible, identical to the common subset
- interface to BSD and System V. Differences are usually resolved in favor of
- System V, and there is a small amount of arbitrary innovation.
-
- > but it is also
- > available on non-UNIX operating systems. (NT and VMS, for example.)
-
- Which makes it effectively a partial UNIX emulator.
-
- > >So, can I access any arbitrary object that a POSIX program might want to use
- > >via the filestore name space? If not, that's awfully short-sighted of
- > >Microsoft, because that's the way UNIX is progressing.
-
- > No, because the filestore name space is at the botton of the hierarchy.
- > Direct object name space access would require access to non-POSIX routines,
- > and that's a no-no.
-
- Why? There is no technical justification for this.
-
- > UNIX might access everything through the filestore, but not all other
- > operating systems do.
-
- No, but if there is a common object manager with a name space that can be
- mapped into a file system name space, there is no technical justification
- for not doing so under the POSIX environment.
-
- > Another example from NT: a file in a file system is
- > just an object in the object name space. When a file's pathname is given to
- > the object name parser, the parser will parse the pathname down to the file
- > system's node, then hand over parsing to the file system's parser.
-
- Oh, so they borrowed something from AmigaDOS. Interesting. Plan 9 does this,
- too.
-
- > This
- > would allow a file system with completely different syntax to be inserted
- > with no trouble. What happens to a filestore oriented operating system
- > when a completely different file system is used?
-
- Go read the Plan 9 papers, or get an Amiga. It's not new technology by
- any means: AmigaDOS was shipped in 1985, and based on an older operating
- system from Cambridge called Tripos (note, not all interesting O/S
- design is from the US).
- --
- Peter da Silva `-_-'
- Ferranti International Controls Corporation 'U`
- Sugar Land, TX 77487-5012 USA
- +1 713 274 5180 "Zure otsoa besarkatu al duzu gaur?"
-