home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / std_unix / volume.18 / text0009.txt < prev    next >
Encoding:
Internet Message Format  |  1990-03-18  |  35.5 KB

  1. From: Jeffrey S. Haemer <jsh@usenix.org>
  2.  
  3.  
  4.             An Update on UNIX* and C Standards Activities
  5.  
  6.                             December 1989
  7.  
  8.                  USENIX Standards Watchdog Committee
  9.  
  10.                    Jeffrey S. Haemer, Report Editor
  11.  
  12. USENIX Standards Watchdog Committee Update
  13.  
  14. The reports that accompany this summary are for the Fall meeting of
  15. IEEE 1003 and IEEE 1201, conducted the week of October 16-20, 1989, in
  16. Brussels, Belgium.  (This isn't really true of the 1003.4 and 1003.8/1
  17. reports, but let's overlook that.)
  18.  
  19. The reports are done quarterly, for the USENIX Association, by
  20. volunteers from the individual standards committees.  The volunteers
  21. are familiarly known as ``snitches'' and the reports as ``snitch
  22. reports.'' The band of snitches and I make up the working committee of
  23. the USENIX Standards Watchdog Committee.  The group also has a policy
  24. committee: John S. Quarterman (chair), Alan G. Nemeth, and Shane P.
  25. McCarron.  Our job is to let you know about things going on in the
  26. standards arena that might affect your professional life - either now
  27. or down the road a ways.
  28.  
  29. More formally:
  30.  
  31.      The basic USENIX policy regarding standards is:
  32.  
  33.           to attempt to prevent standards from prohibiting innovation.
  34.  
  35.      To do that, we
  36.  
  37.         o+ Collect and publish contextual and technical information
  38.           such as the snitch reports that otherwise would be lost in
  39.           committee minutes or rationale appendices or would not be
  40.           written down at all.
  41.  
  42.         o+ Encourage appropriate people to get involved in the
  43.           standards process.
  44.  
  45.         o+ Hold forums such as Birds of a Feather (BOF) meetings at
  46.           conferences.  We sponsored one workshop on standards.
  47.  
  48. __________
  49.  
  50.   * UNIX is a registered trademark of AT&T in the U.S. and other
  51.     countries.
  52.  
  53. December 1989 Standards Update     USENIX Standards Watchdog Committee
  54.  
  55.  
  56.                                 - 2 -
  57.  
  58.         o+ Write and present proposals to standards bodies in specific
  59.           areas.
  60.  
  61.         o+ Occasionally sponsor White Papers in particularly
  62.           problematical areas, such as IEEE 1003.7 (in 1989) and
  63.           possibly IEEE 1201 (in 1990).
  64.  
  65.         o+ Very occasionally lobby organizations that oversee standards
  66.           bodies regarding new committees, documents, or balloting
  67.           procedures.
  68.  
  69.         o+ Starting in mid-1989, USENIX and EUUG (the European UNIX
  70.           Users Group) began sponsoring a joint representative to the
  71.           ISO/IEC JTC1 SC22 WG15 (ISO POSIX) standards committee.
  72.  
  73.      There are some things we do _n_o_t do:
  74.  
  75.         o+ We do not form standards committees.  It's the USENIX
  76.           Standards Watchdog Committee, not the POSIX Watchdog
  77.           Committee, not part of POSIX, and not limited to POSIX.
  78.  
  79.         o+ We do not promote standards.
  80.  
  81.         o+ We do not endorse standards.
  82.  
  83.      Occasionally we may ask snitches to present proposals or argue
  84.      positions on behalf of USENIX.  They are not required to do so
  85.      and cannot do so unless asked by the USENIX Standards Watchdog
  86.      Policy Committee.  Snitches mostly report.  We also encourage
  87.      them to recommend actions for USENIX to take.
  88.  
  89.           John S. Quarterman, Chair, USENIX Standards Watchdog Committee
  90.  
  91. We don't yet have active snitches for all the committees and sometimes
  92. have to beat the bushes for new snitches when old ones retire or can't
  93. make a meeting, but the number of groups with active snitches is
  94. growing steadily.  This quarter, you've seen reports from .1, .4, .5,
  95. .6, .8/2, and a belated report of last quarter's .8/1 meeting, as well
  96. as a report from 1201.  Reports from .2 and .7 are in the pipeline,
  97. and may get posted before this summary does.  We have no reports from
  98. .3, .8/[3-6], .9, .10, or .11, even though we asked Santa for these
  99. reports for Christmas.
  100.  
  101. If you have comments or suggestions, or are interested in snitching
  102. for any group, please contact me (jsh@usenix.org) or John
  103. (jsq@usenix.org).  If you want to make suggestions in person, both of
  104. us go to the POSIX meetings.  The next set will be January 8-12, at
  105. the Hotel Intercontinental in New Orleans, Louisiana.  Meetings after
  106. that will be April 23-27, 1990 in Salt Lake City, Utah, and July 16-
  107. 20, 1990 in Danvers (Boston), Massachusetts.
  108.  
  109. December 1989 Standards Update     USENIX Standards Watchdog Committee
  110.  
  111.  
  112.                                 - 3 -
  113.  
  114. I've appended some editorial commentary on problems I see facing each
  115. group.  I've emphasized non-technical problems, which are unlikely to
  116. appear in the official minutes and mailings of the committees.  If the
  117. comments for a particular group move you to read a snitch report that
  118. you wouldn't have read otherwise, they've served their purpose.  Be
  119. warned, however, that when you read the snitch report, you may
  120. discover that the snitch's opinion differs completely from mine.
  121.  
  122. 1003.0
  123.  
  124. Outside of dot zero, this group is referred to as ``the group that
  125. lets marketing participate in POSIX.'' Meetings seem to be dominated
  126. by representatives from upper management of large and influential
  127. organizations; there are plenty of tailor-made suits, and few of the
  128. jeans and T-shirts that abound in a dot one or dot two meeting.
  129. There's a good chance that reading this is making you nervous; that
  130. you're thinking, ``Uh, oh.  I'll bet the meetings have a lot of
  131. politics, positioning, and discussion about `potential direction.'''
  132. Correct.  This group carries all the baggage, good and bad, that you'd
  133. expect by looking at it.
  134.  
  135. For example, their official job is to produce the ``POSIX Guide:'' a
  136. document to help those seeking a path through the open-systems
  137. standards maze.  Realistically, if the IEEE had just hired a standards
  138. expert who wrote well to produce the guide, it would be done, and both
  139. cleaner and shorter than the current draft.
  140.  
  141. Moreover, because dot zero can see the entire open systems standards
  142. activities as a whole, they have a lot of influence in what new areas
  143. POSIX addresses.  Unfortunately, politics sometimes has a heavy hand.
  144. The last two groups whose creation dot zero recommended were 1201 and
  145. the internationalization study group.  There's widespread sentiment,
  146. outside of each group (and, in the case of internationalization,
  147. inside of the group) that these groups were created at the wrong time,
  148. for the wrong reason, and should be dissolved, but won't be.  And
  149. sometimes, you can find the group discussing areas about which they
  150. appear to have little technical expertise.  Meeting before last, dot
  151. zero spent an uncomfortable amount of time arguing about graphics
  152. primitives.
  153.  
  154. That's the predictable bad side.  The good side?  Frankly, these folks
  155. provide immense credibility and widespread support for POSIX.  If dot
  156. zero didn't exist, the only way for some of the most important people
  157. and organizations in the POSIX effort to participate would be in a
  158. more technical group, where the narrow focus would block the broad
  159. overview that these folks need, and which doing the guide provides.
  160.  
  161. In fact, from here it looks as though it would be beneficial to POSIX
  162. to have dot zero actually do more, not less, than it's doing.  For
  163. example, if dot five is ever going to have much impact in the Ada
  164.  
  165. December 1989 Standards Update     USENIX Standards Watchdog Committee
  166.  
  167.  
  168.                                 - 4 -
  169.  
  170. community, someone's going to have to explain to that community why
  171. POSIX is important, and why they should pay more attention to it.
  172. That's not a job for the folks you find in dot five meetings (mostly
  173. language experts); it's a job for people who wear tailor-made suits;
  174. who understand the history, the direction, and the importance of the
  175. open systems effort; and who know industry politics.  And there are
  176. members of dot zero who fit that description to a tee.
  177.  
  178. 1003.1
  179.  
  180. Is dot one still doing anything, now that the ugly green book is in
  181. print?  Absolutely.
  182.  
  183. First, it's moved into maintenance and bug-fix mode.  It's working on
  184. a pair of extensions to dot 1 (A and B), on re-formatting the ugly
  185. green book to make the ISO happy, and on figuring out how to make the
  186. existing standard language-independent.  (The developer, he works from
  187. sun to sun, but the maintainer's work is never done.) Second, it's
  188. advising other groups and helping arbitrate their disputes.  An
  189. example is the recent flap over transparent file access, in which the
  190. group defining the standard (1003.8/1) was told, in no uncertain
  191. terms, that NFS wouldn't do, because it wasn't consistent with dot one
  192. semantics.  One wonders if things like the dot six chmod dispute will
  193. finally be resolved here as well.
  194.  
  195. A key to success will be keeping enough of the original dot one
  196. participants available and active to insure consistency.
  197.  
  198. 1003.2
  199.  
  200. Dot one standardized the UNIX section two and three commands.  (Okay,
  201. okay.  All together now: ``It's not UNIX, it's POSIX.  All resemblance
  202. to any real operating system, living or dead, explicit or implied, is
  203. purely coincidental.'') Dot two is making a standard for UNIX section
  204. one commands.  Sort of.
  205.  
  206. The dot two draft currently in ballot, ``dot-two classic,'' is
  207. intended to standardize commands that you'd find in shell scripts.
  208. Unfortunately, if you look at dot-two classic you'll see things
  209. missing.  In fact, you could have a strictly conforming system that
  210. would be awfully hard to to develop software on or port software to.
  211. To solve this, NIST pressured dot two into drawing up a standard for a
  212. user portability extension (UPE).  The distinction is supposed to be
  213. that dot-two classic standardizes commands necessary for shell script
  214. portability, while the UPE standardizes things that are primarily
  215. interactive, but aid user portability.
  216.  
  217. The two documents have some strategic problems.
  218.  
  219. December 1989 Standards Update     USENIX Standards Watchdog Committee
  220.  
  221.  
  222.                                 - 5 -
  223.  
  224.    o+ Many folks who developed dot-two classic say the UPE is outside
  225.      of dot two's charter, and won't participate in the effort.  This
  226.      sort of behavior unquestionably harms the UPE.  Since I predict
  227.      that the outside world will make no distinction between the UPE
  228.      and the rest of the standard, it will actually harm the entire
  229.      dot-two effort.
  230.  
  231.    o+ The classification criteria are unconvincing.  Nm(1) is in the
  232.      UPE.  Is it really primarily used interactively?
  233.  
  234.    o+ Cc has been renamed c89, and lint may become lint89.  This is
  235.      silly and annoying, but look on the bright side: at least we can
  236.      see why c89 wasn't put in the UPE.  Had it been, it would have
  237.      had to have a name users expected.
  238.  
  239.    o+ Who died and left NIST in charge?  POSIX seems constantly to be
  240.      doing things that it didn't really want to do because it was
  241.      afraid that if it didn't, NIST would strike out on its own.
  242.      Others instances are the accelerated timetables of .1 and .2, and
  243.      the creation of 1003.7 and 1201.)
  244.  
  245.    o+ Crucial pieces of software are missing from dot two.  The largest
  246.      crevasse is the lack of any form of source-code control.  People
  247.      on the committee don't want to suffer through an SCCS-RCS debate.
  248.      POSIX dealt with the cpio-tar debate.  (It decided not to
  249.      decide.) POSIX dealt with the vi-emacs debate.  (The UPE provides
  250.      a standard for ex/vi.) POSIX is working on the NFS-RFS debate,
  251.      and a host of others.  Such resolutions are a part of its
  252.      responsibility and authority.  POSIX is even working on the
  253.      Motif-Open/Look debate (whether it should or not).
  254.  
  255.      At the very least, the standard could require some sort of source
  256.      code control, with an option specifying which flavor is
  257.      available.  Perhaps we could ask NIST to threaten to provide a
  258.      specification.
  259.  
  260. As a final note, because dot two (collective) standardizes user-level
  261. commands, it really can provide practical portability across operating
  262. systems.  Shell scripts written on a dot-two-conforming UNIX system
  263. should run just fine on an MS-DOS system under the MKS toolkit.
  264.  
  265. 1003.3
  266.  
  267. Dot three is writing test assertions for standards.  This means dot
  268. three is doing the most boring work in the POSIX arena.  Oh, shoot,
  269. that just slipped out.  But what's amazing is that the committee
  270. members don't see it as boring.  In fact, Roger Martin, who, as senior
  271. representative of the NIST, is surely one of the single most
  272. influential people in the POSIX effort, actually chairs this
  273. committee.  Maybe they know something I don't.
  274.  
  275. December 1989 Standards Update     USENIX Standards Watchdog Committee
  276.  
  277.  
  278.                                 - 6 -
  279.  
  280. Dot three is balloting dot one assertions and working on dot two.  The
  281. process is moving at standards-committee speed, but has the advantage
  282. of having prior testing art as a touchstone (existing MindCraft, IBM,
  283. and NIST test work).  The dilemma confronting the group is what to do
  284. about test work for other committees, which are proliferating like
  285. lagomorphs.  Dot three is clearly outnumbered, and needs some
  286. administrative cavalry to come to its rescue.  Unless it expands
  287. drastically (probably in the form of little subcommittees and a
  288. steering committee) or is allowed to delegate some of the
  289. responsibility of generating test assertions to the committees
  290. generating the standards, it will never finish.  (``Whew, okay, dot
  291. five's done.  Does anyone want to volunteer to be a liaison with dot
  292. thirty-seven?'')
  293.  
  294. 1003.4
  295.  
  296. Dot four is caught in a trap fashioned by evolution.  It began as a
  297. real-time committee.  Somehow, it's metamorphosed into a catch-all,
  298. ``operating-system extensions'' committee.  Several problems have
  299. sprung from this.
  300.  
  301.    o+ Some of the early proposed extensions were probably right for
  302.      real-time, but aren't general enough to be the right approach at
  303.      the OS level.
  304.  
  305.    o+ Pieces of the dot-four document probably belong in the the dot
  306.      one document instead of a separate document.  Presumeably, ISO
  307.      will perform this merge down the road.  Should the IEEE follow
  308.      suit?
  309.  
  310.    o+ Because the dot-four extensions aren't as firmly based in
  311.      established UNIX practice as the functionality specified in dot
  312.      one and two, debate over how to do things is more heated, and the
  313.      likelihood that the eventual, official, standard solution will be
  314.      an overly complex and messy compromise is far higher.  For
  315.      example, there is a currently active dispute about something as
  316.      fundamental as how threads and signals should interact.
  317.  
  318. Unfortunately, all this change has diverted attention from a problem
  319. that has to be dealt with soon - how to guarantee consistency between
  320. dot four and dot five, the Ada-language-binding group.  Tasks
  321. semantics are specified by the Ada language definition.  In order to
  322. get an Ada binding to dot four's standard (which someone will have to
  323. do), dot four's threads will have to be consistent with the way dot
  324. five uses tasks in their current working document.  With dot five's
  325. low numbers, the only practical way to insure this seems to be to have
  326. dot four aggressively track the work of dot five.
  327.  
  328. December 1989 Standards Update     USENIX Standards Watchdog Committee
  329.  
  330.  
  331.                                 - 7 -
  332.  
  333. 1003.5
  334.  
  335. Dot five is creating an Ada-language binding for POSIX.  What's
  336. ``Ada-language binding'' mean?  Just that an Ada programmer should be
  337. able to get any functionality provided by 1003.1 from within an Ada
  338. program.  (Right now, they're working on an Ada-language binding for
  339. the dot one standard, but eventually, they'll also address other
  340. interfaces, including those from dot four, dot six, and dot eight.)
  341. They face at least two kinds of technical problems and one social one.
  342.  
  343. The first technical problems is finding some way to express everything
  344. in 1003.1 in Ada.  That's not always easy, since the section two and
  345. three commands standardized by dot one evolved in a C universe, and
  346. the semantics of C are sometimes hard to express in Ada, and vice-
  347. versa.  Examples are Ada's insistence on strong typing, which makes
  348. things like ioctl() look pretty odd, and Ada's tasking semantics,
  349. which require careful thinking about fork(), exec(), and kill().
  350. Luckily, dot five is populated by people who are Ada-language wizards,
  351. and seem to be able to solve these problems.  One interesting
  352. difference between dot five and dot nine is that the FORTRAN group has
  353. chosen to retain the organization of the original dot one document so
  354. that their document can simply point into the ugly green book in many
  355. cases, whereas dot five chose to re-organize wherever it seemed to
  356. help the flow of their document.  It will be interesting to see which
  357. decision ends up producing the most useful document.
  358.  
  359. The second technical problem is making the solutions look like Ada.
  360. For more discussion of this, see the dot-nine (FORTRAN bindings)
  361. summary.  Again, this is a problem for Ada wizards, and dot five can
  362. handle it.
  363.  
  364. The social problem?  Interest in dot five's work, outside of their
  365. committee, is low.  Ada is out-of-favor with most UNIX programmers.
  366. (``Geez, 1201 is a mess.  Their stuff's gonna look as ugly as Ada.'')
  367. Conversely, most of the Ada community's not interested in UNIX.
  368. (``Huh?  Another `standard' operating environment?  How's it compare
  369. to, say, PCTE?  No, never mind.  Just let me know every few years how
  370. it's coming along.'') The group that has the hardest problem - welding
  371. together two, well-developed, standardized, disparate universes - has
  372. the least help.
  373.  
  374. Despite all of this, the standard looks like it's coming close to
  375. ballot, which means people ought to start paying attention to it
  376. before they have no choice.
  377.  
  378. December 1989 Standards Update     USENIX Standards Watchdog Committee
  379.  
  380.  
  381.                                 - 8 -
  382.  
  383. 1003.6
  384.  
  385. Most of the UNIX community would still feel more at home at a Rainbow
  386. gathering than reading the DOD rainbow books.  The unfamiliar-buzzword
  387. frequency at dot six (security) meetings is quite high.  If you can
  388. get someone patient to explain some of the issues, though, they're
  389. pretty interesting.  The technical problems they're solving each boil
  390. down to thinking through how to graft very foreign ideas onto UNIX
  391. without damaging it beyond recognition.  (The recent posting about
  392. chmod and access control lists, in comp.std.unix by Ana Maria de
  393. Alvare and Mike Ressler, is a wonderful, detailed example.)
  394.  
  395. Dot six's prominent, non-technical problem is just as interesting.
  396. The government has made it clear that vendors who can supply a
  397. ``secure UNIX'' will make a lot of money.  No fools, major vendors
  398. have begun been furiously working on implementations.  The push to
  399. provide a POSIX security standard comes at a time when these vendors
  400. are already quite far along in their efforts, but still some way from
  401. releasing the products.  Dot six attendees from such corporations
  402. can't say too much, because it will give away what they're doing
  403. (remember, too, that this is security), but must, somehow insure that
  404. the standard that emerges is compatible with their company's existing,
  405. secret implementation.
  406.  
  407. 1003.7
  408.  
  409. There is no single, standard body of practice for UNIX system
  410. administration, the area dot seven is standardizing.  Rather than seek
  411. a compromise, dot seven has decided to re-invent system administration
  412. from scratch.  This was probably necessary simply because there isn't
  413. enough existing practice to compromise on.  Currently, their intent is
  414. to provide an object-oriented standard, with objects specified in
  415. ASN.1 and administration of a multi-machine, networked system as a
  416. target.  (This, incidentally, was the recommendation of a USENIX White
  417. Paper on system administration by Susanne Smith and John Quarterman.)
  418. The committee doesn't have a high proportion of full-time system
  419. administrators, or a large body of experience in object-oriented
  420. programming.  It's essentially doing research by committee.  Despite
  421. this, general sentiment outside the committee seems to be that it has
  422. chosen a reasonable approach, but that progress may be slow.
  423.  
  424. A big danger is that they'll end up with a fatally flawed solution:
  425. lacking good, available implementations; distinct enough from existing
  426. practices, where they exist, to hamper adoption; and with no clear-cut
  427. advantage to be gained by replacing any ad-hoc, existing, solutions
  428. except for standard adherence.  The standard could be widely ignored.
  429.  
  430. What might prevent that from happening?  Lots of implementations.
  431. Object-oriented programming and C++ are fashionable (at the 1988,
  432.  
  433. December 1989 Standards Update     USENIX Standards Watchdog Committee
  434.  
  435.  
  436.                                 - 9 -
  437.  
  438. Winter Usenix C++ conference, Andrew Koenig referred to C++ as a
  439. ``strongly hyped language''); networked, UNIX systems are ubiquitous
  440. in the research community; and system administration has the feeling
  441. of a user-level, solvable problem.  If dot seven (perhaps with the
  442. help of dot zero) can publicize their work in the object-oriented
  443. programming community, we can expect OOPSLA conferences and
  444. comp.sources.unix to overflow with high-quality, practical, field-
  445. tested, object-oriented, system administration packages that conform
  446. to dot seven.
  447.  
  448. 1003.8
  449.  
  450. There are two administrative problems facing dot eight, the network
  451. services group.  Both stem directly from the nature of the subject.
  452. There is not yet agreement on how to solve either one.
  453.  
  454. The first is its continued growth.  There is now serious talk of
  455. making each subgroup a full-fledged POSIX committee.  Since there are
  456. currently six groups (transparent file access, network IPC, remote
  457. procedure call, OSI/MAP services, X.400 mail gateway, and directory
  458. services), this would increase the number of POSIX committees by
  459. nearly 50%, and make networking the single largest aspect of the
  460. standards work.  This, of course, is because standards are beneficial
  461. in operating systems, and single-machine applications, but
  462. indispensible in networking.
  463.  
  464. The second is intergroup coordination.  Each of the subgroups is
  465. specialized enough that most dot eight members only know what's going
  466. on in their own subgroup.  But because the issues are networking
  467. issues, it's important that someone knows enough about what each group
  468. is doing to prevent duplication of effort or glaring omissions.  And
  469. that's only a piece of the problem.  Topics like system administration
  470. and security are hard enough on a single, stand-alone machine.  In a
  471. networked world, they're even harder.  Someone needs to be doing the
  472. system engineering required to insure that all these areas of overlap
  473. are addressed, addressed exactly once, and completed in time frames
  474. that don't leave any group hanging, awaiting another group's work.
  475.  
  476. The SEC will have to sort out how to solve these problems.  In the
  477. meantime, it would certainly help if we had snitches for each subgroup
  478. in dot eight.  Any volunteers for .8/[3-6]?
  479.  
  480. 1003.9
  481.  
  482. Dot nine, which is providing FORTRAN bindings, is really fun to watch.
  483. They're fairly un-structured, and consequently get things done at an
  484. incredible clip.  They're also friendly; when someone new arrives,
  485. they actually stop, smile, and provide introductions all around.  It
  486. helps that there are only half-a-dozen attendees or so, as opposed to
  487.  
  488. December 1989 Standards Update     USENIX Standards Watchdog Committee
  489.  
  490.  
  491.                                 - 10 -
  492.  
  493. the half-a-hundred you might see in some of the other groups.
  494. Meetings have sort of a ``we're all in this together/defenders of the
  495. Alamo'' atmosphere.
  496.  
  497. The group was formed after two separate companies independently
  498. implemented FORTRAN bindings for dot one and presented them to the
  499. UniForum technical committee on supercomputing.  None of this, ``Let's
  500. consider forming a study group to generate a PAR to form a committee
  501. to think about how we might do it,'' stuff.  This was rapid
  502. prototyping at the standards level.
  503.  
  504. Except for the advantage of being able to build on prior art (the two
  505. implementations), dot nine has the same basic problems that dot five
  506. has.  What did the prior art get them?  The most interesting thing is
  507. that a correct FORTRAN binding isn't the same as a good FORTRAN
  508. binding.  Both groups began by creating a binding that paralleled the
  509. original dot one standard fairly closely.  Complaints about the
  510. occasional non-FORTRANness of the result have motivated the group to
  511. try to re-design the bindings to seem ``normal'' to typical FORTRAN
  512. programmers.  As a simple example, FORTRAN-77 would certainly allow
  513. the declaration of a variable in common called ERRNO, to hold the
  514. error return code.  Users, however, would find such name misleading;
  515. integer variables, by default and by convention, begin with ``I''
  516. through ``N.''
  517.  
  518. It is worth noting that dot nine is actually providing FORTRAN-77
  519. bindings, and simply ignoring FORTRAN-8x.  (Who was it that said of
  520. 8x, ``Looks like a nice language.  Too bad it's not FORTRAN''?)
  521. Currently, 1003 intends to move to a language-independent
  522. specification by the time 8x is done, which, it is claimed, will ease
  523. the task of creating 8x bindings.
  524.  
  525. On the surface, it seems logical and appealing that documents like
  526. 1003.1 be re-written as a language-independent standard, with a
  527. separate C-language binding, analogous to those of dot five and dot
  528. nine.  But is it really?
  529.  
  530. First, it fosters the illusion that POSIX is divorced from, and
  531. unconstrained by its primary implementation language.  Should the
  532. prohibition against nul characters in filenames be a base-standard
  533. restriction or a C-binding restriction?
  534.  
  535. I've seen a dot five committee member argue that it's the former.
  536. Looked at in isolation, this is almost sensible.  If Ada becomes the
  537. only language anyone wants to run, yet the government still mandates
  538. POSIX compliance, why should a POSIX implementation prohibit its
  539. filenames from containing characters that aren't special to Ada?  At
  540. the same time, every POSIX attendee outside of dot five seems repelled
  541. by the idea of filenames that contain nuls.  (Quiz: Can you specify a
  542. C-language program or shell script that will create a filename
  543. containing a nul?)
  544.  
  545. December 1989 Standards Update     USENIX Standards Watchdog Committee
  546.  
  547.  
  548.                                 - 11 -
  549.  
  550. Second, C provides an existing, precise, widely-known language in
  551. which POSIX can be specified.  If peculiarities of C make implementing
  552. some portions of a standard, specified in C, difficult in another
  553. language, then there are four, clear solutions:
  554.  
  555.   1.  change the specification so that it's equally easy in C and in
  556.       other languages,
  557.  
  558.   2.  change the specification so that it's difficult in every
  559.       language,
  560.  
  561.   3.  change the specification so that it's easy in some other
  562.       language but difficult in C
  563.  
  564.   4.  make the specification vague enough so that it can be done in
  565.       incompatible (though equally easy) ways in each language.
  566.  
  567. Only the first option makes sense.  Making the specification
  568. language-independent means either using an imprecise language, which
  569. risks four, or picking some little-known specification language (like
  570. VDL), which risks two and three.  Declaring C the specification
  571. language does limit the useful lifetime of POSIX to the useful
  572. lifetime of C, but if we don't think we'll come up with good
  573. replacements for both in a few decades, we're facing worse problems
  574. than language-dependent specifications.
  575.  
  576. Last, if you think the standards process is slow now, wait until the
  577. IEEE tries to find committee volunteers who are fluent in both UNIX
  578. and some language-independent specification language.  Not only will
  579. the useful lifetime of POSIX remain wedded to the useful lifetime of
  580. C, but both will expire before the language-independent version of dot
  581. one is complete.
  582.  
  583. It would be nice if this push for language-independent POSIX would go
  584. away quietly, but it won't.
  585.  
  586. 1003.10
  587.  
  588. In July, at the San Jose meeting, John Caywood of Unisys caught me in
  589. the halls and said, accusingly, ``I understand you're think
  590. supercomputers don't need a batch facility.'' I didn't have the
  591. foggiest idea what he was talking about, but it seemed like as good a
  592. chance as any to get a tutorial on dot ten, the supercomputing group,
  593. so I grabbed it. (Pretty aggressively helpful folks in this
  594. supercomputing group.  If only someone in it could be persuaded to
  595. file a snitch report.)
  596.  
  597. Here's the story:
  598.  
  599.      Articles about software engineering like to point out that
  600.  
  601. December 1989 Standards Update     USENIX Standards Watchdog Committee
  602.  
  603.  
  604.                                 - 12 -
  605.  
  606.      approaches and tools have changed from those used twenty years
  607.      ago; computers and computing resources are now much cheaper than
  608.      programmers and their time, while twenty years ago the reverse
  609.      was true.  These articles are written by people who've never used
  610.      a Cray.  A typical supercomputer application might run on a $25M,
  611.      non-byte-addressable, non-virtual-memory machine, require 100 to
  612.      1000 Mbytes of memory, and run for 10 Ksecs.  Expected running
  613.      time for jobs can be greater than the machine's mean-time-to-
  614.      failure.  The same techniques that were common twenty years ago
  615.      are still important on these machines, for the same reasons -
  616.      we're working close to the limits of hardware art.
  617.  
  618. The card punches are gone, but users often still can't login to the
  619. machines directly, and must submit jobs through workstation or
  620. mainframe front ends.  Resources are severely limited, and access to
  621. those resources need to be carefully controlled.  The two needs that
  622. surface most often are checkpointing, and a batch facility.
  623.  
  624. Checkpointing lets you re-start a job in the middle.  If you've used
  625. five hours of Cray time, and need to continue your run for another
  626. hour but have temporarily run out of grant money, you don't want to
  627. start again from scratch when the money appears.  If you've used six
  628. months of real time running a virus-cracking program and the machine
  629. goes down, you might be willing to lose a few hours, even days, of
  630. work, but can't afford to lose everything.  Checkpointing is a hard
  631. problem, without a generally agreed-upon solution.
  632.  
  633. A batch facility is easier to provide.  Both Convex and Cray currently
  634. support NQS, a public-domain, network queueing system.  The product
  635. has enough known problems that the group is re-working the facility,
  636. but the basic model is well-understood, and the committee members,
  637. both users and vendors, seem to want to adopt it.  The goal is
  638. command-level and library-level support for batch queues that will
  639. provide effective resource management for really big jobs.  Users will
  640. be able to do things like submit a job to a large machine through a
  641. wide-area network, specify the resources - memory, disk space, time,
  642. tape drives, etc. - that the job will need to run to completion, and
  643. then check back a week or two later to find out how far their job's
  644. progressed in the queue.
  645.  
  646. The group is determined to make rapid progress, and to that end is
  647. holding 6-7 meetings a year.  One other thing: the group is actually
  648. doing an application profile, not a standards document.  For an
  649. clarification of the distinction, see the discussion of dot eleven.
  650.  
  651. 1003.11
  652.  
  653. Dot eleven has begun work on an application profile (AP) on
  654. transaction processing (TP).  An AP is a set of pointers into the
  655. POSIX Open System Environment (OSE).  For example, the TP AP might
  656.  
  657. December 1989 Standards Update     USENIX Standards Watchdog Committee
  658.  
  659.  
  660.                                 - 13 -
  661.  
  662. say, ``For dot eleven conformance, you need to conform to dot one, dot
  663. four, sections 2.3.7 and 2.3.8 of dot 6, 1003.8 except for /2, and
  664. provide a batch facility as specified in the dot 10 AP.'' A group
  665. doing an AP will also look for holes or vague areas in the existing
  666. standards, as they relate to the application area, go point them out
  667. to the appropriate committee, and possibly chip in to help the
  668. committee solve them.  If they find a gap that really doesn't fall
  669. into anyone else's area, they can write a PAR, requesting that the SEC
  670. (1003's oversight committee) charter them to write a standard to cover
  671. it.
  672.  
  673. Dot eleven is still in the early, crucial stage of trying to figure
  674. out what it wants to do.  Because of fundamental differences in
  675. philosophy of the members, the group seems to be thrashing a lot.
  676. There is a clear division between folks who want to pick a specific
  677. model of TP and write an AP to cover it, and folks who think a model
  678. is a far-too-detailed place to start.  The latter group is small, but
  679. not easily dismissed.
  680.  
  681. It will be interesting to see how dot eleven breaks this log jam, and
  682. what the resolution is.  As an aside, many of the modelers are from
  683. the X/OPEN and ISO TP groups, which are already pushing specific
  684. models of their own; this suggests what kinds of models we're likely
  685. to get if the modeling majority wins.
  686.  
  687. X3J11
  688.  
  689. A single individual, Russell Hansberry, is blocking the official
  690. approval of the ANSI standard for C on procedural grounds.  At some
  691. point, someone failed to comply with the letter of IEEE rules for
  692. ballot resolution.  and Hansberry is using the irregularity to delay
  693. adoption of the standard.
  694.  
  695. This has had an odd effect in the 1003 committees.  No one wants to
  696. see something like this inflicted on his or her group, so folks are
  697. being particularly careful to dot all i's and cross all t's.  I say
  698. odd because it doesn't look as though Hansberry's objections will have
  699. any effect whatsoever on either the standard, or its effectiveness.
  700. Whether ANSI puts its stamp on it or not, every C compiler vendor is
  701. implementing the standard, and every book (even K&R) is writing to it.
  702. X3J11 has replaced one de-facto standard with another, even stronger
  703. one.
  704.  
  705. 1201.1
  706.  
  707. What's that you say, bunky?  You say you're Jewish or Moslem, and you
  708. can look at Xwindows as long as you don't eat it?  Well then, you
  709. won't care much for 1201.1, which is supposed to be ``User Interface:
  710. Application Programming Interface,'' but is really ``How much will the
  711.  
  712. December 1989 Standards Update     USENIX Standards Watchdog Committee
  713.  
  714.  
  715.                                 - 14 -
  716.  
  717. Motif majority have to compromise with the Open/Look minority before
  718. force-feeding us a thick standard full of `Xm[A-Z]...' functions with
  719. long names and longer argument lists?''
  720.  
  721. Were this group to change its name to ``Xwindows application
  722. programming interface,'' you might not hear nearly as much grousing
  723. from folks outside the working group.  As it is, the most positive
  724. comments you hear are, ``Well, X is pretty awful, but I guess we're
  725. stuck with it,'' and ``What could they do?  If POSIX hadn't undertaken
  726. it, NIST would have.''
  727.  
  728. If 1201 is to continue to be called ``User Interface,'' these aren't
  729. valid arguments for standardizing on X or toolkits derived from it.
  730. In what sense are we stuck with X?  The number of X applications is
  731. still small, and if X and its toolkits aren't right for the job, it
  732. will stay small.  Graphics hardware will continue to race ahead,
  733. someone smart will show us a better way to do graphics, and X will
  734. become a backwater.  If they are right, some toolkit will become a
  735. de-facto standard, the toolkit will mature, and the IEEE can write a
  736. realistic standard based on it.
  737.  
  738. Moreover, if NIST wants to write a standard based on X, what's wrong
  739. with that?  If they come up with something that's important in the
  740. POSIX world, good for them.  ANSI or the IEEE can adopt it, the way
  741. ANSI's finally getting around to adopting C.  If NIST fails, it's not
  742. the IEEE's problem.
  743.  
  744. If 1201.1 ignores X and NIST, can it do anything?  Certainly.  The
  745. real problem with the occasionally asked question, ``are standards
  746. bad?'' is that it omits the first word: ``When.'' Asked properly, the
  747. answer is, ``When they're at the wrong level.'' API's XVT is example
  748. of a toolkit that sits above libraries like Motif or the Mac toolbox,
  749. and provides programmers with much of the standard functionality
  750. necessary to write useful applications on a wide variety of window
  751. systems.  Even if XVT isn't the answer, it provides proof by example
  752. that we can have a window-system-independent, application programming
  753. interface for windowing systems.  1201.1 could provide a useful
  754. standard at that level.  Will it?  Watch and see.
  755.  
  756. December 1989 Standards Update     USENIX Standards Watchdog Committee
  757.  
  758.  
  759. Volume-Number: Volume 18, Number 10
  760.  
  761.