home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / comp / arch / 11938 < prev    next >
Encoding:
Text File  |  1992-12-24  |  5.8 KB  |  148 lines

  1. Newsgroups: comp.arch
  2. Path: sparky!uunet!wupost!zaphod.mps.ohio-state.edu!menudo.uh.edu!sugar!ficc!peter
  3. From: peter@ferranti.com (peter da silva)
  4. Subject: Re: <None> (Should be Open Systems, bloody NEWS system...)
  5. Message-ID: <id.SQ3W.IB6@ferranti.com>
  6. Organization: Xenix Support, FICC
  7. References: <1992Dec23.050719.4047@ryn.mro4.dec.com> <id.CG2W.R8A@ferranti.com> <1992Dec23.212321.26522@ryn.mro4.dec.com>
  8. Date: Thu, 24 Dec 1992 21:26:24 GMT
  9. Lines: 137
  10.  
  11. In article <1992Dec23.212321.26522@ryn.mro4.dec.com> Peter.Mayne@cao.mts.dec.com writes:
  12. > In article <id.CG2W.R8A@ferranti.com>, peter@ferranti.com (peter da silva) writes:
  13. > >That's right. The UNIX programming model. The point is that the UNIX API is
  14. > >very high level, and can be modified to provide any capability I've ever
  15. > >heard of without breaking it. There is NO excuse for any new operating
  16. > >system after about 1984 or 85 to use anything lower level. It increases the
  17. > >cost of software design, increases the cost of education and training, and
  18. > >decreases the amount of commonly available high quality software.
  19.  
  20. > OK, try this. VMS has something called an AST (Asynchronous System Trap) which
  21. > is similar to a user-mode interrupt.
  22.  
  23. Yes, I'm familiar with it from RMX.  There, at least, unless you're working
  24. in assembler it's something to be used with extreme care lest you trash the
  25. language runtime.
  26.  
  27. > This may occur at any time: for instance,
  28. > an asynchronous I/O can call an AST routine when the I/O completes. When the
  29. > AST routine completes, control returns to the code that was executing at the
  30. > time the AST occurred. (The analogy in NT is the APC, or Asynchronous
  31. > Procedure Call.)
  32.  
  33. And in UNIX the analog is a "signal". Now, a signal is a little "safer" than
  34. an AST (at least as under RMX), in that it's guaranteed to run in your task
  35. context.
  36.  
  37. > Now, much of the run-time stuff in UNIX is non-reentrant.
  38.  
  39. Much of the *C* run-time in *any* language is non-reentrant, and I would
  40. be surprised if the VMS library was any better. If I get an AST while I'm
  41. in the runtime (say, in the Fortran library in the middle of a formatted
  42. I/O statement) I would expect dire consequences from calling the language
  43. runtime. I have never written an asyncronous signal handler under any
  44. operating system (out of UNIX, RMX, AmigaOS, and RSX-11) where I didn't
  45. have to watch for that sort of thing. In RSX all you can do from an AST,
  46. pretty much, is access memory.
  47.  
  48. > In particular, the 
  49. > use of errno springs to mind. If the AST (or APC) was introduced into the
  50. > UNIX model,
  51.  
  52. It's in there.
  53.  
  54. > how can I use these non-reentrant routines safely in an AST
  55. > routine without screwing things up?
  56.  
  57. You can't. Can you really do
  58.  
  59.     WRITE (*,10) AA
  60.  10    FORMAT (1X,80A1)
  61.  
  62. in an AST under VMS?
  63.  
  64. > >But the UNIX operating system interface is centered on the file system.
  65.  
  66. > But that doesn't mean that I can put an ACL on a UNIX operating system object.
  67.  
  68. A UNIX "operating system object" *is* a file. If the file system supports ACLs
  69. you certainly can. What "operating system objects" are you trying to put an
  70. ACL on?
  71.  
  72. > >You mean like ulimit?
  73.  
  74. > Get the process's file size limit.
  75. > Set the process's file size limit.
  76. > Get the maximum possible break value.
  77.  
  78. All possible in System V.
  79.  
  80. > NT and VMS people might have a rather more pervasive idea of quotas.
  81. > What are hierarchy quotas?
  82.  
  83. Limits the disk space used under a node in the file system regardless of
  84. who owns the file.
  85.  
  86. > >> (1) POSIX 1003.1 does not address the many areas that Win32 does.
  87.  
  88. > >Where it doesn't it can be trivially extended to do so.
  89.  
  90. > Including my example above?
  91.  
  92. Everything you've said so far, yes.
  93.  
  94. > >> (2) POSIX 1003.1 is not a UNIX API.
  95.  
  96. > >Yes it is.
  97.  
  98. > Why? It is similar to the UNIX API you mention,
  99.  
  100. It is entirely based on, and where possible, identical to the common subset
  101. interface to BSD and System V. Differences are usually resolved in favor of
  102. System V, and there is a small amount of arbitrary innovation.
  103.  
  104. > but it is also
  105. > available on non-UNIX operating systems. (NT and VMS, for example.)
  106.  
  107. Which makes it effectively a partial UNIX emulator.
  108.  
  109. > >So, can I access any arbitrary object that a POSIX program might want to use
  110. > >via the filestore name space? If not, that's awfully short-sighted of
  111. > >Microsoft, because that's the way UNIX is progressing.
  112.  
  113. > No, because the filestore name space is at the botton of the hierarchy.
  114. > Direct object name space access would require access to non-POSIX routines,
  115. > and that's a no-no.
  116.  
  117. Why? There is no technical justification for this.
  118.  
  119. > UNIX might access everything through the filestore, but not all other
  120. > operating systems do.
  121.  
  122. No, but if there is a common object manager with a name space that can be
  123. mapped into a file system name space, there is no technical justification
  124. for not doing so under the POSIX environment.
  125.  
  126. > Another example from NT: a file in a file system is
  127. > just an object in the object name space. When a file's pathname is given to
  128. > the object name parser, the parser will parse the pathname down to the file
  129. > system's node, then hand over parsing to the file system's parser.
  130.  
  131. Oh, so they borrowed something from AmigaDOS. Interesting. Plan 9 does this,
  132. too.
  133.  
  134. > This
  135. > would allow a file system with completely different syntax to be inserted
  136. > with no trouble. What happens to a filestore oriented operating system
  137. > when a completely different file system is used?
  138.  
  139. Go read the Plan 9 papers, or get an Amiga. It's not new technology by
  140. any means: AmigaDOS was shipped in 1985, and based on an older operating
  141. system from Cambridge called Tripos (note, not all interesting O/S
  142. design is from the US).
  143. -- 
  144. Peter da Silva                                            `-_-'
  145. Ferranti International Controls Corporation                'U` 
  146. Sugar Land, TX  77487-5012 USA
  147. +1 713 274 5180                            "Zure otsoa besarkatu al duzu gaur?"
  148.