home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / unix / wizards / 4872 < prev    next >
Encoding:
Text File  |  1992-11-24  |  142.7 KB  |  3,645 lines

  1. Path: sparky!uunet!elroy.jpl.nasa.gov!ames!sun-barr!cs.utexas.edu!rutgers!cmcl2!adm!news
  2. From: postmaster@starlab.csc.com (SMTP MAILER)
  3. Newsgroups: comp.unix.wizards
  4. Subject: Mail not delivered yet, still trying
  5. Message-ID: <34251@adm.brl.mil>
  6. Date: 23 Nov 92 23:01:12 GMT
  7. Sender: news@adm.brl.mil
  8. Lines: 3635
  9.  
  10.  
  11.  ----Mail status follows----
  12. Have been unable to send your mail to <DGRAY@STARLAB.CSC.COM>,
  13. will keep trying for a total of eight days.
  14. At that time your mail will be returned.
  15.  
  16.  ----Transcript of message follows----
  17. Date: 22 Nov 92 03:24:00 EST
  18. From: UNIX-WIZARDS@BRL.MIL
  19. Subject: UNIX-WIZARDS Digest  V17#002
  20. To: "DGRAY" <DGRAY@STARLAB.CSC.COM>
  21.  
  22. Return-Path: <unix-wizards-request@sem.brl.mil>
  23. Received: from SEM.BRL.MIL by milo.starlab.csc.com with SMTP ; 
  24.           Sun, 22 Nov 92 03:20:23 EST
  25. Received: from SEM.BRL.MIL by SEM.BRL.MIL id ab25769; 21 Nov 92 7:47 EST
  26. Received: from sem.brl.mil by SEM.BRL.MIL id aa25655; 21 Nov 92 7:29 EST
  27. Date:       Sat, 21 Nov 92 07:29:30 EST
  28. From:       The Moderator (Mike Muuss) <Unix-Wizards-Request@BRL.MIL>
  29. To:         UNIX-WIZARDS@BRL.MIL
  30. Reply-To:   UNIX-WIZARDS@BRL.MIL
  31. Subject:    UNIX-WIZARDS Digest  V17#002
  32. Message-ID:  <9211210729.aa25655@SEM.BRL.MIL>
  33.  
  34. UNIX-WIZARDS Digest          Sat, 21 Nov 1992              V17#002
  35.  
  36. Today's Topics:
  37.                      Re: Keyboard hit in C programs
  38.                  Re: Detecting if running under chroot
  39.                        Re: The Problem with UNIX
  40.       Re: The Problem with UNIX [Includes ANCIENT Usenet traffic]
  41.                        Re: The Problem with UNIX
  42.        Re: >>TAR file on tape distroyed, are files recoverable?<<
  43.                         SCCS ID Keywords problem
  44.                                Re: RPCGEN
  45.                Re: Any TeX (compilation) Gurus out there?
  46.             Problem with Window to Window commands.... HELP!
  47.                         Closing ends of pipe().
  48.                              TTYDEFS Help!
  49.                  Re: HELP! problem with tar PC <-> SUN
  50.         Verbose errors on demand - was Re: The Problem with UNIX
  51.                RESULT: comp.arch.bus.vmebus passes 227:19
  52.                     Re: Does Linux use segmentation?
  53.                            system call write
  54.  
  55. -----------------------------------------------------------------
  56.  
  57. From: walter misar <misar@rbg.informatik.th-darmstadt.de>
  58. Subject: Re: Keyboard hit in C programs
  59. Keywords: Keyboard hit, C programs, UNIX
  60. Date: 10 Nov 92 14:54:17 GMT
  61. Sender: The News System <news@rs2.hrz.th-darmstadt.de>
  62. Nntp-Posting-Host: rbhp69.rbg.informatik.th-darmstadt.de
  63. To:       unix-wizards@sem.brl.mil
  64.  
  65. In article <1dms9iINNa6m@agate.berkeley.edu>, bernt@valois (Bernt Skottun) writes:
  66. > I am in the process of adapting a C program from the PC for
  67. > the UNIX environment (for SUN 3 running SUNOS 4.1.1).
  68. > In this program it is essential that
  69. > the user be able to stop certain parts of the program
  70. > (e.g. an inner loop) by hitting the keyboard (any key
  71. > is fine) while as long as the keyboard is not touched the execution
  72. > of the program will continue un-interupted (thus a procedure
  73. > which requires, or expects, the user to type in a key stroke at certain
  74. > intervals will not do). In the DOS environment
  75. > I have been able to do this with the "kbhit()" function.
  76. > My question is: what is the equivalent function in the UNIX
  77. > environment? or how does one go about creating such a function?
  78. > Any suggestions will be very welcome. Thanks a lot.
  79. > Bernt Skottun, bernt@valois.berkeley.edu 
  80. >
  81.  
  82. Ok, since ^C is an 'any key' you only have to catch the SIGINT you
  83. get if ^C is hit.  
  84.  
  85. #include <signal.h>
  86. signal(SIGINT,function)
  87.  
  88. In function() ( prototyped as void function(void) ) the first call should
  89. be signal(SIGINT,function) because the behavior of SIGINT is reset to default
  90. by the signal-handler.
  91.  
  92. Walter
  93.  
  94. -----------------------------
  95.  
  96. From: Klaus Mueller <mueller@rbg.informatik.th-darmstadt.de>
  97. Subject: Re: Keyboard hit in C programs
  98. Keywords: Keyboard hit, C programs, UNIX
  99. Date: 13 Nov 92 16:18:18 GMT
  100. Sender: The News System <news@rs2.hrz.th-darmstadt.de>
  101. Nntp-Posting-Host: rbhp59.rbg.informatik.th-darmstadt.de
  102. To:       unix-wizards@sem.brl.mil
  103.  
  104.  
  105. In article <1dms9iINNa6m@agate.berkeley.edu>, you write:
  106. > I am in the process of adapting a C program from the PC for
  107. > the UNIX environment (for SUN 3 running SUNOS 4.1.1).
  108. > In this program it is essential that
  109. > the user be able to stop certain parts of the program
  110. > (e.g. an inner loop) by hitting the keyboard (any key
  111. > is fine) while as long as the keyboard is not touched the execution
  112. > of the program will continue un-interupted (thus a procedure
  113. > which requires, or expects, the user to type in a key stroke at certain
  114. > intervals will not do). In the DOS environment
  115. > I have been able to do this with the "kbhit()" function.
  116. > My question is: what is the equivalent function in the UNIX
  117. > environment? or how does one go about creating such a function?
  118. > Any suggestions will be very welcome. Thanks a lot.
  119. > Bernt Skottun, bernt@valois.berkeley.edu 
  120. >  
  121.  
  122. Here is a solution to this problem that not even requires to poll the the
  123. the keyboard. It uses SIGIO to get notified, but the program continues with
  124. the loop after the signalhandler  has returned. So you have to think about 
  125. leaving the loop after execution continues :).
  126.  
  127. I don't know how portable this is, my system is HP-UX. The relevant man-pages 
  128. are: termio(7) and ioctl(5).
  129.  
  130.  
  131. #include <sys/ioctl.h>
  132. #include <unistd.h>
  133. #include <signal.h>
  134. #include <stdio.h>
  135. #include <termio.h>
  136.  
  137. struct termio term_old;
  138.  
  139. void resetfiles(void) {        /* resets all terminalstat we have changed */
  140.     int arg;
  141.  
  142.     arg = 0;
  143.     if (ioctl(STDIN_FILENO, FIOSSAIOSTAT, &arg)==-1) {
  144.         perror("unset async");
  145.         exit(1);
  146.     }
  147.     if (ioctl(STDIN_FILENO, TCSETA, &term_old) == -1) {
  148.         perror("set termios");
  149.         exit(1);
  150.     }
  151. }
  152.  
  153. void handler(int dummy) {    /* handels the SIGIO */
  154.     printf("got it\n");
  155.     resetfiles();    /* clear what we have done */
  156.     exit(0);
  157. }
  158.  
  159. int main (void) {
  160.     int arg;
  161.     struct termio term;
  162.     
  163.     arg = getpid();    /* tell the keyboard _we_ want the signal */
  164.     if (ioctl(STDIN_FILENO, FIOSSAIOOWN, &arg)==-1) { 
  165.     perror("set owner");
  166.     resetfiles();
  167.     exit(1);
  168.     }
  169.  
  170.             /* tell the system we want a _signal_ */
  171.  
  172.     arg = 1;
  173.     if (ioctl(STDIN_FILENO, FIOSSAIOSTAT, &arg)==-1) {
  174.     perror("set async");
  175.     resetfiles();
  176.     exit(1);
  177.     }
  178.  
  179.         /* keep the old stats */
  180.  
  181.     if (ioctl(STDIN_FILENO, TCGETA, &term_old) == -1) {    
  182.     perror("get termio1");
  183.     resetfiles();
  184.     exit(1);
  185.     }
  186.  
  187.         /* and get some stats we can change */
  188.  
  189.     if (ioctl(STDIN_FILENO, TCGETA, &term) == -1) {
  190.     perror("get termio2");
  191.     resetfiles();
  192.     exit(1);
  193.     }
  194.     term.c_lflag &= ~ICANON;          /* get the charcters immediately */
  195.     term.c_cc[VMIN] = (char) 0;        /* no char buffered */
  196.     term.c_cc[VTIME] = (char) 0;    /* and no timeout */
  197.  
  198.         /* use our new settings */
  199.  
  200.     if (ioctl(STDIN_FILENO, TCSETA, &term) == -1) {
  201.         perror("set termios");
  202.         resetfiles();
  203.         exit(1);
  204.     }
  205.  
  206.     signal(SIGIO, handler); /* where to go with the signal */
  207.  
  208.     sleep(20);        /* now let's do something (sleep) */
  209.  
  210.     resetfiles();    /* reset all we changed */
  211. }
  212.  
  213. -- 
  214. Klaus M"uller  (mueller@rbg.informatik.th-darmstadt.de)
  215. IRC: netmage       MUD: loren
  216.  
  217. -----------------------------
  218.  
  219. From: Paul Hite <paul@prcrs.prc.com>
  220. Subject: Re: Detecting if running under chroot
  221. Date: 11 Nov 92 16:11:41 GMT
  222. To:       unix-wizards@sem.brl.mil
  223.  
  224. In article <mark.721121538@coombs>, mark@coombs.anu.edu.au (Mark) writes:
  225. > I was reading some of the security texts on research.att.com and it mentioned
  226. > that it was possible to detect if one was running under a chroot call.
  227. > If the file system is duplicated etc how would you check? Make a massive file
  228. > on the (apparent) root disk (/tmp for instance) and do a 'df' to make sure
  229. > it's the root disk?
  230.  
  231. Well I've played around some public access bbs systems that thew me into a
  232. chroot env.  From a practical standpoint, I quickly noticed how little I could
  233. do.  It just had the "feel" of a chroot environment.  But I guess that you're
  234. looking for a more formal method.  I would examine the inode of the root.  I
  235. think something like "ls -id /" should do it.  But I still say that most
  236. chroot'd environments that I have seen don't really need much effort to
  237. detect.
  238.  
  239. Paul Hite   PRC Realty Systems  McLean,Va   paul@prcrs.prc.com    (703) 556-2243
  240.     "We are trying to bring up an Air Traffic Control display on an X window 
  241.       terminal and there seems to be some problems." -- from comp.windows.x
  242.  
  243. -----------------------------
  244.  
  245. From: Leslie Mikesell <les@chinet.chi.il.us>
  246. Subject: Re: The Problem with UNIX
  247. Date: 11 Nov 92 21:26:12 GMT
  248. To:       unix-wizards@sem.brl.mil
  249.  
  250. In article <id.NEVU.Z2J@ferranti.com> peter@ferranti.com (peter da silva) writes:
  251. >>     Sending binary file should be uuencoded first.
  252. >
  253. >Nope. It should say "mail: Standard input contains NULL characters." And
  254. >abort.
  255.  
  256. I disagree on this one.  It should just work unless you are of the opinion
  257. that computers should not handle arbitrary binary data.  SysVr4 gets
  258. this one right by checking the content before trying to display it but
  259. not before delivering it to the right place.
  260.  
  261. Les Mikesell
  262.   les@chinet.chi.il.us
  263.  
  264. -----------------------------
  265.  
  266. From: Christopher Davis <ckd@eff.org>
  267. Subject: Re: The Problem with UNIX
  268. Date: 11 Nov 92 23:50:14 GMT
  269. Sender: NNTP News Poster <usenet@eff.org>
  270. Followup-To: comp.unix.shell
  271. Nntp-Posting-Host: loiosh.eff.org
  272. To:       unix-wizards@sem.brl.mil
  273.  
  274. [cleaning up followups]
  275. Mike> == Mike Hollander <mike@nttor.uucp> 
  276.  
  277.  Mike> Things that bother me about the command line (I'm using Motorola
  278.  Mike> UNIX System V/68 Release 3.71 running a Korn shell using vi-type
  279.  Mike> command line editing on a VT420), in no particular order:
  280.  
  281.  Mike> 1) It is possible to backspace over the prompt.
  282.  
  283. Get BSD tty drivers or tcsh.
  284.  
  285.  Mike> 2) Running over past the end of the line onto the next line does not 
  286.  Mike>    allow you to backspace back to the previous line, and if you     
  287.  Mike>    backspace at the last column of a line it is possible to miss
  288.  Mike>    a character and therefore not backspace over what you think
  289.  Mike>    you are backspacing over.
  290.  
  291. This might be a termcap issue.  Try tcsh.
  292.  
  293.  Mike> 3) It doesn't seem possible to map the arrow keys on the keyboard
  294.  Mike>    to enable you to press up arrow to get the previous command, or
  295.  Mike>    to use left arrow to move backwards through the line.
  296.  
  297. tcsh.
  298.  
  299.  Mike> 4) It doesn't seem possible to store macros that could be run with
  300.  Mike>    a single keypress.
  301.  
  302. tcsh.
  303.  
  304.  Mike> 5) The function keys don't do anything and cannot be made to do
  305.  Mike>    anything on the command line.
  306.  
  307. tcsh.
  308.  
  309.  Mike> 6) The insert and remove keys cannot be made to place you in insert
  310.  Mike>    mode or remove characters.
  311.  
  312. probably tcsh.  (I don't know, I don't do modes.)
  313.  
  314.  Mike> That's a short list off the top off my head. If anyone has methods
  315.  Mike> to fix these complaints please feel free to respond!
  316.  
  317. Get tcsh. ;)
  318.  
  319. zsh and bash probably fix most or all of these complaints also.
  320. --
  321. Christopher K. Davis      | ``Usenet seems to run much like the Kif (or,
  322. <ckd@eff.org>   EFF #14   |   for the TV generation, Klingon) high command.
  323. System Administrator, EFF |   Whoever takes action and can be heard wins.''
  324. +1 617 864 0665  [CKD1]   |   --Peter da Silva <peter@ferranti.com>
  325.  
  326. -----------------------------
  327.  
  328. From: Marc Unangst <mju@mudos.ann-arbor.mi.us>
  329. Subject: Re: The Problem with UNIX
  330. Date: 12 Nov 92 02:06:09 GMT
  331. To:       unix-wizards@sem.brl.mil
  332.  
  333. In article <1992Nov10.170423.10311@nttor.uucp> mike@nttor.uucp (Mike Hollander) writes:
  334. >1) It is possible to backspace over the prompt.
  335.  
  336. This is either the fault of your tty driver or your shell.  If you get
  337. Bash, you will not be able to backspace over the prompt.  Or, you can
  338. get SVR4 and use the BSD extensions in the tty driver, which includes
  339. the "don't backspace over the prompt" extension.
  340.  
  341. >2) Running over past the end of the line onto the next line does not 
  342. >   allow you to backspace back to the previous line, and if you     
  343. >   backspace at the last column of a line it is possible to miss
  344. >   a character and therefore not backspace over what you think
  345. >   you are backspacing over.
  346.  
  347. Get a different shell.  Bash can implement this by scrolling the
  348. command line horizontally, instead of wrapping it to the next line.  I
  349. believe Bash also supports reverse-backspacing, but you need to make
  350. sure your terminfo definition is correctly set up to handle wrapping
  351. at column 80.
  352.  
  353. >3) It doesn't seem possible to map the arrow keys on the keyboard
  354. >   to enable you to press up arrow to get the previous command, or
  355. >   to use left arrow to move backwards through the line.
  356.  
  357. Get Bash.  It fixes this problem with ksh.
  358.  
  359. >4) It doesn't seem possible to store macros that could be run with
  360. >   a single keypress.
  361.  
  362. Dunno if Bash can handle this.  It probably can, but I haven't looked
  363. into it because I never needed it.  You can always make an alias or
  364. shell function to run frequently-used commands in one or two
  365. characters.
  366.  
  367. >5) The function keys don't do anything and cannot be made to do
  368. >   anything on the command line.
  369.  
  370. See the generic "I can't rebind my keyboard" answer.
  371.  
  372. >6) The insert and remove keys cannot be made to place you in insert
  373. >   mode or remove characters.
  374.  
  375. This is fixed by using a modeless editor, like Emacs.  I suppose you
  376. could always rebind ESC to INS and "x" to RMV, but that still doesn't
  377. fix the root of the problem.  If you use the Emacs editing mode, you
  378. won't need an "insert mode" (since you're always in insert mode), and
  379. you can just rebind delete-char to whatever your "remove" key sends.
  380.  
  381. FYI, Bash is the GNU Bourne Again Shell.  If it sounds like the be-all
  382. and end-all of shells, well, it is.  (Or at least I think so.  Please,
  383. I don't really want to get into a my-shell-is-better-than-your-shell
  384. flame war...)  It is available from a GNU archive site near you, or
  385. you can get it from prep.ai.mit.edu:/pub/gnu/bash-1.12.tar.Z.
  386.  
  387. -- 
  388. Marc Unangst, N8VRH         | "There are two ways to solve this problem:
  389. mju@mudos.ann-arbor.mi.us   | the hard way, and the easy way.  Let's start
  390.                             | with the hard way."
  391.                             |   - W. Scheider, from a Physics lecture
  392.  
  393. -----------------------------
  394.  
  395. From: Marc Unangst <mju@mudos.ann-arbor.mi.us>
  396. Subject: Re: The Problem with UNIX
  397. Date: 12 Nov 92 02:10:03 GMT
  398. To:       unix-wizards@sem.brl.mil
  399.  
  400. In article <id.NEVU.Z2J@ferranti.com> peter@ferranti.com (peter da silva) writes:
  401. >Just (a) fixing all applications so they call perror on failure, and (b)
  402. >cutting down on the overloading of error messages, would do wonders.
  403.  
  404. Have you looked at SVR4.2 yet?  From what I've seen (which,
  405. admittedly, has not been much), it looks like they've retrofitted onto
  406. all the commands that horrible "UX:program: ERROR: ..." message format
  407. that the LP subsystem uses under earlier versions of System V.  I
  408. really, really wish they would have decided on something different to
  409. use as the standard, but...
  410.  
  411. -- 
  412. Marc Unangst, N8VRH         | "There are two ways to solve this problem:
  413. mju@mudos.ann-arbor.mi.us   | the hard way, and the easy way.  Let's start
  414.                             | with the hard way."
  415.                             |   - W. Scheider, from a Physics lecture
  416.  
  417. -----------------------------
  418.  
  419. From: Andy Harp <harp@breeze.rsre.mod.uk>
  420. Subject: Re: The Problem with UNIX
  421. Date: 12 Nov 92 16:08:06 GMT
  422. X-Disclaimer: Any opinions expressed are my own.
  423. To:       unix-wizards@sem.brl.mil
  424.  
  425. In article <BxKz6B.Gp1@mudos.ann-arbor.mi.us> mju@mudos.ann-arbor.mi.us (Marc Unangst) writes:
  426. >In article <1992Nov10.170423.10311@nttor.uucp> mike@nttor.uucp (Mike Hollander) writes:
  427.  
  428.                Lots of stuff deleted 
  429.  
  430. >>6) The insert and remove keys cannot be made to place you in insert
  431. >>   mode or remove characters.
  432. >
  433. >This is fixed by using a modeless editor, like Emacs.  I suppose you
  434. >could always rebind ESC to INS and "x" to RMV, but that still doesn't
  435. >fix the root of the problem.  If you use the Emacs editing mode, you
  436. >won't need an "insert mode" (since you're always in insert mode), and
  437. >you can just rebind delete-char to whatever your "remove" key sends.
  438. >
  439.  
  440. Presumably he is talking about vi, and you can map these keys to anything
  441. you want (look up the map command in vi)
  442.  
  443. >FYI, Bash is the GNU Bourne Again Shell.  If it sounds like the be-all
  444. >and end-all of shells, well, it is.  (Or at least I think so.  Please,
  445. >I don't really want to get into a my-shell-is-better-than-your-shell
  446. >flame war...)  It is available from a GNU archive site near you, or
  447. >you can get it from prep.ai.mit.edu:/pub/gnu/bash-1.12.tar.Z.
  448.  
  449. Completely agree with you
  450.  
  451. >
  452. >-- 
  453. >Marc Unangst, N8VRH         | "There are two ways to solve this problem:
  454. >mju@mudos.ann-arbor.mi.us   | the hard way, and the easy way.  Let's start
  455. >                            | with the hard way."
  456. >                            |   - W. Scheider, from a Physics lecture
  457.  
  458.  
  459. -- 
  460.  ----------------------------------------------------------------
  461. aharp@hermes.mod.uk       Andrew Harp, DRA Malvern, Gt. Britain     
  462. harpaj@bham.ac.uk         tel  : +44 684 894462
  463. harpaj@bham.ac.uk.eee     DoD #0737
  464.  
  465. -----------------------------
  466.  
  467. From: Eric Eide <eeide%asylum.cs.utah.edu@cs.utah.edu>
  468. Subject: Re: The Problem with UNIX
  469. Date: 12 Nov 92 17:03:39 GMT
  470. To:       unix-wizards@sem.brl.mil
  471.  
  472. Scott Beckstead (scott@yarc.uucp) writes:
  473.  
  474. Scott> Typicaly UNIX imposes far more structure on the user than is desired.  I
  475. Scott> agree an experienced user should be able to recognize and avoid the
  476. Scott> problems [previously mentioned].  What's wrong with the shell catching
  477. Scott> such obvious errors and either reporting them or taking other
  478. Scott> appropriate action (ie correcting them)?  I realize that this will get
  479. Scott> me screamed at by all you guru types that advocate that all shell users
  480. Scott> be rocket scientists or why bother using a computer anyway.  However I
  481. Scott> see no reason NOT to research the subject.  If UNIX could be made more
  482. Scott> user friendly by modifying the shell it might gain more acceptance in
  483. Scott> the general microcomputer market place, GUIs not withstanding.
  484.  
  485. I know of somebody who is doing research in this direction: me.  As part of my
  486. Masters degree I am modifying the C shell to be more tolerant of errors, both
  487. errors in syntax (e.g., typos) and semantics (e.g., inappropriate command line
  488. arguments).  My new shell keeps track of the user's command history in order to
  489. make accurate corrections.
  490.  
  491. I have no hopes to solve all of the shell user interface problems, but I do
  492. hope to solve most of the common errors.  Just by fixing obvious typos my shell
  493. can fix 90% of the command line errors that I (and most people) make on a daily
  494. basis.
  495.  
  496. I agree with Scott: There is no good reason that command shells shouldn't make
  497. more of an effort to understand the user.  Shells obviously can't divine the
  498. user's intentions in all cases, but that's not a good argument for failing to
  499. understand the user's intentions in *all* cases.
  500.  
  501. Other research has been done along similar lines.  The UC help system is a
  502. natural-language UNIX advisor.  I vaguely remember that the Z shell does some
  503. simple typo correction.  And way back in the predawn, Interlisp had a builtin
  504. DWIM facility.
  505.  
  506. --
  507.  -------------------------------------------------------------------------------
  508. Eric Eide          |          University of Utah Department of Computer Science
  509. eeide@cs.utah.edu  | Buddhist to hot dog vendor: "Make me one with everything."
  510.  
  511. -----------------------------
  512.  
  513. From: Jurgen Botz <jbotz@mtholyoke.edu>
  514. Subject: Re: The Problem with UNIX
  515. Date: 12 Nov 92 18:47:42 GMT
  516. Sender: USENET News System <news@mtholyoke.edu>
  517. To:       unix-wizards@sem.brl.mil
  518.  
  519. In article <1452@pacsoft.com> mike@pacsoft.com (Mike Stefanik) writes:
  520. >In an article, boyd@prl.dec.com (Boyd Roberts) writes:
  521. >>The real problem, as Rob has so eloquently put it:
  522. >>
  523. >>    ``Not only is UNIX dead, it's starting to smell really bad.''
  524. >
  525. >I find it amazing that people, apparently in pursuit of some small amount of
  526. >enjoyment, spend their time proclaiming the death of UNIX. This sort of thing
  527. >is really beginning to take on the flavor of the apocalyptic doomsayers (you
  528. >know the type ... [...]
  529.  
  530. I agree.  Heh... Not only are those who keep pronouncing the death of
  531. Unix dead wrong, but their credibility is starting to rot.
  532. --
  533. Jurgen Botz                  |   Internet: JBotz@mtholyoke.edu
  534. Academic Systems Consultant  |     Bitnet: JBotz@mhc.bitnet
  535. Mount Holyoke College        |      Voice: (US) 413-538-2375 (daytime)
  536. South Hadley, MA, USA        | Snail Mail: J. Botz, 01075-0629
  537.  
  538. -----------------------------
  539.  
  540. From: Michael Lemke <michael@chpc.utexas.edu>
  541. Subject: Re: The Problem with UNIX
  542. Date: 12 Nov 92 19:37:07 GMT
  543. To:       unix-wizards@sem.brl.mil
  544.  
  545. In article <EEIDE.92Nov12120339@asylum.cs.utah.edu> eeide%asylum.cs.utah.edu@cs.utah.edu (Eric Eide) writes:
  546. >Scott Beckstead (scott@yarc.uucp) writes:
  547. >
  548. >
  549. >I know of somebody who is doing research in this direction: me.  As part of my
  550. >Masters degree I am modifying the C shell to be more tolerant of errors, both
  551. >errors in syntax (e.g., typos) and semantics (e.g., inappropriate command line
  552. >arguments).  My new shell keeps track of the user's command history in order to
  553. >make accurate corrections.
  554. >
  555. >I have no hopes to solve all of the shell user interface problems, but I do
  556. >hope to solve most of the common errors.  Just by fixing obvious typos my shell
  557. >can fix 90% of the command line errors that I (and most people) make on a daily
  558. >basis.
  559. >
  560.  
  561. Well, fixing typos is neat but it is not the essential problem.  My
  562. main complaint about Unix on the user interface level is that there is
  563. no command line interpreter.  What I mean is that after the shell munged
  564. your command line it is *completely* up to the program to interpret the
  565. command line and there is no system function available to parse even
  566. these `standard' options.  Some programs use one letter chinese (you
  567. know, one character per word) and others (eg, find) use words (-print
  568. -name).  And the real problem then starts when -l changes its meaning
  569. from command to command, some commands need spaces between the option
  570. and the argument, others don't, some take both, yech.  This would all be
  571. solved if there were *one* system function that is used by all programs
  572. instead of having every program duplicate more or less the same
  573. functionality with different success.  And it would be great if you
  574. could abbreviate commands (command completion of some shells it neat
  575. but why is it neccessary in the first place?) and options (no need for
  576. dynamic chinese anymore).
  577.  
  578. >I agree with Scott: There is no good reason that command shells shouldn't make
  579. >more of an effort to understand the user.  
  580.  
  581. Computer:  Calculate the weather forecast for Sunday, Nov 15!
  582.  
  583. Yes, I would appreciate this... :-)
  584.  
  585. >Shells obviously can't divine the
  586. >user's intentions in all cases, but that's not a good argument for failing to
  587. >understand the user's intentions in *all* cases.
  588. >
  589.  
  590. Does AI work now?
  591.  
  592. -- 
  593. Michael Lemke
  594. Astronomy, UT Austin, Texas
  595. (michael@io.as.utexas.edu or UTSPAN::UTADNX::IO::MICHAEL [SPAN])
  596.  
  597. -----------------------------
  598.  
  599. From: Karl Anderson <kanderso@reed.edu>
  600. Subject: Re: The Problem with UNIX
  601. Date: 12 Nov 92 20:47:10 GMT
  602. To:       unix-wizards@sem.brl.mil
  603.  
  604. In article <1992Nov11.194557.16258@yarc.uucp> scott@yarc.UUCP (Scott Beckstead) writes:
  605. >
  606. >  I think this is kinda what he is trying to determine.  Typicaly UNIX
  607. >imposes far more structure on the user than is desired.  I agree an
  608. >experienced user should be able to recognize and avoid the problems
  609. >above.  What's wrong with the shell catching such obvious errors and
  610. >either reporting them or taking other appropriate action (ie correcting
  611. >them).  I realize that this will get me screamed at by all you guru
  612.  
  613. Is there any reason why there can't be another stream for more
  614. user-friendly messages?  We have stdin and stderr, why can't there be
  615. a standard verbose stream as well?  Experienced users could just
  616. direct it to /dev/null , or, to save cpu time, could have a flag that
  617. would disable it altogether.
  618.  
  619. k
  620.  
  621. >Reply to: scott@yarc.uucp     |  
  622.  
  623. -----------------------------
  624.  
  625. From: Eric Eide <eeide%asylum.cs.utah.edu@cs.utah.edu>
  626. Subject: Re: The Problem with UNIX
  627. Date: 12 Nov 92 20:47:22 GMT
  628. To:       unix-wizards@sem.brl.mil
  629.  
  630. Michael Lemke (michael@chpc.utexas.edu) writes:
  631.  
  632. Michael> Well, fixing typos is neat but it is not the essential problem.  My
  633. Michael> main complaint about Unix on the user interface level is that there is
  634. Michael> no command line interpreter.  What I mean is that after the shell
  635. Michael> munged your command line it is *completely* up to the program to
  636. Michael> interpret the command line and there is no system function available
  637. Michael> to parse even these `standard' options.
  638.  
  639. It sounds as if you are proposing the invention of an application-independent
  640. command line parser that does more than just syntactic processing (as provided
  641. by getopt()).  This would definitely be interesting -- but is it really
  642. possible?  What would it look like?  What would the universal meaning of `-l'?
  643.  
  644. If there were such a command line parser, it would certainly reduce the amount
  645. of knowledge that my smart shell requires.  As it is now, I basically have to
  646. describe the syntax of every program that I want to be "smart" about.  The
  647. shell is an unusual program in the sense that most of its "command set" is
  648. implemented by entities that have no real connection to the shell itself.  And
  649. obviously, it's hard to be smart about things you know nothing about :-).  For
  650. this reason I've sometimes thought that I made a poor choice in deciding to
  651. make a "smart shell" for my thesis.  But on the other hand, the shell is the
  652. most commonly used program with a command line interface, so perhaps a "smart
  653. csh" is much more valuable that a "smart ftp."
  654.  
  655. Michael> Some programs use one letter chinese (you know, one character per
  656. Michael> word) and others (eg, find) use words (-print -name).  And the real
  657. Michael> problem then starts when -l changes its meaning from command to
  658. Michael> command, some commands need spaces between the option and the
  659. Michael> argument, others don't, some take both, yech.  This would all be
  660. Michael> solved if there were *one* system function that is used by all
  661. Michael> programs instead of having every program duplicate more or less the
  662. Michael> same functionality with different success.
  663.  
  664. If I understand you correctly, you're basically making a call for standard
  665. syntax.  I'm all for it.  Now as for the standard semantics (e.g., the
  666. universal interpretation of `-l'), that's definitely up in the air.
  667.  
  668. Michael> Does AI work now?
  669.  
  670. You're begging the question of whether or not AI ever worked.  For a suitable
  671. definition of AI, AI has always worked :-).
  672.  
  673. --
  674.  -------------------------------------------------------------------------------
  675. Eric Eide          |          University of Utah Department of Computer Science
  676. eeide@cs.utah.edu  | Buddhist to hot dog vendor: "Make me one with everything."
  677.  
  678. -----------------------------
  679.  
  680. From: mat@mole-end.matawan.nj.us
  681. Subject: Re: The Problem with UNIX
  682. Date: 12 Nov 92 22:14:05 GMT
  683. To:       unix-wizards@sem.brl.mil
  684.  
  685. In article <BxKM7p.724@chinet.chi.il.us>, les@chinet.chi.il.us (Leslie Mikesell) writes:
  686. > In article <id.NEVU.Z2J@ferranti.com> peter@ferranti.com (peter da silva) writes:
  687. > >>     Sending binary file should be uuencoded first.
  688.  
  689. > >Nope. It should say "mail: Standard input contains NULL characters." And
  690. > >abort.
  691.  
  692. > I disagree on this one.  It should just work unless you are of the opinion
  693. > that computers should not handle arbitrary binary data.  SysVr4 gets
  694. > this one right by checking the content before trying to display it but
  695. > not before delivering it to the right place.
  696.  
  697. I disagree on this one.  I can't stand the SVr4 mail program's unwillingness
  698. to display a file in which someone has accidentally put ONE backspace or
  699. escape.  And of course there are nroff output files with
  700.   _^hu_^hn_^hd_^he_^hr_^hl_^hi_^hn_^h_^he  in them.
  701.  
  702. This user says `Plugh!'
  703.  
  704. (Really, until we all use some form of BLOB-linked-in-text we'll have this
  705. argument over and over.)
  706. -- 
  707.  (This man's opinions are his own.)
  708.  From mole-end                Mark Terribile
  709.  
  710.  mat@mole-end.matawan.nj.us, Somewhere in Matawan, NJ
  711.  
  712. -----------------------------
  713.  
  714. From: "Antony A. Courtney" <acourtny@unix1.tcd.ie>
  715. Subject: Re: The Problem with UNIX
  716. Date: 12 Nov 92 22:36:08 GMT
  717. Sender: "NN required at ashe.cs.tcd.ie" <usenet@cs.tcd.ie>
  718. Nntp-Posting-Host: unix1.tcd.ie
  719. To:       unix-wizards@sem.brl.mil
  720.  
  721. In <1452@pacsoft.com> mike@pacsoft.com (Mike Stefanik) writes:
  722. >In an article, boyd@prl.dec.com (Boyd Roberts) writes:
  723. >>The real problem, as Rob has so eloquently put it:
  724. >>
  725. >>    ``Not only is UNIX dead, it's starting to smell really bad.''
  726. >
  727. >I find it amazing that people, apparently in pursuit of some small amount of
  728. >enjoyment, spend their time proclaiming the death of UNIX.
  729. > [...]    
  730. >I have heard UNIX to be proclaimed dead and buried for years now.
  731. > [...]
  732. >So, Boyd, if UNIX really is dead, where is the funeral? I would so enjoy
  733. >paying my last respects ...
  734.  
  735. UNIX once referred to a research operating system which was very cleanly
  736. designed on a coherent set of principles, and whose structure was well within
  737. the intellectual grasp of a single human being.
  738.  
  739. There exists a certain class of modern operating systems, all of which are
  740. referred to by the name UNIX.  These operating systems have their origins in
  741. the system I refer to above, but have "enhanced" the original system with lots
  742. of new "features" which you and I find useful (terminal handling, job control,
  743. networking, etc.).  But in the process of adding all of these new "features" to
  744. UNIX, these new operating systems somehow lost the brevity, clarity, simplicity
  745. and structural elegance of that other system once called UNIX.
  746.  
  747. UNIX is dead.  Long live UNIX.
  748.  
  749. [all of the above are obviously purely my own opinions...]
  750.  
  751.     -antony
  752.  
  753. >-- 
  754. >Mike Stefanik  mike@pacsoft.com  ...!uunet!pacsoft!mike  (714) 681-2623
  755. >Pacific Software Group, Riverside, CA
  756. --
  757. ********************************************************************************
  758. * Antony A. Courtney                              Email: acourtny@unix1.tcd.ie *
  759. * Computer Science Department                            antony@george.lbl.gov *
  760. * Trinity College, Dublin, Ireland                Phone: 01+353+1-607389       *
  761.  
  762. -----------------------------
  763.  
  764. From: "Bryan S. So" <so@brownie.cs.wisc.edu>
  765. Subject: Re: The Problem with UNIX
  766. Date: 12 Nov 92 23:18:45 GMT
  767. Sender: The News <news@cs.wisc.edu>
  768. To:       unix-wizards@sem.brl.mil
  769.  
  770. Concerning "cat a b > b", barnett@crdgw1.ge.com writes:
  771.  
  772. >It has been solved. There are at least two solutions:
  773. >    1) Educate the user. After all the system did exactly what
  774. >        the user told it to do.
  775. >    2) in csh/tcsh, do "set noclobber"
  776. >
  777. >grymoire% set noclobber
  778. >grymoire% touch a b
  779. >grymoire% cat a b >b
  780. >b: File exists.
  781. >--
  782. >Bruce Barnett <barnett@crd.ge.com> uunet!crdgw1!barnett
  783.  
  784. No, the above are not solutions.  
  785.  
  786. 1. We should assume some stubborn users cannot be educated.  I
  787.    claim without proof such users exist.
  788.  
  789. 2. set noclobber is not a solution because a solution should
  790.    prepend a to b.  
  791.  
  792. I propose a real solution to this problem.  Change the internal
  793. policy of UNIX, so that when any file is used as both input and
  794. output, like
  795.  
  796.     cat a b > a
  797. or     cat a b > b
  798.  
  799. UNIX should read and buffer all input before opening the output
  800. with "w".
  801.  
  802.  
  803. Bryan
  804.  
  805. -----------------------------
  806.  
  807. From: Rich Kulawiec <rsk@gynko.circ.upenn.edu>
  808. Subject: Re: The Problem with UNIX [Includes ANCIENT Usenet traffic]
  809. Date: 13 Nov 92 00:24:02 GMT
  810. Sender: news@NOC2.DCCS.UPENN.EDU
  811. Nntp-Posting-Host: gynko.circ.upenn.edu
  812. To:       unix-wizards@sem.brl.mil
  813.  
  814. I've included a sharchive at the end of this with the full text of
  815. Don Norman's paper and some comments that various netfolks made at that
  816. time.  If I recall correctly, this was the first instance of a Usenet
  817. forgery -- he claimed that the paper was sent without his knowledge --
  818. and so a couple of the messages deal with that issue rather than
  819. with the points raised in his paper.  I got quite a kick out of
  820. reading these messages again 11 years later; it's kind of interesting
  821. to look back on these with a decade's perspective.
  822.  
  823. By the way, you'll notice a paucity of headers in those old messages;
  824. that might make identifying people difficult.  I believe that "ber"
  825. is Brian Redman, csvax.mark is Mark Horton, jej is James Jones,
  826. nowicki is Bill Nowicki, mo might be Mike O'Brien, and utzoo!henry
  827. is Henry Spencer.
  828.  
  829. In article <1992Nov11.210729.11676@cs.wisc.edu> so@brownie.cs.wisc.edu (Bryan S. So) writes:
  830. >Concerning Don Norman's paper "The Trouble With UNIX", Datamation 27,
  831. >rsk@gynko.circ.upenn.edu (Rich Kulawiec) writes:
  832. >>Norman's paper is (a) a decade out-of-date and (b) extraordinarily
  833. >>inaccurate, as it was when published.  In my opinion, it represents
  834. >>the uninformed rantings of someone who is simply too lazy to read the
  835. >>manuals and therefore should not be using a computer at all.
  836. >
  837. >I agree it's a decade old but can you indicate why it's inaccurate?
  838. >
  839. >To me, some problems like "cat a b > b" are obviously undesirable
  840. >designs and still unsolved after more than a decade.  
  841.  
  842. Nearly every problem that Norman addressed himself to was a function
  843. of the shell, not of Unix.  "cat a b > b" is solvable at the shell
  844. level, should it ever really become necessary to do so.  (I personally
  845. think that people who type that deserve what they get, and that there's
  846. no need to fix it, but I digress.)
  847.  
  848. Let me quote some choice nuggets from his paper and comment on them:
  849.  
  850. DN > I would have written a program that listed the  contents  onto
  851. DN > the  terminal,  perhaps  stopping  every 24 lines if you had
  852. DN > signified that you were on a display terminal with only a 24
  853. DN > line  display.   To  the  designers of Unix, however, such a
  854. DN > solution lacks elegance.  Unix has  no  basic  listing  com-
  855. DN > mand,  but  instead you must use a program meant to do some-
  856. DN > thing else.
  857.  
  858. "more" was already around and in widespread use when he wrote this.
  859. In fact, Norman mentions that he's using 4BSD in his paper.
  860.  
  861. DN >     In Unix, if you wanted to list the contents of  a  file
  862. DN >called "HappyDays", you would use the command named "cat":
  863. DN >                       cat HappyDays
  864. DN >Why cat? Why not?  After all, said Humpty Dumpty  to  Alice,
  865. DN >who  is to be the boss, words or us? 
  866.  
  867. The use of an alias, or 1-line shell script, easily provides the
  868. functionality of "cat" by any name the user desires.
  869.  
  870. DN >     The standard text editor is called Ed.
  871.  
  872. Ding.
  873.  
  874. DN > [...] and  Unix  move  (mv)  and copy (cp) operations will
  875. DN > destroy existing files without any warning.
  876.  
  877. "mv -i".  "cp -i".  Also around when he wrote his paper.
  878.  
  879. DN>      The bad news is that Berkeley Unix  is  jury-rigged  on
  880. DN> top  of regular Unix, so it can only patch up the faults: it
  881. DN> can't remedy them.
  882.  
  883. This belies the contributions of the CSRG team.
  884.  
  885. DN > The listing program is called "more" (as in,
  886. DN > "give  me  more").
  887.  
  888. Ah, so he does know about "more"; then why berate "cat"?
  889.  
  890. DN > A common theme runs through  the  com-
  891. DN > mands: don't be nice to the casual user --  write the system
  892. DN > for the dedicated expert.  The system is a recluse.  It uses
  893. DN > weird  names,  and it won't speak to you, not even if spoken
  894. DN > to.  For system programmers, Unix is a delight.  It is  well
  895. DN > structured,  with  a consistent, powerful philosophy of con-
  896. DN > trol and structure.  My complaint is simple:   why  was  not
  897. DN > the  same  effort  put  into  the design at the level of the user? 
  898.  
  899. Actually, here, he's dead right.  Unix was written for programmers
  900. by programmers, and the biggest mistake we've ever made as a
  901. community was trying to dumb it down so that the average clueless
  902. user could use it.  Let 'em have Macintoshes.  Gimme back "dsw".
  903.  
  904. ---Rsk
  905.  
  906. #    This is a shell archive.
  907. #    Remove everything above and including the cut line.
  908. #    Then run the rest of the file through sh.
  909. #----cut here-----cut here-----cut here-----cut here----#
  910. #!/bin/sh
  911. # shar:    Shell Archiver
  912. #    Run the following text with /bin/sh to create:
  913. #    rumor.shrink
  914. #    rumor.ber
  915. #    rumor.bh
  916. #    rumor.clyde
  917. #    rumor.eps
  918. #    rumor.greg
  919. #    rumor.henry
  920. #    rumor.henry2
  921. #    rumor.jej
  922. #    rumor.jerry
  923. #    rumor.mark
  924. #    rumor.mark2
  925. #    rumor.mo
  926. #    rumor.nowicki
  927. #    rumor.swd
  928. # This archive created: Thu Nov 12 18:58:11 1992
  929. # By:    Rich Kulawiec (GSP Whitewater Slalom Racing Team)
  930. cat << \SHAR_EOF > rumor.shrink
  931. From cincy!duke!decvax!utzoo!datamat!rumor Sat Aug  1 23:37:27 PDT 1981
  932. The Truth about UNIX: fa.unix-wizards
  933.  
  934.  
  935.  
  936.  
  937.  
  938.                    The truth about Unix:
  939.                 The user interface is horrid
  940.  
  941.                       Donald A. Norman
  942.                   Department of Psychology
  943.                             and
  944.                 Program in Cognitive Science
  945.           Center for Human Information Processing
  946.             University of California, San Diego
  947.                  La Jolla, California 92093
  948.                  (to appear in Datamation)
  949.  
  950.      Unix is a highly touted operating system.  Developed at
  951. the  Bell  Telephone Laboratories and distributed by Western
  952. Electric, it has  become  a  standard  operating  system  in
  953. Universities,  and  it promises to become a standard for the
  954. large micro- mini- systems for  home,  small  business,  and
  955. educational setting.  But for all its virtues as a system --
  956. and it is indeed an elegant system -- Unix is a disaster for
  957. the casual user.  It fails both on the scientific principles
  958. of human engineering and even in just plain   common  sense.
  959. The motto of the designers of Unix towards the user seems to
  960. be "let the user beware."
  961.  
  962.      If Unix is really to become a general system,  then  it
  963. has got to be fixed.  I urge correction to make the elegance
  964. of the system design be reflected  as  friendliness  towards
  965. the user, especially the casual user.  I have learned to get
  966. along with the vagaries  of  its  user  interface,  but  our
  967. secretarial staff persists only because we insist.  And even
  968. I, a heavy user of computer systems for 20  years  have  had
  969. difficulties:  copying  the old file over the new, transfer-
  970. ring a file into itself  until  the  system  collapsed,  and
  971. removing  all  the  files from a directory simply because an
  972. extra space was typed in the argument string.  In this arti-
  973. cle  I  review  both the faults of Unix and also some of the
  974. principles  of  Cognitive  Engineering  that  could  improve
  975. things,  not just for Unix, but for computer systems in gen-
  976. eral.  But first, the conclusion;  Unix fails several simple
  977. tests.
  978.  
  979.      Consistency: The command names, language, functions and
  980.           syntax are inconsistent.
  981.  
  982.      Functionality: The command names, formats,  and  syntax
  983.           seem to have no relationship to their functions.
  984.  
  985.      Friendliness: Unix is a recluse, hidden from the  user,
  986.           silent  in  operation.   "No news is good news" is
  987.           its motto, but as a result, the  user  can't  tell
  988.           what  state  the system is in, and essentially, is
  989.           completely out of touch with things.
  990.  
  991.      Cognitive Engineering:  The system does not  understand
  992.  
  993.  
  994.                        August 2, 1981
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.                            - 2 -
  1002.  
  1003.  
  1004.           about  normal  folks,  the everyday users of Unix.
  1005.           Cognitive capabilities are strained  beyond  their
  1006.           limits,  the  lack  of  mnemonic structures places
  1007.           large loads of memory, and the lack of interaction
  1008.           puts  a strain on one's ability to retain mentally
  1009.           exactly what state the system is in at any moment.
  1010.           (Get  distracted  at  the  wrong time and you lose
  1011.           your place -- and maybe your file.)
  1012.  
  1013. What is good about Unix?   The system design, the generality
  1014. of  programs,  the  file  structure,  the job structure, the
  1015. powerful operating system command  language  (the  "shell").
  1016. To  bad  the concern for system design was not matched by an
  1017. equal concern for the human interface.
  1018.  
  1019.  
  1020.  
  1021.      One of the first things you learn  when  you  start  to
  1022. decipher  Unix  is  how  to list the contents of a file onto
  1023. your terminal.  Now this sounds straightforward enough,  but
  1024. in  Unix even this simple operation has its drawbacks.  Sup-
  1025. pose I have a file called "testfile".  I want to see what is
  1026. inside  of  it.   How would you design a system to do it?  I
  1027. would have written a program that listed the  contents  onto
  1028. the  terminal,  perhaps  stopping  every 24 lines if you had
  1029. signified that you were on a display terminal with only a 24
  1030. line  display.   To  the  designers of Unix, however, such a
  1031. solution lacks elegance.  Unix has  no  basic  listing  com-
  1032. mand,  but  instead you must use a program meant to do some-
  1033. thing else.
  1034.  
  1035.      In Unix, if you wanted to list the contents of  a  file
  1036. called "HappyDays", you would use the command named "cat":
  1037.                        cat HappyDays
  1038. Why cat? Why not?  After all, said Humpty Dumpty  to  Alice,
  1039. who  is to be the boss, words or us?  "Cat", short for "con-
  1040. catenate" as in, take file1 and concatenate  it  with  file2
  1041. (yielding  one  file,  with the first part file1, the second
  1042. file2) and put the result on the "standard output" (which is
  1043. usually the terminal):
  1044.                          cat file1 file2
  1045. Obvious right?  And if you have only one file, why cat  will
  1046. put  it  on  the standard output -- the terminal -- and that
  1047. accomplishes the goal (except for those  of  us  with  video
  1048. terminals  who  watch  helplessly as the text goes streaming
  1049. off the display).
  1050.  
  1051.      The Unix designers are rather  fond  of  the  principle
  1052. that  special purpose functions can be avoided by clever use
  1053. of a small set of system primitives.   Their  philosophy  is
  1054. essentially,  don't  make  a special function when the side-
  1055. effects of other functions will do what you want.  But there
  1056. are several reasons why this philosophy is bad;
  1057.  
  1058.  
  1059.  
  1060.                        August 2, 1981
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.                            - 3 -
  1068.  
  1069.  
  1070.      1. A  psychological  principle  is  that  names  should
  1071.           reflect  function, else the names for the function
  1072.           will be difficult to recall;
  1073.  
  1074.      2. Side-effects can be used for virtue,  but  they  can
  1075.           also  have  unwarranted  effects.  Thus, if cat is
  1076.           used unwisely, it will destroy files (more on this
  1077.           in a moment).
  1078.  
  1079.      3. Special functions can do nice things for users, such
  1080.           as  stop  at  the  end  of screens, or put on page
  1081.           headings,  or  transform  non-printing  characters
  1082.           into  printing  ones, or get rid of underlines for
  1083.           terminals that can't do that.
  1084.  
  1085. Cat, of course, won't stop at terminal or  page  boundaries,
  1086. because  if it did that, why that would disrupt the concate-
  1087. nation feature.  But still, isn't it elegant to use cat  for
  1088. listing?   Who  needs  a  print or a list command.  You mean
  1089. "cat" isn't how you would abbreviate  concatenate?  gee,  it
  1090. seems so obvious to us.  Just like
  1091.    _f_u_n_c_t_i_o_n             _U_n_i_x _c_o_m_m_a_n_d _n_a_m_e
  1092. c compiler                      cc
  1093. change working directory        chdir  (cd in Berkeley Unix)
  1094. change password                 passwd
  1095. concatenate                     cat
  1096. copy                            cp
  1097. date                            date
  1098. echo                            echo
  1099. editor                          ed
  1100. link                            ln
  1101. move                            mv
  1102. remove                          rm
  1103. search file for pattern         grep
  1104.  
  1105. Notice the lack of consistency in forming the  command  name
  1106. from  the  function.   Some  names  are formed  by using the
  1107. first two consonants of the function name, unless it is  the
  1108. editor  which  is  abbreviated "ed" and concatenate which is
  1109. "cat" or "date" or "echo" which are not abbreviated at  all.
  1110. Note  how  useful those 2 letter abbreviations are.  See how
  1111. much time and effort is saved typing only 2 letters  instead
  1112. of  --  heaven  forbid  --  4  letters.  So what is a little
  1113. inconsistency among friends, especially when  you  can  save
  1114. almost 400 milliseconds per command.
  1115.  
  1116.      Similar statements apply  to  the  names  of  the  file
  1117. directories.  Unix is a file oriented system, with hierarch-
  1118. ical directory structures, so the directory names  are  very
  1119. important.   Thus,  this  paper  is  being written on a file
  1120. named      "unix"      and       whose       "path"       is
  1121. /csl/norman/papers/CogEngineering/unix.  The name of the top
  1122. directory is "/", and csl, norman, papers, and  CogEngineer-
  1123. ing  are  the  names  of  directories  hierarchically placed
  1124.  
  1125.  
  1126.                        August 2, 1981
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.                            - 4 -
  1134.  
  1135.  
  1136. beneath "/".  Note that the symbol "/" has two meanings: the
  1137. name  of  the  top  level  directory  and  the  symbol  that
  1138. separates levels of the directories.  This is very difficult
  1139. to justify to new users.  And those names: the directory for
  1140. "users" and "mount" are called, of course, "usr" and  "mnt."
  1141. And  there  are  "bin," "lib," and "tmp." (What mere mortals
  1142. might call binary, library, and temp).   Unix loves abbrevi-
  1143. ations,  even  when the original name is already very short.
  1144. To write "user" as "usr" or "temp" as "tmp" saves an  entire
  1145. letter:  a  letter  a day must keep the service person away.
  1146. But Unix is inconsistent;  it doesn't abbreviate  everything
  1147. as   2  or  3  letter commands.  It keeps "grep" at its full
  1148. four letters, when it could have been abbreviated as "gr" or
  1149. "gp".  (What  does  grep mean, you may ask.  "Global REgular
  1150. expression, Print" --  at  least  that's  the  best  we  can
  1151. invent,  the  manual  doesn't  even  try  to  say.  The name
  1152. wouldn't matter if grep were something obscure, hardly  ever
  1153. used, but in fact it is one of the more powerful, frequently
  1154. used string processing commands.  But that takes me from  my
  1155. topic.)
  1156.  
  1157.  
  1158.      Do I dare tell you about "dsw"?  This also turns out to
  1159. be  an important routine.  Suppose you accidentally create a
  1160. file whose name has  a non-printing character  in  it.   How
  1161. can you remove it?  The command that lists the files on your
  1162. directory won't show non-printing characters.   And  if  the
  1163. character  is  a space (or worse, a "*"), "rm"  (the program
  1164. that removes files) won't accept it.   "dsw"  was  evidently
  1165. written  by someone at Bell Labs who felt frustrated by this
  1166. problem and hacked up a quick solution.  Dsw  goes  to  each
  1167. file  in  your  directory  and asks you to respond  "yes" or
  1168. "no," whether to delete the file  or keep it (or  is  it  to
  1169. keep it or delete it -- which action does "yes" mean?).  How
  1170. do you remember dsw?  What on earth does the name stand for?
  1171. The  Unix people won't tell; the manual smiles its wry smile
  1172. of the professional programmer and says "The name dsw  is  a
  1173. carryover  from the ancient past. Its etymology is amusing."
  1174. (The implication, I guess, is that true professionals  never
  1175. need  to  use such a program, but they are allowing it to be
  1176. released for us  novices  out  in  the  real  world.)  Which
  1177. __________________________
  1178. Verification of my charges comes from  the  experiences
  1179. of  the  many users of Unix, and from the modifications
  1180. that other people have been forced to make to the  sys-
  1181. tem.   Thus, the system of Unix I now use is called The
  1182. Fourth Berkeley Edition for  the  Vax,  distributed  by
  1183. Joy,  Babaoglu, Fabry, and Sklower at the University of
  1184. California, Berkeley (henceforth, Berkeley Unix).  They
  1185. provide   a  listing  program  that  provides  all  the
  1186. features I claim a user would want (except  a  sensible
  1187. name  -- but Berkeley Unix even makes it easy to change
  1188. system names to anything you prefer).
  1189.  
  1190.  
  1191.  
  1192.                        August 2, 1981
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.                            - 5 -
  1200.  
  1201.  
  1202. operation takes place if you say  "yes":  why  the  file  is
  1203. deleted  of course.  So if you go through your files and see
  1204. important-file, you nod to yourself and say, yes,  I  better
  1205. keep that one, type in yes, and destroy it forever. Does dsw
  1206. warn you? Of course not.  Does dsw even document itself when
  1207. it starts, to remind you which way is which?  Of course not.
  1208. That would be talkative, and true Unix programmers are never
  1209. talkative.   (Berkeley  Unix, has finally killed dsw, saying
  1210. "This little known,  but  indispensible  facility  has  been
  1211. taken  over...".   That  is a fitting commentary on standard
  1212. Unix: a system that allows an "indispensible facility" to be
  1213. "little known.")
  1214.  
  1215.  
  1216.      The symbol "*" means "glob" (a typical Unix name:   the
  1217. name  tells  you  just what action it does, right?).  Let me
  1218. illustrate with our friend, "cat." Suppose  I  want  to  put
  1219. together   a  set of files named paper.1 paper.2 paper.3 and
  1220. paper.4 into one file.  I can do this with cat:
  1221.      cat paper.1 paper.2 paper.3 paper.4 > newfilename
  1222. Unix provides "glob" to make  the  job  even  easier.   Glob
  1223. means  to  expand the filename by examining all files in the
  1224. directory to find all that fit. Thus, I can redo my  command
  1225. as
  1226.                   cat paper* > newfilename
  1227. where paper* expands to {paper.1 paper.2  paper.3  paper.4}.
  1228. This  is  one  of  the  typical virtues of Unix; there are a
  1229. number of  quite  helpful  functions.   But  suppose  I  had
  1230. decided  to name this new file "paper.all".  After all, this
  1231. is a pretty logical name, I am combining the separate  indi-
  1232. vidual files into a new one that contains "all" the previous
  1233. ones.
  1234.                    cat paper* > paper.all
  1235. Disaster.  I will probably blow  up  the  system.   In  this
  1236. case,  paper*  expands  to  paper.1  paper.2 paper.3 paper.4
  1237. paper.all, and so I am filling up a file from itself:
  1238.  cat paper.1 paper.2 paper.3 paper.4 paper.all > paper.all
  1239. Eventually the file will burst.   Does  nice  friendly  Unix
  1240. check against this, or at least give a warning?  Oh no, that
  1241. would be against the policy of  Unix.   The  manual  doesn't
  1242. bother warning against this either, although it does warn of
  1243. another, related infelicity: "Beware of 'cat a b  >  a'  and
  1244. 'cat  b a > a', which destroy the input files before reading
  1245. them."  Nice of them to tell us.
  1246.  
  1247.  
  1248.      The command to remove all files  that  start  with  the
  1249. word "paper"
  1250.                          rm paper*
  1251. becomes a disaster if a space gets inserted by accident:
  1252.                          rm paper *
  1253. for now the file "paper" is removed, as well as  every  file
  1254. in  the  entire directory (the power of glob).  Why is there
  1255. not a check against such things?  I finally had to alter  my
  1256.  
  1257.  
  1258.                        August 2, 1981
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.                            - 6 -
  1266.  
  1267.  
  1268. version of rm so that when I said to remove files, they were
  1269. actually only moved to a special directory  named  "deleted"
  1270. and  they  didn't  actually  get deleted until I logged off.
  1271. This gave me lots of time for second thoughts and for catch-
  1272. ing  errors.  This also illustrates the power of Unix:  what
  1273. other operating system would make it so easy for someone  to
  1274. completely  change  the  operation  of  a system command for
  1275. their own personal satisfaction?  This also illustrates  the
  1276. evils  of Unix: what other operating system would make it so
  1277. necessary to do so?  (This is no longer necessary  now  that
  1278. we use Berkeley Unix -- more on this in a moment.)
  1279.  
  1280.  
  1281.      The standard text editor is called Ed.  What a  problem
  1282. that  turned  out  to  be.   It was so lovely that I spent a
  1283. whole year using it as an experimental vehicle  to  see  how
  1284. people dealt with such awful things.  Ed's major property is
  1285. his shyness; he doesn't like to talk.  You invoke Ed by say-
  1286. ing,  reasonably  enough,   "ed".  The result is silence: no
  1287. response, no prompt, no message, just silence.   Novice  are
  1288. never sure what that silence means.  What did they do wrong,
  1289. they wonder.  Why doesn't Ed say "thank you, here I am"  (or
  1290. at least produce a prompt character)?  No, not Unix with the
  1291. philosophy that silence is golden.   No response means  that
  1292. everything  is  ok.   If  something  had gone wrong, then it
  1293. would have told you (unless the system died, of course,  but
  1294. that couldn't happen could it?).
  1295.  
  1296.      Then there is the famous append  mode  error.   To  add
  1297. text  into  the buffer, you have to enter "append mode."  To
  1298. do this, one simply types "a",  followed  by   RETURN.   Now
  1299. everything  that  is  typed  on  the  terminal goes into the
  1300. buffer.  (Ed, true to form, does not inform you that  it  is
  1301. now  in  append mode: when you type "a" followed by "RETURN"
  1302. the result is silence, no  message,  no  comment,  nothing.)
  1303. When  you are finished adding text, you are supposed to type
  1304. a line that "contains only a . on it."  This gets you out of
  1305. append  mode.   Want  to  bet  on how many extra periods got
  1306. inserted into text files,  or how many commands got inserted
  1307. into texts, because the users thought that they were in com-
  1308. mand mode and forgot they had not left append mode?  Does Ed
  1309. tell you when you have left append mode?  Hah.  This problem
  1310. is so obvious that even the designers  knew  about  it,  but
  1311. their  reaction  was  to  laugh:  "hah-hah, see Joe cry.  He
  1312. just made the append mode error  again."   In  the  tutorial
  1313. introduction  to  Ed, written at Bell Labs, the authors joke
  1314. about it. Even experienced programmers get screwed this way,
  1315. they  say, hah hah, isn't that funny.  Well, it may be funny
  1316. to the experienced programmer, but it is devastating to  the
  1317. beginning secretary or research assistant or student  who is
  1318. trying to use friendly Unix as a word processor,  or  as  an
  1319. experimental tool, or just to learn about computers.  Anyone
  1320. can use Unix says the programmer, all you need is a sense of
  1321. humor.
  1322.  
  1323.  
  1324.                        August 2, 1981
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.                            - 7 -
  1332.  
  1333.  
  1334.      How good is your sense of humor?  Suppose you have been
  1335. working  on a file for an hour and then decide to quit work,
  1336. exiting Ed  by saying "q".  The problem  is  that  Ed  would
  1337. promptly quit.  Woof, there went your last hour's work. Gone
  1338. forever.  Why, if you would have wanted to save it you would
  1339. have  said  so,  right?   Thank goodness for all those other
  1340. people across the country who immediately rewrote  the  text
  1341. editor  so  that us normal people (who make errors) had some
  1342. other choices besides Ed, editors  that  told  you  politely
  1343. when  they were working, that would tell you if they were in
  1344. append or command mode,  and  that  wouldn't  let  you  quit
  1345. without  saving  your file unless you were first warned, and
  1346. then only if you said you really meant it.
  1347.  
  1348.  
  1349.      I could go on.  As I wrote this paper I sent out a mes-
  1350. sage on our networked message system and asked my colleagues
  1351. to tell me of  their  favorite  peeves.   I  got  a  lot  of
  1352. responses,  but  there  is  no  need to go into detail about
  1353. them; they all have much the same flavor about them,  mostly
  1354. commenting  about  lack  of  consistency,  about the lack of
  1355. interactive feedback.  Thus, there is no standardization  of
  1356. means  to  exit  programs  (and  because the "shell" is just
  1357. another program as far as th system is concerned, it is very
  1358. easy to log yourself off the system by accident).  There are
  1359. very useful pattern matching features (such as the "glob"  *
  1360. function),  but the shell and the different programs use the
  1361. symbols in inconsistent ways.  The Unix  copy  command  (cp)
  1362. and the related C programming language "stringcopy" (strcpy)
  1363. have reversed order of arguments, and  Unix  move  (mv)  and
  1364. copy (cp) operations will destroy existing files without any
  1365. warning.  Many programs take special  "argument  flags"  but
  1366. the  manner of specifying the flags is inconsistent, varying
  1367. from program to program.  As I said, I could go on.
  1368.  
  1369.  
  1370.      The good news is that we don't use  standard  Unix:  we
  1371. use  Berkeley  Unix.   History lists, aliases, a much richer
  1372. and more intelligent set of  system  programs,  including  a
  1373. list  program,  an  intelligent screen editor, a intelligent
  1374. set of routines for interacting with terminals according  to
  1375. their  capabilities,  and  a  job control that allows one to
  1376. stop jobs right in the middle, startup new ones, move things
  1377. from  background  to  foreground  (and  vice versa), examine
  1378. files, and then resume jobs.  And the shell has been  ampli-
  1379. fied  to  be  a more powerful programming language, complete
  1380. with file handling capabilities, if--then--else  statements,
  1381. while,  case,  and  all the other goodies of structured pro-
  1382. gramming  (see the accompanying box on Unix).
  1383.  
  1384.      Aliases are worthy of special comment.  Aliases let the
  1385. user  tailor the system to their own needs, naming things in
  1386. ways they themselves can remember: self-generated names  are
  1387. indeed easier to remember than arbitrary names given to you.
  1388.  
  1389.  
  1390.                        August 2, 1981
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.                            - 8 -
  1398.  
  1399.  
  1400. And aliases allow abbreviations that are meaningful  to  the
  1401. individual,  without burdening everyone else with your clev-
  1402. erness or difficulties.
  1403.  
  1404.      To work on this  paper,  I  need  only  type  the  word
  1405. "unix,"  for  I  have  set up an alias called "unix" that is
  1406. defined to be equal to the correct command to change  direc-
  1407. tories,  combined with a call to the editor (called "vi" for
  1408. "visual" on this system) on the file:
  1409. alias unix "chdir /csl/norman/papers/CogEngineering; vi unix"
  1410. These Berkeley Unix features have proven  to  be  indispens-
  1411. able:  the  people in my laboratory would probably refuse to
  1412. go back to standard Unix.
  1413.  
  1414.      The bad news is that Berkeley Unix  is  jury-rigged  on
  1415. top  of regular Unix, so it can only patch up the faults: it
  1416. can't remedy them.  Grep is not only still grep,  but  there
  1417. is  an  egrep  and  an  fgrep.  But worse, the generators of
  1418. Berkeley Unix have their problems: if Bell Labs  people  are
  1419. smug  and  lean,  Berkeley  people  are cute and overweight.
  1420. Programs are wordy. Special features  proliferate.   Aliases
  1421. --   the  system  for  setting  them  up  is not easy to for
  1422. beginners (who may be the people who need them  most).   You
  1423. have  to  set  them  up  in a file called .cshrc, a name not
  1424. chosen to inspire confidence!  The "period" in the  filename
  1425. means that it is invisible -- the normal method of directory
  1426. listing programs won't show it.  The directory listing  pro-
  1427. gram, ls, comes with 19 possible argument flags, that can be
  1428. used singly or in combinations.  The number of special files
  1429. that  must be set up to use all the facilities is horrendus,
  1430. and they get more complex with each new release from  Berke-
  1431. ley.   It  is vey difficult on new users.  The program names
  1432. are cute  rather  than  systematic.   Cuteness  is  probably
  1433. better  than the lack of meaning of standard Unix, but there
  1434. are be limits.  The listing program is called "more" (as in,
  1435. "give  me  more"),  the program that tells you who is on the
  1436. system is called "finger", and a keyword help file  --  most
  1437. helpful by the way -- is called "apropos."  Apropos! who can
  1438. remember that?  Especially when you need it most. I  had  to
  1439. make  up  an alias called "help" which calls all of the help
  1440. commands Berkeley provides, but  whose  names  I  can  never
  1441. remember (apropos, whatis, whereis, which).
  1442.  
  1443.  
  1444.  
  1445.  
  1446. __________________________
  1447. The system is now so wordy and  so  large  that  it  no
  1448. longer  fits  on  the  smaller machines: our laboratory
  1449. machine, a DEC 11/45, cannot hold the latest release of
  1450. Berkeley  Unix  (even  with a full complement of memory
  1451. and a reasonable amount of disc).  I write  this  paper
  1452. on a Vax.
  1453.  
  1454.  
  1455.  
  1456.                        August 2, 1981
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.                            - 9 -
  1464.  
  1465.  
  1466.      One reader of a draft of this paper -- a  systems  pro-
  1467. grammer   --   complained  bitterly:  "Such  whining,  hand-
  1468. wringing, and general bitchiness will cause most  people  to
  1469. dismiss  it as over-emotional nonsense. ...  The Unix system
  1470. was originally designed by systems programmers for their own
  1471. use and with no intention for others using it. Other hackers
  1472. liked it so much that eventually a lot of them started using
  1473. it.  Word  spread about this wonderful system, etc, the rest
  1474. you probably know. I think  that  Ken  Thompson  and  Dennis
  1475. Ritchie  could  easily shrug their shoulders and say 'But we
  1476. never intended it for other than our personal use.'"
  1477.  
  1478.      All the other users of Unix who  have  read  drafts  of
  1479. this paper agreed with me.  Indeed, their major reaction was
  1480. to forward examples of problems  that  I  had  not  covered.
  1481. This  complaint was unique.  I do sympathize with the spirit
  1482. of the complaint.  He is correct, but  ...    The  "but"  is
  1483. that  the  system  is  nationally  distributed, under strict
  1484. licensing agreements, with a very high charge  to  industry,
  1485. and  nominal  charges  to  educational  institutes.  Western
  1486. Electric doesn't mind getting a profit, but  they  have  not
  1487. attempted  to  worry  about the product.  If Unix were still
  1488. what it started to be, a simple experiment on  the  develop-
  1489. ment  of operating systems, then the complaints I list could
  1490. be made in a more friendly, constructive manner.   But  Unix
  1491. is  more  than  that.   It  is  taken as the very model of a
  1492. proper operating system.  And that is  exactly  what  it  is
  1493. not.
  1494.  
  1495.      In the development of the system aspects of  Unix,  the
  1496. designers  have  done  a  magnificent  job.   They have been
  1497. creative, and systematic.  A common theme runs  through  the
  1498. development  of  programs, and by means of their file struc-
  1499. ture, the development of "pipes" and "redirection"  of  both
  1500. input  and  output,  plus the power of the iterative "shell"
  1501. system-level commands, one can combine system level programs
  1502. into  self-tailored systems of remarkable power with remark-
  1503. able ease.
  1504.  
  1505.      In the development of the  user  interface  aspects  of
  1506. Unix, the designers have been failures.  They have been dif-
  1507. ficult and derisive.  A common theme runs through  the  com-
  1508. mands: don't be nice to the casual user --  write the system
  1509. for the dedicated expert.  The system is a recluse.  It uses
  1510. weird  names,  and it won't speak to you, not even if spoken
  1511. to.  For system programmers, Unix is a delight.  It is  well
  1512. structured,  with  a consistent, powerful philosophy of con-
  1513. trol and structure.  My complaint is simple:   why  was  not
  1514. the  same  effort  put  into  the design at the level of the
  1515. user?  The answer to my complaint is  a  bit  more  complex.
  1516. There  really  are no well known principles of design at the
  1517. level of the user interface.  So, to remedy the harm that  I
  1518. may  have  caused by my heavy-handed sarcasm, let me attempt
  1519. to provide some positive suggestions based upon the research
  1520.  
  1521.  
  1522.                        August 2, 1981
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.                            - 10 -
  1530.  
  1531.  
  1532. that  has  been done by me and by others into the principles
  1533. of the human information processing system.
  1534.  
  1535.  
  1536.      Cognitive Engineering is a new discipline, so new  that
  1537. it  doesn't  exist:   but it ought to.  Quite a bit is known
  1538. about the human information processing system,  enough  that
  1539. we  can specify some basic principles for designers.  People
  1540. are complex entities and can adapt to almost anything.    As
  1541. a  result,  designers  are often sloppy, for they can design
  1542. for themselves without realizing the difficulties that  will
  1543. be faced by other users.  Moreover, there are different lev-
  1544. els of users:  people with a large amount  of  knowledge  of
  1545. the  device  they  are about to use are quite different from
  1546. those who lack a basic understanding.  Experts are different
  1547. than novices.  And the expert who is normally skilled at the
  1548. use of some systems but who has not used it for awhile is at
  1549. a peculiar level of knowledge, neither novice nor expert.
  1550.  
  1551.      The three most important concepts for system design are
  1552. these:
  1553.  
  1554.      1.  Be consistent.  A  fundamental  set  of  principles
  1555.           ought  to  be  evolved  and  followed consistently
  1556.           throughout all phases of the design.
  1557.  
  1558.      2.  Provide the user with  an  explicit  model.   Users
  1559.           develop  mental  models  of the devices with which
  1560.           they interact.  If you do not  provide  them  with
  1561.           one, they will make one up themselves, and the one
  1562.           they make up is apt to be wrong.  Do not count  on
  1563.           the  user fully understanding the mechanics of the
  1564.           device.  Secretaries  and  scientists  alike  will
  1565.           share  a  lack  of knowledge of a computer system.
  1566.           The users are not apt to understand the difference
  1567.           between  the buffer, the working memory, the work-
  1568.           ing files, and the permanent files of a text  edi-
  1569.           tor.   They are apt to believe that once they have
  1570.           typed something into the system, it is permanently
  1571.           in  their  files.   They  are  apt  to expect more
  1572.           intelligence from the  system  than  the  designer
  1573.           knows  is  there.   And  they are apt to read into
  1574.           comments (or the lack of comments) more  than  you
  1575.           have  intended.   Feedback  is  of critical impor-
  1576.           tance, both in helping to establish the  appropri-
  1577.           ate  mental model and in letting the user keep its
  1578.           current state in synchrony with the actual system.
  1579.  
  1580.      3.  Provide mnemonic aids.  Human memory is  a  fragile
  1581.           thing.   Actually,  for  most  purposes it is con-
  1582.           venient to think of human memory as consisting  of
  1583.           two  parts:   a  short-term memory and a long-term
  1584.           memory (modern cognitive psychology is  developing
  1585.           more  sophisticated  notions than this simple two-
  1586.  
  1587.  
  1588.                        August 2, 1981
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.                            - 11 -
  1596.  
  1597.  
  1598.           stage one, but this is still  a  valid  approxima-
  1599.           tion).   Short-term  memory  is,  as the name sug-
  1600.           gests, limited in duration  and  quantity:   about
  1601.           five  to  seven  items is the limit.  Thus, do not
  1602.           expect a user to remember the contents of  a  mes-
  1603.           sage  for  much  longer  than it is visible on the
  1604.           terminal.  Long-term  memory  is  robust,  but  it
  1605.           faces  two difficulties:  getting stuff in so that
  1606.           it is properly organized and getting stuff out, so
  1607.           that  it  can  be  found when needed.  Learning is
  1608.           difficult, unless there is a good  structure,  and
  1609.           it is visible to the learner.  The system designer
  1610.           must provide sensible assistance to  the  user  so
  1611.           that  the  material  can be structured.  There are
  1612.           lots of sensible memory aids that can be provided,
  1613.           but  the  most  powerful  and  sensible  of all is
  1614.           understanding.  Make a system so that  it  can  be
  1615.           understood and the memory follows with ease.  Make
  1616.           the command names ones  that  can  be  understood,
  1617.           where  the  names follow from the function that is
  1618.           desired.  If abbreviations must be used,  adopt  a
  1619.           consistent policy of forming the abbreviations. Do
  1620.           not deviate from the policy, even when it  appears
  1621.           that  it  would be easier for a particular command
  1622.           to deviate:  inconsistency is an  evil.   Remember
  1623.           the  major  problem  of  any large-scale memory is
  1624.           finding the information that is  sought,  even  if
  1625.           the  information  is there someplace.  We retrieve
  1626.           things from  memory  by  starting  off  with  some
  1627.           description  of  the information we seek, use that
  1628.           description to enter their  memory  system  in  an
  1629.           attempt  to match against the desired information.
  1630.           If the designer uses cute names  and  non-standard
  1631.           abbreviations,  our  ability  to  generate a valid
  1632.           description is impaired.  As a result, the  person
  1633.           who  is  not  expert and current in the use of the
  1634.           system is apt to flounder.
  1635.  
  1636.  
  1637.  
  1638.      There are many ways of formatting information on termi-
  1639. nals  to  provide  useful  memory and syntax aids for users.
  1640. With today's modern terminals, it is possible to use  menus,
  1641. multiple  screens  and  windows, highlighted areas, and with
  1642. full duplex systems,  automatic  or  semi-automatic  command
  1643. completion  systems.   The  principles for these systems are
  1644. under active study by a  number  of  groups,  but  none  are
  1645. directly  relevant to my critique of the UNIX operating sys-
  1646. tem.  UNIX is designed specifically so that it can  be  used
  1647. with a wide variety of terminals, including hard copy termi-
  1648. nals.
  1649.  
  1650.      The problem with Unix is more fundamental.   Unix  does
  1651. not provide the user with a systematic set of principles; it
  1652.  
  1653.  
  1654.                        August 2, 1981
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.                            - 12 -
  1662.  
  1663.  
  1664. does not provide a simple, consistent mental model  for  the
  1665. user, consistent not only in the shell but in the major sys-
  1666. tem programs and languages; it does  not  provide  the  user
  1667. with simple memory aids that can be used to learn the system
  1668. structure and then, when  one is not completely  current  in
  1669. the  use  of  a  particular  command,  still  to  be able to
  1670. retrieve (or better, derive)  what  is  needed.   There  are
  1671. essentially  no  user help files, despite the claim that all
  1672. the documentation is on-line via the command named man  (for
  1673. manual, of course).  But "man" requires you to know the name
  1674. of the command you want information about,  although  it  is
  1675. the name that is probably just the information you are seek-
  1676. ing.
  1677.  
  1678.      System designers take note.  Design the system for  the
  1679. person, not for the computer, not even for yourself.  People
  1680. are  also  information  processing  systems,  with   varying
  1681. degrees   of   knowledge,  varying  degrees  of  experience.
  1682. Remember, people's short-term memories are limited in  size,
  1683. and they learn and retrieve things best when there is a con-
  1684. sistent reason for the name, the function, and  the  syntax.
  1685. Friendly systems treat users as intelligent adults who, like
  1686. normal adults, are forgetful, distracted, thinking of  other
  1687. things,  and  not  quite as knowledgeable about the world as
  1688. they themselves would like  to  be.   Treat  the  user  with
  1689. intelligence.   There  is  no need to talk down to the user,
  1690. nor to explain everything.  But give the  user  a  share  in
  1691. understanding by presenting a consistent view of the system.
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718. __________________________
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726. SHAR_EOF
  1727. cat << \SHAR_EOF > rumor.ber
  1728. From uucp Fri Aug 14 11:59:42 1981 remote from pur-ee
  1729. NAharpo.423
  1730. Nfa.unix-wizards
  1731. Npur-ee!cincy!duke!decvax!ucbvax!mhtsa!harpo!ber
  1732. NThu Aug 13 23:31:58 1981
  1733. NYAUF
  1734. NGee whiz.  Bitch bitch bitch.  There is better documentation than
  1735. Nmanual pages provided with your unix system.  The manual page
  1736. Nis a brief description of a command, routine or concept.  It's a starting
  1737. Npoint, and frequently enough.  If you want to know more, look at the source.
  1738. N
  1739. NI think the page for lorder is terrific.  I never use lorder for anything
  1740. Nother than ordering libraries, and to have an example right there is great.
  1741. N
  1742. NAll this crap about UNIX being unfriendly and UNIX lacking documentation
  1743. Nand so on is just that.  UNIX is an operating system.  It's clean, concise,
  1744. Nand clear (at least traditionally).  The beauty of the environment that
  1745. Ngenerally surrounds a unix is that it is easilly growable by the people
  1746. Nthat use it.  If some turkey writes a poor manual page, then unix is blamed.
  1747. NLook at all the crap you have to deal with at IH because they won't permit
  1748. Na public directory for NON-STANDARD this and that.  Well I guess they want
  1749. Nto make sure nobody polutes their system.  That stinks.  But that's the only
  1750. Nway your going to censor it.  At least you can point your finger directly
  1751. Nat the computer center staff.
  1752. N
  1753. NIf you don't like a command or documentation your free to avoid it.
  1754. NOr better yet, improve it!  Unix provides an excellent program development
  1755. Nenvironment.  If you can't figure out what a syntax error is, ask someone.
  1756. NYou'll find dozens of experts in every hallway.  Why?  Because it's relatively
  1757. Neasy to comprehend.
  1758. N
  1759. NPlease don't start restricting creativity with naming standards and style
  1760. Nstandards and how many lines are permitted in a subroutine ...
  1761. NThat's almost tolerable for a project, but unix isn't a number 7 electronic
  1762. Nsump pump.  Just because management feels that 'C' and UNIX are the do-all
  1763. Nto end-all doesn't make it so.  And the attempts to fit that misconception
  1764. Nare ruining a perfectly good environment.
  1765. N
  1766. NWhy don't you send your comments to the MINI-SYSTEM newsletter in the
  1767. Nform of a modification request?  I'ld like to see an OFFICIAL response.
  1768. N
  1769. N(deep breath)
  1770. N
  1771. NNow I feel better.   Let's face it, unix is not geared to the naive user.
  1772. NSo what?  It's great for the knowledgable user.  Why bring the level
  1773. Nof excellence down to least common denominator?  For a profit!  Yeh well
  1774. Nthat's another story.  But let's try to raise the level of the users.
  1775.  
  1776. SHAR_EOF
  1777. cat << \SHAR_EOF > rumor.bh
  1778. From uucp Fri Aug 14 11:39:22 1981 remote from pur-ee
  1779. NAucbvax.2619
  1780. Nfa.unix-wizards
  1781. Npur-ee!cincy!duke!decvax!ucbvax!unix-wizards
  1782. NTue Aug 11 09:14:54 1981
  1783. Nunix on large machines
  1784. N>From BH@SU-AI Tue Aug 11 09:06:37 1981
  1785. NSince KLH doesn't seem to have answered the request for details on
  1786. Nwhy UNIX isn't perfect for big machines, let me try:
  1787. N
  1788. N1.  The file system is flaky.  UCB is working on some aspects of
  1789. Nthis problem but not all.  They seem to be fixing the problems in
  1790. Nwhich a disk block is added to one list BEFORE it's removed from
  1791. Nanother, which is how the file system is compromised by a system
  1792. Ncrash.  But they aren't changing the fact that overwriting a file
  1793. N(a creat with an existing name) deletes the old file right away
  1794. Nrather than on a successful close, nor are they adding an exclusive
  1795. Naccess discipline to the kernel.  (About once a month or so my
  1796. N/etc/passwd disappears when several people try to change their
  1797. Npasswords or create new accounts at once, despite supposedly
  1798. Nfoolproof lock-file code in the user programs.)
  1799. N
  1800. N2.  Debugging facilities leave a lot to be desired.  You can't
  1801. Ntype instuctions in to adb, so it's hard to patch code.  The
  1802. Nsymbol table doesn't know about things like fields in a struct,
  1803. Nso symbolic debugging only partly exists.  You can't use adb
  1804. Nstandalone to poke at a crashed system.
  1805. N
  1806. N3.  Many smaller, easily-fixed things show that UNIX was designed
  1807. Nwith a small machine in mind.  One example: the result of compiling
  1808. N"foo.c" should be called "foo", not "a.out".  Clearly they designed
  1809. Nthe naming convention for a machine without much disk space, in which
  1810. Nit was antisocial to have executable files for more than one program
  1811. Nat a time!
  1812. N
  1813. N4.  There are terminals in the world other than the model 37 TTY.
  1814. NThe UCB termcap package makes it possible for there to be a few
  1815. Nhuge, hairy user programs which support displays.  But there needs
  1816. Nto be kernel support (or the equivalent in shell support, with
  1817. Nall other user level tty interaction funneled through the shell,
  1818. Nwhich would be awkward) for things like automatically dividing the
  1819. Ndisplay screen into pieces for different processes.  The user must
  1820. Nbe able to type escape sequences of some sort to control which piece
  1821. Nhse's typing into right now.  It should be possible to write a
  1822. NTRIVIAL user program which can still fit into this display
  1823. Ndiscipline, e.g., it shoul be able to type a control-L and have that
  1824. Nmean "clear my piece of the screen".
  1825. N
  1826. N5.  Some things aren't written as efficiently as they might be.
  1827. N
  1828. NThere's more, but this will do to begin the discussion.  Mind you,
  1829. NI think UNIX is wonderful in many ways.  Pipes are great, filters
  1830. Nare great, process trees are great, etc.  Many of the flaws in UNIX
  1831. Ncould be fixed in a more or less compatible way.  (Not the one about
  1832. Ndeleting the old file too soon, though.)  (By the way, yes I know
  1833. Nyou can program around it.  The difference between an okay system and
  1834. Na great system is that you don't have to program around the great
  1835. Nsystem, you can program THROUGH it!)  It's not that the future
  1836. Nlarge-computer standard operating system should look nothing like
  1837. NUNIX, it's that the standard large-computer UNIX needs some redesign
  1838. Nbefore it gets ossified as a standard.
  1839. N
  1840. N
  1841. N
  1842.  
  1843. SHAR_EOF
  1844. cat << \SHAR_EOF > rumor.clyde
  1845. From uucp Fri Aug 14 11:59:13 1981 remote from pur-ee
  1846. NAucbvax.2671
  1847. Nfa.unix-wizards
  1848. Npur-ee!cincy!duke!decvax!ucbvax!unix-wizards
  1849. NThu Aug 13 10:01:32 1981
  1850. NReply to 'The Truth about UNIX'
  1851. N>From clyde@UTEXAS-11 Thu Aug 13 09:53:17 1981
  1852. N
  1853. N    While the gentelman has some cogent points, I also believe he
  1854. Nhas permanent brain damage . He is obviously used to DEC systems which
  1855. Nlike to hold lusers hands lest they damage themselves, and I had great
  1856. Ndifficulty reading completly through his treatise (diatribe?) because
  1857. Nof his own inconsistancies and notions.
  1858. N
  1859. N    Oh well, not everyone can be enthusiatic (though I noticed he
  1860. Nwrote his document on a UNIX system, using NROFF -- I wonder how
  1861. Nhe managed to hold his nose with one hand and type with the other) .
  1862. N-------
  1863. N
  1864.  
  1865. SHAR_EOF
  1866. cat << \SHAR_EOF > rumor.eps
  1867. From uucp Fri Aug 14 11:56:06 1981 remote from pur-ee
  1868. NAucbvax.2642
  1869. Nfa.unix-wizards
  1870. Npur-ee!cincy!duke!decvax!ucbvax!unix-wizards
  1871. NTue Aug 11 22:35:29 1981
  1872. NRe: The Truth about UNIX
  1873. N>From Eps@UCLA-SECURITY Tue Aug 11 22:31:19 1981
  1874. NThe date given on this mesage is obviously wrong;
  1875. Nit should have read "Apr 1" instead of "Aug 1."
  1876. N
  1877. N                    --Eric
  1878. N-------
  1879. N
  1880. N
  1881.  
  1882. SHAR_EOF
  1883. cat << \SHAR_EOF > rumor.greg
  1884. From uucp Fri Aug 14 11:43:52 1981 remote from pur-ee
  1885. NAucbvax.2643
  1886. Nfa.unix-wizards
  1887. Npur-ee!cincy!duke!decvax!ucbvax!unix-wizards
  1888. NWed Aug 12 00:12:07 1981
  1889. NYet more truth about Unix.....
  1890. N>From greg@NPRDC Wed Aug 12 00:08:58 1981
  1891. NI almost hesitate to mention this, but Donald A. Norman, the author of
  1892. N"The Truth About Unix", gets mail as "Norman at NPRDC".  (NPRDC is
  1893. Nnotorious enough; a little more won't hurt, right?)  You could send him
  1894. Ncopies of your flames to see if he might respond.  It could be a very
  1895. Ninteresting discussion.....
  1896. N----
  1897. N
  1898.  
  1899. SHAR_EOF
  1900. cat << \SHAR_EOF > rumor.henry
  1901. From cincy!duke!decvax!utzoo!henry Sun Aug  9 23:43:32 1981
  1902. datamat!rumor       : net.general,NET.general
  1903. There is no such system as "datamat" connected to us, nor is there
  1904. any person named "rumor" locally.  Any communication purporting to
  1905. be from such a person at such an address is either garbled or
  1906. fraudulent.  Will somebody PLEASE tell me why we are suddenly getting
  1907. tons of mail addressed to "...!utzoo!datamat!rumor", apparently related
  1908. to an unfriendly evaluation of Unix that I have never heard of and
  1909. that most certainly did not come from here?
  1910.  
  1911. SHAR_EOF
  1912. cat << \SHAR_EOF > rumor.henry2
  1913. From uucp Fri Aug 14 11:56:36 1981 remote from pur-ee
  1914. NAutzoo.885
  1915. Nnet.general,NET.general,fa.unix-wizards
  1916. Npur-ee!cincy!duke!decvax!utzoo!henry
  1917. NThu Aug 13 00:56:51 1981
  1918. Ndatamat!rumor
  1919. NI've now seen a copy of the infamous utzoo!datamat!rumor article
  1920. Nthat has caused all the fuss (I thank decvax!jm for mailing it to
  1921. Nme).  It most definitely DID NOT originate at or pass through
  1922. Ndecvax!utzoo, the University of Toronto Zoology department.  The
  1923. N"PDT" in its postmark strongly suggests a west-coast origin, as
  1924. Ndoes the author's affiliation, and a friend of mine who gets various
  1925. Nthings from the Arpanet community says he has seen "utzoo" on the
  1926. Ncc-list of a document that may even be the same article (we haven't
  1927. Nyet had a chance to compare notes).  THIS IS NOT US.  We may have
  1928. Na first here:  the first real live authentic name conflict on Usenet.
  1929. N[Why me, Lord?]  Would anyone knowing the possible identity of the
  1930. Nother "utzoo" please pass this information on to me?  My friend's
  1931. Ncomments suggest it may be in the Stanford area, the origin of
  1932. Nthe article itself suggests the San Diego area.
  1933. N
  1934. N                    Henry Spencer
  1935. N                    decvax!utzoo!henry
  1936. N                    (416)978-2006 (for now)
  1937. N                    (416)978-6060 (shortly)
  1938.  
  1939. SHAR_EOF
  1940. cat << \SHAR_EOF > rumor.jej
  1941. From uucp Fri Aug 14 11:55:22 1981 remote from pur-ee
  1942. NAihuxl.103
  1943. Nfa.unix-wizards
  1944. Npur-ee!cincy!duke!decvax!ucbvax!ihnss!ihuxl!jej
  1945. NThu Aug 13 20:19:50 1981
  1946. NForced Interaction, and YAUF (Yet Another Unix Flame)
  1947. NSubject: program interface to mail-like commands, Unix documentation
  1948. N
  1949. NI've run into a problem of how to automate commands that, to quote
  1950. NRitchie, "force interaction on the user whether it is wanted or not:"
  1951. Nthe primordial example is mail.
  1952. N
  1953. NIt is not clear how one could write a program that would issue the
  1954. Ncorrect commands to mail to do a particular filtering, such as "save
  1955. Nall mail from John Doe, and delete the rest after printing it offline."
  1956. Nmail expects standard input to direct it, based on what it itself has
  1957. Noutput.
  1958. N
  1959. NAny notions of a technique for writing such programs?
  1960. N
  1961. N----------------------------------------
  1962. N
  1963. NThe item about the Unix user interface was very good--one item
  1964. Nthat the author left out, though, was Unix documentation.
  1965. N
  1966. NMost notorious, I think, are the multitude of manual pages which
  1967. Nsay about the error messages that they are "self-explanatory."
  1968. NI believe that this must mean that the author intends them to be
  1969. Nmeaningful to himself.
  1970. N
  1971. NExamples:
  1972. N
  1973. N1. run-time error messages from C programs--these are QUITE machine
  1974. N    dependent; rather embarassingly so for an OS based on C as
  1975. N    Unix is, one would think.
  1976. N2. C compiler error messages, which describe every syntax error as
  1977. N    "syntax error," which may be enough for Dennis Ritchie, but
  1978. N    not for mere mortals. Another worthless error message is
  1979. N    that which describes the error in terms of compiler internals.
  1980. N    What does that have to do with the constructs the user knows?
  1981. N
  1982. NAlso quite helpful are the error codes one gets from make(1), such as
  1983. N"Error code 100".
  1984. N
  1985. NManual pages are frequently vague and casual: I recall the times when
  1986. NI had to try VERY hard to persuade someone that egrep(1) should treat
  1987. N'$' as just another character when it is not at the end of a regular
  1988. Nexpression, and in another case, that ed(1) permitted nested escaped
  1989. Nparentheses in regular expressions. Formal specifications of options
  1990. Nand accepted commands may not be useful to some readers, but they cer-
  1991. Ntainly are more useful to those who CAN understand them than vague
  1992. NEnglish prose.
  1993. N
  1994. N"Casualness" at times degenerates into flippancy or display of the
  1995. Nauthor's self-estimated cleverness: e.g.
  1996. N
  1997. N    "This brash one-liner intends to build a new library from
  1998. N    existing .o files." (This sentence, with absolutely NO other
  1999. N    explanation, accompanies an example of lorder(1).)
  2000. N
  2001. Nor
  2002. N
  2003. N    "This is an area where experience and informed courage
  2004. N    count for much."
  2005. N
  2006. NWhat good do these do to the reader who is trying to figure out
  2007. Nwhat on EARTH a command does?
  2008. N
  2009. NOptions on commands, in a sense documentation, don't have much chance
  2010. Nto indicate their meaning, since they're typically restricted to one
  2011. Nletter. (Some day I intend to write a phony command page containing
  2012. N
  2013. N    SYNOPSIS
  2014. N        cmd -[abcdefghijklmnopqrstuvwxyz] name ...
  2015. N
  2016. N    OPTIONS
  2017. N        -a    Use the 'a' option.
  2018. Netc.)
  2019. N
  2020. N                James Jones (ihuxl!jej)
  2021.  
  2022. SHAR_EOF
  2023. cat << \SHAR_EOF > rumor.jerry
  2024. From uucp Fri Aug 14 09:31:36 1981 remote from pur-ee
  2025. NAharpo.407
  2026. Nnet.general
  2027. Npur-ee!cincy!duke!mhtsa!harpo!jerry
  2028. NWed Aug 12 10:42:36 1981
  2029. Nforgery
  2030. N
  2031. NI suppose Steve should know better than I do, but why couldn't 
  2032. Na forger just uux (or execute directly)  rnews on a machine
  2033. Nwith the input indicating the item came from datamat!rumor. 
  2034. NIn fact couldn't you drop it in almost anywhere in the net?  
  2035. NPotentially the later can be detected because you will end up with 
  2036. Npeculiar headers (e.g. the item
  2037. Nappears to have passed through a machine twice.)  A little
  2038. Nmore cleverness, and a better understanding of netnews might
  2039. Ncircumvent even that problem, and in any event the only thing
  2040. Nyou could learn would be the machine rnews was executed on.  
  2041.  
  2042. SHAR_EOF
  2043. cat << \SHAR_EOF > rumor.mark
  2044. From uucp Sun Aug  9 15:54:14 1981 remote from pur-ee
  2045. NAucbvax.2534
  2046. Nfa.unix-wizards
  2047. Npur-ee!cincy!duke!decvax!ucbvax!mark
  2048. NWed Aug  5 08:47:18 1981
  2049. NThe truth about Unix
  2050. NI read your Unix flame with interest, but you seem to be
  2051. Nill informed about lots of things.  Obviously you are comparing
  2052. NV6 Unix with 3BSD, but you claim to be comparing "Unix" with
  2053. N"Berkeley Unix".  You credit Berkeley with things that are
  2054. Npart of V7 (getting rid of dsw, adding egrep and fgrep).
  2055. NI might compare your note with a message saying "don't go
  2056. Nout and buy a 1975 VW Rabbit - those are crummy cars because
  2057. Nthe 1979 Rabbit is better".  (No, I'm not complaining about
  2058. Nthe recent Rabbit note, this just happened to be a handy example).
  2059. NYou also claim that "Berkeley Unix is too big to fit ... on an 11/45".
  2060. NHogwash!  3BSD is a Vax distribution - it has a C compiler that
  2061. Ngenerates Vax object code, a kernel that knows the Vax memory management
  2062. Nand I/O conventions, and some other VAX specific things.  So are 4BSD
  2063. Nand 4.1BSD, which superceded 3BSD the same way V7 has superceeded V6.
  2064. NWe have lots of PDP-11's here at Berkeley, including 70's, a 45, and
  2065. Nseveral 40's.  Most of them run some version of Berkeley Unix.
  2066. NBigness is not important - we run vi 3.6 on a 40 in the virus lab.
  2067. NOf course, it is a different system than the one on the vax.
  2068. N"Berkeley Unix" is about as specific as "Chevrolet".
  2069. N
  2070. NYou also have to bear in mind that the various flavors of Unix have
  2071. Nevolved from one system years ago in Bell Labs.  In upgrading from
  2072. Nversion x to version x+1, issues of upward compatibility have to
  2073. Nbe taken into account.  If you changed /usr to /user, not only would
  2074. Nyou infuriate most of the users "What a pointless change!  Now I
  2075. Nhave to retype half my commands!" but you would break a large number
  2076. Nof programs that look for such places as /usr/spool/mail, /usr/dict/words,
  2077. Nand so on.  Things that are not obviously wrong and horrible tend
  2078. Nto get left alone.  (There are, unfortunately, exceptions.  index
  2079. Nand rindex are called strchr and strrchr in some versions of Unix.)
  2080.  
  2081. SHAR_EOF
  2082. cat << \SHAR_EOF > rumor.mark2
  2083. From uucp Mon Aug 10 22:18:44 1981 remote from pur-ee
  2084. NAucbvax.2598
  2085. Nfa.unix-wizards
  2086. Npur-ee!cincy!duke!decvax!ucbvax!unix-wizards
  2087. NMon Aug 10 12:23:20 1981
  2088. NEUNUCH for large machines
  2089. N>From csvax.mark@Berkeley Mon Aug 10 12:15:19 1981
  2090. NCare to back up your flame about big machines with some reasons?
  2091. NIt does run on a Vax, Univac 1100, Amdahl, 370, and 3B.
  2092. N
  2093. NBell invests lots of effort into Unix - about as much as the rest
  2094. Nof the world.  But their version doesn't get released.
  2095. N
  2096. N    Mark
  2097. N
  2098. N
  2099.  
  2100. SHAR_EOF
  2101. cat << \SHAR_EOF > rumor.mo
  2102. From uucp Fri Aug 14 11:40:30 1981 remote from pur-ee
  2103. NAucbvax.2628
  2104. Nfa.unix-wizards
  2105. Npur-ee!cincy!duke!decvax!ucbvax!unix-wizards
  2106. NTue Aug 11 11:41:44 1981
  2107. NFlaming Psychologists
  2108. N>From mo@LBL-UNIX Tue Aug 11 11:23:32 1981
  2109. NWell, you see what kind of stuff gets into DATAMATION.
  2110. NI don't understand these things: many of the criticisms
  2111. Nare right, but the facts are categorically wrong!  Unix
  2112. Ncould benefit from some "normalizaion" (the Software Tools
  2113. Nbenefitted greatly from having been written all at once, not
  2114. Nover the years), but the claim that Unix does not present
  2115. Na simple set of principles is the most incomprehensible
  2116. Nstatement he could have made!  That is ALL Unix does,
  2117. Nand that is precisely why he doesn't like it!  If he hates
  2118. Nit so much, why doesn't he go get an account on a TOPS-10 system
  2119. Nor since he is at UCSD, a UCSD PASCAL machine?
  2120. N    Well, enough of that.  I yield the floor to Lauren.
  2121. N    -Mike
  2122. N
  2123.  
  2124. SHAR_EOF
  2125. cat << \SHAR_EOF > rumor.nowicki
  2126. From uucp Fri Aug 14 11:57:07 1981 remote from pur-ee
  2127. NAucbvax.2660
  2128. Nfa.unix-wizards
  2129. Npur-ee!cincy!duke!decvax!ucbvax!unix-wizards
  2130. NWed Aug 12 11:44:04 1981
  2131. NMisunderstanding about Unix.....
  2132. N>From Nowicki@PARC-MAXC Wed Aug 12 11:35:03 1981
  2133. NI would like to make a few comments on Donald Norman paper on "The
  2134. NTruth About Unix".  The arguments for Consistency, Simple Models, and
  2135. NMnemonic Aids should all be Motherhood, even though many system
  2136. Ndesigners continue to ignore them. (If you want consistent
  2137. Nabbreviations you can use RSX-11M for a while where all commands are
  2138. Nthree letters; then you'll appreciate Unix.)
  2139. N
  2140. NThe major mistake that is made, however, is failing to consider the
  2141. Npossible multiple levels of abstraction.  For example, the title says
  2142. N"The user interface is horrid", but in reality every level of
  2143. Nabstraction has a "user interface," namely its interface to the next
  2144. Nhigher level.  The motto of the Unix was not "let the user beware," but
  2145. Nrather, "make the primitives simple but powerful, so as much as
  2146. Npossible can be done at higher levels".  With his arguments, you could
  2147. Nsay that all man-computer communication is doomed to failure because it
  2148. Nuses only ones and zeros, which are not very mnemonic.  The real
  2149. Nproblem is that an appropriate level for a systems programmer is not
  2150. Nappropriate for casual end users.  This conclusion is hinted at near
  2151. Nthe end of the paper, but it means that the paper should not be a
  2152. Ncriticism of Unix itself, but rather a criticism of how people use
  2153. NUnix.
  2154. N
  2155. NThe point that someone reading only the first few paragraphs of the
  2156. Npaper can miss is that the primitives in Unix CAN be either easily
  2157. Nreplaced or encapsulated, while almost no other systems provide this
  2158. Ncapability.  As an example, two Stanford students have implemented a
  2159. NTOPS-20 style command interpreter for Unix.  It has arbitrary
  2160. Nabbreviations, <escape> command completion, the question-mark help
  2161. Nfacility, and a delete-undelete-expunge facility.  Version numbers for
  2162. Nbackup files are implemented with a simple suffix to the file name.
  2163. N
  2164. NThe real shame is that the Unix users themselves are forced to make the
  2165. Nsystem as distributed from Western more humane, and thus every wheel
  2166. Ngets reinvented many times.  Luckily groups like Berkeley and Usenix
  2167. Nare trying to help this situation, but as indicated progress is very
  2168. Nslow.
  2169. N
  2170. N    -- Bill
  2171. N
  2172. N
  2173. N
  2174. SHAR_EOF
  2175. cat << \SHAR_EOF > rumor.swd
  2176. From uucp Fri Aug 14 11:37:48 1981 remote from pur-ee
  2177. NAduke.943
  2178. Nnet.general
  2179. Npur-ee!cincy!duke!swd
  2180. NThu Aug 13 09:23:28 1981
  2181. Nmore rumor rumors
  2182. NSome random thoughts on the datamat!rumor article.
  2183. N
  2184. N1) it did not enter the net at utzoo by having someone
  2185. N   there run rnews to submit it.  If they had, utzoo
  2186. N   would have seen the article.  If it entered at decvax,
  2187. N   it would not have been sent to utzoo -- the anti loop
  2188. N   code in news will not send an article to any system
  2189. N   on the return path.  Since the article did show up at
  2190. N   decvax, it entered the net there.
  2191. N
  2192. N2) what probably happened is that someone on the west coast
  2193. N   (Note the PDT in the date line) created the article
  2194. N   and ran  uux - decvax!rnews <fake article.
  2195. N
  2196. N3) there is no way to prevent this (short of an elaborate
  2197. N   public key encryption scheme).
  2198.  
  2199. SHAR_EOF
  2200. #    End of shell archive
  2201. exit 0
  2202.  
  2203. -----------------------------
  2204.  
  2205. From: Rich Kulawiec <rsk@gynko.circ.upenn.edu>
  2206. Subject: Re: The Problem with UNIX
  2207. Date: 13 Nov 92 02:07:48 GMT
  2208. Sender: news@netnews.upenn.edu
  2209. Nntp-Posting-Host: gynko.circ.upenn.edu
  2210. To:       unix-wizards@sem.brl.mil
  2211.  
  2212. In article <BxM9JI.4yw@mtholyoke.edu> jbotz@mtholyoke.edu (Jurgen Botz) writes:
  2213. >I agree.  Heh... Not only are those who keep pronouncing the death of
  2214. >Unix dead wrong, but their credibility is starting to rot.
  2215.  
  2216. In that same vein, from time to time, I recall with great satisfaction
  2217. a conversation I had with one of the bigwigs at Forth, Inc. back in 1982.
  2218. This person explained to me in glorious detail why Unix was just a passing
  2219. thing, and how in a couple of years we'd all be writing Forth and running
  2220. their monitor-like OS, and ...
  2221.  
  2222. I think of this everytime I read another vaporware announcement
  2223. concerning Windows NT.  Unix outlasted CP/M and VMS and RSTS and
  2224. AOS and <add your favorite long-obsolete operating system here>; I suspect
  2225. that it will outlast Windows NT as well.  (Although Plan 9 could
  2226. give it a serious run for the money in a few years.)
  2227.  
  2228. ---Rsk
  2229.  
  2230. -----------------------------
  2231.  
  2232. From: Bill Vermillion <bill@bilver.uucp>
  2233. Subject: Re: The Problem with UNIX
  2234. Date: 13 Nov 92 03:05:29 GMT
  2235. To:       unix-wizards@sem.brl.mil
  2236.  
  2237. In article <BARNETT.92Nov12092045@grymoire.crd.ge.com> barnett@crdgw1.ge.com writes:
  2238. >In article <1992Nov11.210729.11676@cs.wisc.edu> so@brownie.cs.wisc.edu (Bryan S. So) writes:
  2239.  
  2240. >>   To me, some problems like "cat a b > b" are obviously undesirable
  2241. >>   designs and still unsolved after more than a decade.  
  2242.  
  2243. >It has been solved. There are at least two solutions:
  2244. >    1) Educate the user. After all the system did exactly what
  2245. >        the user told it to do.
  2246. >    2) in csh/tcsh, do "set noclobber"
  2247. >
  2248. >grymoire% set noclobber
  2249. >grymoire% touch a b
  2250. >grymoire% cat a b >b
  2251. >b: File exists.
  2252.  
  2253. And some of the lastest bourne shells also have fixed it.  In sysv.3.2
  2254. from Esix if I type
  2255.  
  2256. cat a b > b    I get this result
  2257.  
  2258. cat: input/output files 'b' identical
  2259.  
  2260. So after a decade these have been solved.
  2261.  
  2262.  
  2263. -- 
  2264. Bill Vermillion - bill@bilver.oau.org  bill.vermillion@oau.org
  2265.                 - bill@bilver.uucp 
  2266.                 - ..!{peora|tous|tarpit}!bilver!bill
  2267.  
  2268. -----------------------------
  2269.  
  2270. From: David Barr <barr@pop.psu.edu>
  2271. Subject: Re: The Problem with UNIX
  2272. Date: 13 Nov 92 03:16:11 GMT
  2273. Sender: Usenet <news@atlantis.psu.edu>
  2274. To:       unix-wizards@sem.brl.mil
  2275.  
  2276. In article <1992Nov12.193707.27532@chpc.utexas.edu> michael@chpc.utexas.edu (Michael Lemke) writes:
  2277. >Well, fixing typos is neat but it is not the essential problem.  My
  2278. >main complaint about Unix on the user interface level is that there is
  2279. >no command line interpreter.  What I mean is that after the shell munged
  2280. >your command line it is *completely* up to the program to interpret the
  2281. >command line and there is no system function available to parse even
  2282. >these `standard' options.
  2283.  
  2284. You mean like getopt(3)?
  2285.  
  2286. >Some programs use one letter chinese (you
  2287. >know, one character per word) and others (eg, find) use words (-print
  2288. >-name).  And the real problem then starts when -l changes its meaning
  2289. >from command to command, some commands need spaces between the option
  2290. >and the argument, others don't, some take both, yech.  This would all be
  2291. >solved if there were *one* system function that is used by all programs
  2292. >instead of having every program duplicate more or less the same
  2293. >functionality with different success.
  2294.  
  2295. You mean like getopt(3)?   There is one function, it's just the people
  2296. don't always choose to use it.  I don't find this to be a Bad Thing.
  2297. getopt(3) is too limiting in some cases, and it is overkill in others.
  2298. Yes, this 'dd if=filename conv=ascii' is for the birds, and the author
  2299. should have been shot for doing it this way, but that's not a reason
  2300. to fault UNIX.
  2301.  
  2302. >And it would be great if you
  2303. >could abbreviate commands (command completion of some shells it neat
  2304. >but why is it neccessary in the first place?) and options (no need for
  2305. >dynamic chinese anymore).
  2306. >
  2307. >>I agree with Scott: There is no good reason that command shells shouldn't make
  2308. >>more of an effort to understand the user.  
  2309. >
  2310. >Computer:  Calculate the weather forecast for Sunday, Nov 15!
  2311.  
  2312. Why would i want to type all that out when i can just say:
  2313.  
  2314. % weather nov 15
  2315.  
  2316. --Dave
  2317. -- 
  2318. System Administrator, Population Research Institute    barr@pop.psu.edu
  2319.  
  2320. -----------------------------
  2321.  
  2322. From: Andy Newman <andy@research.canon.oz.au>
  2323. Subject: Re: The Problem with UNIX
  2324. Date: 13 Nov 92 04:32:46 GMT
  2325. Sender: news@research.canon.oz.au
  2326. To:       unix-wizards@sem.brl.mil
  2327.  
  2328. mike@pacsoft.com (Mike Stefanik) writes:
  2329. >In an article, boyd@prl.dec.com (Boyd Roberts) writes:
  2330. >>The real problem, as Rob has so eloquently put it:
  2331. >>
  2332. >>    ``Not only is UNIX dead, it's starting to smell really bad.''
  2333. >
  2334. >I find it amazing that people, apparently in pursuit of some small amount of
  2335. >enjoyment, spend their time proclaiming the death of UNIX. This sort of thing
  2336. >is really beginning to take on the flavor of the apocalyptic doomsayers (you
  2337. >know the type ... they run about the streets wearing dirty plaid suits bellowing
  2338. >"Repent Now, For the End is Near!").
  2339. >
  2340. >I have heard UNIX to be proclaimed dead and buried for years now. I have no
  2341. >doubt that there are those who would *like* UNIX to be dead, but desire alone
  2342. >does not make a thing so. Microsoft is a good case in point, I suppose.
  2343. >
  2344. >So, Boyd, if UNIX really is dead, where is the funeral? I would so enjoy
  2345. >paying my last respects ...
  2346. >
  2347. >Oh, and by the way, I do assume then that you are using VMS, DOS, or perhaps a
  2348. >beta version of Windows NT?  You wouldn't be caught *dead* using UNIX, am I
  2349. >right? :-)
  2350. >
  2351.  
  2352. Calm down! What Rob Pike (and Boyd) mean is that its lost its appeal.
  2353. Its lost the elegance it once had. The requirements (and environment)
  2354. for an OS have changed a lot but the overall design hasn't. People
  2355. have grafted all sorts of things on the side (have a look at the
  2356. recent offerings from USL - makes MVS look like CP/M!) and pushed the
  2357. OS into areas where it wasn't meant to go (i.e. becoming a distributed
  2358. system). And it doesn't cope too well. Its bigger and slower than
  2359. ever. You don't get a distributed system from sticking something on the
  2360. side of a non-distributed system. You need to build the system
  2361. with distribution in mind. Now that doesn't mean that there's anything
  2362. else (available to the masses) that is any better (by "better" I'm
  2363. talking about things I want - I'm a programmer and UNIX *is*
  2364. user-friendly to me).
  2365.  
  2366. -- 
  2367. Andy Newman (andy@research.canon.oz.au)
  2368.  
  2369. -----------------------------
  2370.  
  2371. From: "Felix S. Gallo" <rhodesia@wixer.cactus.org>
  2372. Subject: Re: The Problem with UNIX
  2373. Date: 13 Nov 92 07:14:11 GMT
  2374. Sender: "Felix S. Gallo" <rhodesia@wixer.cactus.org>
  2375. Followup-To: comp.unix.wizards
  2376. To:       unix-wizards@sem.brl.mil
  2377.  
  2378. so@brownie.cs.wisc.edu (Bryan S. So) writes:
  2379.  
  2380. >Concerning "cat a b > b", barnett@crdgw1.ge.com writes:
  2381. >>It has been solved. There are at least two solutions:
  2382. >>    1) Educate the user. After all the system did exactly what
  2383. >>        the user told it to do.
  2384. >>    2) in csh/tcsh, do "set noclobber"
  2385.  
  2386. > [these are not solutions, because]
  2387. >
  2388. >1. We should assume some stubborn users cannot be educated.  I
  2389. >   claim without proof such users exist.
  2390.  
  2391. Users which cannot grasp the concept of files being overwritten will
  2392. not be able to grasp the concept of output redirection.  Such users,
  2393. if they do exist, should not be catered to.  Let evolution work its
  2394. course.
  2395.  
  2396. >Bryan
  2397.  
  2398.  
  2399. -- 
  2400.  ----------------------------------------------------------------------------
  2401. Felix Sebastian Gallo                              rhodesia@wixer.cactus.org
  2402.  ----------------------------------------------------------------------------
  2403.  
  2404. -----------------------------
  2405.  
  2406. From: Arne Henrik Juul <arnej@kari.fm.unit.no>
  2407. Subject: Re: The Problem with UNIX
  2408. Date: 13 Nov 92 07:36:32 GMT
  2409. Sender: NetNews Administrator <news@ugle.unit.no>
  2410. To:       unix-wizards@sem.brl.mil
  2411.  
  2412. In article <1992Nov11.210729.11676@cs.wisc.edu>
  2413.  so@brownie.cs.wisc.edu (Bryan S. So) writes:
  2414.  
  2415.    To me, some problems like "cat a b > b" are obviously undesirable
  2416.    designs and still unsolved after more than a decade.  
  2417.  
  2418. Well, you can make this error in other operating systems too, here's VMS:
  2419. $ define SYS$OUTPUT myfile
  2420. $ type myfile,anotherfile
  2421.  
  2422. Of course, VMS keeps every version of every file I have ever made
  2423. (assuming I'm a naive user who haven't heard of purge), but then
  2424. I probably won't know how to get the old version back, either.
  2425.  
  2426. Probably ANY decent OS/UI will make it possible to make exactly this
  2427. mistake. To put it another way: If you add features to make it
  2428. impossible to make this kind of mistake, it won't be a good OS/UI
  2429. anymore.
  2430.  
  2431. It's just that it is much easier to do it in Unix. Remember: Unix
  2432. was designed to make it possible to do smart things easily, it was
  2433. NOT designed to make it hard to do dumb things.
  2434.  
  2435. I can imagine it will be impossible to make this mistake in
  2436. Windows/NT, but I fully expect that it will be impossible to
  2437. concatenate two files in Windows/NT too.
  2438.  
  2439. -- Arne H. Juul, arnej@lise.unit.no
  2440.  
  2441. -----------------------------
  2442.  
  2443. From: Arlie Davis <aldavi01@starbase.spd.louisville.edu>
  2444. Subject: Re: The Problem with UNIX
  2445. Date: 13 Nov 92 09:00:37 GMT
  2446. Sender: Netnews <news@hermes.louisville.edu>
  2447. Nntp-Posting-Host: starbase.spd.louisville.edu
  2448. To:       unix-wizards@sem.brl.mil
  2449.  
  2450. In <1992Nov13.030529.6207@bilver.uucp> bill@bilver.uucp (Bill Vermillion) writes:
  2451.  
  2452. > And some of the lastest bourne shells also have fixed it.  In sysv.3.2
  2453. > from Esix if I type
  2454.  
  2455. > cat a b > b    I get this result
  2456.  
  2457. > cat: input/output files 'b' identical
  2458.  
  2459. > So after a decade these have been solved.
  2460.  
  2461. This was a fix to cat, not any of the shells.  And b still gets clobbered.
  2462. It *is* an improvement, though, and mine acts the same way.
  2463.  
  2464. I responded in email to Bryan So that a decent solution is a (hypothetical
  2465. but terribly simple) program called "buffer" would reads its stdin until EOF,
  2466. then opens and writes all to the filename in argv[1].  So, "cat a b > b"
  2467. becomes "cat a b | buffer b".  He seemed to like the suggestion.
  2468.  
  2469. -- 
  2470. lrwx------   1 aldavi01 emacsstu       9 Jun  6 12:43 .signature -> /dev/null
  2471.  
  2472. -----------------------------
  2473.  
  2474. From: der Mouse <mouse@thunder.mcrcim.mcgill.edu>
  2475. Subject: Re: The Problem with UNIX
  2476. Date: 13 Nov 92 09:19:14 GMT
  2477. Followup-To: comp.unix.wizards,comp.unix.shell
  2478. To:       unix-wizards@sem.brl.mil
  2479.  
  2480. [ I am removing comp.unix.misc from followups.  It's posted to two
  2481.   other comp.unix.* groups; comp.unix.misc is inappropriate. ]
  2482.  
  2483. In article <1992Nov11.194557.16258@yarc.uucp>, scott@yarc.uucp (Scott Beckstead) writes:
  2484. > In article <aldavi01.721333614@starbase.spd.louisville.edu> Arlie Davis <aldavi01@starbase.spd.louisville.edu> writes:
  2485. [stuff we've all seen plenty of times already]
  2486.  
  2487. > I agree an experienced user should be able to recognize and avoid the
  2488. > problems above.  What's wrong with the shell catching such obvious
  2489. > errors and either reporting them or taking other appropriate action
  2490. > (ie correcting them).
  2491.  
  2492. (Is that an unfinished sentence, or a question with no question mark?
  2493. Given context, I'll assume the latter.)  What's wrong with it?  First
  2494. of all, it's impossible.  Specifically,
  2495.  
  2496.     cat a b > b
  2497.  
  2498. How is the shell supposed to know that cat is going to interpret its
  2499. arguments as filenames, and what's more, output the contents of those
  2500. files?  Consider instead "echo a b > b".[%]
  2501.  
  2502.     rm -filename
  2503.  
  2504. How is the shell supposed to know whether the user intended that
  2505. argument as a filename to remove or an option to rm?  In at least some
  2506. cases (eg, -i) only the user knows.
  2507.  
  2508.     mail someone < a.out
  2509.  
  2510. How is the shell supposed to know that mail takes only printable text?
  2511. It can't.  Perhaps this version of mail is a new whizbang mailer in
  2512. test that does take binary files....
  2513.  
  2514. In all of these cases, the shell has to know quite a lot about the
  2515. semantics of the program being run.  It cannot know all about every
  2516. program, and I submit that partially protecting users from themselves
  2517. is worse than not doing it at all.
  2518.  
  2519. Besides all that, these aren't always mistakes.  I once wanted to fill
  2520. up a filesystem in a hurry, so I copied /vmunix to foo and then did
  2521. "cat foo >> foo".  I was *extremely* annoyed when cat said something
  2522. along the lines of "input foo is output" and refused to run.  I had to
  2523. waste a pipe and do "cat foo | cat >> foo", and then realized that the
  2524. extra copies involved in the pipe were slowing down the operation and
  2525. switched to using dd, which mercifully had not been broken by some
  2526. overzealous fool trying to keep people from shooting themselves in the
  2527. foot.
  2528.  
  2529. > I realize that this will get me screamed at by all you guru types
  2530. > that advocate that all shell users be rocket scientists or why bother
  2531. > using a computer anyway.
  2532.  
  2533. I don't see what rockets have to do with it.  *deadpan look*
  2534.  
  2535. No, you misunderstand.  Not "why bother using a computer anyway" but
  2536. "why use a system which wasn't designed for you and isn't suited to
  2537. you".  UNIX was built by hackers for hackers, and hackers seem to like
  2538. it just fine.  If you don't like it, by all means, don't use it.
  2539.  
  2540. > However I see no reason NOT to research the subject.  If UNIX could
  2541. > be made more user friendly by modifying the shell it might gain more
  2542. > acceptance in the general microcomputer market place, GUIs not
  2543. > withstanding.
  2544.  
  2545. Yes, it might.  So what?  Is "acceptance in the general microcomputer
  2546. market place" something we wish for UNIX?  If it means dumbing down the
  2547. interface until people no longer have enough rope to hang themselves,
  2548. well, you can if you want, but I'll keep using what I've got.
  2549.  
  2550. [%] Yes, I know there are shells with echo built in.  The point I'm
  2551.     trying to make is still valid.
  2552.  
  2553.                     der Mouse
  2554.  
  2555.                 mouse@larry.mcrcim.mcgill.edu
  2556.  
  2557. -----------------------------
  2558.  
  2559. From: Mark Evans <evansmp@uhura.aston.ac.uk>
  2560. Subject: Re: The Problem with UNIX
  2561. Date: 13 Nov 92 10:47:31 GMT
  2562. Sender: Usenet administrator <usenet@aston.ac.uk>
  2563. Nntp-Posting-Host: uhura
  2564. To:       unix-wizards@sem.brl.mil
  2565.  
  2566. michael@chpc.utexas.edu (Michael Lemke) writes:
  2567. : In article <EEIDE.92Nov12120339@asylum.cs.utah.edu> eeide%asylum.cs.utah.edu@cs.utah.edu (Eric Eide) writes:
  2568. : >Scott Beckstead (scott@yarc.uucp) writes:
  2569. : >
  2570. : >
  2571. : >I know of somebody who is doing research in this direction: me.  As part of my
  2572. : >Masters degree I am modifying the C shell to be more tolerant of errors, both
  2573. : >errors in syntax (e.g., typos) and semantics (e.g., inappropriate command line
  2574. : >arguments).  My new shell keeps track of the user's command history in order to
  2575. : >make accurate corrections.
  2576. : >
  2577. : >I have no hopes to solve all of the shell user interface problems, but I do
  2578. : >hope to solve most of the common errors.  Just by fixing obvious typos my shell
  2579. : >can fix 90% of the command line errors that I (and most people) make on a daily
  2580. : >basis.
  2581. : >
  2582. : Well, fixing typos is neat but it is not the essential problem.  My
  2583. : main complaint about Unix on the user interface level is that there is
  2584. : no command line interpreter.  What I mean is that after the shell munged
  2585. : your command line it is *completely* up to the program to interpret the
  2586. : command line and there is no system function available to parse even
  2587. : these `standard' options.  Some programs use one letter chinese (you
  2588. : know, one character per word) and others (eg, find) use words (-print
  2589. : -name).  And the real problem then starts when -l changes its meaning
  2590. : from command to command, some commands need spaces between the option
  2591. : and the argument, others don't, some take both, yech.  This would all be
  2592. : solved if there were *one* system function that is used by all programs
  2593. : instead of having every program duplicate more or less the same
  2594. : functionality with different success.  And it would be great if you
  2595. : could abbreviate commands (command completion of some shells it neat
  2596. : but why is it neccessary in the first place?) and options (no need for
  2597. : dynamic chinese anymore).
  2598.  
  2599. Could you say what operating system has this feature.
  2600. (DOS dos the same, what does VMS do?)
  2601. Also how the programmer is ment to use it.
  2602. Does this belong in the operating system (thus resulting in command line
  2603. options sitting in the PCB, yuck!! add a new 'standard' option rebuild 
  2604. the system)
  2605. : >I agree with Scott: There is no good reason that command shells shouldn't make
  2606. : >more of an effort to understand the user.  
  2607. : Computer:  Calculate the weather forecast for Sunday, Nov 15!
  2608. : Yes, I would appreciate this... :-)
  2609. : >Shells obviously can't divine the
  2610. : >user's intentions in all cases, but that's not a good argument for failing to
  2611. : >understand the user's intentions in *all* cases.
  2612. : >
  2613. : Does AI work now?
  2614. -- 
  2615.  -------------------------------------------------------------------------
  2616. Mark Evans                                   |evansmp@uhura.aston.ac.uk
  2617. +(44) 21 565 1979 (Home)                     |evansmp@cs.aston.ac.uk
  2618. +(44) 21 359 6531 x4039 (Office)             |
  2619.  
  2620. -----------------------------
  2621.  
  2622. From: Bruce Barnett <barnett@grymoire.crd.ge.com>
  2623. Subject: Re: The Problem with UNIX
  2624. Date: 13 Nov 92 14:34:17 GMT
  2625. Sender: Required for NNTP <usenet@crd.ge.com>
  2626. Nntp-Posting-Host: grymoire.crd.ge.com
  2627. To:       unix-wizards@sem.brl.mil
  2628.  
  2629. In article <1992Nov12.193707.27532@chpc.utexas.edu> michael@chpc.utexas.edu (Michael Lemke) writes:
  2630. >   Well, fixing typos is neat but it is not the essential problem.  My
  2631. >   main complaint about Unix on the user interface level is that there is
  2632. >   no command line interpreter.  What I mean is that after the shell munged
  2633. >   your command line it is *completely* up to the program to interpret the
  2634. >   command line and there is no system function available to parse even
  2635. >   these `standard' options. 
  2636.  
  2637. Some look at this as an advantage. You are probably complaining about
  2638. the inability to perform
  2639.     rename *.old *.new
  2640.  
  2641. The point of the shell is to prevent every program from having to
  2642. parse 
  2643.     ~bill/$DIR/`prog`/*[0-9]?.{xxx,yyy} 
  2644.  
  2645. It becomes TRIVIAL to write a new shell utility. In fact many are just
  2646. more shell utilities.
  2647.  
  2648. If you don't like ls, write your own version. It only takes a few seconds.
  2649. If you don't like the fact the shell expands all of the metacharacters
  2650. automatically, just turn it off. In csh, do a 
  2651.  
  2652.     set noglob
  2653.  
  2654. then you can write a program called "rename", and let it parse the
  2655. arguments itself. People found out that the purpose of the shell is to
  2656. expand meta-characters, just so that the shell commands don't have to
  2657. bother. The programs also don't have to worry about I/O redirection. I
  2658. remember writing programs, and having to change the source of the
  2659. program when I wanted a printout vs.  output to the terminal. What a
  2660. waste of time!
  2661.  
  2662.  
  2663. It sounds like most of your problem is due to the large number of UNIX
  2664. utilities. How many does DOS have? If you don't like all of the
  2665. old/strange utilities, delete them or don't use them. It's not many
  2666. operating systems that give you (Hmm. time to write a new shell
  2667. command.... tic, tic, Done) ...
  2668.  
  2669.     find /usr/ucb /usr/bin -type f -print | wc -l
  2670.  
  2671. 319 different commands to the shell.
  2672. That's a small number. I actually have 2033 shell commands now.
  2673.  
  2674. Hey, if I only have 30 commands, it would be trivial to make them similar.
  2675. --
  2676. Bruce Barnett <barnett@crd.ge.com> uunet!crdgw1!barnett
  2677.  
  2678. -----------------------------
  2679.  
  2680. From: Jurgen Botz <jbotz@mtholyoke.edu>
  2681. Subject: Re: The Problem with UNIX
  2682. Date: 13 Nov 92 15:10:25 GMT
  2683. Sender: USENET News System <news@mtholyoke.edu>
  2684. To:       unix-wizards@sem.brl.mil
  2685.  
  2686. In article <EEIDE.92Nov12120339@asylum.cs.utah.edu> eeide%asylum.cs.utah.edu@cs.utah.edu (Eric Eide) writes:
  2687. >I know of somebody who is doing research in this direction: me.  As part of my
  2688. >Masters degree I am modifying the C shell to be more tolerant of errors, both
  2689. >errors in syntax (e.g., typos) and semantics (e.g., inappropriate command line
  2690. >arguments).  My new shell keeps track of the user's command history in order to
  2691. >make accurate corrections.
  2692.  
  2693. Without wanting to make a judgement about the viability of the basic
  2694. research underlying such a project, why are you starting with the C
  2695. shell?  If I wanted to create a user-interface that could deal with
  2696. errors and ambiguities introduced by the user I would first make sure
  2697. that the software itself isn't full of errors and ambiguities... i.e.,
  2698. I sure as hell wouldn't use the C shell.
  2699. --
  2700. Jurgen Botz                  |   Internet: JBotz@mtholyoke.edu
  2701. Academic Systems Consultant  |     Bitnet: JBotz@mhc.bitnet
  2702. Mount Holyoke College        |      Voice: (US) 413-538-2375 (daytime)
  2703. South Hadley, MA, USA        | Snail Mail: J. Botz, 01075-0629
  2704.  
  2705. -----------------------------
  2706.  
  2707. From: Bruce Barnett <barnett@grymoire.crd.ge.com>
  2708. Subject: Re: The Problem with UNIX
  2709. Date: 13 Nov 92 15:30:27 GMT
  2710. Sender: Required for NNTP <usenet@crd.ge.com>
  2711. Nntp-Posting-Host: grymoire.crd.ge.com
  2712. To:       unix-wizards@sem.brl.mil
  2713.  
  2714. In article <1992Nov12.231845.14014@cs.wisc.edu> so@brownie.cs.wisc.edu (Bryan S. So) writes:
  2715. >   I propose a real solution to this problem.  Change the internal
  2716. >   policy of UNIX, so that when any file is used as both input and
  2717. >   output, like
  2718.  
  2719. >       cat a b > a
  2720. >   or     cat a b > b
  2721.  
  2722. >UNIX should read and buffer all input before opening the output
  2723. >with "w".
  2724.  
  2725. Maybe. Perhaps the command was a typo, and the user didn't want
  2726. to change "b". Perhaps UNIX should use version numbers, like VMS. That
  2727. also solves both problems. Maybe UNIX should have an "undo" facility
  2728. for all file operations. Maybe cat should be able to read "b" while
  2729. it's getting larger (i.e. during the shell command). What about
  2730.  
  2731.     tail -f b > b
  2732.  
  2733. Go back to "cat a b >b". Given three different responses:
  2734.  
  2735.     1. deleting forever the contents of b
  2736.     2. giving the user an error message
  2737.     3. prepending a to b
  2738.  
  2739. I argue that #2 is the best choice.
  2740.  
  2741. Number 1 is bad. Number 2 is safe. Number 3 may or may not be what the
  2742. user wanted to do. Given that it is not clear what the user expects
  2743. "cat a b >b" to do, I believe a better answer is to simply tell the
  2744. user that this might be an error on their part. Anyone who understands
  2745. the implications of "cat a b >b" ought to be able to understand how to
  2746. get around it. The only time it is a REAL problem is when the size of
  2747. files a + b are greater than the amount of free disk space. At this
  2748. time, the user should be VERY CAREFUL about the implications of the
  2749. operation.
  2750.  
  2751. Suppose the disk fills up while the new "b" is being created. What
  2752. happens afterwards? Is the new "b" deleted? Or the old one?
  2753.  
  2754. --
  2755. Bruce Barnett <barnett@crd.ge.com> uunet!crdgw1!barnett
  2756.  
  2757. -----------------------------
  2758.  
  2759. From: peter da silva <peter@ferranti.com>
  2760. Subject: Re: The Problem with UNIX
  2761. Date: 13 Nov 92 18:24:20 GMT
  2762. To:       unix-wizards@sem.brl.mil
  2763.  
  2764. In article <BxKM7p.724@chinet.chi.il.us> les@chinet.chi.il.us (Leslie Mikesell) writes:
  2765. > In article <id.NEVU.Z2J@ferranti.com> peter@ferranti.com (peter da silva) writes:
  2766. > >>     Sending binary file should be uuencoded first.
  2767.  
  2768. > >Nope. It should say "mail: Standard input contains NULL characters." And
  2769. > >abort.
  2770.  
  2771. > I disagree on this one.  It should just work unless you are of the opinion
  2772. > that computers should not handle arbitrary binary data.
  2773.  
  2774. No, I am of the opinion that if you want to send binary data you should use
  2775. a program called "send", rather than overloading the semantics on mail. In
  2776. principle you have no idea what the recipient will be able to deal with, and
  2777. in the general case you have no way to know. If your default mail program
  2778. just arbitrarily makes assumptions (in the absence of explicit command line
  2779. options or an interactive exchange) about the capabilities of the recipient
  2780. and mail transfer tools (who knows, they could be on Fido, or Compuserve)
  2781. then you WILL burn people.
  2782.  
  2783. > SysVr4 gets
  2784. > this one right by checking the content before trying to display it but
  2785. > not before delivering it to the right place.
  2786.  
  2787. I'll be sure to keep that in mind the first time some garbaged binary data
  2788. ends up in my mailbox.
  2789.  
  2790. In the meantime, the following should be a 40 line shell script:
  2791.  
  2792. NAME
  2793.  
  2794.   send -- send arbitrary file using encapsulation over mail
  2795.  
  2796. SYNOPSIS
  2797.  
  2798.   send recipient options+files
  2799.  
  2800. OPTIONS
  2801.  
  2802.   -u Succeeding files shoul be uuencoded
  2803.  
  2804.   -a Succeeding files should be sent using atob
  2805.  
  2806.   -b Succeeding files should be sent using binhex
  2807.  
  2808.   -c Succeeding files should be sent as a cpio archive
  2809.  
  2810.   -s files should be sent in "shar" format
  2811.  
  2812.   -m files should be sent using "mime" format (default)
  2813.  
  2814.   ...
  2815. -- 
  2816. Peter da Silva / 77487-5012 USA / +1 713 274 5180
  2817. true(<<VV$@\\$'&O 9$O%'$LT$&$"V6"$&$<4$?'&$ #I&&?$=$<<@)24 24 scale 3 21 moveto
  2818. {dup 36 eq{pop not}{dup 7 and 4 sub exch 56 and 8 div 4 sub 2 index{rlineto}{
  2819. rmoveto}ifelse}ifelse}forall stroke pop showpage % Har du kramat din varg idag?
  2820.  
  2821. -----------------------------
  2822.  
  2823. From: Rich Kulawiec <rsk@gynko.circ.upenn.edu>
  2824. Subject: Re: The Problem with UNIX
  2825. Date: 14 Nov 92 03:20:51 GMT
  2826. Sender: news@NOC2.DCCS.UPENN.EDU
  2827. Followup-To: comp.unix.wizards
  2828. Nntp-Posting-Host: gynko.circ.upenn.edu
  2829. To:       unix-wizards@sem.brl.mil
  2830.  
  2831. In article <1992Nov13.094336.2341@aber.ac.uk> btk@aber.ac.uk (Ben Ketteridge) writes:
  2832. >From what you say about each of Bryan So cases of command-line problems, I take
  2833. >it to mean that you think that it is _entirely_ the users' responsibility to
  2834. >check that they don't type incorrect commands?
  2835.  
  2836. Absolutely.  It's a computer, not a mind reader: it will do exactly what
  2837. you tell it to do.  If you use a computer, you should be prepared to face
  2838. this basic tenet.  (Until, of course, you have a machine available that
  2839. can intuit your intentions regardless of what you type.)
  2840.  
  2841. To put it another way: I often tell beginning users that they will
  2842. be held personally responsible for the consequences of every command
  2843. the run.  This does seem to inspire a degree of careful attention on their
  2844. part, but it usually takes it least one "rm *" or "cat > foo" episode
  2845. to drive the point home.
  2846.  
  2847. ---Rsk
  2848.  
  2849. -----------------------------
  2850.  
  2851. From: "Bryan S. So" <so@brownie.cs.wisc.edu>
  2852. Subject: Re: The Problem with UNIX
  2853. Date: 14 Nov 92 06:00:56 GMT
  2854. Sender: The News <news@cs.wisc.edu>
  2855. To:       unix-wizards@sem.brl.mil
  2856.  
  2857. In article <Bxnu5E.KoH@mtholyoke.edu> jbotz@mtholyoke.edu (Jurgen Botz) writes:
  2858. >In article <EEIDE.92Nov12120339@asylum.cs.utah.edu> eeide%asylum.cs.utah.edu@cs.utah.edu (Eric Eide) writes:
  2859. )>I know of somebody who is doing research in this direction: me.  As part of my
  2860. )>Masters degree I am modifying the C shell to be more tolerant of errors, both
  2861. )>errors in syntax (e.g., typos) and semantics (e.g., inappropriate command line
  2862. )>arguments).  My new shell keeps track of the user's command history in order to
  2863. )>make accurate corrections.
  2864. )
  2865. )Without wanting to make a judgement about the viability of the basic
  2866. )research underlying such a project, why are you starting with the C
  2867. )shell?  If I wanted to create a user-interface that could deal with
  2868. )errors and ambiguities introduced by the user I would first make sure
  2869. )that the software itself isn't full of errors and ambiguities... i.e.,
  2870. )I sure as hell wouldn't use the C shell.
  2871.  
  2872.  PROBABLY because compatibility is a big issue.  I think the major
  2873.  reason why Don Norman's decade old complaints aren't fixed yet is
  2874.  to retaining compatibility.  
  2875.  
  2876. Bryan
  2877.  
  2878. -----------------------------
  2879.  
  2880. From: der Mouse <mouse@thunder.mcrcim.mcgill.edu>
  2881. Subject: Re: The Problem with UNIX
  2882. Date: 14 Nov 92 10:39:25 GMT
  2883. To:       unix-wizards@sem.brl.mil
  2884.  
  2885. In article <1992Nov12.231845.14014@cs.wisc.edu>, so@brownie.cs.wisc.edu (Bryan S. So) writes:
  2886.  
  2887. > [quotes and stuff about "cat a b > b"]
  2888.  
  2889. > I propose a real solution to this problem.  Change the internal
  2890. > policy of UNIX, so that when any file is used as both input and
  2891. > output, like [this] UNIX should read and buffer all input before
  2892. > opening the output with "w".
  2893.  
  2894. ("w"?)  You are ignoring an important issue here: doing this would mean
  2895. a drastic redesign of the fundamental paradigm.  This is because the
  2896. shell doesn't know that the a and b in the argument list are input
  2897. filenames, and by the time cat is started, the output redirection has
  2898. already taken place.  What you propose requires changing one or both of
  2899. those, and in either case, you have lost the clean division between
  2900. shell and program that has proven so useful.  (Okay, it's not quite as
  2901. clean as it used to be.  It's sure lots more so than in, say, VMS.)
  2902.  
  2903.                     der Mouse
  2904.  
  2905.                 mouse@larry.mcrcim.mcgill.edu
  2906.  
  2907. -----------------------------
  2908.  
  2909. From: der Mouse <mouse@thunder.mcrcim.mcgill.edu>
  2910. Subject: Re: The Problem with UNIX
  2911. Date: 14 Nov 92 10:42:09 GMT
  2912. To:       unix-wizards@sem.brl.mil
  2913.  
  2914. In article <aldavi01.721645237@starbase.spd.louisville.edu>, aldavi01@starbase.spd.louisville.edu (Arlie Davis) writes:
  2915.  
  2916. > I responded in email to Bryan So that a decent solution is a
  2917. > (hypothetical but terribly simple) program called "buffer" would
  2918. > reads its stdin until EOF, then opens and writes all to the filename
  2919. > in argv[1].  So, "cat a b > b" becomes "cat a b | buffer b".
  2920.  
  2921. Not hypothetical at all.  I wrote it some time ago, though I called it
  2922. "delay" rather than "buffer".  And yes, it is terribly simple - the
  2923. hardest part is deciding where to buffer the data.
  2924.  
  2925.                     der Mouse
  2926.  
  2927.                 mouse@larry.mcrcim.mcgill.edu
  2928.  
  2929. -----------------------------
  2930.  
  2931. From: Troy Frericks <troyf@microware.com>
  2932. Subject: Re: >>TAR file on tape distroyed, are files recoverable?<<
  2933. Date: 11 Nov 92 22:23:08 GMT
  2934. Sender: news@microware.com
  2935. Nntp-Posting-Host: marx
  2936. To:       unix-wizards@sem.brl.mil
  2937.  
  2938. In article <1992Nov10.184320.5998@microware.com> troyf@microware.com (Troy Frericks) writes:
  2939. >I have a tape that contained a large 'tar' file.  The data is not
  2940. >replaceable.  The data that is needed is at the end of the tar
  2941. >file, but it is inaccessable because the wrong parameter was
  2942. >passed to tar when attempting to retrieve it.  The 'c' for
  2943. >create, rather than 'x' for eXtract was passed, which caused
  2944. >tar to write a tiny tar file over the beginning of the
  2945. >larger one.
  2946. >
  2947. >Any hints on how to retrieve files from a large tar file once
  2948. >the beginning of the tar file has been distroyed?
  2949. >
  2950. >-
  2951. >Troy Frericks                      Internet: troyf@MICROWARE.COM
  2952. >Microware Systems Corporation          UUCP: uunet!mcrware!troyf
  2953. >1900 NW 114th St                      Phone: (515)224-1929
  2954. >Des Moines, IA 50325-7077               Fax: (515)224-1352
  2955.  
  2956. Thanks to all who helped me out on this -- espically uunet!iti.gov.sg!ram (Ram)
  2957. What I ended up doing was
  2958.  
  2959. - dd'ed the contents of first meg of tape to a disk file
  2960. - hexdump the file looking for valid data - noted offset of the first valid
  2961.     file name (offset was 10753)
  2962. - dd if=device bs=1024 | tail +10753c | tar -xvf -
  2963.     which got the info from tape | skipped over the bad part | and
  2964.     let tar process the good part.
  2965.  
  2966. -
  2967. Troy Frericks                      Internet: troyf@MICROWARE.COM
  2968. Microware Systems Corporation          UUCP: uunet!mcrware!troyf
  2969. 1900 NW 114th St                      Phone: (515)224-1929
  2970. Des Moines, IA 50325-7077               Fax: (515)224-1352
  2971.  
  2972. -----------------------------
  2973.  
  2974. From: David Baboulene DND3 <davidb@muppet.bt.co.uk>
  2975. Subject: SCCS ID Keywords problem
  2976. Date: 12 Nov 92 08:28:17 GMT
  2977. Sender: news@muppet.bt.co.uk
  2978. To:       unix-wizards@sem.brl.mil
  2979.  
  2980.  
  2981. Hi Chaps/Chappettes,
  2982.  
  2983. We have a couple of source and header files which include 
  2984. lines like the following:
  2985.  
  2986. #define GRG "%Y%S%d%M%"
  2987.  
  2988. The problem is that an SCCS get <filename> reads the %Y%S%d%M%
  2989. as ID keywords (which is not what they are intended to be) and 
  2990. expands it to the date, time, version id etc. thereby turning the 
  2991. line into garbage.
  2992.  
  2993. Does anyone know a way of supressing keyword expansion under SCCS?
  2994. I know I could use sccs get -e <filename>, keeping the file out
  2995. for edit at all times, and I am doing this as a quick fix, but need
  2996. a way of supressing the keyword expansion to cure the problem
  2997. properly. 
  2998.  
  2999. Thanking you in advance of any help you can give,
  3000.  
  3001. Cheers,
  3002.  
  3003.  
  3004. David Baboulene (davidb@muppet.bt.co.uk)
  3005.  
  3006. British Telecom Research Labs.      o  o
  3007. Suffolk,                              >
  3008. England.                              .
  3009.  
  3010.  
  3011.             -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  3012.  
  3013.                 Love thy neighbour; tune thy piano
  3014.  
  3015. -----------------------------
  3016.  
  3017. From: Alan Wright <awright@gssec.bt.co.uk>
  3018. Subject: Re: RPCGEN
  3019. Date: 12 Nov 92 13:58:33 GMT
  3020. Sender: usenet@gssec.bt.co.uk
  3021. To:       unix-wizards@sem.brl.mil
  3022.  
  3023. In article <MJL.92Nov10132040@rigel.bos.locus.com>,
  3024. mjl@bos.locus.com (Mike Leibensperger) writes:
  3025. |> 
  3026. |> HP/Apollo's Network Interface Definition Language (NIDL) used to
  3027. |> generate either Pascal or C language stubs.  It has since been
  3028. |> transmogrified into just plain IDL, the RPC interface language for
  3029. |> OSF's DCE RPC.  I'm not sure if it still generates Pascal stubs or
  3030. |> not.
  3031. |>
  3032.  
  3033. Not as far as I'm aware. If OSF's DCE IDL can produce
  3034. Pascal then it's an undocumented feature.
  3035.  
  3036. Alan.
  3037.  
  3038.  --------------------------------------------
  3039. awright@gssec.bt.co.uk (Alan Wright)
  3040. BT, Software Engineering Centre, Glasgow, UK
  3041.  --------------------------------------------
  3042.  
  3043. -----------------------------
  3044.  
  3045. From: Mark Bush <bush@ecs.ox.ac.uk>
  3046. Subject: Re: Any TeX (compilation) Gurus out there?
  3047. Keywords: TeX, make
  3048. Date: 12 Nov 92 15:38:16 GMT
  3049. Originator: bush@thom5.ecs.ox.ac.uk
  3050. To:       unix-wizards@sem.brl.mil
  3051.  
  3052. In article <BxKJK0.8Mr@mentor.cc.purdue.edu> parson@pop.stat.purdue.edu (Eric Parson) writes:
  3053. #get MF to process the plain.mf file, but in the 'Makefile' command file,
  3054. #it displays the line:
  3055. #    inimf plain; input modes; dump
  3056. #Well, it gets through the inimf, but fails the input.  Now there aren't that
  3057. #many copies of files with the name 'modes' in them (two to be precise, and 
  3058. #one is amsmodes.mf), thus I thought that moving a copy of modes.mf from the
  3059. #input directory would solve my problem.  It didn't.  Now I don't know what 
  3060. #else to do.  
  3061.  
  3062. In what manner didn't it?
  3063.  
  3064. From README.WEB2C:
  3065.  
  3066.  ------------------------------------
  3067. 10. `make bases' to make the base files for Metafont that you want.
  3068.     Besides the variable `bases' in ./Makefile, you may also want to
  3069.     change the variable `localmodes'.  It is also a good idea to try to
  3070.  ------------------------------------
  3071.  
  3072. and from ./Makefile:
  3073.  
  3074.  ------------------------------------
  3075. # The name of the file that defines your local devices, for use with
  3076. # Metafont.  (Only relevant during `make bases'.)  I urge you to get the
  3077. # file `modes.mf', which defines all known modes, plus useful
  3078. # definitions for all fonts.  It's available from ftp.cs.umb.edu
  3079. # [192.12.26.23] as pub/tex/modes.mf, among other places.
  3080. localmodes=modes
  3081.  ------------------------------------
  3082.  
  3083. You should place a copy of this into the area you have defined in lib/site.h
  3084. as the value of MFINPUTS.
  3085.  
  3086. Mark
  3087.  
  3088. -----------------------------
  3089.  
  3090. From: Soren M Burkhart <zoron@en.ecn.purdue.edu>
  3091. Subject: Problem with Window to Window commands.... HELP!
  3092. Date: 12 Nov 92 15:59:09 GMT
  3093. To:       unix-wizards@sem.brl.mil
  3094.  
  3095.  
  3096.   Hi, I am working on a PUMA robot using VALII, and currently trying to
  3097. talk to the monitor program is real pain!  We have to use a program called
  3098. ff2 which issues commands from my c code via file flagging.  This is
  3099. running on a Sun 3 and it is excessively slow.  My question is, is it possible
  3100. to issue a command to another tty that you currently have open?  Excuse my
  3101. ignorance, but I have tried sending commands to the /dev/ttyXX file , but  I
  3102. see that all it does is display on the screen.  All three programs (my code,
  3103. val II , and ff2) have their own window.  I need this to work faster because
  3104. we will be using the PUMA robot to play air-hockey against us... well
  3105. hopefully! :>
  3106.   I appreciate any help or hints on how to fix this situation.
  3107.  
  3108.  
  3109.    thanks,
  3110.  
  3111.       Soren
  3112.  
  3113.  
  3114. **************************************************************************
  3115.  
  3116.   Soren Burkhart
  3117.   Purdue University
  3118.   AI & Robotics
  3119.   EMAIL: zoron@en.ecn.purdue.edu
  3120.  
  3121. -----------------------------
  3122.  
  3123. From: Alun <champion@cch.coventry.ac.uk>
  3124. Subject: Closing ends of pipe().
  3125. Date: 12 Nov 92 16:28:05 GMT
  3126. Sender: news user <news@cck.coventry.ac.uk>
  3127. Nntp-Posting-Host: cc_sysh
  3128. To:       unix-wizards@sem.brl.mil
  3129.  
  3130. I have a program that loops x number of times. Forks of a child and uses pipe()
  3131. and dup2() to get the output of the child to the parent. My problem is
  3132. in the program I have to use the pipe() function 'x' times and then fdopen() the
  3133. read end 'x' times. I want to use the FILE* functionality.
  3134.  
  3135. What I would like to do is just be able to reopen the write end in the parent
  3136. or is there anyway other of getting the read end to return EOF when there
  3137. is still a write end open ?? So I can put the pipe() and fdopen() code
  3138. outside of the loop.
  3139.  
  3140. Cheers
  3141.  
  3142.     -Alun
  3143.  
  3144. -- 
  3145. A.Champion                |  That's an interesting point, in the sense of
  3146. (champion@uk.ac.cov.cck)  |    being very not interesting at all. - The Liar
  3147.  
  3148. -----------------------------
  3149.  
  3150. From: "neal.l.leitner" <nll@cbnewsb.cb.att.com>
  3151. Subject: TTYDEFS Help!
  3152. Date: 12 Nov 92 21:15:52 GMT
  3153. Sender: news@cbfsb.cb.att.com
  3154. To:       unix-wizards@sem.brl.mil
  3155.  
  3156. Nobody was able to help me out with this problem, so I am turning to 
  3157. this group.
  3158.  
  3159. Anyone know if there is a size limitation to the /etc/ttydefs file???
  3160.  
  3161. I am using Unix SysV rel 4.0.2.1.  My ttydefs file, after adding some
  3162. entries is 134 lines long.  Using the pmadm command to configure a port,
  3163. the port will not configure properly.  The term entry I want to use in
  3164. the ttydefs file is on line 124, so I moved it to the top of the ttydefs
  3165. file and configured the port and it configured ok.  After playing around
  3166. a while line 115 of the ttydefs file seem to be the limit.  The port
  3167. would configure with the entry on line 115, but not 116.  Anyone
  3168. else have any experience with this????
  3169.  
  3170. Neal Leitner
  3171.  ..att!emdbl1!nll
  3172.  
  3173. -----------------------------
  3174.  
  3175. From: der Mouse <mouse@thunder.mcrcim.mcgill.edu>
  3176. Subject: Re: HELP! problem with tar PC <-> SUN
  3177. Date: 12 Nov 92 21:27:14 GMT
  3178. To:       unix-wizards@sem.brl.mil
  3179.  
  3180. In article <BxJ7qx.2An@avalon.nwc.navy.mil>, dejesus@archimedes.nwc.navy.mil (Francisco X DeJesus) writes:
  3181.  
  3182. > [transferring files with tar between SunOS 4.1.2 and "a PC running
  3183. > Unix" (which dejesus says "refers to trying this with SCO Unix,
  3184. > Interactive Unix, and Intel Unix").
  3185.  
  3186. > Here's the problem: [...] [i]f a tape is written on the Sun with a
  3187. > blocking fator of 2, the PC reads it as a blocking factor of 20.
  3188. > [T]his is where the *REAL* problem comes in: [t]he client specifies
  3189. > that the "tar" command *HAS* to be used _WITHOUT_ telling it a
  3190. > specific blocking factor on either end [...].
  3191.  
  3192. Comes a point where you have to tell the client "I'm sorry, you're
  3193. being too stupid.  If you insist on that go find someone else to do
  3194. it.".  IMO this is pretty close to the line where that begins to be
  3195. called for.
  3196.  
  3197. > So... any ideas?  Please, we are wide open to suggestions.  ANY
  3198. > possibilities will be explored... a different tape driver, another PC
  3199. > Unix version, rebuilding tar on the PC (if we can get the sources)...
  3200. > anything goes.
  3201.  
  3202. In that case, why not just pick up any of the good free tars and build
  3203. it on one or both ends?  In that case, if it turns out to be a
  3204. system-level bug (ie, tar is doing its best and the system is mangling
  3205. things), you can patch the source to act as if it had the b option even
  3206. when it doesn't.  (Where are these tars?  At least one of them is
  3207. somewhere on uunet, and I wrote another one....)
  3208.  
  3209.                     der Mouse
  3210.  
  3211.                 mouse@larry.mcrcim.mcgill.edu
  3212.  
  3213. -----------------------------
  3214.  
  3215. From: Dave Eisen <dkeisen@leland.stanford.edu>
  3216. Subject: Re: HELP! problem with tar PC <-> SUN
  3217. Date: 12 Nov 92 23:48:22 GMT
  3218. Sender: Mr News <news@leland.stanford.edu>
  3219. To:       unix-wizards@sem.brl.mil
  3220.  
  3221. In article <BxJ7qx.2An@avalon.nwc.navy.mil>, dejesus@archimedes.nwc.navy.mil (Francisco X DeJesus) writes:
  3222.  
  3223. > Here's the problem: [...] [i]f a tape is written on the Sun with a
  3224. > blocking fator of 2, the PC reads it as a blocking factor of 20.
  3225. > [T]his is where the *REAL* problem comes in: [t]he client specifies
  3226. > that the "tar" command *HAS* to be used _WITHOUT_ telling it a
  3227. > specific blocking factor on either end [...].
  3228. >
  3229.  
  3230. I don't know about Interactive or Intel UNIX for the PC, but you
  3231. can solve this problem easily enough on SCO Xenix. Tar looks for
  3232. information about the source device in the file /etc/default/tar.
  3233. So if you set up an entry for a device named /dev/suntape with the 
  3234. appropriate blocking factor, then the user can just run tar xv6
  3235. if this is entry 6 or tar xv if this is the default entry.
  3236.  
  3237. On the other systems, you can accomplish much the same thing by using
  3238. the usual trick of making tar a shell script that just sets up the 
  3239. command line and calls /bin/tar.real with the appropriate parameters.
  3240.  
  3241. This probably still won't make him happy. He'll want to read tapes
  3242. that were created with a blocking factor of 20 using a blocking
  3243. factor of 20 and tapes that were created with a blocking factor of
  3244. 2 using a blocking factor of 2. In other words, he wants tar to
  3245. be clairvoyent. If this is the case, all you can do is tell him that
  3246. he wants something impossible and hope you don't lose the business.
  3247.  
  3248.  
  3249. -- 
  3250. Dave Eisen                               Sequoia Peripherals: (415) 967-5644
  3251. dkeisen@leland.Stanford.EDU              Home:                (415) 321-5154
  3252.        There's something in my library to offend everybody. 
  3253.           --- Washington Coalition Against Censorship
  3254.  
  3255. -----------------------------
  3256.  
  3257. From: Daniel Packman <pack@acd.ucar.edu>
  3258. Subject: Verbose errors on demand - was Re: The Problem with UNIX
  3259. Date: 12 Nov 92 23:26:49 GMT
  3260. Sender: USENET Maintenance <news@ncar.ucar.edu>
  3261. To:       unix-wizards@sem.brl.mil
  3262.  
  3263. In article <1992Nov12.204710.5808@reed.edu> kanderso@reed.edu (Karl Anderson) writes:
  3264. >
  3265. >Is there any reason why there can't be another stream for more
  3266. >user-friendly messages?  We have stdin and stderr, why can't there be
  3267. >a standard verbose stream as well?  Experienced users could just
  3268. >direct it to /dev/null , or, to save cpu time, could have a flag that
  3269. >would disable it altogether.
  3270. >
  3271. I see no reason for the complexity of another stream... just have an
  3272. environment variable "VERBOSE" which, when defined, would give reams
  3273. of nasty commentary, ring terminal bells, and blow terminal whistles.
  3274.  
  3275. --
  3276. Dan Packman     NCAR                             INTERNET: pack@ncar.UCAR.EDU
  3277. (303) 497-1427  P.O. Box 3000
  3278.                 Boulder, CO  80307-3000        NSI/DECNET: 9583::PACK
  3279.  
  3280. -----------------------------
  3281.  
  3282. From: David B Stewart <dstewart+@cs.cmu.edu>
  3283. Subject: RESULT: comp.arch.bus.vmebus passes 227:19
  3284. Keywords: VMEbus
  3285. Date: 13 Nov 92 10:16:08 GMT
  3286. Sender: David C Lawrence <tale@uunet.uu.net>
  3287. Followup-To: news.groups
  3288. Approved: tale@uunet.uu.net
  3289. To:       unix-wizards@sem.brl.mil
  3290.  
  3291. Below is the result of votes received in the comp.arch.bus.vmebus
  3292. new group vote as of 00:01 EST  11 November 1992.
  3293.  
  3294. Vote Tabulation:
  3295.  
  3296.     258 votes received
  3297.      12 simple duplicates reduced to one each
  3298.  
  3299.      19 no
  3300.     227 yes
  3301.     -------------
  3302.     246 total
  3303.  
  3304.     227 yes
  3305.       -  19 no
  3306.     -------------
  3307.     208 margin  (more than 100 more yes than no!)
  3308.  
  3309.     227 / 246 = 0.920 = 92.0%  (more than 2/3 [67%] in favor!)
  3310.  
  3311. Having met the declared criteria, it appears that the vote for
  3312. comp.arch.bus.vmebus has passed.
  3313.  
  3314. The list of voters, grouped by how they voted, and sorted by the "From:" line
  3315. of their email, appears below.  If there are no substantial changes to the
  3316. recorded votes within the 5 days from the posting of this article, the group
  3317. creation message will be issued by David Lawrence (tale@uunet).
  3318.  
  3319. During the vote, 4 ambiguous ballots were received (with no indication of yes
  3320. or no in the headers or the message.) Simple email informing the voter that the
  3321. votes could not be counted were sent, and in each case a new valid vote
  3322. was sent by the voter.
  3323.  
  3324. Thanks to everyone who voted, and I look forward to some interesting
  3325. discussions in the future.
  3326.  
  3327.                     David B. Stewart
  3328.                     <dstewart@cmu.edu>
  3329.  
  3330.  
  3331. No votes (19)
  3332. =============================================================
  3333. AH Al_ashaab <A.H.Al_ashaab@lut.ac.uk>
  3334. Charles Shub <cdash@moet.cs.colorado.edu>
  3335. Eric J. Olson <ejo@kaja.gi.alaska.edu> [2 votes reduced to 1]
  3336. Gerry Roston <gerry@frc2.frc.ri.cmu.edu>
  3337. Jon Lin <jwlin@soda.berkeley.edu>
  3338. Sven M. Heinicke <sven@cs.widener.edu> [2 votes reduced to 1]
  3339. al198723@next00.mty.itesm.mx
  3340. austin@franklin.com (Austin G. Hastings)
  3341. barrett@cc.gatech.edu (James Barrett)
  3342. brandt@jarrett.den.mmc.com (Joe Brandt))
  3343. d9bertil@dtek.chalmers.se
  3344. devon!paul@hobbes.cert.org
  3345. eggert@twinsun.com (Paul Eggert)
  3346. emcguire@intellection.com (Ed McGuire)
  3347. ggw@wolves.durham.nc.us (Gregory G. Woodbury)
  3348. kumr!abekas.UUCP!mikep@kumr.lns.com (Mike Park)
  3349. pseudo!mjn@uunet.uu.net (Murray Nesbitt) [2 votes reduced to 1]
  3350. rick@crick.ssctr.bcm.tmc.edu (Richard H. Miller)
  3351. sp0mikpa@josefin.his.se (Mikael Parknert)
  3352.  
  3353. Yes Votes (227)
  3354. ==============================================================
  3355. 88opensi!sartin@uunet.uu.net
  3356. Anay S. Panvalkar <anay@mcnc.org>
  3357. Andre Somberg <inducom!andre@relay.nluug.nl>
  3358. Andy Jackson <arj@cam-orl.co.uk>
  3359. Bob Foery <bobf@verdix.com>
  3360. Bob Herlien <hebo@mbari.org>
  3361. Brad_Nelson@IUS5.IUS.CS.CMU.EDU
  3362. Brian Carlton <bdc@bdcsys.suvl.ca.us>
  3363. Brian Palmer <bpalmer@bbn.com>
  3364. Brian e. Batson <brianb@ims.com>
  3365. Christoph Eck <cec@dxcern.cern.ch>
  3366. D.W.Wright@bnr.co.uk
  3367. DONALD MACKELLAR <dvm@swlvx2.msd.ray.com>
  3368. David Lee <D.Lee@cs.ucl.ac.uk>
  3369. David_B_Stewart@IUS4.IUS.CS.CMU.EDU
  3370. Denis Poussart <poussart@gel.ulaval.ca>
  3371. Edgar Perez <eperez@hpprdos.prd.hp.com>
  3372. Edward McClanahan <edwardm@hpcuhe.cup.hp.com>
  3373. Einar Sjaavik <einar@ade.no>
  3374. Eoin.Hyden@cl.cam.ac.uk
  3375. Florian.Wohlgemuth@rus.uni-stuttgart.de (Florian Wohlgemuth)
  3376. Glenn Kasten <glenn@ready.eng.ready.com>
  3377. HOGLE RICHARD A <HOGLE@crdgw2.crd.ge.com>
  3378. Henning Pangels <hmp@frc2.frc.ri.cmu.edu>
  3379. James McIntosh <James_McIntosh@umcp.natinst.com>
  3380. James Olsen <jolse@dswe.navy.mil.nz>
  3381. Jan Ekkel <inducom!jan@relay.nluug.nl>
  3382. Jian Huang <jhuang@sci.ccny.cuny.edu>
  3383. Jim Cockrell @ NSI <cockerel@cave.arc.nasa.gov>
  3384. Joe Weintraub <jweintr@atlantis.cs.orst.edu>
  3385. John Heimbold <heimbold@cerf.net>
  3386. John Sauter <john@iti.org>
  3387. John M. Jourdain <jmj+@andrew.cmu.edu>
  3388. Jon Kieffer <Jon.Kieffer@faceng.anu.edu.au>
  3389. Jurriaan Vreeburg <vreeburg@fys.ruu.nl>
  3390. Kai Atle Myrvang <kai@ade.no>
  3391. Klaus Rennecke <marion@cs.tu-berlin.de>
  3392. Larry_Anglin@quickmail.natinst.com (Larry Anglin)
  3393. Mark Williams <markw@hpcss01.cup.hp.com>
  3394. Mark Wuest <violin!mdw%trumpet.att.com@violin.att.com>
  3395. Markus Traber <traber@ppc.lpc.ethz.ch>
  3396. Matthieu Herrb <matthieu@idefix.laas.fr>
  3397. Meindert Kuipers <inducom!meindert@relay.nluug.nl>
  3398. Michael M. O'Dorney <mmo2273@aw2.fsl.ca.boeing.com>
  3399. Michael Quinn <MJQUINN%PUCC.BITNET@bitnet.cc.cmu.edu>
  3400. Ninane%fynu.ucl.ac.be@bitnet.cc.cmu.edu
  3401. Oded Ravid <odedr@ie.technion.ac.il> [2 'yes votes reduced to 1]
  3402. Orion@cup.portal.com [2 'yes votes reduced to 1]
  3403. Paul Wilkinson <pwilkins@tsotsi.demon.co.uk>
  3404. Paul Qualtrough <paulq@spider.co.uk>
  3405. Pete Lyall <plyall@lookout.it.uswc.uswest.com>
  3406. Phil Kester <philk@verdix.com>
  3407. Pirawat Watanapongse <pw@cacs.usl.edu> [2 'yes' votes reduced to 1]
  3408. Reidar Strand <reidar@ade.no>
  3409. Remko van Driel <inducom!remko@relay.nluug.nl>
  3410. Rene Leiva <rene@cs.ualberta.ca>
  3411. Richard.Voyles@B.GP.CS.CMU.EDU
  3412. Robert J. Docktor <rdocktor@pica.army.mil>
  3413. Rolf Dietze <fornax@cs.tu-berlin.de>
  3414. Ron Fox <fox@foxsun.nscl.msu.edu>
  3415. SYSTEM@cycl.phys.tue.nl
  3416. Sean Quinlan <sean@cs.stanford.edu>
  3417. Sinan Karasu <sinan@atc.boeing.com>
  3418. Steve Blachman <sblachma@aoc.nrao.edu>
  3419. Steven King (503) 627-2736 <sjk@stapledon.labs.tek.com>
  3420. Stuart Quick <stu1@kaa.ee.umist.ac.uk>
  3421. Sundar Kuttalingam <wiltel!sundark@uunet.uu.net>
  3422. Timothy J Chappell <ee90tjc@brunel.ac.uk>
  3423. Venneman John <Venneman_John@mm.ssd.lmsc.lockheed.com>
  3424. Vincent Verleun <verleun@fys.ruu.nl>
  3425. Vuorimaa Petri Kalevi <pv@cs.tut.fi>
  3426. Walter E Miller @ NSI <wmiller@cave.arc.nasa.gov>
  3427. ZAL@sscvx1.ssc.gov
  3428. abg@beowulf.epm.ornl.gov (Alex L. Bangs)
  3429. adams@pdv2.fmr.maschinenbau.th-darmstadt.de (Adams)
  3430. alfredb@deathstar.wv.tek.com
  3431. apoyner@as.arizona.edu (Tony Poyner) [2 'yes votes reduced to 1]
  3432. barryn@world.std.com (barry n nelson)
  3433. bbieszk@nis.naitc.com (Bob Bieszk) [2 'yes votes reduced to 1]
  3434. bernie@metapro.dialix.oz.au
  3435. biocca@csg.lbl.gov (Alan K Biocca)
  3436. bmw@isgtec.com (Bruce M. Walker)
  3437. budelsky@ikp.uni-koeln.de (Dietmar Budelsky)
  3438. butler@ursula.natinst.com (Paul Butler)
  3439. cdl@mpl.ucsd.edu (Carl Lowenstein)
  3440. cheilek@famine.ssd.lmsc.lockheed.com (Alan Cheilek)
  3441. christ@ostar.pen.tek.com (Chris Tilt)
  3442. clh@sparky.mda.ca (Christian Lam)
  3443. comore@arcetri.astro.it (Gianni Comoretto)
  3444. comtec!tang!robert@ucsd.edu (Robert Redfield)
  3445. craigc@eagle.natinst.com (Craig Conway)
  3446. crispen <@ada3.ca.boeing.com:crispen@efftoo.boeing.com>
  3447. cummings@falcon.natinst.com (Rodney Cummings)
  3448. curry@tc.fluke.com (John Curry)
  3449. curtiss@burn.colorado.edu (Brian Curtiss)
  3450. cvd@aberystwyth.ac.uk
  3451. cwk@irrational.ssc.gov (Carl Kalbfleisch)
  3452. cyclone@netcom.com (Bill Sheppard)
  3453. dank@blacks.jpl.nasa.gov (Daniel R. Kegel)
  3454. dap@anubis.network.com (Dave Peterson)
  3455. dawn%grumpy@kssib.ksc.nasa.gov (Dawn Stewart)
  3456. dbruce@ll.mit.edu (Dave Bruce)
  3457. dbsun!harbison@wupost.wustl.edu (harbison)
  3458. dc@navstar.lanl.gov (Darrell Call)
  3459. djc@phebos.aps.anl.gov (Dan Ciarlette)
  3460. dkocinsk@ehsl.mitre.org (David Kocinski)
  3461. dnewcomb@whale.st.usm.edu (Donald R. Newcomb)
  3462. donaldlf@cs.rose-hulman.edu
  3463. dufault@alliant.com (Peter Dufault)
  3464. dwells@fits.cv.nrao.edu (Don Wells)
  3465. ediger!neufeld@gatech.edu (Keith Neufeld)
  3466. erik@pluto.newcastle.edu.au (Erik Plesner)
  3467. ernst@ik3vdg.kfk.de (Albrecht Ernst)
  3468. erolfe@ll.mit.edu (Ed Rolfe)
  3469. eurocor!mike@uunet.uu.net (Mike Geipel)
  3470. faught@berserk.ssc.gov (Ed Faught)
  3471. floyd@wmi.com (Floyd Miller)
  3472. frtjeb@efe.frk.cdc.com (Jens Ebert (69-6305-299))
  3473. fstbab@ambrosia.lerc.nasa.gov (Theresa Babrauckas)
  3474. galloway@derek.ecs.umass.edu (john galloway) [2 'yes votes reduced to 1]
  3475. ganesan@lynx.com (Ganesan)
  3476. gca!faill@uunet.uu.net (Peter Faill)
  3477. gee@dretor.dciem.dnd.ca
  3478. gerd@zaphod.physik.fu-berlin.de (Gerd Buntkowsky)
  3479. gilbert@comm.mot.com (Steve Gilbert)
  3480. gjn@phebos.aps.anl.gov (Greogry J. Nawrocki)
  3481. glens@falcon.natinst.com (Glen Sescila)
  3482. gordon@tpocc.gsfc.nasa.gov (Gordon Miller)
  3483. grima@iphase.com (Gary Rima)
  3484. groves@tcville.hac.com (Gillian Groves)
  3485. gt@prosun.first.gmd.de (Gerd Truschinski)
  3486. guycole@netcom.com (Guy Cole)
  3487. harry@neuronz.jpl.nasa.gov (Harry Langenbacher)
  3488. heiby@chg.mcd.mot.com (Ron Heiby)
  3489. heidi@falcon.natinst.com (Heidi Frock)
  3490. hill@luke.atdiv.lanl.gov (Jeff Hill)
  3491. hodapp@nvl.army.mil (John Hodapp)
  3492. hwajin@iphasew.com
  3493. jablin@eagle.natinst.com (Mike Jablin)
  3494. jaime@eagle.natinst.com (Jaime Edwards)
  3495. jcp@aplexus.jhuapl.edu (John C. Peden)
  3496. jfinn@ll.mit.edu (Joe Finnivan)
  3497. jhorstko@rosebud.cv.nrao.edu (Jim Horstkotte)
  3498. jkreznar@ininx.com (John E. Kreznar)
  3499. jmoudy@jabba.ess.harris.com (James D. Moudy)
  3500. jms@tardis.tymnet.com (Joe Smith)
  3501. jones@cs.buffalo.edu (Terry A. Jones)
  3502. jpmott%sunspot.nosc.mil@nosc.mil (Jon Mott)
  3503. jtillema@panda.lpl.arizona.edu (John Tillema)
  3504. jtwp%ukfca1@sj.ate.slb.com
  3505. kat@genisco.gtc.com (Kathryn Fielding)
  3506. kemp@dxcern.cern.ch (Douglas Kemp)
  3507. kevin@jd.b17a.ingr.com (Kevin Pammett)
  3508. kiki@ferrari.matra-espace.fr (Graulle Christophe)
  3509. koss@engin.umich.edu
  3510. lewis@csg.lbl.gov (Steve Lewis)
  3511. magnaud@irit.fr
  3512. markm@ee.ubc.ca (mark milligan)
  3513. martinez@mailbox.syr.edu (Kenneth Mtz. (YONIX))
  3514. mcrware!johnl@uunet.uu.net (John Lengeling)
  3515. mistik@grex.ann-arbor.mi.us (Mustafa Soysal)
  3516. mitchell@aaec1.aaec.com
  3517. mkumar@cs.utexas.edu (Mohan J. Kumar)
  3518. mmt@redbrick.com (Maxime Taksar KC6ZPS)
  3519. moliver@shadow.eng.pyramid.com (Mike Oliver)
  3520. mrmike@michelotti.ae.ge.com ("Mr. Mike" Passaretti)
  3521. msv@isi.com (Manish S. Vaidya)
  3522. muir@tfs.com (David Muir Sharnoff)
  3523. mwca!bill@uunet.uu.net (Bill Sheppard)
  3524. myer@mar.webo.dg.com (Jeff Myer)
  3525. nealc@tinton.ccur.com
  3526. nicolay@ikp.uni-koeln.de (Norbert Nicolay)
  3527. pardo@sun-valley.stanford.edu (G. Pardo-Castellote) [2 'yes votes reduced to 1]
  3528. paul@suite.sw.oz.au (Paul Antoine)
  3529. pdw@sunbar.mc.duke.edu (Patrick D. Wolf)
  3530. psm%helios.nosc.mil@nosc.mil (Scot McIntosh)
  3531. pyoo@rtoeu.enet.dec.com
  3532. rab@csg.lbl.gov (Robert Belshe)
  3533. raj@eagle.natinst.com (Raj Shelke)
  3534. rice%kuwait@sun.com (George Rice)
  3535. rick@sbcs.sunysb.edu (Rick Spanbauer)
  3536. riendeau@ireq-sat.hydro.qc.ca (Sylvain Riendeau 8573)
  3537. rjm@apl.washington.edu (Bob McKenzie)
  3538. robert@eagle.natinst.com (Robert Canik)
  3539. robison@rocke.electro.swri.edu (Bob Robison)
  3540. robnett@vtu1.mdc.com (Glenn Robnett)
  3541. root@ssw.de (Benno Lange)
  3542. ross@alcatel.ch (David Ross) [2 'yes votes reduced to 1]
  3543. rtw@mtuxj.att.com
  3544. ruman@meroot.eng.uci.edu (ruman)
  3545. salerno@ast.dsd.northrop.com (Peter Salerno)
  3546. santos@vxcrna.cern.ch
  3547. sawey@eagle.natinst.com (David Sawey)
  3548. seth@marge.trg.saic.com (Seth A. Phillips)
  3549. shen@eagle.natinst.com (Tian Shen)
  3550. shuford@cs.utk.edu
  3551. slater@tpocc.gsfc.nasa.gov (Don Slater)
  3552. smb@genrad.com (Steve M. Blumenau)
  3553. srb@ll.mit.edu ( Steve Broadstone)
  3554. srm@matrx.matrix.com (Steve Morris)
  3555. srogers@tad.eds.com (Steve Rogers)
  3556. stassen@id.dth.dk (Flemming Stassen)
  3557. stevez@mallet.med.ge.com (Steve Zanoni 5-4325)
  3558. str@iitb.fhg.de (Struck)
  3559. stu@valinor.mythical.com (Stu Labovitz)
  3560. tcarey@p2tacs.lanl.gov (Tom Carey)
  3561. ted@sangabriel.desktalk.com (Ted Eggers)
  3562. thomson@ursula.natinst.com (Andy Thomson)
  3563. thor@surt.atd.ucar.edu (Richard E. Neitzel)
  3564. tony@microware.co.uk (Tony Mountifield)
  3565. tshann@transquest.oe.fau.edu (Ted Shannon) [2 'yes votes reduced to 1]
  3566. tweekco!alizard@pacbell.com (A.Lizard)
  3567. vanandel@rsf.atd.ucar.edu (Joe VanAndel)
  3568. vestli@ifr.ethz.ch
  3569. volker@sfb256.iam.uni-bonn.de ( Volker A. Brandt )
  3570. ward horner <whorner@macward.gsfc.nasa.gov>
  3571. wbrown@csg.lbl.gov (Bill Brown) [2 'yes votes reduced to 1]
  3572. wdf@ukfca1.sinet.slb.com
  3573. welchj@cs.rpi.edu
  3574. willey@kroy.com (Don Willey)
  3575. winans@phebos.aps.anl.gov (John R. Winans)
  3576. wongi@netcom.com (Isaac Wong)
  3577. woodbury@dogone.enet.dec.com
  3578. wpm@phebos.aps.anl.gov (Bill McDowell)
  3579. wybo@adi.com (Dave Wybo)
  3580. yoshio@ucrengr.ucr.edu (yoshio nakamura)
  3581. yvesb@minas.lockheed.on.ca (Yves Boudreault)
  3582.  
  3583. -----------------------------
  3584.  
  3585. From: Curtis Yarvin <curtis@cs.berkeley.edu>
  3586. Subject: Re: Does Linux use segmentation?
  3587. Date: 13 Nov 92 16:26:29 GMT
  3588. NNTP-Posting-Host: cobra.cs.berkeley.edu
  3589. To:       unix-wizards@sem.brl.mil
  3590.  
  3591. In article <1992Nov13.140201.2005@athena.mit.edu> Graham@DOCKMASTER.NCSC.MIL writes:
  3592. >
  3593. >There are actually Multics systems still around, it's not the failed lab
  3594. >experiment that most text books would lead you to believe. Although 
  3595. >Multics didn't meet all of it's initial design goals, it wasn't a failure.
  3596. >The main reason it didn't catch on was mostly due to a lack of marketing.
  3597.  
  3598. The reason it didn't catch on is because it was a _heinous beast_.
  3599.  
  3600. Followups to comp.unix.wizards, which has hashed out this thread more
  3601. than once before and will surely be glad to provide you with a
  3602. summary.
  3603.  
  3604. c
  3605.  
  3606. -----------------------------
  3607.  
  3608. From: P S Narayan <pnarayan@cs.tamu.edu>
  3609. Subject: system call write
  3610. Date: 13 Nov 92 16:48:55 GMT
  3611. Sender: Read News <news@tamsun.tamu.edu>
  3612. To:       unix-wizards@sem.brl.mil
  3613.  
  3614. When I do a write (fd, buf, bytes), assuming that the file descriptor refers
  3615. to an open block device say disk, is the kernel going to copy buf from user
  3616. space to system buffer or is it going to flush it immediately onto disk ?
  3617. System V literature says that it is copied onto buffer and then by LRU 
  3618. algorithm, it gets flushed when another process tries to access this buffer.
  3619. In that case how can the user process without closing the files, ensure that
  3620. his write system call flushes info onto disk ? Is there a way to do it ?
  3621.  
  3622. My question is how can I get synchronous write ?
  3623.  
  3624. Thanks
  3625. Narayan
  3626. pnarayan@cs.tamu.edu
  3627.  
  3628. -----------------------------
  3629.  
  3630.  
  3631. End of UNIX-WIZARDS Digest
  3632. **************************
  3633.