home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / std_unix / volume.16 / text0037.txt < prev    next >
Encoding:
Text File  |  1989-08-11  |  10.1 KB  |  240 lines

  1.  
  2. Standards Update                              Part 4: 1003.5
  3.  
  4.           An update on UNIX|= Standards Activities
  5.        January 1989 IEEE 1003 Meeting, Ft. Lauderdale
  6.  
  7.                       Part 4:  1003.5
  8.  
  9.            Shane P. McCarron, NAPS International
  10.  
  11.      1003.5 - Ada Bindings to POSIX
  12.  
  13.      This quarter's 1003.5 report points out some problems
  14. that are really endemic to the entire standards making
  15. process.  To wit, the people involved in making standards
  16. are rarely those who end up using them.  The user community
  17. does not (generally) have the wherewithal or time to join
  18. standards committees and attend standards committee
  19. meetings.  POSIX, like all other standards, suffers from
  20. this problem.
  21.  
  22.      In the case of 1003.5, the problem manifests itself in
  23. a new way.  While there are few members of the committee,
  24. the vendor and end user community are about evenly
  25. represented.  This would seem to be an advantage.
  26. Unfortunately, the Ada vendor and user community is not a
  27. UNIX oriented community.  The members of this committee,
  28. while very knowledgeable about Ada and its requirements, may
  29. not be as well verse in traditional UNIX semantics as one
  30. would like.
  31.  
  32.      This may change as the DoD (and the entire US Federal
  33. Government) becomes more interested in POSIX.  Until that
  34. time, 1003.5 is going to suffer from a dearth of UNIX
  35. oriented members.  This may cause them to produce a standard
  36. that, while strong in Ada terms, is weak when it comes to
  37. its relationship to POSIX based systems.
  38.  
  39.      The Ada language binding group has a goal of having a
  40. standard Ada binding for P1003.1 by the end of 1989, with
  41. balloting to take place some time in the fall.  The first
  42. draft of this standard was available for the January meeting
  43. of the POSIX committees, and it is going to take quite a bit
  44. of work to get it ready for a fall ballot.  This committee
  45. is really in desparate need of some warm bodies - preferably
  46. with Ada and UNIX backgrounds.
  47.  
  48. __________
  49.  
  50.   |= UNIX is a registered trademark of AT&T in the U.S. and
  51.     other countries.
  52.  
  53. January 1989               - 1 -              Ft. Lauderdale
  54.  
  55.  
  56. Standards Update                              Part 4: 1003.5
  57.  
  58.      In addition, they need Ada real-time experts to review
  59. the P1003.4 (real-time extensions) draft.  1003.5 will
  60. eventually be producing a binding to that standard as well,
  61. and it is imperative that all of the semantics that Ada
  62. requires of real-time extensions be available.  The 1003.4
  63. working group has actually requested that 1003.5 generate
  64. responses to some proposals they are considering, but right
  65. now they do not have enough people to complete their own
  66. work.
  67.  
  68.      At the January meeting, the working group started
  69. reviewing (and changing) the first draft of the standard, as
  70. well as reorganizing their concepts of how POSIX related
  71. functions could be grouped logically into Ada packages.
  72.  
  73.      The group decided to map POSIX signals onto Ada task
  74. entries, following the semantic model established by the Ada
  75. standard for interrupts.  The discussion narrowed down to
  76. three proposals for the way in which a user would express
  77. the binding of signal to entry.  One major issue is whether
  78. it is sufficient for this binding to be specified entirely
  79. statically, at compile-time, or whether users will need to
  80. be able to rebind dynamically.  In the traditional C/UNIX
  81. world, rebinding of signals to signal handling functions is
  82. used frequently.  The other issue was whether signal should
  83. only be handleable by tasks of a very simple (generic)
  84. form,that handles only one signal, or whether any task
  85. should be allowed to have signal-handling entries.
  86.  
  87.      The group decided that, from the point of view of the
  88. Ada binding, each Ada program execution would consist of a
  89. single POSIX process.  Implementations might make use of
  90. multiple processes at some lower level, but this would not
  91. be visible from the POSIX interface.  This does not say that
  92. a program may not fork, but that the result of a fork
  93. operation would be another program execution, rather than
  94. another thread (read process, task, etc.) within the same
  95. program execution.  This has the effect of simplifying the
  96. problems presented by signals as well as SUSPEND, RESUME,
  97. PAUSE, etc.
  98.  
  99.      Perhaps the most interesting issues to come out at the
  100. meeting did not involve the draft document directly, but
  101. were more global in nature, coming up in combined meetings
  102. with other groups.
  103.  
  104.      A meeting with the P1003.1 group that is working on the
  105. language-independent version of the standard (required by
  106. ISO) revealed that the Ada binding group may have been
  107. taking too conservative a view with repect to following the
  108. C version of the P1003.1 standard.  As things evolve, it is
  109.  
  110. January 1989               - 2 -              Ft. Lauderdale
  111.  
  112.  
  113. Standards Update                              Part 4: 1003.5
  114.  
  115. acceptable that conformant Ada-POSIX implementations may be
  116. incapable of supporting C-POSIX, and vice versa.  That is,
  117. the language-independent binding will be very abstract.
  118. There is no such thing as a POSIX interface without a
  119. language binding.  Specific language bindings may provide or
  120. require functionality not provided by other language
  121. bindings. For example, an Ada binding need not directly
  122. provide the present POSIX I/O operations.  It is appropriate
  123. to simply provide the Ada I/O and explain the relationship
  124. to POSIX I/O.  Similarly an Ada binding might impose
  125. additional requirements on system calls to insure correct
  126. operation in the presence of multiple threads of control
  127. within a process.
  128.  
  129.      This may encourage P1003.5 to be bolder, but there
  130. remains concern that since the Ada binding is in many
  131. instances likely to be implemented "on top" of a C binding,
  132. it must not force the Ada programmer to sacrifice any
  133. important capabilities, or he will be encouraged to
  134. interface directly to the C binding.  For the same reason,
  135. it is impractical to impose requirements that cannot be
  136. implemented via interface to the C binding.
  137.  
  138.      Some very vocal members of the P1003.5 group complained
  139. bitterly that P1003.1 should provide a memory allocation
  140. primitive.  (Providing functionality of "sbrk" on some
  141. systems, or "malloc" in C.)  There are two reasons for this:
  142. (1) to implement the Ada "new" allocator; (2) to allow a
  143. user to implement his own (more predictable) storage
  144. manager, in a portable way.  The latter is viewed as
  145. important by many Ada users, who are concerned that the Ada
  146. language standard does not require an adequate storage
  147. allocation and recovery scheme for all applications.
  148. Interestingly, the FORTRAN language binding group, which was
  149. also in on this discussion, felt the same way, also for
  150. reason (2).  The position of P1003.1 was hard-line: memory-
  151. management is a language implementation function, out of
  152. scope of the the POSIX interface.
  153.  
  154.      This memory allocation issue came up at an evening
  155. meeting with the P1003.4 (Real-time Extensions) working
  156. group, with the same position being voiced by P1003.1
  157. representatives.  However, P1003.4 members pointed out that
  158. they will have an allocation mechanism for shared memory, so
  159. that a user could work around the lack of a local memory
  160. allocation primitive by using shared memory!  (If there is
  161. no bread, let them eat cake?)
  162.  
  163.      The main reason for the P1003.4/5 meeting was to
  164. discuss the issue of multiple threads of control within a
  165. process (a.k.a. lightweight processes).  Ada runtime system
  166.  
  167. January 1989               - 3 -              Ft. Lauderdale
  168.  
  169.  
  170. Standards Update                              Part 4: 1003.5
  171.  
  172. implementors are concerned because they must provide this
  173. capability (tasks), and some existing UNIX implementations
  174. do not allow this to be done in a satisfactory way.  POSIX
  175. does not address this problem, and there is no plan to
  176. address it in the near future (< 2 years).
  177.  
  178.      The memory allocation and multithread issues are part
  179. of a more general issue, concerning the scope of POSIX as an
  180. end-user application-layer interface, versus an interface
  181. that might be useful to language implementors.  Ada language
  182. and runtime-system implementors would like a POSIX interface
  183. sufficiently well defined that their code-generators and
  184. runtime systems need not be concerned with details specific
  185. to a particular POSIX implementation (beyond the underlying
  186. hardware architecture).  This is especially true about the
  187. implementation of Ada tasking, dynamic storage management,
  188. and certain standard packages like the IO packages and
  189. Calendar.  That is, it would be nice to know that every
  190. POSIX implementation would provide the primitives needed to
  191. implement Ada.
  192.  
  193.      The official (and majority) position on this issue is
  194. very clear, though a few vocal individuals remain unhappy
  195. with it.  Support for language implementations is beyond the
  196. scope of POSIX. Ada language implementations will need to
  197. make use nonstandard features of particular POSIX
  198. implementations.
  199.  
  200.      Another interface issue that is of concern to some Ada
  201. POSIX group is language interoperability, to the extent of
  202. supporting procedure calls from Ada to C, and the ability of
  203. Ada programs to read POSIX character files produced by C
  204. programs using POSIX I/O, and vice versa.  The resolution of
  205. this issue is that POSIX will be language-independent, but
  206. will not address language interoperability.  For example,
  207. converting between POSIX strings and Ada strings is an
  208. interoperability problem.  An Ada binding would simply use
  209. Ada strings.
  210.  
  211.      The P1003.5 group will exchange proposals by net-mail
  212. and meet again with the full POSIX group  at the April 1003
  213. meeting in Minneapolis.  We will probably have a mock ballot
  214. prior to July to be resolved at the July meeting, in San
  215. Francisco.  The official ballot should immediately follow so
  216. that resolution can occur at the October meeting.
  217.  
  218.      The USENIX Standards Watchdog Committee contact for
  219. 1003.5 is Ted Baker.  He can be reached at:
  220.  
  221.           Ted Baker
  222.           Department of Computer Science
  223.  
  224. January 1989               - 4 -              Ft. Lauderdale
  225.  
  226.  
  227. Standards Update                              Part 4: 1003.5
  228.  
  229.           Florida State University
  230.           Tallahassee, FL 32306
  231.           +1 904 644-5452
  232.           tbaker@ajpo.sei.cmu.edu
  233.           baker@nu.cs.fsu.edu
  234.  
  235. January 1989               - 5 -              Ft. Lauderdale
  236.  
  237.  
  238. Volume-Number: Volume 16, Number 35
  239.  
  240.