home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / std_unix / volume.22 < prev    next >
Internet Message Format  |  1991-03-06  |  373KB

  1. From std-unix-request@uunet.uu.net  Fri Oct 26 15:09:37 1990
  2. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  3.     id AA12278; Fri, 26 Oct 90 15:09:37 -0400
  4. Posted-Date: 26 Oct 90 19:08:19 GMT
  5. Received: by cs.utexas.edu (5.64/1.82) 
  6. From: jsq@usenix.org (John S. Quarterman)
  7. Newsgroups: comp.std.unix
  8. Subject: comp.std.unix Volume 22
  9. Message-Id: <109820@uunet.UU.NET>
  10. Sender: jsq@uunet.uu.net
  11. Reply-To: std-unix@uunet.uu.net
  12. X-Submissions: std-unix@uunet.uu.net
  13. Date: 26 Oct 90 19:08:19 GMT
  14. To: std-unix@uunet.uu.net
  15.  
  16. Submitted-by: jsq@usenix.org (John S. Quarterman)
  17.  
  18. This is the first article in Volume 22 of comp.std.unix.
  19. These volumes are purely for administrative convenience.
  20. Feel free to continue any previous discussion or to start new ones.
  21.  
  22. Topic.
  23.  
  24. The USENET newsgroup comp.std.unix, also known as the mailing list
  25. std-unix@uunet.uu.net, is for discussions of standards related to
  26. the UNIX operating system, particularly of IEEE P1003, or POSIX,
  27. including IEEE 1003.1, 1003.2, etc.
  28.  
  29. Other related standards bodies and subjects include but are not limited to
  30.     IEEE 1201 and IEEE 1238,
  31.     ISO/IEC JTC1 SC22 WG15 (the ISO and IEC version of POSIX),
  32.     the U.S. and other Technical Advisory Groups (TAGs) to WG15,
  33.     the X3.159 Programming Language C Standard by the ANSI X3J11 committee,
  34.     ISO/IEC JTC1 SC22 WG14 (the ISO and IEC version of X3.159),
  35.     ANSI X3J16 on the C++ programming language,
  36.     ANSI X3B11.1 on WORM File Systems,
  37.     the National Institute of Standards and Technology (NIST),
  38.     and their Federal Information Processing Standards (FIPS),
  39.     X/Open and their X/Open Portability Guide (XPG),
  40.     the Open Software Foundation (OSF),
  41.     UNIX International (UI),
  42.     the UniForum Technical Committee,
  43.     the AFUU Working Groups,
  44.     PortSoft,
  45.     AT&T System V Interface Definition (SVID),
  46.     System V Release 3, System V Release 4,
  47.     4.2BSD, 4.3BSD, 4.4BSD,
  48.     Tenth Edition UNIX, Plan 9 from Bell Labs,
  49.     Mach, Chorus, Amoeba,
  50.     and the USENIX Standards Watchdog Committee.
  51.  
  52. Moderator.
  53.  
  54. The newsgroup comp.std.unix and the mailing list std-unix@uunet.uu.net
  55. is moderated.  The moderator is John S. Quarterman.
  56.  
  57. Disclaimer.
  58.  
  59. Postings by any committee member (especially including me) in this
  60. newsgroup do not represent any position (including any draft, proposed
  61. or actual, of a standard) of the committee as a whole or of any
  62. subcommittee unless explicitly stated otherwise in such remarks.
  63.  
  64. * UNIX is a Registered Trademark of AT&T.
  65. ** IEEE is a Trademark of the Institute for Electrical and Electronics
  66.     Engineers, Inc.
  67. *** POSIX is not a trademark.
  68. Various other names mentioned above may be trademarks.
  69. I hope their owners will not object if I do not list them all here.
  70.  
  71.  
  72. Postings.
  73.  
  74. Submissions for posting to the newsgroup and comments about the newsgroup
  75. (including requests to subscribe or unsubscribe to the mailing list)
  76. should go to two different addresses:
  77.  
  78.         DNS address            UUCP source route
  79. Submissions    std-unix@uunet.uu.net        uunet!std-unix
  80. Comments    std-unix-request@uunet.uu.net    uunet!std-unix-request
  81.  
  82. The hostname cs.utexas.edu may be used in place of uunet.uu.net or uunet.
  83. Permission to post to the newsgroup is assumed for mail to std-unix.
  84. Permission to post is not assumed for mail to std-unix-request,
  85. unless explicitly granted in the mail.  Mail to my personal addresses
  86. will be treated like mail to std-unix-request if it obviously refers
  87. to the newsgroup.
  88.  
  89. The mailing list is distributed on the Internet, UUCP, and elsewhere.
  90. There is a redistribution list on BITNET for BITNET, EARN, and NetNorth.
  91. Please send submissions from those networks to std-unix@uunet.uu.net
  92. nonetheless, because messages sent to the BITNET LISTSERV will not reach
  93. the whole list.
  94.  
  95. If you have access to USENET, it is better (more efficient, cheaper,
  96. less effort for me to manage) to subscribe to the newsgroup comp.std.unix
  97. than to the mailing list.  Submissions should still go to the above
  98. addresses, although many (perhaps most) USENET hosts will forward
  99. attempts to post directly to the newsgroup to the moderator.
  100.  
  101. Posted articles may originate from uunet.uu.net, longway.tic.com, tic.com,
  102. cs.utexas.edu, or usenix.org.  There are also occasional guest moderators,
  103. who may post from still other machines.  Guest moderators are announced
  104. in advance by the regular moderator.
  105.  
  106. Archives.
  107.  
  108. Archives for comp.std.unix or std-unix@uunet.uu.net may be found on UUNET.
  109. Most of them are compressed, so if you don't have compress, get it first
  110. (it's in the comp.sources.unix archives).
  111.  
  112. The comp.std.unix archives may be retrieved by anonymous FTP over the Internet.
  113. Connect to uunet.uu.net with FTP and log in as user anonymous with password
  114. guest.
  115.  
  116. The current volume is in the file
  117.         ~ftp/comp.std.unix/archive
  118. or
  119.         ~ftp/comp.std.unix/volume.22
  120. The previous volume may be retrieved as 
  121.         ~ftp/comp.std.unix/volume.21.Z
  122. and so forth for more ancient volumes.
  123.  
  124. For hosts with direct UUCP connections to UUNET, UUCP transfer from
  125. host uunet should work with, for example,
  126.         uucp uunet!'~ftp/comp.std.unix/archive' archive
  127. You will have to put a backslash before the ! (i.e., \!)
  128. if you're using the C shell.
  129.  
  130. The output of "cd ~ftp/comp.std.unix; ls -l" is in
  131.         ~ftp/comp.std.unix/list
  132. and the output of "cd ~ftp/comp.std.unix; ls -l *" is in
  133.         ~ftp/comp.std.unix/longlist
  134.  
  135. For further details, retrieve the file
  136.         ~ftp/comp.std.unix/README
  137.  
  138.  
  139. General submission acceptance policy.
  140.  
  141. Submissions are never ignored (although they might be overlooked).
  142. If you don't see your article posted and you don't get a mailed
  143. response from the moderator, your submission probably didn't arrive.
  144. However, travel schedules and other business sometimes intervene
  145. (and for that matter it can take many hours for a submission to
  146. get to the moderator and the posted message to get back to the poster),
  147. so you may sometimes not see anything for a few days.  If you wait
  148. and still don't see anything, try sending again.
  149.  
  150. I usually post about 90% of all submissions.  However, as moderator,
  151. I retain the right to reject submissions.  If a submission does not
  152. appear relevant to comp.std.unix, it is sent back to the submittor with
  153. a note saying why it is not appropriate.  Usually this is because it
  154. just doesn't fit the topic of the newsgroup, in which case I suggest
  155. another newsgroup.  Sometimes it is because someone else has already
  156. given the same answer to a question, in which case I ask if the
  157. submittor really wants it posted.  Occasionally I suggest editing that
  158. would make an article more appropriate to the newsgroup.
  159.  
  160. Very occasionally I reject an article outright:  this is almost always
  161. because it contains ad hominem attacks, which are never permitted
  162. in this technical newsgroup.  There are many other potential reasons
  163. for rejection, however, such as inclusion of copyrighted material.
  164. Fortunately, most such problems have not come up.
  165.  
  166. Note that while technical postings on technical subjects are encouraged,
  167. postings about the politics of standardization are also appropriate,
  168. since it is impossible to separate politics from standards.
  169.  
  170. Crosspostings are discouraged.  Submissions such as ``how do I find
  171. xyz piece of software'' or ``is the x implementation better than the
  172. y implementation'' that come in for multiple newsgroups usually get
  173. sent back to the submittor with a suggestion to resubmit without
  174. comp.std.unix in the Newsgroups: line.  Sometimes I'll crosspost if
  175. there's clear relevance to comp.std.unix, but I always add a
  176. Followup-To: line in an attempt to direct further discussion to a
  177. single newsgroup, usually comp.std.unix.  This policy is useful because
  178. crossposting often produces verbose traffic of little relevance to
  179. comp.std.unix.
  180.  
  181.  
  182.  
  183. Editorial policy.
  184.  
  185. When posting a submission, I sometimes make changes to it.  These
  186. are of three types:  headers and trailers; comments; and typographical.
  187.  
  188. Headers and trailers
  189.  
  190. Header changes include:
  191. + Cleaning up typos, particularly in Subject: lines.
  192. + Rationalizing From: lines to contain only one address syntax,
  193.     either hosta!hostb!host!user or, preferably, user@domain.
  194. + Adding a Reply-To: line.  This usually points to the newsgroup
  195.     submission address in the mailing list, but to the submitter
  196.     in the newsgroup, for reasons too messy to detail here.
  197. + Adding the Approved: line.
  198. + Deleting any Distribution: line, as detailed in the next paragraph.
  199.  
  200. The only distribution used in comp.std.unix is no distribution, i.e.,
  201. worldwide.  If it's not of worldwide interest, it doesn't belong in
  202. comp.std.unix.  Anything pertaining to the IEEE/CS TCOS standards
  203. or committees (e.g., IEEE 1003, IEEE 1201), the ANSI X3.159 Programming
  204. Language C Standard (X3J11), or the ISO 9945 POSIX work (ISO/IEC JTC1
  205. SC22 WG15) is of worldwide interest.  If a submission arrives with a
  206. Distribution:  line, such as na or us, I delete that line.
  207.  
  208. Every article has a trailing line of the form
  209. >    Volume-Number: Volume 22, Number 42
  210. This allows the reader to notice articles lost in transmission and
  211. permits the moderator to more easily catalog articles in the archives.
  212. Volumes usually change after about 100 articles, but are purely for
  213. administrative convenience; discussions begun in one volume should
  214. be continued into the next volume.
  215.  
  216. Also, signatures that are excessively long may be truncated.
  217.  
  218.  
  219.  
  220. Comments
  221.  
  222. Comments by the moderator are sometimes added to clarify obscure
  223. issues.  These are always enclosed in square brackets with the
  224. closing mark ``-mod,'' [ like this -mod ].  Sometimes entire articles
  225. appear that are written by the moderator:  these always end with
  226. a signature that includes the words ``moderator, comp.std.unix.''
  227.  
  228. Comments by the editor of the USENIX Standards Watchdog Reports
  229. sometimes appear in those reports.  Such comments are always
  230. enclosed in square brackets and begin with the word ``Editor:''
  231. [ Editor: like this ].
  232.  
  233. Comments by the publisher of the USENIX Standards Watchdog Reports
  234. sometimes appear in those reports.  Such comments are always
  235. enclosed in square brackets and end with the mark ``-pub,''
  236. [ like this -pub ].
  237.  
  238. Entire articles may appear by the editor or publisher of the
  239. Watchdog Reports, and those are always identified by the signature.
  240.  
  241. Typographical
  242.  
  243. People submitting articles sometimes enclose parenthetical comments
  244. in brackets [] instead of parentheses ().  I usually change these
  245. to parentheses to avoid confusion with the above conventions for
  246. comments by the moderator, editor, or publisher.
  247.  
  248. Obvious misspellings, such as ``it's'' for the possesive or
  249. ``its'' as a contraction of ``it is'' are corrected.
  250.  
  251. Excess white space is deleted.
  252.  
  253. Lines longer than 80 characters are reformatted.
  254.  
  255. Redundant quoted headers are often omitted.
  256.  
  257. Very long quotations of previous articles are sometimes shortened.
  258.  
  259.  
  260.  
  261. Common kinds of postings.
  262.  
  263. There are several sets of postings that reoccur in comp.std.unix
  264. at more or less regular intervals.  Here are three of the most common.
  265.  
  266. Calendar of UNIX-Related Events
  267.  
  268. Susanne W. Smith <sws@calvin.wa.com> of Windsound Consulting of Edmonds,
  269. Washington and John S. Quarterman <jsq@tic.com> of Texas Internet Consulting
  270. (TIC) of Austin, Texas publish a combined calendar of planned conferences,
  271. workshops, or standards meetings related to the UNIX operating system.
  272. These appear about every other month in four articles with these titles:
  273.     Calendar of UNIX-related Events
  274.     Access to UNIX User Groups
  275.     Access to UNIX-Related Publications
  276.     Access to UNIX-Related Standards
  277. The first three are posted to
  278.     comp.std.unix,comp.unix.questions,comp.org.usenix
  279. The one about standards is posted only to comp.std.unix.
  280.  
  281. These calendar postings are a private project of Windsound and TIC,
  282. although they are coordinated with various groups such as USENIX, EUUG,
  283. AUUG, JUS, UniForum, and IEEE TCOS.  Smith and Quarterman encourage
  284. others to reuse this information, but ask for proper acknowledgment.
  285.  
  286. USENIX Standards Watchdog Reports
  287.  
  288. The USENIX Association sponsors a set of reports after each quarterly
  289. meeting of the IEEE 1003 and IEEE 1201 standards committees.  These
  290. reports are written by volunteers who are already attending committee
  291. meetings and are edited by the Watchdog Report Editor, who is
  292. Jeff Haemer <jsh@usenix.org>.  Reports on other committees, such as
  293. X3J11, are also included when available.  These reports are reviewed
  294. for publication by John S. Quarterman acting as publisher for the
  295. USENIX Standards Policy Committee, which consists of Quarterman (chair),
  296. Marshall Kirk McKusick (USENIX President), Alan G. Nemeth (past USENIX
  297. President), and Ellie Young (USENIX Executive Director).  The reports
  298. are published in comp.std.unix/std-unix@uunet.uu.net and ;login:
  299. The Newsletter of the USENIX Association.  They are also available
  300. for publication elsewhere.
  301.  
  302. EUUG/USENIX ISO Monitor Project
  303.  
  304. The European UNIX systems Users Group (EUUG) and the USENIX Association
  305. jointly sponsor an observer to the ISO/IEC JTC1 SC22 WG15 (ISO POSIX)
  306. standards committee.  This observer, Dominic Dunlop <domo@tsa.co.uk>,
  307. writes a report after each WG15 meeting, of which there are usually
  308. two a year.  These reports are reviewed by John S. Quarterman, USENIX
  309. Standards Liaison, acting as manager of the ISO Monitor Project.  They
  310. are published in the EUUG Newsletter (EUUGN), :login;, and comp.std.unix.
  311. They are also available for publication elsewhere.
  312.  
  313. John S. Quarterman, moderator, comp.std.unix and std-unix@uunet.uu.net.
  314.  
  315. Volume-Number: Volume 22, Number 1
  316.  
  317. From jsq@cs.utexas.edu  Fri Oct 26 23:12:41 1990
  318. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  319.     id AA25532; Fri, 26 Oct 90 23:12:41 -0400
  320. Posted-Date: 24 Oct 90 17:41:44 GMT
  321. Received: by cs.utexas.edu (5.64/1.82) 
  322. From: chet@cwns1.INS.CWRU.Edu (Chet Ramey)
  323. Newsgroups: comp.std.unix
  324. Subject: Re: File system name space
  325. Message-Id: <14011@cs.utexas.edu>
  326. References: <13689@cs.utexas.edu> <13775@cs.utexas.edu> <13878@cs.utexas.edu>
  327. Sender: jsq@cs.utexas.edu
  328. Reply-To: chet@po.CWRU.Edu
  329. Organization: Case Western Reserve Univ. Cleveland, Ohio, (USA)
  330. X-Submissions: std-unix@uunet.uu.net
  331. Date: 24 Oct 90 17:41:44 GMT
  332. To: std-unix@uunet.uu.net
  333.  
  334. Submitted-by: chet@cwns1.INS.CWRU.Edu (Chet Ramey)
  335.  
  336. Arnold Robbins writes:
  337.  
  338. >Anyway, since we're discussing what is and isn't in the POSIX name space,
  339. >I'd like to put in a plug for the /dev/fd directory.
  340.  
  341. I agree; it makes things like 
  342.  
  343.     join <(prog1) <(prog2) > joined-output-of-progs-1-and-2
  344.  
  345. possible.
  346.  
  347. >There's lot of existing practice on this one; it originated in V8, circa
  348. >1984 or earlier, and PD versions for various, more popular, Unix incarnations
  349. >have been around for some time as well.
  350.  
  351. Keith Bostic has stated that /dev/fd will be in the next release of BSD;
  352. for all I know, it might already be in 4.3-reno.
  353.  
  354. Chet
  355. -- 
  356. Chet Ramey            ``As I recall, Doug was keen on boxing.  But
  357. Network Services Group          when he learned to walk, he took up puttin'
  358. Case Western Reserve University      the boot in the groin.''
  359. chet@ins.CWRU.Edu
  360.  
  361. Volume-Number: Volume 22, Number 2
  362.  
  363. From jsq@cs.utexas.edu  Fri Oct 26 23:19:52 1990
  364. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  365.     id AA28210; Fri, 26 Oct 90 23:19:52 -0400
  366. Posted-Date: 24 Oct 90 19:11:32 GMT
  367. Received: by cs.utexas.edu (5.64/1.82) 
  368. From: craig@b11.ingr.com (Craig Presson)
  369. Newsgroups: comp.std.unix
  370. Subject: Re: File system name space (was Re: Standards Update, IEEE 1003.4: Real-time Extensions)
  371. Keywords: More Info Please
  372. Message-Id: <14012@cs.utexas.edu>
  373. References: <13132@cs.utexas.edu> <13219@cs.utexas.edu> <13689@cs.utexas.edu> <13775@cs.utexas.edu> <13878@cs.utexas.edu> <13878@cs.utexas.edu>,
  374. Sender: jsq@cs.utexas.edu
  375. Reply-To: craig@b11.ingr.com (Craig Presson)
  376. Organization: Intergraph Corporation, Huntsville
  377. X-Submissions: std-unix@uunet.uu.net
  378. Date: 24 Oct 90 19:11:32 GMT
  379. To: std-unix@uunet.uu.net
  380.  
  381. Submitted-by: craig@b11.ingr.com (Craig Presson)
  382.  
  383. In article <13878@cs.utexas.edu>, arnold%audiofax.com@mathcs.emory.edu
  384. (Arnold Robbins) writes:
  385. |> Submitted-by: arnold%audiofax.com@mathcs.emory.edu (Arnold Robbins)
  386. |> 
  387. |> Anyway, since we're discussing what is and isn't in the POSIX name space,
  388. |> I'd like to put in a plug for the /dev/fd directory.  Opening /dev/fd/7 is
  389. |> equivalent to doing a dup(7); it is a generalization of the "treat '-' as
  390. |> stdin" hack used by cat and awk (and others) and allows at least two shells
  391. |> (ksh and rc [see your nearest V10 manual]) to do interesting things like set
  392. |> up non-linear pipelines.  (At least I think rc does it.  I know ksh does.)
  393. |> 
  394. |> There's lot of existing practice on this one; it originated in V8, circa
  395. |> 1984 or earlier, and PD versions for various, more popular, Unix
  396. incarnations
  397. |> have been around for some time as well.
  398. |> 
  399. |> (In fact, in V8 - V10, /dev/stdin, /dev/stdout, /dev/stderr, and
  400. /dev/tty are
  401. |> links to /dev/fd/0, /dev/fd/1, /dev/fd/2, and /dev/fd/3, respectively.  The
  402. |> last, in particular, is a nice generalization, and eliminates an ugly
  403. special
  404. |> case in the kernel; init just does one more dup.)
  405. |> 
  406. |> It's going to be fun watching how /dev/fd will be presented as both for and
  407. |> against the case for "fd-centric" Unix... :-)  Personally, I'm in the
  408. put-it-
  409. |> in-the-filesystem camp.
  410. |> -- 
  411. |> Arnold Robbins                AudioFAX, Inc. | Laundry increases
  412.  
  413. Ah, roger, that's a big "ditto" on the virtues of One Big Namespace for
  414. all Permanent Objects. Use subspaces to separate classes (he said 
  415. tautologically) *.
  416.  
  417. But for those of us without access to every Unix manual ever published
  418. (I do have a Version 7 Volume 1), could you fill in a bit more on the
  419. semantics of this hybrid /dev entry? Like what do you get when you open
  420. "/dev/fd/7" and there is no open file using that slot? Does the system
  421. make these entries "invisible" to processes not using them? Do you just
  422. get a classic "It's an error from Unix, you're not supposed to understand"
  423. type return? Or am I Missing Something?
  424.  
  425.  
  426. --  ******************************************************
  427.     ** Craig Presson              pressonc@ingr.com     **
  428.     ** Intergraph Corporation             MS CR1104     **
  429.     ** Huntsville, AL 35894-0001     (205) 730-6176     **
  430.     **                       FAX:    (205) 730-6011     **
  431.     ******************************************************
  432. * Those not old enough to remember "Tom Swifties" are encouraged
  433. to forgive my lapse of taste ...
  434.  
  435. Volume-Number: Volume 22, Number 3
  436.  
  437. From jsq@cs.utexas.edu  Fri Oct 26 23:24:50 1990
  438. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  439.     id AA00235; Fri, 26 Oct 90 23:24:50 -0400
  440. Posted-Date: 24 Oct 90 21:46:11 GMT
  441. Received: by cs.utexas.edu (5.64/1.82) 
  442. From: drd@siia.mv.com (David Dick)
  443. Newsgroups: comp.std.unix
  444. Subject: Re: Standards Update, NIST Shell-and-Tools FIPS Workshop
  445. Message-Id: <14013@cs.utexas.edu>
  446. References: <558@usenix.ORG> <107019@uunet.UU.NET>
  447. Sender: jsq@cs.utexas.edu
  448. Organization: Software Innovations, Inc.
  449. X-Submissions: std-unix@uunet.uu.net
  450. Date: 24 Oct 90 21:46:11 GMT
  451. Reply-To: std-unix@uunet.uu.net
  452. To: std-unix@uunet.uu.net
  453.  
  454. Submitted-by: drd@siia.mv.com (David Dick)
  455.  
  456. In <107019@uunet.UU.NET> hl.rogers@ncrcae.Columbia.NCR.COM (HL Rogers) writes:
  457.  
  458. >Submitted-by: rogers@ofc.uucp
  459.  
  460. [discussion about NIST, FIPS, and IEEE standards pace omitted]
  461.  
  462. >What I fail to understand is IEEE's continuing propensity to violate the
  463. >"prime directive", i.e., their failure to specify common practice.  
  464.  
  465. ...
  466.  
  467. >Attempting to legislate change through IEEE dot n committees may even
  468. >work, but guess what?  Instead of Uncle Sam buying something off the
  469. >shelf for near commodity prices, he has to buy a "special" for inflated
  470. >prices because it had to be especially developed.  Nobody had it, not 
  471. >common practice,...  And guess what else?  You, I, Roger Martin, and
  472. >the rest of us collectively make up "Uncle Sam."  It's your money, ace.
  473.  
  474. But isn't this exactly what has been happening for years in Federal
  475. procurement?  Unfortunately, some of the same forces that encouraged
  476. this in traditional procurement must still be in operation, e.g.,
  477. the need of the procurement bureaucracy to ensure its continued existence.
  478.  
  479. David Dick
  480. Software Innovations, Inc. [the Software Moving Company(sm)]
  481.  
  482. Volume-Number: Volume 22, Number 4
  483.  
  484. From jsq@cs.utexas.edu  Fri Oct 26 23:29:31 1990
  485. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  486.     id AA01751; Fri, 26 Oct 90 23:29:31 -0400
  487. Posted-Date: 25 Oct 90 10:48:45 GMT
  488. Received: by cs.utexas.edu (5.64/1.82) 
  489. From: addw@phcomp.co.uk (Alain Williams)
  490. Newsgroups: comp.std.unix
  491. Subject: File system name space
  492. Message-Id: <14014@cs.utexas.edu>
  493. References: <13878@cs.utexas.edu>
  494. Sender: jsq@cs.utexas.edu
  495. Organization: Parliament Hill Computers Ltd
  496. X-Submissions: std-unix@uunet.uu.net
  497. Date: 25 Oct 90 10:48:45 GMT
  498. Reply-To: std-unix@uunet.uu.net
  499. To: std-unix@uunet.uu.net
  500.  
  501. Submitted-by: addw@phcomp.co.uk (Alain Williams)
  502.  
  503. > Anyway, since we're discussing what is and isn't in the POSIX name space,
  504. > I'd like to put in a plug for the /dev/fd directory.  Opening /dev/fd/7 is
  505. > equivalent to doing a dup(7); it is a generalization of the "treat '-' as
  506. What happens if you do an ``ls -l'' on /dev/fd, do you see the fds which are
  507. open to the ls program or all possible fds, even those which aren't opened ?
  508.  
  509. > (In fact, in V8 - V10, /dev/stdin, /dev/stdout, /dev/stderr, and /dev/tty are
  510. > links to /dev/fd/0, /dev/fd/1, /dev/fd/2, and /dev/fd/3, respectively.  The
  511. > last, in particular, is a nice generalization, and eliminates an ugly special
  512. > case in the kernel; init just does one more dup.)
  513. I always thought that /dev/tty was a means of getting hold of the tty when
  514. you couldn't be certain that 0,1,2 was connected to it. What you are really
  515. saying is that the UNIX convention of 0,1,2 having ``pre defined uses'' be
  516. extended to `3 always connected to the terminal and used for nothing else'.
  517. It isn't a /dev/fd issue, it is a UNIX convention issue.
  518. The other thing is the /dev/tty is a guaranteed way of getting the terminal
  519. & not something else (that is why the passwd program uses /dev/tty).
  520.  
  521. Alain Williams
  522.  
  523. +44 734 461232
  524.  
  525. phLOGIN our Turnkey Security Login utility is available NOW - ask me for info.
  526.  
  527. Volume-Number: Volume 22, Number 5
  528.  
  529. From jsq@cs.utexas.edu  Mon Oct 29 15:13:48 1990
  530. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  531.     id AA03242; Mon, 29 Oct 90 15:13:48 -0500
  532. Posted-Date: 29 Oct 90 06:09:08 GMT
  533. Received: by cs.utexas.edu (5.64/1.82) 
  534. From: seanf@sco.COM (Sean Fagan)
  535. Newsgroups: comp.std.unix
  536. Subject: Re: File system name space
  537. Message-Id: <14101@cs.utexas.edu>
  538. References: <13878@cs.utexas.edu> <14014@cs.utexas.edu>
  539. Sender: jsq@cs.utexas.edu
  540. Reply-To: seanf@sco.COM (Sean Fagan)
  541. Organization: The Santa Cruz Operation, Inc.
  542. X-Submissions: std-unix@uunet.uu.net
  543. Date: 29 Oct 90 06:09:08 GMT
  544. To: std-unix@uunet.uu.net
  545.  
  546. Submitted-by: seanf@sco.COM (Sean Fagan)
  547.  
  548. In article <14014@cs.utexas.edu> addw@phcomp.co.uk (Alain Williams) writes:
  549. >What happens if you do an ``ls -l'' on /dev/fd, do you see the fds which are
  550. >open to the ls program or all possible fds, even those which aren't opened ?
  551.  
  552. You get something that looks like
  553.  
  554. kithrup 10> ls -l /dev/fd
  555. total 0
  556. crw-rw-rw- 5 bin    bin    46,0    Jun 11 15:48 0
  557. crw-rw-rw- 5 bin    bin    46,1    Jun 11 15:48 1
  558. crw-rw-rw- 2 bin    bin    46,2    Jun 11 15:48 2
  559. crw-rw-rw- 1 bin    bin    46,3    Jun 11 15:48 3
  560. crw-rw-rw- 1 bin    bin    46,4    Jun 11 15:48 4
  561. crw-rw-rw- 1 bin    bin    46,5    Jun 11 15:48 5
  562.  
  563. And so on.  They are normal device drivers; stat'ing them doesn't do
  564. anything strange, just opening them.
  565.  
  566. (/dev/stdin.o, /dev/stdin.s, /dev/stdin.c, /dev/stdin, and /dev/fd/0 are all
  567. linked on my system; similarly with /dev/stdout.  /dev/stderr is linked to
  568. /dev/fd/0, and all the others [through 60 on my system] only have one link.)
  569.  
  570. -- 
  571. -----------------+
  572. Sean Eric Fagan  | "Quoth the raven,"
  573. seanf@sco.COM    | "Eat my shorts!"
  574. uunet!sco!seanf  |     -- Lisa and Bart Simpson
  575. (408) 458-1422   | Any opinions expressed are my own, not my employers'.
  576.  
  577. Volume-Number: Volume 22, Number 6
  578.  
  579. From jsq@cs.utexas.edu  Mon Oct 29 15:19:28 1990
  580. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  581.     id AA05099; Mon, 29 Oct 90 15:19:28 -0500
  582. Posted-Date: 29 Oct 90 13:12:45 GMT
  583. Received: by cs.utexas.edu (5.64/1.82) 
  584. From: addw@phcomp.co.uk (Alain Williams)
  585. Newsgroups: comp.std.unix
  586. Subject: Re: File system name space
  587. Message-Id: <14102@cs.utexas.edu>
  588. References: <13878@cs.utexas.edu> <14011@cs.utexas.edu> <14012@cs.utexas.edu> <14014@cs.utexas.edu>
  589. Sender: jsq@cs.utexas.edu
  590. Organization: Parliament Hill Computers Ltd
  591. X-Submissions: std-unix@uunet.uu.net
  592. Date: 29 Oct 90 13:12:45 GMT
  593. Reply-To: std-unix@uunet.uu.net
  594. To: std-unix@uunet.uu.net
  595.  
  596. Submitted-by: addw@phcomp.co.uk (Alain Williams)
  597.  
  598. > I agree; it makes things like 
  599. >     join <(prog1) <(prog2) > joined-output-of-progs-1-and-2
  600. > possible.
  601. Such things are possible *now*, you don't need /dev/fd to do it, just an
  602. intelligent shell that doesn't mind making & destroying fifos.
  603.  
  604. Anyway, the above wouldn't work with a straight /dev/fd as has been talked about
  605. here recently. Why ? The trouble is that if /dev/fd contains files with
  606. names "0", "1", ... "19", the programs prog1 & prog2 would both have a file
  607. /dev/fd/1 as their stdout, join would see another /dev/fd/1.
  608.  
  609. What is really needed to do what is suggested above is for /proc to contain
  610. an fd directory, thus the command line above would be ``re written'' by the
  611. shell to something like:
  612.  
  613.     join /proc/1234/fd/1 /proc/1235/fd/1 > joined-output-of-progs-1-and-2
  614. (where 1234 & 1235 are the process ids of prog1 and prog2).
  615.  
  616. If we adopt the /proc/nnn/fd idea, more questions are raised, for instance what
  617. are the file permissions on /proc/nnn/fd ?
  618.  
  619. Let me remind the original purpose for which /dev/fd was proposed:
  620. provide a mechanism whereby programs could handle `-' to mean stdin/out
  621. as does cat, but without trying.
  622.  
  623. Alain Williams
  624.  
  625. +44 734 461232
  626.  
  627. phLOGIN our Turnkey Security Login utility is available NOW - ask me for info.
  628.  
  629. Volume-Number: Volume 22, Number 7
  630.  
  631. From jsq@cs.utexas.edu  Mon Oct 29 15:25:04 1990
  632. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  633.     id AA06982; Mon, 29 Oct 90 15:25:04 -0500
  634. Posted-Date: 29 Oct 90 18:26:01 GMT
  635. Received: by cs.utexas.edu (5.64/1.82) 
  636. From: arnold%audiofax.com@mathcs.emory.edu (Arnold Robbins)
  637. Newsgroups: comp.std.unix
  638. Subject: Re: File system name space
  639. Keywords: More Info Please
  640. Message-Id: <14103@cs.utexas.edu>
  641. References: <13132@cs.utexas.edu> <13219@cs.utexas.edu> <13689@cs.utexas.edu> <13775@cs.utexas.edu> <13878@cs.utexas.edu> <14012@cs.utexas.edu> <14014@cs.utexas.edu> <13878@cs.utexas.edu>,
  642. Sender: jsq@cs.utexas.edu
  643. Reply-To: arnold@audiofax.com
  644. Organization: AudioFAX Inc., Atlanta
  645. X-Submissions: std-unix@uunet.uu.net
  646. Date: 29 Oct 90 18:26:01 GMT
  647. To: std-unix@uunet.uu.net
  648.  
  649. Submitted-by: arnold%audiofax.com@mathcs.emory.edu (Arnold Robbins)
  650.  
  651. In article <13878@cs.utexas.edu>, arnold@audiofax.com (that's me) writes
  652. lots of stuff about the wonders of /dev/fd, including this point:
  653.  
  654. >|>   Opening /dev/fd/7 is equivalent to doing a dup(7);
  655.  
  656. In article <14012@cs.utexas.edu> craig@b11.ingr.com (Craig Presson) writes:
  657. >But for those of us without access to every Unix manual ever published
  658. >(I do have a Version 7 Volume 1), could you fill in a bit more on the
  659. >semantics of this hybrid /dev entry? Like what do you get when you open
  660. >"/dev/fd/7" and there is no open file using that slot? Does the system
  661. >make these entries "invisible" to processes not using them? Do you just
  662. >get a classic "It's an error from Unix, you're not supposed to understand"
  663. >type return? Or am I Missing Something?
  664.  
  665. What happens when you do a dup(7) and 7 isn't a valid file descriptor?
  666. It returns -1 and errno is set to EBADF.   So, something along those lines
  667. happens if you open /dev/fd/7, and 7 isn't open.
  668.  
  669. Now, in article <14014@cs.utexas.edu> addw@phcomp.co.uk (Alain Williams) writes:
  670.  
  671. >What happens if you do an ``ls -l'' on /dev/fd, do you see the fds which are
  672. >open to the ls program or all possible fds, even those which aren't opened ?
  673.  
  674. Yes; the files in /dev/fd are character device files, with major and minor
  675. device numbers, just like the entries in /dev for all your ttys.  The major
  676. number is for the fd device driver routine, and the minor number indicates
  677. which fd you're trying to open.  It is a different animal than the /proc,
  678. which is mounted on an in-kernel filesystem.
  679.  
  680. >> (In fact, in V8 - V10, /dev/stdin, /dev/stdout, /dev/stderr, and /dev/tty are
  681. >> links to /dev/fd/0, /dev/fd/1, /dev/fd/2, and /dev/fd/3, respectively.  The
  682. >> last, in particular, is a nice generalization, and eliminates an ugly special
  683. >> case in the kernel; init just does one more dup.)
  684. >
  685. >I always thought that /dev/tty was a means of getting hold of the tty when
  686. >you couldn't be certain that 0,1,2 was connected to it. What you are really
  687. >saying is that the UNIX convention of 0,1,2 having ``pre defined uses'' be
  688. >extended to `3 always connected to the terminal and used for nothing else'.
  689. >It isn't a /dev/fd issue, it is a UNIX convention issue.
  690.  
  691. Exactly!  One of the major thrusts of recent versions of Research Unix has
  692. been to simplify, and become as minimalist as possible.  By having fd 3
  693. be the tty and /dev/tty a link to /dev/fd/3, the code in the kernel for
  694. doing /dev/tty goes away.
  695.  
  696. >The other thing is the /dev/tty is a guaranteed way of getting the terminal
  697. >& not something else (that is why the passwd program uses /dev/tty).
  698.  
  699. In general, unless someone went to the trouble, fd 3 will be attached to the
  700. terminal, so opening /dev/tty is pretty safe.  Nothing's foolproof; it's
  701. entirely possible that a process can get started off with no controlling
  702. terminal if its parent closed all open files and did the appropriate
  703. incantations to set the process group.  You're no worse off than before
  704. when /dev/tty was built into the kernel.
  705. -- 
  706. Arnold Robbins                AudioFAX, Inc. | Laundry increases
  707. 2000 Powers Ferry Road, #200 / Marietta, GA. 30067     | exponentially in the
  708. INTERNET: arnold@audiofax.com Phone:   +1 404 933 7612 | number of children.
  709. UUCP:      emory!audfax!arnold Fax-box: +1 404 618 4581 |   -- Miriam Robbins
  710.  
  711. Volume-Number: Volume 22, Number 8
  712.  
  713. From jsq@cs.utexas.edu  Mon Oct 29 19:14:15 1990
  714. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  715.     id AA01721; Mon, 29 Oct 90 19:14:15 -0500
  716. Posted-Date: 29 Oct 90 22:44:27 GMT
  717. Received: by cs.utexas.edu (5.64/1.82) 
  718. From: gwyn@smoke.brl.mil (Doug Gwyn)
  719. Newsgroups: comp.std.unix
  720. Subject: Re: File system name space
  721. Message-Id: <14110@cs.utexas.edu>
  722. References: <13878@cs.utexas.edu> <14014@cs.utexas.edu> <14101@cs.utexas.edu>
  723. Sender: jsq@cs.utexas.edu
  724. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  725. X-Submissions: std-unix@uunet.uu.net
  726. Date: 29 Oct 90 22:44:27 GMT
  727. Reply-To: std-unix@uunet.uu.net
  728. To: std-unix@uunet.uu.net
  729.  
  730. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  731.  
  732. In article <14101@cs.utexas.edu> seanf@sco.COM (Sean Fagan) writes:
  733. >>What happens if you do an ``ls -l'' on /dev/fd, ...
  734. >You get something that looks like ...
  735.  
  736. That's the most common implementation.  However, /dev/fd could also be
  737. implemented as a filesystem type of its own, and I'd actually prefer
  738. that.  Then an "ls /dev/fd" would show just the in-use file descriptors.
  739.  
  740. Volume-Number: Volume 22, Number 9
  741.  
  742. From jsq@cs.utexas.edu  Tue Oct 30 11:06:18 1990
  743. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  744.     id AA25358; Tue, 30 Oct 90 11:06:18 -0500
  745. Posted-Date: 30 Oct 90 06:37:16 GMT
  746. Received: by cs.utexas.edu (5.64/1.82) 
  747. From: jfh@rpp386.cactus.org (John F. Haugh II)
  748. Newsgroups: comp.std.unix
  749. Subject: Re: File system name space
  750. Message-Id: <14134@cs.utexas.edu>
  751. References: <13878@cs.utexas.edu> <14014@cs.utexas.edu> <14101@cs.utexas.edu> <14110@cs.utexas.edu>
  752. Sender: jsq@cs.utexas.edu
  753. Reply-To: jfh@rpp386.cactus.org (John F. Haugh II)
  754. Organization: Lone Star Cafe and BBS Service
  755. X-Submissions: std-unix@uunet.uu.net
  756. Date: 30 Oct 90 06:37:16 GMT
  757. To: std-unix@uunet.uu.net
  758.  
  759. Submitted-by: jfh@rpp386.cactus.org (John F. Haugh II)
  760.  
  761. In article <14110@cs.utexas.edu> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  762. >That's the most common implementation.  However, /dev/fd could also be
  763. >implemented as a filesystem type of its own, and I'd actually prefer
  764. >that.  Then an "ls /dev/fd" would show just the in-use file descriptors.
  765.  
  766. Which brings up the issue of "whose in-use file descriptors?".
  767. It would work just fine for the application itself, but "ls" would
  768. be useless if you define "in-use" to be the current process' in-use
  769. descriptors.  Gee, how many times do you want to see which file
  770. descriptors "ls" has open.
  771.  
  772. This works with /proc because processes are system wide, while file
  773. descriptors are per-process.  My fd0 has nothing in common with your
  774. fd0 - so either I distinguish between my fd0 and your fd0 and get
  775. stuck with fondling every user-page in the system, or I just cop out.
  776.  
  777. A more complex inplementation buys little or nothing in terms of
  778. function at a very high cost in terms of overhead.
  779. -- 
  780. John F. Haugh II                             UUCP: ...!cs.utexas.edu!rpp386!jfh
  781. Ma Bell: (512) 832-8832                           Domain: jfh@rpp386.cactus.org
  782. "SCCS, the source motel!  Programs check in and never check out!"
  783.         -- Ken Thompson
  784.  
  785. Volume-Number: Volume 22, Number 10
  786.  
  787. From jsq@cs.utexas.edu  Tue Oct 30 11:55:29 1990
  788. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  789.     id AA17299; Tue, 30 Oct 90 11:55:29 -0500
  790. Posted-Date: 30 Oct 90 15:12:19 GMT
  791. Received: by cs.utexas.edu (5.64/1.82) 
  792. From: arnold@mathcs.emory.edu (Arnold Robbins)
  793. Newsgroups: comp.std.unix
  794. Subject: Re: File system name space
  795. Message-Id: <14137@cs.utexas.edu>
  796. References: <13878@cs.utexas.edu> <14011@cs.utexas.edu> <14012@cs.utexas.edu> <14014@cs.utexas.edu> <14102@cs.utexas.edu>
  797. Sender: jsq@cs.utexas.edu
  798. Reply-To: arnold@audiofax.com
  799. Organization: AudioFAX Inc., Atlanta
  800. X-Submissions: std-unix@uunet.uu.net
  801. Date: 30 Oct 90 15:12:19 GMT
  802. To: std-unix@uunet.uu.net
  803.  
  804. Submitted-by: arnold@mathcs.emory.edu (Arnold Robbins)
  805.  
  806. In article <14102@cs.utexas.edu> addw@phcomp.co.uk (Alain Williams) writes:
  807. >> I agree; it makes things like 
  808. >> 
  809. >>     join <(prog1) <(prog2) > joined-output-of-progs-1-and-2
  810. >> 
  811. >> possible.
  812. >Such things are possible *now*, you don't need /dev/fd to do it, just an
  813. >intelligent shell that doesn't mind making & destroying fifos.
  814.  
  815. Yes, up to a point.  What happens though if you do
  816.  
  817.     nohup join <(prog1) <(prog2) > joined-output-of-progs-1-and-2 &
  818.  
  819. and then log out?  The temporary fifos will still be around when the
  820. program finally exits and the shell won't be around to clean them up.
  821. A cron job of some sort could maybe do it, but it's still not as clean
  822. as /dev/fd.
  823.  
  824. >Anyway, the above wouldn't work with a straight /dev/fd as has been talked about
  825. >here recently. Why ? The trouble is that if /dev/fd contains files with
  826. >names "0", "1", ... "19", the programs prog1 & prog2 would both have a file
  827. >/dev/fd/1 as their stdout, join would see another /dev/fd/1.
  828.  
  829. No.  The programs have their respective file descriptors 1 attached as pipes,
  830. by the shell via dup, to other "files" in /dev/fd.  The join program would see
  831.  
  832.     join /dev/fd/4 /dev/fd/5
  833.  
  834. on its command line.  The scheme requires both /dev/fd and knowledge by the
  835. shell to work completely.  Graphically, you have
  836.  
  837.     prog1[fd1]>------\
  838.               \
  839.              join[fd4][fd5][fd1]--> output
  840.                 /
  841.     prog2[fd1]>-----------/
  842.  
  843. >What is really needed to do what is suggested above is for /proc to contain
  844. >an fd directory, thus the command line above would be ``re written'' by the
  845. >shell to something like:
  846. >
  847. >    join /proc/1234/fd/1 /proc/1235/fd/1 > joined-output-of-progs-1-and-2
  848. >(where 1234 & 1235 are the process ids of prog1 and prog2).
  849. >
  850. >If we adopt the /proc/nnn/fd idea, more questions are raised, for instance what
  851. >are the file permissions on /proc/nnn/fd ?
  852.  
  853. As explained above, this already happens.  Permissions on /dev/fd/* should be
  854. 666 since no process can affect any other's file descriptors.
  855.  
  856. >Let me remind the original purpose for which /dev/fd was proposed:
  857. >provide a mechanism whereby programs could handle `-' to mean stdin/out
  858. >as does cat, but without trying.
  859.  
  860. That's exactly what existing implementations do.  Having ported a version of
  861. a /dev/fd driver into NFS based systems, and used KSH with process substitution
  862. turned on, I can say from experience that it works just fine.  It is such
  863. a nice thing to have that I make gawk (gnu awk) recognize file names of that
  864. type internally and "do the right thing" even if the underlying system does
  865. not support /dev/fd.
  866. -- 
  867. Arnold Robbins                AudioFAX, Inc. | Laundry increases
  868. 2000 Powers Ferry Road, #200 / Marietta, GA. 30067     | exponentially in the
  869. INTERNET: arnold@audiofax.com Phone:   +1 404 933 7612 | number of children.
  870. UUCP:      emory!audfax!arnold Fax-box: +1 404 618 4581 |   -- Miriam Robbins
  871.  
  872. Volume-Number: Volume 22, Number 11
  873.  
  874. From jsq@cs.utexas.edu  Tue Oct 30 23:51:54 1990
  875. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  876.     id AA05704; Tue, 30 Oct 90 23:51:54 -0500
  877. Posted-Date: 30 Oct 90 09:01:59 GMT
  878. Received: by cs.utexas.edu (5.64/1.82) 
  879. From: ske@pkmab.se (Kristoffer Eriksson)
  880. Newsgroups: comp.std.unix
  881. Subject: Re: File system name space (/dev/fd)
  882. Message-Id: <14161@cs.utexas.edu>
  883. References: <14012@cs.utexas.edu> <14014@cs.utexas.edu> <14102@cs.utexas.edu>
  884. Sender: jsq@cs.utexas.edu
  885. Organization: Peridot Konsult i Mellansverige AB, Oerebro, Sweden
  886. X-Submissions: std-unix@uunet.uu.net
  887. Date: 30 Oct 90 09:01:59 GMT
  888. Reply-To: std-unix@uunet.uu.net
  889. To: std-unix@uunet.uu.net
  890.  
  891. Submitted-by: ske@pkmab.se (Kristoffer Eriksson)
  892.  
  893. In article <14102@cs.utexas.edu> addw@phcomp.co.uk (Alain Williams) writes:
  894.  
  895. >>     join <(prog1) <(prog2) > joined-output-of-progs-1-and-2
  896.  
  897. >Anyway, the above wouldn't work with a straight /dev/fd as has been talked about
  898. >here recently. Why ? The trouble is that if /dev/fd contains files with
  899. >names "0", "1", ... "19", the programs prog1 & prog2 would both have a file
  900. >/dev/fd/1 as their stdout, join would see another /dev/fd/1.
  901.  
  902. That's not how you do it. Prog1 and prog2 just output to their standard
  903. outputs, as they always do, and the shell sets up pipes from prog1 and prog2
  904. to join. The /dev/fd names for these pipes, as seen by join, are then passed
  905. as argv[] parameters to join, to make it read them. Prog1 and prog2 never
  906. see them.
  907. -- 
  908. Kristoffer Eriksson, Peridot Konsult AB, Hagagatan 6, S-703 40 Oerebro, Sweden
  909. Phone: +46 19-13 03 60  !  e-mail: ske@pkmab.se
  910. Fax:   +46 19-11 51 03  !  or ...!{uunet,mcsun}!sunic.sunet.se!kullmar!pkmab!ske
  911.  
  912. Volume-Number: Volume 22, Number 12
  913.  
  914. From jsq@cs.utexas.edu  Tue Oct 30 23:56:14 1990
  915. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  916.     id AA07278; Tue, 30 Oct 90 23:56:14 -0500
  917. Posted-Date: 30 Oct 90 09:12:25 GMT
  918. Received: by cs.utexas.edu (5.64/1.82) 
  919. From: ske@pkmab.se (Kristoffer Eriksson)
  920. Newsgroups: comp.std.unix
  921. Subject: /dev/tty implemented as /dev/fd/3
  922. Summary: Differences from the old implementation?
  923. Message-Id: <14162@cs.utexas.edu>
  924. References: <14014@cs.utexas.edu> <13878@cs.utexas.edu> <14103@cs.utexas.edu>
  925. Sender: jsq@cs.utexas.edu
  926. Organization: Peridot Konsult i Mellansverige AB, Oerebro, Sweden
  927. X-Submissions: std-unix@uunet.uu.net
  928. Date: 30 Oct 90 09:12:25 GMT
  929. Reply-To: std-unix@uunet.uu.net
  930. To: std-unix@uunet.uu.net
  931.  
  932. Submitted-by: ske@pkmab.se (Kristoffer Eriksson)
  933.  
  934. [ I don't quite understand why the submittor wants to split this from the
  935. thread of Re: File system name space, but let's give it a try and see what
  936. happens, eh?  -mod ]
  937.  
  938. In article <14103@cs.utexas.edu> arnold@audiofax.com writes:
  939. >In general, unless someone went to the trouble, fd 3 will be attached to the
  940. >terminal, so opening /dev/tty is pretty safe.  Nothing's foolproof; [...]
  941. >You're no worse off than before when /dev/tty was built into the kernel.
  942.  
  943. If you have a program that closes only fd 3, this implementation will behave
  944. differently from the old /dev/tty device implementation, won't it? You will
  945. not be able to reach the controlling terminal by a guaranteed route, in spite
  946. of the fact that it is still available on other fd-s. Or is the controlling
  947. terminal concept implemented in such a way that closing fd 3 is the same as
  948. disassociating from the controlling terminal (so you won't be bother with
  949. terminal interrupts and such) ?
  950. -- 
  951. Kristoffer Eriksson, Peridot Konsult AB, Hagagatan 6, S-703 40 Oerebro, Sweden
  952. Phone: +46 19-13 03 60  !  e-mail: ske@pkmab.se
  953. Fax:   +46 19-11 51 03  !  or ...!{uunet,mcsun}!sunic.sunet.se!kullmar!pkmab!ske
  954.  
  955. Volume-Number: Volume 22, Number 13
  956.  
  957. From jsq@cs.utexas.edu  Wed Oct 31 11:15:02 1990
  958. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  959.     id AA21599; Wed, 31 Oct 90 11:15:02 -0500
  960. Posted-Date: 31 Oct 90 01:28:27 GMT
  961. Received: by cs.utexas.edu (5.64/1.82) 
  962. From: peter@ficc.ferranti.com (Peter da Silva)
  963. Newsgroups: comp.std.unix
  964. Subject: Re: File system name space
  965. Message-Id: <14175@cs.utexas.edu>
  966. References: <13878@cs.utexas.edu> <14011@cs.utexas.edu> <14012@cs.utexas.edu> <14014@cs.utexas.edu> <14102@cs.utexas.edu> <14137@cs.utexas.edu>
  967. Sender: jsq@cs.utexas.edu
  968. Reply-To: peter@ficc.ferranti.com (Peter da Silva)
  969. Organization: Xenix Support, FICC
  970. X-Submissions: std-unix@uunet.uu.net
  971. Date: 31 Oct 90 01:28:27 GMT
  972. To: std-unix@uunet.uu.net
  973.  
  974. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  975.  
  976. In article <14137@cs.utexas.edu> arnold@audiofax.com writes:
  977. >     nohup join <(prog1) <(prog2) > joined-output-of-progs-1-and-2 &
  978.  
  979. > and then log out?  The temporary fifos will still be around when the
  980. > program finally exits and the shell won't be around to clean them up.
  981.  
  982. You'd have to nohup the whole thing in either case because you'll clobber
  983. prog1 and prog2 when you log out. So this is a non-problem.
  984. -- 
  985. Peter da Silva.   `-_-'
  986. +1 713 274 5180.   'U`
  987. peter@ferranti.com
  988.  
  989. Volume-Number: Volume 22, Number 14
  990.  
  991. From jsq@cs.utexas.edu  Wed Oct 31 20:11:30 1990
  992. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  993.     id AA26922; Wed, 31 Oct 90 20:11:30 -0500
  994. Posted-Date: 31 Oct 90 09:08:00 GMT
  995. Received: by cs.utexas.edu (5.64/1.82) 
  996. From: brnstnd@kramden.acf.nyu.edu (Dan Bernstein)
  997. Newsgroups: comp.std.unix
  998. Subject: Re: /dev/tty implemented as /dev/fd/3
  999. Message-Id: <14188@cs.utexas.edu>
  1000. References: <13878@cs.utexas.edu> <14103@cs.utexas.edu> <14162@cs.utexas.edu>
  1001. Sender: jsq@cs.utexas.edu
  1002. Organization: IR
  1003. X-Submissions: std-unix@uunet.uu.net
  1004. Date: 31 Oct 90 09:08:00 GMT
  1005. Reply-To: std-unix@uunet.uu.net
  1006. To: std-unix@uunet.uu.net
  1007.  
  1008. Submitted-by: brnstnd@kramden.acf.nyu.edu (Dan Bernstein)
  1009.  
  1010. In article <14162@cs.utexas.edu> ske@pkmab.se (Kristoffer Eriksson) writes:
  1011. > [ I don't quite understand why the submittor wants to split this from the
  1012. > thread of Re: File system name space, but let's give it a try and see what
  1013. > happens, eh?  -mod ]
  1014.  
  1015. It is a different issue. There are objective advantages to eliminating
  1016. /dev/tty, kernel controlling terminals, and POSIX sessions: the kernel
  1017. becomes noticeably smaller, the POSIX standard becomes several pages
  1018. thinner and a lot easier to implement, programmers no longer have to
  1019. worry about special system calls to manipulate the tty fd, non-orphaned
  1020. processes in orphaned process groups are not killed off unnecessarily,
  1021. etc.
  1022.  
  1023. Neither SunOS 4.1 nor Ultrix 4.0 correctly implements POSIX sessions.
  1024. In particular, both systems chop off access to the original /dev/tty
  1025. after a process setsid()s and opens a different controlling terminal.
  1026. This is clearly contrary to the intent of POSIX, as expressed in
  1027. B.7.1.1.4. It can be proven to be a violation of the standard, as this
  1028. removal of access is not defined by either implementation. Note that it
  1029. happens only with /dev/tty, not with the actual terminal file; so both
  1030. systems are also clearly in violation of the ctermid() definition.
  1031.  
  1032. The bugs I just described are solely responsible for the failure of my
  1033. pty program under SunOS 4.1 and Ultrix 4.0. (I will post a stopgap patch
  1034. by Friday.) If ctermid(), controlling terminals, and POSIX sessions were
  1035. not mandated by P1003.1, the Sun and DEC programmers wouldn't have
  1036. introduced these bugs into their latest operating systems. Isn't it
  1037. obvious that the tty system is a fruitful source of bugs? Shouldn't we
  1038. make every effort to simplify this area of UNIX?
  1039.  
  1040. v9 could easily adopt fd 3 because it is not a commercial operating
  1041. system. It will take a lot more care to introduce similar changes into,
  1042. e.g., BSD. I propose the following plan of action:
  1043.  
  1044.   1. In the next P1003.1 revision, add a feature test macro for cttys.
  1045.      Take *every single sentence in the standard* talking about POSIX
  1046.      sessions, cttys, or ctermid(), and make it conditional upon the
  1047.      system's optional support for cttys.
  1048.  
  1049.   2. Also change the definitions of ``foreground process group'' and
  1050.      ``background process group'' in case cttys are not supported. In
  1051.      BSD, those terms are relative to the tty you're trying to access.
  1052.      In POSIX, they are constant; a process is either in the foreground
  1053.      or in the background, depending only on its controlling terminal.
  1054.      The new definition would be the same as the old BSD definition.
  1055.  
  1056.   3. Add a new device, /dev/stdtty. Opening this device is equivalent to
  1057.      dup()ing fd 3. Notice the name ``standard tty''; this is to avoid
  1058.      confusion with ``controlling tty.'' stdio should support stdtty as
  1059.      well, though (unlike stdin/out/err) stdtty may by convention be
  1060.      closed.
  1061.  
  1062.   4. Change the few necessary programs (e.g., getty) to support the fd 3
  1063.      stdtty convention. In fact, my pty program already supports this
  1064.      convention, and the pty package includes patches for telnetd to
  1065.      support pty. Adding similar support to getty, rlogind, etc. will be
  1066.      just as easy. 
  1067.  
  1068.   5. Add a new device, /dev/ctty, equivalent to the current /dev/tty.
  1069.  
  1070.   6. Switch /dev/tty to be /dev/stdtty rather than /dev/ctty. See if
  1071.      anyone notices.
  1072.  
  1073.   7. Turn off the ctty feature, to remain compliant with POSIX.
  1074.      Eliminate controlling ttys, POSIX sessions, and so on from the
  1075.      kernel. Preserve the old behavior of ps by having it glance at fd 3
  1076.      inside the process u area---it already looks around enough in
  1077.      kernel memory.
  1078.  
  1079. > In article <14103@cs.utexas.edu> arnold@audiofax.com writes:
  1080. > >In general, unless someone went to the trouble, fd 3 will be attached to the
  1081. > >terminal, so opening /dev/tty is pretty safe.  Nothing's foolproof; [...]
  1082. > >You're no worse off than before when /dev/tty was built into the kernel.
  1083. > If you have a program that closes only fd 3, this implementation will behave
  1084. > differently from the old /dev/tty device implementation, won't it?
  1085.  
  1086. Yes, it will. So what?
  1087.  
  1088. > You will
  1089. > not be able to reach the controlling terminal by a guaranteed route, in spite
  1090. > of the fact that it is still available on other fd-s.
  1091.  
  1092. Who cares?
  1093.  
  1094. There has not been a ``guaranteed route'' to reach the controlling
  1095. terminal, ever since BSD introduced TIOCEXCL. Opening /dev/tty and
  1096. sending a TIOCNOTTY down it is not reliable, because /dev/tty may not be
  1097. openable. That's right: there is *no* guaranteed way to dissociate from
  1098. your controlling terminal. close(3) is a better solution.
  1099.  
  1100. Where is this glaring need for a process to find its controlling tty?
  1101. Why shouldn't it be easy for the user to control, using the same fd
  1102. mechanisms as any other redirection? The argument that ``passwd needs to
  1103. talk to the user's tty, reliably'' has been moot ever since pseudo-ttys
  1104. appeared.
  1105.  
  1106. What is wrong with the concept of a standard tty?
  1107.  
  1108. > Or is the controlling
  1109. > terminal concept implemented in such a way that closing fd 3 is the same as
  1110. > disassociating from the controlling terminal (so you won't be bother with
  1111. > terminal interrupts and such) ?
  1112.  
  1113. Well, there's no logical association between closing fd 3 and changing
  1114. your process group. Dissociating from the controlling terminal takes two
  1115. system calls: close(3) and setpgrp(0,0). Attaching to a new one means
  1116. open()ing it into fd 3, and then setting process groups appropriately.
  1117. There's simply no reason that the ``controlling terminal'' of a process
  1118. (whatever that is) should affect the kernel's normal process group
  1119. handling.
  1120.  
  1121. ---Dan
  1122.  
  1123. Volume-Number: Volume 22, Number 15
  1124.  
  1125. From jsq@cs.utexas.edu  Thu Nov  1 10:21:18 1990
  1126. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  1127.     id AA27496; Thu, 1 Nov 90 10:21:18 -0500
  1128. Posted-Date: 1 Nov 90 02:29:47 GMT
  1129. Received: by cs.utexas.edu (5.64/1.82) 
  1130. From: gwyn@smoke.brl.mil (Doug Gwyn)
  1131. Newsgroups: comp.std.unix
  1132. Subject: Re: /dev/tty implemented as /dev/fd/3
  1133. Message-Id: <14205@cs.utexas.edu>
  1134. References: <14103@cs.utexas.edu> <14162@cs.utexas.edu> <14188@cs.utexas.edu>
  1135. Sender: jsq@cs.utexas.edu
  1136. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  1137. X-Submissions: std-unix@uunet.uu.net
  1138. Date: 1 Nov 90 02:29:47 GMT
  1139. Reply-To: std-unix@uunet.uu.net
  1140. To: std-unix@uunet.uu.net
  1141.  
  1142. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  1143.  
  1144. In article <14188@cs.utexas.edu> brnstnd@kramden.acf.nyu.edu (Dan Bernstein) writes:
  1145. >It is a different issue. There are objective advantages to eliminating
  1146. >/dev/tty, kernel controlling terminals, and POSIX sessions: the kernel
  1147. >becomes noticeably smaller, the POSIX standard becomes several pages
  1148. >thinner and a lot easier to implement, programmers no longer have to
  1149. >worry about special system calls to manipulate the tty fd, non-orphaned
  1150. >processes in orphaned process groups are not killed off unnecessarily,
  1151. >etc.
  1152.  
  1153. I think the fundamental problem is that P1003 leaned too much in the
  1154. direction of "the system as seen by the user" as opposed to the system
  1155. as seen by applications.  Therefore, 1003.1 specified support for BSD-
  1156. like job control (as an option, but NBS made it mandatory in the FIPS).
  1157. But clearly BSD-like job control is a horrible kludge.  In a superior
  1158. environment with /proc and a good multiple-process-managing user
  1159. interface, better (and definitely cleaner) implementations of "job
  1160. control" are easy to accomplish.  It is the single-tty-channel model
  1161. that pretty much forced the signal-based design of the BSD approach,
  1162. along with the extra kernel support (that never was gotten fully right
  1163. in any implementation I've ever seen, although HP/UX may have been
  1164. close).
  1165.  
  1166. I agree with the sentiment that such kludgery should be phased out of
  1167. the system interface standard.
  1168.  
  1169. Volume-Number: Volume 22, Number 16
  1170.  
  1171. From jsq@cs.utexas.edu  Thu Nov  1 10:29:41 1990
  1172. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  1173.     id AA29376; Thu, 1 Nov 90 10:29:41 -0500
  1174. Posted-Date: 31 Oct 90 17:30:16 GMT
  1175. Received: by cs.utexas.edu (5.64/1.82) 
  1176. From: arnold@audiofax.com (Arnold Robbins)
  1177. Newsgroups: comp.std.unix
  1178. Subject: Re: File system name space
  1179. Message-Id: <14207@cs.utexas.edu>
  1180. References: <13878@cs.utexas.edu> <14011@cs.utexas.edu> <14012@cs.utexas.edu> <14014@cs.utexas.edu> <14102@cs.utexas.edu> <14137@cs.utexas.edu> <14175@cs.utexas.edu>
  1181. Sender: jsq@cs.utexas.edu
  1182. Organization: AudioFAX Inc., Atlanta
  1183. X-Submissions: std-unix@uunet.uu.net
  1184. Date: 31 Oct 90 17:30:16 GMT
  1185. Reply-To: std-unix@uunet.uu.net
  1186. To: std-unix@uunet.uu.net
  1187.  
  1188. Submitted-by: arnold@audiofax.com (Arnold Robbins)
  1189.  
  1190. >In article <14137@cs.utexas.edu> arnold@audiofax.com writes:
  1191. >>     nohup join <(prog1) <(prog2) > joined-output-of-progs-1-and-2 &
  1192. >
  1193. >> and then log out?  The temporary fifos will still be around when the
  1194. >> program finally exits and the shell won't be around to clean them up.
  1195.  
  1196. In article <14175@cs.utexas.edu> you write:
  1197. >Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  1198. >You'd have to nohup the whole thing in either case because you'll clobber
  1199. >prog1 and prog2 when you log out. So this is a non-problem.
  1200.  
  1201. I didn't think about that, but it's still a problem.  Consider:
  1202.  
  1203.     nohup join <(nohup prog1) <(nohup prog2) > joined-output &
  1204.  
  1205. I admit to the feasibility of using temporary fifos for process substitution.
  1206. It is more work than /dev/fd, but doable.  /dev/fd, though, does make the
  1207. whole thing much cleaner.  And it still provides things like
  1208.  
  1209.     $ ln -s /dev/stdin foo.c
  1210.     $ cc foo.c
  1211.     main () { printf("hello, world\n");
  1212.     ^D
  1213.     $ a.out
  1214.     hello, world
  1215.  
  1216. I'm not on a crusade here or anything --- I simply think /dev/fd is a neat
  1217. idea and I'd like to see it become commonplace.  I don't know how much more
  1218. there is to say on the subject...
  1219. -- 
  1220. Arnold Robbins                AudioFAX, Inc. | Laundry increases
  1221. 2000 Powers Ferry Road, #200 / Marietta, GA. 30067     | exponentially in the
  1222. INTERNET: arnold@audiofax.com Phone:   +1 404 933 7612 | number of children.
  1223. UUCP:      emory!audfax!arnold Fax-box: +1 404 618 4581 |   -- Miriam Robbins
  1224.  
  1225. Volume-Number: Volume 22, Number 17
  1226.  
  1227. From jsq@cs.utexas.edu  Thu Nov  1 10:33:16 1990
  1228. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  1229.     id AA00723; Thu, 1 Nov 90 10:33:16 -0500
  1230. Posted-Date: 31 Oct 90 17:22:38 GMT
  1231. Received: by cs.utexas.edu (5.64/1.82) 
  1232. From: arnold%audiofax.com@mathcs.emory.edu (Arnold Robbins)
  1233. Newsgroups: comp.std.unix
  1234. Subject: Re: /dev/tty implemented as /dev/fd/3
  1235. Message-Id: <14208@cs.utexas.edu>
  1236. References: <14014@cs.utexas.edu> <13878@cs.utexas.edu> <14103@cs.utexas.edu> <14162@cs.utexas.edu>
  1237. Sender: jsq@cs.utexas.edu
  1238. Reply-To: arnold@audiofax.com
  1239. Organization: AudioFAX Inc., Atlanta
  1240. X-Submissions: std-unix@uunet.uu.net
  1241. Date: 31 Oct 90 17:22:38 GMT
  1242. To: std-unix@uunet.uu.net
  1243.  
  1244. Submitted-by: arnold%audiofax.com@mathcs.emory.edu (Arnold Robbins)
  1245.  
  1246. In article <14162@cs.utexas.edu> ske@pkmab.se (Kristoffer Eriksson) writes:
  1247. >If you have a program that closes only fd 3, this implementation will behave
  1248. >differently from the old /dev/tty device implementation, won't it? You will
  1249. >not be able to reach the controlling terminal by a guaranteed route, in spite
  1250. >of the fact that it is still available on other fd-s.
  1251.  
  1252. This is correct.  It's mostly irrelevant though; in current Unix systems if
  1253. you do the right magic you can't get use /dev/tty even though the terminal is
  1254. still available on the currently open file descriptors.  Six of one, a
  1255. half-dozen of the other, as they say.
  1256.  
  1257. >Or is the controlling
  1258. >terminal concept implemented in such a way that closing fd 3 is the same as
  1259. >disassociating from the controlling terminal (so you won't be bother with
  1260. >terminal interrupts and such) ?
  1261.  
  1262. I don't think this is the case.  V10 still has the concept of a "controlling
  1263. terminal", but I strongly doubt that the kernel knows it's on fd 3.  However,
  1264. the controlling terminal isn't as pervasive a concept in Research Unix as it
  1265. is in BSD or System V.  (In BSD, if you disassociate yourself from the
  1266. controlling terminal, and then open some random /dev/tty<whatever>, it
  1267. automatically becomes your controlling terminal.  In V10 you'd have to
  1268. explicitly make that happen.)
  1269.  
  1270. Let me make a clarifying statement.  There are two things under discussion.
  1271. 1) the usefulness of /dev/fd, 2) the usefulness of having /dev/tty be
  1272. /dev/fd/3.   Everyone who's actually used /dev/fd feels it's useful, so
  1273. we can take point 1) as a given for a nice feature.  Point 2) has its
  1274. plusses and minuses, but, IMO, the minuses don't outweigh the plusses.
  1275. Also, if it's good enough for Dennis Ritchie, it's probably good enough
  1276. for me. :-)
  1277. -- 
  1278. Arnold Robbins                AudioFAX, Inc. | Laundry increases
  1279. 2000 Powers Ferry Road, #200 / Marietta, GA. 30067     | exponentially in the
  1280. INTERNET: arnold@audiofax.com Phone:   +1 404 933 7612 | number of children.
  1281. UUCP:      emory!audfax!arnold Fax-box: +1 404 618 4581 |   -- Miriam Robbins
  1282.  
  1283. Volume-Number: Volume 22, Number 18
  1284.  
  1285. From jsq@cs.utexas.edu  Mon Nov  5 22:49:35 1990
  1286. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  1287.     id AA26916; Mon, 5 Nov 90 22:49:35 -0500
  1288. Posted-Date: 6 Nov 90 03:49:03 GMT
  1289. Received: by cs.utexas.edu (5.64/1.82) 
  1290. From: jsq@tic.com (John S. Quarterman)
  1291. Newsgroups: comp.std.unix
  1292. Subject: Re: USENIX Standards Funding Decisions
  1293. Message-Id: <14352@cs.utexas.edu>
  1294. References: <106937@uunet.UU.NET> <13100@cs.utexas.edu> <13158@cs.utexas.edu> <13181@cs.utexas.edu>
  1295. Sender: jsq@cs.utexas.edu
  1296. Organization: TIC
  1297. X-Submissions: std-unix@uunet.uu.net
  1298. Date: 6 Nov 90 03:49:03 GMT
  1299. Reply-To: std-unix@uunet.uu.net
  1300. To: std-unix@uunet.uu.net
  1301.  
  1302. Submitted-by: jsq@tic.com (John S. Quarterman)
  1303.  
  1304. The previous USENIX funding for most standards activities expired on
  1305. Halloween (see <106937@uunet.UU.NET>).  The WG15 reports were funded as
  1306. requested back in September.  The snitch report editor has apparently
  1307. made an arrangement for the interim until the next board meeting in
  1308. January.  Efforts are being made to produce proposals for funding other
  1309. USENIX standards activities.  However, since the USENIX board has
  1310. expressed philosophical objection to funding moderation of a newsgroup,
  1311. it is very unlikely that there will ever be support from them for
  1312. comp.std.unix.
  1313.  
  1314. For the moment, I have chosen to continue as moderator while seeking
  1315. support from other quarters.  Preliminary thanks to those who are
  1316. already looking into it.
  1317.  
  1318. If no funding materializes, I simply cannot afford to continue
  1319. taking adequate time to moderate the newsgroup properly, and
  1320. we will have to consider opening nominations for a volunteer
  1321. moderator and voting on it by the usual USENET procedures.
  1322.  
  1323. I strongly recommend keeping comp.std.unix moderated, because:
  1324. 1) The original request for the newsgroup, from IEEE 1003 back
  1325. in 1985 (the first article was posted 25 June 1985), made it
  1326. clear that most standards participants would only read a
  1327. moderated newsgroup.
  1328. 2) Comparing 1989 (unfunded) to 1990 (funded), the increased signal
  1329. to noise ratio and the increased number of interesting postings
  1330. (partly attributable also to the snitch reports, themselves due
  1331. to funding of editing) supports the original request.
  1332. 3) See comp.unix.wizards for what is likely to happen to an
  1333. unmoderated comp.std.unix.
  1334.  
  1335. Meanwhile, there will be a guest moderator, John B. Chambers,
  1336. while I am overseas 6-27 November.  Please send submissions
  1337. to the usual address, i.e., std-unix@uunet.uu.net.
  1338.  
  1339. John S. Quarterman, moderator, comp.std.unix and std-unix@uunet.uu.net
  1340. --
  1341. John S. Quarterman
  1342. Texas Internet Consulting    jsq@tic.com    tel: +1-512-320-9031
  1343. 701 Brazos, Suite 500      uunet!longway!jsq    fax: +1-512-320-5821
  1344. Austin, TX 78701
  1345.  
  1346. Volume-Number: Volume 22, Number 19
  1347.  
  1348. From jbc@cs.utexas.edu  Thu Nov  8 16:36:10 1990
  1349. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  1350.     id AA00490; Thu, 8 Nov 90 16:36:10 -0500
  1351. Posted-Date: 7 Nov 90 21:55:44 GMT
  1352. Received: by cs.utexas.edu (5.64/1.82) 
  1353. From: seanf@sco.COM (Sean Fagan)
  1354. Newsgroups: comp.std.unix
  1355. Subject: POSIX and symbolic links
  1356. Message-Id: <14450@cs.utexas.edu>
  1357. Sender: jbc@cs.utexas.edu
  1358. Organization: The Santa Cruz Operation, Inc.
  1359. X-Submissions: std-unix@uunet.uu.net
  1360. Date: 7 Nov 90 21:55:44 GMT
  1361. Reply-To: std-unix@uunet.uu.net
  1362. To: std-unix@uunet.uu.net
  1363.  
  1364. Submitted-by: seanf@sco.COM (Sean Fagan)
  1365.  
  1366. I've been reading the September 1990 draft of 1003.1a (D4), and have a
  1367. question about symbolic links.  The draft specifies that an open of a file
  1368. "foo" shall fail if opened with O_CREAT and O_EXCL *both* set (which makes
  1369. sense).
  1370.  
  1371. But what happens if only O_CREAT is set?  To make it interesting, let's
  1372. throw in O_TRUNC as well.  That is:
  1373.  
  1374.     fd = open ("foo", O_CREAT|O_TRUNC|O_WRONLY, 0666);
  1375.  
  1376. Will the system follow the link, truncating whatever foo points to, if it
  1377. exists, or creating it otherwise, or will it truncate foo, creating a
  1378. regular file called "foo" with mode 0666&~umask?
  1379.  
  1380. My initial guess was that it would follow the link.  However, I can think of
  1381. cases where you would not want it to do so (someone then prompted, "Well, if
  1382. the sticky bit of the symlink is set, then..." 8-)).
  1383.  
  1384. Thanks...
  1385.  
  1386. -- 
  1387. -----------------+
  1388. Sean Eric Fagan  | "*Never* knock on Death's door:  ring the bell and 
  1389. seanf@sco.COM    |   run away!  Death hates that!"
  1390. uunet!sco!seanf  |     -- Dr. Mike Stratford (Matt Frewer, "Doctor, Doctor")
  1391. (408) 458-1422   | Any opinions expressed are my own, not my employers'.
  1392.  
  1393.  
  1394.  
  1395.  
  1396. From jbc@cs.utexas.edu  Tue Nov 13 11:15:49 1990
  1397. Received: from CS.UTEXAS.EDU by uunet.uu.net (5.61/1.14) with SMTP 
  1398.     id AA15887; Tue, 13 Nov 90 11:15:49 -0500
  1399. Posted-Date: 13 Nov 90 15:30:33 GMT
  1400. Received: by cs.utexas.edu (5.64/1.82) 
  1401. From: cazier@mbunix.mitre.org (Cazier)
  1402. Newsgroups: comp.std.unix
  1403. Subject: POSIX.1 requires shell???
  1404. Message-Id: <14613@cs.utexas.edu>
  1405. Sender: jbc@cs.utexas.edu
  1406. Organization: The MITRE Corp., Bedford, MA
  1407. X-Submissions: std-unix@uunet.uu.net
  1408. Date: 13 Nov 90 15:30:33 GMT
  1409. Reply-To: std-unix@uunet.uu.net
  1410. To: std-unix@uunet.uu.net
  1411.  
  1412. Submitted-by: cazier@mbunix.mitre.org (Cazier)
  1413.  
  1414. Does POSIX.1 require that a shell interface capability exist? I know that
  1415. POSIX.2 is still being worked, but is it possible that dot 1 does not
  1416. require dot 2, but rather simply allows that if a shell is available it
  1417. will be according to dot 2?
  1418.  
  1419.  
  1420. Volume-Number: Volume 22, Number 21
  1421.  
  1422.  
  1423. From jbc@cs.utexas.edu  Wed Nov 14 13:27:57 1990
  1424. Received: from CS.UTEXAS.EDU by uunet.uu.net (5.61/1.14) with SMTP 
  1425.     id AA14857; Wed, 14 Nov 90 13:27:57 -0500
  1426. Posted-Date: 14 Nov 90 08:59:17 GMT
  1427. Received: by cs.utexas.edu (5.64/1.82) 
  1428. From: decot@hpisod2.cup.hp.com (Dave Decot)
  1429. Newsgroups: comp.std.unix
  1430. Subject: Re: POSIX.1 requires shell???
  1431. Message-Id: <14647@cs.utexas.edu>
  1432. References: <14613@cs.utexas.edu>
  1433. Sender: jbc@cs.utexas.edu
  1434. Organization: Hewlett Packard, Cupertino
  1435. X-Submissions: std-unix@uunet.uu.net
  1436. Date: 14 Nov 90 08:59:17 GMT
  1437. Reply-To: std-unix@uunet.uu.net
  1438. To: std-unix@uunet.uu.net
  1439.  
  1440. Submitted-by: decot@hpisod2.cup.hp.com (Dave Decot)
  1441.  
  1442. > Does POSIX.1 require that a shell interface capability exist? I know that
  1443. > POSIX.2 is still being worked, but is it possible that dot 1 does not
  1444. > require dot 2, but rather simply allows that if a shell is available it
  1445. > will be according to dot 2?
  1446.  
  1447. POSIX.1 does not require any shell interface capability to exist.  If one
  1448. is provided, it does not have to conform to POSIX.2 (unless, of course,
  1449. the system claims to conform to POSIX.2).
  1450.  
  1451. Dave Decot
  1452.  
  1453. Volume-Number: Volume 22, Number 22
  1454.  
  1455. From jbc@cs.utexas.edu  Thu Nov 15 12:38:19 1990
  1456. Received: from CS.UTEXAS.EDU by uunet.uu.net (5.61/1.14) with SMTP 
  1457.     id AA18413; Thu, 15 Nov 90 12:38:19 -0500
  1458. Posted-Date: 14 Nov 90 17:52:43 GMT
  1459. Received: by cs.utexas.edu (5.64/1.82) 
  1460. From: donn@hpfcrn.fc.hp.com (Donn Terry)
  1461. Newsgroups: comp.std.unix
  1462. Subject: Quick answers
  1463. Message-Id: <14686@cs.utexas.edu>
  1464. Sender: jbc@cs.utexas.edu
  1465. X-Submissions: std-unix@uunet.uu.net
  1466. Date: 14 Nov 90 17:52:43 GMT
  1467. Reply-To: std-unix@uunet.uu.net
  1468. To: std-unix@uunet.uu.net
  1469.  
  1470. Submitted-by: donn@hpfcrn.fc.hp.com (Donn Terry)
  1471.  
  1472. 1) With respect to the question from Sean Fagan about symbolic links.
  1473.    All this is (supposedly, anyway) answered in the new version of
  1474.    pathname resolution in 2.3.  Net result: it always follows the symlink.
  1475.    (The mental model is that instead of an i-number in a directory entry,
  1476.    you could have a name which is the body of the symbolic link.)
  1477.  
  1478. 2) With respect to the question from "Cazier": POSIX.1 is completely silent
  1479.    about a shell, except to the extent that it brings in Standard C by
  1480.    reference, and Standard C refers to system().  (And the C definition
  1481.    of system() doesn't say much!)  POSIX.1 is strictly from the C-language
  1482.    (currently) API point of view.
  1483.  
  1484. Donn Terry
  1485. (Speaking personally and only for myself.)
  1486.  
  1487. Volume-Number: Volume 22, Number 23
  1488.  
  1489. From jbc@cs.utexas.edu  Thu Nov 15 12:49:46 1990
  1490. Received: from CS.UTEXAS.EDU by uunet.uu.net (5.61/1.14) with SMTP 
  1491.     id AA23144; Thu, 15 Nov 90 12:49:46 -0500
  1492. Posted-Date: 14 Nov 90 13:17:03 GMT
  1493. Received: by cs.utexas.edu (5.64/1.82) 
  1494. From: domo@tsa.co.uk (Dominic Dunlop)
  1495. Newsgroups: comp.std.unix
  1496. Subject: Report on ISO POSIX meeting of October 1990
  1497. Summary: Ada bindings cast adrift
  1498. Message-Id: <14687@cs.utexas.edu>
  1499. Sender: jbc@cs.utexas.edu
  1500. Reply-To: domo@tsa.co.uk
  1501. Organization: The Standard Answer Ltd.
  1502. X-Submissions: std-unix@uunet.uu.net
  1503. Date: 14 Nov 90 13:17:03 GMT
  1504. To: std-unix@uunet.uu.net
  1505.  
  1506. Submitted-by: domo@tsa.co.uk (Dominic Dunlop)
  1507.  
  1508.  
  1509.  
  1510.           Report on ISO/IEC JTC1/SC22/WG15 (POSIX)
  1511.             Meeting of 23rd - 26th October, 1990
  1512.               Orcas Island, Washington, U.S.A.
  1513.  
  1514.               Dominic Dunlop -- domo@tsa.co.uk
  1515.  
  1516.                   The Standard Answer Ltd.
  1517.  
  1518.  
  1519.                         Introduction
  1520.  
  1521. Are you a regular reader?  I hope so, as this report on the
  1522. October meeting of Joint Technical Committee 1, Subcommittee
  1523. 22, Working Group 15, colloquially known as the ISO POSIX
  1524. working group, seems to be particularly replete with
  1525. buzzwords, acronyms and jargon.  I try to explain these as I
  1526. encounter them, but since USENIX and EurOpen (formerly EUUG)
  1527. have been sponsoring me to produce these reports for almost
  1528. two years now, some of the explanations are buried in
  1529. previous editions.  For now, you will just have to bear with
  1530. me; I will take time to explain how we arrived at the
  1531. current state of affairs in a future column.  This one
  1532. concerns itself mainly with where we are headed, and with
  1533. the difficulty of actually getting there.
  1534.  
  1535. As far as ISO is concerned, POSIX, like Gaul, is divided
  1536. into three parts.  Forget all those proliferating IEEE 1003
  1537. POSIX working groups (eighteen of them at the last count),
  1538. and just think of three standards: IS 9945-1 for a
  1539. definition of the services offered by the operating system;
  1540. IS 9945-2 describing the shell and tools; and IS 9945-3,
  1541. system administration.
  1542.  
  1543. The good news is that you can now buy the first edition of
  1544. the first of these1.  The bad news is that all three ISO
  1545. standards projects are running into scheduling difficulties.
  1546. And there is even more bad news if you are an AdaTM fan:  in
  1547. order to ease its own difficulties, the ISO POSIX working
  1548. group has put a serious road-block between your favourite
  1549. language and an international standard defining how you may
  1550. use it to access POSIX services.  Why did we do this, and
  1551. why don't we feel bad about it?  Read on...
  1552.  
  1553.  
  1554.  
  1555. __________
  1556.  
  1557.  1. From the IEEE, which has agreed to print the world's
  1558.     first combined IEEE/ANSI/ISO standard -- on ISO standard
  1559.     A4 paper.  Ask for IEEE Std. 1003.1:1990.  It will cost
  1560.     you $52.50 if you are an IEEE member, $75.00 otherwise.
  1561.     Add $5.00 for surface mail to Europe.  In the U.S.A.,
  1562.     call (800) 678-IEEE; elsewhere, +1 908 981 1393.  IEEE
  1563.     accepts "major credit cards".
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.                            - 2 -
  1577.  
  1578.  
  1579.  
  1580.               9945-3_--_System_Administration
  1581.  
  1582. As you are probably aware, the IEEE P1003.7 working group on
  1583. system administration has decided that current UNIX
  1584. administrative tools and practices are sufficiently
  1585. obsolete, inadequate and diverse that they are not worth
  1586. standardizing.  Instead, the group has elected to define a
  1587. new, object-based administration scheme which views a system
  1588. as a collection of objects to be administered, and a network
  1589. of systems simply as a larger collection of such objects.
  1590.  
  1591. Although this approach grafts neatly on to the network
  1592. administration work which has been going on in the Internet
  1593. and Open Systems Interconnection (OSI) communities, it will
  1594. be a while before it produces any results.  As we shall see
  1595. in connection with 9945-2, when ISO delegates responsibility
  1596. for the development of a standard to another body, as it has
  1597. done with the POSIX standards, it likes the documents to be
  1598. in a relatively stable state before they are submitted for
  1599. use as ISO Working Documents (WDs).  1003.7 thinks that it
  1600. will have something suitable for ISO to start work on by
  1601. 1992.
  1602.  
  1603. Unfortunately, ISO rules state that, unless a project has
  1604. resulted in a WD within three years of authorization, the
  1605. authorization stands in danger of automatic withdrawal.  The
  1606. only way out is for a national standards organization
  1607. participating in the development of the standard to call for
  1608. a vote on project continuation before the time limit
  1609. expires.  The time limit for the production of a draft for
  1610. 9945-3 has almost been reached, with no prospect of the
  1611. deadline being met.
  1612.  
  1613. It seems inevitable that the twenty-four countries
  1614. participating in the ISO POSIX project will be formally
  1615. balloted as to whether they think that the authorization to
  1616. develop a system administration standard should stand,
  1617. despite the missed deadline.  This is not a particularly big
  1618. deal: an examination of ISO's information technology
  1619. standardization work reveals that around twenty percent of
  1620. projects miss one deadline or another.  (OSI standards have
  1621. a particularly poor track record.)
  1622.  
  1623. Nevertheless, it is embarrassing when the managerial finger
  1624. is pointed at one's own project.  Already, the special
  1625. pleading has started; the SC22 Advisory Group, which makes
  1626. recommendations on policy issues to the ISO programming
  1627. languages subcommittee, has suggested that "in general
  1628. standards developed within SC22 are larger and more complex
  1629. than most others, and the time limits given in JTC1
  1630. directives2...  will therefore often be too short."[1].
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.                            - 3 -
  1643.  
  1644.  
  1645.  
  1646. This may be true -- although work elsewhere in ISO suggests
  1647. that SC22 has no monopoly on large projects.  However, it
  1648. seems to me that the time limits given by the directives
  1649. cannot reasonably be relaxed:  if no visible progress has
  1650. been made on a project after three years, those involved had
  1651. better be given an opportunity to ask themselves why, and to
  1652. consider whether they wish to continue giving their support.
  1653. I am sure that, if it comes to a vote, the result will
  1654. favour the continuation of the system administration
  1655. project.  Just don't hold your breath waiting for the final
  1656. standard.
  1657.  
  1658.                  9945-2_--_Shell_and_Tools
  1659.  
  1660. The shell and tools standard is not crowding a deadline as
  1661. closely as is system administration, but is not clear of
  1662. trouble either.  At least we have a committee draft (CD --
  1663. one step beyond a WD), corresponding to draft 9 of 1003.2,
  1664. but have failed to move it forward to the next stage, a
  1665. Draft International Standard (DIS).  According to the
  1666. directives, we have four years in which to do this before
  1667. serious questions get asked, and the ISO directorate makes a
  1668. decision about project termination.  Although our progress
  1669. to date has not been rapid, we have some time in hand.
  1670.  
  1671. Our first attempt to register the 1003.2 draft as a DIS
  1672. failed.  (See my report on WG15's Paris meeting[2].)  The
  1673. problem was that, while the technical content of a DIS is
  1674. supposed to be essentially the same as that which will
  1675. appear in the recently International Standard (IS), we all
  1676. knew that the content of 1003.2 was still undergoing rapid
  1677. and sometimes radical change.  There was no way that draft 9
  1678. could have been accepted as a DIS.  (The U.S. National
  1679. Institute for Standards and Technology (NIST) ultimately
  1680. decided not to base a Federal Information Processing
  1681. Standard (FIPS) on draft 9 for similar reasons.)
  1682.  
  1683. Draft 11 (or later) of 1003.2 will be passed to ISO in
  1684. January, 1991 (or later), in the hope that it can be
  1685. registered as a revised CD, and will stand more chance of
  1686. clearing the the remaining hurdles which separate it from IS
  1687. status.  Until this happens, we have a situation described
  1688.  
  1689.  
  1690. __________
  1691.  
  1692.  2. The rule book which guides our every move is The JTC1
  1693.     Directives.  It is surprisingly readable, and very clear
  1694.     on general principles and procedures, but seems to be
  1695.     intentionally vague on many details.
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.                            - 4 -
  1709.  
  1710.  
  1711.  
  1712. by one normally restrained working group member as a "pure
  1713. disaster".  We are about to suggest that draft 6 of 1003.2A,
  1714. the User Portability Extension, due early in 1991, is
  1715. registered as a proposed draft amendment (PDAM) to 9945-2,
  1716. without having a stable document to amend3!
  1717.  
  1718. In this situation, somebody may ask us why we don't just
  1719. roll the amendment into the next, hopefully more stable,
  1720. version of the CD.  The practical answer to the question is
  1721. that the IEEE is treating 1003.2 and 1003.2A as two separate
  1722. documents, and we would prefer to do the same.  How much
  1723. weight such an argument might carry with the ISO secretariat
  1724. is another question...
  1725.  
  1726.             9945-1_--_Operating_System_Interface
  1727.  
  1728. Now that 9945-1:1990 operating system interface definition
  1729. is an international standard, international standards work
  1730. on POSIX has reached the end of its beginning.  What do we
  1731. do next?  The problem is that we are spoiled for choice.  An
  1732. embarrassing number of the 1003 projects represent
  1733. extensions to, or restatements of, the services described in
  1734. 9945-1:
  1735.  
  1736. 1003.1A:    A 1003.1 extension draft, covering tweaks such
  1737.            as symbolic links, will be ready for us early in
  1738.            1991.  We shall probably vote to register it at
  1739.            our next meeting.
  1740.  
  1741. 1003.1LI:  (Provisional name.)  This is the language-
  1742.            independent specification of the services defined
  1743.            by the current 1003.1 standard in terms of their
  1744.            C language interface.  It may be ready in late
  1745.            1991, provided that enough IEEE volunteers can be
  1746.            found to work on it.
  1747.  
  1748. 1003.1C:   (Provisional name.)  Building on the definition
  1749.            provided by 1003.1LI, these C bindings will
  1750.            correspond exactly to the C interface defined by
  1751.            the current 1003.1.  Again, a draft may be ready
  1752.            late in 1991.
  1753.  
  1754.  
  1755.  
  1756.  
  1757. __________
  1758.  
  1759.  3. The UPE to 1003.2 describes interactive utilities for
  1760.     program development, supplementing 1003.2's description
  1761.     of the non-interactive tools used in shell scripts.
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.                            - 5 -
  1775.  
  1776.  
  1777.  
  1778. 1003.2:    The shell and tools standard defines C language
  1779.            interfaces to regular expression handling,
  1780.            filename expansion, argument string parsing and
  1781.            more.  Arguably, these belong in 9945-1.  They
  1782.            are also candidates for language-independent
  1783.            specification.
  1784.  
  1785. 1003.4:    We have requested that the current draft of
  1786.            1003.44, real-time extensions to the portable
  1787.            operating system interface, is registered as a
  1788.            PDAM to 9945-1.  The first international POSIX
  1789.            standard has only just hit the streets, and
  1790.            already we are trying to amend it!
  1791.  
  1792. 1003.4A:   The 1003.4 working group considers that draft 5
  1793.            of its threads (lightweight process) standard
  1794.            will be ready for submission to ISO at the same
  1795.            time as 1003.4.  As yet, we have made no decision
  1796.            to accept it.
  1797.  
  1798. 1003.4B:   This is simply a language-independent
  1799.            specification for the services described by
  1800.            1003.4 in terms of their binding to the C
  1801.            language.  The IEEE working group does not know
  1802.            when it will be ready, and we don't yet know when
  1803.            we shall be ready to accept it.  The two issues
  1804.            are connected: if we say we want work on it to be
  1805.            accelerated, it is likely to be ready more
  1806.            quickly.
  1807.  
  1808. 1003.5:    The Ada description of the portable operating
  1809.            systems interface is well on its way to becoming
  1810.            an ANSI/IEEE standard.  Expect to see it in 1992.
  1811.            Sadly, for reasons explored below, 1003.5 is
  1812.            unsuitable as a basis for an ISO standard.
  1813.  
  1814. 1003.6:    The security extension to the operating system
  1815.            interface will be ready for us to have a look at
  1816.            in January of 1991, although it will be a while
  1817.            before it is mature enough for PDAM registration.
  1818.  
  1819.  
  1820.  
  1821. __________
  1822.  
  1823.  4. That is, the draft current at the time that the ISO
  1824.     secretariat requests ANSI to provide a document for
  1825.     circulation to SC22 and WG15 as a prelude to calling a
  1826.     vote on registration.  This will be draft 10, or, more
  1827.     probably, draft 11.
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.                            - 6 -
  1841.  
  1842.  
  1843.  
  1844. 1003.8:    Transparent file access, that is, transparent
  1845.            access by a process hosted on one system to files
  1846.            held by another, is making rapid progress after
  1847.            narrowing down its goals until it identified an
  1848.            achievable target.  The IEEE working group
  1849.            expects to have a document suitable for ISO
  1850.            review by mid-1991.
  1851.  
  1852. 1003.9:    The FORTRAN5 bindings to the operating system
  1853.            interface definition are written in a manner
  1854.            which is more to ISO's taste than the Ada
  1855.            description of the same services, and will be
  1856.            ready for ISO review in late 1990.  However, we
  1857.            have elected not bring it forward to
  1858.            international standards status in the near
  1859.            future.  Again, our reasons are explored below.
  1860.  
  1861. 1003.16:   This recently-authorised IEEE project aims to
  1862.            produce C language bindings to some future
  1863.            language-independent specification of the POSIX
  1864.            operating system interface.  Like Ada and
  1865.            FORTRAN, it is tied up with the whole issue of
  1866.            language independence.
  1867.  
  1868. I wrote last time about the background to the language
  1869. independence debate[2].  Further discussion and a useful
  1870. bibliography can be found in [3].  ISO strongly favours
  1871. language-independent service specifications, but very few
  1872. people in the U.S. are interested in writing them.  ISO has
  1873. delegated development responsibility for POSIX to ANSI,
  1874. which in turn has passed the buck to the IEEE -- an
  1875. organization which ISO cannot officially talk to or aid.  As
  1876. a result, IEEE is saddled with a problem which it is ill-
  1877. equipped to solve.
  1878.  
  1879. At our Paris meeting, we signalled our disappointment with
  1880. the IEEE's progress towards a language-independent
  1881. specification for POSIX by refusing to register drafts of
  1882. 1003.4, .5 and .9.  The list above shows that we have
  1883. relented on 1003.4, but have left .5 and .9 out in the cold.
  1884.  
  1885.  
  1886.  
  1887.  
  1888. __________
  1889.  
  1890.  5. Obscure style note: one is supposed to refer to the
  1891.     proposed 1990 version of the language as Fortran; to
  1892.     older versions as FORTRAN.  1003.9 is a binding to
  1893.     FORTRAN 77.
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.                            - 7 -
  1907.  
  1908.  
  1909.  
  1910. The difference between this meeting and the last is that
  1911. they are now definitively out in the cold, and will not be
  1912. let into the ISO process until we are very close to having a
  1913. language-independent version of IS 9945-1 for them to bind
  1914. to.  Here, with a few interpolations in square brackets, is
  1915. the resolution that says why:
  1916.  
  1917.      Language-Independent Specifications:
  1918.  
  1919.      Whereas, SC22 AG [the advisory group mentioned above in
  1920.      connection with 9945-2] has recommended that the
  1921.      production of language-independent specifications and
  1922.      language bindings for POSIX be carried out in such a
  1923.      way that it does not delay the standardization of the C
  1924.      language bindings[1] [Thank you.  That's just what most
  1925.      of us wanted to hear.]; and
  1926.  
  1927.      The production of a language-independent specification
  1928.      corresponding to IS 9945-1:1990 and subsequent C
  1929.      language-based amendments, together with a C language
  1930.      binding to that language-independent specification, is
  1931.      required by the Division of Work Item JTC 1.22.21 [A
  1932.      Division of Work Item is an ISO mechanism for splitting
  1933.      an authorised project into several sub-projects]; and
  1934.  
  1935.      The production of further language bindings to the
  1936.      language-independent specification corresponding to
  1937.      9945-1:1990 as subsequently amended is ultimately
  1938.      desirable; and
  1939.  
  1940.      WG15 considers that "thin" language bindings (which
  1941.      must be read in conjunction with a service definition)
  1942.      are suitable candidates for standardization, but
  1943.      "thick" bindings (those which incorporate a service
  1944.      definition duplicating and possibly conflicting with
  1945.      the service definition provided by another standard)
  1946.      are not [The terms "thin" and "thick" derive from the
  1947.      number of pages in the document in question.  1003.5 is
  1948.      a "thick" binding, so we do not like it much; 1003.9 is
  1949.      a "thin" binding, but to the C language specifications
  1950.      of the current 1003.1];
  1951.  
  1952.      Therefore, JTC1/SC22/WG15 requests the U.S. member body
  1953.      [ANSI, which in turn gets the IEEE to do the work] to
  1954.      provide a schedule for the delivery to WG15 and SC22 of
  1955.      9945-1-related documents which is subject to the
  1956.      following constraints (listed in order of precedence,
  1957.      highest first):
  1958.  
  1959.        1.  The incorporation or development of language
  1960.            independence features shall not be on the
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.                            - 8 -
  1973.  
  1974.  
  1975.  
  1976.            critical path(s) for the production of C
  1977.            language-based documents;
  1978.  
  1979.        2.  The ultimate goal is the production of an
  1980.            extended [extended, that is, by 1003.4, 1003.6,
  1981.            1003,8...], language-independent 9945-1 and
  1982.            accompanying "thin" binding to the C language at
  1983.            the earliest possible date;
  1984.  
  1985.        3.  Every attempt shall be made to observe JTC1/ISO
  1986.            rules on the bringing forward of amendments etc.,
  1987.            with the need to seek waivers being highlighted
  1988.            if this appears necessary in order to satisfy the
  1989.            constraints above;
  1990.  
  1991.        4.  Language bindings, other than those for the C
  1992.            language, shall not be brought forward to WG15 or
  1993.            SC22 for any purpose other than review and
  1994.            comment before the language-independent 9945-1
  1995.            has been registered as a DIS; and
  1996.  
  1997.        5.  Where possible in the light of other constraints,
  1998.            C language-based documents shall include a
  1999.            informative annex setting out a language-
  2000.            independent definition of the services defined by
  2001.            the normative body of the document;
  2002.  
  2003.      The schedule shall identify timeframes for at least the
  2004.      following document circulation and registration
  2005.      milestones:
  2006.  
  2007.        1.  "Thick" C bindings for amendments to 9945-1:1990;
  2008.  
  2009.        2.  Language-independent specifications corresponding
  2010.            to 9945-1:1990 and subsequent amendments;
  2011.  
  2012.        3.  "Thin" C bindings to language-independent
  2013.            specifications corresponding to 9945-1:1990 and
  2014.            subsequent amendments;
  2015.  
  2016.        4.  A combined language-independent 9945-1 and
  2017.            accompanying "thin" C binding to the services
  2018.            that it defines; and
  2019.  
  2020.        5.  "Thin" bindings for further languages to the
  2021.            whole of the combined language-independent
  2022.            9945-1, or to supersets or subsets of the
  2023.            services which it defines.
  2024.  
  2025. I hope that your eyes have not glazed over:  public
  2026. statements of policy get convoluted and legalistic at this
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.                            - 9 -
  2039.  
  2040.  
  2041.  
  2042. level, but all of this verbiage actually represents a
  2043. concise description of the problem and what we see as a
  2044. route to its solution6.  For the first time, this tells the
  2045. IEEE exactly what type of document that the ISO working
  2046. group wants to see, and in which order:
  2047.  
  2048.   a.  C-based standards first.
  2049.  
  2050.   b.  Language-independent standards with a corresponding
  2051.       "thin" C binding second.
  2052.  
  2053.   c.  "Thin" (and only thin) bindings to other languages no
  2054.       sooner than b).
  2055.  
  2056.   d.  Examples of language-independent specifications (as
  2057.       opposed to definitive standards for them) any time
  2058.       that IEEE can manage to produce them.
  2059.  
  2060.   e.  All in accordance with ISO rules on the publication of
  2061.       amendments and revisions to standards (we hope).
  2062.  
  2063. There was some understandable objection from the U.S. to
  2064. "micro-management" -- if we were defining so many goals,
  2065. constraints and checkpoints, why didn't we just write the
  2066. schedule ourselves?  The answer is that there is still quite
  2067. a lot of flexibility allowed:  the IEEE has a dozen or more
  2068. documents to bring forward, and it can decide on the
  2069. ordering.  And the dates.  We just want to know when those
  2070. dates are, and to disallow certain orderings.
  2071.  
  2072. The amount of resource that the IEEE can muster to work on
  2073. language-independent specifications determines when step b
  2074. can occur.  Does anybody want to volunteer to make it sooner
  2075. than 1995?
  2076.  
  2077. The real victim of our newly-defined policy is Ada.  It is
  2078. clear that that there will be an ANSI/IEEE standard for an
  2079. Ada definition of the POSIX operating system interface,
  2080. probably within two years.  It is now equally clear that,
  2081. because it will be a "thick" binding, this standard cannot
  2082. move forward to gain international status.  There may
  2083. ultimately be a "thin" Ada binding to a future language-
  2084. independent 9945-1.  It may or, more likely, may not define
  2085. an interface identical to that defined by 1003.9.  We could
  2086. face the unpalatable prospect of an ISO standard which
  2087.  
  2088.  
  2089. __________
  2090.  
  2091.  6. Although I could be biased: I drafted the resolution.
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.                            - 10 -
  2105.  
  2106.  
  2107.  
  2108. differs from the corresponding ANSI standard.
  2109.  
  2110. Why don't we feel too bad about this?  Well, it seems that
  2111. the main requirement for an Ada POSIX standard comes from
  2112. within the U.S.  1003.5 will fill this need, and we should
  2113. not seek to delay it.  The need for an international
  2114. standard in this area is less clear, but we have now given
  2115. clear guidelines on the form that it should take, just as
  2116. soon as anybody wants to develop it.
  2117.  
  2118. That said, it is clear that we still have much to learn
  2119. about...
  2120.  
  2121.                        Co-ordination
  2122.  
  2123. One aim of the IEEE and ISO POSIX projects is that the
  2124. international standards that result should be identical to
  2125. the corresponding U.S. standards.  Another is that ISO
  2126. publication should not lag behind IEEE publication by too
  2127. long.  IS 9945-1 is a benchmark in both cases: by dint of
  2128. the IEEE agreeing to print for both organizations, content
  2129. is identical, and publication is simultaneous.  This will be
  2130. a hard act to follow, not least because there are thousands
  2131. of pages of IEEE drafts in the pipeline, all of which must
  2132. undergo international review before they can even start
  2133. going through the three-stage ISO mill which grinds
  2134. documents into international standards.
  2135.  
  2136. It has been the policy of the IEEE not to submit documents
  2137. to ISO until they reach their first IEEE ballots -- that is,
  2138. until they are reasonably mature and complete.  In view of
  2139. our rejection of 1003.2 draft 9 because we did not consider
  2140. it mature enough, this seems like a prudent approach.  The
  2141. trouble is that by the time the IEEE considers a document
  2142. mature, it is also likely to be difficult to change in any
  2143. significant manner.  If we had earlier visibility into the
  2144. subject matter and approach of the IEEE's work, we could
  2145. comment on its future acceptability to ISO.  For example, we
  2146. could have suggested that 1003.5 pursued a "thin", rather
  2147. than a "thick" binding.
  2148.  
  2149. To try and get out of the hole that we have dug for
  2150. ourselves, we have requested "early visibility" of IEEE
  2151. draft standards.  Seeing standards when they are young and
  2152. small will also aid international understanding of the
  2153. larger, more mature versions when they appear.
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.                            - 11 -
  2171.  
  2172.  
  2173.  
  2174.                            OSCRL
  2175.  
  2176. The POSIX project bears a growing similarity to an ancient
  2177. yet still inhabited castle: some parts are old and
  2178. crumbling; others require constant repair if they are to
  2179. remain habitable; and, all the time, new walls, doors and
  2180. towers are being added.  1003.7 even seems to be demolishing
  2181. a few unsightly outbuildings.  Co-ordination should ensure
  2182. that nobody builds a wall where someone else wants a door.
  2183. Or a whole new tower when all that was needed was a new
  2184. entrance to an existing one, as happened in the case of
  2185. 1003.5.
  2186.  
  2187. No castle is complete without a ghost, and POSIX has one:
  2188. OSCRL -- Operating System Command and Report Language.
  2189. Started in the early eighties, it was (to simplify to an
  2190. almost indictable extent) an attempt to define a common Job
  2191. Control Language for the large computers of the day.  It
  2192. found a home in SC21, which looks after OSI, just before it
  2193. became apparent that UNIX was going to become the "open"
  2194. operating system of choice.  Ahead of its time, the OSCRL
  2195. project attracted a small but enthusiastic following, but,
  2196. as the years went by, work tailed off.  It was all but non-
  2197. existent by the time the ISO POSIX project was set up.
  2198. However, it is ISO policy when starting new projects to
  2199. examine any related work which it may have undertaken, and
  2200. the search turned up OSCRL as covering topics to be
  2201. addressed by 9945-2 and 9945-3.
  2202.  
  2203. SC21 welcomed the chance to pass the project to another
  2204. group, and we reluctantly agreed to take it over.  Then the
  2205. ISO central secretariat lost all the paperwork.  (It is a
  2206. fact of life that all bureaucracies lose paperwork.)  We had
  2207. an excuse to prolong OSCRL's spell among the undead,
  2208. provided that we could put up with the periodic howls from
  2209. its (few) proponents.
  2210.  
  2211. These howls recently resulted in a polite suggestion from
  2212. the SC22 AG that we should do something to quiet them.  That
  2213. something might be the massaging of the existing material
  2214. (if it can be found) in to a Technical Report -- a type of
  2215. document which few people ever read, and the production of
  2216. which is discouraged by ISO.  But a TR may just be the sort
  2217. of headstone that OSCRL lacks.  We will be trying to nail
  2218. the coffin lid down at our next meeting, which takes place
  2219. in the Netherlands from 14th - 17th May, 1991.
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.                            - 12 -
  2237.  
  2238.  
  2239.  
  2240.  
  2241.                          REFERENCES
  2242.  
  2243.  
  2244.  
  2245.  1. Preliminary Recommendations and Resolutions, ISO/IEEE
  2246.     JTC1 SC22 Advisory Group, London, October 1990.
  2247.  
  2248.  2. Report on ISO/IEEE JTC1/SC22/WG15 (Paris), Dominic
  2249.     Dunlop, comp.std.unix Volume 20, Number 110, USENET, 5
  2250.     July, 1990 (also published in ;login:, Volume 15, Number
  2251.     5, September/October, 1990) No. 3, Autumn 1990
  2252.  
  2253.  3. The Context for Programming Language Independence for
  2254.     POSIX, Stephen R Walli, comp.std.unix  Volume 21, Number
  2255.     197, USENET, 11th October, 1990
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300. -- 
  2301. Dominic Dunlop
  2302.  
  2303.  
  2304. Volume-Number: Volume 22, Number 24
  2305.  
  2306. From std-unix-request@uunet.uu.net  Fri Nov 16 12:52:20 1990
  2307. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  2308.     id AA25824; Fri, 16 Nov 90 12:52:20 -0500
  2309. Posted-Date: 15 Nov 90 18:47:45 GMT
  2310. Received: by cs.utexas.edu (5.64/1.83) 
  2311. From: fkittred@BBN.COM (Fletcher Kittredge)
  2312. Newsgroups: comp.std.unix
  2313. Subject: Re: Report on ISO POSIX meeting of October 1990
  2314. Message-Id: <14723@cs.utexas.edu>
  2315. References: <14687@cs.utexas.edu>
  2316. Sender: fletcher@cs.utexas.edu
  2317. Reply-To: fkittred@spca.bbn.com (Fletcher Kittredge)
  2318. Organization: Bolt Beranek and Newman Inc., Cambridge MA
  2319. X-Submissions: std-unix@uunet.uu.net
  2320. Date: 15 Nov 90 18:47:45 GMT
  2321. To: std-unix@uunet.uu.net
  2322.  
  2323. Submitted-by: fkittred@BBN.COM (Fletcher Kittredge)
  2324.  
  2325. How can I get copies of draft versions of the POSIX 1003.x standards?
  2326. I am particularly interested in the 1003.4[ab] draft.  I am a member
  2327. of the IEEE.
  2328.  
  2329. regards,
  2330. fletcher
  2331.  
  2332.  
  2333.  
  2334.  
  2335. Fletcher E. Kittredge
  2336. Senior Engineer
  2337. Platforms and Tools Group
  2338. BBN Software Products Company
  2339. 10 Fawcett St.
  2340. Cambridge, MA. 02138
  2341. 617-873-3465
  2342. fkittred@bbn.com  or  fkittred@endor.harvard.edu
  2343.  
  2344. Volume-Number: Volume 22, Number 25
  2345.  
  2346. From std-unix-request@uunet.uu.net  Fri Nov 16 12:53:49 1990
  2347. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  2348.     id AA26334; Fri, 16 Nov 90 12:53:49 -0500
  2349. Posted-Date: 15 Nov 90 19:12:51 GMT
  2350. Received: by cs.utexas.edu (5.64/1.83) 
  2351. From: gwyn@smoke.brl.mil (Doug Gwyn)
  2352. Newsgroups: comp.std.unix
  2353. Subject: Re: POSIX.1 requires shell???
  2354. Message-Id: <14727@cs.utexas.edu>
  2355. References: <14613@cs.utexas.edu>
  2356. Sender: fletcher@cs.utexas.edu
  2357. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  2358. X-Submissions: std-unix@uunet.uu.net
  2359. Date: 15 Nov 90 19:12:51 GMT
  2360. Reply-To: std-unix@uunet.uu.net
  2361. To: std-unix@uunet.uu.net
  2362.  
  2363. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  2364.  
  2365. In article <14613@cs.utexas.edu> cazier@mbunix.mitre.org (Cazier) writes:
  2366. >Does POSIX.1 require that a shell interface capability exist?
  2367.  
  2368. No.
  2369.  
  2370. Volume-Number: Volume 22, Number 26
  2371.  
  2372. From jbc@cs.utexas.edu  Tue Nov 20 23:52:22 1990
  2373. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  2374.     id AA24702; Tue, 20 Nov 90 23:52:22 -0500
  2375. Posted-Date: 20 Nov 90 15:32:57 GMT
  2376. Received: by cs.utexas.edu (5.64/1.83) 
  2377. From: ahby@bungia.Bungia.MN.ORG (Shane P. McCarron)
  2378. Newsgroups: comp.std.unix
  2379. Subject: Re: Report on ISO POSIX meeting of October 1990
  2380. Message-Id: <14892@cs.utexas.edu>
  2381. References: <14687@cs.utexas.edu> <14723@cs.utexas.edu> <14858@cs.utexas.edu>
  2382. Sender: jbc@cs.utexas.edu
  2383. Organization: Bugoslavian Embassy, St. Paul, MN
  2384. X-Submissions: std-unix@uunet.uu.net
  2385. Date: 20 Nov 90 15:32:57 GMT
  2386. Reply-To: std-unix@uunet.uu.net
  2387. To: std-unix@uunet.uu.net
  2388.  
  2389. Submitted-by: ahby@bungia.Bungia.MN.ORG (Shane P. McCarron)
  2390.  
  2391. In article <14858@cs.utexas.edu> domo@tsa.co.uk writes:
  2392. >Submitted-by: domo@tsa.co.uk (Dominic Dunlop)
  2393. >
  2394. >In article <14723@cs.utexas.edu> fkittred@spca.bbn.com (Fletcher Kittredge)
  2395. >writes:
  2396. >> How can I get copies of draft versions of the POSIX 1003.x standards?
  2397. >> I am particularly interested in the 1003.4[ab] draft.  I am a member
  2398. >> of the IEEE.
  2399. >
  2400. >The contact for IEEE TCOS mailings is
  2401. >
  2402. >    Charles Habermann
  2403.  
  2404. Actually, the contact for obtaining drafts is Lisa Granoien at the 
  2405. IEEE Computer Society (+1 202-371-0101).  NAPS does not distribute
  2406. draft standards piecemeal
  2407.  
  2408. >Subscribers do not have to be IEEE members.  Overseas subscribers must
  2409. >pay an additional $400 for express delivery independent of how many or
  2410. >few units that they pay for.  (This has always struck me as a rather
  2411. >strange approach -- why not just bump up the cost of each unit if
  2412. >express delivery is required?)
  2413.  
  2414. Actually, the exact cost of overseas express delivery is debited from
  2415. each subscribers "account" as materials are shipped.  The $400 is a
  2416. ballpark figure that IEEE uses.
  2417.  
  2418. Here is the subscription form, in case anyone needs it.  It is
  2419. current:
  2420.  
  2421.  
  2422.         IEEE TCOS-Standards Document Distribution Service       6-20-90
  2423.             INVOICE and Fee Schedule
  2424.  
  2425. Name:    ________________________________  Date:  _______________________
  2426.  
  2427. Address:________________________________________________________________
  2428.  
  2429.     ________________________________________________________________
  2430.  
  2431.     ________________________________________________________________
  2432.  
  2433. Phone:    ________________________    E-Mail: ________________________
  2434.  
  2435. Master Card/Visa/AmEx #:  _______________________  Expiration: _________
  2436.          (circle one)
  2437. Signature:    ________________________________________________________
  2438.  
  2439. Instructions:    Select the working groups from which you would like to 
  2440. receive information.  Next select the number of pages of material you would 
  2441. like to pay for at this time.
  2442.  
  2443. Group                            All    Drafts    
  2444.                               Materials    Only
  2445. Status    (notices, status reports, document lists)    ____    n/a
  2446.  
  2447. ALL    (You will receive materials for new groups    ____    ____
  2448.     automatically as they are created)
  2449. 1003.0    POSIX Guide                    ____    ____
  2450. 1003.1    System Interface                ____    ____
  2451. 1003.2    Shell & Utilities                ____    ____
  2452. 1003.3    Test Methods                    ____    ____
  2453. 1003.4    Real Time                    ____    ____
  2454. 1003.5    Ada Bindings                    ____    ____
  2455. 1003.6    POSIX Security                    ____    ____
  2456. 1003.7    System Admin.                    ____    ____
  2457. 1003.8    Transparent File Access                ____    ____
  2458. 1003.9    Fortran Bindings                ____    ____
  2459. 1003.10    Supercomputing                    ____    ____
  2460. 1003.11    Transaction Processing                ____    ____
  2461. 1003.12    Protocol Independent Interfaces            ____    ____
  2462. 1003.ns    Name Space/Directory Services            ____    ____
  2463. 1003.13    Real Time (assigned to .4)             ____    ____
  2464. 1003.14 Multiprocessing AEP                ____    ____
  2465. 1003.15 Batch Services (assigned to .10)        ____    ____
  2466. 1201.1    Windowing Toolkit API                ____    ____
  2467. 1201.2    User Interface Driveability            ____    ____
  2468. 1224    X.400 Gateway API                ____    ____
  2469. 1237    RPC                        ____    ____
  2470. 1238    Common OSI API & FTAM API            ____    ____
  2471.  
  2472. Number of 500 pages units you wish to pay for:    ____ x US$40    _______
  2473. (an average mailing of all materials is over 2000 pages)
  2474.  
  2475. International Express Mail fee:            ____ US$400    _______
  2476. (regular delivery can take up to 8 weeks)
  2477.  
  2478. Annual TCOS-Stds meeting attendance fees may be
  2479. prepaid:                    ____ US$400    _______
  2480.  (or may be paid quarterly at the meetings)
  2481.  
  2482. Total amount due for above services:                _______
  2483.           Receipt Requested?  Yes  No
  2484.  
  2485.  
  2486. Payment:  BE CERTAIN TO INCLUDE THIS FORM WITH YOUR PAYMENT.  Payment may 
  2487. be made by charge card (above), or by check or money order payable to 
  2488. IEEE 1003.  Please retain a copy of this form for your records.  Send 
  2489. the materials to:
  2490.  
  2491. For Subscriptions Send to:    For inquiries about your current subscription:
  2492. TCOS Standards Subscriptions            Charles Habermann
  2493. c/o Lisa Granoien                 NAPS International
  2494. IEEE Computer Society                117 Mackubin St.  Suite 6
  2495. 1730 Massachusetts Ave. NW            St. Paul, MN  55102
  2496. Washington DC  20036-1903            +1 (612) 224-9239
  2497.      202-371-0101                +1 (612) 222-2924 (fax)
  2498.                         cjh@bungia.mn.org
  2499.                         uunet!bungia.mn.org!cjh
  2500.  
  2501. -- 
  2502. Shane P. McCarron                Phone: +1 612-224-9239
  2503. Project Manager                    Internet: ahby@bungia.mn.org
  2504.  
  2505. Volume-Number: Volume 22, Number 28
  2506.  
  2507. From jbc@cs.utexas.edu  Wed Nov 21 00:57:04 1990
  2508. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  2509.     id AA15929; Wed, 21 Nov 90 00:57:04 -0500
  2510. Posted-Date: 19 Nov 90 11:09:57 GMT
  2511. Received: by cs.utexas.edu (5.64/1.83) 
  2512. From: domo@tsa.co.uk (Dominic Dunlop)
  2513. Newsgroups: comp.std.unix
  2514. Subject: Re: Report on ISO POSIX meeting of October 1990
  2515. Message-Id: <14858@cs.utexas.edu>
  2516. References: <14687@cs.utexas.edu> <14723@cs.utexas.edu>
  2517. Sender: jbc@cs.utexas.edu
  2518. Reply-To: domo@tsa.co.uk
  2519. Organization: The Standard Answer Ltd.
  2520. X-Submissions: std-unix@uunet.uu.net
  2521. Date: 19 Nov 90 11:09:57 GMT
  2522. To: std-unix@uunet.uu.net
  2523.  
  2524. Submitted-by: domo@tsa.co.uk (Dominic Dunlop)
  2525.  
  2526. In article <14723@cs.utexas.edu> fkittred@spca.bbn.com (Fletcher Kittredge)
  2527. writes:
  2528. > How can I get copies of draft versions of the POSIX 1003.x standards?
  2529. > I am particularly interested in the 1003.4[ab] draft.  I am a member
  2530. > of the IEEE.
  2531.  
  2532. The contact for IEEE TCOS mailings is
  2533.  
  2534.     Charles Habermann
  2535.     NAPS International
  2536.     117 Mackubin Street, Suite 6
  2537.     St. Paul, MN 55102
  2538.     U.S.A.
  2539.     +1 (612) 224-9299 (voice)
  2540.     +1 (612) 222-2924 (fax)
  2541.     cjh@bungia.mn.org
  2542.  
  2543. I suggest that you contact him, and he should send you a form to be
  2544. filled out and returned, together with payment, to the IEEE.  The idea
  2545. is that you pay in advance for 500 page units of mailing at $30 each.
  2546. Subscribers do not have to be IEEE members.  Overseas subscribers must
  2547. pay an additional $400 for express delivery independent of how many or
  2548. few units that they pay for.  (This has always struck me as a rather
  2549. strange approach -- why not just bump up the cost of each unit if
  2550. express delivery is required?)
  2551.  
  2552. The form allows one to specify the groups (1003.x, 1201,z, 1224, 1238)
  2553. in which one is interested, and whether one wants to receive all
  2554. paperwork or just draft standards.
  2555.  
  2556. I am not aware of any way in which individual drafts can be obtained.
  2557. I suspect that that's what Fletcher really wants.
  2558. -- 
  2559. Dominic Dunlop
  2560.  
  2561.  
  2562. Volume-Number: Volume 22, Number 27
  2563.  
  2564.  
  2565. From jsq@cs.utexas.edu  Wed Nov 28 17:21:52 1990
  2566. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  2567.     id AA08807; Wed, 28 Nov 90 17:21:52 -0500
  2568. Posted-Date: 28 Nov 90 17:37:25 GMT
  2569. Received: by cs.utexas.edu (5.64/1.87) 
  2570. From: sklower@okeeffe.Berkeley.EDU (Keith Sklower)
  2571. Newsgroups: comp.std.unix
  2572. Subject: P1003.12 solicits comments
  2573. Message-Id: <15201@cs.utexas.edu>
  2574. Sender: jsq@cs.utexas.edu
  2575. Reply-To: dot12@okeeffe.Berkeley.EDU
  2576. X-Submissions: std-unix@uunet.uu.net
  2577. Date: 28 Nov 90 17:37:25 GMT
  2578. To: std-unix@uunet.uu.net
  2579.  
  2580. Submitted-by: sklower@okeeffe.Berkeley.EDU (Keith Sklower)
  2581.  
  2582. The POSIX process-to-process communications working group (P1003.12)
  2583. would like to solicit outside comment.
  2584.  
  2585. The committee wishes to publish an interface at the level of exposed
  2586. detail exhibited by both sockets and XTI.  Previously, the committee
  2587. had been of the opinion that although both sets of existing practice
  2588. were relatively similar, each had technical flaws.  Furthermore,
  2589. each had a user community unwilling to give theirs up and adopt
  2590. the other.
  2591.  
  2592. The working solution the commitee had been pursuing was to combine
  2593. the the best features of the two interfaces, changing the names and
  2594. semantics of the primitives, so that some amount of re-coding would
  2595. be necessary.  The committee was using as its model the level of
  2596. modification done to the job control and termios facilities of P1003.1
  2597.  
  2598. There has recently been vociferous opposition to this plan, arguing
  2599. that vendors would have to support THREE interfaces (sockets, XTI
  2600. and POSIX) and it would be better to have the P1003.12 committee
  2601. issue IEEE standard versions of the existing two, with possible
  2602. backwards compatible extensions and improvements.
  2603.  
  2604. We invite you to submit your reactions to dot12@okeeffe.Berkeley.EDU
  2605. for consideration by the committee.  It would be helpful to some of us
  2606. if you would say something about your background or experience with
  2607. either of XTI or sockets.
  2608.  
  2609. Volume-Number: Volume 22, Number 19
  2610.  
  2611. From jsq@cs.utexas.edu  Fri Dec 14 09:08:35 1990
  2612. Received: from CS.UTEXAS.EDU by uunet.UU.NET (5.61/1.14) with SMTP 
  2613.     id AA04163; Fri, 14 Dec 90 09:08:35 -0500
  2614. Posted-Date: 14 Dec 90 03:12:18 GMT
  2615. Received: by cs.utexas.edu (5.64/1.90) 
  2616. From: nix%valis.asd.sgi.com@SGI.COM (Insufficient Dada)
  2617. Newsgroups: comp.std.unix
  2618. Subject: disabling TIOCGPGRP on pty master sides
  2619. Message-Id: <15827@cs.utexas.edu>
  2620. Sender: jsq@cs.utexas.edu
  2621. X-Submissions: std-unix@uunet.uu.net
  2622. Date: 14 Dec 90 03:12:18 GMT
  2623. Reply-To: std-unix@uunet.UU.NET
  2624. To: std-unix@uunet.UU.NET
  2625.  
  2626. Submitted-by: nix%valis.asd.sgi.com@SGI.COM (Insufficient Dada)
  2627.  
  2628. POSIX apparently specifies that the TIOCGPGRP ioctl is disabled if
  2629. called on a terminal other than the controlling terminal of the
  2630. calling process, apparently for security reasons. This behavior breaks
  2631. the subshell handling of GNU Emacs, and apparently interferes with the
  2632. operation of the XView terminal emulator as well.  GNU Emacs uses ptys
  2633. to communicate with shell subprocesses, and attempts to send signals
  2634. to the foreground process in a subshell by finding the process group
  2635. associated with the (master side of the) pty.
  2636.  
  2637. With TIOCGPGRP disabled, there seems not to be any way to send signals
  2638. to a process running in an inferior shell other than figuring out the
  2639. appropriate control character to send through termio to cause the
  2640. signal to be sent.
  2641.  
  2642. Does POSIX have an alternate mechanism for this?  If not, could
  2643. someone elaborate on the security problems with allowing a process to
  2644. find the pgrp of an arbitrary tty?  How about allowing a process to
  2645. find the pgrp of the slave side of a pty when it owns the master side?
  2646.  
  2647.     Nick
  2648.  
  2649. Nick Thompson        nix@sgi.com        ...!uunet!sgi!nix
  2650.  
  2651. Volume-Number: Volume 22, Number 30
  2652.  
  2653. From jsq@cs.utexas.edu  Sun Dec 16 06:49:48 1990
  2654. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  2655.     id AA25539; Sun, 16 Dec 90 06:49:48 -0500
  2656. Posted-Date: 14 Dec 90 19:52:18 GMT
  2657. Received: by cs.utexas.edu (5.64/1.90) 
  2658. From: sef@kithrup.COM (Sean Eric Fagan)
  2659. Newsgroups: comp.std.unix
  2660. Subject: Re: disabling TIOCGPGRP on pty master sides
  2661. Message-Id: <15891@cs.utexas.edu>
  2662. References: <15827@cs.utexas.edu>
  2663. Sender: jsq@cs.utexas.edu
  2664. Organization: Kithrup Enterprises, Ltd.
  2665. X-Submissions: std-unix@uunet.uu.net
  2666. Date: 14 Dec 90 19:52:18 GMT
  2667. Reply-To: std-unix@uunet.uu.net
  2668. To: std-unix@uunet.uu.net
  2669.  
  2670. Submitted-by: sef@kithrup.COM (Sean Eric Fagan)
  2671.  
  2672. In article <15827@cs.utexas.edu> nix%valis.asd.sgi.com@SGI.COM (Insufficient Dada) writes:
  2673. >This behavior breaks
  2674. >the subshell handling of GNU Emacs, and apparently interferes with the
  2675. >operation of the XView terminal emulator as well.  
  2676.  
  2677. First of all, emacs needs to do a setsid() in the sub-process; this makes
  2678. the pty it's controlling terminal (at least, this is how it works under
  2679. SCO's unix).
  2680.  
  2681. Second of all, because of the problem with tcgetpgrp() on another process'
  2682. pty, I added (for my own use) a new ioctl to the pty driver, called TIOCSIG
  2683. (as in, ioctl(fd, TIOCSIG, signo)), which sends an arbitray signal to the
  2684. process group on fd.  (Since I did it only for emacs, I didn't put in any
  2685. checks for security, although I plan on doing so eventually.)
  2686.  
  2687. I got this idea from a discussion with people at Berkeley.
  2688.  
  2689. -- 
  2690. Sean Eric Fagan  | "I made the universe, but please don't blame me for it;
  2691. sef@kithrup.COM  |  I had a bellyache at the time."
  2692. -----------------+           -- The Turtle (Stephen King, _It_)
  2693. Any opinions expressed are my own, and generally unpopular with others.
  2694.  
  2695. Volume-Number: Volume 22, Number 31
  2696.  
  2697. From jsq@cs.utexas.edu  Tue Dec 18 18:47:11 1990
  2698. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  2699.     id AA27070; Tue, 18 Dec 90 18:47:11 -0500
  2700. Posted-Date: 17 Dec 90 20:37:52 GMT
  2701. Received: by cs.utexas.edu (5.64/1.90) 
  2702. From: rml@hpfcdc.fc.hp.com (Bob Lenk)
  2703. Newsgroups: comp.std.unix
  2704. Subject: Re: disabling TIOCGPGRP on pty master sides
  2705. Message-Id: <15975@cs.utexas.edu>
  2706. References: <15827@cs.utexas.edu>
  2707. Sender: jsq@cs.utexas.edu
  2708. X-Submissions: std-unix@uunet.uu.net
  2709. Date: 17 Dec 90 20:37:52 GMT
  2710. Reply-To: std-unix@uunet.uu.net
  2711. To: std-unix@uunet.uu.net
  2712.  
  2713. Submitted-by: rml@hpfcdc.fc.hp.com (Bob Lenk)
  2714.  
  2715. In article <15827@cs.utexas.edu> nix%valis.asd.sgi.com@SGI.COM (Insufficient Dada) writes:
  2716.  
  2717. > With TIOCGPGRP disabled, there seems not to be any way to send signals
  2718. > to a process running in an inferior shell other than figuring out the
  2719. > appropriate control character to send through termio to cause the
  2720. > signal to be sent.
  2721. > Does POSIX have an alternate mechanism for this?
  2722.  
  2723. No.
  2724.  
  2725. >                                                   If not, could
  2726. > someone elaborate on the security problems with allowing a process to
  2727. > find the pgrp of an arbitrary tty?
  2728.  
  2729. I have not identified one after asking various people involved in
  2730. writing that portion of the standard.
  2731.  
  2732. >                                     How about allowing a process to
  2733. > find the pgrp of the slave side of a pty when it owns the master side?
  2734.  
  2735. There is nothing in any POSIX standard that specifies the master side
  2736. of a pty.  Thus such a feature would have no problems with respect to
  2737. the standard.
  2738.  
  2739. In article  <15891@cs.utexas.edu> sef@kithrup.COM (Sean Eric Fagan) writes:
  2740.  
  2741. > Second of all, because of the problem with tcgetpgrp() on another process'
  2742. > pty, I added (for my own use) a new ioctl to the pty driver, called TIOCSIG
  2743. > (as in, ioctl(fd, TIOCSIG, signo)), which sends an arbitray signal to the
  2744. > process group on fd.  (Since I did it only for emacs, I didn't put in any
  2745. > checks for security, although I plan on doing so eventually.)
  2746.  
  2747. Again, pty master features are not covered by POSIX.  There are some
  2748. tradeoffs between these two approaches.  Supplying the process group ID
  2749. through the pty master means that if the process running controlling the
  2750. master side is no privileged (typically root), it will be unable to
  2751. send signals to processes that have changed user IDs (eg. su).  However,
  2752. the ioctl to send a signal requires appropriate security checks in a
  2753. production implementation.  There are questions as to what these need to
  2754. be; I suggest that the process should be able to send any tty signals
  2755. but no others, since any process/user on the slave slide accepted (at
  2756. least implicitly) the possibility of receiving these when affiliating
  2757. with a (pseudo) terminal.
  2758.  
  2759.         Bob Lenk
  2760.         rml@fc.hp.com
  2761.         {uunet,hplabs}!fc.hp.com!rml
  2762.  
  2763. Volume-Number: Volume 22, Number 32
  2764.  
  2765. From jsq@cs.utexas.edu  Tue Dec 18 18:49:22 1990
  2766. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  2767.     id AA27581; Tue, 18 Dec 90 18:49:22 -0500
  2768. Posted-Date: 17 Dec 90 22:04:40 GMT
  2769. Received: by cs.utexas.edu (5.64/1.90) 
  2770. From: ccicpg!sharad@cs.utexas.edu (Sharad Srivastava)
  2771. Newsgroups: comp.std.unix
  2772. Subject: POSIX interface for Direct I/O.
  2773. Message-Id: <15976@cs.utexas.edu>
  2774. Sender: jsq@cs.utexas.edu
  2775. Organization: ICL North America, Irvine CA
  2776. X-Submissions: std-unix@uunet.uu.net
  2777. Date: 17 Dec 90 22:04:40 GMT
  2778. Reply-To: std-unix@uunet.uu.net
  2779. To: std-unix@uunet.uu.net
  2780.  
  2781. Submitted-by: sharad@ccicpg.uucp (Sharad Srivastava)
  2782.  
  2783. I am trying to get the POSIX standard on Direct I/O.
  2784.  
  2785. By Direct I/O, I mean the ability to read/write data directly from/to
  2786. a regular file into/from user address space without going through kernel
  2787. space.
  2788.  
  2789. Specifically, I need the ioctl command and argument bits.
  2790.  
  2791. Can anyone help ?
  2792.  
  2793.                         - Thanx
  2794.                           Sharad Srivastava
  2795.  
  2796. Volume-Number: Volume 22, Number 33
  2797.  
  2798. From jsq@cs.utexas.edu  Fri Dec 21 15:48:27 1990
  2799. Received: from CS.UTEXAS.EDU by uunet.uu.net (5.61/1.14) with SMTP 
  2800.     id AA27464; Fri, 21 Dec 90 15:48:27 -0500
  2801. Posted-Date: 19 Dec 90 17:03:47 GMT
  2802. Received: by cs.utexas.edu (5.64/1.91) 
  2803. From: markc@iscuvd.isc-br.com (Mark Conrad)
  2804. Newsgroups: comp.std.unix
  2805. Subject: ONLINE POSIX SPEC's
  2806. Keywords: POSIX
  2807. Message-Id: <16065@cs.utexas.edu>
  2808. Sender: jsq@cs.utexas.edu
  2809. X-Submissions: std-unix@uunet.uu.net
  2810. Date: 19 Dec 90 17:03:47 GMT
  2811. Reply-To: std-unix@uunet.uu.net
  2812. To: std-unix@uunet.uu.net
  2813.  
  2814. Submitted-by: markc@iscuvd.isc-br.com (Mark Conrad)
  2815.  
  2816. Hello,
  2817.  
  2818.     I would like to be able to get a copy of the POSIX spec's,
  2819.     especially the real-time drafts over the net.  Does anyone
  2820.     out there have these online and available to the net?
  2821.  
  2822.     Please mail & post, others would probably like to get
  2823.     access to these as well.
  2824.  
  2825.     Thank you!
  2826.  
  2827.             mail: markc@iscuvd.isc-br.com
  2828.  
  2829.  
  2830.  
  2831.  
  2832. Volume-Number: Volume 22, Number 34
  2833.  
  2834. From jsq@cs.utexas.edu  Fri Dec 21 16:03:17 1990
  2835. Received: from CS.UTEXAS.EDU by uunet.uu.net (5.61/1.14) with SMTP 
  2836.     id AA00467; Fri, 21 Dec 90 16:03:17 -0500
  2837. Posted-Date: 20 Dec 90 21:13:25 GMT
  2838. Received: by cs.utexas.edu (5.64/1.91) 
  2839. From: lewine@cheshirecat.webo.dg.com (Donald Lewine)
  2840. Newsgroups: comp.std.unix
  2841. Subject: qfork()
  2842. Message-Id: <16066@cs.utexas.edu>
  2843. Sender: jsq@cs.utexas.edu
  2844. X-Submissions: std-unix@uunet.uu.net
  2845. Date: 20 Dec 90 21:13:25 GMT
  2846. Reply-To: std-unix@uunet.uu.net
  2847. To: std-unix@uunet.uu.net
  2848.  
  2849. Submitted-by: lewine@cheshirecat.webo.dg.com (Donald Lewine)
  2850.  
  2851. [[I hope that this has not been covered in detail on comp.std.unix.  
  2852.   Delivery of the newsgroup has been uneven for the last few weeks.]]
  2853.  
  2854. [It's not been so much delivery as posting, due to lessened attention
  2855. on my part because of lack of funding, and also because of no snitch
  2856. reports.  -mod]
  2857.  
  2858. Draft 5 of POSIX.1a defines qfork() by saying:
  2859. "The qfork() function shall be identical to the fork() function with
  2860.  the following exception: behavior is undefined if the child process
  2861.  executes any code between the return from qfork() and the succeeding
  2862.  call to one of the exec functions or _exit()."
  2863.  
  2864. This seems to be a very harsh restriction.  The following code seems
  2865. like it would be undefined:
  2866.     status = qfork();
  2867.     if (status == 0) execve(...);
  2868.  
  2869. I would propose replacing the phrase: "executes any code" with "calls
  2870. any function defined in this standard or the C standard {8}"  I think
  2871. that does what you mean.
  2872.  
  2873. --------------------------------------------------------------------
  2874. Donald A. Lewine                (508) 870-9008 Voice
  2875. Data General Corporation        (508) 366-0750 FAX
  2876. 4400 Computer Drive. MS D112A
  2877. Westboro, MA 01580  U.S.A.
  2878.  
  2879. uucp: uunet!dg!lewine   Internet: lewine@cheshirecat.webo.dg.com
  2880.  
  2881. Volume-Number: Volume 22, Number 35
  2882.  
  2883. From jsq@cs.utexas.edu  Fri Dec 21 16:57:44 1990
  2884. Received: from CS.UTEXAS.EDU by uunet.uu.net (5.61/1.14) with SMTP 
  2885.     id AA12662; Fri, 21 Dec 90 16:57:44 -0500
  2886. Posted-Date: 21 Dec 90 20:25:01 GMT
  2887. Received: by cs.utexas.edu (5.64/1.91) 
  2888. From: thorinn@rimfaxe.diku.dk (Lars Henrik Mathiesen)
  2889. Newsgroups: comp.std.unix
  2890. Subject: Re: disabling TIOCGPGRP on pty master sides
  2891. Message-Id: <16068@cs.utexas.edu>
  2892. References: <15827@cs.utexas.edu> <15975@cs.utexas.edu>
  2893. Sender: jsq@cs.utexas.edu
  2894. Organization: Institute of Computer Science, U of Copenhagen
  2895. X-Submissions: std-unix@uunet.uu.net
  2896. Date: 21 Dec 90 20:25:01 GMT
  2897. Reply-To: std-unix@uunet.uu.net
  2898. To: std-unix@uunet.uu.net
  2899.  
  2900. Submitted-by: thorinn@rimfaxe.diku.dk (Lars Henrik Mathiesen)
  2901.  
  2902. rml@hpfcdc.fc.hp.com (Bob Lenk) writes:
  2903. >Again, pty master features are not covered by POSIX.  There are some
  2904. >tradeoffs between these two approaches.  Supplying the process group ID
  2905. >through the pty master means that if the process running controlling the
  2906. >master side is no privileged (typically root), it will be unable to
  2907. >send signals to processes that have changed user IDs (eg. su).  However,
  2908. >the ioctl to send a signal requires appropriate security checks in a
  2909. >production implementation.  There are questions as to what these need to
  2910. >be; I suggest that the process should be able to send any tty signals
  2911. >but no others, since any process/user on the slave slide accepted (at
  2912. >least implicitly) the possibility of receiving these when affiliating
  2913. >with a (pseudo) terminal.
  2914.  
  2915. We're discussing an ioctl, usable on a master pty to send terminal
  2916. signals to processes in the slave side's process group, right?
  2917.  
  2918. I'd very much hope that such an ioctl would include checks for the
  2919. termio settings of the slave side: A signal should only be allowed if
  2920. it would be possible to write a character on the master pty to achieve
  2921. the same result. (And then, why not do just that?)
  2922.  
  2923. Otherwise, a set-uid process that unsets the ISIG flag might be
  2924. subverted with unexpected signals by users running it under a pty.
  2925. (Personally, I'd block the signals as well, but I'm not everybody.)
  2926.  
  2927. --
  2928. Lars Mathiesen, DIKU, U of Copenhagen, Denmark      [uunet!]mcsun!diku!thorinn
  2929. Institute of Datalogy -- we're scientists, not engineers.      thorinn@diku.dk
  2930.  
  2931. Volume-Number: Volume 22, Number 36
  2932.  
  2933. From jsq@cs.utexas.edu  Sun Dec 23 13:56:32 1990
  2934. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  2935.     id AA03660; Sun, 23 Dec 90 13:56:32 -0500
  2936. Posted-Date: 22 Dec 90 05:38:33 GMT
  2937. Received: by cs.utexas.edu (5.64/1.92) 
  2938. From: sef@kithrup.COM (Sean Eric Fagan)
  2939. Newsgroups: comp.std.unix
  2940. Subject: Re: disabling TIOCGPGRP on pty master sides
  2941. Message-Id: <16118@cs.utexas.edu>
  2942. References: <15827@cs.utexas.edu> <15975@cs.utexas.edu> <16068@cs.utexas.edu>
  2943. Sender: jsq@cs.utexas.edu
  2944. Organization: Kithrup Enterprises, Ltd.
  2945. X-Submissions: std-unix@uunet.uu.net
  2946. Date: 22 Dec 90 05:38:33 GMT
  2947. Reply-To: std-unix@uunet.UU.NET
  2948. To: std-unix@uunet.UU.NET
  2949.  
  2950. Submitted-by: sef@kithrup.COM (Sean Eric Fagan)
  2951.  
  2952. In article <16068@cs.utexas.edu> thorinn@rimfaxe.diku.dk (Lars Henrik Mathiesen) writes:
  2953. >I'd very much hope that such an ioctl would include checks for the
  2954. >termio settings of the slave side: A signal should only be allowed if
  2955. >it would be possible to write a character on the master pty to achieve
  2956. >the same result. (And then, why not do just that?)
  2957.  
  2958. Because that won't support existing practice.
  2959.  
  2960. Emacs defines C-xC-c in shell mode to be "interrupt-shell-subjob."  It is
  2961. defined to send a SIGINT to the process group.  Not a control-c, or DEL, or
  2962. whatever you have your interrupt character defined as.  Note that emacs
  2963. terminates the shell by sending it (I believe) a SIGTERM.  What keyboard
  2964. sequence generates that signal?
  2965.  
  2966. -- 
  2967. Sean Eric Fagan  | "I made the universe, but please don't blame me for it;
  2968. sef@kithrup.COM  |  I had a bellyache at the time."
  2969. -----------------+           -- The Turtle (Stephen King, _It_)
  2970. Any opinions expressed are my own, and generally unpopular with others.
  2971.  
  2972. Volume-Number: Volume 22, Number 37
  2973.  
  2974. From jsq@cs.utexas.edu  Wed Dec 26 14:13:39 1990
  2975. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  2976.     id AA00241; Wed, 26 Dec 90 14:13:39 -0500
  2977. Posted-Date: 23 Dec 90 18:32:15 GMT
  2978. Received: by cs.utexas.edu (5.64/1.92) 
  2979. From: think!barmar@cs.utexas.edu (Barry Margolin)
  2980. Newsgroups: comp.std.unix
  2981. Subject: Re: disabling TIOCGPGRP on pty master sides
  2982. Message-Id: <16212@cs.utexas.edu>
  2983. References: <15975@cs.utexas.edu> <16068@cs.utexas.edu> <16118@cs.utexas.edu>
  2984. Sender: jsq@cs.utexas.edu
  2985. Organization: Thinking Machines Corporation, Cambridge MA, USA
  2986. X-Submissions: std-unix@uunet.uu.net
  2987. Date: 23 Dec 90 18:32:15 GMT
  2988. Reply-To: std-unix@uunet.UU.NET
  2989. To: std-unix@uunet.UU.NET
  2990.  
  2991. Submitted-by: barmar@think.uucp (Barry Margolin)
  2992.  
  2993. In article <16118@cs.utexas.edu> sef@kithrup.COM (Sean Eric Fagan) writes:
  2994. >In article <16068@cs.utexas.edu> thorinn@rimfaxe.diku.dk (Lars Henrik Mathiesen) writes:
  2995. >>I'd very much hope that such an ioctl would include checks for the
  2996. >>termio settings of the slave side: A signal should only be allowed if
  2997. >>it would be possible to write a character on the master pty to achieve
  2998. >>the same result. (And then, why not do just that?)
  2999.  
  3000. >Emacs defines C-xC-c in shell mode to be "interrupt-shell-subjob."  It is
  3001.            ^^^^^^
  3002.            C-cC-C
  3003. >defined to send a SIGINT to the process group.  Not a control-c, or DEL, or
  3004. >whatever you have your interrupt character defined as.
  3005.  
  3006. One problem I've run into with the current implementation is that it has
  3007. trouble when I run a setuid program in the shell buffer.  The Emacs process
  3008. can't send signals to the setuid process.  I ended up redefining C-cC-c and
  3009. C-cC-z to just stuff ^C and ^Z into the pty.
  3010.  
  3011. However, your idea of an ioctl to send a signal to the other side of a pty
  3012. (I assume that's what this is about, I missed the beginning of the
  3013. discussion) seems like it would be just right.  Normal terminal users
  3014. sometimes get stuck because a program disables control characters and then
  3015. a bug sends it into an infinite loop.  The problem is the multiplexing of
  3016. the keyboard for input to the program and process control.  On the other
  3017. hand, when a program is being run through a pty there is no need to disable
  3018. signals just because the signal *characters* are disabled.  Ioctls provide
  3019. the needed out-of-band mechanism for process control that is not available
  3020. on a real terminal.
  3021.  
  3022. --
  3023. Barry Margolin, Thinking Machines Corp.
  3024.  
  3025. barmar@think.com
  3026. {uunet,harvard}!think!barmar
  3027.  
  3028. Volume-Number: Volume 22, Number 38
  3029.  
  3030. From jsq@cs.utexas.edu  Wed Dec 26 14:23:58 1990
  3031. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3032.     id AA01606; Wed, 26 Dec 90 14:23:58 -0500
  3033. Posted-Date: 24 Dec 90 16:57:44 GMT
  3034. Received: by cs.utexas.edu (5.64/1.92) 
  3035. From: jason@cnd.hp.com (Jason Zions)
  3036. Newsgroups: comp.std.unix
  3037. Subject: Re: qfork()
  3038. Message-Id: <16213@cs.utexas.edu>
  3039. References: <16066@cs.utexas.edu>
  3040. Sender: jsq@cs.utexas.edu
  3041. Organization: Hewlett Packard, Information Networks Group
  3042. X-Submissions: std-unix@uunet.uu.net
  3043. Date: 24 Dec 90 16:57:44 GMT
  3044. Reply-To: std-unix@uunet.UU.NET
  3045. To: std-unix@uunet.UU.NET
  3046.  
  3047. Submitted-by: jason@cnd.hp.com (Jason Zions)
  3048.  
  3049. >"The qfork() function shall be identical to the fork() function with
  3050. > the following exception: behavior is undefined if the child process
  3051. > executes any code between the return from qfork() and the succeeding
  3052. > call to one of the exec functions or _exit()."
  3053. >
  3054. >This seems to be a very harsh restriction.  The following code seems
  3055. >like it would be undefined:
  3056. >    status = qfork();
  3057. >    if (status == 0) execve(...);
  3058. >
  3059. >I would propose replacing the phrase: "executes any code" with "calls
  3060. >any function defined in this standard or the C standard {8}"  I think
  3061. >that does what you mean.
  3062.  
  3063. I think that loosens the restriction too much.  The intent of the text, I
  3064. believe, is that *doing* anything between qfork() and exec*() results in
  3065. undefined behavior. Checking a variable doesn't *do* anything in this sense.
  3066. The text tries to sidestep the issue of "is qfork() a 4.2BSD-style
  3067. share-memory pseudo-fork or is it a real fork or what?" An application which
  3068. takes an action after qfork() and before exec*() that depends upon the
  3069. implementation of qfork() being any one of those things is inherently
  3070. unportable.
  3071.  
  3072. Instead of replacing "executes any code", I think you could just add the
  3073. phrase "which modifies memory or calls any function" and maintain the
  3074. intent. Examining variables doesn't depend upon the virtual memory
  3075. relationship between child and parent, but munging a stack for a function
  3076. call might behave differently and hence must be rendered undefined.
  3077.  
  3078. Jason Zions
  3079.  
  3080. Volume-Number: Volume 22, Number 39
  3081.  
  3082. From jsq@cs.utexas.edu  Thu Dec 27 12:21:19 1990
  3083. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3084.     id AA19339; Thu, 27 Dec 90 12:21:19 -0500
  3085. Posted-Date: 26 Dec 90 22:42:07 GMT
  3086. Received: by cs.utexas.edu (5.64/1.92) 
  3087. From: terri_watson@cis.ohio-state.edu
  3088. Newsgroups: comp.std.unix
  3089. Subject: Re: qfork()
  3090. Message-Id: <16243@cs.utexas.edu>
  3091. References: <16066@cs.utexas.edu> <16213@cs.utexas.edu>
  3092. Sender: jsq@cs.utexas.edu
  3093. Organization: Ohio State Computer Science
  3094. X-Submissions: std-unix@uunet.uu.net
  3095. Date: 26 Dec 90 22:42:07 GMT
  3096. Reply-To: std-unix@cs.utexas.edu
  3097. To: std-unix@cs.utexas.edu
  3098.  
  3099. Submitted-by: terri_watson@cis.ohio-state.edu
  3100.  
  3101. Of course assuming that the parent doesn't care about the return value
  3102. of qfork(), then one could manage to conform to the restrictions by:
  3103.  
  3104.     if (qfork() == 0) exit(execve(...));
  3105.  
  3106. or for the truly sick-at-heart:
  3107.  
  3108.     (status = qfork()) ? 1 : exit(execve(...));
  3109.  
  3110. (Of course it _could_ be argued that, in the second example, the very
  3111. assignment of status = qfork() violates the rules, but I thought the
  3112. humor value was high.)
  3113.  
  3114. But _I'm_ not writing code like that! <grin>
  3115.  
  3116. Terri
  3117.  
  3118.  
  3119. Volume-Number: Volume 22, Number 40
  3120.  
  3121. From jsq@cs.utexas.edu  Thu Dec 27 12:24:15 1990
  3122. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3123.     id AA19798; Thu, 27 Dec 90 12:24:15 -0500
  3124. Posted-Date: 26 Dec 90 22:54:50 GMT
  3125. Received: by cs.utexas.edu (5.64/1.92) 
  3126. From: think!barmar@cs.utexas.edu (Barry Margolin)
  3127. Newsgroups: comp.std.unix
  3128. Subject: Re: qfork()
  3129. Message-Id: <16244@cs.utexas.edu>
  3130. References: <16066@cs.utexas.edu> <16213@cs.utexas.edu>
  3131. Sender: jsq@cs.utexas.edu
  3132. Organization: Thinking Machines Corporation, Cambridge MA, USA
  3133. X-Submissions: std-unix@uunet.uu.net
  3134. Date: 26 Dec 90 22:54:50 GMT
  3135. Reply-To: std-unix@cs.utexas.edu
  3136. To: std-unix@cs.utexas.edu
  3137.  
  3138. Submitted-by: barmar@think.uucp (Barry Margolin)
  3139.  
  3140. In article <16213@cs.utexas.edu> jason@cnd.hp.com (Jason Zions) writes:
  3141. >Instead of replacing "executes any code", I think you could just add the
  3142. >phrase "which modifies memory or calls any function" and maintain the
  3143. >intent. Examining variables doesn't depend upon the virtual memory
  3144. >relationship between child and parent, but munging a stack for a function
  3145. >call might behave differently and hence must be rendered undefined.
  3146.  
  3147. Rather than "modifies memory" I suggest it be "modifies any variables" or
  3148. something like it that refers to high-level objects created by the C
  3149. program.  Just examining a variable may modify memory; on a stack machine,
  3150. comparing a variable with zero generally requires pushing the variable onto
  3151. the stack, and even on a register machine loading the variable into a
  3152. register might force the register's old value to be written to memory.
  3153. --
  3154. Barry Margolin, Thinking Machines Corp.
  3155.  
  3156. barmar@think.com
  3157. {uunet,harvard}!think!barmar
  3158.  
  3159. Volume-Number: Volume 22, Number 41
  3160.  
  3161. From jsq@cs.utexas.edu  Fri Dec 28 10:49:09 1990
  3162. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3163.     id AA21064; Fri, 28 Dec 90 10:49:09 -0500
  3164. Posted-Date: 27 Dec 90 18:56:25 GMT
  3165. Received: by cs.utexas.edu (5.64/1.92) 
  3166. From: peter@ficc.ferranti.com (Peter da Silva)
  3167. Newsgroups: comp.std.unix
  3168. Subject: Re: qfork()
  3169. Message-Id: <16271@cs.utexas.edu>
  3170. References: <16066@cs.utexas.edu>
  3171. Sender: jsq@cs.utexas.edu
  3172. Reply-To: peter@ficc.ferranti.com (Peter da Silva)
  3173. Organization: Xenix Support, FICC
  3174. X-Submissions: std-unix@uunet.uu.net
  3175. Date: 27 Dec 90 18:56:25 GMT
  3176. To: std-unix@uunet.UU.NET
  3177.  
  3178. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  3179.  
  3180. In article <16066@cs.utexas.edu> lewine@cheshirecat.webo.dg.com (Donald Lewine) writes:
  3181. > I would propose replacing the phrase: "executes any code" with "calls
  3182. > any function defined in this standard or the C standard {8}"  I think
  3183. > that does what you mean.
  3184.  
  3185. How about "executes any code that changes the state of the program". So,
  3186. for example:
  3187.  
  3188.     static int child;
  3189.  
  3190.     child = 0;
  3191.     if(qfork() == 0) {
  3192.         child = 1;
  3193.         exec...;
  3194.     }
  3195.  
  3196. At this point, unless I'm confused about legal interpretations of "qfork()",
  3197. the value of "child" is indeterminate.
  3198. -- 
  3199. Peter da Silva.   `-_-'    "Eat hot digital death, mainframe scum!"
  3200. +1 713 274 5180.   'U`          -- Attack of the Killer Micros.
  3201. peter@ferranti.com
  3202.  
  3203. Volume-Number: Volume 22, Number 43
  3204.  
  3205. From jsq@cs.utexas.edu  Fri Dec 28 20:11:33 1990
  3206. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3207.     id AA17414; Fri, 28 Dec 90 20:11:33 -0500
  3208. Posted-Date: 28 Dec 90 14:24:10 GMT
  3209. Received: by cs.utexas.edu (5.64/1.92) 
  3210. From: arnor!marc@cs.utexas.edu
  3211. Newsgroups: comp.std.unix
  3212. Subject: Re: qfork()
  3213. Message-Id: <16284@cs.utexas.edu>
  3214. References: <16066@cs.utexas.edu> <16213@cs.utexas.edu> <16245@cs.utexas.edu>
  3215. Sender: jsq@cs.utexas.edu
  3216. Organization: IBM T.J. Watson Research Center, Hawthorne, New York
  3217. X-Submissions: std-unix@uunet.uu.net
  3218. Date: 28 Dec 90 14:24:10 GMT
  3219. Reply-To: std-unix@uunet.UU.NET
  3220. To: std-unix@uunet.UU.NET
  3221.  
  3222. Submitted-by: marc@arnor.uucp
  3223.  
  3224. It would be useful to know why the function is being proposed.  One
  3225. assumes an efficiency improvement, which implies that the specifiers
  3226. have an implementation in mind.
  3227.  
  3228. Also, it should be remembered that unix systems don't execute C - they
  3229. execute machine instructions generated by the C compiler.  So it is
  3230. necessary to specify the behavior in machine terms if the compiler
  3231. writers are going to comply.  In particular, there is nothing to
  3232. prevent the compiler from moving certain computations to the space
  3233. between the qfork and the exec!  Does a compiler need to recognize
  3234. qfork and exec as special?
  3235.  
  3236. Finally - if the intent is to "bundle" fork and exec together,
  3237. assuming only that the fork succeeds, would it not be better to
  3238. propose fexec* - a set of exec calls which fork first?  Of course,
  3239. this makes it absolutely clear that nothing can happen between fork
  3240. and exec.  If the combined function is then deemed useless, how can
  3241. the qfork/exec idiom be better?
  3242. --
  3243.  
  3244. Marc Auslander       <marc@ibm.com>
  3245.  
  3246.  
  3247. Volume-Number: Volume 22, Number 44
  3248.  
  3249. From jsq@cs.utexas.edu  Fri Dec 28 22:16:38 1990
  3250. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3251.     id AA00675; Fri, 28 Dec 90 22:16:38 -0500
  3252. Posted-Date: 29 Dec 90 02:29:38 GMT
  3253. Received: by cs.utexas.edu (5.64/1.92) 
  3254. From: thorinn@diku.dk (Lars Henrik Mathiesen)
  3255. Newsgroups: comp.std.unix
  3256. Subject: Re: disabling TIOCGPGRP on pty master sides
  3257. Message-Id: <16290@cs.utexas.edu>
  3258. References: <15827@cs.utexas.edu> <15975@cs.utexas.edu> <16068@cs.utexas.edu> <16118@cs.utexas.edu>
  3259. Sender: jsq@cs.utexas.edu
  3260. Organization: Institute of Computer Science, U of Copenhagen
  3261. X-Submissions: std-unix@uunet.uu.net
  3262. Date: 29 Dec 90 02:29:38 GMT
  3263. Reply-To: std-unix@uunet.UU.NET
  3264. To: std-unix@uunet.UU.NET
  3265.  
  3266. Submitted-by: thorinn@diku.dk (Lars Henrik Mathiesen)
  3267.  
  3268. sef@kithrup.COM (Sean Eric Fagan) writes:
  3269. >thorinn@rimfaxe.diku.dk (Lars Henrik Mathiesen) writes:
  3270. >>I'd very much hope that such an ioctl would include checks for the
  3271. >>termio settings of the slave side: A signal should only be allowed if
  3272. >>it would be possible to write a character on the master pty to achieve
  3273. >>the same result. (And then, why not do just that?)
  3274.  
  3275. >Because that won't support existing practice.
  3276.  
  3277. >Emacs defines C-xC-c in shell mode to be "interrupt-shell-subjob."  It is
  3278. >defined to send a SIGINT to the process group.  Not a control-c, or DEL, or
  3279. >whatever you have your interrupt character defined as.  Note that emacs
  3280. >terminates the shell by sending it (I believe) a SIGTERM.  What keyboard
  3281. >sequence generates that signal?
  3282.     
  3283. That is exactly the point: Keyboard generated signals are more
  3284. powerful than the kill system call, because uids are not checked.
  3285. Under ``existing practice'' you can send SIGINT, SIGQUIT or SIGTSTP to
  3286. all processes in the process group of a pseudo-tty, _even_if_ some of
  3287. them are set-uid to someone else.
  3288.  
  3289. But a set-uid root program can assume that a SIGTERM comes from a
  3290. super-user. If a new ioctl allows any signal to be sent without
  3291. checking uids, the rules have been changed (not nice). If it checks
  3292. uids for all signals, it's less powerful than keyboard signals, and
  3293. why bother to learn about it?
  3294.  
  3295. By the way, I will hazard a guess: Most, if not all, of the UNIX
  3296. variants where the existing practice of Emacs doesn't work will have
  3297. SYSV termios ioctls. So instead of putting in ifdefs for two or three
  3298. subtly incompatible new TIOCSENDSIGs, we might as well put in the four
  3299. lines to get a termios structure and stuff the appropriate character
  3300. down the master pty.
  3301.  
  3302. --
  3303. Lars Mathiesen, DIKU, U of Copenhagen, Denmark      [uunet!]mcsun!diku!thorinn
  3304. Institute of Datalogy -- we're scientists, not engineers.      thorinn@diku.dk
  3305.  
  3306.  
  3307. Volume-Number: Volume 22, Number 45
  3308.  
  3309. From jsq@cs.utexas.edu  Sat Dec 29 12:42:39 1990
  3310. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3311.     id AA05500; Sat, 29 Dec 90 12:42:39 -0500
  3312. Posted-Date: 29 Dec 90 04:25:11 GMT
  3313. Received: by cs.utexas.edu (5.64/1.92) 
  3314. From: sef@kithrup.COM (Sean Eric Fagan)
  3315. Newsgroups: comp.std.unix
  3316. Subject: Re: disabling TIOCGPGRP on pty master sides
  3317. Message-Id: <16306@cs.utexas.edu>
  3318. References: <16068@cs.utexas.edu> <16118@cs.utexas.edu> <16290@cs.utexas.edu>
  3319. Sender: jsq@cs.utexas.edu
  3320. Organization: Kithrup Enterprises, Ltd.
  3321. X-Submissions: std-unix@uunet.uu.net
  3322. Date: 29 Dec 90 04:25:11 GMT
  3323. Reply-To: std-unix@uunet.UU.NET
  3324. To: std-unix@uunet.UU.NET
  3325.  
  3326. Submitted-by: sef@kithrup.COM (Sean Eric Fagan)
  3327.  
  3328. In article <16290@cs.utexas.edu> thorinn@diku.dk (Lars Henrik Mathiesen) writes:
  3329. >By the way, I will hazard a guess: Most, if not all, of the UNIX
  3330. >variants where the existing practice of Emacs doesn't work will have
  3331. >SYSV termios ioctls. 
  3332.  
  3333. Yep.  All POSIX systems.
  3334.  
  3335. >So instead of putting in ifdefs for two or three
  3336. >subtly incompatible new TIOCSENDSIGs, we might as well put in the four
  3337. >lines to get a termios structure and stuff the appropriate character
  3338. >down the master pty.
  3339.  
  3340. (shell)
  3341. <stuff>
  3342. kithrup 341> stty intr ^Y
  3343. kithrup 342> <C-cC-c>^?<C-cC-c>^?<C-cC-c>^?<C-cC-c>^?
  3344.  
  3345. Gosh.  It doesn't seem to be sending the control-y to the slave side of the
  3346. pty!  And, gosh, if it tries to do a TCGETAW, it just hangs!  (Actually, I
  3347. think it gets a SIGTTIN.)
  3348.  
  3349. Some of this is SCO specific.  But without rewriting the pty driver, *any*
  3350. POSIX system with ptys is going to have the same problem (since sco's pty
  3351. drivers aren't that different from berkeley's).
  3352.  
  3353. According to email I exchanged with someone at CSRG, 4.4 will support the
  3354. old method, but as an obsolescent feature.
  3355.  
  3356. If the text is so ambiguous that it is implemented differently on every
  3357. system, that means that you will need more ifdef's than with just the
  3358. TIOCSIG ioctl.
  3359.  
  3360. -- 
  3361. Sean Eric Fagan  | "I made the universe, but please don't blame me for it;
  3362. sef@kithrup.COM  |  I had a bellyache at the time."
  3363. -----------------+           -- The Turtle (Stephen King, _It_)
  3364. Any opinions expressed are my own, and generally unpopular with others.
  3365.  
  3366. Volume-Number: Volume 22, Number 46
  3367.  
  3368. From jsq@cs.utexas.edu  Sat Dec 29 12:45:38 1990
  3369. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3370.     id AA05844; Sat, 29 Dec 90 12:45:38 -0500
  3371. Posted-Date: 28 Dec 90 20:54:07 GMT
  3372. Received: by cs.utexas.edu (5.64/1.92) 
  3373. From: jfh@rpp386.cactus.org (John F Haugh II)
  3374. Newsgroups: comp.std.unix
  3375. Subject: Re: qfork()
  3376. Message-Id: <16307@cs.utexas.edu>
  3377. References: <16066@cs.utexas.edu> <16271@cs.utexas.edu>
  3378. Sender: jsq@cs.utexas.edu
  3379. Reply-To: jfh@rpp386.cactus.org (John F Haugh II)
  3380. Organization: Lone Star Cafe and BBS Service
  3381. X-Submissions: std-unix@uunet.uu.net
  3382. Date: 28 Dec 90 20:54:07 GMT
  3383. To: std-unix@uunet.UU.NET
  3384.  
  3385. Submitted-by: jfh@rpp386.cactus.org (John F Haugh II)
  3386.  
  3387. In article <16271@cs.utexas.edu> peter@ficc.ferranti.com (Peter da Silva) writes:
  3388. >How about "executes any code that changes the state of the program". So,
  3389. >for example:
  3390.  
  3391. executing =any= code changes the state of the program.  that's the whole
  3392. problem with this restriction - how much code is too much.
  3393.  
  3394. >At this point, unless I'm confused about legal interpretations of "qfork()",
  3395. >the value of "child" is indeterminate.
  3396.  
  3397. what is probably needed is a "spawn()" function (god, i never thought i'd
  3398. advocate such a critter) which can be responsible for understanding the
  3399. legalese.  if the only thing you can do after "qfork()" is "exec()", why
  3400. not merge the two steps into a single function?  sounds like the only way
  3401. to get it right anyhow.
  3402. -- 
  3403. John F. Haugh II                             UUCP: ...!cs.utexas.edu!rpp386!jfh
  3404. Ma Bell: (512) 832-8832                           Domain: jfh@rpp386.cactus.org
  3405. "While you are here, your wives and girlfriends are dating handsome American
  3406.  movie and TV stars. Stars like Tom Selleck, Bruce Willis, and Bart Simpson."
  3407.  
  3408. Volume-Number: Volume 22, Number 47
  3409.  
  3410. From jsq@cs.utexas.edu  Mon Dec 31 16:04:46 1990
  3411. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3412.     id AA29285; Mon, 31 Dec 90 16:04:46 -0500
  3413. Posted-Date: 30 Dec 90 03:11:23 GMT
  3414. Received: by cs.utexas.edu (5.64/1.92) 
  3415. From: peter@ficc.ferranti.com (Peter da Silva)
  3416. Newsgroups: comp.std.unix
  3417. Subject: Re: qfork() (The Spawn of spawn())
  3418. Message-Id: <16369@cs.utexas.edu>
  3419. References: <16066@cs.utexas.edu> <16271@cs.utexas.edu> <16307@cs.utexas.edu>
  3420. Sender: jsq@cs.utexas.edu
  3421. Reply-To: peter@ficc.ferranti.com (Peter da Silva)
  3422. Organization: Xenix Support, FICC
  3423. X-Submissions: std-unix@uunet.uu.net
  3424. Date: 30 Dec 90 03:11:23 GMT
  3425. To: std-unix@uunet.UU.NET
  3426.  
  3427. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  3428.  
  3429. In article <16307@cs.utexas.edu> jfh@rpp386.cactus.org (John F Haugh II) writes:
  3430. > what is probably needed is a "spawn()" function (god, i never thought i'd
  3431. > advocate such a critter) which can be responsible for understanding the
  3432. > legalese.
  3433.  
  3434. Wow, this is the same man who ever so politely flamed me for daring to make
  3435. such a suggestion. fork can be implemented on a large number of O/Ses, but
  3436. it's rather expensive. If the POSIX standard includes something like a
  3437. spawn(), that'll sure increase the efficiency of a lot of POSIX software on
  3438. systems that have been shoehorned into the model.
  3439.  
  3440. Yes, fork() is a cleaner method of creating new processes. Yes, it takes
  3441. a fairly complex calling sequence to get spawn() to have anything like
  3442. the functionality of fork()...exec(). But I think it'd be worthwhile to
  3443. let a little heresy in in exchange for making POSIX more palatable to
  3444. folks in poorer environments.
  3445.  
  3446. The few cases where spawn() won't fit would usually be better addressed by
  3447. something like threads anyway...
  3448. -- 
  3449. Peter da Silva.   `-_-'    "Eat hot digital death, mainframe scum!"
  3450. +1 713 274 5180.   'U`          -- Attack of the Killer Micros.
  3451. peter@ferranti.com
  3452.  
  3453. Volume-Number: Volume 22, Number 48
  3454.  
  3455. From jsq@cs.utexas.edu  Mon Dec 31 16:09:13 1990
  3456. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3457.     id AA29615; Mon, 31 Dec 90 16:09:13 -0500
  3458. Posted-Date: 30 Dec 90 16:17:40 GMT
  3459. Received: by cs.utexas.edu (5.64/1.92) 
  3460. From: tmsoft!mason@cs.utexas.edu (Dave Mason)
  3461. Newsgroups: comp.std.unix
  3462. Subject: Re: qfork()
  3463. Message-Id: <16370@cs.utexas.edu>
  3464. References: <16066@cs.utexas.edu> <16271@cs.utexas.edu> <16307@cs.utexas.edu>
  3465. Sender: jsq@cs.utexas.edu
  3466. Reply-To: tmsoft!mason@cs.utexas.edu (Dave Mason)
  3467. Organization: TM Software Associates, Toronto
  3468. X-Submissions: std-unix@uunet.uu.net
  3469. Date: 30 Dec 90 16:17:40 GMT
  3470. To: std-unix@uunet.UU.NET
  3471.  
  3472. Submitted-by: mason@tmsoft.uucp (Dave Mason)
  3473.  
  3474. In article <16307@cs.utexas.edu> jfh@rpp386.cactus.org (John F Haugh II) writes:
  3475. >Submitted-by: jfh@rpp386.cactus.org (John F Haugh II)
  3476. >In article <16271@cs.utexas.edu> peter@ficc.ferranti.com (Peter da Silva) writes:
  3477. >>How about "executes any code that changes the state of the program". So,
  3478. >>for example:
  3479. >executing =any= code changes the state of the program.  that's the whole
  3480. >problem with this restriction - how much code is too much.
  3481.  
  3482. The real requirement is presumably: ``Must not execute any code that
  3483. changes MEMORY.'' As both the parent and child have their own register
  3484. sets.  Now, expressing that in a high-level way that is portable may
  3485. be quite a trick.  (Think of SPARC vs. 386 vs. HP/3000!)
  3486.  
  3487. >>At this point, unless I'm confused about legal interpretations of "qfork()",
  3488. >>the value of "child" is indeterminate.
  3489.  
  3490. Not if it's a register variable.
  3491.  
  3492. >what is probably needed is a "spawn()" function (god, i never thought i'd
  3493. >advocate such a critter) which can be responsible for understanding the
  3494. >legalese.  if the only thing you can do after "qfork()" is "exec()", why
  3495. >not merge the two steps into a single function?  sounds like the only way
  3496. >to get it right anyhow.
  3497.  
  3498. Not really.  Assuming qfork in the parent can make sure there is
  3499. nothing on its stack (that it needs to retrieve later) before it
  3500. executes the system call instruction, and the child doesn't do
  3501. anything except:
  3502.   a) make system calls that change its KERNEL state (open files, UID, etc.)
  3503.   b) change register variables
  3504. qfork can do everything useful that vfork can. (And because there's no
  3505. memory being changed by the child that can be inspected by the parent, a
  3506. fork implementation of qfork is still legal.)
  3507.  
  3508. (Personally I think the whole vfork/qfork/spawn thing is a horrible hack,
  3509. but if we're going to be stuck with it, lets at least do it right!)
  3510.  
  3511. -- 
  3512. "Don't break it if you can't fix it."                             ../Dave Mason
  3513.                                                   <mason%tmsoft@cs.toronto.edu>
  3514.  
  3515. Volume-Number: Volume 22, Number 49
  3516.  
  3517. From jsq@cs.utexas.edu  Mon Dec 31 16:19:17 1990
  3518. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3519.     id AA00590; Mon, 31 Dec 90 16:19:17 -0500
  3520. Posted-Date: 31 Dec 90 17:39:01 GMT
  3521. Received: by cs.utexas.edu (5.64/1.92) 
  3522. From: jason@cnd.hp.com (Jason Zions)
  3523. Newsgroups: comp.std.unix
  3524. Subject: Re: qfork()
  3525. Message-Id: <16372@cs.utexas.edu>
  3526. References: <16243@cs.utexas.edu> <16244@cs.utexas.edu> <16245@cs.utexas.edu> <16271@cs.utexas.edu> <16284@cs.utexas.edu> <16307@cs.utexas.edu> <16369@cs.utexas.edu> <16370@cs.utexas.edu>
  3527. Sender: jsq@cs.utexas.edu
  3528. Organization: Hewlett Packard, Information Networks Group
  3529. X-Submissions: std-unix@uunet.uu.net
  3530. Date: 31 Dec 90 17:39:01 GMT
  3531. Reply-To: std-unix@uunet.UU.NET
  3532. To: std-unix@uunet.UU.NET
  3533.  
  3534. Submitted-by: jason@cnd.hp.com (Jason Zions)
  3535.  
  3536. >Also, it should be remembered that unix systems don't execute C - they
  3537. >execute machine instructions generated by the C compiler.  So it is
  3538. >necessary to specify the behavior in machine terms if the compiler
  3539. >writers are going to comply.  In particular, there is nothing to
  3540. >prevent the compiler from moving certain computations to the space
  3541. >between the qfork and the exec!  Does a compiler need to recognize
  3542. >qfork and exec as special?
  3543.  
  3544. That's specious. Of *course* the compiler needs to recognize system calls as
  3545. sync points. It wouldn't do for the compiler to migrate the instructions
  3546. which initialize a write() buffer to after the write() call, would it?
  3547.  
  3548. >Finally - if the intent is to "bundle" fork and exec together,
  3549. >assuming only that the fork succeeds, would it not be better to
  3550. >propose fexec* - a set of exec calls which fork first?  Of course,
  3551. >this makes it absolutely clear that nothing can happen between fork
  3552. >and exec.  If the combined function is then deemed useless, how can
  3553. >the qfork/exec idiom be better?
  3554.  
  3555. Um, how about "existing practice"? More than that, there's a whole raft of
  3556. common extensions revolving around various forms of qfork() that many would
  3557. like to see remain as possible extensions.
  3558.  
  3559. Jazz
  3560.  
  3561. Volume-Number: Volume 22, Number 50
  3562.  
  3563. From jsq@cs.utexas.edu  Tue Jan  1 14:06:23 1991
  3564. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3565.     id AA00214; Tue, 1 Jan 91 14:06:23 -0500
  3566. Posted-Date: 1 Jan 91 03:08:13 GMT
  3567. Received: by cs.utexas.edu (5.64/1.92) 
  3568. From: jgd@csd4.csd.uwm.edu (John G Dobnick)
  3569. Newsgroups: comp.std.unix
  3570. Subject: Finding physical memory size
  3571. Message-Id: <16397@cs.utexas.edu>
  3572. Sender: jsq@cs.utexas.edu
  3573. Reply-To: jgd@csd4.csd.uwm.edu
  3574. X-Submissions: std-unix@uunet.uu.net
  3575. Date: 1 Jan 91 03:08:13 GMT
  3576. To: std-unix@uunet.UU.NET
  3577.  
  3578. Submitted-by: jgd@csd4.csd.uwm.edu (John G Dobnick)
  3579.  
  3580. This is perhaps a silly question, but since I haven't used this year's
  3581. quota of silliness yet... :-)
  3582.  
  3583.  
  3584. Our CONVEX system, which claims POSIX compliance, has a system call
  3585. that returns "system configuration" information.  If my memory serves
  3586. (I'd check, but the books are at work, and the machine is being "PM"ed),
  3587. the C-library function 'getsysinfo' retrieves this information.  Among
  3588. the items retrieved are
  3589.  
  3590.     System type
  3591.     Operating system type
  3592.     Operating system level (or version number)
  3593.     Processor type
  3594.     Processor serial number
  3595.     number of Processors (But, with multiple processors, shouldn't
  3596.                   we also get multiple serial numbers?  Hmmm.)
  3597.     Processor option mask (I believe this is an 'extension')
  3598.     Memory interleave factor (also an extension, I believe)
  3599.  
  3600. One item glaringly missing is the size of physical memory installed.
  3601. The writeup for the function claims it returns "system information", not
  3602. "CPU information".   In my book, a "system" includes processors AND
  3603. memory.
  3604.  
  3605. My question, to those of you who know what happened in the
  3606. standardization process is threefold:
  3607.  
  3608.     a) Was memory size even considered for inclusion in the
  3609.        'getsysinfo' (or whatever it's really named) call.
  3610.  
  3611.     b) If is was considered, why was it not included.
  3612.  
  3613.     c) How does one interrogate the system, in a 'standard' way,
  3614.        to determine physical memory size?   (My initial guess is
  3615.        that the answer will be "You don't.")
  3616.  
  3617. Have a Happy New Year, folks!
  3618. -- 
  3619. John G Dobnick  (JGD2)
  3620. Computing Services Division @ University of Wisconsin - Milwaukee
  3621. INTERNET: jgd@csd4.csd.uwm.edu             ATTnet: (414) 229-5727
  3622. UUCP: uunet!uwm!csd4.csd.uwm.edu!jgd
  3623.  
  3624. "Knowing how things work is the basis for appreciation,
  3625. and is thus a source of civilized delight."  -- William Safire
  3626.  
  3627. Volume-Number: Volume 22, Number 51
  3628.  
  3629. From jsq@cs.utexas.edu  Thu Jan  3 18:20:44 1991
  3630. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3631.     id AA26521; Thu, 3 Jan 91 18:20:44 -0500
  3632. Posted-Date: 2 Jan 91 01:59:35 GMT
  3633. Received: by cs.utexas.edu (5.64/1.92) 
  3634. From: henry@zoo.toronto.edu (Henry Spencer)
  3635. Newsgroups: comp.std.unix
  3636. Subject: Re: Finding physical memory size
  3637. Message-Id: <16470@cs.utexas.edu>
  3638. References: <16397@cs.utexas.edu>
  3639. Sender: jsq@cs.utexas.edu
  3640. Organization: U of Toronto Zoology
  3641. X-Submissions: std-unix@uunet.uu.net
  3642. Date: 2 Jan 91 01:59:35 GMT
  3643. Reply-To: std-unix@uunet.UU.NET
  3644. To: std-unix@uunet.UU.NET
  3645.  
  3646. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  3647.  
  3648. In article <16397@cs.utexas.edu> jgd@csd4.csd.uwm.edu writes:
  3649. >Our CONVEX system, which claims POSIX compliance, has a system call
  3650. >that returns "system configuration" information...
  3651.  
  3652. It is important to understand that "POSIX compliant" invariably means
  3653. "POSIX superset", since many significant functions are not part of the
  3654. current POSIX standard, 1003.1.  There is no POSIX `getsysinfo' call.
  3655. The closest you get is `sysconf()', which can be used to ask about a
  3656. few things like the maximum number of open files.  None of the things
  3657. you mention are in the list.
  3658.  
  3659. >    c) How does one interrogate the system, in a 'standard' way,
  3660. >       to determine physical memory size?   (My initial guess is
  3661. >       that the answer will be "You don't.")
  3662.  
  3663. Correct.  In any case, it is typically not a very useful piece of
  3664. information, since there is no simple correlation between the size of
  3665. physical memory and how much your program is allowed to use.
  3666. -- 
  3667. "The average pointer, statistically,    |Henry Spencer at U of Toronto Zoology
  3668. points somewhere in X." -Hugh Redelmeier| henry@zoo.toronto.edu   utzoo!henry
  3669.  
  3670. Volume-Number: Volume 22, Number 52
  3671.  
  3672. From jsq@cs.utexas.edu  Thu Jan  3 19:03:08 1991
  3673. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3674.     id AA04252; Thu, 3 Jan 91 19:03:08 -0500
  3675. Posted-Date: 2 Jan 91 13:17:31 GMT
  3676. Received: by cs.utexas.edu (5.64/1.92) 
  3677. From: jfh@rpp386.cactus.org (John F Haugh II)
  3678. Newsgroups: comp.std.unix
  3679. Subject: Re: qfork()
  3680. Message-Id: <16474@cs.utexas.edu>
  3681. References: <16066@cs.utexas.edu> <16271@cs.utexas.edu> <16307@cs.utexas.edu> <16370@cs.utexas.edu>
  3682. Sender: jsq@cs.utexas.edu
  3683. Reply-To: jfh@rpp386.cactus.org (John F Haugh II)
  3684. Organization: Lone Star Cafe and BBS Service
  3685. X-Submissions: std-unix@uunet.uu.net
  3686. Date: 2 Jan 91 13:17:31 GMT
  3687. To: std-unix@uunet.UU.NET
  3688.  
  3689. Submitted-by: jfh@rpp386.cactus.org (John F Haugh II)
  3690.  
  3691. In article <16370@cs.utexas.edu> mason@tmsoft.uucp (Dave Mason) writes:
  3692. >The real requirement is presumably: ``Must not execute any code that
  3693. >changes MEMORY.'' As both the parent and child have their own register
  3694. >sets.  Now, expressing that in a high-level way that is portable may
  3695. >be quite a trick.  (Think of SPARC vs. 386 vs. HP/3000!)
  3696.  
  3697. Yes, that is the essence of the problem - there are CPUs out there
  3698. which have a very small number of CPU registers (perhaps only two
  3699. or three) available to the user.  As I recall, the TI 9900 has one
  3700. register which points to a location in memory where the rest of the
  3701. "registers" exist, and of course older HP CPU's have their own ideas
  3702. about where data is stored.
  3703. -- 
  3704. John F. Haugh II                             UUCP: ...!cs.utexas.edu!rpp386!jfh
  3705. Ma Bell: (512) 832-8832                           Domain: jfh@rpp386.cactus.org
  3706. "While you are here, your wives and girlfriends are dating handsome American
  3707.  movie and TV stars. Stars like Tom Selleck, Bruce Willis, and Bart Simpson."
  3708.  
  3709. Volume-Number: Volume 22, Number 53
  3710.  
  3711. From jsq@cs.utexas.edu  Thu Jan  3 19:15:04 1991
  3712. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3713.     id AA05872; Thu, 3 Jan 91 19:15:04 -0500
  3714. Posted-Date: 2 Jan 91 19:15:16 GMT
  3715. Received: by cs.utexas.edu (5.64/1.92) 
  3716. From: schnoebe@convex.com (Eric Schnoebelen)
  3717. Newsgroups: comp.std.unix
  3718. Subject: Re: Finding physical memory size
  3719. Message-Id: <16475@cs.utexas.edu>
  3720. References: <16397@cs.utexas.edu>
  3721. Sender: jsq@cs.utexas.edu
  3722. Organization: Convex Computer Corporation, Richardson, Tx.
  3723. X-Submissions: std-unix@uunet.uu.net
  3724. Date: 2 Jan 91 19:15:16 GMT
  3725. Reply-To: std-unix@uunet.UU.NET
  3726. To: std-unix@uunet.UU.NET
  3727.  
  3728. Submitted-by: schnoebe@convex.com (Eric Schnoebelen)
  3729.  
  3730. jgd@csd4.csd.uwm.edu writes in <16397@cs.utexas.edu>:
  3731. -Submitted-by: jgd@csd4.csd.uwm.edu (John G Dobnick)
  3732. -
  3733. -Our CONVEX system, which claims POSIX compliance, has a system call
  3734. -that returns "system configuration" information.
  3735.  
  3736.     First off, getsysinfo(2) is not a POSIX standard routine.  It
  3737. is an extension to UNIX that Convex has supported for quite some time.
  3738. It is not available in the conforming modes of the C development
  3739. environment (compiler and libraries), only the extended/backwards
  3740. compatible modes.
  3741.  
  3742.     The features of getsysinfo(2) are available as part of the
  3743. uname(2) call as well, as an extension to the standard uname
  3744. structure.
  3745.  
  3746. -One item glaringly missing is the size of physical memory installed.
  3747. -The writeup for the function claims it returns "system information", not
  3748. -"CPU information".   In my book, a "system" includes processors AND
  3749. -memory.
  3750. -
  3751. -My question, to those of you who know what happened in the
  3752. -standardization process is threefold:
  3753. -
  3754. -    a) Was memory size even considered for inclusion in the
  3755. -       'getsysinfo' (or whatever it's really named) call.
  3756.  
  3757.     According to the standard, the only things that have to be
  3758. returned by uname(2) are the system (implementation) name, the node
  3759. (host) name, the release name, the version name, and the hardware type
  3760. name. See page 77, section 4.4 of the little green book.
  3761.  
  3762. -    c) How does one interrogate the system, in a 'standard' way,
  3763. -       to determine physical memory size?   (My initial guess is
  3764. -       that the answer will be "You don't.")
  3765.  
  3766.     Correct!.  For the Convexen, you  might try contacting the TAC,
  3767. and asking them. I seem to remember a little program that determines
  3768. just that floating around.
  3769.  
  3770. --
  3771. Eric Schnoebelen        eric@cirr.com        schnoebe@convex.com
  3772.     Biology is the only science in which multiplication means the
  3773.             same thing as division.
  3774.  
  3775. Volume-Number: Volume 22, Number 54
  3776.  
  3777. From jsq@cs.utexas.edu  Thu Jan  3 20:15:19 1991
  3778. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3779.     id AA17052; Thu, 3 Jan 91 20:15:19 -0500
  3780. Posted-Date: 3 Jan 91 09:42:04 GMT
  3781. Received: by cs.utexas.edu (5.64/1.92) 
  3782. From: guido@cwi.nl (Guido van Rossum)
  3783. Newsgroups: comp.std.unix
  3784. Subject: Re: qfork() (The Spawn of spawn())
  3785. Message-Id: <16478@cs.utexas.edu>
  3786. References: <16066@cs.utexas.edu> <16271@cs.utexas.edu> <16307@cs.utexas.edu> <16369@cs.utexas.edu>
  3787. Sender: jsq@cs.utexas.edu
  3788. X-Submissions: std-unix@uunet.uu.net
  3789. Date: 3 Jan 91 09:42:04 GMT
  3790. Reply-To: std-unix@uunet.UU.NET
  3791. To: std-unix@uunet.UU.NET
  3792.  
  3793. Submitted-by: guido@cwi.nl (Guido van Rossum)
  3794.  
  3795. peter@ficc.ferranti.com (Peter da Silva) writes:
  3796.  
  3797. >Yes, fork() is a cleaner method of creating new processes. Yes, it takes
  3798. >a fairly complex calling sequence to get spawn() to have anything like
  3799. >the functionality of fork()...exec(). But I think it'd be worthwhile to
  3800. >let a little heresy in in exchange for making POSIX more palatable to
  3801. >folks in poorer environments.
  3802.  
  3803. I know of precedents even in OS'es that support fork(): Amoeba and
  3804. Topaz support a variant of what you call spawn().  (Note that the
  3805. spawn() functions found in Microsoft C for MS-DOS emulate either just
  3806. exec() or fork()+exec()+wait(), which is much less powerful, but
  3807. all that MS-DOS can support (last time I looked).)
  3808.  
  3809. Amoeba's UNIX emulation supports fork(), but since Amoeba has no virtual
  3810. memory (yet), it is fairly expensive.  An alternative function is
  3811. provided, "newproc()", which creates a child process running a
  3812. different program (and, because it is Amoeba, also running on a
  3813. different processor, in the average case) just like fork()+exec() would
  3814. do, only much cheaper since the parent's address space never gets
  3815. copied.
  3816.  
  3817. Amoeba's newproc() lets you change the two perhaps most important
  3818. bits of "kernel state" that programs fiddle between fork() and exec():
  3819. the set of signals to be ignored and the set of open file descriptors.
  3820. The interface lets you specify a bitmask of signals that are to be
  3821. ignored in the child (or -1 to inherit the parent's ignored signals)
  3822. and an array of file descriptors which provides a mapping between file
  3823. descriptors in the parent and in the child (also with an option to
  3824. inherit all file descriptors from the parent).
  3825.  
  3826. Amoeba's library functions popen() and system() have been changed to
  3827. use newproc(), and the shell uses newproc() for most simple program
  3828. invocations (environment manipulations and a few other things make it
  3829. fall back on fork()).  The performance gain was well worth the hacking.
  3830.  
  3831. The newproc() interface could also be implemented on UNIX using
  3832. [v]fork() and exec(), although extreme cases of file descriptor
  3833. permutations could fail if not enough spare file descriptors were
  3834. available.
  3835.  
  3836. The Topaz operating system (an Ultrix clone for Firefly multiprocessors
  3837. developed at DEC's System Research Centre in Palo Alto) has a similar
  3838. but more complete feature in its Modula-2+ (and now Modula-3?) version
  3839. of the OS interface, not because Topaz doesn't have virtual memory (it
  3840. does), but because the average Modula-2+ binary is several megabytes.
  3841.  
  3842. In Topaz, you create a descriptor for the new process, which represents
  3843. its relevant kernel state.  The descriptor is initialized to inherit
  3844. all state from the parent, and you can call library functions that
  3845. modify various parts of the descriptor; this is the equivalent of what
  3846. you would do between fork() and exec() in real UNIX.  Finally you make
  3847. a system call that presents the descriptor to the kernel for creation.
  3848. Yes, it's a bit more tedious, but it has all the required
  3849. functionality, unlike (it seems to me) the proposed qfork() with its
  3850. not-well-understood restrictions on modifying memory.
  3851.  
  3852. --Guido
  3853.  
  3854. --
  3855. Guido van Rossum, CWI, Amsterdam <guido@cwi.nl>
  3856. "Well I'm a plumber.  I can't act."
  3857.  
  3858. Volume-Number: Volume 22, Number 55
  3859.  
  3860. From jsq@cs.utexas.edu  Thu Jan  3 20:21:54 1991
  3861. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3862.     id AA18508; Thu, 3 Jan 91 20:21:54 -0500
  3863. Posted-Date: 3 Jan 91 15:59:27 GMT
  3864. Received: by cs.utexas.edu (5.64/1.92) 
  3865. From: donn@hpfcdc.fc.hp.com (Donn Terry)
  3866. Newsgroups: comp.std.unix
  3867. Subject: Re: qfork()
  3868. Message-Id: <16479@cs.utexas.edu>
  3869. References: <16307@cs.utexas.edu>
  3870. Sender: jsq@cs.utexas.edu
  3871. X-Submissions: std-unix@uunet.uu.net
  3872. Date: 3 Jan 91 15:59:27 GMT
  3873. Reply-To: std-unix@uunet.UU.NET
  3874. To: std-unix@uunet.UU.NET
  3875.  
  3876. Submitted-by: donn@hpfcdc.fc.hp.com (Donn Terry)
  3877.  
  3878. To add to the qfork discussion:
  3879.  
  3880. 1) The purpose of qfork() is similar to that of vfork(), but detailed 
  3881.    discussions end up showing that there really is nothing that is safe
  3882.    to do between the qfork() and the exec() that will not cause problems
  3883.    on some architecture or other.  That's the reason for the name change
  3884.    from vfork().
  3885.  
  3886. 2) 1003.5 (Ada) has a entry point "start_process[_search]" which are
  3887.    a spawn()-like animal that takes a data structure to tell it what to
  3888.    do with file descriptors, user ID's and the like between the fork()
  3889.    and exec() that underly it.  (In Ada, fork() + exec() is "unsafe";
  3890.    "unsafe" is a dirty word in the Ada community.)
  3891.  
  3892.    This might be (observation of fact, not an opinion) a place to start
  3893.    for something that does serve the fork(), do a few safe things, exec()
  3894.    sequence.
  3895.  
  3896. Donn Terry
  3897. Speaking only for myself.
  3898.  
  3899. Volume-Number: Volume 22, Number 56
  3900.  
  3901. From jsq@cs.utexas.edu  Thu Jan  3 20:24:41 1991
  3902. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3903.     id AA19103; Thu, 3 Jan 91 20:24:41 -0500
  3904. Posted-Date: 3 Jan 91 03:56:44 GMT
  3905. Received: by cs.utexas.edu (5.64/1.92) 
  3906. From: jgd@convex.csd.uwm.edu (John G Dobnick)
  3907. Newsgroups: comp.std.unix
  3908. Subject: Re: Finding physical memory size
  3909. Message-Id: <16480@cs.utexas.edu>
  3910. References: <16397@cs.utexas.edu>
  3911. Sender: jsq@cs.utexas.edu
  3912. Reply-To: jgd@convex.csd.uwm.edu
  3913. X-Submissions: std-unix@uunet.uu.net
  3914. Date: 3 Jan 91 03:56:44 GMT
  3915. To: std-unix@uunet.UU.NET
  3916.  
  3917. Submitted-by: jgd@convex.csd.uwm.edu (John G Dobnick)
  3918.  
  3919. Following up on my own posting, which I _did_ say was silly, and which
  3920. a few kind people have assured me _was_ silly [I knew I shouldn't have
  3921. posted that thing New Year's Eve -- too much eggnog around],
  3922.  
  3923. >From article <16397@cs.utexas.edu>, by jgd@csd4.csd.uwm.edu (John G Dobnick):
  3924. > Our CONVEX system, which claims POSIX compliance, has a system call
  3925. > that returns "system configuration" information.  If my memory serves
  3926. > (I'd check, but the books are at work, and the machine is being "PM"ed),
  3927. > the C-library function 'getsysinfo' retrieves this information.  Among
  3928. > the items retrieved are
  3929. >     *    System type
  3930. >     *    Operating system type
  3931. >     *    Operating system level (or version number)
  3932. >     * Processor type
  3933. >     Processor serial number
  3934. >     number of Processors 
  3935. >     Processor option mask 
  3936. >     Memory interleave factor
  3937.  
  3938. (* -- uname fields.  All others are CONVEX extensions)
  3939.  
  3940. Memory didn't serve -- what I was thinking of was the "uname()" call,
  3941. which does _not_ include any hardware specific information -- only OS
  3942. related things.  [It's amazing how eggnog muddles the thought processes]
  3943.  
  3944. The hardware specific information another source and is an implementation
  3945. specific extension.
  3946.  
  3947. Please allow me to rephrase my question as:
  3948.  
  3949.     Was consideration given to including some mechanism to retrieve
  3950.     hardware configuration information via 'standard' means?
  3951.  
  3952. [I'll shut up now.  Besides, there's still some eggnog left. :-)]
  3953. -- 
  3954. John G Dobnick  (JGD2)
  3955. Computing Services Division @ University of Wisconsin - Milwaukee
  3956. INTERNET: jgd@csd4.csd.uwm.edu             ATTnet: (414) 229-5727
  3957. UUCP: uunet!uwm!csd4.csd.uwm.edu!jgd
  3958.  
  3959. "Knowing how things work is the basis for appreciation,
  3960. and is thus a source of civilized delight."  -- William Safire
  3961.  
  3962. Volume-Number: Volume 22, Number 57
  3963.  
  3964. From jsq@cs.utexas.edu  Thu Jan  3 20:37:15 1991
  3965. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  3966.     id AA21386; Thu, 3 Jan 91 20:37:15 -0500
  3967. Posted-Date: 27 Dec 90 14:31:08 GMT
  3968. Received: by cs.utexas.edu (5.64/1.92) 
  3969. From: lewine@cheshirecat.rtp.dg.com (Donald Lewine)
  3970. Newsgroups: comp.std.unix
  3971. Subject: Re: qfork()
  3972. Message-Id: <16483@cs.utexas.edu>
  3973. References: <16066@cs.utexas.edu> <16213@cs.utexas.edu> <16213@cs.utexas.edu>,
  3974. Sender: jsq@cs.utexas.edu
  3975. Reply-To: dg!lewine@cs.utexas.edu
  3976. Organization: Data General Corporation
  3977. X-Submissions: std-unix@uunet.uu.net
  3978. Date: 27 Dec 90 14:31:08 GMT
  3979. To: std-unix@uunet.UU.NET
  3980.  
  3981. Submitted-by: lewine@cheshirecat.rtp.dg.com (Donald Lewine)
  3982.  
  3983. In article <16213@cs.utexas.edu>, jason@cnd.hp.com (Jason Zions) writes:
  3984. |> 
  3985. |> I think that loosens the restriction too much.  The intent of the text, I
  3986. |> believe, is that *doing* anything between qfork() and exec*() results in
  3987. |> undefined behavior. Checking a variable doesn't *do* anything in this sense.
  3988. |> The text tries to sidestep the issue of "is qfork() a 4.2BSD-style
  3989. |> share-memory pseudo-fork or is it a real fork or what?" An application which
  3990. |> takes an action after qfork() and before exec*() that depends upon the
  3991. |> implementation of qfork() being any one of those things is inherently
  3992. |> unportable.
  3993. |> 
  3994. |> Instead of replacing "executes any code", I think you could just add the
  3995. |> phrase "which modifies memory or calls any function" and maintain the
  3996. |> intent. Examining variables doesn't depend upon the virtual memory
  3997. |> relationship between child and parent, but munging a stack for a function
  3998. |> call might behave differently and hence must be rendered undefined.
  3999. |> 
  4000.  
  4001.     I think I would vote "NO" on qfork().  I think that there are 
  4002.     two better solutions:
  4003.     (1) Just use fork() and require the implementation to do it
  4004.         in an efficient manner.
  4005.     (2) Add some new functions (fexec() ?) which do the fork() and
  4006.         exec() in one call.  I know that this is not existing practice
  4007.         but neither was sigemptyset() or tcgetispeed().  This may be
  4008.         another case where it is better to define a new interface than
  4009.         to try to describe the existing practice.  [[Also, qfork() is
  4010.         not quite vfork() so it can be shot down on the same basis.]]
  4011.  
  4012.     As I think about it, (2) is a much nicer solution to the problem
  4013.     than qfork().  The library can then implement fexecl() as a vfork()
  4014.     followed by an execl() or a fork() followed by an execl().  The 
  4015.     error handling is clean and the semantics are obvious.
  4016.  
  4017.  
  4018. --------------------------------------------------------------------
  4019. Donald A. Lewine                (508) 870-9008 Voice
  4020. Data General Corporation        (508) 366-0750 FAX
  4021. 4400 Computer Drive. MS D112A
  4022. Westboro, MA 01580  U.S.A.
  4023.  
  4024. uucp: uunet!dg!lewine   Internet: lewine@cheshirecat.webo.dg.com
  4025.  
  4026. Volume-Number: Volume 22, Number 58
  4027.  
  4028. From jsq@cs.utexas.edu  Fri Jan  4 19:10:50 1991
  4029. Received: from CS.UTEXAS.EDU by uunet.UU.NET (5.61/1.14) with SMTP 
  4030.     id AA25247; Fri, 4 Jan 91 19:10:50 -0500
  4031. Posted-Date: 4 Jan 91 18:04:40 GMT
  4032. Received: by cs.utexas.edu (5.64/1.92) 
  4033. From: lenox@media-lab.MEDIA.MIT.EDU (Lenox H. Brassell)
  4034. Newsgroups: comp.std.unix
  4035. Subject: Re: qfork() (The Spawn of spawn())
  4036. Summary: MSC spawn() quite nice under OS/2
  4037. Message-Id: <16521@cs.utexas.edu>
  4038. References: <16066@cs.utexas.edu> <16271@cs.utexas.edu> <16307@cs.utexas.edu> <16478@cs.utexas.edu> <16478@cs.utexas.edu>,
  4039. Sender: jsq@cs.utexas.edu
  4040. Organization: MIT Media Lab, Cambridge, MA
  4041. X-Submissions: std-unix@uunet.uu.net
  4042. Date: 4 Jan 91 18:04:40 GMT
  4043. Reply-To: std-unix@uunet.UU.NET
  4044. To: std-unix@uunet.UU.NET
  4045.  
  4046. Submitted-by: lenox@media-lab.MEDIA.MIT.EDU (Lenox H. Brassell)
  4047.  
  4048. In article <16478@cs.utexas.edu>, guido@cwi.nl (Guido van Rossum) writes:
  4049. > (Note that the
  4050. > spawn() functions found in Microsoft C for MS-DOS emulate either just
  4051. > exec() or fork()+exec()+wait(), which is much less powerful, but
  4052. > all that MS-DOS can support (last time I looked).)
  4053.  
  4054. Using Microsoft C under OS/2, you can pass P_NOWAIT as the first
  4055. argument to the MSC spawn() functions, and the child process will run
  4056. asynchronously.  The spawn() functions return the child process's PID
  4057. in this case.
  4058.  
  4059. Although MSC is certainly not a UNIX compiler, this "prior art" might
  4060. be a good place to start if POSIX needs a "safe" qfork()+exec() service.
  4061.  
  4062.  
  4063. --lenox (lenox@media-lab.mit.edu)
  4064.  
  4065. Volume-Number: Volume 22, Number 59
  4066.  
  4067. From jsq@cs.utexas.edu  Fri Jan  4 19:14:21 1991
  4068. Received: from CS.UTEXAS.EDU by uunet.UU.NET (5.61/1.14) with SMTP 
  4069.     id AA25939; Fri, 4 Jan 91 19:14:21 -0500
  4070. Posted-Date: 4 Jan 91 18:26:34 GMT
  4071. Received: by cs.utexas.edu (5.64/1.92) 
  4072. From: domo@tsa.co.uk (Dominic Dunlop)
  4073. Newsgroups: comp.std.unix
  4074. Subject: Re: qfork()
  4075. Message-Id: <16522@cs.utexas.edu>
  4076. References: <16213@cs.utexas.edu> <16483@cs.utexas.edu>
  4077. Sender: jsq@cs.utexas.edu
  4078. Reply-To: domo@tsa.co.uk
  4079. Organization: The Standard Answer Ltd.
  4080. X-Submissions: std-unix@uunet.uu.net
  4081. Date: 4 Jan 91 18:26:34 GMT
  4082. To: std-unix@uunet.UU.NET
  4083.  
  4084. Submitted-by: domo@tsa.co.uk (Dominic Dunlop)
  4085.  
  4086. In article <16483@cs.utexas.edu> lewine@dg.uucp (Donald Lewine) writes:
  4087.  
  4088. >     I think I would vote "NO" on qfork().  I think that there are 
  4089. >     two better solutions:
  4090. >     (1) Just use fork() and require the implementation to do it
  4091. >         in an efficient manner.
  4092.  
  4093. Well, I know that we POSIX folks want to rule the world, but just how
  4094. ugly a world will we put up with in order that we can rule it?  qfork()
  4095. (and vfork()) special-case a particular usage of the process creation
  4096. mechanism in order to give implementors an easier time of it.  By now we
  4097. know that in a ``from to ground up'' virtual memory implementation of
  4098. UNI*X with a half-way useful memory management hardware copy on write and
  4099. similar finessing can make the general-case fork() call as efficient as
  4100. any special-case variant, and, unlike the variants, is free from any
  4101. threat that sixteen ton weights will be dropped on any programmer who
  4102. steps out of line.
  4103.  
  4104. That said, POSIX has nothing to say about the efficiency of any
  4105. particular implementation: that's a quality issue, not a conformance
  4106. issue.  One hopes that in the kind of free market that standards are
  4107. supposed to encourage, better quality will win out over poorer quality,
  4108. other things being equal.  So, yes, I'm in favour of keeping just
  4109. fork(), and letting implementors worry about how slick they need to make
  4110. it.  After all, there's few implementors in this world than applications
  4111. programmers, so it seems to make sense to localize the pain involved to
  4112. the smaller group.  Sorry about that.  I am aware that the efficient
  4113. implementation of fork() is a real headache on some architectures, and
  4114. particularly in hosted POSIX, but, well, so's cooking up fake inodes
  4115. (or parts thereof).  Happily, I hear nobody suggesting that we define
  4116. unsafe versions of stat() to get around that problem.  Just how far
  4117. should we bend over backwards to accommodate history?  Remember that
  4118. every extra function we define has to be maintained on all
  4119. implementations for ever more (more or less), and that every extra
  4120. function is something else that programmers have to learn about.
  4121.  
  4122. >     (2) Add some new functions (fexec() ?) which do the fork() and
  4123. >         exec() in one call.  I know that this is not existing practice
  4124. >         but neither was sigemptyset() or tcgetispeed().  This may be
  4125. >         another case where it is better to define a new interface than
  4126. >         to try to describe the existing practice.  [[Also, qfork() is
  4127. >         not quite vfork() so it can be shot down on the same basis.]]
  4128.  
  4129. I don't like this much either, but it might be an acceptable compromise
  4130. if the effect of the new functions was defined in the standard in terms
  4131. of fork() and exec() family functions.  This would make it easy to bring
  4132. existing implementations with an efficient fork() into line.  Please
  4133. let's resist the temptation to add new functionality to exec (for
  4134. example) on the way past.
  4135.  
  4136. By the way, what line (if any) are the .5 (Ada) folks taking on this
  4137. issue?  How does all this square (if at all) with Ada's concept of a
  4138. task?
  4139. -- 
  4140. Dominic Dunlop
  4141.  
  4142. Volume-Number: Volume 22, Number 60
  4143.  
  4144. From jsq@cs.utexas.edu  Fri Jan  4 19:21:34 1991
  4145. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4146.     id AA27617; Fri, 4 Jan 91 19:21:34 -0500
  4147. Posted-Date: 4 Jan 91 19:17:07 GMT
  4148. Received: by cs.utexas.edu (5.64/1.92) 
  4149. From: peter@ficc.ferranti.com (Peter da Silva)
  4150. Newsgroups: comp.std.unix
  4151. Subject: Re: qfork() (The Spawn of spawn())
  4152. Message-Id: <16523@cs.utexas.edu>
  4153. References: <16066@cs.utexas.edu> <16271@cs.utexas.edu> <16307@cs.utexas.edu> <16369@cs.utexas.edu> <16478@cs.utexas.edu>
  4154. Sender: jsq@cs.utexas.edu
  4155. Reply-To: peter@ficc.ferranti.com (Peter da Silva)
  4156. Organization: Xenix Support, FICC
  4157. X-Submissions: std-unix@uunet.uu.net
  4158. Date: 4 Jan 91 19:17:07 GMT
  4159. To: std-unix@uunet.UU.NET
  4160.  
  4161. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  4162.  
  4163. ( Guido lists a couple of systems where a function with spawn() type
  4164.   semantics (create a new process and load a program)... )
  4165.  
  4166. Also, most DEC operating systems use this sort of call for process creation.
  4167. AmigaOS does things in the opposite order: you load a segment and then use
  4168. CreateProc to start executing it.
  4169. -- 
  4170. Peter da Silva.   `-_-'    "Eat hot digital death, mainframe scum!"
  4171. +1 713 274 5180.   'U`          -- Attack of the Killer Micros.
  4172. peter@ferranti.com
  4173.  
  4174. Volume-Number: Volume 22, Number 61
  4175.  
  4176. From jsq@cs.utexas.edu  Sun Jan 13 13:26:01 1991
  4177. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4178.     id AA09460; Sun, 13 Jan 91 13:26:01 -0500
  4179. Posted-Date: 5 Jan 91 00:43:08 GMT
  4180. Received: by cs.utexas.edu (5.64/1.93) 
  4181. From: loren@Eng.Sun.COM (Loren L. Hart)
  4182. Newsgroups: comp.std.unix
  4183. Subject: Re: qfork() (The Spawn of spawn())
  4184. Message-Id: <16871@cs.utexas.edu>
  4185. References: <16066@cs.utexas.edu> <16271@cs.utexas.edu> <16307@cs.utexas.edu> <16369@cs.utexas.edu> <16478@cs.utexas.edu>
  4186. Sender: jsq@cs.utexas.edu
  4187. Organization: Sun Microsystems, Mt. View, Ca.
  4188. X-Submissions: std-unix@uunet.uu.net
  4189. Date: 5 Jan 91 00:43:08 GMT
  4190. Reply-To: std-unix@uunet.UU.NET
  4191. To: std-unix@uunet.UU.NET
  4192.  
  4193. Submitted-by: loren@Eng.Sun.COM (Loren L. Hart)
  4194.  
  4195. In article <16478@cs.utexas.edu> guido@cwi.nl (Guido van Rossum) writes:
  4196. >Submitted-by: guido@cwi.nl (Guido van Rossum)
  4197. >
  4198. >peter@ficc.ferranti.com (Peter da Silva) writes:
  4199. >
  4200. >>Yes, fork() is a cleaner method of creating new processes. Yes, it takes
  4201. >>a fairly complex calling sequence to get spawn() to have anything like
  4202. >>the functionality of fork()...exec(). But I think it'd be worthwhile to
  4203. >>let a little heresy in in exchange for making POSIX more palatable to
  4204. >>folks in poorer environments.
  4205. >
  4206. >I know of precedents even in OS'es that support fork(): Amoeba and
  4207. >Topaz support a variant of what you call spawn().  (Note that the
  4208. >spawn() functions found in Microsoft C for MS-DOS emulate either just
  4209. >exec() or fork()+exec()+wait(), which is much less powerful, but
  4210. >all that MS-DOS can support (last time I looked).)
  4211.  
  4212. The Ada POSIX Draft currently has some sort of spawn command, since
  4213. fork is not necessicarily safe with respect to Ada Tasks.  I don't rember
  4214. the specific routine, but it is likely to go through some change before
  4215. the Ada version of the standard is finalized.  I would hope that this 
  4216. spawn capability will be merged back into the 1003.1 standard at some
  4217. point in the future.
  4218.  
  4219. ------------------------------------------------------------
  4220. Mr. Loren L. Hart
  4221. The Ada Ace Group, Inc.
  4222. PO Box 36195
  4223. San Jose, CA  95158
  4224. loren@cup.portal.com
  4225.  
  4226. --
  4227. -----------------------------------------------------------------------------
  4228. Loren L. Hart            The Ada Ace Group, Inc
  4229. loren@cup.portal.com        P.O. Box 36195
  4230.                 San Jose, CA  95158
  4231.  
  4232.  
  4233. Volume-Number: Volume 22, Number 62
  4234.  
  4235. From jsq@cs.utexas.edu  Sun Jan 13 13:36:57 1991
  4236. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4237.     id AA10394; Sun, 13 Jan 91 13:36:57 -0500
  4238. Posted-Date: 6 Jan 91 14:17:09 GMT
  4239. Received: by cs.utexas.edu (5.64/1.93) 
  4240. From: andrew@alice.att.com (Andrew Hume)
  4241. Newsgroups: comp.std.unix
  4242. Subject: Re: Finding physical memory size
  4243. Summary: sometimes it is.
  4244. Message-Id: <16872@cs.utexas.edu>
  4245. References: <16397@cs.utexas.edu> <16470@cs.utexas.edu>
  4246. Sender: jsq@cs.utexas.edu
  4247. Organization: AT&T Bell Laboratories, Murray Hill NJ
  4248. X-Submissions: std-unix@uunet.uu.net
  4249. Date: 6 Jan 91 14:17:09 GMT
  4250. Reply-To: std-unix@uunet.UU.NET
  4251. To: std-unix@uunet.UU.NET
  4252.  
  4253. Submitted-by: andrew@alice.att.com (Andrew Hume)
  4254.  
  4255.     sometimes knowing physical memory size, or at least
  4256. what is left over for user programs, is useful. particularly
  4257. for user programs which manage their own memory. although
  4258. what is actually meant here is how much memory do i have
  4259. really quick efficent access to.
  4260.  
  4261. Volume-Number: Volume 22, Number 63
  4262.  
  4263. From jsq@cs.utexas.edu  Sun Jan 13 13:42:44 1991
  4264. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4265.     id AA10860; Sun, 13 Jan 91 13:42:44 -0500
  4266. Posted-Date: 7 Jan 91 04:21:51 GMT
  4267. Received: by cs.utexas.edu (5.64/1.93) 
  4268. From: mohta@necom830.cc.titech.ac.jp (Masataka Ohta)
  4269. Newsgroups: comp.std.unix
  4270. Subject: Re: qfork()
  4271. Message-Id: <16873@cs.utexas.edu>
  4272. References: <16213@cs.utexas.edu> <16483@cs.utexas.edu> <16522@cs.utexas.edu>
  4273. Sender: jsq@cs.utexas.edu
  4274. Organization: Tokyo Institute of Technology
  4275. X-Submissions: std-unix@uunet.uu.net
  4276. Date: 7 Jan 91 04:21:51 GMT
  4277. Reply-To: std-unix@uunet.UU.NET
  4278. To: std-unix@uunet.UU.NET
  4279.  
  4280. Submitted-by: mohta@necom830.cc.titech.ac.jp (Masataka Ohta)
  4281.  
  4282. >By now we
  4283. >know that in a ``from to ground up'' virtual memory implementation of
  4284. >UNI*X with a half-way useful memory management hardware copy on write and
  4285. >similar finessing can make the general-case fork() call as efficient as
  4286. >any special-case variant, and, unlike the variants, is free from any
  4287. >threat that sixteen ton weights will be dropped on any programmer who
  4288. >steps out of line.
  4289.  
  4290. You should also know that copy-on-write fork(), unlike vfork(), is inherently
  4291. buggy and can not be a general-purpose useful memory management mechanism.
  4292.  
  4293. If you have 50MB swap space and want to fork() 30MB process to exec less
  4294. than 1MB shell, you can't. With COW fork(), there is workaround. But the
  4295. workaround is so incomplete that the system sometimes deadlocks.
  4296.  
  4297. Thus, fork(), even COW fork(), is not a proper mechanism to fork-exec
  4298. other processes.
  4299.  
  4300. If you insist on using fork(), someday, thirtytwo ton weights will drop on
  4301. your head.
  4302.  
  4303.                         Masataka Ohta
  4304.  
  4305. PS
  4306.  
  4307. I can't understand why the name vfork() is changed to qfork(). On crippled
  4308. systems which can not support true vfork(), the implementors can make vfork()
  4309. just fork(). It is actually done on NeXT. What's wrong with that?
  4310.  
  4311. Volume-Number: Volume 22, Number 64
  4312.  
  4313. From jsq@cs.utexas.edu  Sun Jan 13 13:49:59 1991
  4314. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4315.     id AA11735; Sun, 13 Jan 91 13:49:59 -0500
  4316. Posted-Date: 7 Jan 91 22:23:23 GMT
  4317. Received: by cs.utexas.edu (5.64/1.93) 
  4318. From: rml@hpfcdc.fc.hp.com (Bob Lenk)
  4319. Newsgroups: comp.std.unix
  4320. Subject: Re: Finding physical memory size
  4321. Message-Id: <16874@cs.utexas.edu>
  4322. References: <16480@cs.utexas.edu> <16480@cs.utexas.edu>,
  4323. Sender: jsq@cs.utexas.edu
  4324. X-Submissions: std-unix@uunet.uu.net
  4325. Date: 7 Jan 91 22:23:23 GMT
  4326. Reply-To: std-unix@uunet.UU.NET
  4327. To: std-unix@uunet.UU.NET
  4328.  
  4329. Submitted-by: rml@hpfcdc.fc.hp.com (Bob Lenk)
  4330.  
  4331. In article <16480@cs.utexas.edu>, jgd@csd4.csd.uwm.edu (John G Dobnick) writes:
  4332.  
  4333. >    Was consideration given to including some mechanism to retrieve
  4334. >    hardware configuration information via 'standard' means?
  4335.  
  4336. Not much.  Remember that the purpose of POSIX.1 was to define interfaces
  4337. for portable applications.  There is little if any use that a portable
  4338. application can make of such information.
  4339.  
  4340. Through the trial use standard (1986) there was an appendix (Appendix H)
  4341. requiring each system to supply some such information off-line.  That
  4342. appendix was dropped in the first draft following trial use; the
  4343. portions deemed useful were made available via interfaces like
  4344. sysconf(), pathconf(), <limits.h>, and <unistd.h>.
  4345.  
  4346.         Bob Lenk
  4347.         rml@fc.hp.com
  4348.         {uunet,hplabs}!fc.hp.com!rml
  4349.  
  4350. Volume-Number: Volume 22, Number 65
  4351.  
  4352. From jsq@cs.utexas.edu  Sun Jan 13 13:54:00 1991
  4353. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4354.     id AA12968; Sun, 13 Jan 91 13:54:00 -0500
  4355. Posted-Date: 7 Jan 91 22:15:46 GMT
  4356. Received: by cs.utexas.edu (5.64/1.93) 
  4357. From: gwyn@smoke.brl.mil (Doug Gwyn)
  4358. Newsgroups: comp.std.unix
  4359. Subject: Re: qfork()
  4360. Message-Id: <16875@cs.utexas.edu>
  4361. References: <16066@cs.utexas.edu> <16213@cs.utexas.edu>
  4362. Sender: jsq@cs.utexas.edu
  4363. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  4364. X-Submissions: std-unix@uunet.uu.net
  4365. Date: 7 Jan 91 22:15:46 GMT
  4366. Reply-To: std-unix@uunet.UU.NET
  4367. To: std-unix@uunet.UU.NET
  4368.  
  4369. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  4370.  
  4371. In article <16213@cs.utexas.edu> jason@cnd.hp.com (Jason Zions) writes:
  4372. >I think that loosens the restriction too much.  The intent of the text, I
  4373. >believe, is that *doing* anything between qfork() and exec*() results in
  4374. >undefined behavior. Checking a variable doesn't *do* anything in this sense.
  4375. >The text tries to sidestep the issue of "is qfork() a 4.2BSD-style
  4376. >share-memory pseudo-fork or is it a real fork or what?"
  4377.  
  4378. We (IEEE P1003) deliberately omitted vfork() from the POSIX spec
  4379. because it was not necessary, given a decent implementation of fork().
  4380. Why is this notion being reintroduced (quite carelessly so far as I can
  4381. tell from the quotes so far) for 1003.1a?
  4382.  
  4383. Volume-Number: Volume 22, Number 66
  4384.  
  4385. From jsq@cs.utexas.edu  Mon Jan 14 05:55:20 1991
  4386. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4387.     id AA15233; Mon, 14 Jan 91 05:55:20 -0500
  4388. Posted-Date: 14 Jan 91 04:34:31 GMT
  4389. Received: by cs.utexas.edu (5.64/1.93) 
  4390. From: jfh@rpp386.cactus.org (John F Haugh II)
  4391. Newsgroups: comp.std.unix
  4392. Subject: Re: qfork()
  4393. Message-Id: <16895@cs.utexas.edu>
  4394. References: <16213@cs.utexas.edu> <16483@cs.utexas.edu> <16522@cs.utexas.edu> <16873@cs.utexas.edu>
  4395. Sender: jsq@cs.utexas.edu
  4396. Reply-To: jfh@rpp386.cactus.org (John F Haugh II)
  4397. Organization: Lone Star Cafe and BBS Service
  4398. X-Submissions: std-unix@uunet.uu.net
  4399. Date: 14 Jan 91 04:34:31 GMT
  4400. To: std-unix@uunet.UU.NET
  4401.  
  4402. Submitted-by: jfh@rpp386.cactus.org (John F Haugh II)
  4403.  
  4404. In article <16873@cs.utexas.edu> mohta@necom830.cc.titech.ac.jp (Masataka Ohta) writes:
  4405. >You should also know that copy-on-write fork(), unlike vfork(), is inherently
  4406. >buggy and can not be a general-purpose useful memory management mechanism.
  4407.  
  4408. You are confusing theory with implementation.  There is nothing "inherently"
  4409. buggy with either vfork() or copy-on-write fork().  vfork() is fairly
  4410. inflexible, and as pointed out by other writers, completely superfluous
  4411. given a properly implemented fork().
  4412.  
  4413. >If you have 50MB swap space and want to fork() 30MB process to exec less
  4414. >than 1MB shell, you can't. With COW fork(), there is workaround. But the
  4415. >workaround is so incomplete that the system sometimes deadlocks.
  4416.  
  4417. Again, the problem you are alluding to results from the choice of early
  4418. or late allocation of paging space.  If you choose early allocation, you
  4419. are correct - you can't fork() a 30MB process with only 20MB remaining.
  4420. And yes, if you choose late allocation it is possible to deadlock, but
  4421. only in the cases where you are doing more than you are with vfork().
  4422. Thus your complaint is simply invalid.  If I modify no pages between
  4423. fork() and exec() with late allocated COW fork(), I will =never= run
  4424. out of page space simply because I required no additional pages.  Any
  4425. scenario where I do modify a page is unsuitable for vfork(), so there
  4426. is no room for comparision of the merits of fork() with vfork().
  4427.  
  4428. >Thus, fork(), even COW fork(), is not a proper mechanism to fork-exec
  4429. >other processes.
  4430.  
  4431. If you wish to describe some operation which is a simple fork-exec
  4432. then you are correct.  However, process creation frequently involves
  4433. more than forking and execing a new command.  It often involves the
  4434. creation of IPC mechanisms (pipes, etc), signal manipulation, I/O
  4435. redirection, ad nauseum.
  4436. -- 
  4437. John F. Haugh II                             UUCP: ...!cs.utexas.edu!rpp386!jfh
  4438. Ma Bell: (512) 832-8832                           Domain: jfh@rpp386.cactus.org
  4439. "While you are here, your wives and girlfriends are dating handsome American
  4440.  movie and TV stars. Stars like Tom Selleck, Bruce Willis, and Bart Simpson."
  4441.  
  4442. Volume-Number: Volume 22, Number 67
  4443.  
  4444. From jsq@cs.utexas.edu  Wed Jan 16 22:57:53 1991
  4445. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4446.     id AA19684; Wed, 16 Jan 91 22:57:53 -0500
  4447. Posted-Date: 14 Jan 91 14:19:09 GMT
  4448. Received: by cs.utexas.edu (5.64/1.93) 
  4449. From: peter@ficc.ferranti.com (Peter da Silva)
  4450. Newsgroups: comp.std.unix
  4451. Subject: Re: qfork() (the spawn of Spawn())
  4452. Message-Id: <16992@cs.utexas.edu>
  4453. References: <16066@cs.utexas.edu> <16213@cs.utexas.edu> <16875@cs.utexas.edu>
  4454. Sender: jsq@cs.utexas.edu
  4455. Reply-To: peter@ficc.ferranti.com (Peter da Silva)
  4456. Organization: Xenix Support, FICC
  4457. X-Submissions: std-unix@uunet.uu.net
  4458. Date: 14 Jan 91 14:19:09 GMT
  4459. To: std-unix@uunet.UU.NET
  4460.  
  4461. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  4462.  
  4463. In article <16875@cs.utexas.edu> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  4464. > We (IEEE P1003) deliberately omitted vfork() from the POSIX spec
  4465. > because it was not necessary, given a decent implementation of fork().
  4466.  
  4467. POSIX is not supposed to be a standard for UNIX only. In many non-UNIX
  4468. environments a "decent implementation of fork" is quite difficult and
  4469. may even be impossible. A poor implementation of fork() is likely to
  4470. clobber performance, given how common it is in UNIX code.
  4471.  
  4472. I suspect that in practice most implementations will use an efficient
  4473. call in the internals of system() and similar library routines. Either
  4474. direct spawns or an implementatio of qfork that looks something like:
  4475.  
  4476.     qfork()
  4477.     {
  4478.         Save stack context.
  4479.         Vector open(), exit(), etc to pseudo routines that
  4480.             save flags (either adjust jump table or set
  4481.             a flag that tells open we're "in a qchild".
  4482.         Return 0;
  4483.     }
  4484.  
  4485.     qopen() /* new version of open */
  4486.     {
  4487.         open file, save descriptor
  4488.     }
  4489.     ...
  4490.  
  4491.     qexec() /* new version of exec */
  4492.     {
  4493.         call spawn, passing it the info for the new execution
  4494.             environment (juggling fds, signals, etc).
  4495.         Return execution environment to the one set up back
  4496.             at the qfork (juggle fds, etc)
  4497.         longjump back to saved stack context, returning child pid.
  4498.     }
  4499.  
  4500. This gets around the cost of creating a new execution context that will
  4501. simply be juggled briefly and discarded.
  4502.  
  4503. Something like this will be needed to get decent performance out of systems
  4504. like VMS where creating a new process is quite expensive. Why not standardise
  4505. this so portable programs can take advantage of it?
  4506. -- 
  4507. Peter da Silva.   `-_-'   "Have you hugged your wolf today?"
  4508. +1 713 274 5180.   'U`
  4509. peter@ferranti.com
  4510.  
  4511. Volume-Number: Volume 22, Number 68
  4512.  
  4513. From jsq@cs.utexas.edu  Wed Jan 16 23:11:58 1991
  4514. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4515.     id AA21388; Wed, 16 Jan 91 23:11:58 -0500
  4516. Posted-Date: 14 Jan 91 18:21:56 GMT
  4517. Received: by cs.utexas.edu (5.64/1.93) 
  4518. From: domo@tsa.co.uk (Dominic Dunlop)
  4519. Newsgroups: comp.std.unix
  4520. Subject: Re: qfork() (The Spawn of spawn())
  4521. Message-Id: <16993@cs.utexas.edu>
  4522. References: <16369@cs.utexas.edu> <16478@cs.utexas.edu> <16871@cs.utexas.edu>
  4523. Sender: jsq@cs.utexas.edu
  4524. Reply-To: domo@tsa.co.uk
  4525. Organization: The Standard Answer Ltd.
  4526. X-Submissions: std-unix@uunet.uu.net
  4527. Date: 14 Jan 91 18:21:56 GMT
  4528. To: std-unix@uunet.UU.NET
  4529.  
  4530. Submitted-by: domo@tsa.co.uk (Dominic Dunlop)
  4531.  
  4532. For those who have been following this issue, last week's meeting of
  4533. 1003.1 decided that [qv]fork() would be dropped from the next draft of
  4534. 1003.1a, the extensions to POSIX.1.  It will be replaced in the next
  4535. or a subsequent draft with a proposal for a spawn() family, analogous to
  4536. the exec() family.  Work already done by 1003.5 (Ada bindings) on an
  4537. interface of this type will be taken into account, and the opportunity
  4538. will be taken to address some very knotty problems which arise when one
  4539. thread out of many in a single process decides to replace the whole
  4540. process image.  Threads are strictly a 1003.4 (realtime) issue, but it
  4541. makes sense for any new interface proposed by 1003.1 in this area 
  4542. make life easier for 1003.4, rather than more difficult.  (Cue 1003.4
  4543. folks, to tell us all what a pig fork-exec is in a multi-threaded
  4544. process.)
  4545. -- 
  4546. Dominic Dunlop
  4547.  
  4548. Volume-Number: Volume 22, Number 69
  4549.  
  4550. From jsq@cs.utexas.edu  Wed Jan 16 23:21:29 1991
  4551. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4552.     id AA22583; Wed, 16 Jan 91 23:21:29 -0500
  4553. Posted-Date: 14 Jan 91 20:14:05 GMT
  4554. Received: by cs.utexas.edu (5.64/1.93) 
  4555. From: richard@aiai.ed.ac.uk (Richard Tobin)
  4556. Newsgroups: comp.std.unix
  4557. Subject: Re: qfork()
  4558. Message-Id: <16994@cs.utexas.edu>
  4559. References: <16213@cs.utexas.edu> <16483@cs.utexas.edu> <16522@cs.utexas.edu> <16873@cs.utexas.edu> <16895@cs.utexas.edu>
  4560. Sender: jsq@cs.utexas.edu
  4561. Reply-To: richard@aiai.ed.ac.uk (Richard Tobin)
  4562. Organization: AIAI, University of Edinburgh, Scotland
  4563. X-Submissions: std-unix@uunet.uu.net
  4564. Date: 14 Jan 91 20:14:05 GMT
  4565. To: std-unix@uunet.UU.NET
  4566.  
  4567. Submitted-by: richard@aiai.ed.ac.uk (Richard Tobin)
  4568.  
  4569. In article <16895@cs.utexas.edu> jfh@rpp386.cactus.org (John F Haugh II) writes:
  4570. >Any scenario where I do modify a page is unsuitable for vfork(), so there
  4571. >is no room for comparision of the merits of fork() with vfork().
  4572.  
  4573. Most programs that use vfork() change the values of variables in the
  4574. child.  This is perfectly reasonable, so long as the parent doesn't
  4575. rely on the value of those variables.
  4576.  
  4577. Of course, these programs don't usually change many variables, so a
  4578. copy-on-write fork() won't need many pages in this case.  A c-o-w    
  4579. fork() with late allocation of pages could could be as robust as
  4580. vfork() almost always by pre-allocating a few pages.
  4581.  
  4582. Surely the problem is when it's being used as a *real* fork(), and the
  4583. program fails much later when it modifies one variable too many.
  4584.  
  4585. I prefer to think of vfork() as being a way to save a process's kernel
  4586. state - file descriptors etc - and having that state automatically
  4587. restored when an exec() is done.
  4588.  
  4589. -- Richard
  4590. -- 
  4591. Richard Tobin,                       JANET: R.Tobin@uk.ac.ed             
  4592. AI Applications Institute,           ARPA:  R.Tobin%uk.ac.ed@nsfnet-relay.ac.uk
  4593. Edinburgh University.                UUCP:  ...!ukc!ed.ac.uk!R.Tobin
  4594.  
  4595. Volume-Number: Volume 22, Number 70
  4596.  
  4597. From jsq@cs.utexas.edu  Wed Jan 16 23:30:57 1991
  4598. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4599.     id AA23693; Wed, 16 Jan 91 23:30:57 -0500
  4600. Posted-Date: 15 Jan 91 20:07:39 GMT
  4601. Received: by cs.utexas.edu (5.64/1.93) 
  4602. From: tom@surf.osf.org (Tom Jordahl)
  4603. Newsgroups: comp.std.unix
  4604. Subject: Where can I find a recent (Draft 10-11) PAX?
  4605. Summary: looking for a recent version of pax.
  4606. Keywords: pax POSIX 1003.2
  4607. Message-Id: <16995@cs.utexas.edu>
  4608. Sender: jsq@cs.utexas.edu
  4609. Organization: Open Software Foundation
  4610. X-Submissions: std-unix@uunet.uu.net
  4611. Date: 15 Jan 91 20:07:39 GMT
  4612. Reply-To: std-unix@uunet.UU.NET
  4613. To: std-unix@uunet.UU.NET
  4614.  
  4615. Submitted-by: tom@surf.osf.org (Tom Jordahl)
  4616.  
  4617. Hopefully this is the correct forum for this post.
  4618.  
  4619. Could someone give me a pointer to a recent (Draft 10 based) version of
  4620. the 1003.2 pax archive utility.
  4621.  
  4622. I have the one written by Mark H. Colburn (mark@jhereg.MN.ORG) at 
  4623. release 1.2, but this is dated 13 Feb 1989, almost 2 years old.
  4624. I found this on uunet.uu.net in the comp.sources.unix archives.
  4625.  
  4626. Has pax changed much in the past two years?  I haven't compared my
  4627. Draft 10 .2 with any earlier drafts, but practically the whole
  4628. section is marked with change-marks.
  4629.  
  4630. I have tried to reach Mark, even calling the phone number given in the
  4631. distribution. [Don't! the guy on the other end seemed pretty POed
  4632. when I asked for Mark, saying he hadn't lived there in 'several
  4633. years'.  He complained about people calling from Washington and
  4634. leaving message for him to call them back....]
  4635.  
  4636. I have also tried reaching him via E-mail, but have gotten no response.
  4637.  
  4638. Any help would be appreciated.  Thanks.
  4639.  
  4640. --
  4641.  
  4642. Tom Jordahl                                       Internet: tom@osf.org
  4643. Open Software Foundation                          UUCP:   ..!uunet!osf!tom
  4644.        "A silly quote is only worth what you put into it."  -- me
  4645.  
  4646. Volume-Number: Volume 22, Number 71
  4647.  
  4648. From jsq@cs.utexas.edu  Thu Jan 17 01:07:57 1991
  4649. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4650.     id AA06553; Thu, 17 Jan 91 01:07:57 -0500
  4651. Posted-Date: 15 Jan 91 21:24:11 GMT
  4652. Received: by cs.utexas.edu (5.64/1.93) 
  4653. From: rml@hpfcdc.fc.hp.com (Bob Lenk)
  4654. Newsgroups: comp.std.unix
  4655. Subject: Re: qfork() (The Spawn of spawn())
  4656. Message-Id: <16996@cs.utexas.edu>
  4657. References: <16895@cs.utexas.edu>
  4658. Sender: jsq@cs.utexas.edu
  4659. X-Submissions: std-unix@uunet.uu.net
  4660. Date: 15 Jan 91 21:24:11 GMT
  4661. Reply-To: std-unix@uunet.UU.NET
  4662. To: std-unix@uunet.UU.NET
  4663.  
  4664. Submitted-by: rml@hpfcdc.fc.hp.com (Bob Lenk)
  4665.  
  4666. In article <16895@cs.utexas.edu> jfh@rpp386.cactus.org (John F Haugh II) writes:
  4667.  
  4668. > Again, the problem you are alluding to results from the choice of early
  4669. > or late allocation of paging space.  If you choose early allocation, you
  4670. > are correct - you can't fork() a 30MB process with only 20MB remaining.
  4671. > And yes, if you choose late allocation it is possible to deadlock, but
  4672. > only in the cases where you are doing more than you are with vfork().
  4673.  
  4674. This sounds like a good argument for two mechanisms, one with early
  4675. allocation and the other with late (or perhaps no) allocation.  If the
  4676. OS chooses blindly from a single interface (fork) it will sometimes
  4677. choose "wrong" according to the needs of the application.  There could
  4678. be an interface to select the behavior of fork() rather than two
  4679. separate calls; there are some advantages to each approach.
  4680.  
  4681. In what I've read in this discussion about qfork(), I'm nervous about
  4682. the spec that *nothing* is permitted between it and exec.  If nothing is
  4683. permitted portably, then a single spawn call should be defined.  The
  4684. whole advantage of separate calls is that things *can* be done in
  4685. between.  People will take advantage of this even if the standard calls
  4686. the behavior implementation-defined, unspecified, or undefined, and the
  4687. result is that people will write less-than-portable code.  If the
  4688. standard defines qfork(), I think it should define a useful set of
  4689. operations permitted with well-defined results in the child prior to
  4690. exec.
  4691.  
  4692.         Bob Lenk
  4693.         rml@fc.hp.com
  4694.         {uunet,hplabs}!fc.hp.com!rml
  4695.  
  4696. Volume-Number: Volume 22, Number 72
  4697.  
  4698. From jsq@cs.utexas.edu  Thu Jan 17 03:14:52 1991
  4699. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4700.     id AA04545; Thu, 17 Jan 91 03:14:52 -0500
  4701. Posted-Date: 14 Jan 91 14:19:09 GMT
  4702. Received: by cs.utexas.edu (5.64/1.93) 
  4703. From: peter@ficc.ferranti.com (Peter da Silva)
  4704. Newsgroups: comp.std.unix
  4705. Subject: Re: qfork() (the spawn of Spawn())
  4706. Message-Id: <16992@cs.utexas.edu>
  4707. References: <16066@cs.utexas.edu> <16213@cs.utexas.edu> <16875@cs.utexas.edu>
  4708. Sender: jsq@cs.utexas.edu
  4709. Reply-To: peter@ficc.ferranti.com (Peter da Silva)
  4710. Organization: Xenix Support, FICC
  4711. X-Submissions: std-unix@uunet.uu.net
  4712. Date: 14 Jan 91 14:19:09 GMT
  4713. To: std-unix@uunet.UU.NET
  4714.  
  4715. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  4716.  
  4717. In article <16875@cs.utexas.edu> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  4718. > We (IEEE P1003) deliberately omitted vfork() from the POSIX spec
  4719. > because it was not necessary, given a decent implementation of fork().
  4720.  
  4721. POSIX is not supposed to be a standard for UNIX only. In many non-UNIX
  4722. environments a "decent implementation of fork" is quite difficult and
  4723. may even be impossible. A poor implementation of fork() is likely to
  4724. clobber performance, given how common it is in UNIX code.
  4725.  
  4726. I suspect that in practice most implementations will use an efficient
  4727. call in the internals of system() and similar library routines. Either
  4728. direct spawns or an implementatio of qfork that looks something like:
  4729.  
  4730.     qfork()
  4731.     {
  4732.         Save stack context.
  4733.         Vector open(), exit(), etc to pseudo routines that
  4734.             save flags (either adjust jump table or set
  4735.             a flag that tells open we're "in a qchild".
  4736.         Return 0;
  4737.     }
  4738.  
  4739.     qopen() /* new version of open */
  4740.     {
  4741.         open file, save descriptor
  4742.     }
  4743.     ...
  4744.  
  4745.     qexec() /* new version of exec */
  4746.     {
  4747.         call spawn, passing it the info for the new execution
  4748.             environment (juggling fds, signals, etc).
  4749.         Return execution environment to the one set up back
  4750.             at the qfork (juggle fds, etc)
  4751.         longjump back to saved stack context, returning child pid.
  4752.     }
  4753.  
  4754. This gets around the cost of creating a new execution context that will
  4755. simply be juggled briefly and discarded.
  4756.  
  4757. Something like this will be needed to get decent performance out of systems
  4758. like VMS where creating a new process is quite expensive. Why not standardise
  4759. this so portable programs can take advantage of it?
  4760. -- 
  4761. Peter da Silva.   `-_-'   "Have you hugged your wolf today?"
  4762. +1 713 274 5180.   'U`
  4763. peter@ferranti.com
  4764.  
  4765. Volume-Number: Volume 22, Number 68
  4766.  
  4767. From jsq@cs.utexas.edu  Thu Jan 17 09:49:55 1991
  4768. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4769.     id AA01691; Thu, 17 Jan 91 09:49:55 -0500
  4770. Posted-Date: 17 Jan 91 05:11:55 GMT
  4771. Received: by cs.utexas.edu (5.64/1.93) 
  4772. From: gwyn@smoke.brl.mil (Doug Gwyn)
  4773. Newsgroups: comp.std.unix
  4774. Subject: Re: qfork() (the spawn of Spawn())
  4775. Message-Id: <17010@cs.utexas.edu>
  4776. References: <16213@cs.utexas.edu> <16875@cs.utexas.edu> <16992@cs.utexas.edu>
  4777. Sender: jsq@cs.utexas.edu
  4778. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  4779. X-Submissions: std-unix@uunet.uu.net
  4780. Date: 17 Jan 91 05:11:55 GMT
  4781. Reply-To: std-unix@uunet.UU.NET
  4782. To: std-unix@uunet.UU.NET
  4783.  
  4784. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  4785.  
  4786. In article <16992@cs.utexas.edu> peter@ficc.ferranti.com (Peter da Silva) writes:
  4787. >In article <16875@cs.utexas.edu> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  4788. >> We (IEEE P1003) deliberately omitted vfork() from the POSIX spec
  4789. >> because it was not necessary, given a decent implementation of fork().
  4790. >POSIX is not supposed to be a standard for UNIX only. In many non-UNIX
  4791. >environments a "decent implementation of fork" is quite difficult ...
  4792.  
  4793. Excuse me, but you're quite wrong.  P1003 decided deliberately that we
  4794. (I was there) would not compromise the (1003.1) interface in order to
  4795. accommodate "layered" implementations, for example on non-UNIX based
  4796. operating system kernels.
  4797.  
  4798. Volume-Number: Volume 22, Number 73
  4799.  
  4800. From jsq@cs.utexas.edu  Thu Jan 17 09:55:29 1991
  4801. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4802.     id AA02706; Thu, 17 Jan 91 09:55:29 -0500
  4803. Posted-Date: 17 Jan 91 12:34:20 GMT
  4804. Received: by cs.utexas.edu (5.64/1.93) 
  4805. From: C.R.Ritson@newcastle.ac.uk ("C.R. Ritson")
  4806. Newsgroups: comp.std.unix
  4807. Subject: Shell standardization (for c.std.unix)
  4808. Message-Id: <17011@cs.utexas.edu>
  4809. Sender: jsq@cs.utexas.edu
  4810. X-Submissions: std-unix@uunet.uu.net
  4811. Date: 17 Jan 91 12:34:20 GMT
  4812. Reply-To: std-unix@uunet.UU.NET
  4813. To: std-unix@uunet.UU.NET
  4814.  
  4815. Submitted-by: C.R.Ritson@newcastle.ac.uk ("C.R. Ritson")
  4816.  
  4817. Please  could  you  post  this  to  comp.std.unix, or else reply to it
  4818. yourself if that is more appropriate.
  4819.  
  4820.                                -------
  4821.  
  4822. I  am  unsure  of the state of standardisation of the unix shells, but
  4823. hope that the standards committees would consider removing a piece  of
  4824. functionality that is becoming both irrelevant and dangerous.
  4825.  
  4826. I  am  thinking of the feature where, after the exec system call fails
  4827. to be able to execute a file, the shell assumes that  if  it  has  the
  4828. execute  bit  set  and is a file, then it must be a shell script.  Now
  4829. that the exec  system  call  on  most  systems  understands  the  "#!"
  4830. notation  as  a  valid  magic  number and starts the named interpretor
  4831. itself, this is no  longer  needed,  provided  this  behaviour  itself
  4832. becomes standard.
  4833.  
  4834. The  danger  of direct interpretation by the shell is that the file is
  4835. quite  likely  to  be  an  executable  object  file  for  some   other
  4836. architecture  seen  from the wrong side of an NFS mount.  When this is
  4837. the case the shell produces large numbers of "not found" messages  and
  4838. often  ends  up  resetting  numerous operating modes.  Our newer users
  4839. find this most confusing.
  4840.  
  4841. Chris Ritson
  4842. --
  4843. PHONE: +44 91 222 8175              Computing Laboratory,
  4844. FAX  : +44 91 222 8232              University of Newcastle upon Tyne,
  4845. TELEX: uk+53654-UNINEW_G            UK, NE1 7RU
  4846.  
  4847. Volume-Number: Volume 22, Number 74
  4848.  
  4849. From jsq@cs.utexas.edu  Fri Jan 18 15:24:25 1991
  4850. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4851.     id AA23737; Fri, 18 Jan 91 15:24:25 -0500
  4852. Posted-Date: 17 Jan 91 20:30:50 GMT
  4853. Received: by cs.utexas.edu (5.64/1.93) 
  4854. From: peter@ficc.ferranti.com (Peter da Silva)
  4855. Newsgroups: comp.std.unix
  4856. Subject: Re: qfork() (the spawn of Spawn())
  4857. Message-Id: <17064@cs.utexas.edu>
  4858. References: <16213@cs.utexas.edu> <16875@cs.utexas.edu> <16992@cs.utexas.edu> <17010@cs.utexas.edu>
  4859. Sender: jsq@cs.utexas.edu
  4860. Reply-To: peter@ficc.ferranti.com (Peter da Silva)
  4861. Organization: Xenix Support, FICC
  4862. X-Submissions: std-unix@uunet.uu.net
  4863. Date: 17 Jan 91 20:30:50 GMT
  4864. To: std-unix@uunet.UU.NET
  4865.  
  4866. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  4867.  
  4868. I said:
  4869. > >POSIX is not supposed to be a standard for UNIX only. In many non-UNIX
  4870. > >environments a "decent implementation of fork" is quite difficult ...
  4871.  
  4872. In article <17010@cs.utexas.edu> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  4873. > Excuse me, but you're quite wrong.  P1003 decided deliberately that we
  4874. > (I was there) would not compromise the (1003.1) interface in order to
  4875. > accommodate "layered" implementations, for example on non-UNIX based
  4876. > operating system kernels.
  4877.  
  4878. I don't think I'm wrong here, unless you're leaving something out.
  4879.  
  4880. There's a difference between:
  4881.  
  4882.     P1003 will not compromise the interface to accomodate
  4883.     layered implementations.
  4884.  
  4885. And:
  4886.  
  4887.     P1003 is for UNIX only.
  4888.  
  4889. And I fail to see how an extension that happens to make it easier to
  4890. write portable programs that remain reasonably efficient on layered
  4891. implementations compromises the interface. Nobody's saying "get rid
  4892. of fork()" this time.
  4893. -- 
  4894. Peter da Silva.  `-_-'  peter@ferranti.com
  4895. +1 713 274 5180.  'U`  "Have you hugged your wolf today?"
  4896.  
  4897. Volume-Number: Volume 22, Number 75
  4898.  
  4899. From jsq@cs.utexas.edu  Fri Jan 18 15:29:08 1991
  4900. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4901.     id AA24939; Fri, 18 Jan 91 15:29:08 -0500
  4902. Posted-Date: 17 Jan 91 20:44:54 GMT
  4903. Received: by cs.utexas.edu (5.64/1.93) 
  4904. From: trt@mcnc.org (Tom Truscott)
  4905. Newsgroups: comp.std.unix
  4906. Subject: Re: Shell standardization (for c.std.unix)
  4907. Summary: Fix missing-#! problem with kernel (or shell) check, not lobotomy
  4908. Message-Id: <17065@cs.utexas.edu>
  4909. References: <17011@cs.utexas.edu>
  4910. Sender: jsq@cs.utexas.edu
  4911. Organization: MCNC; RTP, NC
  4912. X-Submissions: std-unix@uunet.uu.net
  4913. Date: 17 Jan 91 20:44:54 GMT
  4914. Reply-To: std-unix@uunet.UU.NET
  4915. To: std-unix@uunet.UU.NET
  4916.  
  4917. Submitted-by: trt@mcnc.org (Tom Truscott)
  4918.  
  4919. > Submitted-by: C.R.Ritson@newcastle.ac.uk ("C.R. Ritson")
  4920. >
  4921. > ... 
  4922. > The  danger  of direct interpretation by the shell is that the file is
  4923. > quite  likely  to  be  an  executable  object  file  for  some   other
  4924. > architecture  seen  from the wrong side of an NFS mount.  When this is
  4925. > the case the shell produces large numbers of "not found" messages  and
  4926. > often  ends  up  resetting  numerous operating modes.  Our newer users
  4927. > find this most confusing.
  4928.  
  4929. If the kernel simply returned EACCES (for example) rather than ENOEXEC
  4930. when the file is non-ascii, the shells would not attempt interpretation.
  4931. (Just check that the first 4 characters have value > 1 and < 128.)
  4932. Dropping direct interpretation does make good sense.
  4933. But there is the problem of old kernels (e.g. System V.3.2!!) lacking #!,
  4934. and I think a surprising number of scripts will stop working
  4935. (such as /bin/true on some systems).  Serves them right I suppose.
  4936.  
  4937. For Freedomnet, we took this a bit further.  We identify
  4938. the binary's type and then execute it on the fastest available system.
  4939. This saves a lot of wear and tear in our user environment
  4940. with computers from a dozen different vendors.
  4941. Wherever I log in my favorite commands still work.
  4942. (Hmm, would other people have a dozen different personal "bin" directories?)
  4943. Of course this isn't entirely wonderful: when we unplugged the last
  4944. Gould machine some of my commands had to be recompiled.
  4945. But it goes a long way and surely it is in the right direction.
  4946.  
  4947. It is ironic that this NFS comment comes from the home of
  4948. the Newcastle Connection, which is the intellectual parent
  4949. of Freedomnet.  We kept the faith, and the technical
  4950. results have been most gratifying.
  4951. You too can get religion: contact Thomas Warren at 1-919-541-6110
  4952. or wtw@rti.rti.org.
  4953.  
  4954.     Tom Truscott
  4955.  
  4956. Volume-Number: Volume 22, Number 76
  4957.  
  4958. From jsq@cs.utexas.edu  Sat Jan 19 17:31:21 1991
  4959. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4960.     id AA00586; Sat, 19 Jan 91 17:31:21 -0500
  4961. Posted-Date: 19 Jan 91 01:54:54 GMT
  4962. Received: by cs.utexas.edu (5.64/1.93) 
  4963. From: dik@cwi.nl (Dik T. Winter)
  4964. Newsgroups: comp.std.unix
  4965. Subject: Standard behaviour when searching libraries
  4966. Message-Id: <17099@cs.utexas.edu>
  4967. Sender: jsq@cs.utexas.edu
  4968. Organization: CWI, Amsterdam
  4969. X-Submissions: std-unix@uunet.uu.net
  4970. Date: 19 Jan 91 01:54:54 GMT
  4971. Reply-To: std-unix@uunet.UU.NET
  4972. To: std-unix@uunet.UU.NET
  4973.  
  4974. Submitted-by: dik@cwi.nl (Dik T. Winter)
  4975.  
  4976. As I do not have access to any of the current or forthcoming standards, I ask
  4977. this question here.  Is it defined anywhere what the behaviour of the loader
  4978. is in the load step with respect to libraries?  Especially is there any
  4979. difference between a full path specification of the library or a short hand
  4980. specification using -l?  I ask because I encountered a system that showed a
  4981. marked difference between:
  4982.     cc foo.c /usr/lib/libm.a
  4983. and:
  4984.     cc foo.c -lm
  4985. In the first case the complete library is linked into the object module,
  4986. in the second only the routines needed are linked in.
  4987. Does any standard say something about this (SVID, Posix)?
  4988. --
  4989. dik t. winter, cwi, amsterdam, nederland
  4990. dik@cwi.nl
  4991.  
  4992. Volume-Number: Volume 22, Number 77
  4993.  
  4994. From jsq@cs.utexas.edu  Mon Jan 21 22:15:09 1991
  4995. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  4996.     id AA16359; Mon, 21 Jan 91 22:15:09 -0500
  4997. Posted-Date: 21 Jan 91 10:33:48 GMT
  4998. Received: by cs.utexas.edu (5.64/1.93) 
  4999. From: jack@cwi.nl (Jack Jansen)
  5000. Newsgroups: comp.std.unix
  5001. Subject: Re: Shell standardization (for c.std.unix)
  5002. Message-Id: <17155@cs.utexas.edu>
  5003. References: <17011@cs.utexas.edu> <17065@cs.utexas.edu>
  5004. Sender: jsq@cs.utexas.edu
  5005. X-Submissions: std-unix@uunet.uu.net
  5006. Date: 21 Jan 91 10:33:48 GMT
  5007. Reply-To: std-unix@uunet.UU.NET
  5008. To: std-unix@uunet.UU.NET
  5009.  
  5010. Submitted-by: jack@cwi.nl (Jack Jansen)
  5011.  
  5012. >  = trt@mcnc.org (Tom Truscott) writes:
  5013. >> = C.R.Ritson@newcastle.ac.uk ("C.R. Ritson")
  5014. >> The  danger  of direct interpretation by the shell is that the file is
  5015. >> quite  likely  to  be  an  executable  object  file  for  some   other
  5016. >> architecture  seen  from the wrong side of an NFS mount.  When this is
  5017. >> the case the shell produces large numbers of "not found" messages  and
  5018. >> often  ends  up  resetting  numerous operating modes.  Our newer users
  5019. >> find this most confusing.
  5020.  
  5021. >If the kernel simply returned EACCES (for example) rather than ENOEXEC
  5022. >when the file is non-ascii, the shells would not attempt interpretation.
  5023. >(Just check that the first 4 characters have value > 1 and < 128.)
  5024. >Dropping direct interpretation does make good sense.
  5025. >But there is the problem of old kernels (e.g. System V.3.2!!) lacking #!,
  5026. >and I think a surprising number of scripts will stop working
  5027. >(such as /bin/true on some systems).  Serves them right I suppose.
  5028.  
  5029. I think you've missed the point here. The question is not wether the
  5030. kernel recognizes #!, but wether the shell recognizes it.
  5031.  
  5032. Currently, when the kernel returns ENOEXEC the shell just blindly assumes
  5033. that we have a shell script here and starts executing it. I don't see
  5034. any problem in the shell reading the first line and checking it for
  5035. #!/bin/sh.
  5036.  
  5037. The only thing that this would break is that old shell scripts without
  5038. a #! first line wouldn't execute anymore, but this is trivial to fix
  5039. by adding the #! line.
  5040. -- 
  5041. --
  5042. Een volk dat voor tirannen zwicht    | Oral:     Jack Jansen
  5043. zal meer dan lijf en goed verliezen    | Internet: jack@cwi.nl
  5044. dan dooft het licht            | Uucp:     hp4nl!cwi.nl!jack
  5045.  
  5046.  
  5047. Volume-Number: Volume 22, Number 78
  5048.  
  5049. From jsq@cs.utexas.edu  Mon Jan 28 20:41:53 1991
  5050. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  5051.     id AA28266; Mon, 28 Jan 91 20:41:53 -0500
  5052. Posted-Date: 22 Jan 91 21:28:49 GMT
  5053. Received: by cs.utexas.edu (5.64/1.93) 
  5054. From: auspex!guy@cs.utexas.edu (Guy Harris)
  5055. Newsgroups: comp.std.unix
  5056. Subject: Re: Shell standardization (for c.std.unix)
  5057. Message-Id: <17398@cs.utexas.edu>
  5058. References: <17011@cs.utexas.edu> <17065@cs.utexas.edu> <17155@cs.utexas.edu>
  5059. Sender: jsq@cs.utexas.edu
  5060. Organization: Auspex Systems, Santa Clara
  5061. X-Submissions: std-unix@uunet.uu.net
  5062. Date: 22 Jan 91 21:28:49 GMT
  5063. Reply-To: std-unix@uunet.UU.NET
  5064. To: std-unix@uunet.UU.NET
  5065.  
  5066. Submitted-by: guy@auspex.uucp (Guy Harris)
  5067.  
  5068. >Currently, when the kernel returns ENOEXEC the shell just blindly assumes
  5069. >that we have a shell script here and starts executing it. I don't see
  5070. >any problem in the shell reading the first line and checking it for
  5071. >#!/bin/sh.
  5072.  
  5073. Or checking for "#!" in general, and doing what is done in the "exec*()"
  5074. implementations of many systems (usually in the kernel, but not
  5075. necessarily so) - i.e., have the Bourne shell capable of executing C
  5076. shell scripts (for those of you who write them :-)) that begin with "#!
  5077. /bin/csh", and the C shell capable of executing Bourne shell scripts
  5078. that begin with "#! /bin/sh", etc..
  5079.  
  5080. I don't strongly care where it's done (although I *do* prefer having
  5081. "execl()" AND "execv()" capable of running scripts, even if it's done by
  5082. having them be wrappers around kernel traps with the wrappers checking
  5083. for the "#!" line if they get ENOEXEC), but it *would* be nice if the
  5084. system didn't inappropriately try to run files that happened to have
  5085. execute permissions as scripts if, in fact, they aren't scripts. 
  5086.  
  5087. I don't know if anything more should be said by any standard than simply
  5088. "we do not guarantee that any shell will execute a script that doesn't
  5089. begin with '#!'", so that you can remove the "if it gets ENOEXEC, treat
  5090. it as a script" stuff and still comply with the appropriate POSIX
  5091. standard(s).
  5092.  
  5093.  
  5094. Volume-Number: Volume 22, Number 79
  5095.  
  5096. From jsq@cs.utexas.edu  Mon Jan 28 20:44:41 1991
  5097. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  5098.     id AA29276; Mon, 28 Jan 91 20:44:41 -0500
  5099. Posted-Date: 23 Jan 91 23:57:04 GMT
  5100. Received: by cs.utexas.edu (5.64/1.93) 
  5101. From: gwyn@smoke.brl.mil (Doug Gwyn)
  5102. Newsgroups: comp.std.unix
  5103. Subject: Re: Shell standardization (for c.std.unix)
  5104. Message-Id: <17400@cs.utexas.edu>
  5105. References: <17011@cs.utexas.edu> <17065@cs.utexas.edu> <17155@cs.utexas.edu>
  5106. Sender: jsq@cs.utexas.edu
  5107. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  5108. X-Submissions: std-unix@uunet.uu.net
  5109. Date: 23 Jan 91 23:57:04 GMT
  5110. Reply-To: std-unix@uunet.UU.NET
  5111. To: std-unix@uunet.UU.NET
  5112.  
  5113. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  5114.  
  5115. In article <17155@cs.utexas.edu> jack@cwi.nl (Jack Jansen) writes:
  5116. >I don't see any problem in the shell reading the first line and
  5117. >checking it for #!/bin/sh.
  5118.  
  5119. Shells that have done this (e.g. some csh implementations on UNIX System V)
  5120. have definitely caused problems.  For example, Most of my shell scripts
  5121. start with #!/usr/5bin/sh to ensure System V semantics on BSD systems;
  5122. however, on a genuine UNIX System V system I was expecting the script to
  5123. be interpreted by /bin/sh (even if executed by csh).  We discovered that
  5124. some overly-"helpful" implementations of csh on System V, however, went
  5125. ahead and tried to find /usr/5bin/sh, which of course made the execution
  5126. fail.
  5127.  
  5128. Volume-Number: Volume 22, Number 80
  5129.  
  5130. From jsq@cs.utexas.edu  Mon Jan 28 20:55:08 1991
  5131. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  5132.     id AA03650; Mon, 28 Jan 91 20:55:08 -0500
  5133. Posted-Date: 23 Jan 91 10:06:36 GMT
  5134. Received: by cs.utexas.edu (5.64/1.93) 
  5135. From: addw@phcomp.co.uk (Alain Williams)
  5136. Newsgroups: comp.std.unix
  5137. Subject: Re: qfork() (the spawn of Spawn())
  5138. Message-Id: <17401@cs.utexas.edu>
  5139. References: <16996@cs.utexas.edu> <17010@cs.utexas.edu> <17064@cs.utexas.edu>
  5140. Sender: jsq@cs.utexas.edu
  5141. Organization: Parliament Hill Computers Ltd
  5142. X-Submissions: std-unix@uunet.uu.net
  5143. Date: 23 Jan 91 10:06:36 GMT
  5144. Reply-To: std-unix@uunet.UU.NET
  5145. To: std-unix@uunet.UU.NET
  5146.  
  5147. Submitted-by: addw@phcomp.co.uk (Alain Williams)
  5148.  
  5149. > There's a difference between:
  5150. >     P1003 will not compromise the interface to accomodate
  5151. >     layered implementations.
  5152. > And:
  5153. >     P1003 is for UNIX only.
  5154. > And I fail to see how an extension that happens to make it easier to
  5155. > write portable programs that remain reasonably efficient on layered
  5156. > implementations compromises the interface. Nobody's saying "get rid
  5157. > of fork()" this time.
  5158. OK, so you are writing a program that you intend to port onto every Posix
  5159. machine in the universe. Do you use fork()/exec() or do you use spawn() ?
  5160.  
  5161. If you are writing the system(3C) function the answer is easy, if your
  5162. application does a little more work in between fork() & exec(), do you jump
  5163. though hoops to use whatever spawn() turns out to be and ``damage'' your
  5164. implementation on true UNIX boxes for a new non-UNIX ones ?
  5165.  
  5166. I guess that what you would do is to use good old #ifdef to get the best of
  5167. both worlds. So I don't think that it really matters what we end up with
  5168. as long as the fork()/exec() alternative is well defined so that we only have
  5169. to do the non-UNIX posix port once.
  5170.  
  5171. What would be probably quite usefull is a
  5172.     #define FORK_IS_PAINFULL
  5173. that we can test and thus compile in the spawn() code.
  5174.  
  5175. You should not forget that these standards are supposed to make life
  5176. easier for application writer. Also the (good) application writer takes a
  5177. pragmatic approach and does the best job that he can in a given environment,
  5178. the most important thing is to get it working reasonably well - and quickly.
  5179.  
  5180. Alain Williams
  5181.  
  5182. +44 734 461232
  5183.  
  5184. phLOGIN our Turnkey Security Login utility is available NOW - ask me for info.
  5185.  
  5186. Volume-Number: Volume 22, Number 81
  5187.  
  5188. From jsq@cs.utexas.edu  Mon Jan 28 21:12:51 1991
  5189. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  5190.     id AA12149; Mon, 28 Jan 91 21:12:51 -0500
  5191. Posted-Date: 26 Jan 91 22:24:36 GMT
  5192. Received: by cs.utexas.edu (5.64/1.93) 
  5193. From: rcd@ico.isc.com (Dick Dunn)
  5194. Newsgroups: comp.std.unix
  5195. Subject: Re: Shell standardization (for c.std.unix)
  5196. Summary: not trivial
  5197. Message-Id: <17403@cs.utexas.edu>
  5198. References: <17011@cs.utexas.edu> <17065@cs.utexas.edu> <17155@cs.utexas.edu>
  5199. Sender: jsq@cs.utexas.edu
  5200. Organization: Interactive Systems Corporation, Boulder, CO
  5201. X-Submissions: std-unix@uunet.uu.net
  5202. Date: 26 Jan 91 22:24:36 GMT
  5203. Reply-To: std-unix@uunet.UU.NET
  5204. To: std-unix@uunet.UU.NET
  5205.  
  5206. Submitted-by: rcd@ico.isc.com (Dick Dunn)
  5207.  
  5208. jack@cwi.nl (Jack Jansen) writes:
  5209.  
  5210. > ... I don't see any problem in the shell reading the first line and
  5211. > checking it for #!/bin/sh.
  5212.  
  5213. > The only thing that this would break is that old shell scripts without
  5214. > a #! first line wouldn't execute anymore, but this is trivial to fix
  5215. > by adding the #! line.
  5216.  
  5217. While I don't really intend to wish evil upon Jansen, I do wish that people
  5218. who make statements like this would have to keep a hand in maintaining
  5219. large systems.
  5220.  
  5221. It is, indeed, trivial to change any given shell script by the addition of
  5222. a #! line at the beginning.  But the task of finding (all instances of) all
  5223. shell scripts and correcting them all is a most incredible nightmare.  Even
  5224. this ignores finding the programs which generate shell scripts (a much
  5225. smaller class than the former, but much harder to solve).
  5226.  
  5227. The alternate solution which has been suggested--having the shell sanity-
  5228. check before it executes a file--is far more practical to carry out in the
  5229. real world, and will find virtually all non-shell-script problems.
  5230. -- 
  5231. Dick Dunn     rcd@ico.isc.com -or- ico!rcd       Boulder, CO   (303)449-2870
  5232.    ...Mr. Natural says, "Use the right tool for the job."
  5233.  
  5234. Volume-Number: Volume 22, Number 83
  5235.  
  5236. From jsq@cs.utexas.edu  Mon Jan 28 21:14:22 1991
  5237. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  5238.     id AA12889; Mon, 28 Jan 91 21:14:22 -0500
  5239. Posted-Date: 23 Jan 91 21:37:00 GMT
  5240. Received: by cs.utexas.edu (5.64/1.93) 
  5241. From: Kevin.N.Broekhoven@QueensU.CA
  5242. Newsgroups: comp.std.unix
  5243. Subject: recent history of Unix evolution
  5244. Message-Id: <17405@cs.utexas.edu>
  5245. Sender: jsq@cs.utexas.edu
  5246. X-Submissions: std-unix@uunet.uu.net
  5247. Date: 23 Jan 91 21:37:00 GMT
  5248. Reply-To: std-unix@uunet.UU.NET
  5249. To: std-unix@uunet.UU.NET
  5250.  
  5251. Submitted-by: Kevin.N.Broekhoven@QueensU.CA
  5252.  
  5253. I am writing a small article which touches on recent evolution in Unix
  5254. standards, but can't seem to find some information that it would be nice to
  5255. include.  I would appreciate it if some kind soul who is up on all of this
  5256. could please shed a little light on this for me.
  5257.  
  5258. Questions:
  5259.  
  5260. 1.AT&T, Sun and Microsoft banded together in the late 80's to create System V.4
  5261.     as the merge of the System V.3, SunOS, and Xenix strains of Unix.
  5262.     What was the duration of the software development phase, and what were the
  5263.     release dates of System V.4 on each significant platform?
  5264.  
  5265. 2.Similarly, OSF/1 is "currently under development" but is having some problems
  5266.     getting off the ground.  I believe IBM has pulled out of the effort to
  5267.     develop the operating system, in favour of AIX which works.  What are the
  5268.     dates of:    1.the formation of OSF
  5269.                  2.the development phase of the OSF/1 operating system
  5270.                    (is it still under development, or  has it been abandoned
  5271.                      completely after the pull out by Big Blue?)
  5272.     What are the Unix roots of the OSF/1 operating system?  i.e. was it
  5273.     developed from System V.2, or Mach from Carnegie Mellon U?
  5274.  
  5275. 3.What is the date of the formation of UI (Unix International)?
  5276.  
  5277. 4.What are the Unix roots of AIX?  i.e. was it developed from System V.2 or
  5278.     Mach?  What are its advantages and disadvantages relative to other
  5279.     strains of Unix?
  5280.  
  5281. 3.What are the Unix roots of Mach?  Why did Carnagie Melon develop it?  What
  5282.     are its advantages and disadvantages relative to other strains of Unix?
  5283.     (i.e. why did Next (and possibly IBM?) choose Mach over BSD or some
  5284.      other flavour of Unix?)
  5285.  
  5286. 4.Is there a competition between System V.4 and OSF/1, in the sense that one
  5287.     will be chosen as the ANSI standard Unix, or are they both sufficiently
  5288.     conformant to current ANSI/POSIX standards, that this is not an issue:
  5289.     that the competition is strictly in the marketplace?
  5290.  
  5291. I realise this is a lot to ask, but I can't find this information in any of
  5292. our locally available references.  RTFM responses, or references to articles
  5293. in recent publications welcome.
  5294.  
  5295. with thanks in anticipation,
  5296.  
  5297. Kevin Broekhoven                     Computing Centre
  5298. applications programmer              Queens University K7L-3N6 (Canada)
  5299. Bitnet, NetNorth: BROEKHVN@QUCDN     IP: kevin@ccs.QueensU.CA (130.15.48.9)
  5300. X.400:  Kevin.Broekhoven@QueensU.CA  Bell: (613) 545-2235 fax: 545-6798
  5301.  
  5302. Volume-Number: Volume 22, Number 84
  5303.  
  5304. From jsq@cs.utexas.edu  Mon Jan 28 21:29:06 1991
  5305. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  5306.     id AA18673; Mon, 28 Jan 91 21:29:06 -0500
  5307. Posted-Date: 25 Jan 91 03:25:13 GMT
  5308. Received: by cs.utexas.edu (5.64/1.93) 
  5309. From: michael@CS.UCLA.EDU (michael gersten)
  5310. Newsgroups: comp.std.unix
  5311. Subject: Re: qfork() (again)
  5312. Message-Id: <17402@cs.utexas.edu>
  5313. References: <16875@cs.utexas.edu> <16992@cs.utexas.edu> <17010@cs.utexas.edu>
  5314. Sender: jsq@cs.utexas.edu
  5315. Organization: UCLA Computer Science Department
  5316. X-Submissions: std-unix@uunet.uu.net
  5317. Date: 25 Jan 91 03:25:13 GMT
  5318. Reply-To: std-unix@uunet.UU.NET
  5319. To: std-unix@uunet.UU.NET
  5320.  
  5321. Submitted-by: michael@CS.UCLA.EDU (michael gersten)
  5322.  
  5323. In article <17010@cs.utexas.edu> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  5324. >Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  5325. >
  5326. >In article <16992@cs.utexas.edu> peter@ficc.ferranti.com (Peter da Silva) writes:
  5327. >>In article <16875@cs.utexas.edu> gwyn@smoke.brl.mil (Doug Gwyn) writes:
  5328. >>> We (IEEE P1003) deliberately omitted vfork() from the POSIX spec
  5329. >>> because it was not necessary, given a decent implementation of fork().
  5330. >>POSIX is not supposed to be a standard for UNIX only. In many non-UNIX
  5331. >>environments a "decent implementation of fork" is quite difficult ...
  5332. >
  5333. >Excuse me, but you're quite wrong.  P1003 decided deliberately that we
  5334. >(I was there) would not compromise the (1003.1) interface in order to
  5335. >accommodate "layered" implementations, for example on non-UNIX based
  5336. >operating system kernels.
  5337.  
  5338.  
  5339. May I humbly ask what was wrong with vfork?
  5340.  
  5341. As I understand it, vfork's semantics was a virtual fork--
  5342. conceptually two execution threads would return from the call,
  5343. and they may or may not be sharing data space--any program
  5344. that relied on one or the other was by definition broken.
  5345.  
  5346. Now, with that definition, vfork() is pretty trivial to implement,
  5347. even on a naked 68000 with no mmu. And on better, more complete
  5348. systems, it can be identical to fork.
  5349.  
  5350. So its a call that is at least, if not more, efficient on a larger
  5351. variety of hardware platforms.
  5352.  
  5353. Now, why was it removed? What is wrong with it?
  5354.  
  5355. Volume-Number: Volume 22, Number 82
  5356.  
  5357. From jsq@cs.utexas.edu  Tue Jan 29 16:58:39 1991
  5358. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  5359.     id AA14672; Tue, 29 Jan 91 16:58:39 -0500
  5360. Posted-Date: 29 Jan 91 06:55:06 GMT
  5361. Received: by cs.utexas.edu (5.64/1.93) 
  5362. From: sef@kithrup.COM (Sean Eric Fagan)
  5363. Newsgroups: comp.std.unix
  5364. Subject: Re: qfork() (again)
  5365. Message-Id: <17453@cs.utexas.edu>
  5366. References: <16992@cs.utexas.edu> <17010@cs.utexas.edu> <17402@cs.utexas.edu>
  5367. Sender: jsq@cs.utexas.edu
  5368. Organization: Kithrup Enterprises, Ltd.
  5369. X-Submissions: std-unix@uunet.uu.net
  5370. Date: 29 Jan 91 06:55:06 GMT
  5371. Reply-To: std-unix@uunet.UU.NET
  5372. To: std-unix@uunet.UU.NET
  5373.  
  5374. Submitted-by: sef@kithrup.COM (Sean Eric Fagan)
  5375.  
  5376. In article <17402@cs.utexas.edu> michael@CS.UCLA.EDU (michael gersten) writes:
  5377. >So its a call that is at least, if not more, efficient on a larger
  5378. >variety of hardware platforms.
  5379. >Now, why was it removed? What is wrong with it?
  5380.  
  5381. Why have it at *all*?  If it is functionally equivalent to fork(), why in
  5382. k&r's name add another call that does exactly the same thing?
  5383.  
  5384. -- 
  5385. Sean Eric Fagan  | "I made the universe, but please don't blame me for it;
  5386. sef@kithrup.COM  |  I had a bellyache at the time."
  5387. -----------------+           -- The Turtle (Stephen King, _It_)
  5388. Any opinions expressed are my own, and generally unpopular with others.
  5389.  
  5390. Volume-Number: Volume 22, Number 85
  5391.  
  5392. From jsq@cs.utexas.edu  Wed Jan 30 18:30:36 1991
  5393. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  5394.     id AA19836; Wed, 30 Jan 91 18:30:36 -0500
  5395. Posted-Date: 30 Jan 91 01:54:04 GMT
  5396. Received: by cs.utexas.edu (5.64/1.93) 
  5397. From: lupine!rfg@cs.utexas.edu (Ron Guilmette)
  5398. Newsgroups: comp.std.unix
  5399. Subject: Is there a standard prototype for `execvp'?
  5400. Message-Id: <17501@cs.utexas.edu>
  5401. Sender: jsq@cs.utexas.edu
  5402. Organization: Network Computing Devices, Inc., Mt. View, CA
  5403. X-Submissions: std-unix@uunet.uu.net
  5404. Date: 30 Jan 91 01:54:04 GMT
  5405. Reply-To: std-unix@uunet.uu.net
  5406. To: std-unix@uunet.uu.net
  5407.  
  5408. Submitted-by: rfg@lupine.uucp (Ron Guilmette)
  5409.  
  5410. It is somewhat dated now, but the only book I have about POSIX is
  5411. copyright 1988.
  5412.  
  5413. Reading that book, it seems that the POSIX committee didn't want to
  5414. use ANSI C function prototypes for their specification of the C language
  5415. binding because prototypes were too "new-fangled".  Specifically, they
  5416. apparently choose not to express the binding in terms of prototypes because:
  5417.  
  5418.     "... the Working Group was aware that some vendors would wish
  5419.     to implement POSIX in terms of a binding to an historical
  5420.     variant of the C language..."
  5421.  
  5422. So in effect, it seems that the bindings given in the book I'm looking
  5423. at are for "traditional C" (rather than ANSI C).
  5424.  
  5425. In addition to avoiding prototypes, the POSIX folks also (apparently)
  5426. decided to avoid the use of ANSI C type qualifiers (i.e. "const" and
  5427. "volatile") in the C binding.
  5428.  
  5429. Now even thought I don't really keep up on such things, I assume that
  5430. some progress has been made since 1988.  Is there now also an ANSI C
  5431. binding for POSIX?  If so, please tell me the exact name of *that*
  5432. document so that I can go buy a copy.
  5433.  
  5434. The thing that I most want to know at the moment is the "correct" (or
  5435. "standard") prototype for the `execvp' function.  The POSIX book I have
  5436. here doesn't use any ANSI C type qualifiers at all, and so I have no
  5437. idea what (if any) type qualifiers should be used to declare the types
  5438. of the formal parameters for execvp.
  5439.  
  5440. For example, my intuition tells me that a "proper" prototype for `execvp'
  5441. should look like:
  5442.  
  5443.     extern int execvp (const char *, const char *const *);
  5444.  
  5445. But somebody else disagrees with me.
  5446.  
  5447. It seems that this sort of thing could be an important "standards" issue
  5448. because many variants of UN*X operating systems are now shipping with fully
  5449. prototyped system include files.  Are they "POSIX-conformant" with respect
  5450. to the qualifiers used to declare the types of their formals?  How would
  5451. one be able know one way or the other?
  5452.  
  5453. Please excuse me if this has all been resolved long ago (and if my nearly
  5454. total ignorance is showing).
  5455.  
  5456. Volume-Number: Volume 22, Number 87
  5457.  
  5458. From jsq@cs.utexas.edu  Wed Jan 30 18:40:35 1991
  5459. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  5460.     id AA22669; Wed, 30 Jan 91 18:40:35 -0500
  5461. Posted-Date: 30 Jan 91 14:29:14 GMT
  5462. Received: by cs.utexas.edu (5.64/1.93) 
  5463. From: peter@world.std.com (Peter Salus)
  5464. Newsgroups: comp.std.unix
  5465. Subject: Re: recent history of Unix evolution
  5466. Message-Id: <17503@cs.utexas.edu>
  5467. References: <17405@cs.utexas.edu>
  5468. Sender: jsq@cs.utexas.edu
  5469. Organization: The World @ Software Tool & Die
  5470. X-Submissions: std-unix@uunet.uu.net
  5471. Date: 30 Jan 91 14:29:14 GMT
  5472. Reply-To: std-unix@uunet.uu.net
  5473. To: std-unix@uunet.uu.net
  5474.  
  5475. Submitted-by: peter@world.std.com (Peter Salus)
  5476.  
  5477. In article <17405@cs.utexas.edu> Kevin.N.Broekhoven@QueensU.CA writes:
  5478. >Submitted-by: Kevin.N.Broekhoven@QueensU.CA
  5479. >
  5480. >I am writing a small article which touches on recent evolution in Unix
  5481. >standards, but can't seem to find some information that it would be nice to
  5482. >include.  I would appreciate it if some kind soul who is up on all of this
  5483. >could please shed a little light on this for me.
  5484. >
  5485. Much of what you ask is in Libes&Ressler, Life with UNIX, 
  5486. Prentice Hall 1989.  For the stuff on Mach, I suggest the 
  5487. Summer 1986 (Atlanta) USENIX Proceedings or the Proceedings 
  5488. of the USENIX Mach Workshop last Autumn.  OSF was created in 
  5489. May 1989; UI (in response) in August/September 1989.  There 
  5490. are two OSF papers and a Mach paper in the USENIX Proceedings
  5491. for Dallas (last week).
  5492.  
  5493. P
  5494. -- 
  5495. The difference between practice and theory in practice is always
  5496. greater than the difference between practice and theory in theory. 
  5497.  
  5498. Volume-Number: Volume 22, Number 89
  5499.  
  5500. From jsq@cs.utexas.edu  Wed Jan 30 18:46:23 1991
  5501. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  5502.     id AA24120; Wed, 30 Jan 91 18:46:23 -0500
  5503. Posted-Date: 30 Jan 91 17:55:07 GMT
  5504. Received: by cs.utexas.edu (5.64/1.93) 
  5505. From: karish@mindcraft.com (Chuck Karish)
  5506. Newsgroups: comp.std.unix
  5507. Subject: Re: Shell standardization (for c.std.unix)
  5508. Summary: #!/bin/whatever
  5509. Message-Id: <17504@cs.utexas.edu>
  5510. References: <17011@cs.utexas.edu> <17065@cs.utexas.edu> <17155@cs.utexas.edu> <17400@cs.utexas.edu>
  5511. Sender: jsq@cs.utexas.edu
  5512. Organization: Mindcraft, Inc.
  5513. X-Submissions: std-unix@uunet.uu.net
  5514. Date: 30 Jan 91 17:55:07 GMT
  5515. Reply-To: std-unix@uunet.uu.net
  5516. To: std-unix@uunet.uu.net
  5517.  
  5518. Submitted-by: karish@mindcraft.com (Chuck Karish)
  5519.  
  5520. In article <17400@cs.utexas.edu> gwyn@smoke.brl.mil (Doug Gwyn) wrote:
  5521. >In article <17155@cs.utexas.edu> jack@cwi.nl (Jack Jansen) writes:
  5522. >>I don't see any problem in the shell reading the first line and
  5523. >>checking it for #!/bin/sh.
  5524. >
  5525. >Shells that have done this (e.g. some csh implementations on UNIX System V)
  5526. >have definitely caused problems.  For example, Most of my shell scripts
  5527. >start with #!/usr/5bin/sh to ensure System V semantics on BSD systems;
  5528. >however, on a genuine UNIX System V system I was expecting the script to
  5529. >be interpreted by /bin/sh (even if executed by csh).
  5530.  
  5531. It would seem that programmer expectations were more at fault here than
  5532. were the SysV shells.  The scripts he described were designed to
  5533. exploit a difference in the behavior of shells on different systems.  I
  5534. don't understand why it worked, though.  On some older SysV-based
  5535. systems I've used, scripts that start with the '#' character are
  5536. interpreted as csh scripts no matter what follows the '#'.
  5537.  
  5538. Some systems that honor "#! /bin/whatever" do not default to csh if the
  5539. file starts with just "#".
  5540.  
  5541. The need for a hard-coded path makes scripts that depend on the "#!"
  5542. mechanism non-portable. "/usr/5bin/sh" is the right path for a shell
  5543. with full SysV functionality on a Sun.  On a DEC system, the
  5544. incantation is "/bin/sh5"; on other systems, the correct name might be
  5545. "/usr/usg/sh" or "/bin/bsh".  Perhaps what we need is a standard set of
  5546. non-filename identifiers for shells.
  5547.  
  5548. Creative use of links can help alleviate this problem on existing
  5549. systems.
  5550.  
  5551. I would be more optimistic that the adoption of the 1003.2 standard
  5552. would solve this problem if I hadn't already seen the many different
  5553. ways that vendors have isolated 1003.1 behavior in compatibility
  5554. modes.  Operating system standards won't live up to their full
  5555. potential until they're accepted as the default interfaces.
  5556.  
  5557. To change the subject a little, what features of modern sh
  5558. implementations cause scripts written for the BSD sh to fail?  I
  5559. presume there's a reason that BSD vendors don't install a SysV sh in
  5560. /bin.  Followups on this point should probably go to comp.unix.shell.
  5561. -- 
  5562.  
  5563.     Chuck Karish        karish@mindcraft.com
  5564.     Mindcraft, Inc.        (415) 323-9000
  5565.  
  5566. Volume-Number: Volume 22, Number 90
  5567.  
  5568. From jsq@cs.utexas.edu  Thu Jan 31 18:57:36 1991
  5569. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  5570.     id AA20857; Thu, 31 Jan 91 18:57:36 -0500
  5571. Posted-Date: 31 Jan 91 10:05:36 GMT
  5572. Received: by cs.utexas.edu (5.64/1.93) 
  5573. From: domo@tsa.co.uk (Dominic Dunlop)
  5574. Newsgroups: comp.std.unix
  5575. Subject: Re: qfork() (again)
  5576. Message-Id: <17527@cs.utexas.edu>
  5577. References: <16992@cs.utexas.edu> <17010@cs.utexas.edu> <17402@cs.utexas.edu>
  5578. Sender: jsq@cs.utexas.edu
  5579. Reply-To: domo@tsa.co.uk
  5580. Organization: The Standard Answer Ltd.
  5581. X-Submissions: std-unix@uunet.uu.net
  5582. Date: 31 Jan 91 10:05:36 GMT
  5583. To: std-unix@uunet.uu.net
  5584.  
  5585. Submitted-by: domo@tsa.co.uk (Dominic Dunlop)
  5586.  
  5587. In article <17402@cs.utexas.edu> michael@CS.UCLA.EDU (michael gersten) writes:
  5588. > May I humbly ask what was wrong with vfork?
  5589.  
  5590. Yup.  I'll humbly try to answer.
  5591. > As I understand it, vfork's semantics was a virtual fork--
  5592. > conceptually two execution threads would return from the call,
  5593. > and they may or may not be sharing data space--any program
  5594. > that relied on one or the other was by definition broken.
  5595.  
  5596. The problem -- one problem -- is in coming up with a ``portable''
  5597. definition of ``data space''.  On what we currently assume to be
  5598. ``vanilla flavour'' architectures such as that of the 68000 which you
  5599. cite, it's fairly obvious.  But on others, it's not.  What about
  5600. registers?  Are they data space?  No?  Even on architectures with
  5601. register windows which may or may not map onto main memory addresses?
  5602. Bear in mind that such exotica are not so exotic any more: RISCs use
  5603. them widely.
  5604.  
  5605. It seems that any definition which is safe on all architectures is
  5606. liable to constrain what one may do between [qv]fork() and exec() so
  5607. greatly that it turns out to be better to define a combined spwan()
  5608. function.  This would make it less likely that the POSIX standards would
  5609. contain explicit or implicit assumptions about the architecture of the
  5610. hardware on which a conforming implementation runs.  While this might be
  5611. nice for aging architectures such as that of (say) the Unisys 1100
  5612. series, more importantly, it would not constrain architectural
  5613. advances of the future needlessly to conform to the nineteen
  5614. seventies' ideas of what was a ``clean machine'' in order to be able
  5615. efficiently to implement POSIX interfaces.
  5616.  
  5617. > Now, why was it removed? What is wrong with it?
  5618.  
  5619. -- see also comp.std.unix Volume 22, Number 69.
  5620. -- 
  5621. Dominic Dunlop
  5622.  
  5623. Volume-Number: Volume 22, Number 93
  5624.  
  5625. From jsq@cs.utexas.edu  Thu Jan 31 18:57:43 1991
  5626. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  5627.     id AA20879; Thu, 31 Jan 91 18:57:43 -0500
  5628. Posted-Date: 31 Jan 91 19:08:05 GMT
  5629. Received: by cs.utexas.edu (5.64/1.93) 
  5630. From: gwyn@smoke.brl.mil (Doug Gwyn)
  5631. Newsgroups: comp.std.unix
  5632. Subject: Re: Shell standardization (for c.std.unix)
  5633. Message-Id: <17530@cs.utexas.edu>
  5634. References: <17155@cs.utexas.edu> <17400@cs.utexas.edu> <17504@cs.utexas.edu>
  5635. Sender: jsq@cs.utexas.edu
  5636. Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
  5637. X-Submissions: std-unix@uunet.uu.net
  5638. Date: 31 Jan 91 19:08:05 GMT
  5639. Reply-To: std-unix@uunet.uu.net
  5640. To: std-unix@uunet.uu.net
  5641.  
  5642. Submitted-by: gwyn@smoke.brl.mil (Doug Gwyn)
  5643.  
  5644. In article <17504@cs.utexas.edu> karish@mindcraft.com (Chuck Karish) writes:
  5645. >On some older SysV-based systems I've used, scripts that start with the '#'
  5646. >character are interpreted as csh scripts no matter what follows the '#'.
  5647.  
  5648. That was a bug in porting a pre-#! era csh feature.  On UNIX System V,
  5649. more often than not Bourne shell scripts begin with '#'.  Therefore it
  5650. was unwise to leave that vestigial feature in csh when porting it to
  5651. such an environment.
  5652.  
  5653. The basic answer is that there is no truly portable solution, other
  5654. than writing Bourne shell scripts starting with non-# that invoke
  5655. whatever other command is actually wanted, using some sort of path
  5656. search to find it.
  5657.  
  5658. Of course Plan 9's user-mounted appendable directories makes this easier..
  5659.  
  5660. Volume-Number: Volume 22, Number 95
  5661.  
  5662. From jsq@cs.utexas.edu  Thu Jan 31 18:59:45 1991
  5663. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  5664.     id AA21397; Thu, 31 Jan 91 18:59:45 -0500
  5665. Posted-Date: 1 Feb 91 18:00:00 GMT
  5666. Received: by cs.utexas.edu (5.64/1.93) 
  5667. From: std-unix-request@uunet.uu.net (John S. Quarterman)
  5668. Newsgroups: comp.std.unix
  5669. Subject: call for volunteer moderator
  5670. Message-Id: <17525@cs.utexas.edu>
  5671. Sender: jsq@cs.utexas.edu
  5672. Reply-To: std-unix-request@uunet.uu.net
  5673. X-Submissions: std-unix@uunet.uu.net
  5674. Date: 1 Feb 91 18:00:00 GMT
  5675. To: std-unix@uunet.uu.net
  5676.  
  5677. Submitted-by: std-unix-request@uunet.uu.net (John S. Quarterman)
  5678.  
  5679. Since the end of October 1990, there has been no funding for moderation
  5680. of the newsgroup comp.std.unix and its associated mailing list
  5681. std-unix@uunet.uu.net.  Since that time, I have sought such funding
  5682. from several user groups, the IEEE Computer Society (IEEE/CS), the
  5683. IEEE/CS Technical Committee on Operating Systems Standards Subcommittee
  5684. (TCOS-SS), and various private companies.  No funding is forthcoming.
  5685. As I remarked three months ago, I cannot afford to moderate the newsgroup
  5686. as a volunteer.  I have solicited volunteers, but no one has thus far
  5687. come forward.
  5688.  
  5689. So, this is a final call for a volunteer moderator, responses to be
  5690. received at std-unix-request@uunet.uu.net by 15 February 1991.
  5691.  
  5692. If there is:
  5693. * one volunteer, that one will become the new moderator;
  5694. * more than one volunteer, the last one to apply will conduct a vote
  5695.     by USENET rules to determine who becomes the moderator;
  5696. * no volunteer, the newsgroup will become unmoderated.
  5697.  
  5698. I will not discriminate among applicants:  all are equally valid,
  5699. regardless of qualifications.
  5700.  
  5701. Arrangements for archives and interconnection between the newsgroup
  5702. and the mailing list will have to be worked out by the new moderator,
  5703. if any.
  5704.  
  5705. John S. Quarterman, moderator, comp.std.unix and std-unix@uunet.uu.net
  5706.  
  5707. Volume-Number: Volume 22, Number 91
  5708.  
  5709. From jsq@cs.utexas.edu  Thu Jan 31 19:02:42 1991
  5710. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  5711.     id AA22138; Thu, 31 Jan 91 19:02:42 -0500
  5712. Posted-Date: 31 Jan 91 11:51:34 GMT
  5713. Received: by cs.utexas.edu (5.64/1.93) 
  5714. From: domo@tsa.co.uk (Dominic Dunlop)
  5715. Newsgroups: comp.std.unix
  5716. Subject: IEEE TCOS, New Orleans, January 1991: EurOpen IR's report
  5717. Message-Id: <17526@cs.utexas.edu>
  5718. Sender: jsq@cs.utexas.edu
  5719. Organization: The Standard Answer Ltd.
  5720. X-Submissions: std-unix@uunet.uu.net
  5721. Date: 31 Jan 91 11:51:34 GMT
  5722. Reply-To: std-unix@uunet.uu.net
  5723. To: std-unix@uunet.uu.net
  5724.  
  5725. Submitted-by: domo@tsa.co.uk (Dominic Dunlop)
  5726.  
  5727.  
  5728.             Standards Column to be Published in
  5729.               EurOpen Newsletter, Spring 1991
  5730.  
  5731.               Dominic Dunlop -- domo@tsa.co.uk
  5732.  
  5733.                   The Standard Answer Ltd.
  5734.  
  5735.  
  5736.      Production of this article was funded by EurOpen,
  5737.      the European Forum for Open Systems (formerly
  5738.      EUUG).  Copyright EurOpen, 1991.
  5739.  
  5740.  
  5741. For the past couple of years, these columns have discussed
  5742. events and developments in the POSIX-related activities of
  5743. the International Organization for Standardization (ISO).
  5744. This time, I'm going to look at a lower -- but arguably
  5745. equally important -- level in the standards development
  5746. process: the Institute of Electrical and Electronic
  5747. Engineers' Computer Society Technical Committee on Operating
  5748. Systems Standards Subcommittee.  Let's just call it
  5749. IEEE-CS TCOS SS, or, better still, TCOS.
  5750.  
  5751. Last October, EurOpen agreed to provide funding for an
  5752. institutional representative who would attend the quarterly
  5753. meetings of TCOS, and provide a means of routing input from
  5754. European users of open systems into the bewilderingly large
  5755. variety of POSIX standards being developed by working groups
  5756. under TCOS.  I am that representative, and, since I'm
  5757. spending your money, I'd better tell you what is going on,
  5758. why it's important, and how you can help me out.
  5759.  
  5760.         POSIX_Development_--_Top_Down_or_Bottom_Up?
  5761.  
  5762. I've referred to the IEEE in my reports on ISO matters,
  5763. since it is the IEEE which actually develops the standards.
  5764. The IEEE routes its documents to ISO via ANSI, the American
  5765. National Standards Institute.  Translating this into ISO-
  5766. speak, ISO has designated ANSI, its U.S.  member body, as
  5767. the development agency for the POSIX standards.  ANSI, in
  5768. turn, has delegated the work to the IEEE, an accredited body
  5769. which it considers competent to create operating system
  5770. standards through a consensus process which allows all
  5771. interested parties to comment.
  5772.  
  5773. This makes the process of standards development look as
  5774. though it proceeds from the top down: somebody associated
  5775. with ISO decides that the time is right for a POSIX
  5776. standard, identifies a means of getting the job done, and
  5777. controls the process in an orderly, structured manner.
  5778.  
  5779. Life is not like that.  No matter how much those who work at
  5780. the ISO level would like to believe that they are, and
  5781. always have been, in the driving seat, the movement towards
  5782. POSIX started from the bottom and drifted up.  It started in
  5783.  
  5784.  
  5785.  
  5786.  
  5787.  
  5788.  
  5789.  
  5790.  
  5791.  
  5792.  
  5793.  
  5794.                            - 2 -
  5795.  
  5796.  
  5797.  
  5798. the early nineteen-eighties with /usr/group, a U.S.-based
  5799. organization of suppliers and commercial users of open
  5800. systems, now known as UniForum.  This group created The 1984
  5801. /usr/group Standard, a minimal definition of an operating
  5802. system interface corresponding broadly to the unprivileged
  5803. services offered by AT&T's UNIX System III, together with
  5804. selections from the Kernighan & Ritchie C language library.
  5805. Slim but seminal, this document was passed into the IEEE
  5806. (specifically, to the newly-formed TCOS) to provide the
  5807. foundation of the POSIX standards.  It also gave important
  5808. input to ANSI in the creation of a standard for the C
  5809. language.
  5810.  
  5811. Despite the fact that neither the IEEE nor ANSI puts any
  5812. nationality requirement on the individuals (in the case of
  5813. the IEEE) or the organizations (for ANSI) participating in
  5814. the creation of their standards, both POSIX and C initially
  5815. developed in the U.S. with little international input.  The
  5816. costs of travel and of assigning English-speaking technical
  5817. experts to the task was (and is) one disincentive; another
  5818. is the feeling, particularly in Europe, that standards
  5819. activity should begin at home, rather than in the U.S.
  5820.  
  5821. By 1987, the international demand for standards for POSIX
  5822. and C was obvious, and it was natural that ISO should get
  5823. involved.  To be pedantic -- and the standards world is
  5824. nothing if not pedantic -- it was natural that Joint
  5825. Technical Committee 1 (JTC1) of ISO and the International
  5826. Electrotechnical Commission (IEC) should get involved.
  5827. (JTC1 had been formed in the mid-eighties to end wrangles
  5828. between ISO and the IEC over the right to create standards
  5829. for information technology.)  It was also natural that the
  5830. project for the international standardization of the C
  5831. language should be handled by JTC1's Subcommittee (SC) 22,
  5832. which is concerned with programming languages.  SC22 Working
  5833. Group (WG) 14 was duly set up to do the job.
  5834.  
  5835. It was less natural for POSIX to be assigned to WG15,
  5836. another new group under SC22.  An operating system
  5837. interface, after all, is hardly a programming language.
  5838. Nevertheless, after an attempt to set up a new SC to handle
  5839. system interfaces had failed for political reasons, SC22
  5840. picked up the work1.  Both WG14 and WG15 appointed ANSI as
  5841.  
  5842.  
  5843. __________
  5844.  
  5845.  1. SC21, which is responsible for the higher layers of OSI,
  5846.     for SQL and for office document architectures and the
  5847.     like, might have been a candidate, but, after a false
  5848.     start with OSCRL (see my last column), was not
  5849.  
  5850.  
  5851.  
  5852.  
  5853.  
  5854.  
  5855.  
  5856.  
  5857.  
  5858.  
  5859.  
  5860.                            - 3 -
  5861.  
  5862.  
  5863.  
  5864. the development agency for their respective standards,
  5865. leaving us with today's situation.
  5866.  
  5867. At this point, I shall have to stop discussing C
  5868. standardization, as it is not a field in which I am active2.
  5869. But I can tell you more than you probably want to know about
  5870. the activities of IEEE TCOS, which is at the work-face of
  5871. POSIX development.
  5872.  
  5873.                      POSIX_in_the_IEEE
  5874.  
  5875. When TCOS was set up in 1985, it had just one IEEE standards
  5876. creation project under its control -- project 1003, known as
  5877. P1003.  (Other well-known IEEE standards projects are 754
  5878. for floating point formats, and 802 for local-area
  5879. networks.)  P1003 quickly split into two sub-projects:
  5880. P1003.1 for the operating system interface, and P1003.2 for
  5881. the shell and tools.  (Recently, these have come to be known
  5882. as POSIX.1 and POSIX.2.)  A working group was associated
  5883. with each.  The working groups were named after the
  5884. projects: 1003.1 and 1003.2.
  5885.  
  5886. This splitting has continued, with around 30 projects
  5887. currently active.  Whenever a possible new POSIX-related
  5888. standards activity is identified, its promoters can draw up
  5889. a Project Authorization Request (PAR), and submit it to the
  5890. Sponsor Executive Committee (SEC) of TCOS3.  If approved
  5891. (sponsored in IEEE terminology), and subsequently rubber-
  5892. stamped by the  IEEE Computer Society's Standards Activities
  5893. Board (SAB), a new project is created.  Most become sub-
  5894. projects of the original 1003 project; some initiate new
  5895. projects, such as P1201 on windowing environments.
  5896.  
  5897. If the subject of a new activity is closely associated with
  5898. the interests of an existing working group, it is assigned
  5899. to that group; if it is not, a new working group is set up.
  5900. This means that there are fewer working groups than
  5901.  
  5902.  
  5903. ____________________________________________________________
  5904.  
  5905.     interested.
  5906.  
  5907.  2. Although I can tell you that ISO 9899, the C standard,
  5908.     went to the printers late in 1990, but, at the time of
  5909.     writing, has yet to emerge.  It is functionally
  5910.     identical to the U.S. standard, ANSI X3.159-1989.
  5911.  
  5912.  3. PARs can also be used to request changes to the goals
  5913.     and terms of reference of existing projects.
  5914.  
  5915.  
  5916.  
  5917.  
  5918.  
  5919.  
  5920.  
  5921.  
  5922.  
  5923.  
  5924.  
  5925.  
  5926.                            - 4 -
  5927.  
  5928.  
  5929.  
  5930. projects.  As an example, the 1003.0 working group is
  5931. concerned solely with the 1003.0 guide to the POSIX
  5932. environment, but the 1003.1 working group now handles
  5933. 1003.1, the operating system interface; 1003.16, C language
  5934. bindings to operating system services; and 1003.18, a
  5935. profile for a "traditional" POSIX-based system.
  5936.  
  5937. Once a working group has been formed, its job is to draft
  5938. standards, making sure that they meet the needs of both
  5939. suppliers and users of information technology.  This is done
  5940. through a somewhat baroque balloting process:
  5941.  
  5942.    - Associated with each working group is a balloting
  5943.      group.  The balloting group is typically formed shortly
  5944.      before the circulation of the first complete draft of
  5945.      the first standard developed by the working group.
  5946.  
  5947.    - Balloting groups are drawn from the membership of a
  5948.      balloting pool.  The pool has three types of member:
  5949.      individual members of the IEEE who have specifically
  5950.      applied to join the pool4; institutional
  5951.      representatives (IRs) accepted by the IEEE-CS SAB (see
  5952.      below); and national heads of delegation to the ISO
  5953.      POSIX working group.
  5954.  
  5955.    - All members of the balloting pool are sent notice of
  5956.      the formation of each new balloting group.  Those who
  5957.      respond become members of the group, subject to
  5958.      considerations of maintaining a balance between user
  5959.      and supplier representatives.
  5960.  
  5961.    - Once a balloting group has been formed, it persists
  5962.      indefinitely with a static membership.  Only if there
  5963.      are problems in getting the required 75% response to
  5964.      ballots is the membership of a group reviewed.
  5965.  
  5966.    - It is almost never possible to join a balloting group
  5967.      after it has formed.
  5968.  
  5969.    - Individuals or organisations outside the balloting
  5970.      group can make objections to, or comments on, the
  5971.      content of draft standards, just as can balloting group
  5972.      members.  All objections from whatever source must be
  5973.  
  5974.  
  5975. __________
  5976.  
  5977.  4. The requirement for IEEE membership appears recently to
  5978.     have been dropped, although the rule book has yet to be
  5979.     amended.
  5980.  
  5981.  
  5982.  
  5983.  
  5984.  
  5985.  
  5986.  
  5987.  
  5988.  
  5989.  
  5990.  
  5991.  
  5992.                            - 5 -
  5993.  
  5994.  
  5995.  
  5996.      handled through a formal resolution process.  However,
  5997.      only members of the balloting group can vote for or
  5998.      against the acceptance of a draft (or indeed,
  5999.      completed) standard.
  6000.  
  6001.    - A draft is considered approved if it is accepted by 75%
  6002.      or more of those who vote either for it or against it5.
  6003.  
  6004. Simple, huh?  And I haven't even mentioned the appeals
  6005. procedure!
  6006.  
  6007. Membership of a balloting group is a considerable
  6008. responsibility:  following notice of a ballot, IEEE rules
  6009. give just 30 days to review a document which may run to
  6010. almost a thousand pages, and to return any comments or
  6011. objections to the ballot coordinator.  And unless over 75%
  6012. of the membership of the ballot group responds, the result
  6013. is held to be invalid.  When one considers that a document
  6014. is likely to go through a dozen drafts before it becomes an
  6015. approved standard, it is clear that balloters have to work
  6016. hard (even if not all of the drafts are balloted).
  6017. Recirculation ballots, initiated when changes are made to a
  6018. draft in response to an initial ballot, increase the work-
  6019. load further.
  6020.  
  6021. In order to make the task a little easier, TCOS has adopted
  6022. a procedure called a mock ballot to handle the early drafts
  6023. of a document.  These are similar to mock examinations: the
  6024. procedures are identical to the real thing, but it doesn't
  6025. matter so much if it is flunked.  In particular, no alarm
  6026. bells start ringing in the IEEE's offices if a 75% response
  6027. is not achieved.
  6028.  
  6029.            What_has_all_this_to_do_with_EurOpen?
  6030.  
  6031. EurOpen feels that it is important that the views of its
  6032. membership are represented in two forums.  Firstly, on the
  6033. SEC, which decides on the authorization of POSIX-related
  6034. projects and controls their development and coordination;
  6035. and secondly, in the balloting pool from which those who
  6036. vote on the content and acceptance of standards are drawn.
  6037.  
  6038.  
  6039.  
  6040.  
  6041. __________
  6042.  
  6043.  5. If more than 30% of those who return their ballots
  6044.     abstain, things get more complicated.  Let's not go into
  6045.     that.
  6046.  
  6047.  
  6048.  
  6049.  
  6050.  
  6051.  
  6052.  
  6053.  
  6054.  
  6055.  
  6056.  
  6057.  
  6058.                            - 6 -
  6059.  
  6060.  
  6061.  
  6062. The first objective has already been met:  I am happy to be
  6063. able to tell you that the SEC has unanimously accepted
  6064. EurOpen's request for me to become its institutional
  6065. representative6.  I join existing IRs from a number of user
  6066. groups and industry bodies:  the Open Software Foundation,
  6067. OSSWG (a group developing a real-time kernel for embedded
  6068. systems), SHARE (the IBM user group), UniForum, UNIX
  6069. International, USENIX and X/Open7.  (UniForum and USENIX
  6070. were particularly helpful in the preparation of EurOpen's
  6071. application.)
  6072.  
  6073. Gaining IR status in the balloting pool takes longer, as
  6074. EurOpen's request must be discussed by the SAB, but I hope
  6075. to be able to report in the Spring Newsletter that it has
  6076. been approved.
  6077.  
  6078. Luckily, this delay gives me a little breathing space to
  6079. make a request.  I need help from volunteers.  If you feel
  6080. competent to help EurOpen's newly-formed Standards
  6081. Activities Management Group (SAMG) in formulating responses
  6082. to IEEE POSIX ballots, please contact me at the mail address
  6083. at the head of this article8.  In particular, could experts
  6084. on secure operating systems please get in touch, as the
  6085. working group concerned with this aspect of POSIX, 1003.6,
  6086. is in the process of forming a balloting group.
  6087.  
  6088. I hope to see you at the standards birds-of-a-feather
  6089. session at EurOpen's spring conference in Tromso, where
  6090. members of the SAMG will be reporting on the latest
  6091. developments in the  Europe, the U.S.A. and the world at
  6092. large.
  6093.  
  6094.  
  6095.  
  6096.  
  6097.  
  6098.  
  6099.  
  6100.  
  6101. __________
  6102.  
  6103.  6. Actually, the acceptance was "by acclamation", which is
  6104.     even better.
  6105.  
  6106.  7. The Free Software Foundation (FSF) is likely to join the
  6107.     list later this year.
  6108.  
  6109.  8. The other members of the SAMG are Johan Helsingius
  6110.     (julf@penet.fi) and Henk Hesselink (henk@ace.nl).
  6111.  
  6112.  
  6113.  
  6114.  
  6115.  
  6116.  
  6117.  
  6118.  
  6119.  
  6120.  
  6121. -- 
  6122. Dominic Dunlop
  6123.  
  6124.  
  6125.  
  6126. Volume-Number: Volume 22, Number 92
  6127.  
  6128. From jsq@cs.utexas.edu  Sat Feb  2 14:21:35 1991
  6129. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6130.     id AA25778; Sat, 2 Feb 91 14:21:35 -0500
  6131. Posted-Date: 1 Feb 91 02:18:25 GMT
  6132. Received: by cs.utexas.edu (5.64/1.93) 
  6133. From: twinsun!eggert@cs.utexas.edu (Paul Eggert)
  6134. Newsgroups: comp.std.unix
  6135. Subject: Re: qfork() (again)
  6136. Message-Id: <17572@cs.utexas.edu>
  6137. References: <16992@cs.utexas.edu> <17010@cs.utexas.edu> <17402@cs.utexas.edu> <17527@cs.utexas.edu>
  6138. Sender: jsq@cs.utexas.edu
  6139. Organization: Twin Sun, Inc
  6140. X-Submissions: std-unix@uunet.uu.net
  6141. Date: 1 Feb 91 02:18:25 GMT
  6142. Reply-To: std-unix@uunet.uu.net
  6143. To: std-unix@uunet.uu.net
  6144.  
  6145. Submitted-by: eggert@twinsun.uucp (Paul Eggert)
  6146.  
  6147.     ... any definition which is safe on all architectures is liable to
  6148.     constrain what one may do between [qv]fork() and exec() so greatly
  6149.     that it turns out to be better to define a combined spawn() function.
  6150.  
  6151. What's wrong with the following definition, which permits the usual actions
  6152. between fork() and exec()?  Isn't this definition easy to explain and support?
  6153.  
  6154.     vfork() acts like fork(), except:
  6155.  
  6156.     1.  Any variables that are common to both parent and child, and are
  6157.     changed by the child before it exits or execs, have undefined values in
  6158.     the parent when its vfork() returns.
  6159.  
  6160.     2.  The child may not call unsafe standard functions (these are
  6161.     nonreentrant; see Posix 1003.1-1988 section 3.3.1.3(3)(f)).
  6162.  
  6163.     3.  The child may not return from the function that called vfork(),
  6164.     either explicitly or via longjmp().
  6165.  
  6166.     4.  The program must #include <vfork.h>.
  6167.  
  6168. (2) follows from (1).  (4) is common practice, and gets around the exotic
  6169. architecture problem.  (2)'s phrase ``common to both parent and child'' lets
  6170. the child call reentrant functions, because their automatic variables do not
  6171. exist in the parent.
  6172.  
  6173. I don't much like vfork(), but it's common practice, it is much faster on many
  6174. hosts, and many widely distributed Unix programs use it.  By all means, let's
  6175. invent other primitives if they're needed, but why not first standardize the
  6176. primitives we already have?
  6177.  
  6178. Volume-Number: Volume 22, Number 96
  6179.  
  6180. From jsq@cs.utexas.edu  Sat Feb  2 14:24:35 1991
  6181. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6182.     id AA26095; Sat, 2 Feb 91 14:24:35 -0500
  6183. Posted-Date: 1 Feb 91 15:08:31 GMT
  6184. Received: by cs.utexas.edu (5.64/1.93) 
  6185. From: willcox@urbana.mcd.mot.com (David A Willcox)
  6186. Newsgroups: comp.std.unix
  6187. Subject: Re: Is there a standard prototype for `execvp'?
  6188. Message-Id: <17573@cs.utexas.edu>
  6189. References: <17501@cs.utexas.edu>
  6190. Sender: jsq@cs.utexas.edu
  6191. X-Submissions: std-unix@uunet.uu.net
  6192. Date: 1 Feb 91 15:08:31 GMT
  6193. Reply-To: std-unix@uunet.uu.net
  6194. To: std-unix@uunet.uu.net
  6195.  
  6196. Submitted-by: willcox@urbana.mcd.mot.com (David A Willcox)
  6197.  
  6198. rfg@lupine.uucp (Ron Guilmette) writes:
  6199.  
  6200. >It is somewhat dated now, but the only book I have about POSIX is
  6201. >copyright 1988.
  6202.  
  6203. The new version of POSIX.1, IEEE Std 1003.1-1990, came out last
  6204. December.  You can get it from the IEEE; their number is 1-800-678-IEEE,
  6205. and I think that the order number is SH13680.  It uses ANSI C prototypes.
  6206. execvp(), for example, is:
  6207.  
  6208.     int execvp(const char *file, char *const argv[]);
  6209.  
  6210. It also has quite a number of other "bug fixes".
  6211.  
  6212. >Reading that book, it seems that the POSIX committee didn't want to
  6213. >use ANSI C function prototypes for their specification of the C language
  6214. >binding because prototypes were too "new-fangled".  Specifically, they
  6215. >apparently choose not to express the binding in terms of prototypes because:
  6216.  
  6217. ANSI C "wasn't" when the 1988 version of POSIX was written.  There were
  6218. drafts of the C standard around, but it wasn't approved, and there was no
  6219. guarantee that it wouldn't change.  That was the main reason for staying
  6220. with the traditional syntax. 
  6221.  
  6222. Volume-Number: Volume 22, Number 97
  6223.  
  6224. From jsq@cs.utexas.edu  Sat Feb  2 14:32:23 1991
  6225. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6226.     id AA26906; Sat, 2 Feb 91 14:32:23 -0500
  6227. Posted-Date: 1 Feb 91 17:45:53 GMT
  6228. Received: by cs.utexas.edu (5.64/1.93) 
  6229. From: donn@hpfcrn.fc.hp.com (Donn Terry)
  6230. Newsgroups: comp.std.unix
  6231. Subject: Is there a standard prototype for `execvp'?
  6232. Message-Id: <17574@cs.utexas.edu>
  6233. References: <17528@cs.utexas.edu> <17573@cs.utexas.edu>
  6234. Sender: jsq@cs.utexas.edu
  6235. X-Submissions: std-unix@uunet.uu.net
  6236. Date: 1 Feb 91 17:45:53 GMT
  6237. Reply-To: std-unix@uunet.uu.net
  6238. To: std-unix@uunet.uu.net
  6239.  
  6240. Submitted-by: donn@hpfcrn.fc.hp.com (Donn Terry)
  6241.  
  6242. >Submitted-by: rfg@lupine.uucp (Ron Guilmette)
  6243.  
  6244. >Reading that book, it seems that the POSIX committee didn't want to
  6245. >use ANSI C function prototypes for their specification of the C language
  6246. >binding because prototypes were too "new-fangled".  Specifically, they
  6247. >apparently choose not to express the binding in terms of prototypes because:
  6248.  
  6249. >    "... the Working Group was aware that some vendors would wish
  6250. >    to implement POSIX in terms of a binding to an historical
  6251. >    variant of the C language..."
  6252.  
  6253. That was appropriate at the time.  The -1990 version uses ANSI C
  6254. prototypes (now that ANSI C is approved, and implementations are
  6255. available).  
  6256.  
  6257. >In addition to avoiding prototypes, the POSIX folks also (apparently)
  6258. >decided to avoid the use of ANSI C type qualifiers (i.e. "const" and
  6259. >"volatile") in the C binding.
  6260.  
  6261. Avoided for the same reasons.
  6262.  
  6263. >Now even thought I don't really keep up on such things, I assume that
  6264. >some progress has been made since 1988.  Is there now also an ANSI C
  6265. >binding for POSIX?  If so, please tell me the exact name of *that*
  6266. >document so that I can go buy a copy.
  6267.  
  6268. Specifically IEEE Std. 1003.1-1990
  6269. a.k.a. ISO/IEC JTC-1 IS 9945-1:1990
  6270. (Available from IEEE at the same place you got your -1988 version.)
  6271.  
  6272. >For example, my intuition tells me that a "proper" prototype for `execvp'
  6273. >should look like:
  6274.  
  6275. >    extern int execvp (const char *, const char *const *);
  6276.  
  6277. The new standard has the declaration as:
  6278.  
  6279.     int execvp (const char *file, char *const argv[]);
  6280.  
  6281. It was generally agreed during balloting that what really was wanted
  6282. was "const char * const argv[]".  However, ANSI C disagrees: that's
  6283. a syntax error!
  6284.  
  6285. (There's a bunch of rationale about why the specific declaration was
  6286. chosen, I won't repeat it here, but the bottom line is that given
  6287. that you can't have both const's, this is the best choice remaining.)
  6288.  
  6289. Donn Terry
  6290. Speaking only for myself.
  6291.  
  6292. Volume-Number: Volume 22, Number 98
  6293.  
  6294. From jsq@cs.utexas.edu  Sun Feb  3 12:55:08 1991
  6295. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  6296.     id AA09103; Sun, 3 Feb 91 12:55:08 -0500
  6297. Posted-Date: 3 Feb 91 05:30:06 GMT
  6298. Received: by cs.utexas.edu (5.64/1.93) 
  6299. From: sef@kithrup.COM (Sean Eric Fagan)
  6300. Newsgroups: comp.std.unix
  6301. Subject: Re: qfork() (again)
  6302. Message-Id: <17597@cs.utexas.edu>
  6303. References: <17402@cs.utexas.edu> <17527@cs.utexas.edu> <17572@cs.utexas.edu>
  6304. Sender: jsq@cs.utexas.edu
  6305. Organization: Kithrup Enterprises, Ltd.
  6306. X-Submissions: std-unix@uunet.uu.net
  6307. Date: 3 Feb 91 05:30:06 GMT
  6308. Reply-To: std-unix@uunet.UU.NET
  6309. To: std-unix@uunet.UU.NET
  6310.  
  6311. Submitted-by: sef@kithrup.COM (Sean Eric Fagan)
  6312.  
  6313. In article <17572@cs.utexas.edu> eggert@twinsun.uucp (Paul Eggert) writes:
  6314. >What's wrong with the following definition, which permits the usual actions
  6315. >between fork() and exec()?  Isn't this definition easy to explain and support?
  6316. [stuff]
  6317.  
  6318. Because one of the few reasons I would like vfork() (or something similar)
  6319. is now missing:  the parent does not execute until the child has exit'ed or
  6320. exec'ed something.
  6321.  
  6322. -- 
  6323. Sean Eric Fagan  | "I made the universe, but please don't blame me for it;
  6324. sef@kithrup.COM  |  I had a bellyache at the time."
  6325. -----------------+           -- The Turtle (Stephen King, _It_)
  6326. Any opinions expressed are my own, and generally unpopular with others.
  6327.  
  6328. Volume-Number: Volume 22, Number 99
  6329.  
  6330. From jsq@cs.utexas.edu  Sun Feb  3 12:57:18 1991
  6331. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  6332.     id AA09305; Sun, 3 Feb 91 12:57:18 -0500
  6333. Posted-Date: 3 Feb 91 12:43:12 GMT
  6334. Received: by cs.utexas.edu (5.64/1.93) 
  6335. From: mohta@necom830.cc.titech.ac.jp (Masataka Ohta)
  6336. Newsgroups: comp.std.unix
  6337. Subject: Re: qfork() (again)
  6338. Message-Id: <17598@cs.utexas.edu>
  6339. References: <16992@cs.utexas.edu> <17010@cs.utexas.edu> <17402@cs.utexas.edu> <17527@cs.utexas.edu>
  6340. Sender: jsq@cs.utexas.edu
  6341. Organization: Tokyo Institute of Technology
  6342. X-Submissions: std-unix@uunet.uu.net
  6343. Date: 3 Feb 91 12:43:12 GMT
  6344. Reply-To: std-unix@uunet.UU.NET
  6345. To: std-unix@uunet.UU.NET
  6346.  
  6347. Submitted-by: mohta@necom830.cc.titech.ac.jp (Masataka Ohta)
  6348.  
  6349. In article <17527@cs.utexas.edu> domo@tsa.co.uk writes:
  6350.  
  6351. >The problem -- one problem -- is in coming up with a ``portable''
  6352. >definition of ``data space''. 
  6353.  
  6354. These are 'problems' (actually, not a problem) of C, not UNIX.
  6355.  
  6356. There is no problem about data space. C has clear and portable notion
  6357. of what is data space: register and memory. That's all.
  6358.  
  6359. It has very little to do with UNIX nor vfork().
  6360.  
  6361. >On what we currently assume to be
  6362. >``vanilla flavour'' architectures such as that of the 68000 which you
  6363. >cite, it's fairly obvious.  But on others, it's not.  What about
  6364. >registers?  Are they data space?  No?  Even on architectures with
  6365. >register windows which may or may not map onto main memory addresses?
  6366. >Bear in mind that such exotica are not so exotic any more: RISCs use
  6367. >them widely.
  6368.  
  6369. Clearly, on exotic architectures, a C (not UNIX) pointer may point
  6370. to a register. It may be an exotic feature of C. But, it never is a
  6371. problem of C nor UNIX nor vfork().
  6372.  
  6373. >It seems that any definition which is safe on all architectures is
  6374. >liable to constrain what one may do between [qv]fork() and exec() so
  6375. >greatly
  6376.  
  6377. No.
  6378.  
  6379. First, list every operations which is safe between fork() and exec()
  6380. *and* between BSD vfork() and exec().
  6381.  
  6382. Then, those are the safe operations of POSIX vfork() on *all* architectures.
  6383.  
  6384. >that it turns out to be better to define a combined spwan()
  6385. >function.
  6386.  
  6387. Most (perhaps, more than 90%) of cases where fork/exec is necessary
  6388. is covered by system(). spawn() is not necessary.
  6389.  
  6390. Rest are special cases, where combined spawn() can help very little
  6391. and separate [v]fork() and exec() is really necessary.
  6392.  
  6393. Is it a role of POSIX to define unnecessary and totaly alien functions
  6394. and badly modify UNIX?
  6395.  
  6396. Don't try to reinvent wheels.
  6397.  
  6398.                     Masataka Ohta
  6399.  
  6400. Volume-Number: Volume 22, Number 100
  6401.  
  6402. From jsq@cs.utexas.edu  Sun Feb  3 12:59:17 1991
  6403. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  6404.     id AA09651; Sun, 3 Feb 91 12:59:17 -0500
  6405. Posted-Date: 3 Feb 91 12:54:51 GMT
  6406. Received: by cs.utexas.edu (5.64/1.93) 
  6407. From: mohta@necom830.cc.titech.ac.jp (Masataka Ohta)
  6408. Newsgroups: comp.std.unix
  6409. Subject: Re: qfork()
  6410. Message-Id: <17599@cs.utexas.edu>
  6411. References: <16213@cs.utexas.edu> <16483@cs.utexas.edu> <16522@cs.utexas.edu> <16873@cs.utexas.edu> <16895@cs.utexas.edu> <16994@cs.utexas.edu>
  6412. Sender: jsq@cs.utexas.edu
  6413. Organization: Tokyo Institute of Technology
  6414. X-Submissions: std-unix@uunet.uu.net
  6415. Date: 3 Feb 91 12:54:51 GMT
  6416. Reply-To: std-unix@uunet.UU.NET
  6417. To: std-unix@uunet.UU.NET
  6418.  
  6419. Submitted-by: mohta@necom830.cc.titech.ac.jp (Masataka Ohta)
  6420.  
  6421. In article <16994@cs.utexas.edu>
  6422.     richard@aiai.ed.ac.uk (Richard Tobin) writes:
  6423.  
  6424. >Of course, these programs don't usually change many variables, so a
  6425. >copy-on-write fork() won't need many pages in this case.  A c-o-w    
  6426. >fork() with late allocation of pages could could be as robust as
  6427. >vfork() almost always by pre-allocating a few pages.
  6428.  
  6429. That is the case where COW fork() with late allocation of pages or
  6430. vfork() must be used.
  6431.  
  6432. >Surely the problem is when it's being used as a *real* fork(), and the
  6433. >program fails much later when it modifies one variable too many.
  6434.  
  6435. If fork() is used as a real fork(), it is very probable that it modifies
  6436. its data space many times.
  6437.  
  6438. The severe problem is that the program can not control the failure.
  6439. It immediately dies.
  6440.  
  6441. With non-COW fork() or COW fork() with immediate allocation of pages,
  6442. such a failure can be detected as error return value of fork()
  6443. and may be processed in a controlled fashion.
  6444.  
  6445.                     Masataka Ohta
  6446.  
  6447. Volume-Number: Volume 22, Number 101
  6448.  
  6449. From jsq@cs.utexas.edu  Mon Feb  4 18:57:42 1991
  6450. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6451.     id AA06085; Mon, 4 Feb 91 18:57:42 -0500
  6452. Posted-Date: 4 Feb 91 14:50:55 GMT
  6453. Received: by cs.utexas.edu (5.64/1.93) 
  6454. From: domo@tsa.co.uk (Dominic Dunlop)
  6455. Newsgroups: comp.std.unix
  6456. Subject: Re: IEEE TCOS, New Orleans, January 1991: EurOpen IR's report
  6457. Message-Id: <17630@cs.utexas.edu>
  6458. References: <17526@cs.utexas.edu>
  6459. Sender: jsq@cs.utexas.edu
  6460. X-Submissions: std-unix@uunet.uu.net
  6461. Date: 4 Feb 91 14:50:55 GMT
  6462. Reply-To: std-unix@uunet.uu.net
  6463. To: std-unix@uunet.uu.net
  6464.  
  6465. Submitted-by: domo@tsa.co.uk (Dominic Dunlop)
  6466.  
  6467. Hal Jespersen adds the following to my report (Volume 22, Number 92):
  6468. >  4. The requirement for IEEE membership appears recently to
  6469. >     have been dropped, although the rule book has yet to be
  6470. >     amended.
  6471. This was an incorrect annoucement at the IEEE COmputer Society
  6472. Standards Coordinating Committee (SCC) meeting.  The Stds Board
  6473. disapproved this idea.
  6474. >    - Once a balloting group has been formed, it persists
  6475. >      indefinitely with a static membership.  Only if there
  6476. >      are problems in getting the required 75% response to
  6477. >      ballots is the membership of a group reviewed.
  6478. The 75% response rule is only for the first ballot.  During recirculations,
  6479. considerably less paper can flow.  And does.
  6480.  
  6481. (Recirculation ballots occur to check the acceptability of the amendments 
  6482. which have been made to a draft standard as a result of the the
  6483. objections and comments received in a previous round of balloting.
  6484. While these amendments are generally intended to change negative votes
  6485. into positive, it is possible that they may have the reverse effect if
  6486. it turns out that balloters object strongly to some of the changes.
  6487. Recirculation ballots check that more, rather than less, consensus is
  6488. being achieved.)
  6489.  
  6490. -- 
  6491. Dominic Dunlop
  6492.  
  6493. Volume-Number: Volume 22, Number 102
  6494.  
  6495. From jsq@cs.utexas.edu  Mon Feb  4 19:04:19 1991
  6496. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6497.     id AA07871; Mon, 4 Feb 91 19:04:19 -0500
  6498. Posted-Date: 4 Feb 91 16:32:06 GMT
  6499. Received: by cs.utexas.edu (5.64/1.93) 
  6500. From: sp@gregoire.osf.fr (Simon Patience)
  6501. Newsgroups: comp.std.unix
  6502. Subject: Re: recent history of Unix evolution
  6503. Message-Id: <17631@cs.utexas.edu>
  6504. References: <17405@cs.utexas.edu> <17405@cs.utexas.edu>
  6505. Sender: jsq@cs.utexas.edu
  6506. Reply-To: sp@gregoire.osf.fr (Simon Patience)
  6507. Organization: OSF Research Institute
  6508. X-Submissions: std-unix@uunet.uu.net
  6509. Date: 4 Feb 91 16:32:06 GMT
  6510. To: std-unix@uunet.uu.net
  6511.  
  6512. Submitted-by: sp@gregoire.osf.fr (Simon Patience)
  6513.  
  6514. In article <17405@cs.utexas.edu>, Kevin.N.Broekhoven@QueensU.CA writes:
  6515. > 2.Similarly, OSF/1 is "currently under development" but is having some
  6516. problems
  6517. >     getting off the ground.  I believe IBM has pulled out of the effort to
  6518. >     develop the operating system, in favour of AIX which works.  What are the
  6519. >     dates of:    1.the formation of OSF
  6520. >                  2.the development phase of the OSF/1 operating system
  6521. >                    (is it still under development, or  has it been abandoned
  6522. >                      completely after the pull out by Big Blue?)
  6523. >     What are the Unix roots of the OSF/1 operating system?  i.e. was it
  6524. >     developed from System V.2, or Mach from Carnegie Mellon U?
  6525.  
  6526. OSF/1 1.0 was released for general distribution on December 7 1990.
  6527. There are no problems that I know of that has prevented it getting off
  6528. the ground and I was one of the development team. In fact the project
  6529. slipped only 2 or 3 weeks from its original ship date which is pretty
  6530. impressive for a project of that magnitude I think.
  6531.  
  6532. At the general release announcement the sponsors endorsed OSF/1 and many
  6533. (including IBM) announced that they would be using OSF/1 as part of
  6534. their operating system technology. The final IBM product could well be
  6535. called AIX but that is their perogative and a marketing decision I would think.
  6536.  
  6537. To question 1, OSF, the company, was formed in May 1988. As I said,
  6538. OSF/1 has already shipped and your information about IBM is incorrect.
  6539.  
  6540. OSF/1, simplistically, is the integration of Mach 2.5 microkernel and
  6541. BSD 4.4 but there has been a significant contribution of technology from
  6542. various sources, IBM, Mentat, Secureware, Encore, to name a few (I
  6543. apologise to those I have ommited), and of course OSFs own development
  6544. group. There is a small amount of AT&T System V.2 code in the kernel but
  6545. not much and it is well isolated.
  6546.  
  6547. > 4.Is there a competition between System V.4 and OSF/1, in the sense that one
  6548. >     will be chosen as the ANSI standard Unix, or are they both sufficiently
  6549. >     conformant to current ANSI/POSIX standards, that this is not an issue:
  6550. >     that the competition is strictly in the marketplace?
  6551.  
  6552. As far as I am concerned there is no competition. Both systems support
  6553. the standard interfaces (POSIX, FIPS, XPG3, ANSI-C, etc) so with respect
  6554. to strictly conforming application portability the two systems should be
  6555. identical. Obviously there are other differences, for example in the
  6556. area of multiprocessor support, threads, dynamic configuration, etc but
  6557. I will stick my neck out and guess that neither system will be "chosen"
  6558. by any standards body as the one and only true system.
  6559.  
  6560. The current status is that OSF/1 1.1 is already under development and
  6561. likely to be available sometime in the next 12 months or so, I don't
  6562. know the exact ship date. The system today has already been ported to
  6563. more that 8 different architectures, including a MIPS R2000, National
  6564. Semi 32532, Motorola 68030, Intel 80386 and I860, Fairchild clipper and
  6565. more, I forget them all. 
  6566.  
  6567. DISCLAIMER: This is not an official statement from OSF.
  6568.  
  6569.   Simon Patience
  6570.   Open Software Foundation            Phone: +33-76-63-48-72
  6571.   Research Institute                FAX:   +33-76-51-05-32
  6572.   2 Avenue De Vignate                Email: sp@gr.osf.org
  6573.   38610 Gieres, France                       uunet!gr.osf.org!sp
  6574.  
  6575. Volume-Number: Volume 22, Number 103
  6576.  
  6577. From jsq@cs.utexas.edu  Mon Feb  4 19:10:35 1991
  6578. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6579.     id AA09252; Mon, 4 Feb 91 19:10:35 -0500
  6580. Posted-Date: 4 Feb 91 16:01:20 GMT
  6581. Received: by cs.utexas.edu (5.64/1.93) 
  6582. From: peter@world.std.com (Peter Salus)
  6583. Newsgroups: comp.std.unix
  6584. Subject: Re: call for volunteer moderator
  6585. Message-Id: <17632@cs.utexas.edu>
  6586. References: <17525@cs.utexas.edu>
  6587. Sender: jsq@cs.utexas.edu
  6588. Organization: The World @ Software Tool & Die
  6589. X-Submissions: std-unix@uunet.uu.net
  6590. Date: 4 Feb 91 16:01:20 GMT
  6591. Reply-To: std-unix@uunet.uu.net
  6592. To: std-unix@uunet.uu.net
  6593.  
  6594. Submitted-by: peter@world.std.com (Peter Salus)
  6595.  
  6596. In article <17525@cs.utexas.edu> std-unix-request@uunet.uu.net writes:
  6597. >Submitted-by: std-unix-request@uunet.uu.net (John S. Quarterman)
  6598. >
  6599. >Since the end of October 1990, there has been no funding for moderation
  6600. >of the newsgroup comp.std.unix and its associated mailing list
  6601. >std-unix@uunet.uu.net.  Since that time, I have sought such funding
  6602. >from several user groups, the IEEE Computer Society (IEEE/CS), the
  6603. >IEEE/CS Technical Committee on Operating Systems Standards Subcommittee
  6604. >(TCOS-SS), and various private companies.  No funding is forthcoming.
  6605. >As I remarked three months ago, I cannot afford to moderate the newsgroup
  6606. >as a volunteer.  I have solicited volunteers, but no one has thus far
  6607. >come forward.
  6608. >
  6609. >So, this is a final call for a volunteer moderator, responses to be
  6610. >received at std-unix-request@uunet.uu.net by 15 February 1991.
  6611. >
  6612.  
  6613. As .stc.c and .std.internat are unmoderated and have not 
  6614. gone berzerk, could someone (perhaps jsq) explain why .std.unix
  6615. needs to be moderated?
  6616.  
  6617. Peter
  6618.  
  6619. -- 
  6620. The difference between practice and theory in practice is always
  6621. greater than the difference between practice and theory in theory. 
  6622.  
  6623. Volume-Number: Volume 22, Number 104
  6624.  
  6625. From jsq@cs.utexas.edu  Mon Feb  4 19:19:00 1991
  6626. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6627.     id AA11068; Mon, 4 Feb 91 19:19:00 -0500
  6628. Posted-Date: 4 Feb 91 19:39:21 GMT
  6629. Received: by cs.utexas.edu (5.64/1.93) 
  6630. From: henry@zoo.toronto.edu (Henry Spencer)
  6631. Newsgroups: comp.std.unix
  6632. Subject: Re: Is there a standard prototype for `execvp'?
  6633. Message-Id: <17634@cs.utexas.edu>
  6634. References: <17528@cs.utexas.edu> <17573@cs.utexas.edu> <17574@cs.utexas.edu>
  6635. Sender: jsq@cs.utexas.edu
  6636. Organization: U of Toronto Zoology
  6637. X-Submissions: std-unix@uunet.uu.net
  6638. Date: 4 Feb 91 19:39:21 GMT
  6639. Reply-To: std-unix@uunet.uu.net
  6640. To: std-unix@uunet.uu.net
  6641.  
  6642. Submitted-by: henry@zoo.toronto.edu (Henry Spencer)
  6643.  
  6644. In article <17574@cs.utexas.edu> donn@hpfcrn.fc.hp.com (Donn Terry) writes:
  6645. >    int execvp (const char *file, char *const argv[]);
  6646. >
  6647. >It was generally agreed during balloting that what really was wanted
  6648. >was "const char * const argv[]".  However, ANSI C disagrees: that's
  6649. >a syntax error!
  6650.  
  6651. This puzzled me a bit, since that is *not* a syntax error, but a bit of
  6652. private correspondence with Donn cleared it up.  The problem is not that
  6653. the declaration is illegal, but that `char *[]' and `const char *const []'
  6654. are not assignment-compatible -- the "inner" const does not magically get
  6655. ignored like the "outer" one -- so this would break backward compatibility.
  6656. -- 
  6657. "Maybe we should tell the truth?"      | Henry Spencer at U of Toronto Zoology
  6658. "Surely we aren't that desperate yet." |  henry@zoo.toronto.edu   utzoo!henry
  6659.  
  6660. Volume-Number: Volume 22, Number 106
  6661.  
  6662. From jsq@cs.utexas.edu  Mon Feb  4 19:23:19 1991
  6663. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6664.     id AA12151; Mon, 4 Feb 91 19:23:19 -0500
  6665. Posted-Date: 4 Feb 91 16:45:17 GMT
  6666. Received: by cs.utexas.edu (5.64/1.93) 
  6667. From: peter@ficc.ferranti.com (Peter da Silva)
  6668. Newsgroups: comp.std.unix
  6669. Subject: spawn() wars... please... not again...
  6670. Message-Id: <17633@cs.utexas.edu>
  6671. Sender: jsq@cs.utexas.edu
  6672. X-Submissions: std-unix@uunet.uu.net
  6673. Date: 4 Feb 91 16:45:17 GMT
  6674. Reply-To: std-unix@uunet.uu.net
  6675. To: std-unix@uunet.uu.net
  6676.  
  6677. Submitted-by: peter@ficc.ferranti.com (Peter da Silva)
  6678.  
  6679. Look, I know you don't like spawn(). But in a lot of environments... INCLUDING
  6680. ONES THAT ARE OTHERWISE QUITE CAPABLE OF SUPPORTING A POSIX ABI... it is *not*
  6681. possible to do a safe and efficient implementation of fork(). Leave in the
  6682. fork() call, but allow a more efficient (and, let's face it, easier to
  6683. understand) alternative: spawn().
  6684.  
  6685. In article <17598@cs.utexas.edu> mohta@necom830.cc.titech.ac.jp (Masataka Ohta) writes:
  6686. > First, list every operations which is safe between fork() and exec()
  6687. > *and* between BSD vfork() and exec().
  6688.  
  6689. > Then, those are the safe operations of POSIX vfork() on *all* architectures.
  6690.  
  6691. No. Those are the safe operations between fork() and exec() on UNIX.
  6692.  
  6693. POSIX looks like it's going to comprise far more than UNIX.
  6694.  
  6695. Let's say you define vfork() as "set a flag that all posix calls that deal
  6696. with uid, signals, files, etc... look at, so they just write a "script" of
  6697. actions to take on behalf of the new process".
  6698.  
  6699. Then, you define "exec" as "look at the script, if there, and cons up an
  6700. efficient system call on the underlying O/S (VMS, for example) to satisfy
  6701. it".
  6702.  
  6703. > Most (perhaps, more than 90%) of cases where fork/exec is necessary
  6704. > is covered by system(). spawn() is not necessary.
  6705.  
  6706.     No, system() and popen() can not, ever, let you pass a set of
  6707.     arguments to a program without diddling by the shell. When you
  6708.     have no way of knowing whether that shell will be sh, csh, ksh,
  6709.     or even rc what can you do to protect yourself?
  6710.  
  6711.     Who knows, I can easily imagine DEC setting things up so a user
  6712.     could set his shell to DCL and hose *everything* up.
  6713.  
  6714.     Using system() in programs like (for example) uucp, mail handlers,
  6715.     and so on is a security hole you can drive a truck through. There
  6716.     are lots of systems where you can use this to get pretty much *any*
  6717.     file on a neighbor's machine.
  6718. -- 
  6719. Peter da Silva.  `-_-'  peter@ferranti.com
  6720. +1 713 274 5180.  'U`  "Have you hugged your wolf today?"
  6721.  
  6722. Volume-Number: Volume 22, Number 105
  6723.  
  6724. From jsq@cs.utexas.edu  Tue Feb  5 15:14:55 1991
  6725. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6726.     id AA25369; Tue, 5 Feb 91 15:14:55 -0500
  6727. Posted-Date: 4 Feb 91 11:50:07 GMT
  6728. Received: by cs.utexas.edu (5.64/1.93) 
  6729. From: Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips)
  6730. Newsgroups: comp.std.unix
  6731. Subject: "#!" magic number  (was: Shell standardization)
  6732. Message-Id: <17650@cs.utexas.edu>
  6733. References: <17011@cs.utexas.edu> <17065@cs.utexas.edu> <17155@cs.utexas.edu>
  6734. Sender: jsq@cs.utexas.edu
  6735. Organization: NCR Microelectronics, Ft. Collins, CO
  6736. X-Submissions: std-unix@uunet.uu.net
  6737. Date: 4 Feb 91 11:50:07 GMT
  6738. Reply-To: std-unix@uunet.uu.net
  6739. To: std-unix@uunet.uu.net
  6740.  
  6741. Submitted-by: Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips)
  6742.  
  6743. >>>>> On 22 Jan 91 21:28:49 GMT, guy@auspex.uucp (Guy Harris) said:
  6744.  
  6745. Guy> I don't strongly care where it's done (although I *do* prefer having
  6746. Guy> "execl()" AND "execv()" capable of running scripts, even if it's done by
  6747. Guy> having them be wrappers around kernel traps with the wrappers checking
  6748. Guy> for the "#!" line if they get ENOEXEC), but it *would* be nice if the
  6749. Guy> system didn't inappropriately try to run files that happened to have
  6750. Guy> execute permissions as scripts if, in fact, they aren't scripts. 
  6751.  
  6752. Essentially, "#!" becomes a magic number.  I would also prefer this be in
  6753. the kernal.
  6754.  
  6755. Invitation for discussion: If the path after the "#!" doesn't begin with
  6756. "/", "./" or "../", should PATH be searched for the execuatble?  If so, how
  6757. best could this be implemented?
  6758.  
  6759. The reason I bring this up is in SVr4 (OSF/1?), there have been changes in
  6760. the directory hierarchy and commands are not necessarily where they've
  6761. historically been.  Of course, all scripts that are part of the OS can (and
  6762. should!) contain absolute path names.  It would be nice for application
  6763. developers to be able to write hierarchy independent scripts.  Even nicer
  6764. would be for applications developers to be able to write their own
  6765. interpreters without caring where the user installs the interpreter (as
  6766. long as the interpreter's directory is in PATH).
  6767. --
  6768. Chuck Phillips  MS440
  6769. NCR Microelectronics             chuck.phillips%ftcollins.ncr.com
  6770. 2001 Danfield Ct.
  6771. Ft. Collins, CO.  80525           ...uunet!ncrlnk!ncr-mpd!bach!chuckp
  6772.  
  6773. Volume-Number: Volume 22, Number 107
  6774.  
  6775. From jsq@cs.utexas.edu  Tue Feb  5 15:30:53 1991
  6776. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6777.     id AA00016; Tue, 5 Feb 91 15:30:53 -0500
  6778. Posted-Date: 5 Feb 91 19:31:34 GMT
  6779. Received: by cs.utexas.edu (5.64/1.93) 
  6780. From: rcd@ico.isc.com (Dick Dunn)
  6781. Newsgroups: comp.std.unix
  6782. Subject: Re: recent history of Unix evolution
  6783. Message-Id: <17653@cs.utexas.edu>
  6784. References: <17405@cs.utexas.edu> <17631@cs.utexas.edu>
  6785. Sender: jsq@cs.utexas.edu
  6786. Organization: Interactive Systems Corporation, Boulder, CO
  6787. X-Submissions: std-unix@uunet.uu.net
  6788. Date: 5 Feb 91 19:31:34 GMT
  6789. Reply-To: std-unix@uunet.uu.net
  6790. To: std-unix@uunet.uu.net
  6791.  
  6792. Submitted-by: rcd@ico.isc.com (Dick Dunn)
  6793.  
  6794. sp@gregoire.osf.fr (Simon Patience) writes, among explanations of OSF
  6795. history and status, that:
  6796.  
  6797. > OSF/1, simplistically, is the integration of Mach 2.5 microkernel and
  6798. > BSD 4.4...
  6799.  
  6800. This is incorrect on two counts.  First, Mach 2.5 is not a "microkernel"
  6801. implementation--it still contains conventional kernel functions.  The
  6802. "microkernel" version of Mach is 3.0.  (However, it *is* correct that OSF/1
  6803. is based on the non-"micro"kernel 2.5.)  Second, OSF/1 could not have
  6804. integrated BSD 4.4, because BSD 4.4 is not done yet--at least not accor-
  6805. ding to the folks at Berkeley!  Probably what is meant here is that OSF/1
  6806. has incorporated some of the Berkeley "Reno" code, Reno being the name
  6807. attached to a pre-4.4 release of code intended for developers who want to
  6808. try it out and shake out the bugs.
  6809. -- 
  6810. Dick Dunn     rcd@ico.isc.com -or- ico!rcd       Boulder, CO   (303)449-2870
  6811.    ...Don't lend your hand to raise no flag atop no ship of fools.
  6812.  
  6813.  
  6814.  
  6815. Volume-Number: Volume 22, Number 108
  6816.  
  6817. From jsq@cs.utexas.edu  Tue Feb  5 15:53:11 1991
  6818. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  6819.     id AA06891; Tue, 5 Feb 91 15:53:11 -0500
  6820. Posted-Date: 5 Feb 91 20:51:33 GMT
  6821. Received: by cs.utexas.edu (5.64/1.93) 
  6822. From: std-unix-request@uunet.uu.net (John S. Quarterman)
  6823. Newsgroups: comp.std.unix
  6824. Subject: Re: call for volunteer moderator
  6825. Message-Id: <17656@cs.utexas.edu>
  6826. References: <17525@cs.utexas.edu>
  6827. Sender: jsq@cs.utexas.edu
  6828. X-Submissions: std-unix@uunet.uu.net
  6829. Date: 5 Feb 91 20:51:33 GMT
  6830. Reply-To: std-unix@uunet.uu.net
  6831. To: std-unix@uunet.uu.net
  6832.  
  6833. Submitted-by: std-unix-request@uunet.uu.net (John S. Quarterman)
  6834.  
  6835. The most numerous kind of response so far to my call for a volunteer
  6836. moderator has been from people saying they might volunteer if they
  6837. knew more.  Sorry, that's not what I asked for.  I asked for volunteers,
  6838. not potential volunteers.  I did not say I would train a new moderator.
  6839. Nor did I offer to explain how USENET works.  Nonetheless, the last one
  6840. to volunteer by the deadline gets to handle voting according to USENET
  6841. rules as to who (if anyone) becomes the moderator.  If you don't know
  6842. what the rules are, it would be good to find out before volunteering
  6843. (I don't know the details myself, so it won't do any good to ask me.)
  6844.  
  6845. To do a reasonable job of moderation for this newsgroup has taken me a
  6846. measured average of about 10 hours a month.  It might take you more or
  6847. less hours.
  6848.  
  6849. I have appended below a copy of the editorial policy statement that
  6850. appeared at the beginning of the current volume of comp.std.unix.
  6851. However, I can make no recommendations as to what the editorial policies
  6852. of any new moderator should be.
  6853.  
  6854. Once again, volunteers should send a message to std-unix-request@uunet.uu.net
  6855. by 15 February 1991.  The order such messages are *received* at that address
  6856. determines who (the last one to volunteer) gets to run the vote if there is
  6857. more than one volunteer.  Only messages that say that the sender definitely
  6858. volunteers to be moderator count for this ordering.
  6859.  
  6860.  
  6861. From: jsq@usenix.org (John S. Quarterman)
  6862. Newsgroups: comp.std.unix
  6863. Subject: comp.std.unix Policy
  6864. Reply-To: std-unix@uunet.uu.net
  6865.  
  6866. This is a policy statement for comp.std.unix.
  6867.  
  6868. This is Volume 22 of comp.std.unix.
  6869. These volumes are purely for administrative convenience.
  6870. Feel free to continue any previous discussion or to start new ones.
  6871.  
  6872. Topic.
  6873.  
  6874. The USENET newsgroup comp.std.unix, also known as the mailing list
  6875. std-unix@uunet.uu.net, is for discussions of standards related to
  6876. the UNIX operating system, particularly of IEEE P1003, or POSIX,
  6877. including IEEE 1003.1, 1003.2, etc.
  6878.  
  6879. Other related standards bodies and subjects include but are not limited to
  6880.     IEEE 1201 and IEEE 1238,
  6881.     ISO/IEC JTC1 SC22 WG15 (the ISO and IEC version of POSIX),
  6882.     the U.S. and other Technical Advisory Groups (TAGs) to WG15,
  6883.     the X3.159 Programming Language C Standard by the ANSI X3J11 committee,
  6884.     ISO/IEC JTC1 SC22 WG14 (the ISO and IEC version of X3.159),
  6885.     ANSI X3J16 on the C++ programming language,
  6886.     ANSI X3B11.1 on WORM File Systems,
  6887.     the National Institute of Standards and Technology (NIST),
  6888.     and their Federal Information Processing Standards (FIPS),
  6889.     X/Open and their X/Open Portability Guide (XPG),
  6890.     the Open Software Foundation (OSF),
  6891.     UNIX International (UI),
  6892.     the UniForum Technical Committee,
  6893.     the AFUU Working Groups,
  6894.     PortSoft,
  6895.     AT&T System V Interface Definition (SVID),
  6896.     System V Release 3, System V Release 4,
  6897.     4.2BSD, 4.3BSD, 4.4BSD,
  6898.     Tenth Edition UNIX, Plan 9 from Bell Labs,
  6899.     Mach, Chorus, Amoeba,
  6900.     and the USENIX Standards Watchdog Committee.
  6901.  
  6902. Moderator.
  6903.  
  6904. The newsgroup comp.std.unix and the mailing list std-unix@uunet.uu.net
  6905. is moderated.  The moderator is John S. Quarterman.
  6906.  
  6907. Disclaimer.
  6908.  
  6909. Postings by any committee member (especially including me) in this
  6910. newsgroup do not represent any position (including any draft, proposed
  6911. or actual, of a standard) of the committee as a whole or of any
  6912. subcommittee unless explicitly stated otherwise in such remarks.
  6913.  
  6914. * UNIX is a Registered Trademark of AT&T.
  6915. ** IEEE is a Trademark of the Institute for Electrical and Electronics
  6916.     Engineers, Inc.
  6917. *** POSIX is not a trademark.
  6918. Various other names mentioned above may be trademarks.
  6919. I hope their owners will not object if I do not list them all here.
  6920.  
  6921.  
  6922. Postings.
  6923.  
  6924. Submissions for posting to the newsgroup and comments about the newsgroup
  6925. (including requests to subscribe or unsubscribe to the mailing list)
  6926. should go to two different addresses:
  6927.  
  6928.         DNS address            UUCP source route
  6929. Submissions    std-unix@uunet.uu.net        uunet!std-unix
  6930. Comments    std-unix-request@uunet.uu.net    uunet!std-unix-request
  6931.  
  6932. The hostname cs.utexas.edu may be used in place of uunet.uu.net or uunet.
  6933. Permission to post to the newsgroup is assumed for mail to std-unix.
  6934. Permission to post is not assumed for mail to std-unix-request,
  6935. unless explicitly granted in the mail.  Mail to my personal addresses
  6936. will be treated like mail to std-unix-request if it obviously refers
  6937. to the newsgroup.
  6938.  
  6939. The mailing list is distributed on the Internet, UUCP, and elsewhere.
  6940. There is a redistribution list on BITNET for BITNET, EARN, and NetNorth.
  6941. Please send submissions from those networks to std-unix@uunet.uu.net
  6942. nonetheless, because messages sent to the BITNET LISTSERV will not reach
  6943. the whole list.
  6944.  
  6945. If you have access to USENET, it is better (more efficient, cheaper,
  6946. less effort for me to manage) to subscribe to the newsgroup comp.std.unix
  6947. than to the mailing list.  Submissions should still go to the above
  6948. addresses, although many (perhaps most) USENET hosts will forward
  6949. attempts to post directly to the newsgroup to the moderator.
  6950.  
  6951. Posted articles may originate from uunet.uu.net, longway.tic.com, tic.com,
  6952. cs.utexas.edu, or usenix.org.  There are also occasional guest moderators,
  6953. who may post from still other machines.  Guest moderators are announced
  6954. in advance by the regular moderator.
  6955.  
  6956. Archives.
  6957.  
  6958. Archives for comp.std.unix or std-unix@uunet.uu.net may be found on UUNET.
  6959. Most of them are compressed, so if you don't have compress, get it first
  6960. (it's in the comp.sources.unix archives).
  6961.  
  6962. The comp.std.unix archives may be retrieved by anonymous FTP over the Internet.
  6963. Connect to uunet.uu.net with FTP and log in as user anonymous with password
  6964. guest.
  6965.  
  6966. The current volume is in the file
  6967.         ~ftp/comp.std.unix/archive
  6968. or
  6969.         ~ftp/comp.std.unix/volume.22
  6970. The previous volume may be retrieved as 
  6971.         ~ftp/comp.std.unix/volume.21.Z
  6972. and so forth for more ancient volumes.
  6973.  
  6974. For hosts with direct UUCP connections to UUNET, UUCP transfer from
  6975. host uunet should work with, for example,
  6976.         uucp uunet!'~ftp/comp.std.unix/archive' archive
  6977. You will have to put a backslash before the ! (i.e., \!)
  6978. if you're using the C shell.
  6979.  
  6980. The output of "cd ~ftp/comp.std.unix; ls -l" is in
  6981.         ~ftp/comp.std.unix/list
  6982. and the output of "cd ~ftp/comp.std.unix; ls -l *" is in
  6983.         ~ftp/comp.std.unix/longlist
  6984.  
  6985. For further details, retrieve the file
  6986.         ~ftp/comp.std.unix/README
  6987.  
  6988.  
  6989. General submission acceptance policy.
  6990.  
  6991. Submissions are never ignored (although they might be overlooked).
  6992. If you don't see your article posted and you don't get a mailed
  6993. response from the moderator, your submission probably didn't arrive.
  6994. However, travel schedules and other business sometimes intervene
  6995. (and for that matter it can take many hours for a submission to
  6996. get to the moderator and the posted message to get back to the poster),
  6997. so you may sometimes not see anything for a few days.  If you wait
  6998. and still don't see anything, try sending again.
  6999.  
  7000. I usually post about 90% of all submissions.  However, as moderator,
  7001. I retain the right to reject submissions.  If a submission does not
  7002. appear relevant to comp.std.unix, it is sent back to the submittor with
  7003. a note saying why it is not appropriate.  Usually this is because it
  7004. just doesn't fit the topic of the newsgroup, in which case I suggest
  7005. another newsgroup.  Sometimes it is because someone else has already
  7006. given the same answer to a question, in which case I ask if the
  7007. submittor really wants it posted.  Occasionally I suggest editing that
  7008. would make an article more appropriate to the newsgroup.
  7009.  
  7010. Very occasionally I reject an article outright:  this is almost always
  7011. because it contains ad hominem attacks, which are never permitted
  7012. in this technical newsgroup.  There are many other potential reasons
  7013. for rejection, however, such as inclusion of copyrighted material.
  7014. Fortunately, most such problems have not come up.
  7015.  
  7016. Note that while technical postings on technical subjects are encouraged,
  7017. postings about the politics of standardization are also appropriate,
  7018. since it is impossible to separate politics from standards.
  7019.  
  7020. Crosspostings are discouraged.  Submissions such as ``how do I find
  7021. xyz piece of software'' or ``is the x implementation better than the
  7022. y implementation'' that come in for multiple newsgroups usually get
  7023. sent back to the submittor with a suggestion to resubmit without
  7024. comp.std.unix in the Newsgroups: line.  Sometimes I'll crosspost if
  7025. there's clear relevance to comp.std.unix, but I always add a
  7026. Followup-To: line in an attempt to direct further discussion to a
  7027. single newsgroup, usually comp.std.unix.  This policy is useful because
  7028. crossposting often produces verbose traffic of little relevance to
  7029. comp.std.unix.
  7030.  
  7031.  
  7032.  
  7033. Editorial policy.
  7034.  
  7035. When posting a submission, I sometimes make changes to it.  These
  7036. are of three types:  headers and trailers; comments; and typographical.
  7037.  
  7038. Headers and trailers
  7039.  
  7040. Header changes include:
  7041. + Cleaning up typos, particularly in Subject: lines.
  7042. + Rationalizing From: lines to contain only one address syntax,
  7043.     either hosta!hostb!host!user or, preferably, user@domain.
  7044. + Adding a Reply-To: line.  This usually points to the newsgroup
  7045.     submission address in the mailing list, but to the submitter
  7046.     in the newsgroup, for reasons too messy to detail here.
  7047. + Adding the Approved: line.
  7048. + Deleting any Distribution: line, as detailed in the next paragraph.
  7049.  
  7050. The only distribution used in comp.std.unix is no distribution, i.e.,
  7051. worldwide.  If it's not of worldwide interest, it doesn't belong in
  7052. comp.std.unix.  Anything pertaining to the IEEE/CS TCOS standards
  7053. or committees (e.g., IEEE 1003, IEEE 1201), the ANSI X3.159 Programming
  7054. Language C Standard (X3J11), or the ISO 9945 POSIX work (ISO/IEC JTC1
  7055. SC22 WG15) is of worldwide interest.  If a submission arrives with a
  7056. Distribution:  line, such as na or us, I delete that line.
  7057.  
  7058. Every article has a trailing line of the form
  7059. >    Volume-Number: Volume 22, Number 42
  7060. This allows the reader to notice articles lost in transmission and
  7061. permits the moderator to more easily catalog articles in the archives.
  7062. Volumes usually change after about 100 articles, but are purely for
  7063. administrative convenience; discussions begun in one volume should
  7064. be continued into the next volume.
  7065.  
  7066. Also, signatures that are excessively long may be truncated.
  7067.  
  7068.  
  7069.  
  7070. Comments
  7071.  
  7072. Comments by the moderator are sometimes added to clarify obscure
  7073. issues.  These are always enclosed in square brackets with the
  7074. closing mark ``-mod,'' [ like this -mod ].  Sometimes entire articles
  7075. appear that are written by the moderator:  these always end with
  7076. a signature that includes the words ``moderator, comp.std.unix.''
  7077.  
  7078. Comments by the editor of the USENIX Standards Watchdog Reports
  7079. sometimes appear in those reports.  Such comments are always
  7080. enclosed in square brackets and begin with the word ``Editor:''
  7081. [ Editor: like this ].
  7082.  
  7083. Comments by the publisher of the USENIX Standards Watchdog Reports
  7084. sometimes appear in those reports.  Such comments are always
  7085. enclosed in square brackets and end with the mark ``-pub,''
  7086. [ like this -pub ].
  7087.  
  7088. Entire articles may appear by the editor or publisher of the
  7089. Watchdog Reports, and those are always identified by the signature.
  7090.  
  7091. Typographical
  7092.  
  7093. People submitting articles sometimes enclose parenthetical comments
  7094. in brackets [] instead of parentheses ().  I usually change these
  7095. to parentheses to avoid confusion with the above conventions for
  7096. comments by the moderator, editor, or publisher.
  7097.  
  7098. Obvious misspellings, such as ``it's'' for the possesive or
  7099. ``its'' as a contraction of ``it is'' are corrected.
  7100.  
  7101. Excess white space is deleted.
  7102.  
  7103. Lines longer than 80 characters are reformatted.
  7104.  
  7105. Redundant quoted headers are often omitted.
  7106.  
  7107. Very long quotations of previous articles are sometimes shortened.
  7108.  
  7109.  
  7110.  
  7111. Common kinds of postings.
  7112.  
  7113. There are several sets of postings that reoccur in comp.std.unix
  7114. at more or less regular intervals.  Here are three of the most common.
  7115.  
  7116. Calendar of UNIX-Related Events
  7117.  
  7118. Susanne W. Smith <sws@calvin.wa.com> of Windsound Consulting of Edmonds,
  7119. Washington and John S. Quarterman <jsq@tic.com> of Texas Internet Consulting
  7120. (TIC) of Austin, Texas publish a combined calendar of planned conferences,
  7121. workshops, or standards meetings related to the UNIX operating system.
  7122. These appear about every other month in four articles with these titles:
  7123.     Calendar of UNIX-related Events
  7124.     Access to UNIX User Groups
  7125.     Access to UNIX-Related Publications
  7126.     Access to UNIX-Related Standards
  7127. The first three are posted to
  7128.     comp.std.unix,comp.unix.questions,comp.org.usenix
  7129. The one about standards is posted only to comp.std.unix.
  7130.  
  7131. These calendar postings are a private project of Windsound and TIC,
  7132. although they are coordinated with various groups such as USENIX, EUUG,
  7133. AUUG, JUS, UniForum, and IEEE TCOS.  Smith and Quarterman encourage
  7134. others to reuse this information, but ask for proper acknowledgment.
  7135.  
  7136. USENIX Standards Watchdog Reports
  7137.  
  7138. The USENIX Association sponsors a set of reports after each quarterly
  7139. meeting of the IEEE 1003 and IEEE 1201 standards committees.  These
  7140. reports are written by volunteers who are already attending committee
  7141. meetings and are edited by the Watchdog Report Editor, who is Jeffrey
  7142. S. Haemer <jsh@usenix.org>.  Reports on other committees, such as X3J11,
  7143. are also included when available.  These reports are published in
  7144. comp.std.unix/std-unix@uunet.uu.net and ;login:  The Newsletter of the
  7145. USENIX Association.  They are also available for publication elsewhere.
  7146.  
  7147. EUUG/USENIX ISO Monitor Project
  7148.  
  7149. The European UNIX systems Users Group (EUUG) and the USENIX Association
  7150. jointly sponsor an observer to the ISO/IEC JTC1 SC22 WG15 (ISO POSIX)
  7151. standards committee.  This observer, Dominic Dunlop <domo@tsa.co.uk>,
  7152. writes a report after each WG15 meeting, of which there are usually
  7153. two a year.  These reports are published in the EUUG Newsletter
  7154. (EUUGN), :login;, and comp.std.unix.  They are also available for
  7155. publication elsewhere.
  7156.  
  7157. Archives of the EUUG/USENIX ISO Monitor Reports, the USENIX Standards
  7158. Watchdog Reports, and the Windsound/TIC Calendar of UNIX-Related Events
  7159. may be found on uunet.uu.net.  Retrieve ~ftp/comp.std.unix/README for
  7160. details.
  7161.  
  7162. John S. Quarterman, moderator, comp.std.unix and std-unix@uunet.uu.net.
  7163.  
  7164.  
  7165. Volume-Number: Volume 22, Number 109
  7166.  
  7167. From jsq@cs.utexas.edu  Wed Feb  6 14:28:56 1991
  7168. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  7169.     id AA06588; Wed, 6 Feb 91 14:28:56 -0500
  7170. Received: by cs.utexas.edu (5.64/1.94) 
  7171. From: jsq@tic.com (John S. Quarterman)
  7172. Newsgroups: comp.std.unix
  7173. Subject: Report on IEEE/CS TCOS-SS SEC
  7174. Message-Id: <17683@cs.utexas.edu>
  7175. Sender: jsq@cs.utexas.edu
  7176. Reply-To: std-unix@uunet.uu.net
  7177. Organization: Texas Internet Consulting
  7178. X-Submissions: std-unix@uunet.uu.net
  7179. Date: 6 Feb 91 19:26:43 GMT
  7180. To: std-unix@uunet.uu.net
  7181.  
  7182. Submitted-by: jsq@tic.com (John S. Quarterman)
  7183.  
  7184.             Report on IEEE/CS TCOS-SS SEC meeting 16-18 October 1990 in
  7185.                                     Seattle, WA.
  7186.  
  7187.                                   1 November 1990
  7188.  
  7189.                           John S. Quarterman <jsq@tic.com>
  7190.  
  7191.                              Texas Internet Consulting
  7192.  
  7193.        IEEE/CS TCOS-SS SEC
  7194.  
  7195.        1.  What's an SEC?
  7196.  
  7197.        The IEEE Computer Society (IEEE/CS) has been delegated authority by
  7198.        IEEE for standards involving operating systems, and IEEE was in turn
  7199.        delegated authority by ANSI, which is the U.S. national standards body
  7200.        that holds formal representation to international standards bodies
  7201.        such as ISO.
  7202.  
  7203.        Committees and Sponsors
  7204.  
  7205.        Every IEEE/CS standards committee must have a sponsoring body.  All of
  7206.        the committees that met in Seattle in October are sponsored by the
  7207.        IEEE/CS Technical Committee on Operating Systems, Standards
  7208.        Subcommittee (IEEE/CS TCOS-SS).  They (IEEE 1003.x, 1201.y, 1224,
  7209.        1237, and 1238) are thus sometimes refered to as the TCOS standards
  7210.        committees.  These include the POSIX committees, but the term POSIX
  7211.        properly applies only to the IEEE 1003.x committees, and to the
  7212.        ISO/IEC JTC1 SC22 WG15 committee that deals with the same topics and
  7213.        drafts in their 9945 documents, but not to the other TCOS committees.
  7214.  
  7215.        If I've counted right, TCOS now sponsors 30 projects in 20 standards
  7216.        committees.
  7217.  
  7218.        SEC Composition
  7219.  
  7220.        Yes, but what's an SEC?  The Sponsor Executive Committee of IEEE/CS
  7221.        TCOS-SS, whose purpose is to oversee standards projects sponsored by
  7222.        TCOS.  The SEC is composed of the chairs of all the TCOS commitees,
  7223.        plus officers, e.g., Jim Isaak, Chair, Shane McCarron, Secretary, and
  7224.        various Vice-Chairs for specific subjects, many of whom are chairs of
  7225.        subcommittees:
  7226.  
  7227.        __________
  7228.  
  7229.          * UNIXTM is a Registered Trademark of UNIX System Laboratories in
  7230.            the United States and other countries.
  7231.  
  7232.        1 November 1990                                    IEEE/CS TCOS-SS SEC
  7233.  
  7234.  
  7235.                                        - 2 -
  7236.  
  7237.             Vice-Chair       Area
  7238.             __________________________________
  7239.             Hal Jespersen    Technical Editing
  7240.  
  7241.             Ralph Barker     Coordination
  7242.             Robert Bismuth   Interpretations
  7243.             Dave Dodge       Logistics
  7244.             Lorraine Kevra   Balloting
  7245.  
  7246.        There are also steering committees for certain areas:
  7247.  
  7248.             ____________________________________
  7249.             Roger Martin   Conformance Testing
  7250.             Tim Baker      Distribution Services
  7251.  
  7252.        All the Institutional Representatives (IRs) to TCOS are also SEC
  7253.        members.  The IRs at the time of the October SEC meeting were:
  7254.  
  7255.             IR                   Organization
  7256.             _______________________________________________
  7257.             Ralph Barker         UniForum
  7258.             John S. Quarterman   USENIX
  7259.             Martin Kirk          X/Open
  7260.             Fritz Shultz         Open Software Foundation
  7261.             Shane McCarron       UNIX International
  7262.             ?                    SHARE (the IBM user group)
  7263.             ?                    Free Software Foundation
  7264.             ?                    ? (the Navy users group)
  7265.  
  7266.        The last two were approved at the October meeting.  There are two
  7267.        functions of an IR, which can be split: participating in SEC meetings
  7268.        and activities; and participating in ballotting groups, where the IRs
  7269.        ballot for their institutions, unlike all other ballotters, who vote
  7270.        as individuals.
  7271.  
  7272.        SEC Functions
  7273.  
  7274.        The SEC decides its own membership, either by electing officers, or by
  7275.        accepting new IRs, or by approving Project Authorization Requests
  7276.        (PARs) for new commitees.  Chairs of standards committees are
  7277.        appointed by TCOS-SS (i.e., normally by the TCOS-SS Chair, who is also
  7278.        the SEC Chair) and approved by their working groups.  In practice such
  7279.        a chair is normally named in the PAR that the SEC accepts to establish
  7280.        the committee.  The SEC can also abolish committees (see below), and
  7281.        it can establish rules for its own activities, such as for acceptance
  7282.        of PARs (see below).
  7283.  
  7284.        1 November 1990                                    IEEE/CS TCOS-SS SEC
  7285.  
  7286.  
  7287.                                        - 3 -
  7288.  
  7289.        2.  Language Independence
  7290.  
  7291.        IEEE Std. 1003.1-1988, the original POSIX standard, is written in
  7292.        terms of the C Programming Language.  It makes some attempt to address
  7293.        the issue of multiple programming languages by distinguishing between
  7294.        Common Usage C and Standard C, and by definitions of conformance and
  7295.        compliance that are not tied to a specific language (you can have a
  7296.        POSIX system that doesn't have any language translator at all).
  7297.        Nonetheless, all the interfaces of 1003.1 are defined in terms of C.
  7298.  
  7299.        WG15 and LI
  7300.  
  7301.        WG15 has made it clear all along that language-specific standards are
  7302.        not acceptable to the ISO process.  The POSIX committees have accepted
  7303.        that judgment in principle, but not a single POSIX committee has
  7304.        produced a language independent (LI) document.  This is a problem not
  7305.        only for those committees such as 1003.2 and 1003.4 that are working
  7306.        on base documents, but also for those that are working on language
  7307.        bindings, such as the 1003.5 Ada committee and the 1003.9 Fortran
  7308.        committees.  Should the language binding committees attempt to produce
  7309.        ``thin'' documents that just refer to a language independent base
  7310.        document, or should they produce ``thick'' documents that specify the
  7311.        language-independent interface as well as the language binding?  It's
  7312.        hard to make thin language documents without existing language-
  7313.        independent base documents.  This is a good reason for LI, independent
  7314.        of what WG15 wants.  In fairness, it must be pointed out that at least
  7315.        1003.4 and 1003.1 are already doing substantial work on language
  7316.        independence.
  7317.  
  7318.        The LI issue came to a head at the June 1990 Paris WG15 meeting, which
  7319.        was the most recent one before the Seattle TCOS committee meetings.
  7320.        As related in Dominic Dunlop's ISO Monitor report, WG15 refused to
  7321.        accept the IEEE 1003.4 document (and several others) for consideration
  7322.        as an International Standard because it was not language independent.
  7323.        Since 1003.4, in particular, is already balloting, this left the SEC
  7324.        between a rock (WG15) and a hard place (getting its own committees to
  7325.        implement LI).  See also Paul Rabin's October posting on this subject.
  7326.  
  7327.        LI Resolutions
  7328.  
  7329.        An SEC subcommittee to examine the LI issue reported back a motion to
  7330.        require all TCOS committees to incorporate an LI part before ballot
  7331.        approval.  (There were actually several overlapping and sequential
  7332.        motions, each of which was savagely amended by the SEC, but let's keep
  7333.        such gore out of this report.) The LI notion was not happily received
  7334.        by some of the SEC members, particularly not by 1003.2.
  7335.  
  7336.        Various people queried whether such a requirement could be established
  7337.        without a separate PAR for each affected committee, in order to
  7338.        confirm an LI document for each one.  It was pointed out that the
  7339.        resolution specified an LI part, not a separate document, and thus no
  7340.  
  7341.        1 November 1990                                    IEEE/CS TCOS-SS SEC
  7342.  
  7343.  
  7344.                                        - 4 -
  7345.  
  7346.        new PARs would be needed.  It was questioned whether such a
  7347.        requirement could be imposed on a standard already in balloting, since
  7348.        changes to such documents can only be made in response to the
  7349.        balloting process.  The SEC Chair pointed out that balloting changes
  7350.        could be made not only in response to objections, but also to
  7351.        balloting comments, and the resolution would appear as a comment.  (I
  7352.        don't believe anyone mentioned it specifically, but a document
  7353.        approved by its balloting group still has to be approved by the
  7354.        IEEE/CS Standards Activities Board, which is unlikely to approve
  7355.        anything not recommended by the IEEE/CS TCOS-SS SEC.) It was pointed
  7356.        out that whenever new conditions had been imposed on a standard in
  7357.        balloting (such as for test assertions), balloting had been delayed up
  7358.        to a year.  Several chairs made it clear that their committees didn't
  7359.        want to do this work, or at least didn't want it imposed on them by
  7360.        the SEC in this manner, especially considering that the gist of the
  7361.        new proposal had already been accepted by the SEC as a guideline in a
  7362.        previous meeting.
  7363.  
  7364.        An amendment was moved and seconded to make the LI rules applicable
  7365.        only to those standards that start balloting after 18 October 1990
  7366.        (the date of the meeting in process), thus excluding 1003.2 and
  7367.        1003.4.  This even though 1003.4 has apparently already done much of
  7368.        the LI work, and 1003.2 is apparently working on it.  The amendment
  7369.        was passed, and the base motion was passed as amended.
  7370.  
  7371.        But what about WG15?
  7372.  
  7373.        There was, nonetheless, some confidence that WG15 might alter its
  7374.        stand on the acceptance of, e.g., the 1003.4 document.  The SEC also
  7375.        approved a request from the U.S. TAG to forward specific drafts of
  7376.        five TCOS standards documents to WG15 when said drafts were available.
  7377.        We'll know soon whether WG15 will accept any of them, since the next
  7378.        WG15 meeting was the week after the TCOS meetings, and also in Seattle
  7379.        (well, Orcas Island).  Stay tuned for Dominic Dunlop's WG15 ISO
  7380.        Monitor Report and Susanne Smith's U.S. TAG snitch report.
  7381.  
  7382.        3.  It's dead, Jim
  7383.  
  7384.        The SEC did something that has never been done before in its history,
  7385.        and perhaps never in the history of IEEE standards activities.  It
  7386.        abolished a standards committee.
  7387.  
  7388.        Fragmentation and dissolution
  7389.  
  7390.        Several meetings back, IEEE 1003.8 fragmented into several committees
  7391.        to discuss specific subjects related to networking (excuse me:
  7392.        Distribution Services; TCOS does operating system interfaces, not
  7393.        networking).  Some of these, such as the 1003.12 Protocol Independent
  7394.        Interface (PII) committee and the current 1003.8 Transparent File
  7395.        Access (TFA) committee, are addressing topics clearly related to
  7396.  
  7397.        1 November 1990                                    IEEE/CS TCOS-SS SEC
  7398.  
  7399.  
  7400.                                        - 5 -
  7401.  
  7402.        operating system interfaces and prior art, e.g., XTI and sockets for
  7403.        1003.12, and NFS, RFS, and AFS for 1003.8.  Others include IEEE
  7404.        1003.ns for Name Space/Directory Services (NS/DS) IEEE 1224 for
  7405.        Message Handling Services, and IEEE 1238 for OSI Application
  7406.        Portability Interfaces (OSI APIs).  But IEEE 1237 was about remote
  7407.        procedure call (RPC).  It was working in an area already being
  7408.        addressed by another standards committee, in this case, the ANSI X3
  7409.        T3.5 RPC Rapporteur Group.  1237 was also sparsely attended, and chose
  7410.        to meet with X3 T3.5 in the summer instead of with the other TCOS
  7411.        committees in Danvers in July.
  7412.  
  7413.        The 1237 committee proposed its own dissolution.  Specifically, it
  7414.        proposed that its chair, Ken Hobday, be thanked for his activities and
  7415.        appointed SEC Institutional Representative to the Rapporteur Group.
  7416.        The general idea drew little resistance, but there was a motion to
  7417.        amend by tying the dissolution of 1237 to the acceptance of its work
  7418.        by the X3 T3.5 RPC Rapporteur Group.  When it was made clear (by
  7419.        someone speaking for the 1237 chair, who was not present), that the
  7420.        1237 members had no intention of meeting again, regardless of what the
  7421.        SEC did, the motion to amend failed and the original motion passed.
  7422.  
  7423.        The Bones of the SEC
  7424.  
  7425.        ``It's dead, Jim,'' remarked Parliamentarian Jason Zions to Chair Jim
  7426.        Isaak, and to the great satisfaction of all concerned.
  7427.  
  7428.        4.  Robert's Rules
  7429.  
  7430.        When the number of TCOS committees grew to its current double dozen,
  7431.        SEC meetings became rather unweildy.  They seemed to last for days.
  7432.        Er, meetings actually do last for days (usually Tuesday and Thursday
  7433.        morning or evening), but a single day seemed like several.
  7434.        Fortunately, a parliamentarian came grunting out of Silicon Valley
  7435.        clutching a copy of Robert's Rules of Order.  We do all appreciate
  7436.        Jason Zions' efforts to organize the meetings, and they now only last
  7437.        for days.  We do get some interesting artifacts, though.
  7438.  
  7439.        A motion was made on an important topic.  Many thought that action
  7440.        should be taken immediately, but others thought the time and the
  7441.        motion weren't ripe.  So a motion was made to postpone discussion
  7442.        until January.  Jason confirmed that postponement was debatable, so
  7443.        the mover withdrew that motion and made a motion to table, which is
  7444.        not debatable.  Someone else made a motion to suspend the rule about
  7445.        motions to table not being debatable.  Just before the impending vote
  7446.        on this third-level-deep motion, the Chair pointed out that its mover
  7447.        wasn't a member of the SEC.  Others pointed out that the mover of the
  7448.        motion to table wasn't, either, because we had just abolished his
  7449.        committee.  The Chair opined that that action wasn't really effective
  7450.        yet, because the IEEE Standards Board still had to confirm that
  7451.        action.  Nonetheless, the mover withdrew the motion.  Two other people
  7452.  
  7453.        1 November 1990                                    IEEE/CS TCOS-SS SEC
  7454.  
  7455.  
  7456.                                        - 6 -
  7457.  
  7458.        immediately made the same motions in the same order, the motion to
  7459.        suspend the rules was approved, and debate ensued on the motion to
  7460.        table.
  7461.  
  7462.        The above parliamentary foofaraw only took about one minute.  I think
  7463.        such amusements are a small price to pay for much less contentious and
  7464.        much faster meetings.
  7465.  
  7466.        In case you were wondering, eventually the motion to table was voted
  7467.        down and the original motion passed.
  7468.  
  7469.        5.  PAR Proliferation Prevention
  7470.  
  7471.        In the last year, the SEC has approved more than a dozen PARs for new
  7472.        committees or new documents.  This sudden (the January 1990 SEC
  7473.        meeting approved 11 PARs) doubling of TCOS standards activities has
  7474.        led to widespread concern.
  7475.  
  7476.        PAR Acceptance Criteria
  7477.  
  7478.        In April in Utah, the SEC approved a set of nine criteria for PAR
  7479.        acceptance.  These criteria, any of which can be waived by the SEC,
  7480.        range from a desire for widespread industry experience and a base
  7481.        document to a request for a scope of work that fits within that of
  7482.        TCOS-SS.  This was a good first step proliferation prevention, and
  7483.        several PARs were either not submitted or were rejected in Snowbird
  7484.        because of the existence of the criteria.  This has been reported on
  7485.        in previous editorials and snitch reports, and the criteria themselves
  7486.        have been posted to comp.std.unix.
  7487.  
  7488.        Project Management Committee
  7489.  
  7490.        The other half of the battle for committee curtailment was the
  7491.        establishment of a standing committee to apply the criteria to PARs
  7492.        before they reached the SEC, and to track the progress of committees
  7493.        against the milestones in their PARs, so that non-functional
  7494.        committees could be recommended for elimination.  A detailed set of
  7495.        guidelines (including the PAR acceptance criteria and a model for
  7496.        their application) for such a Project Management Committee (PMC) was
  7497.        reported out of an ad hoc committee as a motion, which was passed
  7498.        unanimously.  The SEC Chair announced the opening of nominations for a
  7499.        Chair, Secretary, and Project Editor for the PMC, to be confirmed in
  7500.        January.
  7501.  
  7502.        Although the movement to curtail proliferation of committees was
  7503.        actually started by the Institutional Representatives back in March,
  7504.        and though the ad hoc committee that wrote the PMC Guidelines
  7505.        originally intended to require a balance of representation in the PMC
  7506.        between IRs and other members, no such rule was incorporated in the
  7507.        final document.  This was not seen as a problem by the IRs, since the
  7508.  
  7509.        1 November 1990                                    IEEE/CS TCOS-SS SEC
  7510.  
  7511.  
  7512.                                        - 7 -
  7513.  
  7514.        PMC cannot make any actual decisions regarding PARs.  The PMC only
  7515.        recommends, and cannot even prevent a PAR from coming before the SEC.
  7516.        The SEC is the group that must decide on PAR acceptance, and all the
  7517.        IRs are members of the SEC.
  7518.  
  7519.        We can hope that the existence of the PMC will not only rationalize
  7520.        the creation and abolition of standards committees, but will also
  7521.        shorten SEC meetings....
  7522.  
  7523.        6.  Fees
  7524.  
  7525.        The Logistics Subcommittee, chaired by Dave Dodge, returned a report
  7526.        advising the raising of fees for meeting attendance.  Traditionally,
  7527.        meeting fees helped pay for meeting rooms and related logistics like
  7528.        copying machines.  (There is a separate fee schedule for committee
  7529.        mailings.) A corporate host was sought for each meeting.  The host
  7530.        (e.g., Digital for the Seattle meeting) sponsored lunches four of five
  7531.        weekdays and coffee service for breaks.  This wasn't a big deal when
  7532.        there were a few committees and maybe a hundred attendees.  But with
  7533.        400 attendees these days, hosting a meeting can run up to $55,000, and
  7534.        all the host gets is name recognition.  No hosts had been found for
  7535.        any meeting after Seattle.  So the logistics committee recommended and
  7536.        the SEC approved raising the fees across the board, and giving people
  7537.        the option of buying into the lunch plan or not.  This is yet another
  7538.        indication of the extent of current standards activities, and of their
  7539.        effects on the industry.
  7540.  
  7541.        Judy's birthday present
  7542.  
  7543.        Various arguments from the logistics committee meeting were reported,
  7544.        such as that eliminating coffee might help.  The SEC Chair noted that
  7545.        that wouldn't work, since that was how hotels made money, and they
  7546.        wouldn't like that.  The USENIX IR remarked that with competent
  7547.        management, such as Dave Dodge and meeting organizer Judy Williams,
  7548.        there was no need for micromanagement by the SEC at this level.  This
  7549.        was apparently the first time anyone had complimented Ms. Williams in
  7550.        an SEC meeting.  She organizes the meetings very well, evidently so
  7551.        well that most people don't notice.
  7552.  
  7553.        Computer room
  7554.  
  7555.        One thing the logistics committee could do better would be giving
  7556.        direction to sponsors of the computer room (such sponsors are still
  7557.        sought, separately from the issue of meeting hosts).  The computer
  7558.        room in Seattle had no UUCP or Internet access (although it did have
  7559.        half a dozen workstations on a network and a laser printer), and the
  7560.        single modem was only 2400bps and not Hayes compatible.  People were
  7561.        scrounging mail access from local residents.  Some ideas have been
  7562.        floated on how to do this better in New Orleans.
  7563.  
  7564.        1 November 1990                                    IEEE/CS TCOS-SS SEC
  7565.  
  7566.  
  7567.                                        - 8 -
  7568.  
  7569.        7.  TIMS gets new PEP from the Spanish Inquisition
  7570.  
  7571.        The POSIX Platform Environment Profile (PEP) draft document was the
  7572.        base document for a PAR on something that had been submitted at the
  7573.        July SEC meeting in Danvers, Mass., as a TIMS (Traditional Interactive
  7574.        Multiuser System) PAR.  The PEP PAR was submitted by TCOS-SS Chair Jim
  7575.        Isaak, with proposed working group chair Donn Terry.
  7576.  
  7577.        Donn Terry is the current chair of IEEE 1003.1, and all the other
  7578.        officers of that committee were also proposed to serve for the new
  7579.        PAR.  This is a good example of a PAR that doesn't create a new
  7580.        committee, rather, it permits an existing committee to produce a new
  7581.        document.  (Another good example was the 1003.15 Batch Processing PAR,
  7582.        which is being handled by the 1003.10 Supercomputing committee, and
  7583.        which was, incidentally, approved in Utah in April after the PAR
  7584.        acceptance criteria were approved by the SEC.)
  7585.  
  7586.        The PEP PAR says its scope is to ``Establish an [sic] Platform
  7587.        Environment Profile based on the ISO 9945 (IEEE 1003 POSIX) work and
  7588.        related standards which describes a simple foundation for an
  7589.        interactive, multiuser application platform.'' In other words, it's
  7590.        YAP (Yet Another Profile).  It fits between more or less between the
  7591.        IEEE 1003.0 POSIX Guide, which is a framework or model for writing
  7592.        profiles, and the NIST Application Portability Profile (APP), which is
  7593.        a list of standards that can be used together.  PEP is intended to
  7594.        show how to use standards to specify something that looks like a
  7595.        traditional UNIX system.  Unlike 1003.0, it's not closely limited to
  7596.        the TCOS standards, and the PAR specifically mentions NIST FIPS,
  7597.        X/Open's work, and 9945-1 and 9945-2, as well as alluding to TCOS
  7598.        POSIX work like 1003.4.  It even mentions the Houston 30 (an industry
  7599.        group of users of standards) as a party that wants this work.  It's
  7600.        called a platform profile because it can be used as a base for the
  7601.        other profile efforts.
  7602.  
  7603.        This was not an especially controversial PAR (except for logistical
  7604.        issues such as finding enough people to attend 1003.1 meetings to do
  7605.        the work, especially considering that 1003.1 is already mired in LI
  7606.        work).  It appeared likely to sail through to approval.  Until someone
  7607.        asked to see the answers to the PAR acceptance criteria.  Oops.
  7608.        Apparently the proposers had not prepared any, or had only prepared
  7609.        them for the previous TIMS PAR, or had not distributed them.  This
  7610.        lack almost led to the PEP PAR being tabled.  Instead, the SEC
  7611.        convened its version of the Spanish Inquisition: Donn Terry
  7612.        volunteered (at the instigation of the USENIX IR) to anwser the PAR
  7613.        criteria orally and in real time, and the whole SEC volunteered to
  7614.        quiz him on them.  Evidently his answers satisfied enough members,
  7615.        since the motion to table was defeated and the PEP PAR was approved
  7616.        (despite a complaint from the floor that the SEC's own rules about PAR
  7617.        acceptance, as just adopted in the PMC Guidelines, had not been
  7618.        followed).
  7619.  
  7620.        1 November 1990                                    IEEE/CS TCOS-SS SEC
  7621.  
  7622.  
  7623.                                        - 9 -
  7624.  
  7625.        The astute reader will have noticed that the Spanish Inquisition was
  7626.        held while an undebatable motion to table was on the floor.  How could
  7627.        this be?  See above under Robert's Rules....
  7628.  
  7629.        8.  USENIX Participation
  7630.  
  7631.        At the Tuesday meeting, the USENIX IR asked for Weirdnix submissions
  7632.        (for the best legal misinterpretation of 1003.1 or 1003.2) to be sent
  7633.        to Jeff Haemer <jsh@ico.isc.com>.
  7634.  
  7635.        The IR then read the main points from the announcement previously
  7636.        posted on comp.std.unix about the USENIX Board of Directors decisions
  7637.        at their September meeting about standards funding: that the ISO
  7638.        Monitor Project was continued (contingent on EUUG support); $15K was
  7639.        voted to continue the snitch reports; but no funds were voted for any
  7640.        other USENIX standards activities, such as a USENIX Institutional
  7641.        Representative (including, among other things, USENIX accreditation to
  7642.        the SEC).  The USENIX Board will entertain new proposals at their
  7643.        January meeting.  The previous funding expires approximately at the
  7644.        end of October 1990.
  7645.  
  7646.        At the Thursday SEC meeting, an ad hoc group of SEC members (not
  7647.        including the USENIX IR) proposed a resolution to be sent by the SEC
  7648.        Chair to the USENIX President and Board of Directors.  The SEC
  7649.        approved the resolution without objection, and the Chair thanked them
  7650.        for their direction.
  7651.  
  7652.        1 November 1990                                    IEEE/CS TCOS-SS SEC
  7653.  
  7654.  
  7655. Volume-Number: Volume 22, Number 110
  7656.  
  7657. From jsq@cs.utexas.edu  Thu Feb  7 12:01:26 1991
  7658. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  7659.     id AA25422; Thu, 7 Feb 91 12:01:26 -0500
  7660. Received: by cs.utexas.edu (5.64/1.94) 
  7661. From: huy%rainbow.asd.sgi.com@SGI.COM (Huy Nguyen)
  7662. Newsgroups: comp.std.unix
  7663. Subject: Where can one find Posix 1003.4a draft 5
  7664. Message-Id: <17706@cs.utexas.edu>
  7665. References: <17656@cs.utexas.edu>
  7666. Sender: jsq@cs.utexas.edu
  7667. Reply-To: huy%rainbow.asd.sgi.com@SGI.COM (Huy Nguyen)
  7668. Organization: Silicon Graphics, Research & Development
  7669. X-Submissions: std-unix@uunet.uu.net
  7670. Date: 7 Feb 91 00:37:49 GMT
  7671. To: std-unix@uunet.uu.net
  7672.  
  7673. Submitted-by: huy%rainbow.asd.sgi.com@SGI.COM (Huy Nguyen)
  7674.  
  7675. Could someone give me a pointer on how to obtain a recent version of the 
  7676. 1003.4a thread proposal(Draft 5)?  
  7677. Any help would be appreciated.  Thanks.
  7678.  
  7679.  huy@sgi.com
  7680.  
  7681. Volume-Number: Volume 22, Number 111
  7682.  
  7683. From jsq@cs.utexas.edu  Thu Feb  7 12:08:03 1991
  7684. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  7685.     id AA27058; Thu, 7 Feb 91 12:08:03 -0500
  7686. Received: by cs.utexas.edu (5.64/1.94) 
  7687. From: mohta@necom830.cc.titech.ac.jp (Masataka Ohta)
  7688. Newsgroups: comp.std.unix
  7689. Subject: Re: qfork()
  7690. Message-Id: <17707@cs.utexas.edu>
  7691. References: <17633@cs.utexas.edu>
  7692. Sender: jsq@cs.utexas.edu
  7693. Organization: Tokyo Institute of Technology
  7694. X-Submissions: std-unix@uunet.uu.net
  7695. Date: 7 Feb 91 03:32:11 GMT
  7696. Reply-To: std-unix@uunet.uu.net
  7697. To: std-unix@uunet.uu.net
  7698.  
  7699. Submitted-by: mohta@necom830.cc.titech.ac.jp (Masataka Ohta)
  7700.  
  7701. In article <17633@cs.utexas.edu>
  7702.     peter@ficc.ferranti.com (Peter da Silva) writes:
  7703.  
  7704. >Subject: Re: spawn() wars... please... not again...
  7705.  
  7706. And you have already lost the war. So, please! not again!
  7707.  
  7708. >Leave in the
  7709. >fork() call, but allow a more efficient (and, let's face it, easier to
  7710. >understand) alternative: spawn().
  7711.  
  7712. In the last war, you can't even show a specification of spawn(), because of
  7713. its complexity. Every UNIX programmer understand fork() and exec(), but
  7714. can't understand spawn() without its specification.
  7715.  
  7716. >Leave in the fork() call,
  7717.  
  7718. So, you are not trying to eliminate fork().
  7719.  
  7720. You should also preserve exec(), because exec() has its own purpose and
  7721. several programs are actually using it without fork().
  7722.  
  7723. >No. Those are the safe operations between fork() and exec() on UNIX.
  7724. >
  7725. >POSIX looks like it's going to comprise far more than UNIX.
  7726.  
  7727. If fork() and exec() exists in POSIX, many (if POSIX should be useful, all)
  7728. operations are safe between fork() and exec().
  7729.  
  7730. >Look, I know you don't like spawn(). But in a lot of environments... INCLUDING
  7731. >ONES THAT ARE OTHERWISE QUITE CAPABLE OF SUPPORTING A POSIX ABI... it is *not*
  7732. >possible to do a safe and efficient implementation of fork().
  7733.  
  7734. A lot of? Can you name them?
  7735.  
  7736. Anyway, it is the problem of that environment. It should provide safe
  7737. and inefficient implementation of fork() and safe and efficient
  7738. implementation of system(). If a programmer want to squeeze extra
  7739. performance in some case which can not covered by system() (dose such
  7740. a case actually exist?), he can do so by not using POSIX there if he
  7741. think effeciency is more important than ABI.
  7742.  
  7743. >Let's say you define vfork() as "set a flag that all posix calls that deal
  7744. >with uid, signals, files, etc... look at, so they just write a "script" of
  7745. >actions to take on behalf of the new process".
  7746.  
  7747. I can't understand what you are saying. "set a flag"? What?
  7748.  
  7749. >> Most (perhaps, more than 90%) of cases where fork/exec is necessary
  7750. >> is covered by system(). spawn() is not necessary.
  7751. >
  7752. >    No, system() and popen() can not, ever, let you pass a set of
  7753. >    arguments to a program without diddling by the shell. When you
  7754. >    have no way of knowing whether that shell will be sh, csh, ksh,
  7755. >    or even rc what can you do to protect yourself?
  7756.  
  7757. Read the manual! System() and popen() always use "/bin/sh".
  7758.  
  7759. >    Who knows, I can easily imagine DEC setting things up so a user
  7760. >    could set his shell to DCL and hose *everything* up.
  7761.  
  7762. User's shell has nothing to do with the behaviour of system() nor popen().
  7763.  
  7764. >    Using system() in programs like (for example) uucp, mail handlers,
  7765. >    and so on is a security hole you can drive a truck through.
  7766.  
  7767. Yes, it can be a security hole if used improperly just like many system
  7768. calls. I'm sure spawn() can also be a security hole. So what?
  7769.  
  7770.                         Masataka Ohta
  7771.  
  7772. Volume-Number: Volume 22, Number 112
  7773.  
  7774. From jsq@cs.utexas.edu  Thu Feb  7 12:18:50 1991
  7775. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  7776.     id AA00605; Thu, 7 Feb 91 12:18:50 -0500
  7777. Received: by cs.utexas.edu (5.64/1.94) 
  7778. From: std-unix-request@uunet.uu.net (John S. Quarterman)
  7779. Newsgroups: comp.std.unix
  7780. Subject: Re: qfork()
  7781. Message-Id: <17708@cs.utexas.edu>
  7782. References: <17633@cs.utexas.edu>
  7783. Sender: jsq@cs.utexas.edu
  7784. Organization: Texas Internet Consulting
  7785. X-Submissions: std-unix@uunet.uu.net
  7786. Date: 7 Feb 91 17:17:56 GMT
  7787. Reply-To: std-unix@uunet.uu.net
  7788. To: std-unix@uunet.uu.net
  7789.  
  7790. Submitted-by: std-unix-request@uunet.uu.net (John S. Quarterman)
  7791.  
  7792. Unfortunately, I'm beginning to hear from readers who are deleting
  7793. unread every message in the qfork/spawn discussion.  I have to admit I
  7794. tend to agree that there's more heat than light being shown on all
  7795. sides of this one.
  7796.  
  7797. So, could we please either get back to reasoned technical discussion,
  7798. or move on to something else?
  7799.  
  7800. John S. Quarterman, moderator, comp.std.unix and std-unix@uunet.uu.net
  7801.  
  7802. Volume-Number: Volume 22, Number 113
  7803.  
  7804. From jsq@cs.utexas.edu  Thu Feb  7 12:32:21 1991
  7805. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  7806.     id AA04879; Thu, 7 Feb 91 12:32:21 -0500
  7807. Received: by cs.utexas.edu (5.64/1.94) 
  7808. From: kornegay@oiscola.Columbia.NCR.COM (Michael L. Kornegay)
  7809. Newsgroups: comp.std.unix
  7810. Subject: Re: Where can one find Posix 1003.4a draft 5
  7811. Message-Id: <17709@cs.utexas.edu>
  7812. References: <17706@cs.utexas.edu>
  7813. Sender: jsq@cs.utexas.edu
  7814. Reply-To: oiscola!kornegay@cs.utexas.edu (Michael L. Kornegay)
  7815. Organization: NCR/OISD Columbia
  7816. X-Submissions: std-unix@uunet.uu.net
  7817. Date: 6 Feb 91 22:24:43 GMT
  7818. To: std-unix@uunet.uu.net
  7819.  
  7820. Submitted-by: kornegay@oiscola.Columbia.NCR.COM (Michael L. Kornegay)
  7821.  
  7822. [ I have linked this message to a previous one on a similar topic.  -mod ]
  7823.  
  7824. I am interested in tracking the progress of proposed POSIX threads.
  7825.  
  7826. Are they discussed in this newsgroup?  Do mailing lists exists for
  7827. its discussion?  Etc.
  7828.  
  7829. Currently the proposed POSIX threads I know about are in P1003.4a
  7830. draft.  At one time I thought another POSIX group was also working
  7831. on threads standardization.
  7832.  
  7833. Thanks for your assistance,
  7834. -- 
  7835. ----------
  7836. Michael L. Kornegay,
  7837.   michael.kornegay@columbia.ncr.com
  7838.   mlk@bir.uucp
  7839.  
  7840. Volume-Number: Volume 22, Number 114
  7841.  
  7842. From jsq@cs.utexas.edu  Thu Feb  7 12:41:31 1991
  7843. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  7844.     id AA07655; Thu, 7 Feb 91 12:41:31 -0500
  7845. Received: by cs.utexas.edu (5.64/1.94) 
  7846. From: sp@gregoire.osf.fr (Simon Patience)
  7847. Newsgroups: comp.std.unix
  7848. Subject: Re: recent history of Unix evolution
  7849. Message-Id: <17710@cs.utexas.edu>
  7850. References: <17653@cs.utexas.edu> <17405@cs.utexas.edu> <17631@cs.utexas.edu> <17653@cs.utexas.edu>,
  7851. Sender: jsq@cs.utexas.edu
  7852. Reply-To: sp@gregoire.osf.fr (Simon Patience)
  7853. Organization: OSF Research Institute
  7854. X-Submissions: std-unix@uunet.uu.net
  7855. Date: 7 Feb 91 10:08:32 GMT
  7856. To: std-unix@uunet.uu.net
  7857.  
  7858. Submitted-by: sp@gregoire.osf.fr (Simon Patience)
  7859.  
  7860. In article <17653@cs.utexas.edu>, rcd@ico.isc.com (Dick Dunn) writes:
  7861. > sp@gregoire.osf.fr (Simon Patience) writes, among explanations of OSF
  7862. > history and status, that:
  7863. > > OSF/1, simplistically, is the integration of Mach 2.5 microkernel and
  7864. > > BSD 4.4...
  7865. > This is incorrect on two counts.  First, Mach 2.5 is not a "microkernel"
  7866. > implementation--it still contains conventional kernel functions. 
  7867.  
  7868. By this statement I was trying to imply that it was only the microkernel
  7869. part of the Mach 2.5 distribution that was used and not the Unix part
  7870. (although for the pedants, I'm sure a line or two slipped in). In fact the
  7871. Mach 3.0 kernel was based on the 2.5 "microkernel" and only the IPC interfaces
  7872. changed significantly (although again I'm sure other changes have been
  7873. made, sigh, the things you have to do to protect against flames)
  7874.  
  7875. > Second, OSF/1 could not have
  7876. > integrated BSD 4.4, because BSD 4.4 is not done yet--at least not accor-
  7877. > ding to the folks at Berkeley!  Probably what is meant here is that OSF/1
  7878. > has incorporated some of the Berkeley "Reno" code, Reno being the name
  7879. > attached to a pre-4.4 release of code intended for developers who want to
  7880. > try it out and shake out the bugs.
  7881.  
  7882. Well, I did say *simplistically*. In fact OSF and Berkeley worked closely
  7883. sharing what was to become 4.3 Reno and will become 4.4. Bugs found and 
  7884. fixed at OSF will be in 4.4 and vice versa.
  7885.  
  7886. If you had wanted a technically precise and accurate description then
  7887. you can always attend the OSF/1 internals course.
  7888.  
  7889. Simon.
  7890.  
  7891.   Simon Patience
  7892.   Open Software Foundation            Phone: +33-76-63-48-72
  7893.   Research Institute                FAX:   +33-76-51-05-32
  7894.   2 Avenue De Vignate                Email: sp@gr.osf.org
  7895.   38610 Gieres, France                       uunet!gr.osf.org!sp
  7896.  
  7897. Volume-Number: Volume 22, Number 115
  7898.  
  7899. From jsq@cs.utexas.edu  Wed Feb 13 10:01:49 1991
  7900. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  7901.     id AA20835; Wed, 13 Feb 91 10:01:49 -0500
  7902. Received: by cs.utexas.edu (5.64/1.94) 
  7903. From: seanf@sco.COM (Sean Eric Fagan)
  7904. Newsgroups: comp.std.unix
  7905. Subject: posix and filesystems
  7906. Message-Id: <17830@cs.utexas.edu>
  7907. Sender: jsq@cs.utexas.edu
  7908. Organization: The Santa Cruz Operation, Inc.
  7909. X-Submissions: std-unix@uunet.uu.net
  7910. Date: 7 Feb 91 17:51:34 GMT
  7911. Reply-To: std-unix@uunet.uu.net
  7912. To: std-unix@uunet.uu.net
  7913.  
  7914. Submitted-by: seanf@sco.COM (Sean Eric Fagan)
  7915.  
  7916. Given a more-or-less POSIX-compliant system, with multiple filesystem types
  7917. (e.g., a "normal" unix filesystem, NFS, and DOS, all mounted at the same
  7918. time), does anyone have any ideas what, oh, symlink() should return when
  7919. attempted on a filesystem that does not support it?  For various reasons, I
  7920. kinda like EINVAL, but I did want to see if anyone else had any ideas, or if
  7921. someone could come up with a reference for a "definitive" posix-compliant
  7922. answer.
  7923.  
  7924. -- 
  7925. -----------------+
  7926. Sean Eric Fagan  | "*Never* knock on Death's door:  ring the bell and 
  7927. sef@sco.COM      |   run away!  Death hates that!"
  7928. uunet!sco!sef    |     -- Dr. Mike Stratford (Matt Frewer, "Doctor, Doctor")
  7929. (408) 458-1422   | Any opinions expressed are my own, not my employers'.
  7930.  
  7931.  
  7932.  
  7933. Volume-Number: Volume 22, Number 116
  7934.  
  7935. From jsq@cs.utexas.edu  Wed Feb 13 10:07:32 1991
  7936. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  7937.     id AA22568; Wed, 13 Feb 91 10:07:32 -0500
  7938. Received: by cs.utexas.edu (5.64/1.94) 
  7939. From: domo@tsa.co.uk (Dominic Dunlop)
  7940. Newsgroups: comp.std.unix
  7941. Subject: Re: IEEE TCOS, New Orleans, January 1991: EurOpen IR's report
  7942. Message-Id: <17831@cs.utexas.edu>
  7943. Sender: jsq@cs.utexas.edu
  7944. Subject-References: <17630@cs.utexas.edu>
  7945. X-Submissions: std-unix@uunet.uu.net
  7946. Date: 8 Feb 91 10:37:39 GMT
  7947. Reply-To: std-unix@uunet.uu.net
  7948. To: std-unix@uunet.uu.net
  7949.  
  7950. Submitted-by: domo@tsa.co.uk (Dominic Dunlop)
  7951.  
  7952. Mary Lynne Nielsen, IEEE Project Editor, makes the following
  7953. corrections:
  7954.  
  7955. > Whenever a possible new POSIX-related
  7956. > standards activity is identified, its promoters can draw up
  7957. > a Project Authorization Request (PAR), and submit it to the
  7958. > Sponsor Executive Committee (SEC) of TCOS.  If approved
  7959. > (sponsored in IEEE terminology), and subsequently rubber-
  7960. > stamped by the  IEEE Computer Society's Standards Activities
  7961. > Board (SAB), a new project is created.
  7962. > ...
  7963. >    - Balloting groups are drawn from the membership of a
  7964. >      balloting pool.  The pool has three types of member:
  7965. >      individual members of the IEEE who have specifically
  7966. >      applied to join the pool; institutional
  7967. >      representatives (IRs) accepted by the IEEE-CS SAB;
  7968. >      and national heads of delegation to the ISO
  7969. >      POSIX working group.
  7970.  
  7971. The CS SAB has no official right to approve PARs, but
  7972. approves to send them on to the IEEE Standards Board.  It is
  7973. the IEEE Standards Board, which oversees the standards
  7974. activities of all 40-odd societies in the IEEE, which grants
  7975. actual approval.  Also, the IEEE Standards Board is the
  7976. organization that officially approves IR membership status, not
  7977. the CS SAB.
  7978.  
  7979. -- 
  7980. Dominic Dunlop
  7981.  
  7982. Volume-Number: Volume 22, Number 117
  7983.  
  7984. From jsq@cs.utexas.edu  Wed Feb 13 10:14:11 1991
  7985. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  7986.     id AA24125; Wed, 13 Feb 91 10:14:11 -0500
  7987. Received: by cs.utexas.edu (5.64/1.94) 
  7988. From: eric@mks.com (Eric Gisin)
  7989. Newsgroups: comp.std.unix
  7990. Subject: ed s/a*/./g description
  7991. Message-Id: <17832@cs.utexas.edu>
  7992. Sender: jsq@cs.utexas.edu
  7993. Organization: Mortice Kern Systems Inc., Waterloo, Ontario, CANADA
  7994. X-Submissions: std-unix@uunet.uu.net
  7995. Date: 8 Feb 91 20:35:50 GMT
  7996. Reply-To: std-unix@uunet.uu.net
  7997. To: std-unix@uunet.uu.net
  7998.  
  7999. Submitted-by: eric@mks.com (Eric Gisin)
  8000.  
  8001. Does anyone have an complete description of how s///g and awk's gsub
  8002. handle the special case of an empty pattern match?
  8003. The System V documents and POSIX.2 don't cover this.
  8004.  
  8005. For example, the command s/[a-z]*/./g does the following on System V ed:
  8006.     -bug-    becomes .-.-.
  8007. The following algorithm produces an extra dot:
  8008.     -bug-    becomes    .-..-.
  8009.  
  8010. gsub(pattern, replace, src, dst)
  8011.     while (1) {
  8012.         find next pattern in src
  8013.         copy part before match from src to dst
  8014.         copy replace to dst
  8015.         advance src to end of match
  8016.         if (at end of src)    break;
  8017.         /* special case for empty match */
  8018.         if (match was empty)
  8019.             *dst++ = *src++;
  8020.     }
  8021.  
  8022.  
  8023. Volume-Number: Volume 22, Number 118
  8024.  
  8025. From jsq@cs.utexas.edu  Wed Feb 13 10:17:32 1991
  8026. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  8027.     id AA25068; Wed, 13 Feb 91 10:17:32 -0500
  8028. Received: by cs.utexas.edu (5.64/1.94) 
  8029. From: twinsun!eggert@cs.utexas.edu (Paul Eggert)
  8030. Newsgroups: comp.std.unix
  8031. Subject: How should one test for seteuid()'s existence?
  8032. Message-Id: <17833@cs.utexas.edu>
  8033. Sender: jsq@cs.utexas.edu
  8034. Organization: Twin Sun, Inc
  8035. X-Submissions: std-unix@uunet.uu.net
  8036. Date: 8 Feb 91 21:43:19 GMT
  8037. Reply-To: std-unix@uunet.uu.net
  8038. To: std-unix@uunet.uu.net
  8039.  
  8040. Submitted-by: eggert@twinsun.uucp (Paul Eggert)
  8041.  
  8042. I've heard that IEEE will publish a separate supplement to IEEE Std 1003.1
  8043. (ISO/IEC 9945-1) that covers seteuid(), among other issues.  In the latest
  8044. draft of this supplement, how should a program test for the existence of
  8045. seteuid()?  Will the following test work?
  8046.  
  8047.     #include <unistd.h>
  8048.  
  8049.     #if _POSIX_VERSION > 199009L
  8050.         ... seteuid() exists ...
  8051.     #endif
  8052.  
  8053. Volume-Number: Volume 22, Number 119
  8054.  
  8055. From jsq@cs.utexas.edu  Wed Feb 13 10:22:48 1991
  8056. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  8057.     id AA26834; Wed, 13 Feb 91 10:22:48 -0500
  8058. Received: by cs.utexas.edu (5.64/1.94) 
  8059. From: sws@calvin.wa.com (Susanne Smith)
  8060. Newsgroups: comp.std.unix
  8061. Subject: Re: Where can one find Posix 1003.4a draft 5
  8062. Message-Id: <17835@cs.utexas.edu>
  8063. References: <17706@cs.utexas.edu> <17709@cs.utexas.edu>
  8064. Sender: jsq@cs.utexas.edu
  8065. X-Submissions: std-unix@uunet.uu.net
  8066. Date: 9 Feb 91 05:26:10 GMT
  8067. Reply-To: std-unix@uunet.uu.net
  8068. To: std-unix@uunet.uu.net
  8069.  
  8070. Submitted-by: sws@calvin.uucp (Susanne Smith)
  8071.  
  8072. Single copies of current drafts of the 1003 documents can be obtained
  8073. from the Computer Society with a charge to cover reproduction and mailing.
  8074. Their phone number is +1-202-371-0101.
  8075.  
  8076. Susanne Smith
  8077.  
  8078. Volume-Number: Volume 22, Number 120
  8079.  
  8080. From jsq@cs.utexas.edu  Wed Feb 13 10:29:20 1991
  8081. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  8082.     id AA29524; Wed, 13 Feb 91 10:29:20 -0500
  8083. Received: by cs.utexas.edu (5.64/1.94) 
  8084. From: iv@sun.Eng.Sun.COM (Ian Vessey)
  8085. Newsgroups: comp.std.unix
  8086. Subject: IEEE P1003.12 Seeks Input.
  8087. Keywords: sockets XTI TLI networking
  8088. Message-Id: <17836@cs.utexas.edu>
  8089. Sender: jsq@cs.utexas.edu
  8090. Reply-To: dot12@okeeffe.Berkeley.EDU
  8091. X-Submissions: std-unix@uunet.uu.net
  8092. Date: 11 Feb 91 20:46:42 GMT
  8093. To: std-unix@uunet.uu.net
  8094.  
  8095. Submitted-by: iv@sun.Eng.Sun.COM (Ian Vessey)
  8096.  
  8097. The POSIX process-to-process communications working group (P1003.12)
  8098. would like to solicit outside comment.
  8099.  
  8100. Between November 1990 and January 1991, we asked your opinions as to
  8101. whether this working group should
  8102.  
  8103.         a)      Develop a 3rd interface akin to sockets and XTI,
  8104.         b)      Standardize either Berkeley sockets or XTI,
  8105.         c)      Standardize both sockets and XTI.
  8106.  
  8107. The results of the poll indicated that
  8108.  
  8109.         a)      The working group should not adopt a new third
  8110.                 interface
  8111.         b)      The working group should adopt both sockets and XTI.
  8112.  
  8113. These poll results were endorsed by the committee and we are currently
  8114. pursuing a plan that provides a single language independent standard
  8115. which has two `C' bindings, one for sockets and one for XTI. These
  8116. two bindings will constitute our DNI(Detailed Network Interface). We
  8117. are also working on an SNI(Simple Network Interface) which views the
  8118. network from a far simpler standpoint and operates over the DNI.
  8119.  
  8120. The purpose of this mail is to not only feed back the results of the
  8121. poll and it's impact on our work, but to ask for further input.
  8122. Specifically, we would like comments on perceived problems with either
  8123. of the interfaces together with suggestions for additional features
  8124. that you believe would be useful to add to one or both of them.
  8125.  
  8126. Please keep in mind that backwards compatibility is very important
  8127. in any change requests proposed.
  8128.  
  8129. As before, please submit your comments to dot12@okeeffe.Berkeley.EDU.
  8130.  
  8131. Volume-Number: Volume 22, Number 121
  8132.  
  8133. From jsq@cs.utexas.edu  Wed Feb 13 10:38:58 1991
  8134. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  8135.     id AA02495; Wed, 13 Feb 91 10:38:58 -0500
  8136. Received: by cs.utexas.edu (5.64/1.94) 
  8137. From: Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips)
  8138. Newsgroups: comp.std.unix
  8139. Subject: Re: recent history of Unix evolution
  8140. Message-Id: <17837@cs.utexas.edu>
  8141. References: <17405@cs.utexas.edu> <17631@cs.utexas.edu> <17653@cs.utexas.edu> <17710@cs.utexas.edu>
  8142. Sender: jsq@cs.utexas.edu
  8143. Organization: NCR Microelectronics, Ft. Collins, CO
  8144. X-Submissions: std-unix@uunet.uu.net
  8145. Date: 11 Feb 91 11:19:07 GMT
  8146. Reply-To: std-unix@uunet.uu.net
  8147. To: std-unix@uunet.uu.net
  8148.  
  8149. Submitted-by: Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips)
  8150.  
  8151. >>>>> On 4 Feb 91 16:32:06 GMT, sp@gregoire.osf.fr (Simon Patience) said:
  8152.  
  8153. Simon> OSF/1 1.0 was released for general distribution on December 7 1990.
  8154.  
  8155. The more important date will be when end users can buy OSF/1 and its
  8156. documentation for their machines, IMHO.  The most optimistic rumor I've
  8157. heard is third quarter `91 for shipment to end users, and then only for a
  8158. few platforms.
  8159.  
  8160. Don't get me wrong.  I welcome the competition between USL and OSF.  I'm
  8161. confident *both* OSs will benefit as a result.  I wish both camps success.
  8162.  
  8163. As a developer of applications that must run on both SVr4 and OSF/1 (when
  8164. it ships to end users), I've looked all over for specific information on
  8165. the C language interface to OSF/1 in general and system calls in
  8166. particular.  The only books I can find on OSF are about Motif, nothing on
  8167. the operating system itself.  I'd *like* to take advantage of what OSF/1
  8168. offers, but without documentation, this is impossible.  How about sections
  8169. 1-8 of the man pages for OSF/1?  Where can I buy them?  Telling me it will
  8170. be POSIX compliant is only a partial answer.
  8171.  
  8172. Disclaimer: Not a spokesman, etc.
  8173. --
  8174. Chuck Phillips  MS440
  8175. NCR Microelectronics             chuck.phillips%ftcollins.ncr.com
  8176. 2001 Danfield Ct.
  8177. Ft. Collins, CO.  80525           ...uunet!ncrlnk!ncr-mpd!bach!chuckp
  8178.  
  8179. Volume-Number: Volume 22, Number 122
  8180.  
  8181. From jsq@cs.utexas.edu  Wed Feb 13 10:41:40 1991
  8182. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  8183.     id AA03237; Wed, 13 Feb 91 10:41:40 -0500
  8184. Received: by cs.utexas.edu (5.64/1.94) 
  8185. From: Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips)
  8186. Newsgroups: comp.std.unix
  8187. Subject: Re: "#!" magic number  (was: Shell standardization)
  8188. Message-Id: <17838@cs.utexas.edu>
  8189. References: <17011@cs.utexas.edu> <17065@cs.utexas.edu> <17155@cs.utexas.edu> <17650@cs.utexas.edu>
  8190. Sender: jsq@cs.utexas.edu
  8191. Organization: NCR Microelectronics, Ft. Collins, CO
  8192. X-Submissions: std-unix@uunet.uu.net
  8193. Date: 12 Feb 91 15:03:33 GMT
  8194. Reply-To: std-unix@uunet.uu.net
  8195. To: std-unix@uunet.uu.net
  8196.  
  8197. Submitted-by: Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips)
  8198.  
  8199. >>>>> On 4 Feb 91 11:50:07 GMT, Chuck.Phillips@FtCollins.NCR.COM (Chuck.Phillips) said:
  8200. Chuck> Invitation for discussion: If the path after the "#!" doesn't begin
  8201. Chuck> with "/", "./" or "../", should PATH be searched for the execuatble?
  8202. Chuck> If so, how best could this be implemented?
  8203.  
  8204. Based on feedback from Ernest Hua (thanks!), I'd like to ammend this.  SUID
  8205. scripts under no circumstances should allow PATH searching for '#!'
  8206. arguments -- even if not SUID root.
  8207.  
  8208. Continuing the earlier thread, not only are directory structures
  8209. non-portable, but some interpreters (e.g. pearl, gawk, bash) have no POSIX
  8210. or otherwise defined directory location.  '#!' path searching also allows
  8211. vendors to write their own interpreters for scripts without forcing a
  8212. particular directory structure on admin.  Further, it allows different
  8213. versions of the same interpreter to be used simultaneously based on each
  8214. user's path.
  8215. --
  8216. Chuck Phillips  MS440
  8217. NCR Microelectronics             chuck.phillips%ftcollins.ncr.com
  8218. 2001 Danfield Ct.
  8219. Ft. Collins, CO.  80525           ...uunet!ncrlnk!ncr-mpd!bach!chuckp
  8220.  
  8221. Volume-Number: Volume 22, Number 123
  8222.  
  8223. From jsq@cs.utexas.edu  Thu Feb 14 12:35:33 1991
  8224. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  8225.     id AA17127; Thu, 14 Feb 91 12:35:33 -0500
  8226. Received: by cs.utexas.edu (5.64/1.94) 
  8227. From: sp@gregoire.osf.fr (Simon Patience)
  8228. Newsgroups: comp.std.unix
  8229. Subject: Re: recent history of Unix evolution
  8230. Message-Id: <17882@cs.utexas.edu>
  8231. References: <17837@cs.utexas.edu> <17405@cs.utexas.edu> <17631@cs.utexas.edu> <17653@cs.utexas.edu> <17710@cs.utexas.edu> <17837@cs.utexas.edu>
  8232. Sender: jsq@cs.utexas.edu
  8233. Reply-To: sp@gregoire.osf.fr (Simon Patience)
  8234. Organization: OSF Research Institute
  8235. X-Submissions: std-unix@uunet.uu.net
  8236. Date: 13 Feb 91 16:55:39 GMT
  8237. To: std-unix@uunet.uu.net
  8238.  
  8239. Submitted-by: sp@gregoire.osf.fr (Simon Patience)
  8240.  
  8241. In article <17837@cs.utexas.edu>, Chuck.Phillips@FtCollins.NCR.COM
  8242. (Chuck.Phillips) writes:
  8243. > As a developer of applications that must run on both SVr4 and OSF/1 (when
  8244. > it ships to end users), I've looked all over for specific information on
  8245. > the C language interface to OSF/1 in general and system calls in
  8246. > particular.  The only books I can find on OSF are about Motif, nothing on
  8247. > the operating system itself.  I'd *like* to take advantage of what OSF/1
  8248. > offers, but without documentation, this is impossible.  How about sections
  8249. > 1-8 of the man pages for OSF/1?  Where can I buy them?  Telling me it will
  8250. > be POSIX compliant is only a partial answer.
  8251.  
  8252. What you want is the Operating System Programming Interfaces Volume of
  8253. the AES (Application Environment Specification). This is published by
  8254. Prentice Hall ISBN 0-13-043522-8. You should be able to order this from
  8255. any reputable bookshop if they don't already have it. It has been available
  8256. for some time but I guess it has taken time for the news to leak out.
  8257.  
  8258. These are not all the interfaces present in OSF/1 but they are the ones
  8259. you should use if you want to write a portable application.
  8260.  
  8261. Simon.
  8262.  
  8263.   Simon Patience
  8264.   Open Software Foundation            Phone: +33-76-63-48-72
  8265.   Research Institute                FAX:   +33-76-51-05-32
  8266.   2 Avenue De Vignate                Email: sp@gr.osf.org
  8267.   38610 Gieres, France                       uunet!gr.osf.org!sp
  8268.  
  8269. Volume-Number: Volume 22, Number 124
  8270.  
  8271. From jsq@cs.utexas.edu  Thu Feb 14 14:07:07 1991
  8272. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  8273.     id AA20622; Thu, 14 Feb 91 14:07:07 -0500
  8274. Received: by cs.utexas.edu (5.64/1.94) 
  8275. From: lwa@skeptic.osf.org (Larry Allen)
  8276. Newsgroups: comp.std.unix
  8277. Subject: Re: recent history of Unix evolution
  8278. Message-Id: <17886@cs.utexas.edu>
  8279. References: <17405@cs.utexas.edu> <17631@cs.utexas.edu> <17653@cs.utexas.edu> <17710@cs.utexas.edu> <17837@cs.utexas.edu>
  8280. Sender: jsq@cs.utexas.edu
  8281. Reply-To: lwa@skeptic.osf.org (Larry Allen)
  8282. Organization: Open Software Foundation, Cambridge, Massachusetts
  8283. X-Submissions: std-unix@uunet.uu.net
  8284. Date: 13 Feb 91 19:23:59 GMT
  8285. To: std-unix@uunet.uu.net
  8286.  
  8287. Submitted-by: lwa@skeptic.osf.org (Larry Allen)
  8288.  
  8289. Speaking not quite authoritatively, but as a member of the
  8290. OSF/1 development team:
  8291. Most OSF/1 documentation is available without a
  8292. source code license.  The "quick-print copies" - 
  8293. exactly what we shipped on the tape - can
  8294. be purchased right now from OSF-Direct.  Call 
  8295. 617-621-7300 and ask to purchase an OSF/1 documentation set.
  8296. Prentice Hall versions of several of the manuals will be
  8297. available in several months.  I think OSF-Direct
  8298. can probably help with information on the printed
  8299. books, or talk to your Prentice-Hall salesman...
  8300.  
  8301. I should also mention that the OS AES (the Applications
  8302. Environment Specification, which is the application
  8303. programming interface recommended for use by portable
  8304. applications, guaranteed to be preserved across multiple
  8305. releases, etc.) is printed by Prentice Hall and is
  8306. currently available in better computer bookstores
  8307. everywhere :^)  It's called the
  8308.  
  8309. Application Environment Specification
  8310. Operating System Programming Interfaces Volume
  8311.  
  8312.                     -Larry Allen
  8313.                      Open Software Foundation
  8314.  
  8315. Volume-Number: Volume 22, Number 125
  8316.  
  8317. From jsq@cs.utexas.edu  Thu Feb 14 14:39:54 1991
  8318. Received: from cs.utexas.edu by uunet.uu.net (5.61/1.14) with SMTP 
  8319.     id AA01807; Thu, 14 Feb 91 14:39:54 -0500
  8320. Received: by cs.utexas.edu (5.64/1.94) 
  8321. From: jason@cnd.hp.com (Jason Zions)
  8322. Newsgroups: comp.std.unix
  8323. Subject: Re: posix and filesystems
  8324. Message-Id: <17890@cs.utexas.edu>
  8325. References: <17830@cs.utexas.edu>
  8326. Sender: jsq@cs.utexas.edu
  8327. Organization: Hewlett Packard, Information Networks Group
  8328. X-Submissions: std-unix@uunet.uu.net
  8329. Date: 13 Feb 91 21:55:09 GMT
  8330. Reply-To: std-unix@uunet.uu.net
  8331. To: std-unix@uunet.uu.net
  8332.  
  8333. Submitted-by: jason@cnd.hp.com (Jason Zions)
  8334.  
  8335. >Given a more-or-less POSIX-compliant system, with multiple filesystem types
  8336. >(e.g., a "normal" unix filesystem, NFS, and DOS, all mounted at the same
  8337. >time), does anyone have any ideas what, oh, symlink() should return when
  8338. >attempted on a filesystem that does not support it?  For various reasons, I
  8339. >kinda like EINVAL, but I did want to see if anyone else had any ideas, or if
  8340. >someone could come up with a reference for a "definitive" posix-compliant
  8341. >answer.
  8342.  
  8343. The definitive answer will appear in the 1003.8 Transparent File Access
  8344. standard, when that is completed. (Draft 4 is out for mock ballot and will
  8345. be received in the first mailing; mine came today.) Join the ballot group
  8346. (opening soon) and have your say.
  8347.  
  8348. The specific example of symlink() is not addressed in 1003.8 since symbolic
  8349. links do not appear in 1003.1-1990 / IS 9945-1:1990.
  8350.  
  8351. The 1003.8 working group has proposed, in draft 4, adding a new error
  8352. EOPNOTSUPP which is used to indicate that the action has been requested on a
  8353. file accessed over some mechanism which does not support that action.
  8354. Overloading EINVAL was investigated and rejected; see the rationale. In some
  8355. cases an already-defined error could be unambiguously used; for example,
  8356. link() could return EMLINK since the access mechanism may support
  8357. LINK_MAX==1 only.
  8358.  
  8359. Jason Zions
  8360. Chair of, but not speaking on behalf of, P1003.8
  8361.  
  8362. Volume-Number: Volume 22, Number 126
  8363.  
  8364. From jsq@cs.utexas.edu  Mon Feb 18 12:47:29 1991
  8365. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  8366.     id AA05615; Mon, 18 Feb 91 12:47:29 -0500
  8367. Received: by cs.utexas.edu (5.64/1.94) 
  8368. From: acmfiu@serss0.fiu.edu (ACMFIU)
  8369. Newsgroups: comp.std.unix
  8370. Subject: POSIX shell
  8371. Message-Id: <17970@cs.utexas.edu>
  8372. Sender: jsq@cs.utexas.edu
  8373. Organization: Florida International University, Miami
  8374. X-Submissions: std-unix@uunet.uu.net
  8375. Date: 16 Feb 91 04:34:18 GMT
  8376. Reply-To: std-unix@uunet.UU.NET
  8377. To: std-unix@uunet.UU.NET
  8378.  
  8379. Submitted-by: acmfiu@serss0.fiu.edu (ACMFIU)
  8380.  
  8381. I'm working on a UNIX shell for the Apple IIgs and would like to make it
  8382. POSIX conformant, if there is a shell for it. I know nothing about this
  8383. standard so if someone can direct me as to where to get a definition of
  8384. the shell that POSIX is defining i'd appreciate it.
  8385.  
  8386. albert
  8387.  
  8388. Volume-Number: Volume 22, Number 127
  8389.  
  8390. From jsq@cs.utexas.edu  Mon Feb 18 13:26:17 1991
  8391. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  8392.     id AA14105; Mon, 18 Feb 91 13:26:17 -0500
  8393. Received: by cs.utexas.edu (5.64/1.94) 
  8394. From: jason@cnd.hp.com (Jason Zions)
  8395. Newsgroups: comp.std.unix
  8396. Subject: Ballot groups and mailing lists
  8397. Message-Id: <17972@cs.utexas.edu>
  8398. Sender: jsq@cs.utexas.edu
  8399. Organization: Hewlett Packard, Information Networks Group
  8400. X-Submissions: std-unix@uunet.uu.net
  8401. Date: 17 Feb 91 20:26:37 GMT
  8402. Reply-To: std-unix@uunet.UU.NET
  8403. To: std-unix@uunet.UU.NET
  8404.  
  8405. Submitted-by: jason@cnd.hp.com (Jason Zions)
  8406.  
  8407. I've received several queries in the last few days as to how one might join
  8408. a ballot group or get on a mailing list for an IEEE TCOS working group
  8409. (POSIX et al). I think it's probably of sufficiently general interest that
  8410. posting it to the mailing list as a whole is worthwhile.
  8411.  
  8412. To join balloting groups for proposed IEEE TCOS standards (1003.*, 1201.*,
  8413. 1224.*, 1238.*) you must become a member of the IEEE TCOS Standards
  8414. Subcommittee. Joining the TCOS-SS will not itself place you in any ballot
  8415. groups, but will cause Invitations to join forming ballot groups to be sent
  8416. to you. You cannot join a ballot group which has already "closed". Ballot
  8417. groups are generally "open" between 3 and 6 months. When writing, you should
  8418. probably inquire as to which ballot groups are still forming (i.e. open).
  8419.  
  8420. The sole prerequisite for membership is membership in either the IEEE itself
  8421. or the IEEE Computer Society. To join TCOS-SS, please write to:
  8422.  
  8423. Computer Society Secretariat
  8424. IEEE Standards Office
  8425. 445 Hoes Lane
  8426. Piscataway, NJ  08855
  8427.  
  8428. Give your name/address/phone&fax/e-mail addr and IEEE or IEEE-CS membership
  8429. number. Also, retain a copy of your application for your own records. You
  8430. should receive confirmation from the IEEE within 2-3 weeks; if you do not,
  8431. start looking into it.
  8432.  
  8433.  - - -
  8434.  
  8435. Belonging to the ballot group will only cause you to receive formally-
  8436. balloted drafts. To obtain information on joining working group mailing
  8437. lists, which contain interim drafts and other working documents, please
  8438. direct your inquiry to:
  8439.  
  8440. [[ Editor - please check the following address. I think Lisa's office is the
  8441. correct one; if so, the address is correct. I know writing to NAPS directly
  8442. is not the approved way of doing this. Help! ]]
  8443.  
  8444. Lisa Granoien
  8445. IEEE Computer Society
  8446. 1730 Massachusettes Avenue NW
  8447. Washington DC  20036
  8448. Fax: +1 (202) 728-9614
  8449.  
  8450. Be aware that mailing list membership entails a charge based on the cost of
  8451. reproduction and distribution of the materials subscribed to; monies are
  8452. required up-front and costs are dedcuted from your balance as time goes on.
  8453. Additional details are included in the mailing list application form.
  8454.  
  8455.  - - -
  8456. Regards,
  8457.  
  8458. Jason Zions
  8459. Chair, IEEE P1003.8 POSIX Transparent File Access
  8460.  
  8461.  
  8462. Volume-Number: Volume 22, Number 128
  8463.  
  8464. From jsq@cs.utexas.edu  Mon Feb 18 13:31:41 1991
  8465. Received: from cs.utexas.edu by uunet.UU.NET (5.61/1.14) with SMTP 
  8466.     id AA15704; Mon, 18 Feb 91 13:31:41 -0500
  8467. Received: by cs.utexas.edu (5.64/1.94) 
  8468. From: jsq@tic.com (John S. Quarterman)
  8469. Newsgroups: comp.std.unix
  8470. Subject: Ballot groups and mailing lists
  8471. Message-Id: <17973@cs.utexas.edu>
  8472. References: <17972@cs.utexas.edu>
  8473. Sender: jsq@cs.utexas.edu
  8474. X-Submissions: std-unix@uunet.uu.net
  8475. Date: 18 Feb 91 18:30:53 GMT
  8476. Reply-To: std-unix@uunet.UU.NET
  8477. To: std-unix@uunet.UU.NET
  8478.  
  8479. Submitted-by: jsq@tic.com (John S. Quarterman)
  8480.  
  8481. Moderator!:  
  8482.  
  8483. >[[ Editor - please check the following address. I think Lisa's office is the
  8484. >correct one; if so, the address is correct. I know writing to NAPS directly
  8485. >is not the approved way of doing this. Help! ]]
  8486.  
  8487. I don't know what editor you're referring to.
  8488.  
  8489. The address you give resembles the one recommended at the end of the
  8490. Introduction to IEEE Std 1003.1-1990 for the IEEE/CS Standards Status Report,
  8491. which lists all current IEEE/CS standards projects:
  8492.  
  8493.     IEEE Computer Society
  8494.     1730 Massachusetts Avenue NW
  8495.     Washington DC  20036-1903
  8496.     Fax: +1 (202) 728-9614
  8497.  
  8498. That Introduction indicates that those interested in participating in TCOS
  8499. working groups should send their name, address, and telephone number to
  8500.  
  8501.     Secretary
  8502.     IEEE Standards Board
  8503.     Institute of Electrical and Electronics Engineers, Inc.
  8504.     P.O. Box 1331
  8505.     445 Hoes Lane
  8506.     Piscataway, NJ  08855-1331
  8507.  
  8508. and should ask that their message be forwarded to the chair of the
  8509. specific group they're interested in.
  8510.  
  8511. You don't have to join a balloting group to get mailings, nor to
  8512. attend Working Group meetings.
  8513.  
  8514. Descriptions of every TCOS group, with chairs, may be found in:
  8515.  
  8516.     Smith, Susanne W., and Quarterman, John S.,
  8517.     ``Open Systems Standards Resource Guide,''
  8518.     UNIX Technology Advisor, vol. 2, no. 8,
  8519.     pp. 12-15, MYOB, Hollis, NH, August 1990.
  8520.  
  8521. Similar information appears in the postings that the same two authors
  8522. sometimes make to USENET, and in a printed calendar.  Those postings
  8523. will probably reappear when we get sufficient time from working on
  8524. other (paying) projects.
  8525.  
  8526. The simple answer that I usually give is to contact the TCOS-SS chair,
  8527. Jim Isaak <isaak@decvax.dec.com>, and let him distribute to the appropriate
  8528. committee chair.  He hasn't complained yet.  :-)
  8529.  
  8530. --
  8531. John S. Quarterman
  8532. Texas Internet Consulting    jsq@tic.com    tel: +1-512-320-9031
  8533. 701 Brazos, Suite 500      uunet!longway!jsq    fax: +1-512-320-5821
  8534. Austin, TX 78701
  8535.  
  8536. Volume-Number: Volume 22, Number 129
  8537.  
  8538. From jsq@cs.utexas.edu  Sat Feb 23 15:36:00 1991
  8539. Received: by uunet.UU.NET with UUCP (5.61/UUNET-primary-gateway)
  8540.     id AA29073; Sat, 23 Feb 91 15:36:00 -0500
  8541. Received: by cs.utexas.edu (5.64/1.95) 
  8542. From: oldman@miso.rtp.dg.com (Dan Oldman)
  8543. Newsgroups: comp.compilers,comp.lang.c++,comp.lang.c,comp.lang.fortran,comp.std.unix,comp.unix.wizards
  8544. Subject: UI Programming Languages SIG
  8545. Keywords: debug, linker, design
  8546. Message-Id: <18089@cs.utexas.edu>
  8547. Sender: jsq@cs.utexas.edu
  8548. Reply-To: Dan Oldman <oldman@dg-rtp.dg.com>
  8549. Followup-To: comp.compilers
  8550. Organization: Data General Corporation, Research Triangle Park, NC
  8551. X-Submissions: std-unix@uunet.uu.net
  8552. Date: 19 Feb 91 17:46:37 GMT
  8553. To: std-unix@uunet.UU.NET
  8554.  
  8555. Submitted-by: oldman@miso.rtp.dg.com (Dan Oldman)
  8556.  
  8557. The UNIX International Programming Languages Special Interest Group (UI
  8558. PLSIG) is an organization of people interested in improving programming
  8559. language tools on UNIX System V release 4 and beyond.
  8560.  
  8561. Our current focus is on expanding and refining the specification of the
  8562. debugger information format which is used by the portable tool set
  8563. (e.g. C compiler, symbolic debugger) in AT&T's System V Release 4 and
  8564. by some other third party software development tools.  This new
  8565. information format is called DWARF.
  8566.  
  8567. In the future we intend to enhance and/or develop specifications for
  8568. DWARF "bindings" for FORTRAN, C++, Modula, and other interesting
  8569. languages, as well as specifications for the kernel and shared library
  8570. manager (RTLD) interface for debugging and core files.  After debugging
  8571. support has advanced to a "maintenance activity" for us, we are
  8572. interested in other areas but have no specific plans.
  8573.  
  8574. The plsig operates via email and about 5-6 meetings per year held at
  8575. facilities provided by volunteer members.  Our next meeting is planned
  8576. for late April at Motorola in Austin, Texas.  People who can't
  8577. physically attend are encouraged to participate via email.  The mailing
  8578. list is quite active and is the vehicle for distributing minutes from
  8579. our meetings and proposed drafts of documents.
  8580.  
  8581. To get on the mailing list, send your name, surface mail address, phone
  8582. number, email address, and fax number if you have one to 
  8583. plsig-request@ui.org.  Specific questions can also be addressed to the
  8584. chairman (Dan Oldman) at "oldman@dg-rtp.dg.com".
  8585.  
  8586. Volume-Number: Volume 22, Number 130
  8587.  
  8588. From jsq@cs.utexas.edu  Sat Feb 23 15:58:10 1991
  8589. Received: by uunet.UU.NET with UUCP (5.61/UUNET-primary-gateway)
  8590.     id AA01516; Sat, 23 Feb 91 15:58:10 -0500
  8591. Received: by cs.utexas.edu (5.64/1.95) 
  8592. From: domo@tsa.co.uk (Dominic Dunlop)
  8593. Newsgroups: comp.std.unix
  8594. Subject: Status of call for new moderator?
  8595. Message-Id: <18090@cs.utexas.edu>
  8596. References: <17525@cs.utexas.edu> <17656@cs.utexas.edu>
  8597. Sender: jsq@cs.utexas.edu
  8598. Reply-To: domo@tsa.co.uk
  8599. Organization: The Standard Answer Ltd.
  8600. X-Submissions: std-unix@uunet.uu.net
  8601. Date: 21 Feb 91 08:28:58 GMT
  8602. To: std-unix@uunet.UU.NET
  8603.  
  8604. Submitted-by: domo@tsa.co.uk (Dominic Dunlop)
  8605.  
  8606. Could we please have a brief update on the status of the search for a
  8607. new moderator for this newsgroup?  Thank you.
  8608. -- 
  8609. Dominic Dunlop
  8610.  
  8611. Volume-Number: Volume 22, Number 131
  8612.  
  8613. From jsq@cs.utexas.edu  Thu Feb 28 09:52:19 1991
  8614. Received: by uunet.UU.NET with UUCP (5.61/UUNET-primary-gateway)
  8615.     id AA01461; Thu, 28 Feb 91 09:52:19 -0500
  8616. Received: by cs.utexas.edu (5.64/1.95) 
  8617. From: karish@mindcraft.com (Chuck Karish)
  8618. Newsgroups: comp.std.unix
  8619. Subject: New moderator: speak now...
  8620. Message-Id: <18184@cs.utexas.edu>
  8621. References: <17525@cs.utexas.edu> <17656@cs.utexas.edu> <18090@cs.utexas.edu>
  8622. Sender: jsq@cs.utexas.edu
  8623. Organization: Mindcraft, Inc.
  8624. X-Submissions: std-unix@uunet.uu.net
  8625. Date: 26 Feb 91 20:23:20 GMT
  8626. Reply-To: std-unix@uunet.UU.NET
  8627. To: std-unix@uunet.UU.NET
  8628.  
  8629. Submitted-by: karish@mindcraft.com (Chuck Karish)
  8630.  
  8631. After withdrawals from candidacy by all the other volunteers,
  8632. Sean Eric Fagan (seanf@sco.com) is the provisional replacement
  8633. moderator for com.std.unix.
  8634.  
  8635. If there's any objection to simply accepting him as the new moderator
  8636. by acclamation, please speak up now, either by posting or by E-mail to
  8637. me (karish@mindcraft.com).  If I don't hear anything within a week of
  8638. the time I see this posting come back from John, I'll send an
  8639. announcement to news.announce.newgroups that the reins have been
  8640. shifted.
  8641.  
  8642. One of the other volunteers has expressed concern about perceptions of
  8643. possible conflict of interest, in that Sean is an employee of a major
  8644. UNIX vendor.
  8645.  
  8646. I have several answers to this concern.
  8647.  
  8648. First, the idea that anyone can be truly objective about anything is a
  8649. polite fiction at best.  We all try to be fair, and a good-faith effort
  8650. in this direction is all we can hope for.  If anyone thinks the
  8651. moderator is showing bias, USENET offers plenty of channels to express
  8652. dissatisfaction, both public and private.
  8653.  
  8654. Second, all of us have our own axes to grind, as users, as vendors, or
  8655. as service providers.  The fact that a particular axe may be sharpened
  8656. by the thought of commercial advantage doesn't make it any more or less
  8657. legitimate than one that comes from a different set of preferences.  I
  8658. suggest that we use the approach that the POSIX committees use:  Every
  8659. participant is assumed to speak for her/himself.  It's assumed that ALL
  8660. participants have something at stake, or they wouldn't bother to do all
  8661. that work.
  8662.  
  8663. Third, Sean has agreed to post some sort of disclaimer cooked up with
  8664. the help of his employer's legal staff.  I hope I don't have to page
  8665. past it too many times; I don't really think it's necessary.
  8666.  
  8667.     Chuck Karish        karish@mindcraft.com
  8668.     Mindcraft, Inc.        (415) 323-9000
  8669.  
  8670. Volume-Number: Volume 22, Number 132
  8671.  
  8672. From jsq@cs.utexas.edu  Fri Mar  1 16:43:46 1991
  8673. Received: by uunet.UU.NET with UUCP (5.61/UUNET-primary-gateway)
  8674.     id AA16952; Fri, 1 Mar 91 16:43:46 -0500
  8675. Received: by cs.utexas.edu (5.64/1.95) 
  8676. From: peter@world.std.com (Peter Salus)
  8677. Newsgroups: comp.std.unix
  8678. Subject: Re: New moderator: speak now...
  8679. Message-Id: <18227@cs.utexas.edu>
  8680. References: <17656@cs.utexas.edu> <18090@cs.utexas.edu> <18184@cs.utexas.edu>
  8681. Sender: jsq@cs.utexas.edu
  8682. Organization: The World @ Software Tool & Die
  8683. X-Submissions: std-unix@uunet.uu.net
  8684. Date: 1 Mar 91 14:37:47 GMT
  8685. Reply-To: std-unix@uunet.UU.NET
  8686. To: std-unix@uunet.UU.NET
  8687.  
  8688. Submitted-by: peter@world.std.com (Peter Salus)
  8689.  
  8690. In article <18184@cs.utexas.edu> karish@mindcraft.com (Chuck Karish) writes:
  8691. >Submitted-by: karish@mindcraft.com (Chuck Karish)
  8692. >
  8693. >After withdrawals from candidacy by all the other volunteers,
  8694. >Sean Eric Fagan (seanf@sco.com) is the provisional replacement
  8695. >moderator for com.std.unix.
  8696. >
  8697. >If there's any objection to simply accepting him as the new moderator
  8698. >by acclamation, please speak up now, either by posting or by E-mail to
  8699. >me (karish@mindcraft.com). 
  8700.  
  8701. I don't object to Sean, I just want to know why.  I earlier posted 
  8702. a request as to the reasoning behind having a moderator at all.
  8703. I received a response citing .wizards as an instance of a group 
  8704. that went out of control.  But I note that the other std groups 
  8705. aren't moderated (e.g. international, c, mumps) and that they have 
  8706. not gone berzerk.  
  8707.  
  8708. Peter
  8709.  
  8710. ------------------------------------------------------
  8711. Note:  The Sun User Group's address is now
  8712.     Suite 315
  8713.     1330 Beacon St.
  8714.     Brookline, MA 02146
  8715. -- 
  8716. The difference between practice and theory in practice is always
  8717. greater than the difference between practice and theory in theory. 
  8718.  
  8719. Volume-Number: Volume 22, Number 133
  8720.  
  8721. From jsq@cs.utexas.edu  Sat Mar  2 17:12:57 1991
  8722. Received: by uunet.UU.NET with UUCP (5.61/UUNET-primary-gateway)
  8723.     id AA01909; Sat, 2 Mar 91 17:12:57 -0500
  8724. Received: by cs.utexas.edu (5.64/1.95) 
  8725. From: gill@boris.mscs.mu.edu (Vijay (Ender))
  8726. Newsgroups: comp.std.unix
  8727. Subject: What are Unix V9 et al. ?
  8728. Message-Id: <18251@cs.utexas.edu>
  8729. Sender: jsq@cs.utexas.edu
  8730. Reply-To: gill@boris.mscs.mu.edu.uucp (Vijay (Ender)
  8731. Organization: Marquette University - Department MSCS
  8732. X-Submissions: std-unix@uunet.uu.net
  8733. Date: 2 Mar 91 15:53:44 GMT
  8734. To: std-unix@uunet.UU.NET
  8735.  
  8736. Submitted-by: gill@boris.mscs.mu.edu.uucp (Vijay (Ender)
  8737.  
  8738. I have seen several references to Unix V{8,9,10} and my interest
  8739. was piqued.  I have the following questions about them.
  8740.  
  8741. 1.    What are they.  Are they the next logical step up from V7?
  8742.  
  8743. 2.    Are they any good?
  8744.  
  8745. 3.    Are they only for research in Universities or are they available
  8746.         commercially?
  8747.  
  8748. 4.    What, if any, use are they?
  8749.  
  8750. Please e-mail and I will summarize.
  8751.  
  8752. cheers
  8753. -dicky gill (Violator)
  8754. -gill@boris.mscs.mu.edu
  8755.  
  8756. Volume-Number: Volume 22, Number 134
  8757.  
  8758. From jsq@cs.utexas.edu  Sun Mar  3 10:25:18 1991
  8759. Received: by uunet.UU.NET with UUCP (5.61/UUNET-primary-gateway)
  8760.     id AA21802; Sun, 3 Mar 91 10:25:18 -0500
  8761. Received: by cs.utexas.edu (5.64/1.95) 
  8762. From: andrew@alice.att.com (Andrew Hume)
  8763. Newsgroups: comp.std.unix
  8764. Subject: Re: What are Unix V9 et al. ?
  8765. Summary: a brief note on research unix
  8766. Message-Id: <18262@cs.utexas.edu>
  8767. References: <18251@cs.utexas.edu>
  8768. Sender: jsq@cs.utexas.edu
  8769. Organization: AT&T Bell Laboratories, Murray Hill NJ
  8770. X-Submissions: std-unix@uunet.uu.net
  8771. Date: 3 Mar 91 13:28:50 GMT
  8772. Reply-To: std-unix@uunet.UU.NET
  8773. To: std-unix@uunet.UU.NET
  8774.  
  8775. Submitted-by: andrew@alice.att.com (Andrew Hume)
  8776.  
  8777.     there have been several snippets on research unix over the last year
  8778. or so but a quick summary would not be amiss. Unix V* refers strictly to
  8779. editions of the manual; of course, there are corresponding versions of the
  8780. system but rarely did anyone go to the trouble of making a distribution
  8781. tape (one was done for V8). The versions (and highlights) are
  8782.     8th Edition (Feb, 85): streams, much networking (mostly datakit),
  8783. remote filesystem (wienberger's), Blit software and support.
  8784.     9th Edition (Sep 86): cleanup of 8th Edition, manual MUCH improved,
  8785. libraries and source cleaned and trimmed. Much improved networking, including
  8786. IP and better text processing (monk, prefer, vtbl).
  8787.     10th Edition (Oct 89): 20th anniversary edition! This edition included
  8788. both volumes; the 2nd volume (supporting documents) was heavily revised
  8789. and enlarged. Both volumes are available as a set from Saunders for $45 in the US
  8790. (i am working with Saunders in Canada on the price there). Code highlights
  8791. include a sensible mailer scheme (upas), simplified networking, more
  8792. specialised programs such os OCR readers, protocol verification tools,
  8793. better windowing software (including the editor sam) and a host of
  8794. gradual improvements to older programs.
  8795.  
  8796.     Any enquiries about Research Unix can be sent to me
  8797. (andrew@research.att.com) or my department head, Dennis Ritchie
  8798. (dmr@research.att.com). It may be possible for educational places
  8799. to get a 10th edition tape; if you are interested, contact dennis.
  8800. Also note that educational people interested in using Plan 9,
  8801. an alternative newer distributed operating system developed in
  8802. our Center by Pike, Presotto, Thompson, Trickey and others,
  8803. should contact Rob Pike (rob@research.att.com) for details.
  8804.  
  8805. Volume-Number: Volume 22, Number 135
  8806.  
  8807. From jsq@cs.utexas.edu  Mon Mar  4 15:26:18 1991
  8808. Received: by uunet.UU.NET with UUCP (5.61/UUNET-primary-gateway)
  8809.     id AA20237; Mon, 4 Mar 91 15:26:18 -0500
  8810. Received: by cs.utexas.edu (5.64/1.95) 
  8811. From: jsq@tic.com (John S. Quarterman)
  8812. Newsgroups: comp.std.unix
  8813. Subject: Re: New moderator: speak now...
  8814. Message-Id: <18289@cs.utexas.edu>
  8815. References: <17525@cs.utexas.edu> <17656@cs.utexas.edu> <18090@cs.utexas.edu> <18184@cs.utexas.edu>
  8816. Sender: jsq@cs.utexas.edu
  8817. Organization: Texas Internet Consulting, Austin, Texas 78701
  8818. X-Submissions: std-unix@uunet.uu.net
  8819. Date: 4 Mar 91 20:22:16 GMT
  8820. Reply-To: std-unix@uunet.UU.NET
  8821. To: std-unix@uunet.UU.NET
  8822.  
  8823. Submitted-by: jsq@tic.com (John S. Quarterman)
  8824.  
  8825. The first article in the newsgroup comp.std.unix (then known as mod.std.unix)
  8826. was posted 25 June 1985.  Members of the IEEE P1003 standards committee
  8827. (there was only one such committee back then) had requested that the new
  8828. newsgroup be moderated to avoid the noise level seen on other newsgroups.
  8829. To date there has been only one moderator, me.  However, I would like to
  8830. thank all those who have served from time to time as guest moderators,
  8831. particularly John B. Chambers and Fletcher Mattox.
  8832.  
  8833. As noted in previous postings, I have decided to retire as moderator.
  8834. Subsequent to my posting of 31 January 1991 calling for volunteers to
  8835. be moderator, six people came forward by the deadline of 15 February
  8836. (and a couple of others said they would volunteer if nobody else
  8837. did).  The last to definitely volunteer by the deadline was Chuck
  8838. Karish, who, by the rules I had stated, then proceeded to determine
  8839. which of the volunteers was to become moderator.  He chose to do this
  8840. by discussions among the volunteers for the position.
  8841.  
  8842. I have been informed by both Chuck and by Sean Eric Fagan that Sean was
  8843. chosen by the withdrawals from candidacy of all the other volunteers.
  8844. Chuck announced this result in his posting to the newsgroup of 26 February.
  8845. He also announced
  8846.  
  8847.     If I don't hear anything within a week of the time I see this
  8848.     posting come back from John, I'll send an announcement to
  8849.     news.announce.newgroups that the reins have been shifted.
  8850.  
  8851. While I have deliberately given no advice as to who should be moderator
  8852. or how the new moderator should run the newsgroup, and I deliberately
  8853. did not participate in the decision process by which Sean was chosen
  8854. from among the six candidates, I would nonetheless like to assert that
  8855. the procedure outlined above was as I had requested.
  8856.  
  8857. I have seen no objections to Sean Eric Fagan being the new moderator of
  8858. comp.std.unix.  Unless I see some or Chuck Karish <karish@mindcraft.com>
  8859. informs me that he has seen some, I will post the final article in
  8860. comp.std.unix Volume 22 before midnight CST Wednesday 6 March 1991.
  8861. Sean Eric Fagan will take over Thursday as moderator of comp.std.unix.
  8862. He is already in the aliases std-unix@uunet.uu.net (postings) and
  8863. std-unix-request@uunet.uu.net (comments), and has apparently decided to
  8864. keep those aliases, so there should be no lost submissions.
  8865.  
  8866. The outgoing moderator hopes the new moderator has a successful newsgroup.
  8867.  
  8868. John S. Quarterman
  8869. jsq@tic.com
  8870. +1-512-320-9031
  8871. fax: +1-512-320-5821
  8872. Texas Internet Consulting
  8873. 701 Brazos Suite 500
  8874. Austin, Texas  78701
  8875.  
  8876. Volume-Number: Volume 22, Number 136
  8877.  
  8878. From jsq@cs.utexas.edu  Mon Mar  4 19:12:15 1991
  8879. Received: by uunet.UU.NET with UUCP (5.61/UUNET-primary-gateway)
  8880.     id AA19215; Mon, 4 Mar 91 19:12:15 -0500
  8881. Received: by cs.utexas.edu (5.64/1.95) 
  8882. From: alex@am.sublink.org (Alex Martelli)
  8883. Newsgroups: comp.unix.shell,comp.std.unix
  8884. Subject: Re: Retaining file permissions
  8885. Keywords: chmod, sed, awk... and good old *cat*!
  8886. Message-Id: <18296@cs.utexas.edu>
  8887. References: <6039@ptsfa.PacBell.COM> <1991Feb22.041826.201@athena.mit.edu> <1991Feb23.234242.812@am.sublink.org> <1991Feb26.153931.27251@athena.mit.edu>
  8888. Sender: jsq@cs.utexas.edu
  8889. Followup-To: comp.std.unix
  8890. Organization: Premiata Famiglia Martelli & Figli
  8891. X-Submissions: std-unix@uunet.uu.net
  8892. Date: 2 Mar 91 15:48:33 GMT
  8893. Reply-To: std-unix@uunet.UU.NET
  8894. To: std-unix@uunet.UU.NET
  8895.  
  8896. Submitted-by: alex@am.sublink.org (Alex Martelli)
  8897.  
  8898. jik@athena.mit.edu (Jonathan I. Kamens) writes:
  8899.     ...
  8900.     (I assert that cat one>two keeps all permission bits on two)
  8901. :You must have a pretty strange version of cat on your system, or a
  8902. :brain-damaged kernel that does not clear the setuid bit when a file
  8903. :is written to.
  8904.  
  8905. It's not the cat-s (I've tried both /bin/cat and /usr/local/gnubin/cat
  8906. and I have the source to the latter so I can check), so it must be
  8907. what you describe as "brain-damage" in the kernel.  Personally, I
  8908. don't see why open() or write() should ever change the file's permission
  8909. bits; sure it allows you to do silly things, but then if you care
  8910. about security you won't keep files that are executable, and world
  8911. writable, at the same time, will you?
  8912. Anyway the allegedly-broken kernel is Interactive 2.2, but I believe
  8913. others will behave similarly; I'll check at work.
  8914.  
  8915. :|> What behavior will Posix.2 mandate?
  8916. :
  8917. :  I believe POSIX mandates that, for security reasons, the setuid and setgid
  8918. :bits on a file should be cleared whenever the file is written to.  If that
  8919. :isn't in the standard, then the standard is broken; then again, we already
  8920. :knew that, so it isn't a surprise.  Further, I would find it very hard to
  8921. :believe that POSIX says that cat is supposed to notice if stdout is a file and
  8922. :do an fstat on it before it writes to it to get the permission bits, and then
  8923. :do an fchmod afterwards to restore them to their initial conditions.
  8924.  
  8925. It would definitely make sense that cat a>b "do the natural thing" - IF
  8926. the kernel must muck with permission bit on write()s to b, then it
  8927. would hardly make sense for cat to have to undo it, and viceversa, if
  8928. the kernel leaves b's permission bits alone, then so should cat 
  8929. (should the SHELL try to change permission bits in the redirected-to
  8930. file before exec'ing cat??? I would DEFINITELY hope not!).  I have
  8931. redirected followups to comp.std.unix since it seems more of a standard
  8932. related question.  So, what DOES Posix say about this (open(), write(),
  8933. cat, shell redirection, and permission bits), and what SHOULD it say?
  8934. -- 
  8935. Alex Martelli - (home snailmail:) v. Barontini 27, 40138 Bologna, ITALIA
  8936. Email: (work:) martelli@cadlab.sublink.org, (home:) alex@am.sublink.org
  8937. Phone: (work:) ++39 (51) 371099, (home:) ++39 (51) 250434; 
  8938. Fax: ++39 (51) 366964 (work only), Fidonet: 332/401.3 (home only).
  8939.  
  8940. Volume-Number: Volume 22, Number 137
  8941.  
  8942. From jsq@cs.utexas.edu  Tue Mar  5 03:26:39 1991
  8943. Received: by uunet.UU.NET with UUCP (5.61/UUNET-primary-gateway)
  8944.     id AA12292; Tue, 5 Mar 91 03:26:39 -0500
  8945. Received: by cs.utexas.edu (5.64/1.95) 
  8946. From: vwayland@isis.cs.du.edu (Vincent B. Wayland)
  8947. Newsgroups: comp.std.unix
  8948. Subject: Where / How to get Posix Documents?
  8949. Keywords: Posix,documents,standards
  8950. Message-Id: <18306@cs.utexas.edu>
  8951. Sender: jsq@cs.utexas.edu
  8952. Reply-To: isis!vwayland@cs.utexas.edu (Vincent B. Wayland)
  8953. Organization: Math/CS, University of Denver
  8954. X-Submissions: std-unix@uunet.uu.net
  8955. Date: 5 Mar 91 05:45:07 GMT
  8956. To: std-unix@uunet.UU.NET
  8957.  
  8958. Submitted-by: vwayland@isis.cs.du.edu (Vincent B. Wayland)
  8959.  
  8960. Where and how does one go about getting copies of the various Posix documents?
  8961. Are they available via email or FTPing?  3 1/2" diskette?  I also mean the
  8962. various draft standards-to-be, too.
  8963.  
  8964. Thanks,
  8965. Vince Wayland
  8966. 215 Cimmaron Way
  8967. Boulder, CO  80303
  8968.  
  8969. (303) 499-9027
  8970.  
  8971. Volume-Number: Volume 22, Number 138
  8972.  
  8973. From jsq@cs.utexas.edu  Wed Mar  6 18:08:45 1991
  8974. Received: by uunet.uu.net with UUCP (5.61/UUNET-primary-gateway)
  8975.     id AA27041; Wed, 6 Mar 91 18:08:45 -0500
  8976. Received: by cs.utexas.edu (5.64/1.95) 
  8977. From: pdb@batserver.cs.uq.oz.au (Peter Barnes)
  8978. Newsgroups: comp.std.unix
  8979. Subject: Thank you, John!
  8980. Summary: Vale!
  8981. Message-Id: <18346@cs.utexas.edu>
  8982. References: <17525@cs.utexas.edu> <17656@cs.utexas.edu> <18090@cs.utexas.edu> <18289@cs.utexas.edu>
  8983. Sender: jsq@cs.utexas.edu
  8984. Reply-To: pdb@batserver.cs.uq.oz.au
  8985. X-Submissions: std-unix@uunet.uu.net
  8986. Date: 5 Mar 91 20:11:16 GMT
  8987. To: std-unix@uunet.uu.net
  8988.  
  8989. Submitted-by: pdb@batserver.cs.uq.oz.au (Peter Barnes)
  8990.  
  8991. John S. Quarterman writes:
  8992. > The first article in the newsgroup comp.std.unix (then known as mod.std.unix)
  8993. > was posted 25 June 1985. [...]
  8994. > To date there has been only one moderator, me.  However, I would like to
  8995. > thank all those who have served from time to time as guest moderators,
  8996. > particularly John B. Chambers and Fletcher Mattox.
  8997. > As noted in previous postings, I have decided to retire as moderator.
  8998.  
  8999. I, and I expect many others on the net, would like to express my thanks to
  9000. John for the work he has done over nearly six years in this newsgroup.
  9001.  
  9002. In that time the group has been valuable in raising public awareness in the
  9003. standards process, providing wide, easy and rapid access to pertinent 
  9004. information, and providing a forum for much valuable discussion of standards
  9005. issues.
  9006.  
  9007. Many people have made contributions to the group, but John has held it
  9008. together.
  9009.  
  9010. Thank you!
  9011.  
  9012. Peter
  9013. -------------------------------------------------------------------------------
  9014. Peter Barnes  pdb@uqcspe.cs.uq.oz.au
  9015. Secretary, AUUG Inc.
  9016.  
  9017. Volume-Number: Volume 22, Number 139
  9018.  
  9019. From jsq@cs.utexas.edu  Wed Mar  6 18:36:16 1991
  9020. Received: by uunet.uu.net with UUCP (5.61/UUNET-primary-gateway)
  9021.     id AA03604; Wed, 6 Mar 91 18:36:16 -0500
  9022. Received: by cs.utexas.edu (5.64/1.95) 
  9023. From: karish@mindcraft.com (Chuck Karish)
  9024. Newsgroups: comp.std.unix
  9025. Subject: Re: Retaining file permissions
  9026. Summary: Changing set-user-id bit on write
  9027. Message-Id: <18349@cs.utexas.edu>
  9028. References: <6039@ptsfa.PacBell.COM> <1991Feb22.041826.201@athena.mit.edu> <1991Feb23.234242.812@am.sublink.org> <1991Feb26.153931.27251@athena.mit.edu> <18296@cs.utexas.edu>
  9029. Sender: jsq@cs.utexas.edu
  9030. Organization: Mindcraft, Inc.
  9031. X-Submissions: std-unix@uunet.uu.net
  9032. Date: 5 Mar 91 23:46:58 GMT
  9033. Reply-To: std-unix@uunet.uu.net
  9034. To: std-unix@uunet.uu.net
  9035.  
  9036. Submitted-by: karish@mindcraft.com (Chuck Karish)
  9037.  
  9038. In article <18296@cs.utexas.edu> alex@am.sublink.org (Alex Martelli) writes:
  9039. >So, what DOES Posix say about this (open(), write(),
  9040. >cat, shell redirection, and permission bits), and what SHOULD it say?
  9041.  
  9042. POSIX.1 clause 5.6.1.2, descriptions of S_ISUID and S_ISGID bits:  "On
  9043. a regular file, this bit should be cleared on any write."
  9044.  
  9045. Note the word "should".  This is a recommendation to implementors, not
  9046. a requirement.
  9047.  
  9048. BSD 4.3 write(2) man page: "If the real user is not the super-user,
  9049. then write() clears the set-user-id bit on a file."
  9050.  
  9051. Interactive man pages for stat(2), write(2), and chmod(2) are silent on
  9052. this issue.
  9053.  
  9054. POSIX.2 is pretty much constrained to accept as valid behavior that's
  9055. allowed/suggested by POSIX.1.  I don't think there are any requirements
  9056. that the utilities second-guess and defeat the file access policies
  9057. that could legitimately be imposed by an underlying POSIX.1 operating
  9058. system.
  9059.  
  9060.     Chuck Karish        karish@mindcraft.com
  9061.     Mindcraft, Inc.        (415) 323-9000
  9062.  
  9063. Volume-Number: Volume 22, Number 140
  9064.  
  9065. From jsq@cs.utexas.edu  Wed Mar  6 18:37:17 1991
  9066. Received: by uunet.uu.net with UUCP (5.61/UUNET-primary-gateway)
  9067.     id AA03922; Wed, 6 Mar 91 18:37:17 -0500
  9068. Received: by cs.utexas.edu (5.64/1.95) 
  9069. From: donn@hpfcrn.fc.hp.com (Donn Terry)
  9070. Newsgroups: comp.std.unix
  9071. Subject: Re: Retaining file permissions
  9072. Keywords: chmod, sed, awk... and good old *cat*!
  9073. Message-Id: <18350@cs.utexas.edu>
  9074. References: <18296@cs.utexas.edu> <18349@cs.utexas.edu>
  9075. Sender: jsq@cs.utexas.edu
  9076. X-Submissions: std-unix@uunet.uu.net
  9077. Date: 6 Mar 91 18:21:22 GMT
  9078. Reply-To: std-unix@uunet.uu.net
  9079. To: std-unix@uunet.uu.net
  9080.  
  9081. Submitted-by: donn@hpfcrn.fc.hp.com (Donn Terry)
  9082.  
  9083. In article <18296@cs.utexas.edu> alex@am.sublink.org (Alex Martelli) writes:
  9084.  
  9085. >It would definitely make sense that cat a>b "do the natural thing" - IF
  9086. >the kernel must muck with permission bit on write()s to b, then it
  9087. >would hardly make sense for cat to have to undo it, and viceversa, if
  9088. >the kernel leaves b's permission bits alone, then so should cat 
  9089. >(should the SHELL try to change permission bits in the redirected-to
  9090. >file before exec'ing cat??? I would DEFINITELY hope not!).  I have
  9091. >redirected followups to comp.std.unix since it seems more of a standard
  9092. >related question.  So, what DOES Posix say about this (open(), write(),
  9093. >cat, shell redirection, and permission bits), and what SHOULD it say?
  9094.  
  9095. POSIX.2 (where cat is discussed) is silent on the subject, because it
  9096. relies on the underlying system behavior, which doesn't have to be
  9097. POSIX.1.  (It could be <your favorite absurd OS name here> as long
  9098. as some specific requirements for minimal similarity to POSIX.1 are met.)
  9099.  
  9100. POSIX.1 says "On a regular file, [the S_ISUID] bit should be cleared
  9101. on any write."  (P102, L684 and 688).  
  9102.  
  9103. Two key things here:  "should" (not "shall") and "write" (not write() in
  9104. italics). 
  9105.  
  9106. "Should" is a recommendation, not a requirement.  Thus, a conforming
  9107. system doesn't have to do it.  This is compromise wording, as some
  9108. existing implementations would not conform if that was a requirement.
  9109. (This is a consequence of the definition of "should".)
  9110.  
  9111. "Write" means any write operation, not specifically the write() system
  9112. call.  (This is a judgement call on my part, and should not be taken
  9113. as in any way official.)
  9114.  
  9115. There are those who would (and did) argue that it's "brain-damaged" to
  9116. clear the bit, and those who would (and did) argue the other way.
  9117.  
  9118. A relevant digression into the use of a standard as a tool for 
  9119. purchasing, and how it fits into this kind of problem.
  9120.  
  9121. If you care, it's perfectly reasonable in a RFP (or any other purchase)
  9122. to specify any "should" as a "shall" (or "shall not").  NIST did that in
  9123. one place in FIPS 151-1.  X/Open has done it in several places.  In the
  9124. long run, if a clear consensus develops that some "should" is always or
  9125. never required, the standard can change to make it a "shall" or "shall
  9126. not".  (Someone has to care enough to make that happen during the
  9127. next revision, but if the consensus is there, it's not hard.)
  9128.  
  9129. When you specify a bunch of options, it can be called a "profile".
  9130. There is work on both de-facto standard profiles (X/Open and NIST
  9131. qualify here) and on formal ones (IEEE 1003.<several>).  Since profiles
  9132. can often be "lighter weight" documents than a typical POSIX standard,
  9133. some of the should/shall issues can be addressed in them more rapidly
  9134. than in the base standards.  (This might be either because the
  9135. marketplace consensus has formed, or that for the narrower market niche
  9136. that the profile addresses, there already is a consensus.)
  9137.  
  9138. In this specific case, the profile for the folks who think not clearing
  9139. the set user ID bit is brain-dead would require a shall; for others
  9140. they could leave it alone, or maybe even require "shall not".
  9141.  
  9142. Sidelight:  Because I work for a vendor, I shudder to think that "shall
  9143. not" would ever actually be required for this case; this makes a problem
  9144. for vendors in that now we have to have another implementation option (or two
  9145. different implementations!).  It also makes problems for users because
  9146. it will cost more to implement the option (OK, not much, but they add
  9147. up) which will be passed on to the user, and the costs of administering
  9148. go up (again, they add up in complexity, probably geometrically).
  9149. Formal profiles (again, such as X/Open or NIST or IEEE) help assure
  9150. consistency in the choice of options, making it easier to lower the cost
  9151. of implementation, which translates into lower costs for the customer.
  9152.  
  9153. Donn Terry
  9154. Chair, IEEE 1003.1
  9155.  
  9156. Speaking only for myself; no part of this should be construed as anything
  9157. but my opinion, and specifically not as the opinion of either IEEE or
  9158. my employer.  (I have to say this to keep IEEE happy; I don't blame
  9159. them for requiring it, given the consequences.)
  9160.  
  9161. Volume-Number: Volume 22, Number 141
  9162.  
  9163. From jsq@cs.utexas.edu  Wed Mar  6 18:37:35 1991
  9164. Received: by uunet.uu.net with UUCP (5.61/UUNET-primary-gateway)
  9165.     id AA03972; Wed, 6 Mar 91 18:37:35 -0500
  9166. Received: by cs.utexas.edu (5.64/1.95) 
  9167. From: peter@world.std.com (Peter Salus)
  9168. Newsgroups: comp.std.unix
  9169. Subject: Re: New moderator: speak now...
  9170. Message-Id: <18352@cs.utexas.edu>
  9171. References: <18090@cs.utexas.edu> <18184@cs.utexas.edu> <18289@cs.utexas.edu>
  9172. Sender: jsq@cs.utexas.edu
  9173. Organization: The World @ Software Tool & Die
  9174. X-Submissions: std-unix@uunet.uu.net
  9175. Date: 6 Mar 91 14:58:15 GMT
  9176. Reply-To: std-unix@uunet.uu.net
  9177. To: std-unix@uunet.uu.net
  9178.  
  9179. Submitted-by: peter@world.std.com (Peter Salus)
  9180.  
  9181. In article <18289@cs.utexas.edu> jsq@tic.com (John S. Quarterman) writes:
  9182. >Submitted-by: jsq@tic.com (John S. Quarterman)
  9183. >
  9184. >The first article in the newsgroup comp.std.unix (then known as mod.std.unix)
  9185. >was posted 25 June 1985.  Members of the IEEE P1003 standards committee
  9186. >(there was only one such committee back then) had requested that the new
  9187. >newsgroup be moderated to avoid the noise level seen on other newsgroups.
  9188. >To date there has been only one moderator, me.  However, I would like to
  9189. >thank all those who have served from time to time as guest moderators,
  9190. >particularly John B. Chambers and Fletcher Mattox.
  9191. >
  9192. >As noted in previous postings, I have decided to retire as moderator.
  9193.  
  9194. As someone who has read nearly every posting in this group since 
  9195. early in 1986, I would like to publically and formally express 
  9196. my gratitude and appreciation for all John has done, for the 
  9197. standards and the UNIX communities.
  9198.  
  9199. John, we will miss you.
  9200.  
  9201. Peter
  9202. -- 
  9203. The difference between practice and theory in practice is always
  9204. greater than the difference between practice and theory in theory. 
  9205.  
  9206. Volume-Number: Volume 22, Number 142
  9207.  
  9208. From jsq@cs.utexas.edu  Wed Mar  6 21:40:33 1991
  9209. Received: by uunet.uu.net with UUCP (5.61/UUNET-primary-gateway)
  9210.     id AA25755; Wed, 6 Mar 91 21:40:33 -0500
  9211. Received: by cs.utexas.edu (5.64/1.95) 
  9212. From: jsq@tic.com (John S. Quarterman)
  9213. Newsgroups: comp.std.unix
  9214. Subject: End of comp.std.unix Volume 22.
  9215. Message-Id: <18357@cs.utexas.edu>
  9216. References: <18184@cs.utexas.edu> <18289@cs.utexas.edu> <18346@cs.utexas.edu> <18352@cs.utexas.edu>
  9217. Sender: jsq@cs.utexas.edu
  9218. Organization: Texas Internet Consulting
  9219. X-Submissions: std-unix@uunet.uu.net
  9220. Date: 7 Mar 91 02:28:49 GMT
  9221. Reply-To: std-unix@uunet.uu.net
  9222. To: std-unix@uunet.uu.net
  9223.  
  9224. Submitted-by: jsq@tic.com (John S. Quarterman)
  9225.  
  9226. This is the end of comp.std.unix Volume 22.
  9227.  
  9228. It is also the last article posted by the old moderator.
  9229. However, despite what a recent posting might lead you to believe,
  9230. I am retiring only from moderating the newsgroup, and not from
  9231. the UNIX, standards, or networking communities.  Nonetheless,
  9232. thanks to those who have sent complimentary messages.
  9233.  
  9234. I checked with Chuck Karish today, and neither he nor I have
  9235. received any objections, so Sean Eric Fagan now becomes the
  9236. moderator of the newsgroup.
  9237.  
  9238. John S. Quarterman
  9239. jsq@tic.com
  9240. +1-512-320-9031
  9241. fax: +1-512-320-5821
  9242. Texas Internet Consulting
  9243. 701 Brazos Suite 500
  9244. Austin, Texas 78701
  9245. U.S.A.
  9246.  
  9247. Volume-Number: Volume 22, Number 143
  9248.  
  9249.