From scj at yaccman.com  Fri Jul  2 11:36:04 2021
From: scj at yaccman.com (scj at yaccman.com)
Date: Thu, 01 Jul 2021 18:36:04 -0700
Subject: [TUHS] Disassemblers
In-Reply-To: <CAC20D2POxdHJsSvRjSozASUWXQ+YAUaSA+7mAoPx1-JsTYHb1g@mail.gmail.com>
References: <CAEdTPBdbNcsjg64GV4u9_7scP1p3RQGfJniQ+Defbvjr0_cR9w@mail.gmail.com>
 <CAC20D2Ny25FuucygeLRfMfm+gxE8DJPSg+vp0n5OEtC11_Z_fA@mail.gmail.com>
 <CAEdTPBdha+dNCqypSKNuQf0X31oH=M=3Te4GLHyv5WDKE04YTQ@mail.gmail.com>
 <CAC20D2POxdHJsSvRjSozASUWXQ+YAUaSA+7mAoPx1-JsTYHb1g@mail.gmail.com>
Message-ID: <0f8af9213f5e8a3c536047e580a9e5c8@yaccman.com>

I saw this post and it reminded me of a meeting that Dennis and I had
with Bill Wulf.  At one point, Dennis decided to write an optimizer but
gave up after a week or two because when he had coded the data
structures he needed he had filled up the PDP-11 memory!   It was a very
strong part of the Unix meme that Unix and C would run on small
computers since most of the universities couldn't afford bigger ones at
the time. 

When PCC came along and started running on 32-bit machines, I started
thinking about algorithms for optimization.  A problem that I had no
good solution for could be illustrated by a simple piece of code: 

         x = *p; 

         y = *q; 

         q gets changed 

         *q = z; 

The question is, do I need to reload x now because q might have been
changed to point to the same place as p?   At around this time, Al Aho
was invited to go to CMU and give a talk, and he invited me to come with
him.  We spent about an hour and a half one-on-one with Bill Wulf -- I
seem to remember a lot of mutual respect going on.  But when I asked him
about my problem, he really didn't have much to say about it.  I finally
got him to agree that his compiler had a bug.  But he said there was a
flag they could set on the compiler that would turn of optimization and
if your program had mysterious bugs, you should use the flag. 

I recall that Al, always in search of better algorithms, was a bit
disappointed -- I was a bit more pragmatic about it.  On the whole, it
was a good meeting, and the "Engineering ... Compiler" book was one of
my favorites when it came out. 

Steve

---

On 2021-06-19 09:59, Clem Cole wrote:

> On Sat, Jun 19, 2021 at 12:33 PM Henry Bent <henry.r.bent at gmail.com> wrote:
> 
>> Wait, so it was easier to write an emulator for a PDP-10 binary than it would have been to port BLISS to the PDP-11?  Given the different word sizes I would not have expected that.
> 
> BLISS-11 was (way) too big to run in the 64K address of the PDP-11 (even separated I/D).  Originally, it was a PDP-10 cross compiler and later moved to the Vax.   It generated much better code than the original Ritchie or later Johnson compilers.   The code generator/optimizer was famous (literally the book on code optimization was written about it, called of course: "The Design of an Optimizing Compiler" [1] by Wulf and some of his students [ISBN 0444001581] - _a.k.a._ 'The Green Book' worth reading BTW. 
> 
> Later on, DEC's TLG tried at least twice that I know of to make it self-hosting but gave up. Long story (and definitely a different thread) if DEC has not screwed up the marketing of BLISS, I suspect it might have given C a run for the money.  But BLISS _vs_. C is a great example of Cole's law that _Simple Economics always beats Sophisticated Architecture_ [and using Christensen's 'disruptive theory -- it gets better and supplants the incombent]. 
> 
> Anyway, the compiler/code generator/linker for DEC Fortran-IV for RT-11, RSX, and DOS-11 was written in BLISS-11.  So for CU to retarget it for V6 they needed a PDP-10, which they did not have.  So they wrote a simulator.  I remember when they gave a talk about it at Usenix, somebody asked them how well Tenex ran on it. 
> 
>> Did they have a cover sheet or something equivalent that they came with?  I'm having trouble imagining dealing with that much unindexed data on an early system.
> 
> Not to my knowledge.  Two things that I believe we need to do for the TUHS archives to be even more meaningful is 1.) decode them from tp/ar -- even if you read the tape, they are packed together in v5/v6 ar files which are PDP-11 binary.  2.) Create an index of what is there.    
> 
> I've thought about both things but have way too much on my plate to do it myself. 
> 
>> Fascinating.  Thank you as always for the insight.
> 
> Most welcome. 
> Clem  
> бђ§
 

Links:
------
[1]
https://www.amazon.com/Design-Optimizing-Compiler-William-Allan/dp/0444001581
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210701/32e996e1/attachment.htm>

From crossd at gmail.com  Fri Jul  2 12:05:42 2021
From: crossd at gmail.com (Dan Cross)
Date: Thu, 1 Jul 2021 22:05:42 -0400
Subject: [TUHS] First machine to run rogue?
Message-ID: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>

What was the first machine to run rogue? I understand that it was written
by Glenn Wichman and Michael Toy at UC Santa Cruz ca. 1980, using the
`curses` library (Ken Arnold's original, not Mary Ann's rewrite). I've seen
at least one place that indicates it first ran on 6th Edition, but that
doesn't sound right to me. The first reference I can find in BSD is in 2.79
("rogue.doc"), which also appears to be the first release to ship curses.

Anyone have any info? Thanks!

        - Dan C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210701/b76f4fa2/attachment.htm>

From scj at yaccman.com  Fri Jul  2 12:13:05 2021
From: scj at yaccman.com (scj at yaccman.com)
Date: Thu, 01 Jul 2021 19:13:05 -0700
Subject: [TUHS] [tuhs] Dennis Ritchie's couch
In-Reply-To: <CAKzdPgy6DnFuRwxT4_ZE3qoS5HP2Ze0=G_SXm1i7XQtNbeg_Dw@mail.gmail.com>
References: <CMM.0.95.0.1621987920.beebe@gamma.math.utah.edu>
 <CAKzdPgzJsQKMx5BB3sybzAd2HRUnd6L0K-akVepL+538_UOC2w@mail.gmail.com>
 <20210526030341.GD27558@mcvoy.com>
 <2834EEEA-1C32-461B-900B-7480CCC4399B@iitbombay.org>
 <CAKzdPgy6DnFuRwxT4_ZE3qoS5HP2Ze0=G_SXm1i7XQtNbeg_Dw@mail.gmail.com>
Message-ID: <e8ce832d5d6ccdc9e4ccc40f7a1d7aec@yaccman.com>

I found Dennis's compiler to be a thing of beauty when compiling
statements, but hell on wheels when doing expressions.  One of the
motivations for writing Yacc was that I wanted to add the exclusive or
into the expression syntax and we had agreed on the character (^) and
the precedence.  Practically the whole expression grammar needed to be
rewritten, and small typos created un-debuggable chaos.  The state of
the art at the time was to write multi-layered grammars for each
precedence level.  A paper was published on how to shrink the resulting
parsing tables by eliminating redundant states.   I realized that the
same results could be obtained by writing an ambiguous expression
grammar and using a precedence table to resolve the ambiguities.  The
initial response in the academic community to programming with ambiguous
grammars was somewhere between skeptical and horrified -- as if I had
shown porn to a Victorian.  So Al and I worked out a proof that we would
get the same optimized parser in a much more intuitive way. 

I do agree with Rob that some of the languages that Yacc gave birth to
should never have been born.  Remember, though, that the dominant
language at the time was FORTRAN, and it had all sorts of strange
implementation issues in their hand-written compilers.  Things like
subscript indices had to be single variables in some places, and in
others could have a constant added to the index.  One of Yacc's best
features was that it made consistency of usage the path of least
resistance when designing the language, and the grammar was often easier
to understand than the programming manual.  At Bell Labs, Barbara Ryder
wrote a program that would read FORTRAN and detect things that would not
work on one or more of the six major FORTRAN's at the time.  It was an
inspiration for me, later, do the same thing with Lint. 

I do suggest that having languages like C++ that have bloated up to over
1000 pages in the programmer reference doesn't feel like a real advance,
especially since the real language problems of today are how to program
very large numbers of processor-like objects on a single chip.  We need
new ways to think, and I doubt that we'll get there by making C++
require a 2000-page manual.

---

On 2021-05-25 23:52, Rob Pike wrote:

> I enjoy writing recursive descent parsers, and I enjoy the grammars that result from such parsers when cleanly done. 
> 
> I do agree though that if you grammar is being invented as you go, yacc can be a boon. But in a sense, that's also it's biggest failing: it makes it too easy to write bad grammars. 
> 
> -rob 
> 
> On Wed, May 26, 2021 at 4:22 PM Bakul Shah <bakul at iitbombay.org> wrote: 
> 
>> Many existing programming languages do have a simple enough
>> syntax to make it easy to write a recursive descent parser for them
>> but not alll.
>> 
>> Handwritten recursive descent parsers are often LL(1) with may be 
>> a separate operator-precedence parsing for expressions.
>> 
>> If you are defining a new language syntax you can make sure parsing
>> is easy but not all languages are LL(1) (which is a subset of LALR(1),
>> which is a subset of LR(1), which is a subset of GLR). Handwritten
>> parsers for these more general grammars are bound to get more
>> complicated.
>> 
>> Even *we* understand parsing, writing a parser for some existing
>> languages  which grew "organically" can become tedious, or
>> complicated or adhoc. Often such languages have no well specified
>> grammar (the code is the specification!). A yacc grammar would help.
>> 
>> Often one writes a yacc grammar while a new language & its syntax
>> is evolving. Changing a yacc file is more localized & easier than fixing
>> up a handwritten parser. Even Go has such a grammar initially.
>> 
>> -- Bakul
>> 
>>> On May 25, 2021, at 8:03 PM, Larry McVoy <lm at mcvoy.com> wrote:
>>> 
>>> You do, I don't.  I'm not alone in my lack of understanding.
>>> 
>>> I think that all the things that yacc solved, Steve gets some kudos.
>>> I've used it a bunch and I did not need to be as smart as you or
>>> Steve to get the job done.
>>> 
>>> You getting past that is cool but it doesn't make his work less.
>>> 
>>> On Wed, May 26, 2021 at 10:37:45AM +1000, Rob Pike wrote:
>>>> And today, we understand parsing so well we don't need yacc.
>>>> 
>>>> -rob
>>>> 
>>>> 
>>>> On Wed, May 26, 2021 at 10:20 AM Nelson H. F. Beebe <beebe at math.utah.edu>
>>>> wrote:
>>>> 
>>>>> The last article of the latest issue of the Communications of the ACM
>>>>> that appeared electronically earlier today is a brief interview with
>>>>> this year's ACM Turing Award winners, Al Aho and Jeff Ullman.
>>>>> 
>>>>> The article is
>>>>> 
>>>>> Last byte: Shaping the foundations of programming languages
>>>>> https://doi.org/10.1145/3460442
>>>>> Comm. ACM 64(6), 120, 119, June 2021.
>>>>> 
>>>>> and it includes a picture of the two winners sitting on Dennis
>>>>> Ritchie's couch.
>>>>> 
>>>>> I liked this snippet from Jeff Ullman, praising fellow list member
>>>>> Steve Johnson's landmark program, yacc:
>>>>> 
>>>>>>> ...
>>>>>>> At the time of the first Fortran compiler, it took several
>>>>>>> person-years to write a parser.  By the time yacc came around,
>>>>>>> you could do it in an afternoon.
>>>>>>> ...
>>>>> 
>>>>> 
>>>>> -------------------------------------------------------------------------------
>>>>> - Nelson H. F. Beebe                    Tel: +1 801 581 5254
>>>>> -
>>>>> - University of Utah                    FAX: +1 801 581 4148
>>>>> -
>>>>> - Department of Mathematics, 110 LCB    Internet e-mail:
>>>>> beebe at math.utah.edu  -
>>>>> - 155 S 1400 E RM 233                       beebe at acm.org
>>>>> beebe at computer.org -
>>>>> - Salt Lake City, UT 84112-0090, USA    URL:
>>>>> http://www.math.utah.edu/~beebe/ -
>>>>> 
>>>>> -------------------------------------------------------------------------------
>>>>> 
>>> 
>>> -- 
>>> ---
>>> Larry McVoy                        lm at mcvoy.com [1]             http://www.mcvoy.com/lm
 

Links:
------
[1] http://mcvoy.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210701/b4c2aad0/attachment.htm>

From clemc at ccc.com  Fri Jul  2 12:51:22 2021
From: clemc at ccc.com (Clem Cole)
Date: Thu, 1 Jul 2021 22:51:22 -0400
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
Message-ID: <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>

I first got it on V7, as I said on our 11/70 for sure but I don’t remember
if we had it on the 11/60 before that.

On Thu, Jul 1, 2021 at 10:07 PM Dan Cross <crossd at gmail.com> wrote:

> What was the first machine to run rogue? I understand that it was written
> by Glenn Wichman and Michael Toy at UC Santa Cruz ca. 1980, using the
> `curses` library (Ken Arnold's original, not Mary Ann's rewrite). I've seen
> at least one place that indicates it first ran on 6th Edition, but that
> doesn't sound right to me. The first reference I can find in BSD is in 2.79
> ("rogue.doc"), which also appears to be the first release to ship curses.
>
> Anyone have any info? Thanks!
>
>         - Dan C.
>
> --
Sent from a handheld expect more typos than usual
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210701/42013602/attachment.htm>

From robpike at gmail.com  Fri Jul  2 14:40:09 2021
From: robpike at gmail.com (Rob Pike)
Date: Fri, 2 Jul 2021 14:40:09 +1000
Subject: [TUHS] [tuhs] Dennis Ritchie's couch
In-Reply-To: <CAKzdPgxGOZLLQzzPKe3kyAq1soAYPHwyeVP2iePiE8zMSk=f7g@mail.gmail.com>
References: <CMM.0.95.0.1621987920.beebe@gamma.math.utah.edu>
 <CAKzdPgzJsQKMx5BB3sybzAd2HRUnd6L0K-akVepL+538_UOC2w@mail.gmail.com>
 <20210526030341.GD27558@mcvoy.com>
 <2834EEEA-1C32-461B-900B-7480CCC4399B@iitbombay.org>
 <CAKzdPgy6DnFuRwxT4_ZE3qoS5HP2Ze0=G_SXm1i7XQtNbeg_Dw@mail.gmail.com>
 <e8ce832d5d6ccdc9e4ccc40f7a1d7aec@yaccman.com>
 <CAKzdPgw6zkXg9tB8uoPOZBv2C5nV8=N4kuW8-tHCUoby=9ki+Q@mail.gmail.com>
 <CAKzdPgxGOZLLQzzPKe3kyAq1soAYPHwyeVP2iePiE8zMSk=f7g@mail.gmail.com>
Message-ID: <CAKzdPgw4PMS1uMLT1gJuz=yPDJ4tfo_9MWkKRiixh57JGtVobQ@mail.gmail.com>

<resending with the program as an attachment, as 100K is considered big
here, and no images hidden in reply. moderator, you can kill the prior
messages. computers are hard.>

To show you what I mean, here is a parser I wrote recently for a simple Go
expression evaluator, in Go. It has all Go's precedence levels and
operators. The one odd detail is that >= etc. can be combined, as in 1 >= 2
> 3, but that doesn't matter in the context of this program and is easily
avoided with a few more lines in cmpList.

I'm using a screen grab because GMail refuses to leave my indentation
alone. I left factor off. It's got all the usual details but it's the leaf
of the grammar and of no interest here.

Note that this could easily have been made a table instead of a bunch of
one-line functions.

Parsers are easy to write. It took us a generation (or more) to understand
that, but it's remarkable nonetheless. The first big step might have been
realizing that recursion was a good idea, even if you weren't writing LISP,
if the data structure is itself recursive.

-rob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/6ba85e78/attachment.htm>
-------------- next part --------------
// parse implements a production in the expression parse hierarchy. Singles and
// doubles are strings holding the operators that are available at at this precedence
// level, while nextLevel implements the next higher precendence level.
func (p *parser) parse(singles, doubles string, nextLevel func(*parser) *Expr) *Expr {
	e := nextLevel(p)
	for {
		if p.peek(true) == eof {
			return e
		}
		op := p.op(singles, doubles)
		if op == "" {
			return e
		}
		e = &Expr{
			op:    op,
			left:  e,
			right: nextLevel(p),
		}
	}
}

// orlist = andList | andList '||' orList.
func orList(p *parser) *Expr {
	return p.parse("", "||", andList)
}

// andlist = cmpList | cmpList '&&' andList.
func andList(p *parser) *Expr {
	return p.parse("", "&&", cmpList)
}

// cmpList = expr | expr ('>' | '<' | '==' | '!=' | '>=' | '<=') expr.
func cmpList(p *parser) *Expr {
	return p.parse("+-|^!><", "==!=>=<=", expr)
}

// expr = term | term ('+' | '-' | '|' | '^') term.
func expr(p *parser) *Expr {
	return p.parse("+-|^!", "", term)
}

// term = factor | factor ('*' | '/' | '%' | '>>' | '<<' | '&' | '&^') factor
func term(p *parser) *Expr {
	return p.parse("*/%&", ">><<&^", factor)
}

// factor = constant | identifier | '+' factor | '-' factor | '^' factor | '!' factor | '(' orList ')'
func factor(p *parser) *Expr {

From ggm at algebras.org  Fri Jul  2 16:29:19 2021
From: ggm at algebras.org (George Michaelson)
Date: Fri, 2 Jul 2021 16:29:19 +1000
Subject: [TUHS] [tuhs] Dennis Ritchie's couch
In-Reply-To: <CAKzdPgw4PMS1uMLT1gJuz=yPDJ4tfo_9MWkKRiixh57JGtVobQ@mail.gmail.com>
References: <CMM.0.95.0.1621987920.beebe@gamma.math.utah.edu>
 <CAKzdPgzJsQKMx5BB3sybzAd2HRUnd6L0K-akVepL+538_UOC2w@mail.gmail.com>
 <20210526030341.GD27558@mcvoy.com>
 <2834EEEA-1C32-461B-900B-7480CCC4399B@iitbombay.org>
 <CAKzdPgy6DnFuRwxT4_ZE3qoS5HP2Ze0=G_SXm1i7XQtNbeg_Dw@mail.gmail.com>
 <e8ce832d5d6ccdc9e4ccc40f7a1d7aec@yaccman.com>
 <CAKzdPgw6zkXg9tB8uoPOZBv2C5nV8=N4kuW8-tHCUoby=9ki+Q@mail.gmail.com>
 <CAKzdPgxGOZLLQzzPKe3kyAq1soAYPHwyeVP2iePiE8zMSk=f7g@mail.gmail.com>
 <CAKzdPgw4PMS1uMLT1gJuz=yPDJ4tfo_9MWkKRiixh57JGtVobQ@mail.gmail.com>
Message-ID: <CAKr6gn04yBeYORTn122=HaDVo1Bjc7U0yVUX55BGy+=BHAnO-Q@mail.gmail.com>

> Note that this could easily have been made a table instead of a bunch of one-line functions.

a table.. hmm. so like.. we could write .. engines to "read" the table
and do things in some kind of (maybe.. finite) way?

I know, lets write a DSL to MAKE THE TABLE...

Is all software "wheel of life" ?

From bakul at iitbombay.org  Fri Jul  2 17:00:21 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Fri, 2 Jul 2021 00:00:21 -0700
Subject: [TUHS] [tuhs] Dennis Ritchie's couch
In-Reply-To: <CAKr6gn04yBeYORTn122=HaDVo1Bjc7U0yVUX55BGy+=BHAnO-Q@mail.gmail.com>
References: <CAKr6gn04yBeYORTn122=HaDVo1Bjc7U0yVUX55BGy+=BHAnO-Q@mail.gmail.com>
Message-ID: <C728300B-6E54-4C25-A160-C1392BE37469@iitbombay.org>



> On Jul 1, 2021, at 11:30 PM, George Michaelson <ggm at algebras.org> wrote:
> 
> п»ї
>> 
>> Note that this could easily have been made a table instead of a bunch of one-line functions.
> 
> a table.. hmm. so like.. we could write .. engines to "read" the table
> and do things in some kind of (maybe.. finite) way?
> 
> I know, lets write a DSL to MAKE THE TABLE...
> 
> Is all software "wheel of life" ?

It would be just an operator precedence table and two functions. One to
parse a factor and one for binary expressions. The table might be something
like an array of {singles, doubles, associativity}, where the Nth entry
has precedence N. The binary expr parser uses the table to essentially
group sub expressions based on precedence and associativity. This is an old
idea. I think at least 4-5 decades old.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/b58fc9b7/attachment.htm>

From crossd at gmail.com  Fri Jul  2 21:24:16 2021
From: crossd at gmail.com (Dan Cross)
Date: Fri, 2 Jul 2021 07:24:16 -0400
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
Message-ID: <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>

Thanks, Clem. I'm curious what other lore is out there: my suspicion is
that rogue never ran on vanilla v6, but it would be great to validate.

On Thu, Jul 1, 2021 at 10:51 PM Clem Cole <clemc at ccc.com> wrote:

> I first got it on V7, as I said on our 11/70 for sure but I don’t remember
> if we had it on the 11/60 before that.
>
> On Thu, Jul 1, 2021 at 10:07 PM Dan Cross <crossd at gmail.com> wrote:
>
>> What was the first machine to run rogue? I understand that it was written
>> by Glenn Wichman and Michael Toy at UC Santa Cruz ca. 1980, using the
>> `curses` library (Ken Arnold's original, not Mary Ann's rewrite). I've seen
>> at least one place that indicates it first ran on 6th Edition, but that
>> doesn't sound right to me. The first reference I can find in BSD is in 2.79
>> ("rogue.doc"), which also appears to be the first release to ship curses.
>>
>> Anyone have any info? Thanks!
>>
>>         - Dan C.
>>
>> --
> Sent from a handheld expect more typos than usual
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/db99fb1a/attachment.htm>

From arnold at skeeve.com  Fri Jul  2 21:40:32 2021
From: arnold at skeeve.com (arnold at skeeve.com)
Date: Fri, 02 Jul 2021 05:40:32 -0600
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
 <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>
Message-ID: <202107021140.162BeWZt018129@freefriends.org>

Is the rogue source extant?  I remember many people spending many
hours on rogue on the 4.[12] BSD vax at Georgia Tech.

ISTR that rogue only came as a binary, there was no source.

Arnold

Dan Cross <crossd at gmail.com> wrote:

> Thanks, Clem. I'm curious what other lore is out there: my suspicion is
> that rogue never ran on vanilla v6, but it would be great to validate.
>
> On Thu, Jul 1, 2021 at 10:51 PM Clem Cole <clemc at ccc.com> wrote:
>
> > I first got it on V7, as I said on our 11/70 for sure but I don’t remember
> > if we had it on the 11/60 before that.
> >
> > On Thu, Jul 1, 2021 at 10:07 PM Dan Cross <crossd at gmail.com> wrote:
> >
> >> What was the first machine to run rogue? I understand that it was written
> >> by Glenn Wichman and Michael Toy at UC Santa Cruz ca. 1980, using the
> >> `curses` library (Ken Arnold's original, not Mary Ann's rewrite). I've seen
> >> at least one place that indicates it first ran on 6th Edition, but that
> >> doesn't sound right to me. The first reference I can find in BSD is in 2.79
> >> ("rogue.doc"), which also appears to be the first release to ship curses.
> >>
> >> Anyone have any info? Thanks!
> >>
> >>         - Dan C.
> >>
> >> --
> > Sent from a handheld expect more typos than usual
> >

From crossd at gmail.com  Fri Jul  2 22:14:59 2021
From: crossd at gmail.com (Dan Cross)
Date: Fri, 2 Jul 2021 08:14:59 -0400
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <202107021140.162BeWZt018129@freefriends.org>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
 <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>
 <202107021140.162BeWZt018129@freefriends.org>
Message-ID: <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>

On Fri, Jul 2, 2021 at 7:40 AM <arnold at skeeve.com> wrote:

> Is the rogue source extant?  I remember many people spending many
> hours on rogue on the 4.[12] BSD vax at Georgia Tech.
>
> ISTR that rogue only came as a binary, there was no source.
>

It is; it looks like it was first distributed with 4.3BSD-Tahoe. The
sources there are listed as "public domain rogue", but I'm not sure about
the provenance of that code.

        - Dan C.


Arnold
>
> Dan Cross <crossd at gmail.com> wrote:
>
> > Thanks, Clem. I'm curious what other lore is out there: my suspicion is
> > that rogue never ran on vanilla v6, but it would be great to validate.
> >
> > On Thu, Jul 1, 2021 at 10:51 PM Clem Cole <clemc at ccc.com> wrote:
> >
> > > I first got it on V7, as I said on our 11/70 for sure but I don’t
> remember
> > > if we had it on the 11/60 before that.
> > >
> > > On Thu, Jul 1, 2021 at 10:07 PM Dan Cross <crossd at gmail.com> wrote:
> > >
> > >> What was the first machine to run rogue? I understand that it was
> written
> > >> by Glenn Wichman and Michael Toy at UC Santa Cruz ca. 1980, using the
> > >> `curses` library (Ken Arnold's original, not Mary Ann's rewrite).
> I've seen
> > >> at least one place that indicates it first ran on 6th Edition, but
> that
> > >> doesn't sound right to me. The first reference I can find in BSD is
> in 2.79
> > >> ("rogue.doc"), which also appears to be the first release to ship
> curses.
> > >>
> > >> Anyone have any info? Thanks!
> > >>
> > >>         - Dan C.
> > >>
> > >> --
> > > Sent from a handheld expect more typos than usual
> > >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/2c1630b8/attachment.htm>

From clemc at ccc.com  Fri Jul  2 23:04:47 2021
From: clemc at ccc.com (Clem Cole)
Date: Fri, 2 Jul 2021 09:04:47 -0400
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <202107021140.162BeWZt018129@freefriends.org>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
 <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>
 <202107021140.162BeWZt018129@freefriends.org>
Message-ID: <CAC20D2PepaO8mtat=J1CPg-nFO4-c4WbjNAK+_Q60a1_y5djEw@mail.gmail.com>

On Fri, Jul 2, 2021 at 7:40 AM <arnold at skeeve.com> wrote:

> Is the rogue source extant?
>
Yes -- but ...

>
> ISTR that rogue only came as a binary, there was no source.
>
That was true at first, certainly the original binary was passed around.
It might have been an early net.noise  pass around, but ISTR for Tektronix
on V7 I got the binary from someone at UCB directly -- Mark Bales, maybe,
who was a UCB doing a summer Internship and he may have brought them with
him.

The sources were later released as part of a CSRG release in the post 4.2
timeframe ??reno/tahoe I think??, but by then the binary for the Vax was
pretty popular and the sources had begun to sneak out - as I know I had
them at Masscomp and Sun had them too.  Paul Cantrell (of video teco fame)
created a color version of it and IIRC may have added some other graphics
when running on a Masscomp tube.
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/b20a2922/attachment.htm>

From clemc at ccc.com  Fri Jul  2 23:07:15 2021
From: clemc at ccc.com (Clem Cole)
Date: Fri, 2 Jul 2021 09:07:15 -0400
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
 <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>
 <202107021140.162BeWZt018129@freefriends.org>
 <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>
Message-ID: <CAC20D2Oo62Q-PemN7r5RBxjVS+fsYvKddmu73xBGBnZkFWr+1w@mail.gmail.com>

On Fri, Jul 2, 2021 at 8:15 AM Dan Cross <crossd at gmail.com> wrote:

> It is; it looks like it was first distributed with 4.3BSD-Tahoe. The
> sources there are listed as "public domain rogue", but I'm not sure about
> the provenance of that code.
>
That sounds right, you should ask Ken Arnold offline, I bet he had a better
idea.  He would have made them available to Keith.
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/35a976d1/attachment.htm>

From bakul at iitbombay.org  Fri Jul  2 23:11:21 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Fri, 2 Jul 2021 06:11:21 -0700
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>
References: <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>
Message-ID: <E6590126-A8CA-4BC0-B7F5-D49956BAFBFB@iitbombay.org>

Glenn wrote up a brief history where he says it was first distributed with 4.2bsd.
https://web.archive.org/web/19980625212119/http://www.wichman.org/roguehistory.html

@ Fortune Systems in 1983/83 we had 3-4 college students working for a contract company Santa Cruz Operations(?) doing testing for us. He was one of them and later we hired him full time. I didn’t interact with him much though and once I quit Fortune I lost track of him. I think initially we had only a rogue binary on 4.1 running on VAX780 but I do not recall if he brought it to Fortune. Someone later ported it to the  Fortune machine. I used to play Rogue while waiting for kernel compiles to finish. A few years ago I got it on FreeBSD and my muscle memory came back 100%!

> On Jul 2, 2021, at 5:16 AM, Dan Cross <crossd at gmail.com> wrote:
> п»ї
> On Fri, Jul 2, 2021 at 7:40 AM <arnold at skeeve.com> wrote:
>> Is the rogue source extant?  I remember many people spending many
>> hours on rogue on the 4.[12] BSD vax at Georgia Tech.
>> 
>> ISTR that rogue only came as a binary, there was no source.
> 
> It is; it looks like it was first distributed with 4.3BSD-Tahoe. The sources there are listed as "public domain rogue", but I'm not sure about the provenance of that code.
> 
>         - Dan C.
> 
> 
>> Arnold
>> 
>> Dan Cross <crossd at gmail.com> wrote:
>> 
>> > Thanks, Clem. I'm curious what other lore is out there: my suspicion is
>> > that rogue never ran on vanilla v6, but it would be great to validate.
>> >
>> > On Thu, Jul 1, 2021 at 10:51 PM Clem Cole <clemc at ccc.com> wrote:
>> >
>> > > I first got it on V7, as I said on our 11/70 for sure but I don’t remember
>> > > if we had it on the 11/60 before that.
>> > >
>> > > On Thu, Jul 1, 2021 at 10:07 PM Dan Cross <crossd at gmail.com> wrote:
>> > >
>> > >> What was the first machine to run rogue? I understand that it was written
>> > >> by Glenn Wichman and Michael Toy at UC Santa Cruz ca. 1980, using the
>> > >> `curses` library (Ken Arnold's original, not Mary Ann's rewrite). I've seen
>> > >> at least one place that indicates it first ran on 6th Edition, but that
>> > >> doesn't sound right to me. The first reference I can find in BSD is in 2.79
>> > >> ("rogue.doc"), which also appears to be the first release to ship curses.
>> > >>
>> > >> Anyone have any info? Thanks!
>> > >>
>> > >>         - Dan C.
>> > >>
>> > >> --
>> > > Sent from a handheld expect more typos than usual
>> > >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/3ce4dfb2/attachment.htm>

From rich.salz at gmail.com  Fri Jul  2 23:22:13 2021
From: rich.salz at gmail.com (Richard Salz)
Date: Fri, 2 Jul 2021 09:22:13 -0400
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <E6590126-A8CA-4BC0-B7F5-D49956BAFBFB@iitbombay.org>
References: <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>
 <E6590126-A8CA-4BC0-B7F5-D49956BAFBFB@iitbombay.org>
Message-ID: <CAFH29tq-G1CKjdoC5LngM7joQ=-F0NOhOa2DeygFUG4FoZEP3w@mail.gmail.com>

Ken Arnold posted the original source to
https://sourceforge.net/projects/rogue/ back in 2000.

On Fri, Jul 2, 2021 at 9:12 AM Bakul Shah <bakul at iitbombay.org> wrote:

> Glenn wrote up a brief history where he says it was first distributed with
> 4.2bsd.
>
> https://web.archive.org/web/19980625212119/http://www.wichman.org/roguehistory.html
>
> @ Fortune Systems in 1983/83 we had 3-4 college students working for a
> contract company Santa Cruz Operations(?) doing testing for us. He was one
> of them and later we hired him full time. I didn’t interact with him much
> though and once I quit Fortune I lost track of him. I think initially we
> had only a rogue binary on 4.1 running on VAX780 but I do not recall if he
> brought it to Fortune. Someone later ported it to the  Fortune machine. I
> used to play Rogue while waiting for kernel compiles to finish. A few years
> ago I got it on FreeBSD and my muscle memory came back 100%!
>
> On Jul 2, 2021, at 5:16 AM, Dan Cross <crossd at gmail.com> wrote:
>
> п»ї
> On Fri, Jul 2, 2021 at 7:40 AM <arnold at skeeve.com> wrote:
>
>> Is the rogue source extant?  I remember many people spending many
>> hours on rogue on the 4.[12] BSD vax at Georgia Tech.
>>
>> ISTR that rogue only came as a binary, there was no source.
>>
>
> It is; it looks like it was first distributed with 4.3BSD-Tahoe. The
> sources there are listed as "public domain rogue", but I'm not sure about
> the provenance of that code.
>
>         - Dan C.
>
>
> Arnold
>>
>> Dan Cross <crossd at gmail.com> wrote:
>>
>> > Thanks, Clem. I'm curious what other lore is out there: my suspicion is
>> > that rogue never ran on vanilla v6, but it would be great to validate.
>> >
>> > On Thu, Jul 1, 2021 at 10:51 PM Clem Cole <clemc at ccc.com> wrote:
>> >
>> > > I first got it on V7, as I said on our 11/70 for sure but I don’t
>> remember
>> > > if we had it on the 11/60 before that.
>> > >
>> > > On Thu, Jul 1, 2021 at 10:07 PM Dan Cross <crossd at gmail.com> wrote:
>> > >
>> > >> What was the first machine to run rogue? I understand that it was
>> written
>> > >> by Glenn Wichman and Michael Toy at UC Santa Cruz ca. 1980, using the
>> > >> `curses` library (Ken Arnold's original, not Mary Ann's rewrite).
>> I've seen
>> > >> at least one place that indicates it first ran on 6th Edition, but
>> that
>> > >> doesn't sound right to me. The first reference I can find in BSD is
>> in 2.79
>> > >> ("rogue.doc"), which also appears to be the first release to ship
>> curses.
>> > >>
>> > >> Anyone have any info? Thanks!
>> > >>
>> > >>         - Dan C.
>> > >>
>> > >> --
>> > > Sent from a handheld expect more typos than usual
>> > >
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/02f3e1b3/attachment-0001.htm>

From brad at anduin.eldar.org  Sat Jul  3 01:24:21 2021
From: brad at anduin.eldar.org (Brad Spencer)
Date: Fri, 02 Jul 2021 11:24:21 -0400
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAC20D2Oo62Q-PemN7r5RBxjVS+fsYvKddmu73xBGBnZkFWr+1w@mail.gmail.com> (message
 from Clem Cole on Fri, 2 Jul 2021 09:07:15 -0400)
Message-ID: <xoneecghh7e.fsf@anduin.eldar.org>

Clem Cole <clemc at ccc.com> writes:

> On Fri, Jul 2, 2021 at 8:15 AM Dan Cross <crossd at gmail.com> wrote:
>
>> It is; it looks like it was first distributed with 4.3BSD-Tahoe. The
>> sources there are listed as "public domain rogue", but I'm not sure about
>> the provenance of that code.
>>
> That sounds right, you should ask Ken Arnold offline, I bet he had a better
> idea.  He would have made them available to Keith.
> бђ§


I don't know what it was exactly, but in the mid 1980s a version of
rogue existed for OS-9 Level 2 on the 6809 and I ran it on a Radio Shack
Color Computer.  By the later part of that decade, I had access to a
PDP11 running 2.something BSD and played rogue there too.  The Color
Computer version was either a good clone, or someone had access to the
source code.

This -> http://www.lcurtisboyle.com/nitros9/rogue.html looks like it..
Says 1986 by Epyx



-- 
Brad Spencer - brad at anduin.eldar.org - KC8VKS - http://anduin.eldar.org


From paul.winalski at gmail.com  Sat Jul  3 02:04:21 2021
From: paul.winalski at gmail.com (Paul Winalski)
Date: Fri, 2 Jul 2021 12:04:21 -0400
Subject: [TUHS] pointer disambiguation (was Re:  Disassemers)
Message-ID: <CABH=_VRmGgyEqMvL-w27M=TYTOk=mvP5AAUktdo69Q_NyWPS5A@mail.gmail.com>

On 7/1/21, scj at yaccman.com <scj at yaccman.com> wrote:

> When PCC came along and started running on 32-bit machines, I started
> thinking about algorithms for optimization.  A problem that I had no
> good solution for could be illustrated by a simple piece of code:
>
>          x = *p;
>
>          y = *q;
>
>          q gets changed
>
>          *q = z;
>
> The question is, do I need to reload x now because q might have been
> changed to point to the same place as p?

Yes, this is a very well-known problem in scalar optimization in
compiler engineering.  It's called pointer disambiguation and is part
of the more general problem of data flow analysis.  As you observed,
getting it wrong can lead to very subtle and hard-to-debug correctness
problems.  In the worst case, one has to throw out all current data
flow analysis of global and currently active local variables and start
over. In your example, the statement "*q = z" may end up forcing the
compiler to toss out all data flow information on x and z (and maybe p
and q as well).  If q could possibly point to x and x is in a
register, the assignment forces x to be reloaded before its next use.
Ambiguous pointers prohibit a lot of important optimizations.  This
problem is the source of a lot of bugs in compilers that do aggressive
optimizations.

Fortunately a bit of knowledge of just how "q gets changed" can rescue
the situation.  In strongly-typed languages, for example, if x and z
are different data types, we know the assignment of z through q can't
affect x.  We also know that the assignment can't affect x if x and z
have disjoint scopes.

The 'restrict' keyword in C pointer declarations was added to help
mitigate this problem.

Some compilers also have a command line option that allows the user to
say, "I solemnly swear that I won't do this sort of thing".

-Paul W.

From athornton at gmail.com  Sat Jul  3 02:27:49 2021
From: athornton at gmail.com (Adam Thornton)
Date: Fri, 2 Jul 2021 09:27:49 -0700
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <xoneecghh7e.fsf@anduin.eldar.org>
References: <xoneecghh7e.fsf@anduin.eldar.org>
Message-ID: <12E06B2C-E296-4E0E-9EB8-21D1FD9E0647@gmail.com>

> 
> This -> http://www.lcurtisboyle.com/nitros9/rogue.html looks like it..
> Says 1986 by Epyx
> 


Between https://sourceforge.net/projects/roguelike/ and https://britzl.github.io/roguearchive/ you’ve got a lot to work with.

Adam


From paul.winalski at gmail.com  Sat Jul  3 02:56:40 2021
From: paul.winalski at gmail.com (Paul Winalski)
Date: Fri, 2 Jul 2021 12:56:40 -0400
Subject: [TUHS] Disassemblers
In-Reply-To: <0f8af9213f5e8a3c536047e580a9e5c8@yaccman.com>
References: <CAEdTPBdbNcsjg64GV4u9_7scP1p3RQGfJniQ+Defbvjr0_cR9w@mail.gmail.com>
 <CAC20D2Ny25FuucygeLRfMfm+gxE8DJPSg+vp0n5OEtC11_Z_fA@mail.gmail.com>
 <CAEdTPBdha+dNCqypSKNuQf0X31oH=M=3Te4GLHyv5WDKE04YTQ@mail.gmail.com>
 <CAC20D2POxdHJsSvRjSozASUWXQ+YAUaSA+7mAoPx1-JsTYHb1g@mail.gmail.com>
 <0f8af9213f5e8a3c536047e580a9e5c8@yaccman.com>
Message-ID: <CABH=_VSNzWW57TuufHnDFsgvCN=WZfr8G9PWDxLz4ddVVnJOcg@mail.gmail.com>

I sent a reply to this message to the TUHS mailing list but gmail may
have rejected it and flagged it as spam.

Please email me privately to let me know if the message made it to the list.

-Paul W..

On 7/1/21, scj at yaccman.com <scj at yaccman.com> wrote:
> I saw this post and it reminded me of a meeting that Dennis and I had
> with Bill Wulf.  At one point, Dennis decided to write an optimizer but
> gave up after a week or two because when he had coded the data
> structures he needed he had filled up the PDP-11 memory!   It was a very
> strong part of the Unix meme that Unix and C would run on small
> computers since most of the universities couldn't afford bigger ones at
> the time.
>
> When PCC came along and started running on 32-bit machines, I started
> thinking about algorithms for optimization.  A problem that I had no
> good solution for could be illustrated by a simple piece of code:
>
>          x = *p;
>
>          y = *q;
>
>          q gets changed
>
>          *q = z;
>
> The question is, do I need to reload x now because q might have been
> changed to point to the same place as p?   At around this time, Al Aho
> was invited to go to CMU and give a talk, and he invited me to come with
> him.  We spent about an hour and a half one-on-one with Bill Wulf -- I
> seem to remember a lot of mutual respect going on.  But when I asked him
> about my problem, he really didn't have much to say about it.  I finally
> got him to agree that his compiler had a bug.  But he said there was a
> flag they could set on the compiler that would turn of optimization and
> if your program had mysterious bugs, you should use the flag.
>
> I recall that Al, always in search of better algorithms, was a bit
> disappointed -- I was a bit more pragmatic about it.  On the whole, it
> was a good meeting, and the "Engineering ... Compiler" book was one of
> my favorites when it came out.
>
> Steve

From dot at dotat.at  Sat Jul  3 03:17:35 2021
From: dot at dotat.at (Tony Finch)
Date: Fri, 2 Jul 2021 18:17:35 +0100
Subject: [TUHS] Dennis Ritchie's couch
In-Reply-To: <C728300B-6E54-4C25-A160-C1392BE37469@iitbombay.org>
References: <CAKr6gn04yBeYORTn122=HaDVo1Bjc7U0yVUX55BGy+=BHAnO-Q@mail.gmail.com>
 <C728300B-6E54-4C25-A160-C1392BE37469@iitbombay.org>
Message-ID: <424dde98-7a42-57e6-e13a-83c3e6ccc020@dotat.at>

Bakul Shah <bakul at iitbombay.org> wrote:
> > George Michaelson <ggm at algebras.org> wrote:
> >
> > a table.. hmm. so like.. we could write .. engines to "read" the table
> > and do things in some kind of (maybe.. finite) way?
> >
> > I know, lets write a DSL to MAKE THE TABLE...
> >
> > Is all software "wheel of life" ?
>
> It would be just an operator precedence table and two functions. One to
> parse a factor and one for binary expressions. The table might be something
> like an array of {singles, doubles, associativity}, where the Nth entry
> has precedence N. The binary expr parser uses the table to essentially
> group sub expressions based on precedence and associativity. This is an old
> idea. I think at least 4-5 decades old.

Yes, it's a fairly straightforward to write an operator precedence parser
using a pushdown automaton. Knuth wrote about it in 1962 :-) [page 8]
https://archive.org/details/bitsavers_computersA_13990695

I crufted together a #if evaluator for unifdef nearly 20 years ago, but
it's, um, rather messy. (I was hacking on Dave Yost's code from the 1980s)
http://dotat.at/cgi/git/unifdef.git/blob/HEAD:/unifdef.c#l950

More recently I learned how to write a Pratt parser (1973), which is just
a particular style of operator precedence parser, but when it's done
properly it can be really neat.

https://dl.acm.org/doi/10.1145/512927.512931

The driver loop is tiny, if you set up the table mapping tokens to actions
in the right way, so that the state transition functions handle errors as
well as happy-path evaluation. (Blame Pratt for the field names!)

	static Value
	eval(Parser *p, int rbp) {
		Value v = token[p->tok].nud(p);
		while(token[p->tok].lbp > rbp)
			v = token[p->tok].led(p, v);
		return(v);
	}

Vaughan Pratt also designed the pretty neat Sun logo.

Tony.
-- 
f.anthony.n.finch  <dot at dotat.at>  https://dotat.at/
Channel Islands: Variable or northeasterly 1 to 3, becoming west to
southwest 2 to 4 late evening, backing south to southeast soon after dawn,
veering southwest to west 3 to 5 by noon, locally variable 1 to 3 in the
far south of the area. Smooth or slight, with a low swell developing
later. Mist and fog patches clearing early by early afternoon showers at
first and again later rain and drizzle for a time, overnight and in the
morning. Moderate to good, occasionally poor locally very poor.


From paul.winalski at gmail.com  Sat Jul  3 03:45:14 2021
From: paul.winalski at gmail.com (Paul Winalski)
Date: Fri, 2 Jul 2021 13:45:14 -0400
Subject: [TUHS] Disassemblers
In-Reply-To: <CABH=_VSNzWW57TuufHnDFsgvCN=WZfr8G9PWDxLz4ddVVnJOcg@mail.gmail.com>
References: <CAEdTPBdbNcsjg64GV4u9_7scP1p3RQGfJniQ+Defbvjr0_cR9w@mail.gmail.com>
 <CAC20D2Ny25FuucygeLRfMfm+gxE8DJPSg+vp0n5OEtC11_Z_fA@mail.gmail.com>
 <CAEdTPBdha+dNCqypSKNuQf0X31oH=M=3Te4GLHyv5WDKE04YTQ@mail.gmail.com>
 <CAC20D2POxdHJsSvRjSozASUWXQ+YAUaSA+7mAoPx1-JsTYHb1g@mail.gmail.com>
 <0f8af9213f5e8a3c536047e580a9e5c8@yaccman.com>
 <CABH=_VSNzWW57TuufHnDFsgvCN=WZfr8G9PWDxLz4ddVVnJOcg@mail.gmail.com>
Message-ID: <CABH=_VSRC8VGYyzDF8pfY+iNCM-pxdyATn-K33=83+-qRgv4=Q@mail.gmail.com>

Apparently the email did make it to the TUHS list even though gmail
seemed to have bounced it as spam.  Go figure.

Thanks to all who responded.

-Paul W.

On 7/2/21, Paul Winalski <paul.winalski at gmail.com> wrote:
> I sent a reply to this message to the TUHS mailing list but gmail may
> have rejected it and flagged it as spam.
>
> Please email me privately to let me know if the message made it to the
> list.
>
> -Paul W..

From jpl.jpl at gmail.com  Sat Jul  3 04:07:27 2021
From: jpl.jpl at gmail.com (John P. Linderman)
Date: Fri, 2 Jul 2021 14:07:27 -0400
Subject: [TUHS] Disassemblers
In-Reply-To: <CABH=_VSNzWW57TuufHnDFsgvCN=WZfr8G9PWDxLz4ddVVnJOcg@mail.gmail.com>
References: <CAEdTPBdbNcsjg64GV4u9_7scP1p3RQGfJniQ+Defbvjr0_cR9w@mail.gmail.com>
 <CAC20D2Ny25FuucygeLRfMfm+gxE8DJPSg+vp0n5OEtC11_Z_fA@mail.gmail.com>
 <CAEdTPBdha+dNCqypSKNuQf0X31oH=M=3Te4GLHyv5WDKE04YTQ@mail.gmail.com>
 <CAC20D2POxdHJsSvRjSozASUWXQ+YAUaSA+7mAoPx1-JsTYHb1g@mail.gmail.com>
 <0f8af9213f5e8a3c536047e580a9e5c8@yaccman.com>
 <CABH=_VSNzWW57TuufHnDFsgvCN=WZfr8G9PWDxLz4ddVVnJOcg@mail.gmail.com>
Message-ID: <CAC0cEp97xCsK8XKd1pZNp8FU0J2w4eZSWvn9w0rO32mMLfvgtA@mail.gmail.com>

On a related (optimization) theme,
https://research.swtch.com/hwmm


On Fri, Jul 2, 2021 at 12:58 PM Paul Winalski <paul.winalski at gmail.com>
wrote:

> I sent a reply to this message to the TUHS mailing list but gmail may
> have rejected it and flagged it as spam.
>
> Please email me privately to let me know if the message made it to the
> list.
>
> -Paul W..
>
> On 7/1/21, scj at yaccman.com <scj at yaccman.com> wrote:
> > I saw this post and it reminded me of a meeting that Dennis and I had
> > with Bill Wulf.  At one point, Dennis decided to write an optimizer but
> > gave up after a week or two because when he had coded the data
> > structures he needed he had filled up the PDP-11 memory!   It was a very
> > strong part of the Unix meme that Unix and C would run on small
> > computers since most of the universities couldn't afford bigger ones at
> > the time.
> >
> > When PCC came along and started running on 32-bit machines, I started
> > thinking about algorithms for optimization.  A problem that I had no
> > good solution for could be illustrated by a simple piece of code:
> >
> >          x = *p;
> >
> >          y = *q;
> >
> >          q gets changed
> >
> >          *q = z;
> >
> > The question is, do I need to reload x now because q might have been
> > changed to point to the same place as p?   At around this time, Al Aho
> > was invited to go to CMU and give a talk, and he invited me to come with
> > him.  We spent about an hour and a half one-on-one with Bill Wulf -- I
> > seem to remember a lot of mutual respect going on.  But when I asked him
> > about my problem, he really didn't have much to say about it.  I finally
> > got him to agree that his compiler had a bug.  But he said there was a
> > flag they could set on the compiler that would turn of optimization and
> > if your program had mysterious bugs, you should use the flag.
> >
> > I recall that Al, always in search of better algorithms, was a bit
> > disappointed -- I was a bit more pragmatic about it.  On the whole, it
> > was a good meeting, and the "Engineering ... Compiler" book was one of
> > my favorites when it came out.
> >
> > Steve
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/393389a7/attachment.htm>

From crossd at gmail.com  Sat Jul  3 07:09:42 2021
From: crossd at gmail.com (Dan Cross)
Date: Fri, 2 Jul 2021 17:09:42 -0400
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAC20D2Oo62Q-PemN7r5RBxjVS+fsYvKddmu73xBGBnZkFWr+1w@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
 <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>
 <202107021140.162BeWZt018129@freefriends.org>
 <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>
 <CAC20D2Oo62Q-PemN7r5RBxjVS+fsYvKddmu73xBGBnZkFWr+1w@mail.gmail.com>
Message-ID: <CAEoi9W6-HvePqqLe=Yhh=_tRNPego98J3c3nD7oGjkqwgz9=rg@mail.gmail.com>

On Fri, Jul 2, 2021 at 9:07 AM Clem Cole <clemc at ccc.com> wrote:

> On Fri, Jul 2, 2021 at 8:15 AM Dan Cross <crossd at gmail.com> wrote:
>
>> It is; it looks like it was first distributed with 4.3BSD-Tahoe. The
>> sources there are listed as "public domain rogue", but I'm not sure about
>> the provenance of that code.
>>
> That sounds right, you should ask Ken Arnold offline, I bet he had a
> better idea.  He would have made them available to Keith.
>

Great idea. I reached out on linked in, but don't have an email address for
Ken. Anyone have his contact information?

I'm curious if e.g. Mary Ann has any thoughts here, since she took over
maintaining curses at some point and might have gotten some of the inside
story?

Thanks for the responses so far, all.

        - Dan C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/c0c5a9f9/attachment.htm>

From beebe at math.utah.edu  Sat Jul  3 07:24:20 2021
From: beebe at math.utah.edu (Nelson H. F. Beebe)
Date: Fri, 2 Jul 2021 15:24:20 -0600
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
Message-ID: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>

In this week's BSDNow.tv podcast, available at

        https://www.bsdnow.tv/409

there is a story about a new conference paper on the Unix shell.  The
paper is available at

	Unix shell programming: the next 50 years
	HotOS '21: Workshop on Hot Topics in Operating Systems, Ann
	Arbor, Michigan, 1 June, 2021--3 June, 2021
	https://doi.org/10.1145/3458336.3465294

The tone is overall negative, though they do say nice things about
Doug McIlroy and Steve Johnson, and they offer ideas about
improvements.

List readers will have their own views of the paper.  My own is that,
despite its dark corners, the Bourne shell has served us
extraordinarily well, and I have been writing in it daily for decades
without being particularly bothered by the many issues raised by the
paper's authors.  Having dealt with so-called command shells on
numerous other operating systems, at least the Unix shells rarely get
in my way.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------

From lm at mcvoy.com  Sat Jul  3 07:36:48 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Fri, 2 Jul 2021 14:36:48 -0700
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
Message-ID: <20210702213648.GW817@mcvoy.com>

As I started reading it I found plenty to disagree with in the first few
paragraphs but they completely lost me at "After all, moving from System
V init scripts to systemd has arguably improvedthe Linux boot sequence."

Um, no, just, no.


On Fri, Jul 02, 2021 at 03:24:20PM -0600, Nelson H. F. Beebe wrote:
> In this week's BSDNow.tv podcast, available at
> 
>         https://www.bsdnow.tv/409
> 
> there is a story about a new conference paper on the Unix shell.  The
> paper is available at
> 
> 	Unix shell programming: the next 50 years
> 	HotOS '21: Workshop on Hot Topics in Operating Systems, Ann
> 	Arbor, Michigan, 1 June, 2021--3 June, 2021
> 	https://doi.org/10.1145/3458336.3465294
> 
> The tone is overall negative, though they do say nice things about
> Doug McIlroy and Steve Johnson, and they offer ideas about
> improvements.
> 
> List readers will have their own views of the paper.  My own is that,
> despite its dark corners, the Bourne shell has served us
> extraordinarily well, and I have been writing in it daily for decades
> without being particularly bothered by the many issues raised by the
> paper's authors.  Having dealt with so-called command shells on
> numerous other operating systems, at least the Unix shells rarely get
> in my way.
> 
> -------------------------------------------------------------------------------
> - Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
> - University of Utah                    FAX: +1 801 581 4148                  -
> - Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
> - 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
> - Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
> -------------------------------------------------------------------------------

-- 
---
Larry McVoy            	     lm at mcvoy.com             http://www.mcvoy.com/lm 

From henry.r.bent at gmail.com  Sat Jul  3 07:56:24 2021
From: henry.r.bent at gmail.com (Henry Bent)
Date: Fri, 2 Jul 2021 17:56:24 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210702213648.GW817@mcvoy.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
Message-ID: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>

After rattling around in the back of a train car with nothing but my
thoughts, I emerged and said:

"systemd is a pox on our way of life"

and then promptly rolled over and went back to sleep.

-Henry

On Fri, 2 Jul 2021 at 17:38, Larry McVoy <lm at mcvoy.com> wrote:

> As I started reading it I found plenty to disagree with in the first few
> paragraphs but they completely lost me at "After all, moving from System
> V init scripts to systemd has arguably improvedthe Linux boot sequence."
>
> Um, no, just, no.
>
>
> On Fri, Jul 02, 2021 at 03:24:20PM -0600, Nelson H. F. Beebe wrote:
> > In this week's BSDNow.tv podcast, available at
> >
> >         https://www.bsdnow.tv/409
> >
> > there is a story about a new conference paper on the Unix shell.  The
> > paper is available at
> >
> >       Unix shell programming: the next 50 years
> >       HotOS '21: Workshop on Hot Topics in Operating Systems, Ann
> >       Arbor, Michigan, 1 June, 2021--3 June, 2021
> >       https://doi.org/10.1145/3458336.3465294
> >
> > The tone is overall negative, though they do say nice things about
> > Doug McIlroy and Steve Johnson, and they offer ideas about
> > improvements.
> >
> > List readers will have their own views of the paper.  My own is that,
> > despite its dark corners, the Bourne shell has served us
> > extraordinarily well, and I have been writing in it daily for decades
> > without being particularly bothered by the many issues raised by the
> > paper's authors.  Having dealt with so-called command shells on
> > numerous other operating systems, at least the Unix shells rarely get
> > in my way.
> >
> >
> -------------------------------------------------------------------------------
> > - Nelson H. F. Beebe                    Tel: +1 801 581 5254
>       -
> > - University of Utah                    FAX: +1 801 581 4148
>       -
> > - Department of Mathematics, 110 LCB    Internet e-mail:
> beebe at math.utah.edu  -
> > - 155 S 1400 E RM 233                       beebe at acm.org
> beebe at computer.org -
> > - Salt Lake City, UT 84112-0090, USA    URL:
> http://www.math.utah.edu/~beebe/ -
> >
> -------------------------------------------------------------------------------
>
> --
> ---
> Larry McVoy                  lm at mcvoy.com
> http://www.mcvoy.com/lm
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/e7d2730a/attachment.htm>

From chet.ramey at case.edu  Sat Jul  3 08:27:45 2021
From: chet.ramey at case.edu (Chet Ramey)
Date: Fri, 2 Jul 2021 18:27:45 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
Message-ID: <231143c0-3168-ee1c-37e2-5c93238432d2@case.edu>

On 7/2/21 5:24 PM, Nelson H. F. Beebe wrote:
> In this week's BSDNow.tv podcast, available at
> 
>          https://www.bsdnow.tv/409
> 
> there is a story about a new conference paper on the Unix shell.  The
> paper is available at
> 
> 	Unix shell programming: the next 50 years
> 	HotOS '21: Workshop on Hot Topics in Operating Systems, Ann
> 	Arbor, Michigan, 1 June, 2021--3 June, 2021
> 	https://doi.org/10.1145/3458336.3465294
> 
> The tone is overall negative

Perhaps, though they do say

"The shell is a useful abstraction deserving of our attention despite its
imperfections (Section 2)."

and

"The Unix shell hits a sweet spot between succinctness, expressive power,
and performance."

I participated in the accompanying panel. Everyone seems to hate the
shell's quoting rules and word splitting, and those two things alone are
sufficient to give the shell a bad rap, yet one thing that became clear
is that people are trying to use the shell (or not) without understanding
the underlying Unix abstractions that we take for granted (such as the file
system). And what's worse: they don't want to and nobody is teaching them.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet at case.edu    http://tiswww.cwru.edu/~chet/

From usotsuki at buric.co  Sat Jul  3 09:09:37 2021
From: usotsuki at buric.co (Steve Nickolas)
Date: Fri, 2 Jul 2021 19:09:37 -0400 (EDT)
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
Message-ID: <alpine.DEB.2.21.2107021906540.15013@sd-119843.dedibox.fr>

On Fri, 2 Jul 2021, Nelson H. F. Beebe wrote:

> List readers will have their own views of the paper.  My own is that,
> despite its dark corners, the Bourne shell has served us
> extraordinarily well, and I have been writing in it daily for decades
> without being particularly bothered by the many issues raised by the
> paper's authors.  Having dealt with so-called command shells on
> numerous other operating systems, at least the Unix shells rarely get
> in my way.

I still use the descendent Korn shell most of the time (often in the form 
of bash) on modern systems, and I don't just mean those that are 
Unix-like.  I've found that a lot of times I can build a quick tool using 
bash or ksh93, or use a bash one-liner, and do something that's impossible 
with command.com on DOS or cmd.exe on NT and OS/2.

-uso.

From usotsuki at buric.co  Sat Jul  3 09:12:53 2021
From: usotsuki at buric.co (Steve Nickolas)
Date: Fri, 2 Jul 2021 19:12:53 -0400 (EDT)
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
Message-ID: <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>

On Fri, 2 Jul 2021, Henry Bent wrote:
> On Fri, 2 Jul 2021 at 17:38, Larry McVoy <lm at mcvoy.com> wrote:
>
>> As I started reading it I found plenty to disagree with in the first few
>> paragraphs but they completely lost me at "After all, moving from System
>> V init scripts to systemd has arguably improvedthe Linux boot sequence."
>>
>> Um, no, just, no.
>
> After rattling around in the back of a train car with nothing but my
> thoughts, I emerged and said:
>
> "systemd is a pox on our way of life"
>
> and then promptly rolled over and went back to sleep.
>
> -Henry
>

The Linux distro I use does use systemd but I can ignore it and go on with 
my life as if it were still running sysvinit.  So it's not that big a deal 
to me.

I'd prefer that they kept sysvinit, but eh.  What's that saying?  "Those 
who fail to understand Unix are condemned to recreate it, poorly" ?

-uso.

From steffen at sdaoden.eu  Sat Jul  3 09:49:41 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Sat, 03 Jul 2021 01:49:41 +0200
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
Message-ID: <20210702234941.MjMt0%steffen@sdaoden.eu>

Steve Nickolas wrote in
 <alpine.DEB.2.21.2107021910240.15013 at sd-119843.dedibox.fr>:
 |On Fri, 2 Jul 2021, Henry Bent wrote:
 |> On Fri, 2 Jul 2021 at 17:38, Larry McVoy <lm at mcvoy.com> wrote:
 |>
 |>> As I started reading it I found plenty to disagree with in the first few
 |>> paragraphs but they completely lost me at "After all, moving from System
 |>> V init scripts to systemd has arguably improvedthe Linux boot sequence."
 |>>
 |>> Um, no, just, no.
 |>
 |> After rattling around in the back of a train car with nothing but my
 |> thoughts, I emerged and said:
 |>
 |> "systemd is a pox on our way of life"
 |>
 |> and then promptly rolled over and went back to sleep.
 |>
 |> -Henry
 |>
 |
 |The Linux distro I use does use systemd but I can ignore it and go on with 
 |my life as if it were still running sysvinit.  So it's not that big a deal 
 |to me.
 |
 |I'd prefer that they kept sysvinit, but eh.  What's that saying?  "Those 
 |who fail to understand Unix are condemned to recreate it, poorly" ?

Well iwd(8) for example that i happen to have installed as
a replacement for wpa_supplicant just today (because
.. i installed my beloved sysvinit/BSD rc based CRUX-Linux on
a new spare laptop, a 18 month old but totally new IdeaPad S145,
and since i do not have initrd kernels but compile an all-builtin
one i use a generic kernel in order to lsmod(8) in order to be
able to create a custom kernel with a modified "make localyesmod"
that Linux supports, here ArchLinux 2020.12, because AlpineLinux
did not do it, somehow, and whereas i hate that ArchLinux now that
all old developers fled does not even ship install instructions it
actually does come with iwd/iwctl, and it happened that iwctl
looked so much better to me than wpa_cli of wpa_supplicant, that
i took the time and replaced there here, iwctl has at least one
bug though, iwd ditto, and i must say that whereas iwd is much
smaller is has a larger memory footprint than wpa_supplicant, and
.. whatever), and note that iwd neither supports a normal syslog
nor command line parameters to configure paths etc., the latter
have to come in via environment if they shall, and the manual says
these are "normally provided by systemd" (which is not true .. for
me).  And no syslog at all!  No PID file handling.  And bugs even
though Intel.com paid for it.  I mean "get up, stand up", they do
a thousand things and not seldom i wonder.

@Tony Finch: wonderful reading of the first two pages, thanks for
this link!  It seems Knuth always had "a touch" for writing good,
and for good writing.

P.S.: not that do-one-thing's like sysklogd are bug free, for
example the sysklogd CRUX now uses/offers introduced a new bug
that causes /var/log/kernel to print monotonic clock times or
what, mind you, just now it is "Jun 30 13:13:16" (for "kent").

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From andreww591 at gmail.com  Sat Jul  3 10:09:27 2021
From: andreww591 at gmail.com (Andrew Warkentin)
Date: Fri, 2 Jul 2021 18:09:27 -0600
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210702213648.GW817@mcvoy.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
Message-ID: <CAD-qYGrFUgkipT+1OKZbpvO1G5gO51sJUXJctn404USQEWrzjA@mail.gmail.com>

On 02/07/2021, Larry McVoy <lm at mcvoy.com> wrote:
> As I started reading it I found plenty to disagree with in the first few
> paragraphs but they completely lost me at "After all, moving from System
> V init scripts to systemd has arguably improvedthe Linux boot sequence."
>
> Um, no, just, no.
>
>
I'm definitely not a fan of systemd, but I think legacy init systems
leave a lot to be desired as well. UX/RT, the OS I'm writing, will
have an init system that uses declarative unit files for daemons and
manages them statefully, but unlike systemd will be designed to be
highly extensible.

Basically all policy, including startup and shutdown, will be in
scripts. Startup and shutdown will mostly be implemented with one
script per phase (like on some older SysV and Linux systems). It will
also be possible to add support for new options to unit files by
adding hook scripts.

In addition, instead of having a single daemon managing all unit
types, there will be separate delegated restarters for all unit types
other than one-shots and unconditional daemons (it will be kind of
like SMF minus the databases and XML).

I'm also probably going to write my own shell at some point. Most
likely it will be Bourne-like with some object-oriented features,
including support for piping objects (unlike PowerShell this will work
with external commands and will be implemented by serializing objects
to text-based formats using hook functions). All UI-related features
like history, editing, and completion will be implemented in a
separate listener process that functions as a pseudo-terminal driver.

From crossd at gmail.com  Sat Jul  3 11:10:06 2021
From: crossd at gmail.com (Dan Cross)
Date: Fri, 2 Jul 2021 21:10:06 -0400
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAFH29tq-G1CKjdoC5LngM7joQ=-F0NOhOa2DeygFUG4FoZEP3w@mail.gmail.com>
References: <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>
 <E6590126-A8CA-4BC0-B7F5-D49956BAFBFB@iitbombay.org>
 <CAFH29tq-G1CKjdoC5LngM7joQ=-F0NOhOa2DeygFUG4FoZEP3w@mail.gmail.com>
Message-ID: <CAEoi9W6+fonRC1+KRdBEKz-uToSUzUDd155-Lve2zdz6mZVAEQ@mail.gmail.com>

Ah thanks, very cool.  Btw, Ken Arnold, Michael Toy, and Glenn Wichman were
all on a panel discussing rogue and Ken mentioned that source listing. Some
folks might find it interesting: https://www.youtube.com/watch?v=IaB7iQhts_c

Thanks!

        - Dan C.


On Fri, Jul 2, 2021 at 9:22 AM Richard Salz <rich.salz at gmail.com> wrote:

> Ken Arnold posted the original source to
> https://sourceforge.net/projects/rogue/ back in 2000.
>
> On Fri, Jul 2, 2021 at 9:12 AM Bakul Shah <bakul at iitbombay.org> wrote:
>
>> Glenn wrote up a brief history where he says it was first distributed
>> with 4.2bsd.
>>
>> https://web.archive.org/web/19980625212119/http://www.wichman.org/roguehistory.html
>>
>> @ Fortune Systems in 1983/83 we had 3-4 college students working for a
>> contract company Santa Cruz Operations(?) doing testing for us. He was one
>> of them and later we hired him full time. I didn’t interact with him much
>> though and once I quit Fortune I lost track of him. I think initially we
>> had only a rogue binary on 4.1 running on VAX780 but I do not recall if he
>> brought it to Fortune. Someone later ported it to the  Fortune machine. I
>> used to play Rogue while waiting for kernel compiles to finish. A few years
>> ago I got it on FreeBSD and my muscle memory came back 100%!
>>
>> On Jul 2, 2021, at 5:16 AM, Dan Cross <crossd at gmail.com> wrote:
>>
>> п»ї
>> On Fri, Jul 2, 2021 at 7:40 AM <arnold at skeeve.com> wrote:
>>
>>> Is the rogue source extant?  I remember many people spending many
>>> hours on rogue on the 4.[12] BSD vax at Georgia Tech.
>>>
>>> ISTR that rogue only came as a binary, there was no source.
>>>
>>
>> It is; it looks like it was first distributed with 4.3BSD-Tahoe. The
>> sources there are listed as "public domain rogue", but I'm not sure about
>> the provenance of that code.
>>
>>         - Dan C.
>>
>>
>> Arnold
>>>
>>> Dan Cross <crossd at gmail.com> wrote:
>>>
>>> > Thanks, Clem. I'm curious what other lore is out there: my suspicion is
>>> > that rogue never ran on vanilla v6, but it would be great to validate.
>>> >
>>> > On Thu, Jul 1, 2021 at 10:51 PM Clem Cole <clemc at ccc.com> wrote:
>>> >
>>> > > I first got it on V7, as I said on our 11/70 for sure but I don’t
>>> remember
>>> > > if we had it on the 11/60 before that.
>>> > >
>>> > > On Thu, Jul 1, 2021 at 10:07 PM Dan Cross <crossd at gmail.com> wrote:
>>> > >
>>> > >> What was the first machine to run rogue? I understand that it was
>>> written
>>> > >> by Glenn Wichman and Michael Toy at UC Santa Cruz ca. 1980, using
>>> the
>>> > >> `curses` library (Ken Arnold's original, not Mary Ann's rewrite).
>>> I've seen
>>> > >> at least one place that indicates it first ran on 6th Edition, but
>>> that
>>> > >> doesn't sound right to me. The first reference I can find in BSD is
>>> in 2.79
>>> > >> ("rogue.doc"), which also appears to be the first release to ship
>>> curses.
>>> > >>
>>> > >> Anyone have any info? Thanks!
>>> > >>
>>> > >>         - Dan C.
>>> > >>
>>> > >> --
>>> > > Sent from a handheld expect more typos than usual
>>> > >
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/4dfe4a40/attachment-0001.htm>

From fjarlq at gmail.com  Sat Jul  3 12:21:07 2021
From: fjarlq at gmail.com (Matt Day)
Date: Fri, 2 Jul 2021 20:21:07 -0600
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
Message-ID: <CAHrGxA2bB31JctWvXxN_46-Y+zo4JcuYXpGZQXd3aHZNB6Y5ng@mail.gmail.com>

Quoting from David Craddock's book, Dungeon Hacks (2015), pages 34-35:

> By the time Toy and Wichman started at UC Santa Cruz, BSD UNIX had entered
> widespread usage across UC campuses and was branching out to other schools.
> Each new version of BSD, released on cassette tape, included handy programs
> written by Joy and other hackers. One program was curses, written by Ken
> Arnold. Arnold had written curses according to the UNIX creed: a simple
> tool fashioned for a specific purpose. Wielding curses like a paintbrush,
> users could place text such as letters, numbers, and symbols at any
> location on the screen.



The moment he used curses, Toy saw its potential. In 1980, he went to
> Wichman and suggested they use curses to create a graphical adventure game
> with a twist. Unlike Colossal Cave Adventure and its derivatives, their
> game would construct brand new environments and challenges every time. An
> avid Dungeons & Dragons player, he invented a fantasy-themed setting and
> premise. Players would assume the identity of an adventurer who entered the
> Dungeons of Doom, a series of levels filled with monsters and treasure.



Wichman loved the idea and dubbed the game Rogue. "I think the name just
> came to me. Names needed to be short because you invoked a program by
> typing its name in a command line. I liked the idea of a rogue. We were
> coming from a Dungeons & Dragons background, but we were creating a
> single-player game. You weren't going down into the dungeon with a party.
> The idea was that this is a person going off on his or her own. It captured
> the theme very succinctly."



Apropos of UNIX, Toy chose to write Rogue in the C language. C produced
> fast code, while BASIC was slower and meant for smaller programs. Wichman,
> still a few steps behind Toy in programming prowess, learned C by watching
> Toy program their game. "The early alpha versions of Rogue were probably
> all my code, but Glenn [Wichman] made lots of contributions in terms of
> design," Toy recalled. "I think it's quite fair to say that the game was a
> pretty straight collaboration between Glenn [Wichman], Ken [Arnold], and me
> by the time it was done. I feel pretty good about that."



Toy and Wichman realized they wouldn't be able to stay at school during all
> hours to write their game. Fortunately, they didn't need to. As employees
> of the computer science division, they had special lab privileges. Setting
> up an ADM-3a terminal in their apartment, they could dial into the VAX
> 11/780 shunted off in a basement somewhere at UC Santa Cruz. The connection
> was established through their 300-baud modem -- a device that would take
> several minutes to transmit the text on an average-length Wikipedia page
> today -- enabling them to write the vast majority of Rogue from the comfort
> of their apartment.


Craddock's notes explain that the quotes of Michael Toy and Glenn Wichman
"come from interviews conducted via phone, Skype, and email over 2012-2014."

I think you must be right about the first machine being something running
BSD UNIX.

Matt

On Thu, Jul 1, 2021 at 8:07 PM Dan Cross <crossd at gmail.com> wrote:

> What was the first machine to run rogue? I understand that it was written
> by Glenn Wichman and Michael Toy at UC Santa Cruz ca. 1980, using the
> `curses` library (Ken Arnold's original, not Mary Ann's rewrite). I've seen
> at least one place that indicates it first ran on 6th Edition, but that
> doesn't sound right to me. The first reference I can find in BSD is in 2.79
> ("rogue.doc"), which also appears to be the first release to ship curses.
>
> Anyone have any info? Thanks!
>
>         - Dan C.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/66fb7d4c/attachment.htm>

From robpike at gmail.com  Fri Jul  2 13:30:17 2021
From: robpike at gmail.com (Rob Pike)
Date: Fri, 2 Jul 2021 13:30:17 +1000
Subject: [TUHS] [tuhs] Dennis Ritchie's couch
In-Reply-To: <e8ce832d5d6ccdc9e4ccc40f7a1d7aec@yaccman.com>
References: <CMM.0.95.0.1621987920.beebe@gamma.math.utah.edu>
 <CAKzdPgzJsQKMx5BB3sybzAd2HRUnd6L0K-akVepL+538_UOC2w@mail.gmail.com>
 <20210526030341.GD27558@mcvoy.com>
 <2834EEEA-1C32-461B-900B-7480CCC4399B@iitbombay.org>
 <CAKzdPgy6DnFuRwxT4_ZE3qoS5HP2Ze0=G_SXm1i7XQtNbeg_Dw@mail.gmail.com>
 <e8ce832d5d6ccdc9e4ccc40f7a1d7aec@yaccman.com>
Message-ID: <CAKzdPgw6zkXg9tB8uoPOZBv2C5nV8=N4kuW8-tHCUoby=9ki+Q@mail.gmail.com>

To show you what I mean, here is a parser I wrote recently for a simple Go
expression evaluator, in Go. It has all Go's precedence levels and
operators. The one odd detail is that >= etc. can be combined, as in 1 >= 2
> 3, but that doesn't matter in the context of this program and is easily
avoided with a few more lines in cmpList.

I'm using a screen grab because GMail refuses to leave my indentation
alone. I left factor off. It's got all the usual details but it's the leaf
of the grammar and of no interest here.

Note that this could easily have been made a table instead of a bunch of
one-line functions.

Parsers are easy to write. It took us a generation (or more) to understand
that, but it's remarkable nonetheless. The first big step might have been
realizing that recursion was a good idea, even if you weren't writing LISP,
if the data structure is itself recursive.

-rob


[image: image.png]


On Fri, Jul 2, 2021 at 12:13 PM <scj at yaccman.com> wrote:

> I found Dennis's compiler to be a thing of beauty when compiling
> statements, but hell on wheels when doing expressions.  One of the
> motivations for writing Yacc was that I wanted to add the exclusive or into
> the expression syntax and we had agreed on the character (^) and the
> precedence.  Practically the whole expression grammar needed to be
> rewritten, and small typos created un-debuggable chaos.  The state of the
> art at the time was to write multi-layered grammars for each precedence
> level.  A paper was published on how to shrink the resulting parsing tables
> by eliminating redundant states.   I realized that the same results could
> be obtained by writing an ambiguous expression grammar and using a
> precedence table to resolve the ambiguities.  The initial response in the
> academic community to programming with ambiguous grammars was somewhere
> between skeptical and horrified -- as if I had shown porn to a Victorian.
> So Al and I worked out a proof that we would get the same optimized parser
> in a much more intuitive way.
>
> I do agree with Rob that some of the languages that Yacc gave birth to
> should never have been born.  Remember, though, that the dominant language
> at the time was FORTRAN, and it had all sorts of strange implementation
> issues in their hand-written compilers.  Things like subscript indices had
> to be single variables in some places, and in others could have a constant
> added to the index.  One of Yacc's best features was that it made
> consistency of usage the path of least resistance when designing the
> language, and the grammar was often easier to understand than the
> programming manual.  At Bell Labs, Barbara Ryder wrote a program that would
> read FORTRAN and detect things that would not work on one or more of the
> six major FORTRAN's at the time.  It was an inspiration for me, later, do
> the same thing with Lint.
>
> I do suggest that having languages like C++ that have bloated up to over
> 1000 pages in the programmer reference doesn't feel like a real advance,
> especially since the real language problems of today are how to program
> very large numbers of processor-like objects on a single chip.  We need new
> ways to think, and I doubt that we'll get there by making C++ require a
> 2000-page manual.
> ---
>
>
>
> On 2021-05-25 23:52, Rob Pike wrote:
>
> I enjoy writing recursive descent parsers, and I enjoy the grammars that
> result from such parsers when cleanly done.
>
> I do agree though that if you grammar is being invented as you go, yacc
> can be a boon. But in a sense, that's also it's biggest failing: it makes
> it too easy to write bad grammars.
>
> -rob
>
>
> On Wed, May 26, 2021 at 4:22 PM Bakul Shah <bakul at iitbombay.org> wrote:
>
> Many existing programming languages do have a simple enough
> syntax to make it easy to write a recursive descent parser for them
> but not alll.
>
> Handwritten recursive descent parsers are often LL(1) with may be
> a separate operator-precedence parsing for expressions.
>
> If you are defining a new language syntax you can make sure parsing
> is easy but not all languages are LL(1) (which is a subset of LALR(1),
> which is a subset of LR(1), which is a subset of GLR). Handwritten
> parsers for these more general grammars are bound to get more
> complicated.
>
> Even *we* understand parsing, writing a parser for some existing
> languages  which grew "organically" can become tedious, or
> complicated or adhoc. Often such languages have no well specified
> grammar (the code is the specification!). A yacc grammar would help.
>
> Often one writes a yacc grammar while a new language & its syntax
> is evolving. Changing a yacc file is more localized & easier than fixing
> up a handwritten parser. Even Go has such a grammar initially.
>
> -- Bakul
>
> > On May 25, 2021, at 8:03 PM, Larry McVoy <lm at mcvoy.com> wrote:
> >
> > You do, I don't.  I'm not alone in my lack of understanding.
> >
> > I think that all the things that yacc solved, Steve gets some kudos.
> > I've used it a bunch and I did not need to be as smart as you or
> > Steve to get the job done.
> >
> > You getting past that is cool but it doesn't make his work less.
> >
> > On Wed, May 26, 2021 at 10:37:45AM +1000, Rob Pike wrote:
> >> And today, we understand parsing so well we don't need yacc.
> >>
> >> -rob
> >>
> >>
> >> On Wed, May 26, 2021 at 10:20 AM Nelson H. F. Beebe <
> beebe at math.utah.edu>
> >> wrote:
> >>
> >>> The last article of the latest issue of the Communications of the ACM
> >>> that appeared electronically earlier today is a brief interview with
> >>> this year's ACM Turing Award winners, Al Aho and Jeff Ullman.
> >>>
> >>> The article is
> >>>
> >>>        Last byte: Shaping the foundations of programming languages
> >>>        https://doi.org/10.1145/3460442
> >>>        Comm. ACM 64(6), 120, 119, June 2021.
> >>>
> >>> and it includes a picture of the two winners sitting on Dennis
> >>> Ritchie's couch.
> >>>
> >>> I liked this snippet from Jeff Ullman, praising fellow list member
> >>> Steve Johnson's landmark program, yacc:
> >>>
> >>>>> ...
> >>>>> At the time of the first Fortran compiler, it took several
> >>>>> person-years to write a parser.  By the time yacc came around,
> >>>>> you could do it in an afternoon.
> >>>>> ...
> >>>
> >>>
> >>>
> -------------------------------------------------------------------------------
> >>> - Nelson H. F. Beebe                    Tel: +1 801 581 5254
> >>>    -
> >>> - University of Utah                    FAX: +1 801 581 4148
> >>>    -
> >>> - Department of Mathematics, 110 LCB    Internet e-mail:
> >>> beebe at math.utah.edu  -
> >>> - 155 S 1400 E RM 233                       beebe at acm.org
> >>> beebe at computer.org -
> >>> - Salt Lake City, UT 84112-0090, USA    URL:
> >>> http://www.math.utah.edu/~beebe/ -
> >>>
> >>>
> -------------------------------------------------------------------------------
> >>>
> >
> > --
> > ---
> > Larry McVoy                        lm at mcvoy.com
> http://www.mcvoy.com/lm
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/7254ce43/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 246447 bytes
Desc: not available
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/7254ce43/attachment-0001.png>

From robpike at gmail.com  Fri Jul  2 13:34:27 2021
From: robpike at gmail.com (Rob Pike)
Date: Fri, 2 Jul 2021 13:34:27 +1000
Subject: [TUHS] [tuhs] Dennis Ritchie's couch
In-Reply-To: <CAKzdPgw6zkXg9tB8uoPOZBv2C5nV8=N4kuW8-tHCUoby=9ki+Q@mail.gmail.com>
References: <CMM.0.95.0.1621987920.beebe@gamma.math.utah.edu>
 <CAKzdPgzJsQKMx5BB3sybzAd2HRUnd6L0K-akVepL+538_UOC2w@mail.gmail.com>
 <20210526030341.GD27558@mcvoy.com>
 <2834EEEA-1C32-461B-900B-7480CCC4399B@iitbombay.org>
 <CAKzdPgy6DnFuRwxT4_ZE3qoS5HP2Ze0=G_SXm1i7XQtNbeg_Dw@mail.gmail.com>
 <e8ce832d5d6ccdc9e4ccc40f7a1d7aec@yaccman.com>
 <CAKzdPgw6zkXg9tB8uoPOZBv2C5nV8=N4kuW8-tHCUoby=9ki+Q@mail.gmail.com>
Message-ID: <CAKzdPgxGOZLLQzzPKe3kyAq1soAYPHwyeVP2iePiE8zMSk=f7g@mail.gmail.com>

<resending with the program as an attachment, as 100K is considered big
here? moderator, you can kill the prior message>

To show you what I mean, here is a parser I wrote recently for a simple Go
expression evaluator, in Go. It has all Go's precedence levels and
operators. The one odd detail is that >= etc. can be combined, as in 1 >= 2
> 3, but that doesn't matter in the context of this program and is easily
avoided with a few more lines in cmpList.

I'm using a screen grab because GMail refuses to leave my indentation
alone. I left factor off. It's got all the usual details but it's the leaf
of the grammar and of no interest here.

Note that this could easily have been made a table instead of a bunch of
one-line functions.

Parsers are easy to write. It took us a generation (or more) to understand
that, but it's remarkable nonetheless. The first big step might have been
realizing that recursion was a good idea, even if you weren't writing LISP,
if the data structure is itself recursive.

-rob


On Fri, Jul 2, 2021 at 1:30 PM Rob Pike <robpike at gmail.com> wrote:

> To show you what I mean, here is a parser I wrote recently for a simple Go
> expression evaluator, in Go. It has all Go's precedence levels and
> operators. The one odd detail is that >= etc. can be combined, as in 1 >= 2
> > 3, but that doesn't matter in the context of this program and is easily
> avoided with a few more lines in cmpList.
>
> I'm using a screen grab because GMail refuses to leave my indentation
> alone. I left factor off. It's got all the usual details but it's the leaf
> of the grammar and of no interest here.
>
> Note that this could easily have been made a table instead of a bunch of
> one-line functions.
>
> Parsers are easy to write. It took us a generation (or more) to understand
> that, but it's remarkable nonetheless. The first big step might have been
> realizing that recursion was a good idea, even if you weren't writing LISP,
> if the data structure is itself recursive.
>
> -rob
>
>
> [image: image.png]
>
>
> On Fri, Jul 2, 2021 at 12:13 PM <scj at yaccman.com> wrote:
>
>> I found Dennis's compiler to be a thing of beauty when compiling
>> statements, but hell on wheels when doing expressions.  One of the
>> motivations for writing Yacc was that I wanted to add the exclusive or into
>> the expression syntax and we had agreed on the character (^) and the
>> precedence.  Practically the whole expression grammar needed to be
>> rewritten, and small typos created un-debuggable chaos.  The state of the
>> art at the time was to write multi-layered grammars for each precedence
>> level.  A paper was published on how to shrink the resulting parsing tables
>> by eliminating redundant states.   I realized that the same results could
>> be obtained by writing an ambiguous expression grammar and using a
>> precedence table to resolve the ambiguities.  The initial response in the
>> academic community to programming with ambiguous grammars was somewhere
>> between skeptical and horrified -- as if I had shown porn to a Victorian.
>> So Al and I worked out a proof that we would get the same optimized parser
>> in a much more intuitive way.
>>
>> I do agree with Rob that some of the languages that Yacc gave birth to
>> should never have been born.  Remember, though, that the dominant language
>> at the time was FORTRAN, and it had all sorts of strange implementation
>> issues in their hand-written compilers.  Things like subscript indices had
>> to be single variables in some places, and in others could have a constant
>> added to the index.  One of Yacc's best features was that it made
>> consistency of usage the path of least resistance when designing the
>> language, and the grammar was often easier to understand than the
>> programming manual.  At Bell Labs, Barbara Ryder wrote a program that would
>> read FORTRAN and detect things that would not work on one or more of the
>> six major FORTRAN's at the time.  It was an inspiration for me, later, do
>> the same thing with Lint.
>>
>> I do suggest that having languages like C++ that have bloated up to over
>> 1000 pages in the programmer reference doesn't feel like a real advance,
>> especially since the real language problems of today are how to program
>> very large numbers of processor-like objects on a single chip.  We need new
>> ways to think, and I doubt that we'll get there by making C++ require a
>> 2000-page manual.
>> ---
>>
>>
>>
>> On 2021-05-25 23:52, Rob Pike wrote:
>>
>> I enjoy writing recursive descent parsers, and I enjoy the grammars that
>> result from such parsers when cleanly done.
>>
>> I do agree though that if you grammar is being invented as you go, yacc
>> can be a boon. But in a sense, that's also it's biggest failing: it makes
>> it too easy to write bad grammars.
>>
>> -rob
>>
>>
>> On Wed, May 26, 2021 at 4:22 PM Bakul Shah <bakul at iitbombay.org> wrote:
>>
>> Many existing programming languages do have a simple enough
>> syntax to make it easy to write a recursive descent parser for them
>> but not alll.
>>
>> Handwritten recursive descent parsers are often LL(1) with may be
>> a separate operator-precedence parsing for expressions.
>>
>> If you are defining a new language syntax you can make sure parsing
>> is easy but not all languages are LL(1) (which is a subset of LALR(1),
>> which is a subset of LR(1), which is a subset of GLR). Handwritten
>> parsers for these more general grammars are bound to get more
>> complicated.
>>
>> Even *we* understand parsing, writing a parser for some existing
>> languages  which grew "organically" can become tedious, or
>> complicated or adhoc. Often such languages have no well specified
>> grammar (the code is the specification!). A yacc grammar would help.
>>
>> Often one writes a yacc grammar while a new language & its syntax
>> is evolving. Changing a yacc file is more localized & easier than fixing
>> up a handwritten parser. Even Go has such a grammar initially.
>>
>> -- Bakul
>>
>> > On May 25, 2021, at 8:03 PM, Larry McVoy <lm at mcvoy.com> wrote:
>> >
>> > You do, I don't.  I'm not alone in my lack of understanding.
>> >
>> > I think that all the things that yacc solved, Steve gets some kudos.
>> > I've used it a bunch and I did not need to be as smart as you or
>> > Steve to get the job done.
>> >
>> > You getting past that is cool but it doesn't make his work less.
>> >
>> > On Wed, May 26, 2021 at 10:37:45AM +1000, Rob Pike wrote:
>> >> And today, we understand parsing so well we don't need yacc.
>> >>
>> >> -rob
>> >>
>> >>
>> >> On Wed, May 26, 2021 at 10:20 AM Nelson H. F. Beebe <
>> beebe at math.utah.edu>
>> >> wrote:
>> >>
>> >>> The last article of the latest issue of the Communications of the ACM
>> >>> that appeared electronically earlier today is a brief interview with
>> >>> this year's ACM Turing Award winners, Al Aho and Jeff Ullman.
>> >>>
>> >>> The article is
>> >>>
>> >>>        Last byte: Shaping the foundations of programming languages
>> >>>        https://doi.org/10.1145/3460442
>> >>>        Comm. ACM 64(6), 120, 119, June 2021.
>> >>>
>> >>> and it includes a picture of the two winners sitting on Dennis
>> >>> Ritchie's couch.
>> >>>
>> >>> I liked this snippet from Jeff Ullman, praising fellow list member
>> >>> Steve Johnson's landmark program, yacc:
>> >>>
>> >>>>> ...
>> >>>>> At the time of the first Fortran compiler, it took several
>> >>>>> person-years to write a parser.  By the time yacc came around,
>> >>>>> you could do it in an afternoon.
>> >>>>> ...
>> >>>
>> >>>
>> >>>
>> -------------------------------------------------------------------------------
>> >>> - Nelson H. F. Beebe                    Tel: +1 801 581 5254
>> >>>    -
>> >>> - University of Utah                    FAX: +1 801 581 4148
>> >>>    -
>> >>> - Department of Mathematics, 110 LCB    Internet e-mail:
>> >>> beebe at math.utah.edu  -
>> >>> - 155 S 1400 E RM 233                       beebe at acm.org
>> >>> beebe at computer.org -
>> >>> - Salt Lake City, UT 84112-0090, USA    URL:
>> >>> http://www.math.utah.edu/~beebe/ -
>> >>>
>> >>>
>> -------------------------------------------------------------------------------
>> >>>
>> >
>> > --
>> > ---
>> > Larry McVoy                        lm at mcvoy.com
>> http://www.mcvoy.com/lm
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/72d4fcd9/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 246447 bytes
Desc: not available
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210702/72d4fcd9/attachment-0001.png>
-------------- next part --------------
// parse implements a production in the expression parse hierarchy. Singles and
// doubles are strings holding the operators that are available at at this precedence
// level, while nextLevel implements the next higher precendence level.
func (p *parser) parse(singles, doubles string, nextLevel func(*parser) *Expr) *Expr {
	e := nextLevel(p)
	for {
		if p.peek(true) == eof {
			return e
		}
		op := p.op(singles, doubles)
		if op == "" {
			return e
		}
		e = &Expr{
			op:    op,
			left:  e,
			right: nextLevel(p),
		}
	}
}

// orlist = andList | andList '||' orList.
func orList(p *parser) *Expr {
	return p.parse("", "||", andList)
}

// andlist = cmpList | cmpList '&&' andList.
func andList(p *parser) *Expr {
	return p.parse("", "&&", cmpList)
}

// cmpList = expr | expr ('>' | '<' | '==' | '!=' | '>=' | '<=') expr.
func cmpList(p *parser) *Expr {
	return p.parse("+-|^!><", "==!=>=<=", expr)
}

// expr = term | term ('+' | '-' | '|' | '^') term.
func expr(p *parser) *Expr {
	return p.parse("+-|^!", "", term)
}

// term = factor | factor ('*' | '/' | '%' | '>>' | '<<' | '&' | '&^') factor
func term(p *parser) *Expr {
	return p.parse("*/%&", ">><<&^", factor)
}

// factor = constant | identifier | '+' factor | '-' factor | '^' factor | '!' factor | '(' orList ')'
func factor(p *parser) *Expr {

From thomas.paulsen at firemail.de  Sat Jul  3 22:04:23 2021
From: thomas.paulsen at firemail.de (Thomas Paulsen)
Date: Sat, 03 Jul 2021 14:04:23 +0200
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
Message-ID: <396911b232bae5938068a14fe0f7181e@firemail.de>

>The Linux distro I use does use systemd but I can ignore it and go on with my life as if it were still running sysvinit.  So it's not that big a deal to me.
I'm running red hat fedora which switched 100% to systemd a couple of years ago. It's fine, a good piece of software.



From crossd at gmail.com  Sat Jul  3 23:20:57 2021
From: crossd at gmail.com (Dan Cross)
Date: Sat, 3 Jul 2021 09:20:57 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <396911b232bae5938068a14fe0f7181e@firemail.de>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
Message-ID: <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>

On Sat, Jul 3, 2021 at 8:36 AM Thomas Paulsen <thomas.paulsen at firemail.de>
wrote:

> >The Linux distro I use does use systemd but I can ignore it and go on
> with my life as if it were still running sysvinit.  So it's not that big a
> deal to me.
> I'm running red hat fedora which switched 100% to systemd a couple of
> years ago. It's fine, a good piece of software.
>

Systemd is both good and bad.

The good part is that it allows for parallel service startup, which means
that your system gets up and running (and serving useful work) faster. It
understands the service dependency graph and thus the service start order
and what can be done simultaneously. It also, in theory anyway, makes life
a little easier for the authors of what I'll call "service software" (read:
daemons and servers): need a privileged resource? Describe it to systemd,
that will then acquire it for you and hand it to your unprivileged service
software. That's nifty, aids privilege separation, namespace sandboxing a
la containers, etc.

But systemd is also terrible. In an extremely un-Unix-like manner, it
consolidates an enormous number of disparate functions into a single
monolithic piece of software. It uses ersatz data formats that are abjectly
horrible. It uses binary logging, which means that one cannot use the full
complement of Unix text filters to inspect logs. It does all sorts of stuff
behind the scenes (manipulating filesystems, for example) in ways that are
obscured and opaque to system administrators, let alone programmers; this
can have surprising results (ask Ron Minnich about systemd-related data
loss). It has complete disregard, and indeed, contempt for the Unix
philosophy.

What's interesting (to me, anyway), is how few people care about the
deficiencies. This suggests a pretty fundamental shift in how people use
Unix-like systems, and Linux in particular: for _most_ users, it has become
a commoditized vessel for running other interesting software, but not what
we historically think of as "Unix". Sure, a lot of people still live at the
command line, but that's no longer the primary focus of interaction. Our
machines are now either all-singing, all-dancing multimedia workstations
where the sole user is in a web browser most of the time, in which case the
underlying system is just a detail, they're server-class machines that are
running some workload, but not something that's interactive, or embedded
devices that are black boxes.

Much of Unix's early evolution and thus architecture and philosophy, came
from addressing a set of problems that people had in a historical context
that, one could argue, aren't that relevant anymore. A hierarchical
filesystem in a global namespace, pipelines facilitating chaining of
filters for interactive use, a simple but weak permissions model,
unstructured text as a universal interchange format, terminal-oriented text
editors.... All of these were fine on shared multiuser interactive
machines, but do they matter as much now? If the nexus of interaction is a
web browser, who cares whether I can grep a log file? If I just want my
bluetooth headphones and USB camera to work for an online meeting, how that
stuff is put together under the hood isn't that interesting to me. In
short, the Unix philosophy is becoming less and less relevant as a new
generation of users and programmers put different demands on systems. Linux
is _probably_ the most prevalent kernel in the world, but most places its
used it's hidden from view. In that context, something like systemd
actually makes some amount of sense.

Perhaps I've mentioned this story before: a former colleague at Google was
writing a shell script to figure something out. It wasn't working. Really,
what he wanted was basically a `grep -q` and an `if` statement, but he'd
written a complicated mess with shell functions that tried to "return" the
exit status of the processes they ran: his shell script was written more
like a Python program. I rewrote it for him in half-a-dozen or so lines
(down from 30 or 40) and talked about Unix for a minute, the philosophy,
etc. At the end of my monologue extolling the virtues of our style of
computing, he looked at me blankly and said something along the lines of,
"yeah. I think that time has passed and people just don't conceptualize
problems that way anymore." I was sad, but is it any wonder that the kids
reach for Python before a shell script these days? We aren't teaching, yes,
but moreover they don't want to learn because the problems they're trying
to solve are different. We need to accept and internalize that and think
hard about how the tools we use can be brought to bear on the problems that
are relevant _now_, not 30 years ago.

It does beg the question: is a Unix-style kernel still the appropriate
foundation for this style of computing? Why are we still using this system:
is it because of its intrinsic power and versatility, or because of
inertia? Systemd, containers, etc, all suggest that our models are
inadequate.

        - Dan C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210703/b37898c4/attachment.htm>

From steffen at sdaoden.eu  Sat Jul  3 23:34:58 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Sat, 03 Jul 2021 15:34:58 +0200
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210702234941.MjMt0%steffen@sdaoden.eu>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <20210702234941.MjMt0%steffen@sdaoden.eu>
Message-ID: <20210703133458.yDV-p%steffen@sdaoden.eu>

Steffen Nurpmeso wrote in
 <20210702234941.MjMt0%steffen at sdaoden.eu>:
 |Steve Nickolas wrote in
 | <alpine.DEB.2.21.2107021910240.15013 at sd-119843.dedibox.fr>:
 ||On Fri, 2 Jul 2021, Henry Bent wrote:
 ||> On Fri, 2 Jul 2021 at 17:38, Larry McVoy <lm at mcvoy.com> wrote:
 ||>> As I started reading it I found plenty to disagree with in the \
 ||>> first few
 ||>> paragraphs but they completely lost me at "After all, moving from \
 ||>> System
 ||>> V init scripts to systemd has arguably improvedthe Linux boot sequence.\
 ||>> "
 ||>>
 ||>> Um, no, just, no.
 ...
 ||The Linux distro I use does use systemd but I can ignore it and go \
 ||on with 
 ||my life as if it were still running sysvinit.  So it's not that big \
 ||a deal 
 ||to me.
 ||
 ||I'd prefer that they kept sysvinit, but eh.  What's that saying?  "Those 
 ||who fail to understand Unix are condemned to recreate it, poorly" ?
 |
 |Well iwd(8) for example that i happen to have installed as
 ...
 |.. whatever), and note that iwd neither supports a normal syslog
 |nor command line parameters to configure paths etc., the latter
 |have to come in via environment if they shall, and the manual says
 |these are "normally provided by systemd" (which is not true .. for
 |me).  And no syslog at all!  No PID file handling.  And bugs even
 |though Intel.com paid for it.  I mean "get up, stand up", they do
 |a thousand things and not seldom i wonder.

And not to mention that there is a builtin DHCP server, but it
only can be integrated nicely "back" into systemd, or resolvconf.
You know, so much logic, and then not even the possibility to
simply say "hook" to invoke a simply shell script.  So i need
dhcpcd in addition, just for that hook that i use, for example, to
setup dnsmasq resolv, and to start a shell-based rdate(8) hook to
contact my ntpd-driving web VM via VPN.  I mean, what can happen,
address, gateway, and some more variables.  Carrier gained and
carrier lost.  Just some environment variables to pass along.

And mind you, it is getting worse it seems.  They write their
software more and more integrated specifically for systemd beyond
that iwd thing.  They do not generate manual pages when creating
release balls.  They require newest compiler additions for some
minor syntax sugar on less that one percent of their codebase.  It
seems some new "systems" even require an active internet
connection .. for compiling the software!  (Rust?)

I mean, that is not new.  Zawinski's complain on completely
rewriting Netscape Navigator in C++ for the rewrites sake can
still be read on the web.  In parts it may be normal progression,
it is just the dumb to which it appears as entanglement.
With a "Happy to be stupid",

Ciao from Germany,

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From rich.salz at gmail.com  Sat Jul  3 23:56:36 2021
From: rich.salz at gmail.com (Richard Salz)
Date: Sat, 3 Jul 2021 09:56:36 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210703133458.yDV-p%steffen@sdaoden.eu>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <20210702234941.MjMt0%steffen@sdaoden.eu>
 <20210703133458.yDV-p%steffen@sdaoden.eu>
Message-ID: <CAFH29tpbwWoGx6vJS7ee7aUJgu3hwsNyYFrSaFHy6Z_4x7z4qw@mail.gmail.com>

I remember at some Usenix panel, Steve Johnson said "what happens to the
Unix model when the primary mode of interaction isn't a set of bytes"  This
was 20+ years ago, IIRC. I think Rob Pike's ACME and Squeak tried to
provide an answer to a half-way situation.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210703/eda5b74c/attachment.htm>

From clemc at ccc.com  Sun Jul  4 00:15:11 2021
From: clemc at ccc.com (Clem Cole)
Date: Sat, 3 Jul 2021 10:15:11 -0400
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAHrGxA2bB31JctWvXxN_46-Y+zo4JcuYXpGZQXd3aHZNB6Y5ng@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAHrGxA2bB31JctWvXxN_46-Y+zo4JcuYXpGZQXd3aHZNB6Y5ng@mail.gmail.com>
Message-ID: <CAC20D2NfhnwoO+j_yfg0Te2XiOKnAJSuGxwX0m45oJuRPZwWuQ@mail.gmail.com>

On Fri, Jul 2, 2021 at 10:22 PM Matt Day <fjarlq at gmail.com> wrote:

> I think you must be right about the first machine being something running
> BSD UNIX.
>
Be careful when you say 'BSD'-- when people say "BSD UNIX" they
*usually mean* a Unix release post-VAX  support (*a.k.a.* 3BSD).

We know for a fact that Rogue definitely ran on 16-bit PDP-11's - it's an
open question of it needed the '17th bit' (*a.k.a.* separate I/D of
the 11/45 class).  As I said, I had on the TekLab's 11/70 in those days and
I think I got it from Mark Bales, who was a UCB student in the CAD group
which I would later join as a grad student.

Plus Ken Arnold was originally part of the Ingres group, which famously had
the only ArpaNet connection on campus at the time (Ing70 - which I have
forgotten what it's one letter 'Berk-Net' id was -- Mary Ann might remember
- *i.e*. all external email was shipped across the Berknet to Ing70 for
processing).

The original BSD (*a.k.a.* what we call 1BSD on this mailing list) and
2BSD, were already in the wild particularly at other University sites,
since 1BSD had UCB Pascal in it and many schools in those days were using
Pascal as their teaching language.  But ... if you look at the tapes, there
are tools and the C-shell, ex, and other tidbits, but the *kernel* running
at UCB in those days is very much V6 and later V7 based - maybe with a few
changes like some performance tweaks for nami and moving the I/O buffers
(but those were from other places).

The system people ran in those days (particularly on PDP-11s) is not nearly
what we now think of as a 'pure-joy.'  Truth is, until 4.1BSD, that is
really were 'BSD' starts to take an identity of its own as being distinctly
different from Research and both being loved and loathed by many -- Rob's
'cat -v' paper *et al.*.

>From the timing, it is also quite possible Toy and Wichman had either a
3BSD or very early 4BSD Vax or just as likely V7 with 2BSD loaded.

Just an old f*art who was there chiming in ...   :-)

Clem
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210703/f90d66f0/attachment.htm>

From imp at bsdimp.com  Sun Jul  4 01:08:09 2021
From: imp at bsdimp.com (Warner Losh)
Date: Sat, 3 Jul 2021 09:08:09 -0600
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAC20D2NfhnwoO+j_yfg0Te2XiOKnAJSuGxwX0m45oJuRPZwWuQ@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAHrGxA2bB31JctWvXxN_46-Y+zo4JcuYXpGZQXd3aHZNB6Y5ng@mail.gmail.com>
 <CAC20D2NfhnwoO+j_yfg0Te2XiOKnAJSuGxwX0m45oJuRPZwWuQ@mail.gmail.com>
Message-ID: <CANCZdfpT_H2zLG_v_SRPhYnDO-ar1w-aDAwWgvFkCdTv2MCZLA@mail.gmail.com>

On Sat, Jul 3, 2021 at 8:16 AM Clem Cole <clemc at ccc.com> wrote:

>
>
> On Fri, Jul 2, 2021 at 10:22 PM Matt Day <fjarlq at gmail.com> wrote:
>
>> I think you must be right about the first machine being something running
>> BSD UNIX.
>>
> Be careful when you say 'BSD'-- when people say "BSD UNIX" they
> *usually mean* a Unix release post-VAX  support (*a.k.a.* 3BSD).
>
> We know for a fact that Rogue definitely ran on 16-bit PDP-11's - it's an
> open question of it needed the '17th bit' (*a.k.a.* separate I/D of
> the 11/45 class).  As I said, I had on the TekLab's 11/70 in those days and
> I think I got it from Mark Bales, who was a UCB student in the CAD group
> which I would later join as a grad student.
>
> Plus Ken Arnold was originally part of the Ingres group, which famously
> had the only ArpaNet connection on campus at the time (Ing70 - which I have
> forgotten what it's one letter 'Berk-Net' id was -- Mary Ann might remember
> - *i.e*. all external email was shipped across the Berknet to Ing70 for
> processing).
>
> The original BSD (*a.k.a.* what we call 1BSD on this mailing list) and
> 2BSD, were already in the wild particularly at other University sites,
> since 1BSD had UCB Pascal in it and many schools in those days were using
> Pascal as their teaching language.  But ... if you look at the tapes, there
> are tools and the C-shell, ex, and other tidbits, but the *kernel* running
> at UCB in those days is very much V6 and later V7 based - maybe with a few
> changes like some performance tweaks for nami and moving the I/O buffers
> (but those were from other places).
>
> The system people ran in those days (particularly on PDP-11s) is not
> nearly what we now think of as a 'pure-joy.'  Truth is, until 4.1BSD, that
> is really were 'BSD' starts to take an identity of its own as being
> distinctly different from Research and both being loved and loathed by many
> -- Rob's 'cat -v' paper *et al.*.
>
> From the timing, it is also quite possible Toy and Wichman had either a
> 3BSD or very early 4BSD Vax or just as likely V7 with 2BSD loaded.
>

Rough timeline

V6           mid 75
1BSD      mid 77 (pascal, ex, but no vi)
2BSD      late 78 (vi, though from a 1979 copy in tuhs no curses yet, but
with termcapish things dated April 79)
V7           early 79
3BSD      late 79
2BSD      April 80 (the 2.79 in the archives, by this point curses was
added to the tape)
4BSD      mid 80 (with curses)
2.8/4.1BSD mid 81 (first unified kernel+userland pdp-11 distro)

So curses library wasn't on the 3bsd tape. It may have been on the 4bsd
tape: all I can find is libtermcap on tuhs, but kirk's archive has a
curses library data October 1980. The late 2BSD tapes (called 2.79BSD in
our archive) is the earliest artifact I can find. It appears curses wasn't
widely available until midish 1980: the 2.79BSD tape has a July 17, 1980
date on the docs (being the earliest artifact I could find) and a Jan 1981
on the sources. The earliest net.sources archive I can find starts in 1982.
The latest 2BSD tape we have in the archive from April 1979 does not have
it.

A binary of rogue is on the 2.8BSD and 4.1BSD tapes. 2.8 has 'version 3.4'
but no sources and 4.1 has vers 4.22 in a 4.0 upgrade directory, but no
sources either:

-r--r--r--  1 root  wheel   70364 May 21  1981 ./2.8/usr/bin.v7/ucb/rogue
-r-xr-xr-x  1 root  wheel   96356 Mar 13  1982 ./4.1.snap/usr/games/rogue
-r-xr-xr-x  1 root  wheel   96356 Mar 13  1982
./4.1/4.0.upgrade/usr/games/rogue

Even in 4.2 it looks like most of rogue was distributed as a binary .o
file, and needed the updated net.sources version of libcurses, distributed
with 4.2bsd.

So from a tracing the artifacts for libcurses, we get an interesting
diversion, but nothing conclusive.

Warner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210703/e423754e/attachment.htm>

From akosela at andykosela.com  Sun Jul  4 01:49:57 2021
From: akosela at andykosela.com (Andy Kosela)
Date: Sat, 3 Jul 2021 17:49:57 +0200
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210702213648.GW817@mcvoy.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
Message-ID: <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>

On 7/2/21, Larry McVoy <lm at mcvoy.com> wrote:
> As I started reading it I found plenty to disagree with in the first few
> paragraphs but they completely lost me at "After all, moving from System
> V init scripts to systemd has arguably improvedthe Linux boot sequence."
>
> Um, no, just, no.

They come from the same "modern" camp of cloud fanatics that claim
"there was no automation before Ansible and no containerization before
Docker".  They also think that C is obsolete and your software stack
is useless if you don't include a dozen or so flashy bleeding edge
technologies and programming languages.

This is the kind of techno-cult fashion that Nikolai Bezroukov warned
about.  In the last few years we have seen more and more "papers" that
debunk and mock older stable Unix technologies because they want to
forcefully push their agenda and their new marketing terms.  We have
seen this with systemd which was forcefully pushed down on us; we have
seen this with Ansible, etc.

This vandalization of Unix already took place and I do not see a clear
way out of this situation.

--Andy

From tytso at mit.edu  Sun Jul  4 03:37:06 2021
From: tytso at mit.edu (Theodore Ts'o)
Date: Sat, 3 Jul 2021 13:37:06 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
Message-ID: <YOCgQkwbz8Xf8ap9@mit.edu>

On Sat, Jul 03, 2021 at 09:20:57AM -0400, Dan Cross wrote:
> 
> Systemd is both good and bad.

I agree with most of what you assess as "good" and "bad" with systemd.
However...

> It uses ersatz data formats that are abjectly
> horrible. It uses binary logging, which means that one cannot use the full
> complement of Unix text filters to inspect logs....

To be fair, systemd isn't the first.  BSD's sar program uses a binary
log file.

I'm not sure whether it's BSD's fault or only after it was pulled into
the systat package for Linux, but the binary format for the sar file
is (a) not self-describing, (b) not backwards compatible, and (c) not
stable between different versions, such that if you copy /var/log/sa/saNN
the files from one system and try to interpret it on another system, you
need to make sure that other system has the same version of sar installed.

This can be a headache if you are trying to debug an enterprise system
which is using a seven-year-old version of RHEL, and your laptop is
running something a bit more modern.

Things like Ingres also came out of Berkely, and modern databases all
use binary format files.  Is anything running a database, whether it
be Ingress, Postgres, Oracle Enterprise Database, DB2, no longer "Unix"?

And then there's AIX, which uses binary config files which are
manipulated using "smit", and mixes per-machine specific configs with
more general configs, all in a single config (or should I say,
"registry") file, so $DEITY help you if you try to copy the smit
database from one system to another if you are trying to do some kind
of large scale administration setup.  And granted there are many
people would dispute whether AIX is actually "Unix", it technically
speaking qualified to use the "Unix"(tm) trademark.

Similarly, Digital Equipment Corpartion's Ultrix used a binary log
file which you had to transmogrify using the uerf ("Ultrix Error
Report Formatter").  Like systemd, Ultrix uses a structured logging so
you can pull out specific types of logs, and Ultrix's uerf works much
systemd's journalctl.

So the concept of using binary logs and binary files predates systemd,
and there are more than a few examples that can be found in historical
systems that most people would have no trouble calling "Unix", and
even qualify for the Unix(tm) trademark.

					- Ted

P.S. For the most part, Linux systems don't qualify for the Unix(tm)
trademark, although it's not clear most people care about that these
days.  (A long time ago distributions paid $$$ to Posix Compliance
labs, probably because the government procurement requirements
required Unix(tm) systems, much like OSI stacks were simlarly required
by government procurement requirements.)



From imp at bsdimp.com  Sun Jul  4 03:57:44 2021
From: imp at bsdimp.com (Warner Losh)
Date: Sat, 3 Jul 2021 11:57:44 -0600
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <YOCgQkwbz8Xf8ap9@mit.edu>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <YOCgQkwbz8Xf8ap9@mit.edu>
Message-ID: <CANCZdfoq_kKTzqP=99QrMeZd5SZNLRJH+H8ccFkjKi=f9AFadg@mail.gmail.com>

On Sat, Jul 3, 2021 at 11:45 AM Theodore Ts'o <tytso at mit.edu> wrote:

> On Sat, Jul 03, 2021 at 09:20:57AM -0400, Dan Cross wrote:
> >
> > Systemd is both good and bad.
>
> I agree with most of what you assess as "good" and "bad" with systemd.
> However...
>
> > It uses ersatz data formats that are abjectly
> > horrible. It uses binary logging, which means that one cannot use the
> full
> > complement of Unix text filters to inspect logs....
>
> To be fair, systemd isn't the first.  BSD's sar program uses a binary
> log file.
>

You mean System V's sar program? BSD has never had a sar program.
It's not in any of the CSRG releases, nor in any of {Free,Net,Open}BSD
systems that are around today.

It first appeared in System Vr1, and was in each of the following releases
if the listings of files on the net are any indication.


> I'm not sure whether it's BSD's fault or only after it was pulled into
> the systat package for Linux, but the binary format for the sar file
> is (a) not self-describing, (b) not backwards compatible, and (c) not
> stable between different versions, such that if you copy /var/log/sa/saNN
> the files from one system and try to interpret it on another system, you
> need to make sure that other system has the same version of sar installed.
>

Sounds awful...

Warner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210703/c20ce8f4/attachment.htm>

From tytso at mit.edu  Sun Jul  4 04:10:24 2021
From: tytso at mit.edu (Theodore Ts'o)
Date: Sat, 3 Jul 2021 14:10:24 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CANCZdfoq_kKTzqP=99QrMeZd5SZNLRJH+H8ccFkjKi=f9AFadg@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <YOCgQkwbz8Xf8ap9@mit.edu>
 <CANCZdfoq_kKTzqP=99QrMeZd5SZNLRJH+H8ccFkjKi=f9AFadg@mail.gmail.com>
Message-ID: <YOCoEIUzwrYS9hWf@mit.edu>

On Sat, Jul 03, 2021 at 11:57:44AM -0600, Warner Losh wrote:
> 
> You mean System V's sar program? BSD has never had a sar program.
> It's not in any of the CSRG releases, nor in any of {Free,Net,Open}BSD
> systems that are around today.

Ah, I got confused because a web search turned up:

https://www.freebsd.org/cgi/man.cgi?query=sar&sektion=1M&apropos=0&manpath=SunOS+5.8

.... and I got mislead because FreeBSD hosts Solaris man pages.

Although it appears more recently FreeBSD has "bsdsar" in its Ports.

My larger point remains, though; is System V considered "Unix" by Dan
Cross's definition?   :-)

	    	    	 	  	      	       - Ted

From crossd at gmail.com  Sun Jul  4 06:02:53 2021
From: crossd at gmail.com (Dan Cross)
Date: Sat, 3 Jul 2021 16:02:53 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <YOCoEIUzwrYS9hWf@mit.edu>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <YOCgQkwbz8Xf8ap9@mit.edu>
 <CANCZdfoq_kKTzqP=99QrMeZd5SZNLRJH+H8ccFkjKi=f9AFadg@mail.gmail.com>
 <YOCoEIUzwrYS9hWf@mit.edu>
Message-ID: <CAEoi9W7k0Qgc=DqD_kL7mMT9=wCEYzkskcUNeSvQX-MLSvnX5g@mail.gmail.com>

On Sat, Jul 3, 2021 at 2:10 PM Theodore Ts'o <tytso at mit.edu> wrote:

> On Sat, Jul 03, 2021 at 11:57:44AM -0600, Warner Losh wrote:
> >
> > You mean System V's sar program? BSD has never had a sar program.
> > It's not in any of the CSRG releases, nor in any of {Free,Net,Open}BSD
> > systems that are around today.
>
> Ah, I got confused because a web search turned up:
>
>
> https://www.freebsd.org/cgi/man.cgi?query=sar&sektion=1M&apropos=0&manpath=SunOS+5.8
>
> .... and I got mislead because FreeBSD hosts Solaris man pages.
>
> Although it appears more recently FreeBSD has "bsdsar" in its Ports.
>

Huh. I guess 'sa' wasn't good enough, though that also uses a format that
suffers from many of the same deficiencies you point out for 'sar'.

My larger point remains, though; is System V considered "Unix" by Dan
> Cross's definition?   :-)


Well, with the caveat that I'm pretty sure Dan Cross's definition of Unix
is of interest to an extremely small set of people (possibly the empty
set...), and that any answer is a bit of a meditation on the existential
philosophy of, "really, what _is_ Unix, anyway?" I'll go out on a limb and
say yes.

I don't think that the pervasive use of text formats for logs in much of
the system was ever meant to be to the exclusion of binary formats for
specific applications where that was warranted (usually for efficiency),
which have existed since the near the beginning. Off the top of my head,
representative examples of logging or logging-adjacent binary formats
common on Unix systems and extending into antiquity include utmp/wtmp,
lastlog, the quota database and acct; perhaps even crash dumps and core
files might fall under this overarching umbrella.

Not to mention all of the other ubiquitous binary file formats that've been
floating around seemingly forever: tar/tp/ar/UFS dump, dbm/ndbm, any number
of compressed file formats, and so on. Not to mention the on-disk data
structures describing filesystems and so on. But historically speaking,
logs, whether generated by explicit print statements in programs or by
something like calling `syslog()`, have been text. I suppose the point
being that, while individual use cases might use some binary format, by and
large most systems opted to use text and for many years that was just the
accepted and anticipated course of action. It was the default.

Systemd turns this on it's head. Text isn't just no longer the default,
it's just not an option. Sure, the aforementioned things are similar, but
this is a step beyond.

And note that I didn't say that Linux wasn't Unix because of systemd (or
perhaps more properly, that the Linux distributions that use systemd
weren't Unix), but rather, that systemd itself wasn't very Unixy. I think
that's accurate. Of course with respect for the other binary things you
mentioned (databases and so on) people write all kinds of whacky things for
systems, but those don't define the system. Systemd is much closer to the
"system" than, say Ingres of Oracle or PostgreSQL.

I do think this shift probably started with System V, but it still largely
follows the model of "Unix". And even AIX has syslog.

It's funny...I have no recollection of the mechanism you describe for
Ultrix, and a DECstation 5000/240 was my main machine for a good while.

        - Dan C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210703/3a6847ae/attachment.htm>

From jon at fourwinds.com  Sun Jul  4 06:07:47 2021
From: jon at fourwinds.com (Jon Steinhart)
Date: Sat, 03 Jul 2021 13:07:47 -0700
Subject: [TUHS] The Unix shell: a 50-year view
Message-ID: <202107032007.163K7lW72490663@darkstar.fourwinds.com>

Wow.  This is a terrible paper.  It's full of of incorrect, unsubstiantiated,
and meaningless statements.  It's so bad in my opinion that I'm not sorry
that I dropped my ACM membership a while ago.  These folks really needed an
editor.  The paper annoys me so much that I've decided to write a lengthy
note to the authors which I'll post here once I'm done.

Jon

From tuhs at eric.allman.name  Sun Jul  4 08:25:24 2021
From: tuhs at eric.allman.name (Eric Allman)
Date: Sat, 3 Jul 2021 15:25:24 -0700
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CANCZdfpT_H2zLG_v_SRPhYnDO-ar1w-aDAwWgvFkCdTv2MCZLA@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAHrGxA2bB31JctWvXxN_46-Y+zo4JcuYXpGZQXd3aHZNB6Y5ng@mail.gmail.com>
 <CAC20D2NfhnwoO+j_yfg0Te2XiOKnAJSuGxwX0m45oJuRPZwWuQ@mail.gmail.com>
 <CANCZdfpT_H2zLG_v_SRPhYnDO-ar1w-aDAwWgvFkCdTv2MCZLA@mail.gmail.com>
Message-ID: <0c3ba540-0df0-b4e6-bf04-8169e22a5f74@neophilic.com>


> Plus Ken Arnold was originally part of the Ingres group, which
> famously had the only ArpaNet connection on campus at the time (Ing70
> - whichВ I have forgottenВ what it's one letter 'Berk-Net' id was --
> Mary Ann might remember - /i.e/. all external email was shipped across
> the Berknet to Ing70 for processing).

Actually, I don't recall Ken actually working on Ingres, although it's
not impossible — he certainly did work at Britton Lee, which was an
Ingres spin-off. But lots of people in the department had access to our
machine, almost certainly including Ken. But resources were limited and
the entire department had to compete for the two terminal lines
available at the time, which is why I wrote delivermail (later sendmail)
in the first place.

The "one letter berk-net id" of ing70 was "i". At the time of the
ARPAnet it was running a rather customized V6 that (if I recall
correctly) we got from Greg Chesson. It was connected via a VDH (Very
Distant Host) interface to the IMP at LBL — essentially a six-foot-high
9600 baud modem.В  ingvax was "j", but the ARPAnet code never ran on that
hardware.

eric

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210703/14458bb6/attachment.htm>

From rtomek at ceti.pl  Sun Jul  4 10:47:57 2021
From: rtomek at ceti.pl (Tomasz Rola)
Date: Sun, 4 Jul 2021 02:47:57 +0200
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
Message-ID: <20210704004757.GB24671@tau1.ceti.pl>

On Sat, Jul 03, 2021 at 09:20:57AM -0400, Dan Cross wrote:
[...]
> Much of Unix's early evolution and thus architecture and philosophy, came
> from addressing a set of problems that people had in a historical context
> that, one could argue, aren't that relevant anymore.

I mostly agree with you, but I think certain things should be
expressed more explicitly, even if I do not want to be picky. So, I
see the claim of Unix not being relevant anymore might be interpreted
in two ways, and both are not (quite) true. 

First, if it means "for all people it is not relevant anymore", such
thing never happened IMHO. For this, all those folks would need to
consider Unix as a tool for their problems and decide that it was
obsolete. But, most of humans were never so much interested in
computers to know about "some yooo-neex" and this state of things
lasts to these days. If they use computer (cellphone), it is most
probably because now the devices enable dating and other forms of
entertainment. Some of them even heard about "Leah nukes".

Another way of understanding your statement is "there was a group of
folks for whom Unix was relevant and lost its appeal". This, again,
not true. The group itself may have lost members and gained members,
but I believe it is more or less same size. Maybe even bigger than it
was, and ability to have anything "unix-like" for free (as in
"voluntary donation") plays huge role here.

> A hierarchical filesystem in a global namespace, pipelines
> facilitating chaining of filters for interactive use, a simple but
> weak permissions model, unstructured text as a universal interchange
> format, terminal-oriented text editors.... All of these were fine on
> shared multiuser interactive machines, but do they matter as much
> now?

Depends. In a land of the blind a one-eye should be very careful,
because he would not be a king. I certainly would not like to be
endlessly asked for help with installing Linux. I think majority of
computer users do not care, will not care, that they have some files
on their machines or even that what they have are the machines. So,
they might not appreciate your knowledge about such things. Perhaps it
is a good thing?

[...]
> Perhaps I've mentioned this story before: a former colleague at Google was
> writing a shell script to figure something out. It wasn't working. Really,
> what he wanted was basically a `grep -q` and an `if` statement, but he'd
> written a complicated mess with shell functions that tried to "return" the
> exit status of the processes they ran: his shell script was written more
> like a Python program. I rewrote it for him in half-a-dozen or so lines
> (down from 30 or 40) and talked about Unix for a minute, the philosophy,
> etc. At the end of my monologue extolling the virtues of our style of
> computing, he looked at me blankly and said something along the lines of,
> "yeah. I think that time has passed and people just don't conceptualize
> problems that way anymore."

I think what he really meant (knowlingly or not) was "the money walks
somewhere else". As far as I can say, the kids are just following
money. This kind of behaviour is called a tropism. Since this is how
the world goes, I am not sure it can be described as bad or good. This
is very much like evolution, thanks to which we are living in and are
the result of living in, a huge slaughterhouse. The 30cm long
centipede hunts bats which evolved long after centipede and long after
insects were dominant life forms on a planet. /bin/sh will be used to
solve problems in a future, too. Innumerable Unix servers will be sent
to the landfill. systemd will grow a hairy-sticky ecosystem of its
own, developing pseudo-kernels like pseudo-brains in dinosaur belly.

-- 
Regards,
Tomasz Rola

--
** A C programmer asked whether computer had Buddha's nature.      **
** As the answer, master did "rm -rif" on the programmer's home    **
** directory. And then the C programmer became enlightened...      **
**                                                                 **
** Tomasz Rola          mailto:tomasz_rola at bigfoot.com             **

From lm at mcvoy.com  Sun Jul  4 14:36:15 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Sat, 3 Jul 2021 21:36:15 -0700
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210704004757.GB24671@tau1.ceti.pl>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
Message-ID: <20210704043615.GE817@mcvoy.com>

On Sun, Jul 04, 2021 at 02:47:57AM +0200, Tomasz Rola wrote:
> On Sat, Jul 03, 2021 at 09:20:57AM -0400, Dan Cross wrote:
> [...]
> > Much of Unix's early evolution and thus architecture and philosophy, came
> > from addressing a set of problems that people had in a historical context
> > that, one could argue, aren't that relevant anymore.

This is a response to Cross.  You are sort of right in that we are not on
uniprocessors where we disable interrupts to manage things.

Unix still matters.  It has mattered for a very long time, I could argue
it is the most important operating system in the world.  Yeah, windows
won, but it didn't win on merits.

In my opinion you couldn't be more wrong.  We still have the same problems,
we are still trying to grep an answer out of a bunch of info that has just
gotten bigger.

We still want to do the same things and we are doing them better with faster
CPUs, memory, disks, etc.

I maybe think the reason you think that things aren't relevant anymore are
because young people don't get Unix, they just pile on to this framework
and that framework, NONE OF WHICH THEY UNDERSTAND, they just push more
stuff onto the stack.

If you actually have a clue, if you can do stuff, all of that other stuff
becomes fluff.  Yep, some of it is useful but most of it is just there 
because it wants to feel important. 

Unix matters, the way that you can compose stuff still matters, people
who can do that run circles around the people who say Unix doesn't work.
My first job, they said 6 months, I did it 3 weeks by using what Unix 
gave me.

From crossd at gmail.com  Sun Jul  4 22:48:23 2021
From: crossd at gmail.com (Dan Cross)
Date: Sun, 4 Jul 2021 08:48:23 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210704004757.GB24671@tau1.ceti.pl>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
Message-ID: <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>

On Sat, Jul 3, 2021 at 8:57 PM Tomasz Rola <rtomek at ceti.pl> wrote:

> On Sat, Jul 03, 2021 at 09:20:57AM -0400, Dan Cross wrote:
> [...]
> > Much of Unix's early evolution and thus architecture and philosophy, came
> > from addressing a set of problems that people had in a historical context
> > that, one could argue, aren't that relevant anymore.
>
> I mostly agree with you, but I think certain things should be
> expressed more explicitly, even if I do not want to be picky. So, I
> see the claim of Unix not being relevant anymore might be interpreted
> in two ways, and both are not (quite) true.


I didn't say that Unix is no longer relevant. I said that the problems that
were prominent when Unix was built, and that thus shaped its architecture,
are much _less_ relevant now than they were at the time. They still have
some relevance, but are no longer primary for the vast majority of use
cases Unix is used for. Further, the way people approach problems now has
changed, even if they still generically assume "Unix" as the base they
build on.

        - Dan C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/092d8599/attachment.htm>

From crossd at gmail.com  Mon Jul  5 00:56:48 2021
From: crossd at gmail.com (Dan Cross)
Date: Sun, 4 Jul 2021 10:56:48 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210704043615.GE817@mcvoy.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl> <20210704043615.GE817@mcvoy.com>
Message-ID: <CAEoi9W7hjzRcCja6-rEaFx56KhEtfchfgCgUM6u+_bJAdQXkvA@mail.gmail.com>

On Sun, Jul 4, 2021 at 12:37 AM Larry McVoy <lm at mcvoy.com> wrote:

> On Sun, Jul 04, 2021 at 02:47:57AM +0200, Tomasz Rola wrote:
> > On Sat, Jul 03, 2021 at 09:20:57AM -0400, Dan Cross wrote:
> > [...]
> > > Much of Unix's early evolution and thus architecture and philosophy,
> came
> > > from addressing a set of problems that people had in a historical
> context
> > > that, one could argue, aren't that relevant anymore.
>
> This is a response to Cross.


Uh oh. I know I'm in trouble when I'm referred to by my last name only. :-)

You are sort of right in that we are not on
> uniprocessors where we disable interrupts to manage things.
>
> Unix still matters.  It has mattered for a very long time, I could argue
> it is the most important operating system in the world.  Yeah, windows
> won, but it didn't win on merits.
>

Whoa hold on now. I never said that _Unix_ doesn't still matter. It
emphatically does. I agree with you that it, or perhaps more precisely the
evolutionary tree of systems that fit under it's rather large umbrella, is
indeed the most important operating system family in the world. It runs
everywhere and it runs everything; it's literally out of this world. You
will get no argument from me there.

In my opinion you couldn't be more wrong.  We still have the same problems,
> we are still trying to grep an answer out of a bunch of info that has just

gotten bigger.
>


We still want to do the same things and we are doing them better with faster
> CPUs, memory, disks, etc.
>

But this I disagree with. We may still be trying to solve many of the same
problems, but entirely new categories of problems have sprung up since Unix
was invented, those problems have grown to frankly dwarf the size of the
previous problems, and our modes of interaction with the machine have
totally changed. Consider that the median interaction these days is some
RPC-ish call over HTTP between a user using a gesture interface on a phone
or tablet or something, and some service running somewhere "in the cloud".
Both sides of this (and the myriad stages in between) might be running on
machines that are running "Unix", but this emphatically is _not_ grep, at
least no more than extracting data out of IMS in COBOL under OS/360 was
also a glorified form of "grep".

I maybe think the reason you think that things aren't relevant anymore are
> because young people don't get Unix, they just pile on to this framework
> and that framework, NONE OF WHICH THEY UNDERSTAND, they just push more
> stuff onto the stack.
>

Yes, that was kind of my point. But not only do they not get Unix, they
don't want to, either. Why is that? I think that's the interesting question.


> If you actually have a clue, if you can do stuff, all of that other stuff
> becomes fluff.  Yep, some of it is useful but most of it is just there
> because it wants to feel important.


I agree with that last statement, but I'm not sure I agree with the former.
I'm not a front-end person; I'll never be a front-end person. Frankly, I
lack the artistic and aesthetic ability to ever be good at that kind of
work. My web site is frankly ugly; I don't care. But I've had the
opportunity to interact with folks who are actually good at front-end
stuff, and they're really sharp. They definitely have a clue. But it's an
entire type of clue that I simply do not nor ever will have.

Many of those people choose to use Linux as their daily driver environment;
bully for them. However, they don't reach for the compliment of tools that
many of us take for granted as being part and parcel of the Unix
environment are not what they reach for first. Most folks aren't using
`sed` to extract something from a typescript program or CouchDB or whatever.

Unix matters, the way that you can compose stuff still matters, people
> who can do that run circles around the people who say Unix doesn't work.
> My first job, they said 6 months, I did it 3 weeks by using what Unix
> gave me.
>

Forgive my saying this, but that was then, this is now. The kinds of
automation that I used to wow folks with when I was starting out by being
moderately facile with Unix tools just don't apply to entire classes of
problems anymore. And if the job is working on one of those problems....

This doesn't mean that Unix isn't still important. It obviously is. But it
means that what people are using it for, and how they're using it has
changed. And that does inevitably raise questions about system evolution.

        - Dan C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/1e8c0ad8/attachment.htm>

From tytso at mit.edu  Mon Jul  5 02:07:55 2021
From: tytso at mit.edu (Theodore Ts'o)
Date: Sun, 4 Jul 2021 12:07:55 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210704043615.GE817@mcvoy.com>
Message-ID: <YOHc29BtJa4c66EI@mit.edu>

On Sat, Jul 03, 2021 at 09:36:15PM -0700, Larry McVoy wrote:
> In my opinion you couldn't be more wrong.  We still have the same problems,
> we are still trying to grep an answer out of a bunch of info that has just
> gotten bigger.
> 
> We still want to do the same things and we are doing them better with faster
> CPUs, memory, disks, etc.

I'm not sure I agree with you.  The same problems still exist, to be
sure.  But there are new problems that have also arisen, for which
Unix might not be the best match.  For example, Unix didn't have to
deal with devices appearing after the system has booted; or those
devices disappearing afterwards.  And of course, with services that
might need to be started or reconfigured or stopped as devices get
attached and detached.

The original Unix systems didn't have the requirement of automatically
detecting failed hardware or software, and taking action to mitigate
those faults without depending on operators in data centers.  If we
consider some of the structured logging systems, whether it's
Ultrix/OSF's uerf, or Solaris's SMF, or Tuttle (an internal system I
designed for $WORK), it's at least in part because scraping
/var/log/messages and having cluster management systems parse textual
log entries using an unholy mess of regex's is error prone and not
necessarily reliable or maintainable.

There are also new problems, such as Machine Learning, which has led
to the introduction of coprocessors, which is a great example of
something which is *not* doing the "same things" but with better CPUs,
memory, disks, etc.

You can of course define away some of these new problems as "not
interesting", or "not the true spirit of Unix", but the reality is
there are a good reason why systems have been changing --- it's in
response the pressures of new requirements and new problems being
added, even if the old problems haven't gone away.

> I maybe think the reason you think that things aren't relevant anymore are
> because young people don't get Unix, they just pile on to this framework
> and that framework, NONE OF WHICH THEY UNDERSTAND, they just push more
> stuff onto the stack.

This is perhaps an unavoidable response to increasing complexity.
When I was an undergraduate we started by building a computer using
TTL chips on a breadboard, and then we went on to learn Scheme and the
Lambda calculus, and then built up from there.  But a few years ago,
MIT decided this wasn't sufficiently relevant to how most software
engineers work today, so the intro to computing class was redone to
use Python, and it was a stated goal to give students experience in
how to build on top of a framework which is not sufficiently
documented, and where they need to figure out what the #?$!@? was
going on via experimentation, supplemented with whatever documentation
and sources that students could find/read/understand.

(And if you look at the depth of a stack trace after a typical Java
application crashes due to an unhandled exception, MIT has probably
gotten it right in terms of what most CS students will experience
after they graduate.  I remember looking 80-90 Java function names in
a Lotus Notes stack dump after a crash, involving the Eclipse *and*
the Standard Java library frameworks, with awe and horror...)

As a result, I've found that most new college grads don't have much in
the way of Systems training or experience, and for those groups that
need that kind of Systems thinking at $WORK, it's something we need to
train, and not something I can assume new hires will have.  (This is
also true for many candidates with significant industry experience
which I've interviewed, alas.)

						- Ted

From johnmdow at me.com  Mon Jul  5 04:17:55 2021
From: johnmdow at me.com (John Dow)
Date: Sun, 4 Jul 2021 19:17:55 +0100
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
Message-ID: <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>

> On 2 Jul 2021, at 22:58, Henry Bent <henry.r.bent at gmail.com> wrote:
> 
> п»ї
> After rattling around in the back of a train car with nothing but my thoughts, I emerged and said:
> 
> "systemd is a pox on our way of life"
> 
> and then promptly rolled over and went back to sleep.

I prefer to think of it as the answer to a question that no one was asking.

J

From clemc at ccc.com  Mon Jul  5 05:46:08 2021
From: clemc at ccc.com (Clem Cole)
Date: Sun, 4 Jul 2021 15:46:08 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
Message-ID: <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>

Hmm ... do I want to get in the middle of a fight with my friends and get
them all mad at me… but I guess I cann’t just keep quiet on this debate.



Basically I think Larry and Dan are having the Dan Akroyd/Gilda Radner
 “Shimmer”
Dessert Topping / Floor Wax <https://www.youtube.com/watch?v=wPO8PqHGWFU>
debate.   That said, I do think systemd is a giant step backward for most
of the same reasons others have already said, so I’ll not pile on and stick
to the basic what does it mean to be Unix or not/what is an improvement or
not, discussion.



Larry observes:  “I maybe think the reason you think that things aren't
relevant anymore are because young people don't get Unix, they just pile on
to this framework and that framework, NONE OF WHICH THEY UNDERSTAND, they
just push more stuff onto the stack.”



Simply, I could not have said that better.  But that is a symptom of the
problem.  Frankly, with frameworks and the like, we have added so many
levels of abstraction, we have completely lost sight of the real issues and
many folks really don’t “think like a programmer” any more.   Remember,
UNIX was a system *by programmers for programmers.*  Much work since has
been hiding a lot of what made it great IMO - which I think has caused the
most damage.



What makes a system a flavor UNIX or not is almost personal, based on what
you value (or not).  But the fact is no matter what you call it, “UNIX” is
the core kernel with a small and simple set of operations, plus a set of
programs that are all based on the simple ideas, basic concepts and mostly
solid mathematics/computer science that a small group of people in NJ came
up with at the time, when they suggested there might be a better way to put
things together than had been otherwise popular at the time.   Their
concepts and ideas collectively were different enough that they were
encouraged to write a paper about it.  That paper was accepted and
published in CACM, it got a lot of people in the community interested in
those ideas and  the rest is history as we say.



But a huge difference between then and now is the *economics* and thus the
matching equipment they used to explore those new ideas.  So some
solutions, we take for granted today, would not be practical, much less
even possible in those times.



Just like some people trying to claim that ‘Linux’ is not UNIX, falls away
deftly as well as it did years ago when other ‘progressive’ features were
added to 'Research UNIX' and we got systems like BSD 4.1 much less 4.2.
Remember smart people from Rob’s “cat -v” paper to Henry Spencer (“BSD is
just like UNIX, only different” net.noise comment) in those days railed on
the new BSD system as not being ‘UNIX’ either.  For good or for bad, many
of the things we take for granted today as being required in a UNIX system,
go back to UCB features (or features from AUUG, MIT, CMU or similar).



I’ve also stated many times, I do so miss the simplicity and cleanliness of
V6 and V7, but I would not want to use it for my daily work today.  So many
of those very features that Henry and Rob pointed out back in the day, have
somehow proven in fact to be ‘helpful’ or at least comfortable.  While a
few of us probably could live with something like ed(1), particularly with
a front-end/feature more like Plan9’s sam(1), than absolutely having to
have VI/EMACS.



Let me offer an example as a thought exercise.     I was recently helping a
young hacker trying to get V5/V6/V7 going on a PDP-11 simulator so he could
play with it to learn more about the 11 and UNIX itself.  I gave him some
help and without thinking about it in my email I mentioned that he try
something, but I had forgotten that the program head(1) was a Bill Joy
program wrote in 1977.  What UNIX box would not have it today?  As it is
screwed into the ROM in my fingers when I type (actually the sources to head
(1)  is less than 200 lines with Вј that being the BSD copyright, I sent him
them and suggested he recompile it - partly as an exercise to see how C
changed).



But note that when wnj wrote head(1), Joy followed the famous ‘Unix
Philosophy’ of  doing one (small) job well.   Which means he did not add a
feature *i.e. *abusing, an old program, like cat(1), and add some new
switch to it that that told the program stop outputting after n lines.
Instead Joy wrote a simple new tool.



This is the problem with what Larry was pointing out, I think frameworks
and like are just adding features on features on features to current
subsystems.   Yeech!!!



To me what made Unix ‘great’ was that this small (16-bit) system, with
48k-256K of memory can could practically owned by a department at $150-250K
would allow you to do the same sorts of things that took a $1-4M type of
system (be it a PDP-10 or IBM or the like).



Mashey did his ACM lectures called “Small Is Beautiful”, sometime after
they completed PWB 1.0 and this was one of his points.   Unix was a small
SW system on a small HW system platform, but was clean and did what you
(the programmer) needed without a lot of extra cruft.  IIRC for PWB 1.0,
that was an 11/45 as the recommended system to run it.  Not the smallest
(11/40), but hardly the 11/70 either.   But as the 32-bit systems became
available, many of the different constraints of the PDP-11 were removed –
first data size and then text size.  When the VAX came and 32-bits was
infinite (probably still is for text space), performance got better (and
cheaper), disks got bigger, *etc*.



And because it was less and less of a problem, quickly programmers got a
tad lazy or at least stopped paying attention to things they were required
to consider in the past.  Ex (or for that matter EMACS) in thinking was the
first the UCB “explosions”  and maybe where UNIX began to be a tad
different and look less and less like what had come from the NJ avengers.
The resources of the new systems were such that you did not need a new set
of small programs, you added features (extensions) to the old – and that
was (is) a trap which we seem to follow today.



I think other folks like to point out all the new wonder new functionality
in the Linux kernel (or FreeBSd or macOS etc...) have brought to the UNIX
world besides BSD’s sockets networking (loadable drivers, dynamic devices
are super and I would not want to be without either).  I like shared
libraries, and better memory systems.  Although of course on my
supercomputer what are two things we turn off (shared libraries and much of
the fancy memory stuff - cause they get in the way of real programs ;-).


BTW:  I also think sockets were (are) a terrible addition to UNIX and we
did not really need them. We are stuck with them now, but  I would rather
have had something more like what ChaosNet and the original UofI Arpanet
code, or what UNET did, where much of the network stack was in user space
[which in fact was what the Interface BBN originally used].  In other
places, over time, we have added window managers GUI’s *et al*.  Hey the
core C compiler’s code generator is remarkable compared to what it was for
the PDP-11, plus we have new languages be they Rust, Go or even C++ and
Java.



The key point is few people are really asking the question, *if I add this
new feature what does it cost, and what do we really get for it?*



The truth is many of these features are all comforts and *I do like many of
them* and I use them and want many of them.   I like kernel support for MxN
threading, but that took kernel support – what did we get beyond fork/exec
that we really did not have (the answer is probably better performance due
to tighter control, but I wonder if we bought much more than that).  I’m
typing on a Mac, while most of why ‘work’ these days is targeted Linux.
But what is common is mostly I can work in the manner I want.  I have
something that does make some things nice (easier)… Both are ‘UNIX’ in some
manner – that core of both are the same core ideas I see in V5/V6/V7 –
that’s good.  *i.e.* they both work as a floor wax….



But all of those new features have come at a cost, the biggest is
complexity/bloat.  We have lost a lot in the design because today’s
programmers just don’t have to deal with the kind of constraints that some
of had to deal with years ago and I think you hear a number of us groaning
that when papers like this one come out, they have completely missed the
point and really don’t understand what it means to be UNIX.



I suspect if VM/TSO or VMS had become the core technology of the future,
the papers being written today would be just as damning.  If you never
lived in the old world, I’m not sure you understand the improvement.



I’m going to toss the gauntlet with a slightly even more political
statement.  When I read that paper, it reminded me of the current round of
anti-vaxxers.   Those of us that remember polio and other ‘childhood
diseases’ have no desire to go back in time and relive it.  I really don't
want to run VMS/RSX or for that matter TSS/360 which was the first system I
really ever knew how to use well.



So in the same way, UNIX is the core technology we have today and I’m
damned glad it ‘won’ be it called Linux, FreeBSD or macOS.  It was not
perfect then and it is hardly perfect today.  But it was different from
what we had at that time, and so much better - *that today we now use those
ideas* from UNIX as our core ideas when we build systems.   I just wish
people would understand what they have and see it for the positive instead
of trying to knock it down - ‘standing on the shoulders of the giants’ and
showing what they did as a help, but based on solid ideas, instead of
stepping on the toes trying to make their new thing/feature more valuable
and claim it’s not made from the origin story.



Hey Chevy… can I have some “shimmer” for my pudding.




бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/5b75b713/attachment.htm>

From david at kdbarto.org  Mon Jul  5 06:10:14 2021
From: david at kdbarto.org (David Barto)
Date: Sun, 4 Jul 2021 13:10:14 -0700
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210704043615.GE817@mcvoy.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl> <20210704043615.GE817@mcvoy.com>
Message-ID: <362E120E-AAA9-4888-8592-E506169FF7BE@kdbarto.org>



> On Jul 3, 2021, at 9:36 PM, Larry McVoy <lm at mcvoy.com> wrote:
> 
> On Sun, Jul 04, 2021 at 02:47:57AM +0200, Tomasz Rola wrote:
>> On Sat, Jul 03, 2021 at 09:20:57AM -0400, Dan Cross wrote:
>> [...]
>>> Much of Unix's early evolution and thus architecture and philosophy, came
>>> from addressing a set of problems that people had in a historical context
>>> that, one could argue, aren't that relevant anymore.
> 
> Unix still matters.  It has mattered for a very long time, I could argue
> it is the most important operating system in the world.  Yeah, windows
> won, but it didn't win on merits.
> 

One thing I’d like to point out is that Linux On Windows is becoming
a thing, to the point that you can execute native Linux applications for
the most part directly in this weird environment.

So even M$ sees that Linux could be a threat in the long term and is
making an attempt to prevent it from harming the M$ universe.

See, you can run your Linux code on Windows, why do you want to
run Linux now? 8^)

	David


From dot at dotat.at  Mon Jul  5 06:10:49 2021
From: dot at dotat.at (Tony Finch)
Date: Sun, 4 Jul 2021 21:10:49 +0100
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
Message-ID: <e1744742-8751-14cf-9f46-837a28fec688@dotat.at>

Dan Cross <crossd at gmail.com> wrote:
>
> Systemd is both good and bad.

I thought this article was well-informed and informative, but VERY long:
https://blog.darknedgy.net/technology/2020/05/02/0/
"systemd, 10 years later: a historical and technical retrospective"

Tony.
-- 
f.anthony.n.finch  <dot at dotat.at>  https://dotat.at/
Humber, Thames: Southeast veering southwest, 3 to 5. Smooth or slight.
Thundery showers. Good, occasionally poor.


From dfawcus+lists-tuhs at employees.org  Mon Jul  5 09:24:18 2021
From: dfawcus+lists-tuhs at employees.org (Derek Fawcus)
Date: Mon, 5 Jul 2021 00:24:18 +0100
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
Message-ID: <YOJDIn6Hj01Hnwp3@clarinet.employees.org>

On Sat, Jul 03, 2021 at 05:49:57PM +0200, Andy Kosela wrote:
> They also think that C is obsolete

I'd not say it is obsolete, but despite it having been my main language for the
last 30 years, these days I would be inclined to restrict the range of new tasks
I'd use it for.

So in thinking of how to solve certain problems, I'd split a subset of the problem
in to something in C, and the rest in to another language - probably Go.  That may
simply reflect the nature of the problems I tackle, I can imagine that others
might not merit any use of C.

DF

From ggm at algebras.org  Mon Jul  5 09:40:16 2021
From: ggm at algebras.org (George Michaelson)
Date: Mon, 5 Jul 2021 09:40:16 +1000
Subject: [TUHS] Dennis Ritchie's couch
In-Reply-To: <424dde98-7a42-57e6-e13a-83c3e6ccc020@dotat.at>
References: <CAKr6gn04yBeYORTn122=HaDVo1Bjc7U0yVUX55BGy+=BHAnO-Q@mail.gmail.com>
 <C728300B-6E54-4C25-A160-C1392BE37469@iitbombay.org>
 <424dde98-7a42-57e6-e13a-83c3e6ccc020@dotat.at>
Message-ID: <CAKr6gn2jwY+jdn6oH9p2VOWANgW90EVJBbCmG0D8KyAzVqwQhA@mail.gmail.com>

I wasn't very good at making jokes at the best of times, but I thought
the innate tabular nature of a yacc parser and the role of yyparse()
and the syntax yacc is written in would have got us there.  It was a
pale attempt at HUMOUR

As reddit says: <whoooosh>

From cym224 at gmail.com  Mon Jul  5 09:50:50 2021
From: cym224 at gmail.com (Nemo Nusquam)
Date: Sun, 4 Jul 2021 19:50:50 -0400
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
Message-ID: <6a9bb07f-7d5a-9825-16eb-5d21412b0727@gmail.com>

On 2021-07-04 19:24, Derek Fawcus wrote (in part):
> So in thinking of how to solve certain problems, I'd split a subset of 
> the problem
> in to something in C, and the rest in to another language - probably 
> Go. That may simply reflect the nature of the problems I tackle, I can 
> imagine that others might not merit any use of C.
This would be very much domain specific.В  I work with embedded systems, 
where one's choice of language is limited.

N.

From drsalists at gmail.com  Mon Jul  5 10:15:42 2021
From: drsalists at gmail.com (Dan Stromberg)
Date: Sun, 4 Jul 2021 17:15:42 -0700
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <6a9bb07f-7d5a-9825-16eb-5d21412b0727@gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
 <6a9bb07f-7d5a-9825-16eb-5d21412b0727@gmail.com>
Message-ID: <CAGGBd_piNb6YVExkVErJ7HiHYU0x0kywBHiLY-8GED71-aQd4g@mail.gmail.com>

On Sun, Jul 4, 2021 at 4:52 PM Nemo Nusquam <cym224 at gmail.com> wrote:

> On 2021-07-04 19:24, Derek Fawcus wrote (in part):
> > So in thinking of how to solve certain problems, I'd split a subset of
> > the problem
> > in to something in C, and the rest in to another language - probably
> > Go. That may simply reflect the nature of the problems I tackle, I can
> > imagine that others might not merit any use of C.
> This would be very much domain specific.  I work with embedded systems,
> where one's choice of language is limited.
>


Have you looked at Micropython?  It's written in C, and targets embedded
applications.
https://micropython.org/

I recently compared its threading to a couple of other implementations of
Python, and found that Micropython was the best of those compared.
https://stromberg.dnsalias.org/~strombrg/python-thread-comparison/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/0c238fb6/attachment.htm>

From lm at mcvoy.com  Mon Jul  5 10:21:19 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Sun, 4 Jul 2021 17:21:19 -0700
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
Message-ID: <20210705002119.GL817@mcvoy.com>

On Mon, Jul 05, 2021 at 12:24:18AM +0100, Derek Fawcus wrote:
> On Sat, Jul 03, 2021 at 05:49:57PM +0200, Andy Kosela wrote:
> > They also think that C is obsolete
> 
> I'd not say it is obsolete, but despite it having been my main language for the
> last 30 years, these days I would be inclined to restrict the range of new tasks
> I'd use it for.
> 
> So in thinking of how to solve certain problems, I'd split a subset of the problem
> in to something in C, and the rest in to another language - probably Go.  That may
> simply reflect the nature of the problems I tackle, I can imagine that others
> might not merit any use of C.

I had a systems people get together at my place maybe a year ago.
Kirk McKusick and Eric Allman came (as well as a bunch of others,
perhaps most notable was Pugs).  I had a very pleasant chat with Eric
about programming styles.  I came to the conclusion that I'd love working
with Eric, I think I could work for him and it's even possible he could
work for me.  We both love C, we are both disciplined enough to write
maintainable/extendable code in C, it works for us.  We really clicked
over our love of C.

I've tried to like other languages, Java is a huge tangled mess, C++ is,
well C++, every company that uses C++ has a list of things you are not
supposed to use, I tried to like Go, maybe I haven't given it enough of
a chance but it didn't grab me, lots of people I know have gone to Rust,
I tried to like that but, man, all the reinventing of syntax drove me 
nuts, D seemed like it sort of was close but it changed the syntax too
much.

If I had infinite energy and money, I would fund a dialect of C that 
made it more useful.  The thing I hate about new programming languages
is they all feel the need to invent a new syntax.  There are really
two syntaxes, C and Lisp (and that's a tip of a hat to Lisp, I'm not
a fan).  Pick one of those and evolve it.

My whole career I've felt that when you add to the set of code that is
in the world, you should build on what people already know.  Everyone
knows C syntax, yeah there are some areas that could do with a cleanup
(looking at you function pointer declarations) but for the most part,
most people can look at C code and know what it does.  So why invent 
a new syntax and invalidate all of that knowledge that everyone has?

For all its faults, C++ is the closest to a modern language that sort
of fits with what I want but it is a kitchen sink language.  It really
wanted the Go trio to say "no" to a lot of stuff, it didn't have that 
so it has every language feature you can imagine and it's hard to 
onboard people to that.  Harder yet to write maintainable code.

So, yeah, I like C.  A lot.  I wish it would evolve in a sensible way
but as a buddy says, we live in an imperfect world.

--lm

From lm at mcvoy.com  Mon Jul  5 10:25:06 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Sun, 4 Jul 2021 17:25:06 -0700
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <362E120E-AAA9-4888-8592-E506169FF7BE@kdbarto.org>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <20210704043615.GE817@mcvoy.com>
 <362E120E-AAA9-4888-8592-E506169FF7BE@kdbarto.org>
Message-ID: <20210705002506.GN817@mcvoy.com>

On Sun, Jul 04, 2021 at 01:10:14PM -0700, David Barto wrote:
> See, you can run your Linux code on Windows, why do you want to
> run Linux now? 8^)

I know that is tongue in cheek, but because I want a real kernel
that has sane semantics.  The windows kernel is pretty nuts.

From cowan at ccil.org  Mon Jul  5 11:23:27 2021
From: cowan at ccil.org (John Cowan)
Date: Sun, 4 Jul 2021 21:23:27 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <362E120E-AAA9-4888-8592-E506169FF7BE@kdbarto.org>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl> <20210704043615.GE817@mcvoy.com>
 <362E120E-AAA9-4888-8592-E506169FF7BE@kdbarto.org>
Message-ID: <CAD2gp_TbEJER3WMUNgDvGpZ3ev1zDx6pxLQHUwLaxp7D2qazrQ@mail.gmail.com>

On Sun, Jul 4, 2021 at 4:11 PM David Barto <david at kdbarto.org> wrote:


> So even M$ sees that Linux could be a threat in the long term and is
> making an attempt to prevent it from harming the M$ universe.
>

MS is making a mint letting people run Linux on Azure rent-a-boxen, which
now runs on more Azure instances than Windows does.  They aren't anti-Linux
any more.  Indeed, they are contributing to the Linux kernel now to make it
run better on WSL.

See, you can run your Linux code on Windows, why do you want to
> run Linux now? 8^)s


I think the real motivation is to get developers off Macs.  Many people
(including me at my last two jobs) are developing on Mac OS and deploying
on Linux.  With WSL, developers can develop on Linux(-on-Windows) and
deploy on Linux (for reals).  This also makes corporate IT happy, because
they want all employees to have Windows, Office, etc. etc.



John Cowan          http://vrici.lojban.org/~cowan        cowan at ccil.org
The Penguin shall hunt and devour all that is crufty, gnarly and
bogacious; all code which wriggles like spaghetti, or is infested with
blighting creatures, or is bound by grave and perilous Licences shall it
capture.  And in capturing shall it replicate, and in replicating shall
it document, and in documentation shall it bring freedom, serenity and
most cool froodiness to the earth and all who code therein.  --Gospel of Tux
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/0f0b0930/attachment.htm>

From noel.hunt at gmail.com  Mon Jul  5 11:33:46 2021
From: noel.hunt at gmail.com (Noel Hunt)
Date: Mon, 5 Jul 2021 11:33:46 +1000
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
Message-ID: <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>

> But note that when wnj wrote head(1), Joy followed the
> famous `Unix Philosophy' of  doing one (small) job
> well.   Which means he did not add a feature *i.e.*
> abusing, an old program, like cat(1), and add some new
> switch to it that that told the program stop outputting
> after n lines.  Instead Joy wrote a simple new tool.

He didn't need to abuse any existing program by adding new
flags or the like; unless I am mistaken, `sed Nq', for some
number `N', does exactly what `head -N' would do on a single
file, obviating the very need for head(1).

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/e2b9c6e5/attachment.htm>

From cowan at ccil.org  Mon Jul  5 12:36:46 2021
From: cowan at ccil.org (John Cowan)
Date: Sun, 4 Jul 2021 22:36:46 -0400
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <20210705002119.GL817@mcvoy.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
Message-ID: <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>

On Sun, Jul 4, 2021 at 8:22 PM Larry McVoy <lm at mcvoy.com> wrote:


> We both love C, we are both disciplined enough to write
> maintainable/extendable code in C, it works for us.  We really clicked
> over our love of C.
>

Are you really sure that all the C code the two of you have written in your
careers carefully avoids all 191 kinds of undefined behavior in C99 (the
number has grown since then)?  Give me leave to doubt it.

Consider this example from an earlier version of the Linux kernel:

static void __devexit agnx_pci_remove (struct pci_dev *pdev)
{
  struct ieee80211_hw *dev = pci_get_drvdata(pdev);
  struct agnx_priv *priv = dev->priv;

  if (!dev) return;
  ... do stuff using dev ...
}

The trouble here is that dev is used before it is checked for being a null
pointer.  In Java, you'd have a NullPointerException.  In C, "gcc -O2" will
make this analysis:

Case 1: dev == NULL.  This is undefined behavior and the compiler has no
obligations.

Case 2: dev != NULL.  Since dev can't be null (the compiler always assumes
the programmer did not intend to use UB), the check can be removed.

The result is that there is no check for NULL in either case, the compiler
is silent, and since this is the kernel, dereferencing NULL probably pwns
your system.  So whereas things that were technically UB used to work more
or less as you'd expect them to, nowadays they work as *nobody* expects
them to.

This is the result of the three values of C programmers:  (1) fast
execution, (2) fast compilation, (3) I lied; there is no (3).  And as
optimizers get better and better, the number of UB-related disasters
increases.  (The same is true for C++ compiler developers, except that they
sometimes prioritize (2) over (1) because benchmarks.)

> If I had infinite energy and money, I would fund a dialect of C that
> made it more useful.


See <https://blog.regehr.org/archives/1287>, about how an attempt to reduce
the amount of UB int C failed because nobody could agree with anybody else
on what changes to make.


> For all its faults, C++ is the closest to a modern language that sort
> of fits with what I want
>

C++, is it?  C++2011 has 203 UBs.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/b1bc62db/attachment.htm>

From clemc at ccc.com  Mon Jul  5 12:38:00 2021
From: clemc at ccc.com (Clem Cole)
Date: Sun, 4 Jul 2021 22:38:00 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
Message-ID: <CAC20D2P4f4uzQNR1+1a0oqX6wpVc-FtBeyKq6Qk47QkQeJiDsw@mail.gmail.com>

Noel.  Pls check the TUHS archives and I think you will see sed does yet
exist in 6th edition when Joy wrote head in 1977.  Certainly not yet at
UCB.

On Sun, Jul 4, 2021 at 9:34 PM Noel Hunt <noel.hunt at gmail.com> wrote:

> > But note that when wnj wrote head(1), Joy followed the
> > famous `Unix Philosophy' of  doing one (small) job
> > well.   Which means he did not add a feature *i.e.*
> > abusing, an old program, like cat(1), and add some new
> > switch to it that that told the program stop outputting
> > after n lines.  Instead Joy wrote a simple new tool.
>
> He didn't need to abuse any existing program by adding new
> flags or the like; unless I am mistaken, `sed Nq', for some
> number `N', does exactly what `head -N' would do on a single
> file, obviating the very need for head(1).
>
>> --
Sent from a handheld expect more typos than usual
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/673a93b2/attachment.htm>

From imp at bsdimp.com  Mon Jul  5 12:51:29 2021
From: imp at bsdimp.com (Warner Losh)
Date: Sun, 4 Jul 2021 20:51:29 -0600
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAC20D2P4f4uzQNR1+1a0oqX6wpVc-FtBeyKq6Qk47QkQeJiDsw@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAC20D2P4f4uzQNR1+1a0oqX6wpVc-FtBeyKq6Qk47QkQeJiDsw@mail.gmail.com>
Message-ID: <CANCZdfozCGK8ymnU2j1Xt+TpbpbdRUaCmXoSvwP6sBiqsYzLCA@mail.gmail.com>

On Sun, Jul 4, 2021, 8:39 PM Clem Cole <clemc at ccc.com> wrote:

> Noel.  Pls check the TUHS archives and I think you will see sed does yet
> exist in 6th edition when Joy wrote head in 1977.  Certainly not yet at
> UCB.
>

V6 doesn't have sed.

Warner

On Sun, Jul 4, 2021 at 9:34 PM Noel Hunt <noel.hunt at gmail.com> wrote:
>
>> > But note that when wnj wrote head(1), Joy followed the
>> > famous `Unix Philosophy' of  doing one (small) job
>> > well.   Which means he did not add a feature *i.e.*
>> > abusing, an old program, like cat(1), and add some new
>> > switch to it that that told the program stop outputting
>> > after n lines.  Instead Joy wrote a simple new tool.
>>
>> He didn't need to abuse any existing program by adding new
>> flags or the like; unless I am mistaken, `sed Nq', for some
>> number `N', does exactly what `head -N' would do on a single
>> file, obviating the very need for head(1).
>>
>>> --
> Sent from a handheld expect more typos than usual
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/66705727/attachment.htm>

From cowan at ccil.org  Mon Jul  5 12:53:10 2021
From: cowan at ccil.org (John Cowan)
Date: Sun, 4 Jul 2021 22:53:10 -0400
Subject: [TUHS] Binary log files
Message-ID: <CAD2gp_SXHQSauT_VibXPvP6PWrFULiMFYkvfs5=YxjHYbHGPwg@mail.gmail.com>

As long ago as the 7th Edition, several binary log files were maintained:
the file generated by acct(2) (one record per process) and the utmp and
wtmp files (one record per login).  Both of these are defined by structs in
.h files, so they are definitely not portable (int sizes, endianism, etc.)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/9c2fdfc1/attachment.htm>

From rich.salz at gmail.com  Mon Jul  5 12:59:22 2021
From: rich.salz at gmail.com (Richard Salz)
Date: Sun, 4 Jul 2021 22:59:22 -0400
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
Message-ID: <CAFH29toRC1YRY95AGj0VAGGW0JZ6s_hWB+hh3wuj=xymXv2t-g@mail.gmail.com>

> Are you really sure that all the C code the two of you have written in
> your careers carefully avoids all 191 kinds of undefined behavior in C99
> (the number has grown since then)?  Give me leave to doubt it.
>
> Consider this example from an earlier version of the Linux kernel:
>
> static void __devexit agnx_pci_remove (struct pci_dev *pdev)
>

Bogus argument.  The Linux kernel is free to rely on specific compiler
behavior.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/d12763e4/attachment.htm>

From clemc at ccc.com  Mon Jul  5 13:01:13 2021
From: clemc at ccc.com (Clem Cole)
Date: Sun, 4 Jul 2021 23:01:13 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAC20D2P4f4uzQNR1+1a0oqX6wpVc-FtBeyKq6Qk47QkQeJiDsw@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAC20D2P4f4uzQNR1+1a0oqX6wpVc-FtBeyKq6Qk47QkQeJiDsw@mail.gmail.com>
Message-ID: <CAC20D2NXUN03POGPBU=R-h4sZnu5D8VbQzfzw=+YyYJyNCW-vA@mail.gmail.com>

Dyslexic typo.  Does NOT

On Sun, Jul 4, 2021 at 10:38 PM Clem Cole <clemc at ccc.com> wrote:

> Noel.  Pls check the TUHS archives and I think you will see sed does yet
> exist in 6th edition when Joy wrote head in 1977.  Certainly not yet at
> UCB.
>
> On Sun, Jul 4, 2021 at 9:34 PM Noel Hunt <noel.hunt at gmail.com> wrote:
>
>> > But note that when wnj wrote head(1), Joy followed the
>> > famous `Unix Philosophy' of  doing one (small) job
>> > well.   Which means he did not add a feature *i.e.*
>> > abusing, an old program, like cat(1), and add some new
>> > switch to it that that told the program stop outputting
>> > after n lines.  Instead Joy wrote a simple new tool.
>>
>> He didn't need to abuse any existing program by adding new
>> flags or the like; unless I am mistaken, `sed Nq', for some
>> number `N', does exactly what `head -N' would do on a single
>> file, obviating the very need for head(1).
>>
>>> --
> Sent from a handheld expect more typos than usual
>
-- 
Sent from a handheld expect more typos than usual
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/d4cffd56/attachment.htm>

From clemc at ccc.com  Mon Jul  5 13:03:43 2021
From: clemc at ccc.com (Clem Cole)
Date: Sun, 4 Jul 2021 23:03:43 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CANCZdfozCGK8ymnU2j1Xt+TpbpbdRUaCmXoSvwP6sBiqsYzLCA@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAC20D2P4f4uzQNR1+1a0oqX6wpVc-FtBeyKq6Qk47QkQeJiDsw@mail.gmail.com>
 <CANCZdfozCGK8ymnU2j1Xt+TpbpbdRUaCmXoSvwP6sBiqsYzLCA@mail.gmail.com>
Message-ID: <CAC20D2NcYbm-zU0waKbmDv9FmbZ+PQJEif3VJrL7BF63H6Lj5g@mail.gmail.com>

Right.  A dyslexic typo sorry doesn’t

That was my point.  He needed a tool and didn’t have one so he wrote a
singular tool to solve the problem.  We now consider that tool pretty much
standard equipment

On Sun, Jul 4, 2021 at 10:51 PM Warner Losh <imp at bsdimp.com> wrote:

>
>
> On Sun, Jul 4, 2021, 8:39 PM Clem Cole <clemc at ccc.com> wrote:
>
>> Noel.  Pls check the TUHS archives and I think you will see sed does yet
>> exist in 6th edition when Joy wrote head in 1977.  Certainly not yet at
>> UCB.
>>
>
> V6 doesn't have sed.
>
> Warner
>
> On Sun, Jul 4, 2021 at 9:34 PM Noel Hunt <noel.hunt at gmail.com> wrote:
>>
>>> > But note that when wnj wrote head(1), Joy followed the
>>> > famous `Unix Philosophy' of  doing one (small) job
>>> > well.   Which means he did not add a feature *i.e.*
>>> > abusing, an old program, like cat(1), and add some new
>>> > switch to it that that told the program stop outputting
>>> > after n lines.  Instead Joy wrote a simple new tool.
>>>
>>> He didn't need to abuse any existing program by adding new
>>> flags or the like; unless I am mistaken, `sed Nq', for some
>>> number `N', does exactly what `head -N' would do on a single
>>> file, obviating the very need for head(1).
>>>
>>>> --
>> Sent from a handheld expect more typos than usual
>>
> --
Sent from a handheld expect more typos than usual
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/7573482b/attachment.htm>

From bakul at iitbombay.org  Mon Jul  5 13:41:45 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Sun, 4 Jul 2021 20:41:45 -0700
Subject: [TUHS] Dennis Ritchie's couch
In-Reply-To: <CAKr6gn2jwY+jdn6oH9p2VOWANgW90EVJBbCmG0D8KyAzVqwQhA@mail.gmail.com>
References: <CAKr6gn04yBeYORTn122=HaDVo1Bjc7U0yVUX55BGy+=BHAnO-Q@mail.gmail.com>
 <C728300B-6E54-4C25-A160-C1392BE37469@iitbombay.org>
 <424dde98-7a42-57e6-e13a-83c3e6ccc020@dotat.at>
 <CAKr6gn2jwY+jdn6oH9p2VOWANgW90EVJBbCmG0D8KyAzVqwQhA@mail.gmail.com>
Message-ID: <1EA570C7-10FB-4E01-8D9C-4789F1F1840E@iitbombay.org>


> On Jul 4, 2021, at 4:40 PM, George Michaelson <ggm at algebras.org> wrote:
> 
> I wasn't very good at making jokes at the best of times, but I thought
> the innate tabular nature of a yacc parser and the role of yyparse()
> and the syntax yacc is written in would have got us there. 

The difference is that one can incorporate a precedence parser for expressions
in a recursive parser easily, without needing yacc by handcrafting the table. 

-- Bakul



From lm at mcvoy.com  Mon Jul  5 13:47:51 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Sun, 4 Jul 2021 20:47:51 -0700
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
 <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
Message-ID: <20210705034751.GU817@mcvoy.com>

On Sun, Jul 04, 2021 at 10:36:46PM -0400, John Cowan wrote:
> > We both love C, we are both disciplined enough to write
> > maintainable/extendable code in C, it works for us.  We really clicked
> > over our love of C.
> 
> Are you really sure that all the C code the two of you have written in your
> careers carefully avoids all 191 kinds of undefined behavior in C99 (the
> number has grown since then)?  Give me leave to doubt it.

I'm sure there are all sorts of problems with C.  Somehow we both never
encountered them.

My experience is that people come up with this or that, and they are
right, there is a there there, but Eric and I, he more than me, we just
wrote a ton of code in C, like 3-4 decades, all of that code works and
works better than the people who second guess us.  Our code works.

I've been through coverity trying to tell us where the problems were,
they found none.  I've been through Intel's fancy compiler that would
make things faster, it was a .1-.5%.  I don't remember, it was nothing.

I'm good with my understanding of C.  I get that you get it at a more
detailed level, go you.  I get it at a more basic practical level and
that has served me well.

From bakul at iitbombay.org  Mon Jul  5 13:52:11 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Sun, 4 Jul 2021 20:52:11 -0700
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
Message-ID: <5E27076F-0D98-4EE1-9484-618FE58B941C@iitbombay.org>


> On Jul 3, 2021, at 6:20 AM, Dan Cross <crossd at gmail.com> wrote:
> 
> Systemd is both good and bad.

Independent of systemd, the idea of regularizing service management is quite useful. A single function in a way, & fits the Unix Philosophy [which is really about factoring out common components and making them easily reusable. The fact that the shell allows that sort of composition with minimal syntax is, to me, one of its greatest contributions]

Similarly there are other such new functions where this philosophy can be applied.

> We aren't teaching, yes, but moreover they don't want to learn because the problems they're trying to solve are different. We need to accept and internalize that and think hard about how the tools we use can be brought to bear on the problems that are relevant _now_, not 30 years ago.
> 
> It does beg the question: is a Unix-style kernel still the appropriate foundation for this style of computing? Why are we still using this system: is it because of its intrinsic power and versatility, or because of inertia? Systemd, containers, etc, all suggest that our models are inadequate.


Containers, and many other tech. solutions have evolved in response to changing needs. The question that interests me is can we apply the Unix philosophy in this changing environment and if so how.

 One thing I like about Apple is their continuous focus  & s/w evolution on helping the end-user (we may disagree on specific changes but I bet many people on this list are using Apple devices as their "terminal"). It is a real joy to use some of these programs. And yet it is a real shame to not see open standards for such things. 


From tytso at mit.edu  Mon Jul  5 13:59:30 2021
From: tytso at mit.edu (Theodore Ts'o)
Date: Sun, 4 Jul 2021 23:59:30 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <e1744742-8751-14cf-9f46-837a28fec688@dotat.at>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <e1744742-8751-14cf-9f46-837a28fec688@dotat.at>
Message-ID: <YOKDovR8h8r1yoIP@mit.edu>

On Sun, Jul 04, 2021 at 09:10:49PM +0100, Tony Finch wrote:
> Dan Cross <crossd at gmail.com> wrote:
> >
> > Systemd is both good and bad.
> 
> I thought this article was well-informed and informative, but VERY long:
> https://blog.darknedgy.net/technology/2020/05/02/0/
> "systemd, 10 years later: a historical and technical retrospective"

This is also a really good talk, by Benno Rice.  Benno is a FreeBSD
developer, and has served on the FreeBSD Core Team.  He gave this talk
at Linux.Conf.au 2019, and it was a repeat of a talk he gave at BSDCan
2018, entitled "The Tragedy of Systemd" ("Tragedy" in the title was
used in the Greek drama context):

	https://www.youtube.com/watch?v=o_AIw9bGogo

It's a pretty fair talk about the why systemd came up, and what we
might be able to learn from systemd.  His closing line was, which I
think is quite good was:

   "What I would challenge every one here is to look at systemd, and
    try find one thing you like --- and then go try to implement it."

					- Ted

From drsalists at gmail.com  Mon Jul  5 14:02:47 2021
From: drsalists at gmail.com (Dan Stromberg)
Date: Sun, 4 Jul 2021 21:02:47 -0700
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <20210705034751.GU817@mcvoy.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
 <20210705034751.GU817@mcvoy.com>
Message-ID: <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>

On Sun, Jul 4, 2021 at 8:49 PM Larry McVoy <lm at mcvoy.com> wrote:

> On Sun, Jul 04, 2021 at 10:36:46PM -0400, John Cowan wrote:
> > > We both love C, we are both disciplined enough to write
> > > maintainable/extendable code in C, it works for us.  We really clicked
> > > over our love of C.
> >
> > Are you really sure that all the C code the two of you have written in
> your
> > careers carefully avoids all 191 kinds of undefined behavior in C99 (the
> > number has grown since then)?  Give me leave to doubt it.
>
> I'm sure there are all sorts of problems with C.  Somehow we both never
> encountered them.
>

Actually, haven't there been many security holes discovered in sendmail?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/968d688c/attachment.htm>

From drsalists at gmail.com  Mon Jul  5 14:08:52 2021
From: drsalists at gmail.com (Dan Stromberg)
Date: Sun, 4 Jul 2021 21:08:52 -0700
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
Message-ID: <CAGGBd_qkpq9Bt6_zsKmPASunGJd-YJyYeQnPGeTn2vcf6WW9bw@mail.gmail.com>

On Sun, Jul 4, 2021 at 4:33 PM Derek Fawcus <
dfawcus+lists-tuhs at employees.org> wrote:

> On Sat, Jul 03, 2021 at 05:49:57PM +0200, Andy Kosela wrote:
> > They also think that C is obsolete
>
> I'd not say it is obsolete, but despite it having been my main language
> for the
> last 30 years, these days I would be inclined to restrict the range of new
> tasks
> I'd use it for.
>
Me too - I write far fewer things in C today than I once did.  Last time I
used C, it was for something that needed mlockall() and very minimalist OS
dependencies.  And the client was in Python - only the server was in C.

I think Rust is probably the better language, even though Go is ahead of it
in the Tiobe language popularity rankings.  Go is more like what most
people are accustomed to, but Rust is a genuine advancement in language
design that justifies "fighting the borrow checker".

On the other hand, I did a little comparison of Rust md5 (I know, it's
broken) implementations, and found them surprisingly slow.  Slower than
CPython - though CPython is just linking to OpenSSL, and OpenSSL is
probably using hand-coded assembler, or at least highly optimized C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210704/efe7c7c1/attachment.htm>

From ggm at algebras.org  Mon Jul  5 14:23:36 2021
From: ggm at algebras.org (George Michaelson)
Date: Mon, 5 Jul 2021 14:23:36 +1000
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAGGBd_qkpq9Bt6_zsKmPASunGJd-YJyYeQnPGeTn2vcf6WW9bw@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
 <CAGGBd_qkpq9Bt6_zsKmPASunGJd-YJyYeQnPGeTn2vcf6WW9bw@mail.gmail.com>
Message-ID: <CAKr6gn2XLDT7tQ80cU2vv72=WSvrwtfj3-0+hg9V+-NDkdgcEQ@mail.gmail.com>

Forgive me a side note, but has it not been shown for some time that
apart from a very gifted few people, hand-crafted machine-code is
usually slower than the best optimising compilers these days? With out
of order instruction stuff, side effects (inter-core locking) cache
coherency &c it isn't hard to wind up using "simpler" machine code
which performs worserer.

Doesn't really alter the language debate, but it does go to "compilers
are pretty smart these days"

From noel.hunt at gmail.com  Mon Jul  5 15:22:47 2021
From: noel.hunt at gmail.com (Noel Hunt)
Date: Mon, 5 Jul 2021 15:22:47 +1000
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAC20D2P4f4uzQNR1+1a0oqX6wpVc-FtBeyKq6Qk47QkQeJiDsw@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAC20D2P4f4uzQNR1+1a0oqX6wpVc-FtBeyKq6Qk47QkQeJiDsw@mail.gmail.com>
Message-ID: <CAGfO01yDS5KkgyOzfqYMvYmrb0wMnaoPcf5VKnyc5gVDRKOnqA@mail.gmail.com>

Thank you for the correction. Having only used Unix from Seventh
Edition on, research-editions only, I have never used head(1) and
didn't realize it was written so early.


On Mon, Jul 5, 2021 at 12:38 PM Clem Cole <clemc at ccc.com> wrote:

> Noel.  Pls check the TUHS archives and I think you will see sed does yet
> exist in 6th edition when Joy wrote head in 1977.  Certainly not yet at
> UCB.
>
> On Sun, Jul 4, 2021 at 9:34 PM Noel Hunt <noel.hunt at gmail.com> wrote:
>
>> > But note that when wnj wrote head(1), Joy followed the
>> > famous `Unix Philosophy' of  doing one (small) job
>> > well.   Which means he did not add a feature *i.e.*
>> > abusing, an old program, like cat(1), and add some new
>> > switch to it that that told the program stop outputting
>> > after n lines.  Instead Joy wrote a simple new tool.
>>
>> He didn't need to abuse any existing program by adding new
>> flags or the like; unless I am mistaken, `sed Nq', for some
>> number `N', does exactly what `head -N' would do on a single
>> file, obviating the very need for head(1).
>>
>>> --
> Sent from a handheld expect more typos than usual
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/bfe3873a/attachment.htm>

From rtomek at ceti.pl  Mon Jul  5 17:14:50 2021
From: rtomek at ceti.pl (Tomasz Rola)
Date: Mon, 5 Jul 2021 09:14:50 +0200
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
Message-ID: <20210705071450.GA12885@tau1.ceti.pl>

On Sun, Jul 04, 2021 at 08:48:23AM -0400, Dan Cross wrote:
[...]
> I didn't say that Unix is no longer relevant. I said that the problems that
> were prominent when Unix was built, and that thus shaped its architecture,
> are much _less_ relevant now than they were at the time. They still have
> some relevance, but are no longer primary for the vast majority of use
> cases Unix is used for. Further, the way people approach problems now has
> changed, even if they still generically assume "Unix" as the base they
> build on.

I have misread you then. I suppose the main problem that Unix solved
fifty years ago was the need for OS on a not very big (but cheap!)
machine. There were quite a few such systems and various such 16,
18-bit machines. So Unix was one of many, and what made it successful
was rewriting in C (I think I have read about it somewhere). Various
guys ported C compiler to their machines and to test it, they compiled
Unix sources (I am sure I have read about this). So as C gained
popularity, so did Unix gained popularity and C was the prog lang of
Unix, thus with every new Unix install C gained even more popularity.

So, looking from this perspective, maybe there was nothing
particularly special in Unix as such. It was just a double pump of
C-Unix, mutually pumping each other's success story.

I am not sure. I tried to find some time and install old OS on
simh/pdp11, yet there was always something more pressing to do. Some
alternatives to Unix, judging by their wikipedia descriptions, did not
convince me - like, one OS booted straight into debugger, if memory
serves. I do not think I would like that in everyday use. And after
reading about TECO, plenty of editors seem like better choice for me
:-).

Anyway, my own reasons to stick to Unix(-like) did not change. In
middle 1990-ties, after few years of playing with Amiga, and few years
of playing with SunOS/Solaris, it was clear to me what I wanted next
(Amiga was getting old rather quickly, as Commodore ran aground). The
OS was to be reliable, multitasking and if possible, cheap. If I was
to pay for something, it had to work, so Windows was ruled out. Later
on, as I hooked up to the net, security became important, too. Somehow
Linux on a 486 clone became a nice drop in replacement for Sunstation
and Solaris I used at the uni. I was able to run TeX on it, a
database, a program which abused database, an editor (Emacs, joe, vi)
with which I made the program and a compiler. All of this on eight
megs of ram. With "a bit" of swapping. That was terrific. To do same
thing on Windows, I imagined, at least Pentium and about 3x as much
ram was needed, plus a very expensive NT, because I did not expected
W95 could be relied upon.

If I still stick to Unix, it is because I still need something
dependable and allowing my various experiments or small time
developments. Windows somewhat improved during last twenty five years,
but not enough to pay for it - just MHO.

In other post you ask, why folks do not find Unix interesting
anymore. I still suggest they are following the money. They are the
kind of folk who never would find Unix interesting enough based on
merits only. Asking about their choices leads us nowwhere, because
their choices are not based on technical criteria.

What I would like to ask instead, is how many people had been using
Unix and decided to drop it, because it no longer worked for them. But
not because they had to earn for the living in a World of Windoze,
only because Unix tools stopped doing the job and could not be helped
with some handmade script or program. I guess reading more about such
users could tell something about Unix future or current relevance.

Also, reading about why people keep using Unix. Myself, I like doing
various things with computer. I create my own needs and then I write
small pieces of code to help myself out of the trap. Or something like
this. Nowadays, a lot of those needs revolve around learning and
organising notes. Of course I could not be using specialised note
taking program. Instead, I went with Emacs and org-mode. In the
process I had to learn a bit of Elisp and dot-emacs file. Some
defaults in Emacs are not comfy for my eyes - fonts, colors, it had to
be fine tuned to my liking.

So, I think my case could be summed up so: I need dependable software
and I have some needs which I know how to satisfy using this
software. If the software alone does not suit me, I can make some of
lacking elements myself and Unix allows me to join existing and new
elements easily.

I wonder if other Unix (ab)users share something with me? Like,
specialised single-person needs, or putting together building blocks
of command line tools, or preference for terminal based software
(because it works more often than not)? I guess yes.

What do people indifferent to Unix share with themselves, other than
general lack of interest, unwillingness to learn awk, disregard to
keeping information in text based, line oriented files?

HTH, sorry for long email, I tried to trim it but had to left
something too :-).

-- 
Regards,
Tomasz Rola

--
** A C programmer asked whether computer had Buddha's nature.      **
** As the answer, master did "rm -rif" on the programmer's home    **
** directory. And then the C programmer became enlightened...      **
**                                                                 **
** Tomasz Rola          mailto:tomasz_rola at bigfoot.com             **

From thomas.paulsen at firemail.de  Mon Jul  5 22:11:37 2021
From: thomas.paulsen at firemail.de (Thomas Paulsen)
Date: Mon, 05 Jul 2021 14:11:37 +0200
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a
	50-year	view)
In-Reply-To: <20210705002119.GL817@mcvoy.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
 <20210705002119.GL817@mcvoy.com>
Message-ID: <98a19c98961772cc5ce3e87f469978c8@firemail.de>

> So why invent a new syntax and invalidate all of that knowledge that everyone has?
I subscribe 100% to your statement!

Well I think it's enough to add new concepts like modules/packages/classes to C, and a jdk a-like all purposes library, as libc isn't enough for the 21ths century.

I still love C because I'm able of writing small and very fast programs. go is cool to, but a memory hunk compared to C. The rust hype is declining since 2 years and java is the new cobol, ie. it's good for business oriented applications, whereas C and go are (beside ASM) the only choices for system oriented people. Has C a future? Yes, it already has just begun. 



From steffen at sdaoden.eu  Mon Jul  5 23:41:59 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Mon, 05 Jul 2021 15:41:59 +0200
Subject: [TUHS] Binary log files
In-Reply-To: <CAD2gp_SXHQSauT_VibXPvP6PWrFULiMFYkvfs5=YxjHYbHGPwg@mail.gmail.com>
References: <CAD2gp_SXHQSauT_VibXPvP6PWrFULiMFYkvfs5=YxjHYbHGPwg@mail.gmail.com>
Message-ID: <20210705134159.jR0uH%steffen@sdaoden.eu>

John Cowan wrote in
 <CAD2gp_SXHQSauT_VibXPvP6PWrFULiMFYkvfs5=YxjHYbHGPwg at mail.gmail.com>:
 |As long ago as the 7th Edition, several binary log files were maintained:
 |the file generated by acct(2) (one record per process) and the utmp and
 |wtmp files (one record per login).  Both of these are defined by structs in
 |.h files, so they are definitely not portable (int sizes, endianism, etc.)

And how did you handle it?
On a very current GNU/Linux system these files grow indefinetely,
and sometimes you find several megabytes that track years of data,
and yourself writing (nonetheless quickshot) truncation code like

  #?0|kent:~# less bin/truncate-wutmp.sh
  #!/bin/sh -
  #@ /root/bin/truncate-wutmp.sh

  trap 'rm -f /tmp/.doit-${$}.*' EXIT

  cat >/tmp/.doit-${$}.c <<'_EOT'
  #include <utmp.h>
  #include <stdio.h>
  int main(){
      printf("%lu\n", sizeof(struct utmp));
      return 0;
  }
  _EOT

  cc -o /tmp/.doit-${$}.exe /tmp/.doit-${$}.c || exit 1

  i=$(/tmp/.doit-${$}.exe)
  echo "struct utmp is ${i} bytes"

  cd /var/log

  s=$(stat -c '%s' wtmp)
  [ ${?} -eq 0 ] || exit 2
  echo "wtmp size is ${s} bytes"

  ix=$((s / i))
  echo "... that makes ${ix} utmp entries"

  [ ${ix} -gt 42 ] || exit 3
  ix=$((ix - 42))

  dd if=wtmp of=wtmp.new bs=${i} skip=${ix} || exit 4
  mv wmtp.new wtmp
  chmod 0644 wtmp

  # s-sh-mode

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From steffen at sdaoden.eu  Mon Jul  5 23:45:22 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Mon, 05 Jul 2021 15:45:22 +0200
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
 <20210705034751.GU817@mcvoy.com>
 <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>
Message-ID: <20210705134522.nzyIC%steffen@sdaoden.eu>

Dan Stromberg wrote in
 <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ at mail.gmail.com>:
 |On Sun, Jul 4, 2021 at 8:49 PM Larry McVoy <lm at mcvoy.com> wrote:
 |> On Sun, Jul 04, 2021 at 10:36:46PM -0400, John Cowan wrote:
 |>>> We both love C, we are both disciplined enough to write
 |>>> maintainable/extendable code in C, it works for us.  We really clicked
 |>>> over our love of C.
 |>>
 |>> Are you really sure that all the C code the two of you have written in
 |> your
 |>> careers carefully avoids all 191 kinds of undefined behavior in C99 (the
 |>> number has grown since then)?  Give me leave to doubt it.
 |>
 |> I'm sure there are all sorts of problems with C.  Somehow we both never
 |> encountered them.
 |>
 |
 |Actually, haven't there been many security holes discovered in sendmail?

Even more actually that is a completely unfair statement.
sendmail grew out of other software that is way over 40 years as
of this writing, and to the best of my knowledge.  It was not
written to face a vicious and hostile environment at first, even
the protocol it serves evolved over time, as anything else
surrounding it.
And then, what have the holes to do with the programming language?

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From lm at mcvoy.com  Tue Jul  6 00:43:14 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Mon, 5 Jul 2021 07:43:14 -0700
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAKr6gn2XLDT7tQ80cU2vv72=WSvrwtfj3-0+hg9V+-NDkdgcEQ@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
 <CAGGBd_qkpq9Bt6_zsKmPASunGJd-YJyYeQnPGeTn2vcf6WW9bw@mail.gmail.com>
 <CAKr6gn2XLDT7tQ80cU2vv72=WSvrwtfj3-0+hg9V+-NDkdgcEQ@mail.gmail.com>
Message-ID: <20210705144314.GV817@mcvoy.com>

On Mon, Jul 05, 2021 at 02:23:36PM +1000, George Michaelson wrote:
> Forgive me a side note, but has it not been shown for some time that
> apart from a very gifted few people, hand-crafted machine-code is
> usually slower than the best optimising compilers these days? With out
> of order instruction stuff, side effects (inter-core locking) cache
> coherency &c it isn't hard to wind up using "simpler" machine code
> which performs worserer.

I dunno where my team sat on the "gifted" scale, I like to think they
were pretty good.  We ran our code through Intel's fancy C compiler and
it made less than a 1% difference vs GCC.  We cared about performance
and had already done the by hand work to make the critical paths go fast.

From steffen at sdaoden.eu  Tue Jul  6 01:08:54 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Mon, 05 Jul 2021 17:08:54 +0200
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <YOKDovR8h8r1yoIP@mit.edu>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <e1744742-8751-14cf-9f46-837a28fec688@dotat.at> <YOKDovR8h8r1yoIP@mit.edu>
Message-ID: <20210705150854.gtvCp%steffen@sdaoden.eu>

Theodore Ts'o wrote in
 <YOKDovR8h8r1yoIP at mit.edu>:
 |On Sun, Jul 04, 2021 at 09:10:49PM +0100, Tony Finch wrote:
 |> Dan Cross <crossd at gmail.com> wrote:
 |>>
 |>> Systemd is both good and bad.
 |> 
 |> I thought this article was well-informed and informative, but VERY long:
 |> https://blog.darknedgy.net/technology/2020/05/02/0/
 |> "systemd, 10 years later: a historical and technical retrospective"
 |
 |This is also a really good talk, by Benno Rice.  Benno is a FreeBSD
 |developer, and has served on the FreeBSD Core Team.  He gave this talk
 |at Linux.Conf.au 2019, and it was a repeat of a talk he gave at BSDCan
 |2018, entitled "The Tragedy of Systemd" ("Tragedy" in the title was
 |used in the Greek drama context):
 |
 | https://www.youtube.com/watch?v=o_AIw9bGogo
 |
 |It's a pretty fair talk about the why systemd came up, and what we
 |might be able to learn from systemd.  His closing line was, which I
 |think is quite good was:
 |
 |   "What I would challenge every one here is to look at systemd, and
 |    try find one thing you like --- and then go try to implement it."

Disclaimer: i .. have not .. seen this.

Everybody may use systemd until they die, my very personal concern
is only that the infrastructure boils down to be unusable without
it.  Also as noone cares, just a few voices here and there, even
more so.  Many small tools exist that can do things, but as
systemd grows they do not, they are not extended to follow suit
Linux kernel features.

I mean, i could hack instead of complaining, but as i use
unshare(1) not docker/systemd i find it unpleasant that i have to
use capsh(1) in addition for example instead of simply feeding
unshare(1) also with the capabilities.  For systemd users this is
just a single line, and often programs come with readily prepared
unit files, take iwd for example

  [Service]
  Type=dbus
  BusName=net.connman.iwd
  ExecStart=@libexecdir@/iwd
[taken from source not installed base as not installed, no
systemd here.]
  NotifyAccess=main
  LimitNPROC=1

I have cgroups yes, but unshare(1) does not do that by itself.
So my shell script wrapper moves the PID by itself, which it is,
essentially.

  Restart=on-failure

I have a cron based watchdog on the server.  (Which never had to
trigger in >5 years of operation.)  But yes...

  CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW

Not unshare.  I am about to add this via capsh(1).

  PrivateTmp=true

So private tmp directories only via boxing into overlayfs views,
but not as it is done here.

  NoNewPrivileges=true

Capabilities not yet.
Maybe one should go and write an unshare which can this too.

  DevicePolicy=closed
  DeviceAllow=/dev/rfkill rw
  ProtectHome=yes
  ProtectSystem=strict
  ProtectControlGroups=yes
  ProtectKernelModules=yes

You see systemd making touchdowns, and i mean it.
Because only it can.  And i played football with my feet.

  ConfigurationDirectory=iwd
  StateDirectory=iwd
  StateDirectoryMode=0700

Granted, all these tortured administrators have a life way easier
by using systemd and just adjusting the unit, if at all needed.
Easier to just browse and copy+paste.

I have to take back my iwd complaint about syslog.  It is just
they did not bother at all.  This Intel program uses the Intel
"ell" (Embedded Linux library), and whereas that offers

  ell/log.c: * l_log_set_ident:
  ell/log.c:LIB_EXPORT void l_log_set_ident(const char *ident)
  ell/log.c: * l_log_set_handler:
  ell/log.c:LIB_EXPORT void l_log_set_handler(l_log_func_t function)
  ell/log.c: * l_log_set_null:
  ell/log.c:LIB_EXPORT void l_log_set_null(void)
  ell/log.c: * l_log_set_stderr:
  ell/log.c:LIB_EXPORT void l_log_set_stderr(void)
  ell/log.c: * l_log_set_syslog:
  ell/log.c:LIB_EXPORT void l_log_set_syslog(void)
  ell/log.c: * l_log_set_journal:
  ell/log.c:LIB_EXPORT void l_log_set_journal(void)
  ell/test.c:     l_log_set_stderr();
  ell/log.h:void l_log_set_ident(const char *ident);
  ell/log.h:void l_log_set_handler(l_log_func_t function);
  ell/log.h:void l_log_set_null(void);
  ell/log.h:void l_log_set_stderr(void);
  ell/log.h:void l_log_set_syslog(void);
  ell/log.h:void l_log_set_journal(void);

they use

  #?0|kent:iwd-1.15$ grep -r l_log_set
  tools/hwsim.c:  l_log_set_stderr();
  tools/probe-req.c:      l_log_set_stderr();
  client/main.c:  l_log_set_stderr();
  src/main.c:     l_log_set_stderr();
  wired/main.c:   l_log_set_stderr();

One could at least be happy they did not fixate "journal", maybe.
Anyhow, the actual error output is for developers only.

Bitrot everywhere.  So just jump on the train that delivers and
pass the rest.

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From cowan at ccil.org  Tue Jul  6 01:12:05 2021
From: cowan at ccil.org (John Cowan)
Date: Mon, 5 Jul 2021 11:12:05 -0400
Subject: [TUHS] Binary log files
In-Reply-To: <20210705134159.jR0uH%steffen@sdaoden.eu>
References: <CAD2gp_SXHQSauT_VibXPvP6PWrFULiMFYkvfs5=YxjHYbHGPwg@mail.gmail.com>
 <20210705134159.jR0uH%steffen@sdaoden.eu>
Message-ID: <CAD2gp_RLYVFx8CK6PAiSrPV8BvSrYHGiB2WPxQGJO=Bh-x3nRA@mail.gmail.com>

On Mon, Jul 5, 2021 at 9:42 AM Steffen Nurpmeso <steffen at sdaoden.eu> wrote:

And how did you handle it?
>

The simplest way to truncate the file is with truncate or just ">file",
since writes are small enough to be atomic.  The sa utility, which also
goes back to v7, will summarize process accounting data and write it to a
different file; it can then report on either unsummarized data or
summarized data before unsummarized data).  Unfortunately Linux has broken
the wtmp/utmp convention of "no logfile, no logging", so a cron job to
truncate wtmp is your only man.

John Cowan          http://vrici.lojban.org/~cowan        cowan at ccil.org
Original line from The Warrior's Apprentice by Lois McMaster Bujold:
"Only on Barrayar would pulling a loaded needler start a stampede toward
one."
English-to-Russian-to-English mangling thereof: "Only on Barrayar you risk
to
lose support instead of finding it when you threat with the charged weapon."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/6b3b7298/attachment.htm>

From steffen at sdaoden.eu  Tue Jul  6 01:17:32 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Mon, 05 Jul 2021 17:17:32 +0200
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <20210705144314.GV817@mcvoy.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
 <CAGGBd_qkpq9Bt6_zsKmPASunGJd-YJyYeQnPGeTn2vcf6WW9bw@mail.gmail.com>
 <CAKr6gn2XLDT7tQ80cU2vv72=WSvrwtfj3-0+hg9V+-NDkdgcEQ@mail.gmail.com>
 <20210705144314.GV817@mcvoy.com>
Message-ID: <20210705151732.6PbNl%steffen@sdaoden.eu>

Larry McVoy wrote in
 <20210705144314.GV817 at mcvoy.com>:
 |On Mon, Jul 05, 2021 at 02:23:36PM +1000, George Michaelson wrote:
 |> Forgive me a side note, but has it not been shown for some time that
 |> apart from a very gifted few people, hand-crafted machine-code is
 |> usually slower than the best optimising compilers these days? With out

Some *BSDs moved from such to plain C code for strlen() for
example, a couple of years back, yes.

 |> of order instruction stuff, side effects (inter-core locking) cache
 |> coherency &c it isn't hard to wind up using "simpler" machine code
 |> which performs worserer.
 |
 |I dunno where my team sat on the "gifted" scale, I like to think they
 |were pretty good.  We ran our code through Intel's fancy C compiler and
 |it made less than a 1% difference vs GCC.  We cared about performance
 |and had already done the by hand work to make the critical paths go fast.

Funnily just a couple of months ago at least FreeBSD (but i think
also DragonFly BSD, a tad different) moved back, on at least
x86_64.

(I personally no longer look nor care that much, as (a) i cannot
help it anyway, (b) there are so many CPU etc. models out there.
Why try to go backward because Cyrix is so good there, use code
alignment of X for processor A and Y for processor B?  That is
just a tremendous maintenance mess, and that for free and with so
few time.  No.  Fun fact is that my one NVME disc can read/write
1.3 gigabytes per second doing "btrfs scrub", that is i think at
least four times the speed of the main memory the mentioned Cyrix
had available.)

 --End of <20210705144314.GV817 at mcvoy.com>

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From steffen at sdaoden.eu  Tue Jul  6 01:36:10 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Mon, 05 Jul 2021 17:36:10 +0200
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <20210705151732.6PbNl%steffen@sdaoden.eu>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
 <CAGGBd_qkpq9Bt6_zsKmPASunGJd-YJyYeQnPGeTn2vcf6WW9bw@mail.gmail.com>
 <CAKr6gn2XLDT7tQ80cU2vv72=WSvrwtfj3-0+hg9V+-NDkdgcEQ@mail.gmail.com>
 <20210705144314.GV817@mcvoy.com> <20210705151732.6PbNl%steffen@sdaoden.eu>
Message-ID: <20210705153610.ONXXl%steffen@sdaoden.eu>

Steffen Nurpmeso wrote in
 <20210705151732.6PbNl%steffen at sdaoden.eu>:
 |Larry McVoy wrote in
 | <20210705144314.GV817 at mcvoy.com>:

Just to mention that i did address Larry McVoy, no, as can be seen
in the Mail-Followup-To: header.  I do not know why this Python
program removes him from Cc: just because it strips his name from
its actual to-be-send-to list, likely to "avoid duplicates" or
something, what i think what happens here.  Very unkind.  Not me.

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From mike.ab3ap at gmail.com  Tue Jul  6 01:53:11 2021
From: mike.ab3ap at gmail.com (Mike Markowski)
Date: Mon, 5 Jul 2021 11:53:11 -0400
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
Message-ID: <1fcac3f8-174a-9485-3246-f2e3f3701ccf@gmail.com>

On 7/4/21 7:24 PM, Derek Fawcus wrote:
> On Sat, Jul 03, 2021 at 05:49:57PM +0200, Andy Kosela wrote:
>> They also think that C is obsolete
> 
> I'd not say it is obsolete, but despite it having been my main
> language for the last 30 years, these days I would be inclined to
> restrict the range of new tasks I'd use it for.

Hoping to correctly recall computability theory, a language needs only 
statements

S := 0
S := S + 1
if S == 0 goto Label

to be Turing complete.  It doesn't mean the language is always pleasant 
to use, but is enough - just as an editor with only char ins/del is 
technically enough.  C has its place, and so do tools for other classes 
of problems.

I enjoy python for signal processing work.  Matrices, complex numbers, 
many libraries are all there.  Libraries even parcel out calcs to cpu 
cores behind the scenes, letting the DSP guy worry (mostly) only about 
math.  And then C is speedy for the end product.  As comp sci evolves, 
we get more blades in our Swiss Army knife.

Mike Markowski

From cowan at ccil.org  Tue Jul  6 02:26:04 2021
From: cowan at ccil.org (John Cowan)
Date: Mon, 5 Jul 2021 12:26:04 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210705071450.GA12885@tau1.ceti.pl>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
Message-ID: <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>

On Mon, Jul 5, 2021 at 3:15 AM Tomasz Rola <rtomek at ceti.pl> wrote:


> So, looking from this perspective, maybe there was nothing
> particularly special in Unix as such. It was just a double pump of
> C-Unix, mutually pumping each other's success story.
>

I think there is more to it than that.  See <
http://www.catb.org/~esr/writings/unix-koans/zealot.html>.

I am not sure. I tried to find some time and install old OS on
> simh/pdp11, yet there was always something more pressing to do. Some
> alternatives to Unix, judging by their wikipedia descriptions, did not
> convince me - like, one OS booted straight into debugger, if memory
> serves.


ITS, yes.  But the debugger was not just a debugger, it was also a general
command-line interpreter, a shell in modern terms.  So while it is possible
to debug an empty memory into doing whatever you want, it is also possible
to run "advent", aka Colossal Cave Adventure.

> And after
> reading about TECO, plenty of editors seem like better choice for me
> :-).
>

I switched from Teco to ex at some point, and never went either forward or
back.  (Occasionally I drop into vi mode for things like parenthesis
checking.)

By the way, did anyone else start out on Unix-alikes before using actual
Unix?  I read the BSTJ issue and became an instant convert, but only when
$EMPLOYER got a MicroVAX was I able to work like that.  Next came the MKS
Toolkit on DOS, and then Cygwin for many years.  I suppose it's only my
last two $EMPLOYERs standardizing on the Mac that has left me running,
like, actual Unix.

If I still stick to Unix, it is because I still need something
> dependable and allowing my various experiments or small time
> developments.
>

"Computers are the greatest set of electric trains in the world."


>  I still suggest they are following the money. They are the
> kind of folk who never would find Unix interesting enough based on
> merits only. Asking about their choices leads us nowwhere, because
> their choices are not based on technical criteria.
>

True.  But then, many of us geeks make our choices not on technical
criteria but on tribal loyalty.  Which is *technically* superior, vi or
emacs?  (Please don't answer that.)

> Of course I could not be using specialised note
> taking program. Instead, I went with Emacs and org-mode. In the
> process I had to learn a bit of Elisp and dot-emacs file. Some
> defaults in Emacs are not comfy for my eyes - fonts, colors, it had to
> be fine tuned to my liking.
>

Note that Emacs is probably the oldest import into the Unix ecosystem from
outside, and it bears the marks of its origin: monolithic (but
programmable), one tool does it all.


> I wonder if other Unix (ab)users share something with me? Like,
> specialised single-person needs, or putting together building blocks
> of command line tools, or preference for terminal based software
> (because it works more often than not)?
>

Without doubt.  I am not loyal to a kernel or a set of utilities, I simply
follow the Way of Unix: <http://vrici.lojban.org/~cowan/upc/> (sadly
incomplete)



John Cowan          http://vrici.lojban.org/~cowan        cowan at ccil.org
"Hacking is the true football."  --F.W. Campbell (1863) in response to a
successful attempt to ban shin-kicking from soccer.  Today, it's biting.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/a1691dfe/attachment.htm>

From imp at bsdimp.com  Tue Jul  6 02:39:35 2021
From: imp at bsdimp.com (Warner Losh)
Date: Mon, 5 Jul 2021 10:39:35 -0600
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
Message-ID: <CANCZdfoqOzejXFxMz9OLKPTYKBy5TvrToN9zpJKUp0-DA69qqw@mail.gmail.com>

On Sat, Jul 03, 2021 at 05:49:57PM +0200, Andy Kosela wrote:
> > They also think that C is obsolete
>

Hammers are not obsolete because we have screws, even though they
are mostly useless with screws. There's plenty of nails out there.

Warner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/4494d3f6/attachment.htm>

From clemc at ccc.com  Tue Jul  6 05:02:14 2021
From: clemc at ccc.com (Clem Cole)
Date: Mon, 5 Jul 2021 15:02:14 -0400
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CANCZdfoqOzejXFxMz9OLKPTYKBy5TvrToN9zpJKUp0-DA69qqw@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
 <CANCZdfoqOzejXFxMz9OLKPTYKBy5TvrToN9zpJKUp0-DA69qqw@mail.gmail.com>
Message-ID: <CAC20D2PpMYopU2Qu+yw=G_XxVgvfexXrQSKLy3tO_YMUN6sTEA@mail.gmail.com>

On Mon, Jul 5, 2021 at 12:40 PM Warner Losh <imp at bsdimp.com> wrote:

>
>
> On Sat, Jul 03, 2021 at 05:49:57PM +0200, Andy Kosela wrote:
>> > They also think that C is obsolete
>>
>
> Hammers are not obsolete because we have screws, even though they
> are mostly useless with screws. There's plenty of nails out there.
>
Amen...

FWIW: I wrote this a few years ago:
https://www.quora.com/Is-Fortran-obsolete/answer/Clem-Cole
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/8217acf9/attachment.htm>

From steffen at sdaoden.eu  Tue Jul  6 05:25:37 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Mon, 05 Jul 2021 21:25:37 +0200
Subject: [TUHS] Binary log files
In-Reply-To: <CAD2gp_RLYVFx8CK6PAiSrPV8BvSrYHGiB2WPxQGJO=Bh-x3nRA@mail.gmail.com>
References: <CAD2gp_SXHQSauT_VibXPvP6PWrFULiMFYkvfs5=YxjHYbHGPwg@mail.gmail.com>
 <20210705134159.jR0uH%steffen@sdaoden.eu>
 <CAD2gp_RLYVFx8CK6PAiSrPV8BvSrYHGiB2WPxQGJO=Bh-x3nRA@mail.gmail.com>
Message-ID: <20210705192537.oT7gj%steffen@sdaoden.eu>

John Cowan wrote in
 <CAD2gp_RLYVFx8CK6PAiSrPV8BvSrYHGiB2WPxQGJO=Bh-x3nRA at mail.gmail.com>:
 |On Mon, Jul 5, 2021 at 9:42 AM Steffen Nurpmeso <steffen at sdaoden.eu> wrote:
 |
 |And how did you handle it?
 |
 |The simplest way to truncate the file is with truncate or just ">file",
 |since writes are small enough to be atomic.  The sa utility, which also

Hm, ok, sure.  I thought maybe, you know.  Availability of some
weeks or the quarter of a year is a good thing (tm).

 |goes back to v7, will summarize process accounting data and write it to a
 |different file; it can then report on either unsummarized data or
 |summarized data before unsummarized data).  Unfortunately Linux has broken
 |the wtmp/utmp convention of "no logfile, no logging", so a cron job to
 |truncate wtmp is your only man.

Too bad weather to make something out of that.
The fruits of South Africa were so sweet that we hoped for a good
summer.  Well 2000 KM more southern it is, but that Island low
pressure area now lies in front of Ireland i think, what a mess.

Yes the script is not atomic, but good enough for very occasional
usage by a logged in administrator.

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From drsalists at gmail.com  Tue Jul  6 06:15:10 2021
From: drsalists at gmail.com (Dan Stromberg)
Date: Mon, 5 Jul 2021 13:15:10 -0700
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <20210705134522.nzyIC%steffen@sdaoden.eu>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
 <20210705034751.GU817@mcvoy.com>
 <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>
 <20210705134522.nzyIC%steffen@sdaoden.eu>
Message-ID: <CAGGBd_r-nhpbWGaHAxo+7sRf8VPLMiRx5oQK-Cz_kkm0Y=8JPg@mail.gmail.com>

On Mon, Jul 5, 2021 at 6:45 AM Steffen Nurpmeso <steffen at sdaoden.eu> wrote:

>  And then, what have the holes to do with the programming language?
>
> Really?

A null-terminated array of char is a petri dish.  A proper string type is
more like a disinfectant.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/7d3d7d93/attachment.htm>

From norman at oclsc.org  Tue Jul  6 06:26:12 2021
From: norman at oclsc.org (Norman Wilson)
Date: Mon,  5 Jul 2021 16:26:12 -0400 (EDT)
Subject: [TUHS] Binary log files
Message-ID: <20210705202612.BF641640CC6@lignose.oclsc.org>

Some of us have, literally for decades, been dealing with
wtmp by rolling it weekly or monthly or quarterly or whatever,
letting cron run something like

	cd /usr/adm	# that's how long I've been doing this!
	umask 022
	>wtmp.new
	ln wtmp wtmp.prev
	mv wtmp.new wtmp
	# also so long ago there was no seq(1)
	nums=`awk 'BEGIN {for (i = 12; i >= 0; i--) print i; exit}'`
	for i in $nums; do
		inext=`expr $i + 1`
		if [ -f wtmp.$i ]; then
			mv wtmp.$i wtmp.$inext
		fi
	done
	mv wtmp.prev wtmp.0

This really isn't rocket science.  It isn't even particularly
interesting UNIX history.  Can we move on to something that IS
interesting?

Here are some things I find more interesting:

1.  utmp came before wtmp: utmp(V) appears in the First Edition
manual, wtmp(V) only in the Second.  Apparently interest in
who else is logged in right now predated interest in who has
logged in recently.

2.  Both files started out in /tmp.  wtmp is first said to be
in /usr/adm instead in the Fifth Edition manual, utmp in /etc
in the Sixth.

3.  The names /tmp/utmp and /tmp/wtmp appear to have been
issued by the Department of Redundancy Department.  I think
it quite likely that Ken and Dennis would have been familiar
with that joke once the recording containing it was issued
in mid-1970, but I don't know whether utmp existed in some
form before that.  I see no sign of it in the fragments of
PDP-7 source code we have (in particular init doesn't seem
to use it), but what about later PDP-7 or very early PDP-11
code predating the late-1971 First Edition manual?

Norman Wilson
Toronto ON
Not Insane

From lm at mcvoy.com  Tue Jul  6 07:05:23 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Mon, 5 Jul 2021 14:05:23 -0700
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAGGBd_r-nhpbWGaHAxo+7sRf8VPLMiRx5oQK-Cz_kkm0Y=8JPg@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org>
 <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
 <20210705034751.GU817@mcvoy.com>
 <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>
 <20210705134522.nzyIC%steffen@sdaoden.eu>
 <CAGGBd_r-nhpbWGaHAxo+7sRf8VPLMiRx5oQK-Cz_kkm0Y=8JPg@mail.gmail.com>
Message-ID: <20210705210523.GG26121@mcvoy.com>

On Mon, Jul 05, 2021 at 01:15:10PM -0700, Dan Stromberg wrote:
> On Mon, Jul 5, 2021 at 6:45 AM Steffen Nurpmeso <steffen at sdaoden.eu> wrote:
> 
> >  And then, what have the holes to do with the programming language?
> >
> > Really?
> 
> A null-terminated array of char is a petri dish.  A proper string type is
> more like a disinfectant.

I'd really like it if C got a proper everything type.  Some container
type that lets you have arrays of anything and the run time system does
the realloc when you extend the container.  We built such a thing in
BitKeeper but it was awkward, any sort of modification was

	thing = modifies(thing, args...);

because the modification might realloc().
-- 
---
Larry McVoy            	     lm at mcvoy.com             http://www.mcvoy.com/lm 

From clemc at ccc.com  Tue Jul  6 07:29:02 2021
From: clemc at ccc.com (Clem Cole)
Date: Mon, 5 Jul 2021 17:29:02 -0400
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAGGBd_r-nhpbWGaHAxo+7sRf8VPLMiRx5oQK-Cz_kkm0Y=8JPg@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
 <20210705034751.GU817@mcvoy.com>
 <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>
 <20210705134522.nzyIC%steffen@sdaoden.eu>
 <CAGGBd_r-nhpbWGaHAxo+7sRf8VPLMiRx5oQK-Cz_kkm0Y=8JPg@mail.gmail.com>
Message-ID: <CAC20D2NZrKPE2V76GTkNPrf_aChBptZW5JEDmo+zUdjWos1vYw@mail.gmail.com>

On Mon, Jul 5, 2021 at 4:16 PM Dan Stromberg <drsalists at gmail.com> wrote:

> A null-terminated array of char is a petri dish.  A proper string type is
> more like a disinfectant.
>
Hrrmpt.... maybe (in theory), but I can say that never seen it really work
in practice --  bwk in Why Pascal is Not My Favorite Programming Language
<http://www.lysator.liu.se/c/bwk-on-pascal.html> describes much of the
practical realities of this sort of choice:

2.1.  The size of an array is part of its typeIf one declares

     var     arr10 : array [1..10] of integer;
             arr20 : array [1..20] of integer;

then arr10 and arr20 are arrays of 10 and 20 integers respectively.  Suppose
we want to write a procedure 'sort' to sort an integer array.  Because
arr10 and arr20 have different types, it is not possible to write a single
procedure that will sort them both.

The place where this affects Software Tools particularly, and I think
programs in general, is that it makes it difficult indeed to create a
library of routines for doing common, general-purpose operations like
sorting.

The particular data type most often affected is 'array of char', for in
Pascal a string is an array of characters.  Consider writing a function
'index(s,c)' that will return the position in the string s where the
character c first occurs, or zero if it does not.  The problem is how to
handle the string argument of 'index'.  The calls 'index('hello',c)' and '
index('goodbye',c)' cannot both be legal, since the strings have different
lengths.  (I pass over the question of how the end of a constant string
like 'hello' can be detected, because it can't.) The next try is

     var     temp : array [1..10] of char;
     temp := 'hello';

     n := index(temp,c);

but the assignment to 'temp' is illegal because 'hello' and 'temp' are of
different lengths.

The only escape from this infinite regress is to define a family of
routines with a member for each possible string size, or to make all
strings (including constant strings like 'define' ) of the same length.

The latter approach is the lesser of two great evils.  In 'Tools', a type
called 'string' is declared as

     type    string = array [1..MAXSTR] of char;

where the constant 'MAXSTR' is ``big enough,'' and all strings in all
programs are exactly this size.  This is far from ideal, although it made
it possible to get the programs running.  It does not solve the problem of
creating true libraries of useful routines.

There are some situations where it is simply not acceptable to use the
fixed-size array representation.  For example, the 'Tools' program to sort
lines of text operates by filling up memory with as many lines as will fit;
its running time depends strongly on how full the memory can be packed.

Thus for 'sort', another representation is used, a long array of characters
and a set of indices into this array:

     type    charbuf = array [1..MAXBUF] of char;
             charindex = array [1..MAXINDEX] of 0..MAXBUF;

But the procedures and functions written to process the fixed-length
representation cannot be used with the variable-length form; an entirely
new set of routines is needed to copy and compare strings in this
representation.  In Fortran or C the same functions could be used for both.

As suggested above, a constant string is written as

     'this is a string'

and has the type 'packed array [1..n] of char', where n is the length.  Thus
each string literal of different length has a different type.  The only way
to write a routine that will print a message and clean up is to pad all
messages out to the same maximum length:

     error('short message                    ');
     error('this is a somewhat longer message');

Many commercial Pascal compilers provide a 'string' data type that
explicitly avoids the problem; 'string's are all taken to be the same type
regardless of size.  This solves the problem for this single data type, but
no other.  It also fails to solve secondary problems like computing the
length of a constant string; another built-in function is the usual
solution.

Pascal enthusiasts often claim that to cope with the array-size problem one
merely has to copy some library routine and fill in the parameters for the
program at hand, but the defense sounds weak at best:(12
<http://www.lysator.liu.se/c/bwk-on-pascal.html#lit-12>)

``Since the bounds of an array are part of its type (or, more exactly, of
the type of its indexes), it is impossible to define a procedure or
function which applies to arrays with differing bounds.  Although this
restriction may appear to be a severe one, the experiences we have had with
Pascal tend to show that it tends to occur very infrequently.  [...]
However, the need to bind the size of parametric arrays is a serious defect
in connection with the use of program libraries.''

This botch is the biggest single problem with Pascal.  I believe that if it
could be fixed, the language would be an order of magnitude more usable.  The
proposed ISO standard for Pascal(13
<http://www.lysator.liu.se/c/bwk-on-pascal.html#lit-13>) provides such a
fix (``conformant array schemas''), but the acceptance of this part of the
standard is apparently still in doubt.
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/4e320bb2/attachment-0001.htm>

From brantley at coraid.com  Tue Jul  6 08:22:00 2021
From: brantley at coraid.com (Brantley Coile)
Date: Mon, 5 Jul 2021 22:22:00 +0000
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAC20D2NZrKPE2V76GTkNPrf_aChBptZW5JEDmo+zUdjWos1vYw@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
 <20210705034751.GU817@mcvoy.com>
 <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>
 <20210705134522.nzyIC%steffen@sdaoden.eu>
 <CAGGBd_r-nhpbWGaHAxo+7sRf8VPLMiRx5oQK-Cz_kkm0Y=8JPg@mail.gmail.com>
 <CAC20D2NZrKPE2V76GTkNPrf_aChBptZW5JEDmo+zUdjWos1vYw@mail.gmail.com>
Message-ID: <833CC07E-EB6C-4385-A4D1-63AFEDDDB69A@coraid.com>

Wirth fixed it in Modula-2 and Oberon.

> On Jul 5, 2021, at 5:29 PM, Clem Cole <clemc at ccc.com> wrote:
> 
> 
> 
> On Mon, Jul 5, 2021 at 4:16 PM Dan Stromberg <drsalists at gmail.com> wrote:
> A null-terminated array of char is a petri dish.  A proper string type is more like a disinfectant.
> Hrrmpt.... maybe (in theory), but I can say that never seen it really work in practice --  bwk in Why Pascal is Not My Favorite Programming Language describes much of the practical realities of this sort of choice:
> 
> 2.1.  The size of an array is part of its type
> 
> If one declares
>      var     arr10 : array [1..10] of integer;
>              arr20 : array [1..20] of integer;
> 
> then arr10 and arr20 are arrays of 10 and 20 integers respectively.  Suppose we want to write a procedure 'sort' to sort an integer array.  Because arr10 and arr20 have different types, it is not possible to write a single procedure that will sort them both.
> The place where this affects Software Tools particularly, and I think programs in general, is that it makes it difficult indeed to create a library of routines for doing common, general-purpose operations like sorting.
> 
> The particular data type most often affected is 'array of char', for in Pascal a string is an array of characters.  Consider writing a function 'index(s,c)' that will return the position in the string s where the character c first occurs, or zero if it does not.  The problem is how to handle the string argument of 'index'.  The calls 'index('hello',c)' and 'index('goodbye',c)' cannot both be legal, since the strings have different lengths.  (I pass over the question of how the end of a constant string like 'hello' can be detected, because it can't.) The next try is
> 
>      var     temp : array [1..10] of char;
>      temp := 'hello';
> 
>      n := index(temp,c);
> 
> but the assignment to 'temp' is illegal because 'hello' and 'temp' are of different lengths.
> The only escape from this infinite regress is to define a family of routines with a member for each possible string size, or to make all strings (including constant strings like 'define' ) of the same length.
> 
> The latter approach is the lesser of two great evils.  In 'Tools', a type called 'string' is declared as
> 
>      type    string = array [1..MAXSTR] of char;
> 
> where the constant 'MAXSTR' is ``big enough,'' and all strings in all programs are exactly this size.  This is far from ideal, although it made it possible to get the programs running.  It does not solve the problem of creating true libraries of useful routines.
> There are some situations where it is simply not acceptable to use the fixed-size array representation.  For example, the 'Tools' program to sort lines of text operates by filling up memory with as many lines as will fit; its running time depends strongly on how full the memory can be packed.
> 
> Thus for 'sort', another representation is used, a long array of characters and a set of indices into this array:
> 
>      type    charbuf = array [1..MAXBUF] of char;
>              charindex = array [1..MAXINDEX] of 0..MAXBUF;
> 
> But the procedures and functions written to process the fixed-length representation cannot be used with the variable-length form; an entirely new set of routines is needed to copy and compare strings in this representation.  In Fortran or C the same functions could be used for both.
> As suggested above, a constant string is written as
> 
>      'this is a string'
> 
> and has the type 'packed array [1..n] of char', where n is the length.  Thus each string literal of different length has a different type.  The only way to write a routine that will print a message and clean up is to pad all messages out to the same maximum length:
>      error('short message                    ');
>      error('this is a somewhat longer message');
> 
> Many commercial Pascal compilers provide a 'string' data type that explicitly avoids the problem; 'string's are all taken to be the same type regardless of size.  This solves the problem for this single data type, but no other.  It also fails to solve secondary problems like computing the length of a constant string; another built-in function is the usual solution.
> Pascal enthusiasts often claim that to cope with the array-size problem one merely has to copy some library routine and fill in the parameters for the program at hand, but the defense sounds weak at best:(12)
> 
> ``Since the bounds of an array are part of its type (or, more exactly, of the type of its indexes), it is impossible to define a procedure or function which applies to arrays with differing bounds.  Although this restriction may appear to be a severe one, the experiences we have had with Pascal tend to show that it tends to occur very infrequently.  [...] However, the need to bind the size of parametric arrays is a serious defect in connection with the use of program libraries.''
> This botch is the biggest single problem with Pascal.  I believe that if it could be fixed, the language would be an order of magnitude more usable.  The proposed ISO standard for Pascal(13) provides such a fix (``conformant array schemas''), but the acceptance of this part of the standard is apparently still in doubt. 
> бђ§


From drsalists at gmail.com  Tue Jul  6 14:35:31 2021
From: drsalists at gmail.com (Dan Stromberg)
Date: Mon, 5 Jul 2021 21:35:31 -0700
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAC20D2NZrKPE2V76GTkNPrf_aChBptZW5JEDmo+zUdjWos1vYw@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
 <20210705034751.GU817@mcvoy.com>
 <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>
 <20210705134522.nzyIC%steffen@sdaoden.eu>
 <CAGGBd_r-nhpbWGaHAxo+7sRf8VPLMiRx5oQK-Cz_kkm0Y=8JPg@mail.gmail.com>
 <CAC20D2NZrKPE2V76GTkNPrf_aChBptZW5JEDmo+zUdjWos1vYw@mail.gmail.com>
Message-ID: <CAGGBd_oZ7xVzRCD9aNzxU4v+tC5Lw2Ze=UmPE4Dv1zHE5nadbg@mail.gmail.com>

On Mon, Jul 5, 2021 at 2:29 PM Clem Cole <clemc at ccc.com> wrote:

>
> On Mon, Jul 5, 2021 at 4:16 PM Dan Stromberg <drsalists at gmail.com> wrote:
>
>> A null-terminated array of char is a petri dish.  A proper string type is
>> more like a disinfectant.
>>
> Hrrmpt.... maybe (in theory), but I can say that never seen it really work
> in practice --  bwk in Why Pascal is Not My Favorite Programming Language
> <http://www.lysator.liu.se/c/bwk-on-pascal.html> describes much of the
> practical realities of this sort of choice:
>

I think language designers since Pascal have learned from Pascal's mistake
there.

Supposedly even Borland's TurboPascal had better strings than vanilla
Pascal.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/1792befe/attachment.htm>

From imp at bsdimp.com  Tue Jul  6 14:44:29 2021
From: imp at bsdimp.com (Warner Losh)
Date: Mon, 5 Jul 2021 22:44:29 -0600
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAGGBd_oZ7xVzRCD9aNzxU4v+tC5Lw2Ze=UmPE4Dv1zHE5nadbg@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
 <20210705034751.GU817@mcvoy.com>
 <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>
 <20210705134522.nzyIC%steffen@sdaoden.eu>
 <CAGGBd_r-nhpbWGaHAxo+7sRf8VPLMiRx5oQK-Cz_kkm0Y=8JPg@mail.gmail.com>
 <CAC20D2NZrKPE2V76GTkNPrf_aChBptZW5JEDmo+zUdjWos1vYw@mail.gmail.com>
 <CAGGBd_oZ7xVzRCD9aNzxU4v+tC5Lw2Ze=UmPE4Dv1zHE5nadbg@mail.gmail.com>
Message-ID: <CANCZdfpAijUCpTegnBwaU69XX+SDf67PVeeM6McJHZkYMjm5Tw@mail.gmail.com>

On Mon, Jul 5, 2021, 10:37 PM Dan Stromberg <drsalists at gmail.com> wrote:

>
> On Mon, Jul 5, 2021 at 2:29 PM Clem Cole <clemc at ccc.com> wrote:
>
>>
>> On Mon, Jul 5, 2021 at 4:16 PM Dan Stromberg <drsalists at gmail.com> wrote:
>>
>>> A null-terminated array of char is a petri dish.  A proper string type
>>> is more like a disinfectant.
>>>
>> Hrrmpt.... maybe (in theory), but I can say that never seen it really
>> work in practice --  bwk in Why Pascal is Not My Favorite Programming
>> Language <http://www.lysator.liu.se/c/bwk-on-pascal.html> describes much
>> of the practical realities of this sort of choice:
>>
>
> I think language designers since Pascal have learned from Pascal's mistake
> there.
>
> Supposedly even Borland's TurboPascal had better strings than vanilla
> Pascal.
>

That's true. You could do things in Turbo Pascal you couldn't do in
standard Pascals. It was close enough to C that a lot of system level code
was written in it. A bit verbose, but serviceable.

Warner

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/b42c6591/attachment.htm>

From nevin at eviloverlord.com  Tue Jul  6 15:10:56 2021
From: nevin at eviloverlord.com (Nevin Liber)
Date: Tue, 6 Jul 2021 00:10:56 -0500
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
Message-ID: <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>

>
>
> He didn't need to abuse any existing program by adding new
> flags or the like; unless I am mistaken, `sed Nq', for some
> number `N', does exactly what `head -N' would do on a single
> file, obviating the very need for head(1).
>

To summarize this discussion:

cat -v should be a separate executable and not a command line option.
That's the Unix way.

head isn't needed because we can already do it with the command line
options for sed.  That's the Unix way.
-- 
 Nevin ":-)" Liber  <mailto:nevin at eviloverlord.com>  +1-847-691-1404
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210706/a5340db5/attachment.htm>

From rp at servium.ch  Tue Jul  6 15:58:27 2021
From: rp at servium.ch (Rico Pajarola)
Date: Mon, 5 Jul 2021 22:58:27 -0700
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAGGBd_oZ7xVzRCD9aNzxU4v+tC5Lw2Ze=UmPE4Dv1zHE5nadbg@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
 <20210705034751.GU817@mcvoy.com>
 <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>
 <20210705134522.nzyIC%steffen@sdaoden.eu>
 <CAGGBd_r-nhpbWGaHAxo+7sRf8VPLMiRx5oQK-Cz_kkm0Y=8JPg@mail.gmail.com>
 <CAC20D2NZrKPE2V76GTkNPrf_aChBptZW5JEDmo+zUdjWos1vYw@mail.gmail.com>
 <CAGGBd_oZ7xVzRCD9aNzxU4v+tC5Lw2Ze=UmPE4Dv1zHE5nadbg@mail.gmail.com>
Message-ID: <CACwAiQnU8eLHOqmgC=OtVRatZnF9xrn67Bz55dax7xcRfr9oag@mail.gmail.com>

On Mon, Jul 5, 2021 at 9:37 PM Dan Stromberg <drsalists at gmail.com> wrote:

> Supposedly even Borland's TurboPascal had better strings than vanilla
> Pascal.
>
and then they used only 1 byte for the string length, limiting the max
length to 255, which made it completely pointless, because the moment you
had some real world data, you were back in
manage-my-own-pointers-to-arrays-of-chars-land.

(I loved Turbo Pascal, it's the first language I used for "serious"
programming. They got a lot of things right, but strings were emphatically
not among those things).

My other gripe was that Turbo Pascal programs spend half their time on
pointer normalization (every pointer access has a preamble that makes sure
that the offset is < 16). I'd really love to understand why on earth they
decided to do it that way (I'm sure there's a reason, I just fail to see
it). It's not like anyone could do pointer arithmetic behind the compiler's
back... it slows things down, and it's probably the reason why an
equivalent Turbo C program is only half the code size. And it makes it
impossible to do clever things with segment registers (18 year old me
didn't like that).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210705/922ed156/attachment.htm>

From Caipenghui_c at 163.com  Tue Jul  6 22:18:56 2021
From: Caipenghui_c at 163.com (Caipenghui)
Date: Tue, 06 Jul 2021 20:18:56 +0800
Subject: [TUHS] Good News:
Message-ID: <9C45EDC5-744F-40B9-88F7-6A49DEEB3FDD@163.com>

UNIX history memoir has been published in China (publish by posts and Telecommunications Press in China) and translated into Chinese. It is also called name "UNIX legend" in China. I'm going to buy now.

If you're in the computer industry, it's exciting just to understand how these buzzwords came into being. Even if you don't have a deep technical background, 

You can also benefit a lot from these ides that shine with genius.

I have been looking forward to a Chinese book about the history of Unix development for so many years, and now I can finally see it.

Thanks  bwk and other guys.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210706/36aa3902/attachment.htm>

From clemc at ccc.com  Tue Jul  6 23:05:19 2021
From: clemc at ccc.com (Clem Cole)
Date: Tue, 6 Jul 2021 09:05:19 -0400
Subject: [TUHS] Is C obsolete? (was Re: [tuhs] The Unix shell: a 50-year
 view)
In-Reply-To: <CAGGBd_oZ7xVzRCD9aNzxU4v+tC5Lw2Ze=UmPE4Dv1zHE5nadbg@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CALMnNGgsfTeTnyFEQoPmRseXJ1URfRhMVr1uSrnbkZZ-V1P3Jw@mail.gmail.com>
 <YOJDIn6Hj01Hnwp3@clarinet.employees.org> <20210705002119.GL817@mcvoy.com>
 <CAD2gp_TEVk_-W72ZYJARq-WOPe1oR6xGmO9_JOCRsfJwaneLPA@mail.gmail.com>
 <20210705034751.GU817@mcvoy.com>
 <CAGGBd_o=_LhF8FtxNF+VrC6TTN6mKZMx3Li4-TCA8qiK45BPBQ@mail.gmail.com>
 <20210705134522.nzyIC%steffen@sdaoden.eu>
 <CAGGBd_r-nhpbWGaHAxo+7sRf8VPLMiRx5oQK-Cz_kkm0Y=8JPg@mail.gmail.com>
 <CAC20D2NZrKPE2V76GTkNPrf_aChBptZW5JEDmo+zUdjWos1vYw@mail.gmail.com>
 <CAGGBd_oZ7xVzRCD9aNzxU4v+tC5Lw2Ze=UmPE4Dv1zHE5nadbg@mail.gmail.com>
Message-ID: <CAC20D2OGnC_wP-aW=3iu7yYhMpQf0XvMy9jyrV-ZOjHM5xwr8A@mail.gmail.com>

Exactly my point - *theory vs practice*.  It can be a petri dish, but that
is *not necessarily* a bad thing.  Different extended Pascal/Mod-2* et al *all
'fixed' the string data type in some manner (not even saying the
different solutions are good or bad).  But it always comes back to what was
(*is*) theory *vs*. practice.  As others have pointed out.  In the case of
Strings, you either made them more like C strings or you made them
basically useless - because, in practice, the null-terminated string works
pretty darned well for production code and can be made to be secure, but
the programmer can not be lazy.

Hey, I personally look like Pascal for what it is and I still think it's
the best teaching tool, particularly with Clancy and Cooper's book for
beginning programmers.  I personally learned both languages around the same
time, but I had already been writing in a number of assemblers, BASIC,
Fortran, Algol-W, SAIL, and BLISS before I saw either.  I've more written
way more C code than any other language --- why because it works and as a
professional, I know how to properly use it.

As bwk says in that same document which I pointed to earlier, "comparing C
and Pascal is the same as trying to compare a jetfighter with a Piper
Cub."  As my former Marine pilot B-I-L reminds me, he did not start pilot
training in Whidbey Island on jets - he worked his way up and showed he was
competent before the Navy made it easier for him to kill himself (and those
around him).  BTW: the Navy does not tend to try to land small prop planes
on the USS Kennedy either.  As my B-I-L says for all of his day and night
landings on same, he always somewhat scared the cr*p out him but he was
always careful to remember what he had been taught (and he says he never
had to use the 3 wire).

The bottom line becomes learning to pick and then using the proper tool for
the job and respect what is for and the constraints associated with using
it.

Clem
бђ§

On Tue, Jul 6, 2021 at 12:35 AM Dan Stromberg <drsalists at gmail.com> wrote:

>
> On Mon, Jul 5, 2021 at 2:29 PM Clem Cole <clemc at ccc.com> wrote:
>
>>
>> On Mon, Jul 5, 2021 at 4:16 PM Dan Stromberg <drsalists at gmail.com> wrote:
>>
>>> A null-terminated array of char is a petri dish.  A proper string type
>>> is more like a disinfectant.
>>>
>> Hrrmpt.... maybe (in theory), but I can say that never seen it really
>> work in practice --  bwk in Why Pascal is Not My Favorite Programming
>> Language <http://www.lysator.liu.se/c/bwk-on-pascal.html> describes much
>> of the practical realities of this sort of choice:
>>
>
> I think language designers since Pascal have learned from Pascal's mistake
> there.
>
> Supposedly even Borland's TurboPascal had better strings than vanilla
> Pascal.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210706/a49ad9dc/attachment.htm>

From clemc at ccc.com  Tue Jul  6 23:30:31 2021
From: clemc at ccc.com (Clem Cole)
Date: Tue, 6 Jul 2021 09:30:31 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
Message-ID: <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>

On Tue, Jul 6, 2021 at 1:13 AM Nevin Liber <nevin at eviloverlord.com> wrote:

> head isn't needed because we can already do it with the command line
>> options for sed.
>>
> Sigh ... fine except for the fact that sed(1) did not exist when head(1)
was written. So you missed the point of my example.  FWIW: if you want to
pick nits, in this case, the solution with the former is redundant with the
latter.  IMO, That's ok as it follows in the basic tradition.  UNIX has a
number of ways to do similar things/solve the same problem, because it
offers tools, the system designers do not try to dictate a singular
solution.

As I fear by the reaction, many of you have missed the point of what I was
trying to say. I guess I did not do that clearly.  Let me try in a shorter
form.

The basic idea of the original Unix was that was small and simple and in
Dennis' words, 'ran on modest hardware.'    The designers of UNIX also did
not try to solve any one particular problem but offered a set of tools for
a >>programmer<< take upon her/himself to do so.

The issue is that the target >>user<< of UNIX had devolved from that of a
'programmer' but rather the elusive 'end user' and her/his
view/requirements tend to be "solve my problem now -- I don't care how -
just do it I don't want to think about it - make it go away."   So over
time, we hid a lot of the simplicity in features that were built on
features (often warts) that were built on other features (often other
warts).  Mashey had a great visual in his "small is beautiful" talk using a
'build slide' in PPT terms that demonstrated the problem.

I was commenting on the OPs post of the paper picking on UNIX, the UNIX
Shell, and where we are today *vs.* 50+ years ago.  My other point is the
authors need to get over themselves and recognize that* they are not making
a really new argument*.    Folks were not too happy with many of the BSD
'features' either, but now those same features (like head(1) or BSD sockets(3))
are considered SOP for nay new UNIX and you have to have them - even if
there are other if not 'better' ways of doing the same thing.
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210706/d7b839a9/attachment.htm>

From cowan at ccil.org  Tue Jul  6 23:40:30 2021
From: cowan at ccil.org (John Cowan)
Date: Tue, 6 Jul 2021 09:40:30 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
Message-ID: <CAD2gp_QbQs7etBHBK5Leno8Zpoa_kW+rLgBo-SR9TMxttRi57w@mail.gmail.com>

On Tue, Jul 6, 2021 at 1:12 AM Nevin Liber <nevin at eviloverlord.com> wrote
in summary:


> cat -v should be a separate executable and not a command line option.
> That's the Unix way.
>
> head isn't needed because we can already do it with the command line
> options for sed.  That's the Unix way.
>

Hmm, it seems like I must write my own Master Foo koan (this is a first
draft only, improvements welcome):

After Master Foo completed his discourse on the Unix nature <
http://www.catb.org/~esr/writings/unix-koans/unix-nature.html>, a tall,
thin, gray-haired, balding, bespectacled man entered the room.

Master Foo looked up from his lectern.

"Greetings," said Master Foo.  "Who are you?"

"I am the Master Planner," said the Master Planner.  "Ninth of my dharma
line," he added modestly.

"I am Master Foo," said Master Foo.  "What do you plan for?"

"To reach enlightenment by concentration on a single focus," said the
Master Planner.  "Therefore I remove all that is unnecessary from my life."

Master Foo said nothing, but began to type fiercely.  Those students who
could see what he was doing were astonished that he appeared to be typing
complete gibberish.

When he stopped typing, Master Foo pushed the device to the Master
Planner.  "Read me, if you would, the last maxim of the Zen of Python."

The Master Planner appeared as astonished as the students.  "But all men
know that the twenty-one maxims of the Zen of Python have been unchanged
since the Master Sorter wrote them down long ago!" he protested.

"Nevertheless," said Master Foo softly.

The Master Planner gave the words of command and then spoke very softly.
"It says -- it says, 'Inclusion is better than exclusion.'"

On hearing these words, all present were enlightened.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210706/099b2681/attachment.htm>

From chet.ramey at case.edu  Wed Jul  7 00:12:25 2021
From: chet.ramey at case.edu (Chet Ramey)
Date: Tue, 6 Jul 2021 10:12:25 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
Message-ID: <e111cdc6-dacb-17a0-d1ea-b540c0567738@case.edu>

On 7/6/21 1:10 AM, Nevin Liber wrote:

> head isn't needed because we can already do it with the command line 
> options for sed.В  That's the Unix way.

Except, in this case, `head' came first.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet at case.edu    http://tiswww.cwru.edu/~chet/

From clemc at ccc.com  Wed Jul  7 02:05:04 2021
From: clemc at ccc.com (Clem Cole)
Date: Tue, 6 Jul 2021 12:05:04 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210705071450.GA12885@tau1.ceti.pl>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
Message-ID: <CAC20D2NdVK1zGeACJW8jZfTm85CyWq8CZd6oZAAfRaRZgovNvg@mail.gmail.com>

On Mon, Jul 5, 2021 at 3:16 AM Tomasz Rola <rtomek at ceti.pl> wrote:

> I have misread you then. I suppose the main problem that Unix solved
> fifty years ago was the need for OS on a not very big (but cheap!)
> machine. There were quite a few such systems and various such 16,
> 18-bit machines. So Unix was one of many, and what made it successful
> was rewriting in C (I think I have read about it somewhere). Various
> guys ported C compiler to their machines and to test it, they compiled
> Unix sources (I am sure I have read about this). So as C gained
> popularity, so did Unix gained popularity and C was the prog lang of
> Unix, thus with every new Unix install C gained even more popularity.


Ouch!!! This is so much important that you have missed in this statement,
as this is a great example of not seeing the forest because of all the
trees.  You are right that C and UNIX's success was intertwined but I think
you are missing the drivers for that.   They were successful because of
other things and because they were successful, we have them today.

So, Tomasz let me try again .. as an old f*rt that lived this era and
played a role in it.  Wrote some of the memos that 'justified UNIX instead
of a commercial solution, *etc*.'  UNIX was hardly a slam and it could have
easily not been successful, a lot of things had to occur for the result we
see today.

As I have mentioned before much of this topic has been discussed here
before.  In fact, I wrote and published a much longer explanation of all of
this is in a paper I published a few years ago for a French group looking
at how computers and UNIX affected society:  If can be found at:
http://technique-societe.cnam.fr
/colloque-international-unix-en-france-et-aux-etats-unis-innovation-diffusion-et-appropriation--945215.kjsp
  or send me an e-mail privately I can send you a PDF [note its formatted
for A4 paper, but will print on US letter successfully].

First ignore UNIX, Multics, or anything else.  Please concentrate on the
systems that IBM, BUNCH, DG, and DG had in the 1960s and 1970s.   An IBM
term was 'access method.'   Every program has to use a specifically defined
scheme to read the data:  ISAM/VSAM or in DEC's case RMS.  One of my
friends once said of RMS, it was not so bad that RMS had 256 to a thousand
optional features on each QIO call, but Culter had to check for each one of
them sequentially.  Yecch!!!!!

Unix as a programming system was a real breath of fresh air -- just
treating files as an unstructured bag of bits and the program figure out
how to deal with them was giant and very much against the thought of the
times.  And if you used ASCII, not a binary format, it means that humans
might even be able to debug it the system using the data!!  Don't write
huge programs to solve every possible problem you encounter with your
system.  Instead, write little ones that can be hooked together and reuse
the different smaller programs.  Build a library of complete simple
programs.

BTW:  UNIX was not the only system in those days exposing these types of
ideas.  I believe that it was Bert Sullivan (Ivan's brother) who built a
system at Lincoln labs that using what IIRC was Simula objects, that could
hook up small things together to manipulate something larger - not unlike
Doug's pipe ideas.   This stuff gave way to the later OOB programming
movement [and I would suggest much of the C++ we live with today too, but I
digress].

The idea of lots of little programs that cooperate with each other is not
what IBM and the like wanted/was providing.  They were selling closed
'solutions' complete SW systems ("walled gardens" controlled by them or
their programming minions) and yes needed the big iron they sold.  Note
the IBM 'solutions were not sold to engineers, their products were sold on
the golf course to the 'managers' of what we know call IT shops.

FWIW:  DEC was in a strange position.  It had come from serving the
engineers, but systems like VMS have slowly become more and more
interesting to the enterprise and that was a much more lucrative market.
 Remember what did Charlie Brown (AT&T's CEO) do after they were broken up
-- he wants to go after IBM!!!  AT&T's new marketing folks even change the
name of the codebase from the 'Programmers Workbench' to 'System III'
because they are afraid 'programmer' will not play well in enterprise sales.

The point here is that the 'enterprise type of system is really different
than engineers at BTL, Lincoln Labs, much less in the research campuses of
important universities.

The important thing is that the latter group (not enterprise) did not have
as much money but was a completely different population.   UNIX is 100% a
'Christiansen style Disruption'  ( read his book completely if you have
not, please).  It's a 'lessor technology,' running on smaller equipment,
targeting a new and different consumer who does not care that it is 'not as
good' as the established products.  If you compare UNIX to IBM's OS or VMS
for that matter, UNIX does not have the 'features' that are valued by the
'enterprise market.'

Ken/Dennis, *et al*, clearly do not care -- they were building something
they (the engineers) needed and wanted (thankfully).  And yes it had to run
on modest hardware because that is what they could afford and had access
to.  But because since the HW was modest, that forces a mindset of what are
we really doing on the SW?  How can we do it effectively.  The designers
are asking an important research question? *Maybe some of these other
schemes are not necessary*.

You are correct the C grew because of UNIX, but you kind of have it
backward. I'm a perfect example of what happened.  These new
microprocessors from Intel/Zilog/Moto/MOS Tech became available to us
(engineers mind you).  Hey, I was at CMU in the mid-1970s, I even had
access to the BLISS sources, but most people did not.  A BLISS cross
compiler binary cost $5K per CPU!!! And by the time what would become the
M68K shows up (I had access to the experimental chip that was not numbered)
I was at Tektronix and I then did not have BLISS sources.  *But I did have
the UNIX sources and those included a C compiler that dmr had written for
the PDP-11.   So I retargeted it.*   Same story with Steve Ward's crew in
the RTS at MIT, although they used both dmr and Steve's compilers.   I know
that same song played again at Purdue, also in UNSW, as well in the EU in a
couple of places if you look on the USENIX tapes.

It was *not that we tested our compiler by porting UNIX*.  We wanted a *C
compiler for whatever* program/project we had for these new devices.  Most
of the time we cross-compiled on our local UNIX box, of course. This was
true of the C8086 and Z80 tools I had in 1978/79.  But we all ran it on our
PDP-11s or later Vaxen.   It takes a few years before 'JAWS' start and we
see all the UNIX ports, but the C *vs.* Pascal wars were well underweight
by that time, and the UNIX vs. VMS vs. TOPS vs. Tenex vs. VM/CMS vs. TSS
vs. MTS, *etc*. wars had already become the stuff of legend.

The key point is that UNIX was inexpensive and worked on modest hardware.
Yes C came with it and that is why I think we use it not BLISS, BCPL, or
some flavor of PLx today.

It's simply a Christiansen style Disruption Technology -- something valued
by a new market that grew faster than the old market.   But the problem we
have with UNIX is as it displaced the old market, the old ideas/behaviors
of the other players that survived started to added back into the new
system their old scheme (with new names mind you -- but the same effect).

i.e. those not willing to learn from the errors and why success occurred in
history will repeat the errors of before.  Sadly, I have personally lived
this statement multiple times in my professional employment.
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210706/7ce42ec4/attachment-0001.htm>

From tytso at mit.edu  Wed Jul  7 02:23:52 2021
From: tytso at mit.edu (Theodore Ts'o)
Date: Tue, 6 Jul 2021 12:23:52 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
Message-ID: <YOSDmL7dCmy2KYGz@mit.edu>

On Tue, Jul 06, 2021 at 09:30:31AM -0400, Clem Cole wrote:
> The basic idea of the original Unix was that was small and simple and in
> Dennis' words, 'ran on modest hardware.'    The designers of UNIX also did
> not try to solve any one particular problem but offered a set of tools for
> a >>programmer<< take upon her/himself to do so.
> 
> The issue is that the target >>user<< of UNIX had devolved from that of a
> 'programmer' but rather the elusive 'end user' and her/his
> view/requirements tend to be "solve my problem now -- I don't care how -
> just do it I don't want to think about it - make it go away."   So over
> time, we hid a lot of the simplicity in features that were built on
> features (often warts) that were built on other features (often other
> warts).

I'd go even farther than that.  Hardware is no longer as modest, or as
simple.  And even if the target user is still the "programmer" it may
not be the case that worked well wtih the hardware and the problems of
50+ years ago is in fact that best answer today.  Including, for
example, the claim that everything should be represented in terms of a
byte stream and/or a file.

I'll refer people to the former FreeBSD core team member and currrent
FreeBSD developer, Benno Rice's presentation from linux.conf.au 2020,
"What UNIX Cost Us":

	https://www.youtube.com/watch?v=9-IWMbJXoLM

> I was commenting on the OPs post of the paper picking on UNIX, the UNIX
> Shell, and where we are today *vs.* 50+ years ago.  My other point is the
> authors need to get over themselves and recognize that* they are not making
> a really new argument*.    Folks were not too happy with many of the BSD
> 'features' either, but now those same features (like head(1) or BSD sockets(3))
> are considered SOP for nay new UNIX and you have to have them - even if
> there are other if not 'better' ways of doing the same thing.

And if the Unix patriaches were perhaps mistaken about how useful
"head" might be and whether or not it should have been considered
verboten, perhaps there is something to the claim that extreme
simplicity and forcing everything to implement in terms of the
smallest, simplest operations, might not make sense.  After all, taken
to extreme, if simplicity is the only good, then instead of Intel
CPU's, or PDP-11's, maybe we should be programming everything in terms
of a Turing Computer --- after all, "small is beautiful" and even a
PDP-11 is unnecessary complexity.  :-)

Or maybe not.

One of Benno's claims is even the Unix philosophy, when taken to
extremes, can be as much of an ideology as say, Fundamentalist
Christianity.  My Episcopalean roots may be showing, but the words of
Scripture (or the writings of the Unix Patriarchs) is not the only
source of truth; and Tradition by itself is also not enough; we also
need to apply our own Reason and Experience.

     	    	     	       	    - Ted

From rtomek at ceti.pl  Wed Jul  7 09:17:00 2021
From: rtomek at ceti.pl (Tomasz Rola)
Date: Wed, 7 Jul 2021 01:17:00 +0200
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
Message-ID: <20210706231659.GA13225@tau1.ceti.pl>

On Mon, Jul 05, 2021 at 12:26:04PM -0400, John Cowan wrote:
> On Mon, Jul 5, 2021 at 3:15 AM Tomasz Rola <rtomek at ceti.pl> wrote:
> 
[...]
> By the way, did anyone else start out on Unix-alikes before using actual
> Unix?  I read the BSTJ issue and became an instant convert, but only when
> $EMPLOYER got a MicroVAX was I able to work like that.  Next came the MKS
> Toolkit on DOS, and then Cygwin for many years.  I suppose it's only my
> last two $EMPLOYERs standardizing on the Mac that has left me running,
> like, actual Unix.

Not quite a Unix-lookalike, but AmigaDOS was a mix of ideas - named
volumes (a bit) like in CP/M, multitasking (a bit) like in Unix (but
on my model, I only had M68K and no memory protection), command line
tools allowing for batch programming more sophisticated than what
MSDOS had on table (well, I really never got to the point of abusing
this). Also, Aztec C came with a suite of programs resembling what I
could later find on Unix: cc, ld, make, ar and few others I forgot. At
one point my workflow on Amiga looked similar to my workflow on
Solaris and I could help myself with some Amiga programs after reading
matching man pages on big box.

Better Amigas also had memory protection and newer Workbench
(graphical interface and stuff in ROM) and allowed for AREXX (yes,
clone of mainframe REXX, never learned it) and with AREXX one could
manipulate applications which sported so called REXX-port (if memory
serves) and do things very much resembling what one could today do
with COM/DCOM objects on Windows. I.e. your AREXX script could perform
batch process with painting program, with word processor, perhaps with
desktop publishing and so on.

[...]
> True.  But then, many of us geeks make our choices not on technical
> criteria but on tribal loyalty.  Which is *technically* superior, vi or
> emacs?  (Please don't answer that.)

Mu!

[

 Mu (negative) / The Mu-kЕЌan :

 https://en.wikipedia.org/wiki/Mu_(negative)#The_Mu-k%C5%8Dan

]


> > Of course I could not be using specialised note
> > taking program. Instead, I went with Emacs and org-mode. In the
> > process I had to learn a bit of Elisp and dot-emacs file. Some
> > defaults in Emacs are not comfy for my eyes - fonts, colors, it had to
> > be fine tuned to my liking.
> >
> 
> Note that Emacs is probably the oldest import into the Unix ecosystem from
> outside, and it bears the marks of its origin: monolithic (but
> programmable), one tool does it all.

Well, when "everything" was small enough I really liked it. Nowadays
there seems to be a trend of making Emacs into another OS, like with
abomination we call the browser.

https://www.emacswiki.org/emacs/EmacsApplicationFramework

As long as I am able to trim it during compilation, they may put
whatever they want inside, but when I tried to unpack one of the
latest browser source code, it took more than 2.5 gigabytes (I am not
sure, it could have been a nightmare). I hope they will not apply this
crazyness to Emacs. I hope Emacs version 23 will keep compiling for a
while. 

[...]
> Without doubt.  I am not loyal to a kernel or a set of utilities, I simply
> follow the Way of Unix: <http://vrici.lojban.org/~cowan/upc/> (sadly
> incomplete)

Oh. I think you just need to bath in Tao, sink deep and breathe it
in. After that, words will form themselves out of the void and fall
right into the void opened with editor, all without any effort on your
side. 

-- 
Regards,
Tomasz Rola

--
** A C programmer asked whether computer had Buddha's nature.      **
** As the answer, master did "rm -rif" on the programmer's home    **
** directory. And then the C programmer became enlightened...      **
**                                                                 **
** Tomasz Rola          mailto:tomasz_rola at bigfoot.com             **

From usotsuki at buric.co  Wed Jul  7 09:47:37 2021
From: usotsuki at buric.co (Steve Nickolas)
Date: Tue, 6 Jul 2021 19:47:37 -0400 (EDT)
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210706231659.GA13225@tau1.ceti.pl>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl>
Message-ID: <alpine.DEB.2.21.2107061945460.7326@sd-119843.dedibox.fr>

On Wed, 7 Jul 2021, Tomasz Rola wrote:

> Well, when "everything" was small enough I really liked it. Nowadays
> there seems to be a trend of making Emacs into another OS, like with
> abomination we call the browser.

I don't think that's anything new.  "Great OS, where's the editor?" is a 
really old joke about EMACS.

-uso.

From cowan at ccil.org  Wed Jul  7 09:48:56 2021
From: cowan at ccil.org (John Cowan)
Date: Tue, 6 Jul 2021 19:48:56 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210706231659.GA13225@tau1.ceti.pl>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl>
Message-ID: <CAD2gp_Qmg85JRf78EBHb+8_eGf9+5q6pL6669pCJRgbWxTWBiQ@mail.gmail.com>

On Tue, Jul 6, 2021 at 7:17 PM Tomasz Rola <rtomek at ceti.pl> wrote:


> Oh. I think you just need to bath in Tao, sink deep and breathe it
> in. After that, words will form themselves out of the void and fall
> right into the void opened with editor, all without any effort on your
> side.


Well, yes.  But to achieve that state of effortlessness requires so much
effort!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210706/efff2542/attachment.htm>

From imp at bsdimp.com  Wed Jul  7 09:49:59 2021
From: imp at bsdimp.com (Warner Losh)
Date: Tue, 6 Jul 2021 17:49:59 -0600
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <alpine.DEB.2.21.2107061945460.7326@sd-119843.dedibox.fr>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl>
 <alpine.DEB.2.21.2107061945460.7326@sd-119843.dedibox.fr>
Message-ID: <CANCZdfrbLD4QNRfj8x+vKfMaXUOP86KWhxijNRVOWaTTqrq_gg@mail.gmail.com>

On Tue, Jul 6, 2021 at 5:48 PM Steve Nickolas <usotsuki at buric.co> wrote:

> On Wed, 7 Jul 2021, Tomasz Rola wrote:
>
> > Well, when "everything" was small enough I really liked it. Nowadays
> > there seems to be a trend of making Emacs into another OS, like with
> > abomination we call the browser.
>
> I don't think that's anything new.  "Great OS, where's the editor?" is a
> really old joke about EMACS.
>

There were even april fools day posts about booting vmunix.el...

Warner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210706/45006cc6/attachment.htm>

From tytso at mit.edu  Wed Jul  7 10:46:34 2021
From: tytso at mit.edu (Theodore Ts'o)
Date: Tue, 6 Jul 2021 20:46:34 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210706231659.GA13225@tau1.ceti.pl>
References: <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl>
Message-ID: <YOT5ajNhoUqyBqvi@mit.edu>

On Wed, Jul 07, 2021 at 01:17:00AM +0200, Tomasz Rola wrote:
> 
> Well, when "everything" was small enough I really liked it. Nowadays
> there seems to be a trend of making Emacs into another OS, like with
> abomination we call the browser.
> 
> https://www.emacswiki.org/emacs/EmacsApplicationFramework
> 
> As long as I am able to trim it during compilation, they may put
> whatever they want inside, but when I tried to unpack one of the
> latest browser source code, it took more than 2.5 gigabytes (I am not
> sure, it could have been a nightmare). I hope they will not apply this
> crazyness to Emacs. I hope Emacs version 23 will keep compiling for a
> while.

Well, the old joke was that emacs stood for "eight megabytes and
constantly swapping".  These days, sure, starting a fresh Emacs
version 27 process has a SIZE of 364 megabytes with an RSS of 78
megabytes.

OTOH, starting a fresh copy of Konsole (KDE's current terminal
emulator) has a SIZE 1383 megabytes with an RSS of 114 megabytes, and
the single Konsole process running all of my terminal windows has a
SIZE of 2160 megabytes (or just a touch over 2GB) with an RSS of 189
megabytes.

As a percentage of the 32 GB physical memory in my Desktop machine,
I'm not too worried about the memory consumption of either the
terminal windows or emacs, especially since the browser takes a lot
more memory.  These days, I run my browser in a container to limit its
physical memory usage to 12GB; systemd makes setting this up via a
user unit file really easy.  :-)

	      	      	      	    - Ted

# ~/.config/systemd/chrome.service
[Unit]
Description=Chrome Browser

[Service]
ExecStart=/usr/bin/google-chrome
KillMode=process
MemoryAccounting=true
MemoryMax=12G

P.S.  On my laptop I constrain the browser to only use 8GB, which just
means that if I keep huge numbers of tabs open, some of them might get
automatically killed and will have to get reloaded when I swtich back
to that tab.  Sure, this wouldn't fly on a PDP-11, but as long as I'm
more productive, I don't really worry about it.

From nevin at eviloverlord.com  Wed Jul  7 10:53:11 2021
From: nevin at eviloverlord.com (Nevin Liber)
Date: Tue, 6 Jul 2021 19:53:11 -0500
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <e111cdc6-dacb-17a0-d1ea-b540c0567738@case.edu>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <e111cdc6-dacb-17a0-d1ea-b540c0567738@case.edu>
Message-ID: <CAGg_6+PdeZNeN_c44TP5_rWD715v+UuEJjci9ogshsR4JgjNcQ@mail.gmail.com>

On Tue, Jul 6, 2021 at 9:12 AM Chet Ramey <chet.ramey at case.edu> wrote:

> On 7/6/21 1:10 AM, Nevin Liber wrote:
>
> > head isn't needed because we can already do it with the command line
> > options for sed.  That's the Unix way.
>
> Except, in this case, `head' came first.
>

While I may be mis-remembering, IIRC that wasn't true in System V Unix from
AT&T (which is where I was first exposed to it).
-- 
 Nevin ":-)" Liber  <mailto:nevin at eviloverlord.com>  +1-847-691-1404
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210706/5dbecff7/attachment.htm>

From ggm at algebras.org  Wed Jul  7 10:58:50 2021
From: ggm at algebras.org (George Michaelson)
Date: Wed, 7 Jul 2021 10:58:50 +1000
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <YOT5ajNhoUqyBqvi@mit.edu>
References: <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
Message-ID: <CAKr6gn2U_5uPXauFrHuwrH_1O0+Qki_PoWd0kqmJ8wkStZRePw@mail.gmail.com>

The emacs manual *printed, one-sided, bound to the desk with rods of
steel* which I read in the 1980s in leeds was one of the best
explanations of Virtual Memory I saw. I really struggled with the idea
of address segments, maps, the idea of address space being bigger than
physical memory (I think I drove a PhD student doing tutoring close to
tears on this in '79) but the Emacs manual said really clearly
up-front: "look, you can't address 32 bits of memory in "me" I only do
24, but this is how I do them, if you're interested"

The Vax VMS manual along side it (another 2 feet of single-sided
print) was probably as good, but more aimed at real engineers who
could think in RPN and had pocket protectors.

This was in a context where it was probably the go-to basis to try and
play with LISP because nobody really told you about any other REPL to
run in. I think even then I realised I wasn't going to ever want to
code a towers-of-hanoi, nor even really explore 24 bits of (virtual)
address space.

I hate the cult. I decided to re-learn the finger muscle memory, now I
can do bare-minimum in emacs for ORG and I think I'll go back to vi
where I belong. vi suffered from insufficient love. I had to stop
hating vim when it became the only real choice. (hate.. culty word,
that) VScode was interesting, as was Atom, and I suspect more than a
few people who code for a way of life here think this editor-wars
stuff is tedious.

I actually "think" in ed. I can't escape line-based semantic intent. I
carry my own personal koan which basically says "any algorithm which
needs more than 2 sentences or 1 screen of code to implement is
probably beyond you". Its a bit of a flaw.

On Wed, Jul 7, 2021 at 10:47 AM Theodore Ts'o <tytso at mit.edu> wrote:
>
> On Wed, Jul 07, 2021 at 01:17:00AM +0200, Tomasz Rola wrote:
> >
> > Well, when "everything" was small enough I really liked it. Nowadays
> > there seems to be a trend of making Emacs into another OS, like with
> > abomination we call the browser.
> >
> > https://www.emacswiki.org/emacs/EmacsApplicationFramework
> >
> > As long as I am able to trim it during compilation, they may put
> > whatever they want inside, but when I tried to unpack one of the
> > latest browser source code, it took more than 2.5 gigabytes (I am not
> > sure, it could have been a nightmare). I hope they will not apply this
> > crazyness to Emacs. I hope Emacs version 23 will keep compiling for a
> > while.
>
> Well, the old joke was that emacs stood for "eight megabytes and
> constantly swapping".  These days, sure, starting a fresh Emacs
> version 27 process has a SIZE of 364 megabytes with an RSS of 78
> megabytes.
>
> OTOH, starting a fresh copy of Konsole (KDE's current terminal
> emulator) has a SIZE 1383 megabytes with an RSS of 114 megabytes, and
> the single Konsole process running all of my terminal windows has a
> SIZE of 2160 megabytes (or just a touch over 2GB) with an RSS of 189
> megabytes.
>
> As a percentage of the 32 GB physical memory in my Desktop machine,
> I'm not too worried about the memory consumption of either the
> terminal windows or emacs, especially since the browser takes a lot
> more memory.  These days, I run my browser in a container to limit its
> physical memory usage to 12GB; systemd makes setting this up via a
> user unit file really easy.  :-)
>
>                                     - Ted
>
> # ~/.config/systemd/chrome.service
> [Unit]
> Description=Chrome Browser
>
> [Service]
> ExecStart=/usr/bin/google-chrome
> KillMode=process
> MemoryAccounting=true
> MemoryMax=12G
>
> P.S.  On my laptop I constrain the browser to only use 8GB, which just
> means that if I keep huge numbers of tabs open, some of them might get
> automatically killed and will have to get reloaded when I swtich back
> to that tab.  Sure, this wouldn't fly on a PDP-11, but as long as I'm
> more productive, I don't really worry about it.

From crossd at gmail.com  Wed Jul  7 11:57:38 2021
From: crossd at gmail.com (Dan Cross)
Date: Tue, 6 Jul 2021 21:57:38 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <YOSDmL7dCmy2KYGz@mit.edu>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
Message-ID: <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>

On Tue, Jul 6, 2021 at 12:25 PM Theodore Ts'o <tytso at mit.edu> wrote:

> On Tue, Jul 06, 2021 at 09:30:31AM -0400, Clem Cole wrote:
> > The basic idea of the original Unix was that was small and simple and in
> > Dennis' words, 'ran on modest hardware.'    The designers of UNIX also
> did
> > not try to solve any one particular problem but offered a set of tools
> for
> > a >>programmer<< take upon her/himself to do so.
> >
> > The issue is that the target >>user<< of UNIX had devolved from that of a
> > 'programmer' but rather the elusive 'end user' and her/his
> > view/requirements tend to be "solve my problem now -- I don't care how -
> > just do it I don't want to think about it - make it go away."   So over
> > time, we hid a lot of the simplicity in features that were built on
> > features (often warts) that were built on other features (often other
> > warts).
>
> I'd go even farther than that.  Hardware is no longer as modest, or as
> simple.  And even if the target user is still the "programmer" it may
> not be the case that worked well wtih the hardware and the problems of
> 50+ years ago is in fact that best answer today.  Including, for
> example, the claim that everything should be represented in terms of a
> byte stream and/or a file.
>
> I'll refer people to the former FreeBSD core team member and currrent
> FreeBSD developer, Benno Rice's presentation from linux.conf.au 2020,
> "What UNIX Cost Us":
>
>         https://www.youtube.com/watch?v=9-IWMbJXoLM


Interestingly, much of this is kind of the point I was trying to make
earlier: many of the problems are different now. Trying to force them into
a metaphor that made sense for the problems that were primary 40 years ago
can lead to awkward and inefficient solutions. It doesn't always have to,
but sometimes it does.

"Everything is a file" and "files are streams of bytes" was great for
approaching so many of the sorts of problems that were interesting in the
1970s and 80s. Now days, there are whole new types of problems that don't
fit into that model easily; is that the fault of the problem, or a
suggestion that we need to expand our model and reexamine the basic
structure of our systems? Even, to some extent, the notion of a global
hierarchical file namespace has broken down. Now, I want to be able to
partition and organize datasets across multiple dimensions and across
multiple machines and group things on an ad hoc basis; it's all very
dynamic, and by comparison the model of a 7th Edition filesystem is static
and downright limited.

Fork is another great example: it went in because a) Ken knew about it, and
b) it was easy to implement (22 instructions of PDP-7 assembler or
something) and c) it got the job done. After the fact, it turned out to
have all kinds of neat properties that let it compose with pipelines,
redirection, background jobs, etc. That model for process management served
well for a long time. But then people wanted to have multithreaded
processes, because it turns out that independent threads of execution
inside of a shared address space are an excellent mechanism for
representing concurrency. But they discovered that fork composes poorly
with threads: the problem space changed and the model broke down.

Btw, Benno Rice is entertaining to watch, and I enjoy his presentations.
His talk on COBOL is also interesting, and I would argue somewhat relevant:
https://www.youtube.com/watch?v=BCqGjGzWI48

> I was commenting on the OPs post of the paper picking on UNIX, the UNIX
> > Shell, and where we are today *vs.* 50+ years ago.  My other point is the
> > authors need to get over themselves and recognize that* they are not
> making
> > a really new argument*.    Folks were not too happy with many of the BSD
> > 'features' either, but now those same features (like head(1) or BSD
> sockets(3))
> > are considered SOP for nay new UNIX and you have to have them - even if
> > there are other if not 'better' ways of doing the same thing.
>
> And if the Unix patriaches were perhaps mistaken about how useful
> "head" might be and whether or not it should have been considered
> verboten, perhaps there is something to the claim that extreme
> simplicity and forcing everything to implement in terms of the
> smallest, simplest operations, might not make sense.  After all, taken
> to extreme, if simplicity is the only good, then instead of Intel
> CPU's, or PDP-11's, maybe we should be programming everything in terms
> of a Turing Computer --- after all, "small is beautiful" and even a
> PDP-11 is unnecessary complexity.  :-)
>
> Or maybe not.
>
> One of Benno's claims is even the Unix philosophy, when taken to
> extremes, can be as much of an ideology as say, Fundamentalist
> Christianity.  My Episcopalean roots may be showing, but the words of
> Scripture (or the writings of the Unix Patriarchs) is not the only
> source of truth; and Tradition by itself is also not enough; we also
> need to apply our own Reason and Experience.
>

I don't know that the "Unix Patriarchs" ever suggested or intended that
"head" was "verboten" or that programs be forced into their smallest,
simplest expression. To continue your sectarian metaphor, that's an extreme
interpretation of the early church's teachings regarding its scripture.

I tend to think of these things as schools of art, rather than religious
orders. Much of what we think of as "Unix" carries with it an implicit
allegiance to a class of aesthetics: file namespaces and byte streams are
great examples. We claim our way is better, but if you sort of squint at it
right, you can kinda-sorta imagine a Unix system as an image based language
environment, where the "image" is the filesystem and running kernel
instance, and the REPL is the shell. Is it so different, then, than
Smalltalk or a Lisp? In some sense, no, it's not. Instead of CONS cells
making lists, I have streams of bytes, but in some regard that's just an
aesthetic thing: it's my fundamental building block, but it's just a
building block and all systems have building blocks.

But like the art world, is it any wonder that the big arguments are over
minutia? The question you asked me earlier, about whether System V is
"really Unix" isn't so dissimilar from the questions over whether Common
Lisp was "really Lisp". Similarly, discarding "head" for the generality of
"seq 10q" is an aesthetic statement, not a matter of engineering principle.

Rob Pike in a black turtleneck espousing the benefits of simplistic
minimalism as an end unto itself is an exponent of that school, but there
are other schools, as Benno reminds us.

The challenge for the new generation of artists is to absorb what's come
before and create something new. If they draw from many schools, that's
fine. What perhaps irks so many of us is that the school is changing, and
without full appreciation of the aesthetics of existing canon. "It is sad,
this state of affairs. Look how ugly is the systemd!" "But Dan...your
/etc/rc is so 1970s." "Yes! See the beauty! Perceive it!" "You are old." "I
weep for you."

The question I'm asking is if the kids are reaching far enough.

        - Dan C.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210706/14334180/attachment.htm>

From lm at mcvoy.com  Wed Jul  7 12:48:20 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Tue, 6 Jul 2021 19:48:20 -0700
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAKr6gn2U_5uPXauFrHuwrH_1O0+Qki_PoWd0kqmJ8wkStZRePw@mail.gmail.com>
References: <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
 <CAKr6gn2U_5uPXauFrHuwrH_1O0+Qki_PoWd0kqmJ8wkStZRePw@mail.gmail.com>
Message-ID: <20210707024820.GN10781@mcvoy.com>

On Wed, Jul 07, 2021 at 10:58:50AM +1000, George Michaelson wrote:
> I actually "think" in ed. 

I think in pic, I can look at pic code and see what it will draw.
To me, pic is one of the best things that came out of Bell Labs.
Unix is awesome, no doubt.  But for the essence of small but you
can see what it will do, pic is greater than ed.  No disrespect
to ed, I've spent a pile of time in ed.

From lm at mcvoy.com  Wed Jul  7 12:52:44 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Tue, 6 Jul 2021 19:52:44 -0700
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
Message-ID: <20210707025244.GO10781@mcvoy.com>

On Tue, Jul 06, 2021 at 09:57:38PM -0400, Dan Cross wrote:
> Fork is another great example: it went in because a) Ken knew about it, and
> b) it was easy to implement (22 instructions of PDP-7 assembler or
> something) and c) it got the job done. After the fact, it turned out to
> have all kinds of neat properties that let it compose with pipelines,
> redirection, background jobs, etc. That model for process management served
> well for a long time. But then people wanted to have multithreaded
> processes, because it turns out that independent threads of execution
> inside of a shared address space are an excellent mechanism for
> representing concurrency. 

http://lkml.iu.edu/hypermail/linux/kernel/0106.2/0405.html

I wasn't completely right 20 years ago but I was close.  I'm tired,
if you want to know where I'm wrong, ask and I'll tell you how I
tried to get Linus to fix it.

In general, Rob was on point.  He usually is.

From andreww591 at gmail.com  Wed Jul  7 15:19:37 2021
From: andreww591 at gmail.com (Andrew Warkentin)
Date: Tue, 6 Jul 2021 23:19:37 -0600
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210707025244.GO10781@mcvoy.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <20210707025244.GO10781@mcvoy.com>
Message-ID: <CAD-qYGpHiPuEv3=Ow7NoRCkj6gk3zJ525AZooD4Nd_=dEL5HkA@mail.gmail.com>

On 06/07/2021, Larry McVoy <lm at mcvoy.com> wrote:
>
> http://lkml.iu.edu/hypermail/linux/kernel/0106.2/0405.html
>
> I wasn't completely right 20 years ago but I was close.  I'm tired,
> if you want to know where I'm wrong, ask and I'll tell you how I
> tried to get Linus to fix it.
>
> In general, Rob was on point.  He usually is.
>

I've never been a fan of clone(). It always strikes me as something
that seems like an elegant simplification at first, but the practical
realization (on Linux that is) requires several rather ugly
library-level hacks to make it work right for typical use cases.

UX/RT will use the "processes are containers for threads" model rather
than rfork()/clone() since that's the model the seL4 kernel basically
uses (in a very generalized form with address spaces , capability
spaces, and threads being separate objects and each thread being
associated with a capability space and address space), and it would
also be slightly easier to create the helper threads that will be
required in certain parts of the IPC transport layer.

The base process creation primitive (efork(), for "empty/eviscerated
fork") will create a completely blank non-runnable child process with
no memory mappings or file descriptors, and return a context FD that
the parent can use to manipulate the state of the child with normal
APIs, including copying FDs and memory mappings. To actually start the
child the parent will perform an exec*() within the child context
(either a regular exec*() to make the child run a different program,
or a new eexec() function that takes an entry point rather than a
command line to run the process with whatever memory mappings were set
up), after which point the parent will no longer be able to manipulate
the child's state.

This will eliminate the overhead of fork() for spawning processes
running other programs, but will still allow for a library-level
fork() implementation that has comparable overhead to traditional
implementations. Also, it will do what Plan 9 never did and make the
process/memory APIs file-oriented (I still don't get why Plan 9 went
with a rather limited anonymous memory API rather than using
memory-mapped files for everything).

Also, we're straying a bit from historical Unix here and should have
probably moved to COFF several messages ago.

From chet.ramey at case.edu  Wed Jul  7 23:08:10 2021
From: chet.ramey at case.edu (Chet Ramey)
Date: Wed, 7 Jul 2021 09:08:10 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAGg_6+PdeZNeN_c44TP5_rWD715v+UuEJjci9ogshsR4JgjNcQ@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <e111cdc6-dacb-17a0-d1ea-b540c0567738@case.edu>
 <CAGg_6+PdeZNeN_c44TP5_rWD715v+UuEJjci9ogshsR4JgjNcQ@mail.gmail.com>
Message-ID: <66830aa6-218d-7728-1652-98d765bf06a7@case.edu>

On 7/6/21 8:53 PM, Nevin Liber wrote:
> On Tue, Jul 6, 2021 at 9:12 AM Chet Ramey <chet.ramey at case.edu 
> <mailto:chet.ramey at case.edu>> wrote:
> 
>     On 7/6/21 1:10 AM, Nevin Liber wrote:
> 
>      > head isn't needed because we can already do it with the command line
>      > options for sed.В  That's the Unix way.
> 
>     Except, in this case, `head' came first.
> 
> 
> While I may be mis-remembering, IIRC that wasn't true in System V Unix from 
> AT&T (which is where I was first exposed to it).

This came up on the list last week. Joy wrote `head' while using 6th
Edition systems at Berkeley; `sed' first appeared in the 7th Edition.


-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet at case.edu    http://tiswww.cwru.edu/~chet/

From dot at dotat.at  Wed Jul  7 23:54:42 2021
From: dot at dotat.at (Tony Finch)
Date: Wed, 7 Jul 2021 14:54:42 +0100
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210706231659.GA13225@tau1.ceti.pl>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl>
Message-ID: <ad9ae36b-5548-1174-31f3-5e4a533efa8@dotat.at>

Tomasz Rola <rtomek at ceti.pl> wrote:
>
> Not quite a Unix-lookalike, but AmigaDOS was a mix of ideas - named
> volumes (a bit) like in CP/M, multitasking (a bit) like in Unix (but
> on my model, I only had M68K and no memory protection), command line
> tools allowing for batch programming more sophisticated than what
> MSDOS had on table (well, I really never got to the point of abusing
> this).

The more unixy parts of AmigaDOS came from TRIPOS
https://www.pagetable.com/?p=193
https://en.wikipedia.org/wiki/TRIPOS

TRIPOS was originally developed by a team led by Martin Richards, who had
previously developed BCPL.

> Also, Aztec C came with a suite of programs resembling what I
> could later find on Unix: cc, ld, make, ar and few others I forgot.

Also true for the Acorn / Norcroft ARM C Compiler on the Archimedes, which
was my first contact with unix-like tools :-)

Tony.
-- 
f.anthony.n.finch  <dot at dotat.at>  https://dotat.at/
Northwest Fitzroy, Sole: Northwesterly 4 or 5, occasionally 6 at
first, backing westerly or southwesterly 3 or 4 later. Moderate,
occasionally rough at first. Showers. Good, occasionally moderate.


From rich.salz at gmail.com  Thu Jul  8 01:15:51 2021
From: rich.salz at gmail.com (Richard Salz)
Date: Wed, 7 Jul 2021 11:15:51 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <66830aa6-218d-7728-1652-98d765bf06a7@case.edu>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <e111cdc6-dacb-17a0-d1ea-b540c0567738@case.edu>
 <CAGg_6+PdeZNeN_c44TP5_rWD715v+UuEJjci9ogshsR4JgjNcQ@mail.gmail.com>
 <66830aa6-218d-7728-1652-98d765bf06a7@case.edu>
Message-ID: <CAFH29trfhEkaZcSHhteuuGDSSWFfGF0BU68crNe-Qw7wpwvEKQ@mail.gmail.com>

> > While I may be mis-remembering, IIRC that wasn't true in System V Unix
> from
> > AT&T (which is where I was first exposed to it).
>
>
According to
http://bitsavers.trailing-edge.com/pdf/att/3b1/999-801-312IS_ATT_UNIX_PC_System_V_Users_Manual_Volume_1.pdf
and
https://archive.org/details/bitsavers_attunixSystemVRelease4ProgrammersReferenceManual19_55505648/page/n13/mode/2up
there is no 'head' command.  So Nevin's experience is accurate.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210707/3d9fd6f8/attachment.htm>

From jon at fourwinds.com  Thu Jul  8 04:28:42 2021
From: jon at fourwinds.com (Jon Steinhart)
Date: Wed, 07 Jul 2021 11:28:42 -0700
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
Message-ID: <202107071828.167ISgdN2686558@darkstar.fourwinds.com>

Dan Cross writes:
>
> Interestingly, much of this is kind of the point I was trying to make
> earlier: many of the problems are different now. Trying to force them into
> a metaphor that made sense for the problems that were primary 40 years ago
> can lead to awkward and inefficient solutions. It doesn't always have to,
> but sometimes it does.
>
> "Everything is a file" and "files are streams of bytes" was great for
> approaching soВ many of the sorts of problems that were interesting in the 1970s
> and 80s. Now days, there are whole new types of problems that don't fit into
> that model easily; is that the fault of the problem, or a suggestion that we
> need to expand our model and reexamine the basic structure of our systems?
> Even, to some extent, the notion of a global hierarchical file namespace has
> broken down. Now, I want to be able to partition and organize datasets across
> multiple dimensions and across multiple machines and group things on an ad hoc
> basis; it's all very dynamic, and by comparison the model of a 7th Edition
> filesystem is static and downright limited.

Been trying hard to resist but here goes...

On the snarky side, yeah, problems are different now, and the shell paper
is a great example.  Such a bad paper winning a best paper award from
the ACM illustrates how the profession just ain't what it used to be.
I would claim that a large chunk of "software engineering" today involves
trying to build environments that minimize the amount of harm that can
be done by under-skilled practitioners.  I have difficulty envisioning
success as there's a heavy focus on memory management which to me is a
great competency test.  Just because one is coddled and can't corrupt
memory doesn't mean that the the remainder of their code is correct.
These things go hand-in-hand.

I'm going to stick my neck out and claim that to a large degree we're the
victims of our own success.  When I was writing my book, Clem pointed
out to me that a big assumption that Stallman made was that people
who would contribute to open source software would be of his caliber.
I don't think that he ever thought that we'd get to the point where
every programming class project would be published online and reused by
others without much inspection.  To me it's analogous to what happened
with MIDI when one could make "music" without having suffered for their
art like their predecessors.  Just decreased the signal-to-noise ratio
for me and made it much more cumbersome to find music that I liked.

Many of the problems that people seem to be trying to solve today are
of our own making.  I don't see the benefit of Linux distributions
being incompatible in annoying ways.  If each distro didn't put things
in different places for no discernible reason, we wouldn't need to
be putting as much non-productive energy into tools for deployment.
Likewise if there was any rhyme or reason for what's in what library
and more attention to API design and stability.  I kinda have to go
back to my 1989 Usenix panel session; given the choice between having a
good base and covering up a bad base with a pile of other code I choose
the first.  Sure, if we make stuff with tons of preventable dependencies
then we have to work with that, but I'd rather not have the problem in
the first place.

Another one - I recall when a lot of work went into making it possible
to link C and FORTRAN programs.  Instead of continuing along that path,
now we have multiple systems (PHP, Python, Perl, Java, ...) that have
each written their own libraries for everything.  To me, I would
have preferred to have a single set of libraries and the ability
to link.  Aside from the enormous waste of person-hours, there is a
huge non-intersecting set of bugs.  In theory we'd have fewer bugs
if more people were using the same libraries.  And better programmer
portability too.

I'm often surprised when people claim that the UNIX philosophy no
longer works.  I've been told "pipes only work for ASCII data" and have
gotten blank looks when I respond with "ImageMagick seems to work fine".
And "you can't do modern web crud" but then along came things like "jq".

To me, the UNIX philosophy beats the big monolithic program philosophy
every time.  Sure, these two don't interact when big monolithic programs
are crafted such that they don't play well with others but that's not
the fault of the UNIX philosophy, it's the fault of the monolithic
program design.  Watch Matt Blaze's 2016 congressional testimony if
you haven't already done so.  He makes a great case that we know that
we can't prove program correctness despite trying to do so since the
beginning of time, so the best security comes from simplicity which
minimizes the number of attack surfaces.

So rather than saying that the UNIX philosophy no longer works, how
about giving some serious thought to how to do what you want to do in
the context of the philosophy?  In particular, how to you extend the
existing tool set to accomplish your purpose instead of just throwing up
your hands and creating more big monolithic non-interoperable packages?
Certainly the first is harder, but lasts longer and tastes great too.
A question that I asked in my book was why ~0% of the 1200 pages of
"Inside Macintosh" from 1985 are used today compared to ~100% of the
323 pages of UNIX V6 from 1975.  My answer is "abstractions".  I don't
see any of the "modern packages" having that level of staying power.

There is a lot more to the UNIX philosophy than "Everything is a file"
and "files are streams of bytes"; it's a mindset.  I have no problem with
model expansion and structure reexamination.  But piling poorly thought
out crap on top of other poorly thought out crap isn't a solution to me.
What new problems are you trying to solve and what are the appropriate
abstractions (and how much of this was done in Plan 9 and ignored)?

Haven't thought about this in forever as it's several lifetimes ago.
Once upon a time I was responsible for implementing GKS (the useless
ISO Graphical Kernel System) on a workstation project and was
participating in the ANSI standardization effort.  At the time, there
was another standard (PHIGS - Programmer's Hierarchical Interface
to GraphicS) in the works; I remember asking why.  The answer was
that there was no way to add segment hierarchy and editing to GKS in a
compatible way.  In reality, the folks just wanted to do their own thing;
they were furious when I published a paper on how to easily add that
functionality to GKS.  It's easy to say that something can't be done;
harder to put in some serious thought to figure out how it can be done.

Bottom line is, just read the news.  Is today's software methodology
working?  Does the fact that Facebook is funding a PR campaign to
convince people that privacy breaches are normal tell you anything?
There's a lot of similarity between modern software and the Surfside
condo; shiny stuff on top of a crumbling foundation is bound to fail.
In lectures these days, I'm asking the question "We haven't managed
to off more than a thousand or so people at a time with a software bug
yet so what's going to be software's Union Carbide Bhopal moment?"

Jon Steinhart

P.S.  On another topic, GUIs were the killer app for threads.  Sure, I would
      much prefer faster process context switching.  Still waiting for that.

From rtomek at ceti.pl  Thu Jul  8 04:32:22 2021
From: rtomek at ceti.pl (Tomasz Rola)
Date: Wed, 7 Jul 2021 20:32:22 +0200
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <YOT5ajNhoUqyBqvi@mit.edu>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
Message-ID: <20210707183222.GA9897@tau1.ceti.pl>

On Tue, Jul 06, 2021 at 08:46:34PM -0400, Theodore Ts'o wrote:
> On Wed, Jul 07, 2021 at 01:17:00AM +0200, Tomasz Rola wrote:
> > 
[...]
> > https://www.emacswiki.org/emacs/EmacsApplicationFramework
[...]
> > 
> 
> Well, the old joke was that emacs stood for "eight megabytes and
> constantly swapping". 

Yeah, during my 486 days it was indeed doing stuff with disk. But I
was too happy to have this "workstation lookalike" running "Unix
lookalike" installed from dozens of floppies so I did not complained
about some minor problems.

> These days, sure, starting a fresh Emacs
> version 27 process has a SIZE of 364 megabytes with an RSS of 78
> megabytes.
> 
> OTOH, starting a fresh copy of Konsole (KDE's current terminal
> emulator) has a SIZE 1383 megabytes with an RSS of 114 megabytes, and
> the single Konsole process running all of my terminal windows has a
> SIZE of 2160 megabytes (or just a touch over 2GB) with an RSS of 189
> megabytes.

An excerpt from my ps:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

xxxek      576  0.0  0.2 283392 34172 pts/122  SNl  Jun29   0:06 emacs

xxxek    23684  0.3  1.7 379624 211872 pts/21  SN   Jul03  22:06 emacs /ho

xxxon    12331 12.5 20.4 5898360 2519640 ?     TNsl Mar29 18278:11 firefox-esr

xxxon     3553  0.0  1.2 218028 150656 pts/67  TN   Jun30   0:24 dillo

xxxek    12588  0.0  0.0  38108   752 pts/183  T     2020   0:00 lynx -nocolor -force-html /ho

xxxek     6785  0.0  0.0 310580 10052 pts/22   Sl    2020  41:51 roxterm

xxxek     5321  0.0  0.0 102712  1456 tty2     S     2020   1:56 rxvt -bg Black

xxxek     5322  0.0  0.0  66784  1988 tty2     S     2020 165:48 xterm -bg

xxxek     5596  0.0  0.0  21608   536 pts/121  S+    2020   1:35 /usr/bin/screen


Emacs ver.23, firefox ver. "very old". I do not trust my browsers too
much, so when I go to sleep they go to STOP freeze. The second emacs
is editing my pathetic########glorious######## wiki with org-mode,
file length about 55 megabytes, with unicodes, so the rss is multiple
of file size. I have long ago replaced konsole with roxterm. As you
can see, it eats nowhere near a gigabyte. And it does not read a whole
disk when starting. It usually goes with three tabs opened, so maybe
in your case memsize would have been bigger. I make a lot of use with
virtual desktops offered by fvwm, and when I need terminal on one of
those desktops (I usually do), I open some rxvt variation; position,
resize and keep it there for further use.

As I have only 12gigs of ram and more than half goes to ramdisk
(always doing something there, including compiling huge piles of code
from the net), so I have to keep an eye on firefox. When it goes above
2.9g of rss I usually start to fret and kill unneeded tabs. I set it
up to use only two or three fonts and completely disregard
author-provided fonts. So far, so good. Ah, and I use noscript,
too. Yet despite of all those precautions, I have to kill -STOP it,
because the mere thought that it will keep eating 50-90% of cpu while
doing nothing, well, this drives me up the wall. Likewise, back in the
past, when I saw how *idle* program (firefox) constantly wrote *gigs*
of bytes to my disk, I simply went mad. Long story short, now it only
can write to temporary place in ramdisk. It still does not stop it
from opening multiple files on disk in /tmp, deleting them and keeping
opened/deleted forever, using up my precious ram. It sometimes closes
those files, but not very often.

I usually open new pages in dillo, w3m or lynx (or curl) and use
firefox when nothing else would do. Not perfect solution - dillo has
some memory problem, so I usually have many of them opened and slash
those who grow too much. Like, 300megs for dillo is enough. Read up
all the tabs in it and kill. And it seems I have (pidof lynx|wc -w)
170 lynx processes, all kill-stopped and awaiting my
attention. Craps. Chances are I did not stopped being mad. At least
Unix command line tools allow me to measure it.

> As a percentage of the 32 GB physical memory in my Desktop machine,
> I'm not too worried about the memory consumption of either the
> terminal windows or emacs, especially since the browser takes a lot
> more memory.  These days, I run my browser in a container to limit its
> physical memory usage to 12GB; systemd makes setting this up via a
> user unit file really easy.  :-)
> 
> 	      	      	      	    - Ted
> 
> # ~/.config/systemd/chrome.service
> [Unit]
> Description=Chrome Browser
> 
> [Service]
> ExecStart=/usr/bin/google-chrome
> KillMode=process
> MemoryAccounting=true
> MemoryMax=12G

Now I am happy that I do not use systemd. Now I want to find more time
and migrate to OpenBSD. I really do (I know there are some Linux
distros which evaded systemd - for a while, but I consider a whole
Linux land to be lost already, just a matter of time, and I foresee
that OpenBSD will fall as the very last, if ever). I will sleep less
and program more. I will rewrite all my old python2x scripts in r7rs
scheme. Not really so many. Fruits of hard work shall be sweet and
plentiful.

12g for a browser. I am not criticising you, but I could say a bit
about people who made programs and websites contributing to such
sizes. 

-- 
Regards,
Tomasz Rola

--
** A C programmer asked whether computer had Buddha's nature.      **
** As the answer, master did "rm -rif" on the programmer's home    **
** directory. And then the C programmer became enlightened...      **
**                                                                 **
** Tomasz Rola          mailto:tomasz_rola at bigfoot.com             **

From michael at kjorling.se  Thu Jul  8 06:50:51 2021
From: michael at kjorling.se (Michael =?utf-8?B?S2rDtnJsaW5n?=)
Date: Wed, 7 Jul 2021 20:50:51 +0000
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <20210707183222.GA9897@tau1.ceti.pl>
References: <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
 <20210707183222.GA9897@tau1.ceti.pl>
Message-ID: <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>

On 7 Jul 2021 20:32 +0200, from rtomek at ceti.pl (Tomasz Rola):
> An excerpt from my ps:
> 
> USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
> 
> xxxon    12331 12.5 20.4 5898360 2519640 ?     TNsl Mar29 18278:11 firefox-esr

I'm going to stick my neck out here by saying that the VSZ and RSS
values reported by ps, at least for Firefox, are largely meaningless.

I started my usual Firefox instance, which has a handful of plugins,
about a metric gazillion bookmarks, and has been my main web browser
profile for years (so it probably has collected some crud over time).
`ps auxw` reported that process as having a total RSS of a whopping
374 GB.

It is downright _impossible_ that Firefox could actually be using that
amount of volatile memory, because my system has "only" 32 GB RAM + 64
GB swap. The root file system, which on my system also holds the likes
of /usr/{bin,lib}, totals 29701 MB used according to `df -m`, plus ~
totals 22550 MB, so even if Firefox read _all_ of that into memory it
still wouldn't be anywhere _close_ to the reported RSS value, falling
short by about a factor 7x (and Firefox has no reason to even look at
much of what's there, like the 2.5 GB in /usr/share/games/flightgear).

While that Firefox instance was running, I ran `free -m`, which
reported 250 MB swap used (65285 MB free) and 26008 MB "memory
available". Very soon after closing Firefox (and soon enough to try to
ensure that nothing else major changed), I ran `free -m` again, which
then reported the same 250 MB swap used and a slightly larger 26298 MB
memory available; a difference of 290 MB between when Firefox was
running and when it was not.

That's a _factor almost 2300x_ difference between the reported RSS,
and the amount of memory that was actually freed up by closing the
browser.

The same experiment done with a brand-new browser profile gave a total
RSS of 751 GB for Firefox's processes combined, while free reports a
difference of 321 MB between running and not-running. That's within
striking distance of a factor 2400x difference.

Does this mean that software bloat isn't an issue? I would argue that
it does not. Does it mean that Firefox can't have, say, memory leaks,
causing it to over time have more memory allocated than it actually
uses? It does not; and in fact I believe that's something that has
been worked on over the years. But I think it's worth trying to be
honest about all this, and at least _try_ to not compare apples to
stars just because both resemble oblate spheroids and exert
gravitational influence. On modern systems, with everything from
shared libraries to memory-mapped I/O to routine use of memory
overcommitting, the resident set size is clearly a poor indicator of
the actual amount of memory actively used by a complex process.

-- 
Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se
 “Remember when, on the Internet, nobody cared that you were a dog?”


From rtomek at ceti.pl  Thu Jul  8 16:46:53 2021
From: rtomek at ceti.pl (Tomasz Rola)
Date: Thu, 8 Jul 2021 08:46:53 +0200
Subject: [TUHS] Overgrown ffox (was: The Unix shell: a 50-year view)
In-Reply-To: <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>
References: <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
 <20210707183222.GA9897@tau1.ceti.pl>
 <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>
Message-ID: <20210708064652.GA19675@tau1.ceti.pl>

On Wed, Jul 07, 2021 at 08:50:51PM +0000, Michael KjГ¶rling wrote:
> On 7 Jul 2021 20:32 +0200, from rtomek at ceti.pl (Tomasz Rola):
> > An excerpt from my ps:
> > 
> > USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
> > 
> > xxxon    12331 12.5 20.4 5898360 2519640 ?     TNsl Mar29 18278:11 firefox-esr
> 
> I'm going to stick my neck out here by saying that the VSZ and RSS
> values reported by ps, at least for Firefox, are largely meaningless.
> 
> I started my usual Firefox instance, which has a handful of plugins,
> about a metric gazillion bookmarks, and has been my main web browser
> profile for years (so it probably has collected some crud over time).
> `ps auxw` reported that process as having a total RSS of a whopping
> 374 GB.
> 
> It is downright _impossible_ that Firefox could actually be using that

This is quite strange for me. Without looking at your system I can only
suspect it has something to do with multithreading.

If I do two different commands as root, with firefox pid here
.eq. 12331, as above:

=>  (500 15):    lsof -p 12331 | wc -l
402

=>  (500 17):   lsof | awk '$2==12331' | wc -l
22055

The first column gives a name, and in second case it not always is
'firefox'. I am yet to study manpage for lsof and play with it, but it
surely shows interesting things.

On my system, when firefox gets killed, 'free' shows a difference - if
I recall, free mem increases by the size of rss plus all the stuff
which was opened and released from buffers. I did not pay much
attention, I assumed numbers would match and this is what they
probably did :-).

OS on my box used to report to me as Debian, and still does, but some
years ago I have decided to skip the usual system upgrade, and after
some more time I started to upgrade various elements by hand. So it is
more like a tattered patchwork right now. But it does what I expect,
hopefully.

[...]
> That's a _factor almost 2300x_ difference between the reported RSS,
> and the amount of memory that was actually freed up by closing the
> browser.

Yeah, strange.

[...]
> On modern systems, with everything from shared libraries to
> memory-mapped I/O to routine use of memory overcommitting, the
> resident set size is clearly a poor indicator of the actual amount
> of memory actively used by a complex process.

Hard to tell - first I would like to learn where the hundred-giga rss
came from...

-- 
Regards,
Tomasz Rola

--
** A C programmer asked whether computer had Buddha's nature.      **
** As the answer, master did "rm -rif" on the programmer's home    **
** directory. And then the C programmer became enlightened...      **
**                                                                 **
** Tomasz Rola          mailto:tomasz_rola at bigfoot.com             **

From dfawcus+lists-tuhs at employees.org  Thu Jul  8 23:59:57 2021
From: dfawcus+lists-tuhs at employees.org (Derek Fawcus)
Date: Thu, 8 Jul 2021 14:59:57 +0100
Subject: [TUHS] Overgrown ffox (was: The Unix shell: a 50-year view)
In-Reply-To: <20210708064652.GA19675@tau1.ceti.pl>
References: <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
 <20210707183222.GA9897@tau1.ceti.pl>
 <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>
 <20210708064652.GA19675@tau1.ceti.pl>
Message-ID: <YOcE3fre5cUTt6Br@clarinet.employees.org>

On Thu, Jul 08, 2021 at 08:46:53AM +0200, Tomasz Rola wrote:
> On Wed, Jul 07, 2021 at 08:50:51PM +0000, Michael KjГ¶rling wrote:
> > On 7 Jul 2021 20:32 +0200, from rtomek at ceti.pl (Tomasz Rola):
> > > An excerpt from my ps:
> > > 
> > > USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
> > > 
> > > xxxon    12331 12.5 20.4 5898360 2519640 ?     TNsl Mar29 18278:11 firefox-esr
> > 
> > I'm going to stick my neck out here by saying that the VSZ and RSS
> > values reported by ps, at least for Firefox, are largely meaningless.

Or does it depend upon the OS?  From a mac instance:

$ ps -u 502 -o vsz,rss,ucomm,command|fgrep Firefox-78esr.app|awk '$3!="fgrep" {print int($1/1024),int($2/1024),$3}'
10113 189 firefox
5564 73 plugin-container
6051 46 plugin-container
6129 56 plugin-container
5487 55 plugin-container
5619 53 plugin-container
7201 49 plugin-container
6852 60 plugin-container
5876 62 plugin-container
6247 56 plugin-container
6050 13 plugin-container
6055 9 plugin-container

The display from Activity Monitor, which one would assume better presents
the mach VM gives for the 'firefox' process:

Real Memory ~ 171M
Private Memory ~ 80M
Shared Memory ~ 85M
Memory ~ 1.05G

and when inspected a Virtual Memory size of ~ 9.8 G but Real memory size of ~ 170M

Whereas a linux instance (viewing different pages) of 89.0.2 gives:

$ ps -u 100 -o vsx,rss,ucomm,command|fgrep firefox|awk '$3!="grep" {print int($1/1024),int($2/1024),$3}'
3147 356 firefox
2699 200 Web
2522 99 WebExtensions
3271 219 Web
2642 181 Web
2511 105 Web
2489 73 Web

and yeah - it does 'leak' as the main firefox process sitting 'idle' has now become:

3190 346 firefox

So there are defintitly issues in mapping the current use of various types
of memory to a simple display format.

DF

From steffen at sdaoden.eu  Fri Jul  9 05:25:38 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Thu, 08 Jul 2021 21:25:38 +0200
Subject: [TUHS] Overgrown ffox (was: The Unix shell: a 50-year view)
In-Reply-To: <YOcE3fre5cUTt6Br@clarinet.employees.org>
References: <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
 <20210707183222.GA9897@tau1.ceti.pl>
 <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>
 <20210708064652.GA19675@tau1.ceti.pl>
 <YOcE3fre5cUTt6Br@clarinet.employees.org>
Message-ID: <20210708192538.jpOvc%steffen@sdaoden.eu>

Derek Fawcus wrote in
 <YOcE3fre5cUTt6Br at clarinet.employees.org>:
 |On Thu, Jul 08, 2021 at 08:46:53AM +0200, Tomasz Rola wrote:
 |> On Wed, Jul 07, 2021 at 08:50:51PM +0000, Michael KjГ¶rling wrote:
 |>> On 7 Jul 2021 20:32 +0200, from rtomek at ceti.pl (Tomasz Rola):
 |>>> An excerpt from my ps:
 |>>> 
 |>>> xxxon    12331 12.5 20.4 5898360 2519640 ?     TNsl Mar29 18278:11 \
 |>>> firefox-esr
 |>> 
 |>> I'm going to stick my neck out here by saying that the VSZ and RSS
 |>> values reported by ps, at least for Firefox, are largely meaningless.
 |
 |Or does it depend upon the OS?  From a mac instance:
 ...
 |So there are defintitly issues in mapping the current use of various types
 |of memory to a simple display format.

Another thing is that, when i used it, Mac command line tools did
not take care about exit status (as in "succeed though they should
not") or know about job signals.
But it is not only Mac, take iwd again, iwctl('s display handling)
definetely is buggy in respect to handling of SIGCONT after
a TSTP.  (Ie the screen starts scrolling line-wise but no display
is ever refreshed.)

Regarding the thing, here this seems pretty much fine for RSS.

  root      1454  0.0  0.0   7912  2480 ?        S    21:03   0:00 /bin/bash /x/pub/box-web.sh browse firefox
  root      1456  0.0  0.0   3012  2032 ?        S    21:03   0:00 /usr/bin/doas -u steffen /box.firefox
  steffen   1457  0.0  0.0   2384   700 ?        S    21:03   0:00 /bin/sh - /box.firefox
  steffen   1458 31.2  3.7 3029004 299700 ?      Sl   21:03   0:04 firefox --no-remote
  steffen   1545  4.0  1.3 2421200 108196 ?      Sl   21:03   0:00 /usr/lib/firefox/firefox-bin -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 244806 -parentBuildID 20210614221319 -appdir /usr/lib/f
  steffen   1583  2.2  1.1 2412124 89636 ?       Sl   21:03   0:00 /usr/lib/firefox/firefox-bin -contentproc -childID 2 -isForBrowser -prefsLen 4909 -prefMapSize 244806 -parentBuildID 20210614221319 -appdir /usr/li
  steffen   1636  0.6  0.7 2382844 59560 ?       Sl   21:03   0:00 /usr/lib/firefox/firefox-bin -contentproc -childID 3 -isForBrowser -prefsLen 5602 -prefMapSize 244806 -parentBuildID 20210614221319 -appdir /usr/li

Yeah i use --no-remote because otherwise firefox will find its
other-box instances via X cookies (i do not have Wayland here).
I deem it a critical error that firefox then starts up even though
the ~/.mozilla/XXX profile is a totally different one, but on the
IRC we just ended like this.

Btw i use

  setup_cgroup() {
  #return
    [ -e /sys/fs/cgroup/cgroup.procs ] || return
    [ -d /sys/fs/cgroup/_box_web ] && return

    (
      umask 0022
      mkdir /sys/fs/cgroup/_box_web || return
    )

    echo 1-3 > /sys/fs/cgroup/_box_web/cpuset.cpus
    echo 1 > /sys/fs/cgroup/_box_web/cpu.weight
    echo 300 > /sys/fs/cgroup/_box_web/pids.max
    echo 1000000000 > /sys/fs/cgroup/_box_web/memory.high
  }

on this box for box-web.sh, and i can read all my newspapers and
browse the web, even youtube.
If i open to many tabs, they start crashing.  This mostly seems
due to the pids.max, however, i already increased this from 250.

What _i_ find interesting is that for the first time i really get
impressive scheduling feedback.  This cpu.weight=1 can indeed
cause the browser to be delayed entirely for minutes, dependent on
the other tasks on the system.  I mean really, totally, entirely.
I was impressed by reading the sched manual once i came back to
Linux two years ago, but seeing cpu.weight=1 in action _like
that_, really impressive.

Btw .. happy to be on the other side of the spectrum

  steffen   1251  0.0  0.0  11240  6184 tty1     S    Jul05   0:06 cwm
  steffen   1261  0.0  0.1  19284  9096 ?        Ss   Jul05   1:11 st -n stgrey
  steffen   1262  0.0  0.0   8588  3896 pts/0    Ss+  Jul05   0:00 tmux a
  steffen   1334  0.0  1.1  94088 88680 ?        Ss   Jul05   1:25 tmux a
  steffen   5058  0.0  0.1  14672  8712 pts/1    S+   Jul05   0:11 s-nail -Aich
  steffen  30448  0.0  0.2 100800 19052 pts/7    Sl+  20:50   0:00 irssi
  steffen   1340  0.0  0.0  11848  6840 pts/6    Ss+  Jul05   0:00 vim -u /home/steffen/.vimrc

It all fits a single Terminal.app (if not taking into account tmux
history), even if online.  (Granted st does not have the history
patch, and firefox not running.)

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From steffen at sdaoden.eu  Fri Jul  9 05:37:31 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Thu, 08 Jul 2021 21:37:31 +0200
Subject: [TUHS] Overgrown ffox (was: The Unix shell: a 50-year view)
In-Reply-To: <20210708192538.jpOvc%steffen@sdaoden.eu>
References: <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
 <20210707183222.GA9897@tau1.ceti.pl>
 <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>
 <20210708064652.GA19675@tau1.ceti.pl>
 <YOcE3fre5cUTt6Br@clarinet.employees.org>
 <20210708192538.jpOvc%steffen@sdaoden.eu>
Message-ID: <20210708193731.ps4ut%steffen@sdaoden.eu>

Steffen Nurpmeso wrote in
 <20210708192538.jpOvc%steffen at sdaoden.eu>:
 ...
 |But it is not only Mac, take iwd again, iwctl('s display handling)
 |definetely is buggy in respect to handling of SIGCONT after
 |a TSTP.  (Ie the screen starts scrolling line-wise but no display
 |is ever refreshed.)

..at least if in an active "station X show" or so..

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From steffen at sdaoden.eu  Fri Jul  9 06:40:01 2021
From: steffen at sdaoden.eu (Steffen Nurpmeso)
Date: Thu, 08 Jul 2021 22:40:01 +0200
Subject: [TUHS] Overgrown ffox (was: The Unix shell: a 50-year view)
In-Reply-To: <20210708192538.jpOvc%steffen@sdaoden.eu>
References: <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
 <20210707183222.GA9897@tau1.ceti.pl>
 <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>
 <20210708064652.GA19675@tau1.ceti.pl>
 <YOcE3fre5cUTt6Br@clarinet.employees.org>
 <20210708192538.jpOvc%steffen@sdaoden.eu>
Message-ID: <20210708204001.n5E-R%steffen@sdaoden.eu>

Steffen Nurpmeso wrote in
 <20210708192538.jpOvc%steffen at sdaoden.eu>:
 ...
 |  steffen   1458 31.2  3.7 3029004 299700 ?      Sl   21:03   0:04 \
 |  firefox --no-remote
 ...
 |Yeah i use --no-remote because otherwise firefox will find its
 |other-box instances via X cookies (i do not have Wayland here).
 |I deem it a critical error that firefox then starts up even though
 |the ~/.mozilla/XXX profile is a totally different one, but on the
 |IRC we just ended like this.

Not to mention that firefox-bin 89.0.1 as compiled mozilla.com
themselves no longer does that right, it will exit the other
instance in another box with another profile directory even if
both instances start with --no-remote.

Heck, software is a complicated beast.
Has to be said, humans produce so many bugs, i am happy that it is
software that controls american warships, nuclear power plants,
the chemical industry, and so many other important things!

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

From tytso at mit.edu  Fri Jul  9 07:47:57 2021
From: tytso at mit.edu (Theodore Ts'o)
Date: Thu, 8 Jul 2021 17:47:57 -0400
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>
References: <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
 <20210707183222.GA9897@tau1.ceti.pl>
 <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>
Message-ID: <YOdyjcVCL5TS3VBg@mit.edu>

On Wed, Jul 07, 2021 at 08:50:51PM +0000, Michael KjГ¶rling wrote:
> 
> I'm going to stick my neck out here by saying that the VSZ and RSS
> values reported by ps, at least for Firefox, are largely meaningless.

No, VSZ is correct, but it's confusing since it includes things that
you might not expect.  VSZ includes *all* virtual memory space
consumed by a process.

For example, consider this simple program:

main(int argc, char **argv)
{
	printf("Hello, world\n");
	sleep(10);
	return 0;
}

It uses shared libraries:

% ldd /tmp/hello
        linux-vdso.so.1 (0x00007fff20bff000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd8caad9000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fd8cacca000)

If you run the program the ps listing looks like this:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
tytso    4060239  0.0  0.0   2300   512 pts/2    T    17:01   0:00 /tmp/hello

If you look at /proc/4060239/maps, you'll memory map for the process.

5559e8e7d000-5559e8e7e000 r--p 00000000 00:25 260006                     /tmp/hello
5559e8e7e000-5559e8e7f000 r-xp 00001000 00:25 260006                     /tmp/hello
5559e8e7f000-5559e8e80000 r--p 00002000 00:25 260006                     /tmp/hello
5559e8e80000-5559e8e81000 r--p 00002000 00:25 260006                     /tmp/hello
5559e8e81000-5559e8e82000 rw-p 00003000 00:25 260006                     /tmp/hello
5559ea383000-5559ea3a4000 rw-p 00000000 00:00 0                          [heap]
7f8419a44000-7f8419a69000 r--p 00000000 fc:00 10763398                   /usr/lib/x86_64-linux-gnu/libc-2.31.so
7f8419a69000-7f8419bb4000 r-xp 00025000 fc:00 10763398                   /usr/lib/x86_64-linux-gnu/libc-2.31.so
			  ...

If you add the sum total of all of the VM regions, i.e.:

(0x5559e8e7e000 - 0x5559e8e7d000) +
(0x5559e8e7f000 - 0x5559e8e7e000) +
(0x5559e8e80000 - 0x5559e8e7f000) +
	...

(ignore the last vsyscall region, since that's a kernel page mapped
into all processes)   You'll get the 2300k of the VSZ.

If the process mmap's in a large 2GB file, the VSZ will go up by 2GB,
even if none of the file is paged in.  Or if you mmap in 2MB of
anonymous memory backed by the zero page for the heap, the VSZ will go
up by 2MB.  

> I started my usual Firefox instance, which has a handful of plugins,
> about a metric gazillion bookmarks, and has been my main web browser
> profile for years (so it probably has collected some crud over time).
> `ps auxw` reported that process as having a total RSS of a whopping
> 374 GB.

I don't think that's right.  Are you sure it's not 374MB?  I started
firefox-esr on my Debian machine, and the PS output is:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
tytso    4063201  5.8  1.0 3027868 357248 pts/2  Sl   17:38   0:07 firefox-esr
tytso    4063274  0.5  0.3 2446608 105620 pts/2  Sl   17:38   0:00 /usr/lib/firefox-esr/firefox-esr -contentproc -childID 1 -isF
tytso    4063317  0.8  0.3 2457032 124200 pts/2  Sl   17:38   0:01 /usr/lib/firefox-esr/firefox-esr -contentproc -childID 2 -isF
tytso    4063341  2.9  0.8 2623896 282420 pts/2  Sl   17:38   0:03 /usr/lib/firefox-esr/firefox-esr -contentproc -childID 3 -isF

357248k is 343MB.  Maybe you were adding up the RSS's for all of the
processes?  That's misleading because if a physical 4k page is shared
across multiple process, that 4k page will be accounted in each of the
processes's RSS --- even if that process hasn't actually *used* that
particular page.  So for example, the hello world program had a 512k RSS:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
tytso    4060239  0.0  0.0   2300   512 pts/2    T    17:01   0:00 /tmp/hello

That's not because the hello world program actually used half a
megabyte worth of the C library; but rather, almost half a megabyte of
the C library has been paged in to support all of the processes
currently running in the system.  It also follows that every process
using shared library is going to have an RSS which is at least 512k.

Cheers,

					- Ted

From kevin.bowling at kev009.com  Fri Jul  9 08:23:25 2021
From: kevin.bowling at kev009.com (Kevin Bowling)
Date: Thu, 8 Jul 2021 15:23:25 -0700
Subject: [TUHS] Overgrown ffox (was: The Unix shell: a 50-year view)
In-Reply-To: <20210708064652.GA19675@tau1.ceti.pl>
References: <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
 <20210707183222.GA9897@tau1.ceti.pl>
 <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>
 <20210708064652.GA19675@tau1.ceti.pl>
Message-ID: <CAK7dMtAdzPNCGV_2oQCuVxOqAxGQc7t2UfFn5xQXYf+OwQjhdg@mail.gmail.com>

Try typing “about:memory” into the address bar and hit measure.  You will
see where it is all going.

On Wed, Jul 7, 2021 at 11:48 PM Tomasz Rola <rtomek at ceti.pl> wrote:

> On Wed, Jul 07, 2021 at 08:50:51PM +0000, Michael KjГ¶rling wrote:
> > On 7 Jul 2021 20:32 +0200, from rtomek at ceti.pl (Tomasz Rola):
> > > An excerpt from my ps:
> > >
> > > USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME
> COMMAND
> > >
> > > xxxon    12331 12.5 20.4 5898360 2519640 ?     TNsl Mar29 18278:11
> firefox-esr
> >
> > I'm going to stick my neck out here by saying that the VSZ and RSS
> > values reported by ps, at least for Firefox, are largely meaningless.
> >
> > I started my usual Firefox instance, which has a handful of plugins,
> > about a metric gazillion bookmarks, and has been my main web browser
> > profile for years (so it probably has collected some crud over time).
> > `ps auxw` reported that process as having a total RSS of a whopping
> > 374 GB.
> >
> > It is downright _impossible_ that Firefox could actually be using that
>
> This is quite strange for me. Without looking at your system I can only
> suspect it has something to do with multithreading.
>
> If I do two different commands as root, with firefox pid here
> .eq. 12331, as above:
>
> =>  (500 15):    lsof -p 12331 | wc -l
> 402
>
> =>  (500 17):   lsof | awk '$2==12331' | wc -l
> 22055
>
> The first column gives a name, and in second case it not always is
> 'firefox'. I am yet to study manpage for lsof and play with it, but it
> surely shows interesting things.
>
> On my system, when firefox gets killed, 'free' shows a difference - if
> I recall, free mem increases by the size of rss plus all the stuff
> which was opened and released from buffers. I did not pay much
> attention, I assumed numbers would match and this is what they
> probably did :-).
>
> OS on my box used to report to me as Debian, and still does, but some
> years ago I have decided to skip the usual system upgrade, and after
> some more time I started to upgrade various elements by hand. So it is
> more like a tattered patchwork right now. But it does what I expect,
> hopefully.
>
> [...]
> > That's a _factor almost 2300x_ difference between the reported RSS,
> > and the amount of memory that was actually freed up by closing the
> > browser.
>
> Yeah, strange.
>
> [...]
> > On modern systems, with everything from shared libraries to
> > memory-mapped I/O to routine use of memory overcommitting, the
> > resident set size is clearly a poor indicator of the actual amount
> > of memory actively used by a complex process.
>
> Hard to tell - first I would like to learn where the hundred-giga rss
> came from...
>
> --
> Regards,
> Tomasz Rola
>
> --
> ** A C programmer asked whether computer had Buddha's nature.      **
> ** As the answer, master did "rm -rif" on the programmer's home    **
> ** directory. And then the C programmer became enlightened...      **
> **                                                                 **
> ** Tomasz Rola          mailto:tomasz_rola at bigfoot.com             **
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210708/12adb572/attachment.htm>

From jon at fourwinds.com  Fri Jul  9 14:49:37 2021
From: jon at fourwinds.com (Jon Steinhart)
Date: Thu, 08 Jul 2021 21:49:37 -0700
Subject: [TUHS] The Unix shell: a 50-year view -- feedback wanted
Message-ID: <202107090449.1694nbum2752949@darkstar.fourwinds.com>

I not only found this paper offensive, but was more offended that
ACM would publish something like this and give it an award to boot.
I'm planning to send the authors and ACM what's below.  Would
appreciate any feedback that you could provide to make it better.

Thanks,
	Jon




I read your "Unix Shell Programming: The Next 50 Years" expecting
some well thought out wisdom from learned experiences.  I was
sorely disappointed.

 o  The paper never defines what is meant by the term "Unix shell."
    I think that you're using to mean a command interpreter as
    described in the POSIX 1003.2 documents.

 o  There is no 50 year old Unix shell.  I started using Unix in the
    early 1970s, and the command interpreter at the time (Ken Thompson's
    shell) was nothing like later shells such as the Bourne shell (sh
    since research V7 Unix), Korn shell (ksh), C shell (csh), and the
    Bourne again shell (bash).  The paper is missing any discussion of
    prior art.  In practice, shell implementations either predate the
    POSIX standard or were built afterwards and include non-standard
    extensions.

 o  The paper repeats a claim that the shell has been largely ignored by
    academia and industry.  Yet, it does not include any references that
    support that claim.  My own experience and thus opinion is the
    opposite making the veracity of your claim questionable.  As a reader,
    such unsubstantiated claims make me treat the entire content as suspect.

 o  The paper applies universal complaints such as "unmaintainable" to the
    shell; it doesn't call out any shell-specific problems.  It doesn't
    explain whether these complaints are against the scripts, the
    implementation, or both.  One of the reasons for the longevity of the
    sh/bash shells is that experienced practicioners have been able to
    write easily maintainable code.  Scripts written in the 1980s are
    still around and working fine.

 o  The paper seems to complain that the fact that the shell is documented
    is a problem.  This is an astonishing statement.  In my decades as an
    acting professional, teacher, and author, proper documentation is a key
    component of being a professional.

 o  The paper is full of non-sequiturs such as discussions about Docker
    and systemd that have nothing to to with the shell.

 o  The paper has many "nop" statements such as "arguably improved" that
    don't actually say anything.

 o  Examples, such as the one on page 105 don't work.

 o  Proofreading should have caught things like "improve performance
    performance" on page 107 among others.

 o  The references contain many more items than the paper actually
    references.  Did you plagerize the bibliography and forget to
    edit it?

 o  The single result in Figure 1 is insufficient evidence that the
    approach works on a wide variety of problems.

 o  The paper makes it appear that the authors don't actually understand
    the semantics of the original Bourne shell.  Not just my opinion; I
    received an email from Steve Bourne after he read your paper, and I
    consider him to be a subject matter expert.

The paper is lacking the generally accepted form of:

 o  What problem are you trying to solve?
 o  What have others done?
 o  What's our approach?
 o  How does it do?

Filtering out all of the jargon added for buzzword compliance, I think
that the paper is really trying to say:

 o  Programmable command interpreters such as those found in Unix-based
    systems have been around for a long time.  For this paper, we're
    focusing on the GNU bash implementation of the POSIX P1003.2 shell.
    Other command interpreters predate Unix.

 o  This implementation is used more often than many other scripting
    languages because it is available and often installed as the default
    command interpreter on most modern systems (Unix-based or otherwise).
    In particular, it is often the default for Linux systems.

 o  The shell as defined above is being used in ways that are far more
    complex than originally contemplated when Bourne created the original
    syntax and semantics, much less the new features added by the POSIX
    standards committee.  The combination of both the POSIX and bash
    extensions to the Bourne shell exposes a new set of limitations and
    issues such as performance.

 o  While much work has been done by the bash implementors, it's primarily
    been in the area of expanding the functionality, usually in a
    backward-compatible manner.   Other shells such as the original ksh and
    later ash and zsh were implemented with an eye towards the performance
    of the internals and user perspectives.

 o  Performance optimization using modern techniques such as JIT have been
    applied to other languages but not to POSIX shell implementations.  This
    paper looks at doing that.  It is unsurprising that techniques that have
    worked elsewhere work here too.

 o  It's hard to imagine that the application of this technique is all that's
    required for a 50-year life extension.  The title of this paper implies
    that it's going to be comprehensive rather than just being a shameless
    plus for an author's project.

Of course, this doesn't make much of a paper.  Guessing that that's why it
was so "bulked up" with irrelevancies.

It appears that all of you are in academia.  I can't imagine that a paper
like this would pass muster in front of any thesis committee, much less
get that far.  Not only for content, but for lack of proofreading and
editing.  The fact that the ACM would publish such a paper eliminates any
regret that I may have had in dropping my ACM membership.

From noel.hunt at gmail.com  Fri Jul  9 17:10:24 2021
From: noel.hunt at gmail.com (Noel Hunt)
Date: Fri, 9 Jul 2021 17:10:24 +1000
Subject: [TUHS] The Unix shell: a 50-year view -- feedback wanted
In-Reply-To: <202107090449.1694nbum2752949@darkstar.fourwinds.com>
References: <202107090449.1694nbum2752949@darkstar.fourwinds.com>
Message-ID: <CAGfO01zo8uFk2HHuOfXTneF461DN1YYw8b_nXKKdJba8p8F0zQ@mail.gmail.com>

Allow me to express my thanks to you for doing this.

Noel Hunt

On Fri, Jul 9, 2021 at 2:51 PM Jon Steinhart <jon at fourwinds.com> wrote:

> I not only found this paper offensive, but was more offended that
> ACM would publish something like this and give it an award to boot.
> I'm planning to send the authors and ACM what's below.  Would
> appreciate any feedback that you could provide to make it better.
>
> Thanks,
>         Jon
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210709/4f0ed2c0/attachment.htm>

From lm at mcvoy.com  Fri Jul  9 23:26:46 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Fri, 9 Jul 2021 06:26:46 -0700
Subject: [TUHS] The Unix shell: a 50-year view -- feedback wanted
In-Reply-To: <202107090449.1694nbum2752949@darkstar.fourwinds.com>
References: <202107090449.1694nbum2752949@darkstar.fourwinds.com>
Message-ID: <20210709132646.GY10781@mcvoy.com>

I think it is great as it stands (yeah, I read all of it).  If there
is a way I can sign it as well, not as an author, just as an "I agree
with everything here", tell me and I'll sign.

I continue to be dismayed at the state of the art these days, seems like
there is no art, but to have the ACM award this crap is depressing.

On Thu, Jul 08, 2021 at 09:49:37PM -0700, Jon Steinhart wrote:
> I not only found this paper offensive, but was more offended that
> ACM would publish something like this and give it an award to boot.
> I'm planning to send the authors and ACM what's below.  Would
> appreciate any feedback that you could provide to make it better.
> 
> Thanks,
> 	Jon
> 
> 
> 
> 
> I read your "Unix Shell Programming: The Next 50 Years" expecting
> some well thought out wisdom from learned experiences.  I was
> sorely disappointed.
> 
>  o  The paper never defines what is meant by the term "Unix shell."
>     I think that you're using to mean a command interpreter as
>     described in the POSIX 1003.2 documents.
> 
>  o  There is no 50 year old Unix shell.  I started using Unix in the
>     early 1970s, and the command interpreter at the time (Ken Thompson's
>     shell) was nothing like later shells such as the Bourne shell (sh
>     since research V7 Unix), Korn shell (ksh), C shell (csh), and the
>     Bourne again shell (bash).  The paper is missing any discussion of
>     prior art.  In practice, shell implementations either predate the
>     POSIX standard or were built afterwards and include non-standard
>     extensions.
> 
>  o  The paper repeats a claim that the shell has been largely ignored by
>     academia and industry.  Yet, it does not include any references that
>     support that claim.  My own experience and thus opinion is the
>     opposite making the veracity of your claim questionable.  As a reader,
>     such unsubstantiated claims make me treat the entire content as suspect.
> 
>  o  The paper applies universal complaints such as "unmaintainable" to the
>     shell; it doesn't call out any shell-specific problems.  It doesn't
>     explain whether these complaints are against the scripts, the
>     implementation, or both.  One of the reasons for the longevity of the
>     sh/bash shells is that experienced practicioners have been able to
>     write easily maintainable code.  Scripts written in the 1980s are
>     still around and working fine.
> 
>  o  The paper seems to complain that the fact that the shell is documented
>     is a problem.  This is an astonishing statement.  In my decades as an
>     acting professional, teacher, and author, proper documentation is a key
>     component of being a professional.
> 
>  o  The paper is full of non-sequiturs such as discussions about Docker
>     and systemd that have nothing to to with the shell.
> 
>  o  The paper has many "nop" statements such as "arguably improved" that
>     don't actually say anything.
> 
>  o  Examples, such as the one on page 105 don't work.
> 
>  o  Proofreading should have caught things like "improve performance
>     performance" on page 107 among others.
> 
>  o  The references contain many more items than the paper actually
>     references.  Did you plagerize the bibliography and forget to
>     edit it?
> 
>  o  The single result in Figure 1 is insufficient evidence that the
>     approach works on a wide variety of problems.
> 
>  o  The paper makes it appear that the authors don't actually understand
>     the semantics of the original Bourne shell.  Not just my opinion; I
>     received an email from Steve Bourne after he read your paper, and I
>     consider him to be a subject matter expert.
> 
> The paper is lacking the generally accepted form of:
> 
>  o  What problem are you trying to solve?
>  o  What have others done?
>  o  What's our approach?
>  o  How does it do?
> 
> Filtering out all of the jargon added for buzzword compliance, I think
> that the paper is really trying to say:
> 
>  o  Programmable command interpreters such as those found in Unix-based
>     systems have been around for a long time.  For this paper, we're
>     focusing on the GNU bash implementation of the POSIX P1003.2 shell.
>     Other command interpreters predate Unix.
> 
>  o  This implementation is used more often than many other scripting
>     languages because it is available and often installed as the default
>     command interpreter on most modern systems (Unix-based or otherwise).
>     In particular, it is often the default for Linux systems.
> 
>  o  The shell as defined above is being used in ways that are far more
>     complex than originally contemplated when Bourne created the original
>     syntax and semantics, much less the new features added by the POSIX
>     standards committee.  The combination of both the POSIX and bash
>     extensions to the Bourne shell exposes a new set of limitations and
>     issues such as performance.
> 
>  o  While much work has been done by the bash implementors, it's primarily
>     been in the area of expanding the functionality, usually in a
>     backward-compatible manner.   Other shells such as the original ksh and
>     later ash and zsh were implemented with an eye towards the performance
>     of the internals and user perspectives.
> 
>  o  Performance optimization using modern techniques such as JIT have been
>     applied to other languages but not to POSIX shell implementations.  This
>     paper looks at doing that.  It is unsurprising that techniques that have
>     worked elsewhere work here too.
> 
>  o  It's hard to imagine that the application of this technique is all that's
>     required for a 50-year life extension.  The title of this paper implies
>     that it's going to be comprehensive rather than just being a shameless
>     plus for an author's project.
> 
> Of course, this doesn't make much of a paper.  Guessing that that's why it
> was so "bulked up" with irrelevancies.
> 
> It appears that all of you are in academia.  I can't imagine that a paper
> like this would pass muster in front of any thesis committee, much less
> get that far.  Not only for content, but for lack of proofreading and
> editing.  The fact that the ACM would publish such a paper eliminates any
> regret that I may have had in dropping my ACM membership.

-- 
---
Larry McVoy            	     lm at mcvoy.com             http://www.mcvoy.com/lm 

From jon at fourwinds.com  Sat Jul 10 04:04:21 2021
From: jon at fourwinds.com (Jon Steinhart)
Date: Fri, 09 Jul 2021 11:04:21 -0700
Subject: [TUHS] The Unix shell: a 50-year view -- second pass feedback wanted
Message-ID: <202107091804.169I4L4p2778131@darkstar.fourwinds.com>

Thanks to everyone who provided me feedback on the first pass, especially
those who suggested "shopt -u flame-off".  Here's the second version.
Once again, would appreciate feedback.

Thanks,
	Jon


I read your "Unix Shell Programming: The Next 50 Years" expecting
some well thought out wisdom.  I was sorely disappointed.

The paper is lacking the generally accepted form of:

 o  What problem are you trying to solve?
 o  What have others done?
 o  What's our approach?
 o  How does it do?

Some particulars:

 o  The paper never defines what is meant by the term "Unix shell."
    I think that you're using it to mean a command interpreter as
    described in the POSIX 1003.2 documents.

 o  There is no 50 year old Unix shell.  I started using Unix in the
    early 1970s, and the command interpreter at the time (Ken Thompson's
    shell) was nothing like later shells such as the Bourne shell (sh
    since research V7 Unix), Korn shell (ksh), C shell (csh), and the
    Bourne again shell (bash).  Unix mainstreamed the notion of a
    command interpreter that was not baked into the system.  The paper
    lacks any discussion of prior art.  In practice, shell implementations
    either predate the POSIX standard or were built afterwards and
    include non-standard extensions.

 o  The paper repeats a claim that the shell has been largely ignored by
    academia and industry.  Yet, it does not include any references that
    support that claim.  In fact, the large body of published work on
    shells and ongoing work on shells such as zsh shows that claim to be
    incorrect.

 o  The paper applies universal complaints such as "unmaintainable" to the
    shell; it doesn't call out any shell-specific problems.  It doesn't
    explain whether these complaints are against the scripts, the
    implementation, or both.  One of the reasons for the longevity of the
    family of shells descended from Bourne's sh is that experienced
    practicioners have been able to write easily maintainable code.
    Scripts written in the 1980s are still around and working fine.

 o  The paper seems to complain that the fact that the shell is documented
    is a problem.  This is astonishing.  Proper documentation has always
    been a key component of being a professional in my decades of experience.
    As a matter of fact, my boss telling me that "nobody will give a crap
    about your work unless you write a good paper" when I was a teenager
    at Bell Labs is what led me to UNIX and nroff.

 o  The paper includes non-sequiturs such as discussions about Docker
    and systemd that have nothing to to with the shell.

 o  The paper has many "nop" statements such as "arguably improved" that
    don't actually say anything.

 o  Examples, such as the one on page 105 don't work as there is no input
    to "cut".

 o  The single result in Figure 1 is insufficient evidence that the
    approach works on a wide variety of problems.

 o  The paper gives the appearance that the authors don't actually understand
    the semantics of the original Bourne shell.  Not just my opinion; I
    received an email from Steve Bourne after he read your paper, and I
    consider him to be a subject matter expert.

 o  Proofreading should have caught things like "improve performance
    performance" on page 107 among others.

I think that the paper is really trying to say:

 o  Programmable command interpreters such as those found in Unix-based
    systems have been around for a long time.  For this paper, we're
    focusing on the GNU bash implementation of the POSIX P1003.2 shell.
    Other command interpreters predate Unix.

 o  This implementation is used more often than many other scripting
    languages because it is available and often installed as the default
    command interpreter on most modern systems (Unix-based or otherwise).
    In particular, it is often the default for Linux systems.

 o  The shell as defined above is being used in ways that are far more
    complex than originally contemplated when Bourne created the original
    syntax and semantics, much less the new features from kash adopted by
    the POSIX standards committee.  The combination of both the POSIX and
    bash extensions to the Bourne shell exposes a new set of limitations
    and issues such as performance.

 o  While much work has been done by the bash implementors, it's primarily
    been in the area of expanding the functionality, usually in a
    backward-compatible manner.   Other shells such as the original ksh and
    later ash and zsh were implemented with an eye towards the performance
    of the internals and user perspectives.

 o  Performance optimization using modern techniques such as JIT compilation
    have been applied to other languages but not to POSIX shell implementations.
    This paper looks at doing that.  It is unsurprising that techniques that
    have worked elsewhere work here too.

It's hard to imagine that the application of this technique is all that's
required for a 50-year life extension.  The title of this paper implies
that it's going to be comprehensive but instead concentrates on a couple
of projects.  It ignores other active work on shells such as "fish".  While
the issues with the paper remain, they would not have been quite so glaring
had it had a more modest title such as "Applying JIT Compilation to the
POSIX Shell".

From cowan at ccil.org  Sat Jul 10 05:23:57 2021
From: cowan at ccil.org (John Cowan)
Date: Fri, 9 Jul 2021 15:23:57 -0400
Subject: [TUHS] The Unix shell: a 50-year view -- feedback wanted
In-Reply-To: <202107090449.1694nbum2752949@darkstar.fourwinds.com>
References: <202107090449.1694nbum2752949@darkstar.fourwinds.com>
Message-ID: <CAD2gp_QZMp2VGQHfOZBcBsABZvJhbBmMXjKSkzV4Yde4VXhuKA@mail.gmail.com>

On Fri, Jul 9, 2021 at 12:50 AM Jon Steinhart <jon at fourwinds.com> wrote:

I not only found this paper offensive, but was more offended that
> ACM would publish something like this and give it an award to boot.
> I'm planning to send the authors and ACM what's below.  Would
> appreciate any feedback that you could provide to make it better.
>

I too would like to (virtually) sign this.

I also point out (not for inclusion in your piece) that the fastest path to
fame and what in academia counts as fortune is to write a paper with a
superficially plausible argument that some well-known fact or
well-established conclusion is wrong.  This immediately draws the mantle of
Galileo over the author, but instead of the author being imprisoned for
life by the Papal Inquisition, the paper becomes the subject of raves, the
author becomes a hero, and the discipline may even be said to have taken a
new turn as everyone rushes to follow and compete.

But often the little boy in "The Emperor's New Clothes" is either deluded
or trying to gain glory by daring to annoy the Emperor.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210709/04b04d9e/attachment.htm>

From skogtun at gmail.com  Sat Jul 10 05:54:47 2021
From: skogtun at gmail.com (Harald Arnesen)
Date: Fri, 9 Jul 2021 21:54:47 +0200
Subject: [TUHS] The Unix shell: a 50-year view -- second pass feedback
 wanted
In-Reply-To: <202107091804.169I4L4p2778131@darkstar.fourwinds.com>
References: <202107091804.169I4L4p2778131@darkstar.fourwinds.com>
Message-ID: <e0e2ca00-24b3-ed1e-8949-9f49b631f8ea@gmail.com>

Jon Steinhart [09/07/2021 20.04]:

>   o  The shell as defined above is being used in ways that are far more
>      complex than originally contemplated when Bourne created the original
>      syntax and semantics, much less the new features from kash adopted by
                                                              ^^^^
>      the POSIX standards committee.  The combination of both the POSIX and
>      bash extensions to the Bourne shell exposes a new set of limitations
>      and issues such as performance.


From michael at kjorling.se  Sat Jul 10 06:14:25 2021
From: michael at kjorling.se (Michael =?utf-8?B?S2rDtnJsaW5n?=)
Date: Fri, 9 Jul 2021 20:14:25 +0000
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <YOdyjcVCL5TS3VBg@mit.edu>
References: <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAD2gp_TNjzZCT8TCfHm_9ARZqFEaWL=6OdT6DOxY9auWY4=WHA@mail.gmail.com>
 <20210706231659.GA13225@tau1.ceti.pl> <YOT5ajNhoUqyBqvi@mit.edu>
 <20210707183222.GA9897@tau1.ceti.pl>
 <6b736f82-97ed-4e51-9652-e672be4e2c66@localhost>
 <YOdyjcVCL5TS3VBg@mit.edu>
Message-ID: <9732faa4-55cf-44c4-9bdc-47c4c9b40c3f@localhost>

On 8 Jul 2021 17:47 -0400, from tytso at mit.edu (Theodore Ts'o):
>> I'm going to stick my neck out here by saying that the VSZ and RSS
>> values reported by ps, at least for Firefox, are largely meaningless.
> 
> No, VSZ is correct, but it's confusing since it includes things that
> you might not expect.  VSZ includes *all* virtual memory space
> consumed by a process.

You may very well be correct. That would, however, seem to me to make
it _correct_, but still not necessarily _meaningful_ for trying to
determine the amount of memory used by a _specific_ process; and
similarly for the RSS.


>> I started my usual Firefox instance, which has a handful of plugins,
>> about a metric gazillion bookmarks, and has been my main web browser
>> profile for years (so it probably has collected some crud over time).
>> `ps auxw` reported that process as having a total RSS of a whopping
>> 374 GB.
> 
> I don't think that's right.  Are you sure it's not 374MB?  I started
> firefox-esr on my Debian machine, and the PS output is:

On this, I believe I must stand corrected.

For my previous post, I checked the man page for ps, and noted that
RSS and VSZ are both reported in units of 1 KiB. For an attempt just
now, the ps output is similarly:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
michael  29890 51.8  0.7 2728696 255456 tty2   Sl+  21:46   0:06 firefox-esr
michael  29942  4.7  0.3 2415008 106448 tty2   Sl+  21:46   0:00 /usr/lib/firefox-esr/firefox-esr -contentproc -childID 1 -isF
michael  29994 38.3  0.7 34043160 240612 tty2  Sl+  21:46   0:04 /usr/lib/firefox-esr/firefox-esr -contentproc -childID 2 -isF
michael  30168  3.2  0.2 2400636 72992 tty2    Sl+  21:46   0:00 /usr/lib/firefox-esr/firefox-esr -contentproc -childID 3 -isF

On my system, unless I need to get a different calculator, 0.7% of
memory is either 229 В± <16 or 688 В± <49 MiB, depending on whether it
counts only RAM or also includes swap space.

The 249 MiB RSS of the main process also much more closely matches the
difference that was reported by `free` in my previous experiment.
Oddly, when trying the same thing again now, the difference as
reported by `free` is 423 MiB, so I'm not quite sure what's going on
there, but at least all of those numbers are considerably more
_plausible_, both in isolation and in relation to other relevant
measurements.

I'm honestly not sure how I went from the `ps` output (which wasn't
particularly dissimilar from the above, though of course I don't know
what the exact numbers were since I didn't record them) and the unit
of measurement being KiB, to going from KiB straight to GiB.


> That's not because the hello world program actually used half a
> megabyte worth of the C library; but rather, almost half a megabyte of
> the C library has been paged in to support all of the processes
> currently running in the system.  It also follows that every process
> using shared library is going to have an RSS which is at least 512k.

This is definitely a point on which I agree, and which I tried to
point out with the mention of shared libraries in my previous post.

-- 
Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se
 “Remember when, on the Internet, nobody cared that you were a dog?”


From tytso at mit.edu  Sat Jul 10 06:26:11 2021
From: tytso at mit.edu (Theodore Ts'o)
Date: Fri, 9 Jul 2021 16:26:11 -0400
Subject: [TUHS] The Unix shell: a 50-year view -- feedback wanted
In-Reply-To: <202107090449.1694nbum2752949@darkstar.fourwinds.com>
References: <202107090449.1694nbum2752949@darkstar.fourwinds.com>
Message-ID: <YOiw41Ddt+rkyV2k@mit.edu>

On Thu, Jul 08, 2021 at 09:49:37PM -0700, Jon Steinhart wrote:
>  o  It's hard to imagine that the application of this technique is all that's
>     required for a 50-year life extension.  The title of this paper implies
>     that it's going to be comprehensive rather than just being a shameless
>     plus for an author's project.

Spelling nit: I believe you meant to say "shameless plug..." (s/plus/plug/)

> It appears that all of you are in academia.  I can't imagine that a paper
> like this would pass muster in front of any thesis committee, much less
> get that far.  Not only for content, but for lack of proofreading and
> editing.  The fact that the ACM would publish such a paper eliminates any
> regret that I may have had in dropping my ACM membership.

It looks like this was originally a position paper for the Workshop on
Hot Topics in Operating Systems (aka HotOS).  As a workshop paper, it
would have had a much lower standard of than say, if this was being
presented at say, SOSP or ASPLOS.  Workshop papers are supposed to be
provocative and suggest "new directions".  Sometimes new directions
turn out to just be dead ends, and while some things presented at
workshops will grow up to be a full paper at a highly respected
conference, other ideas get presented at a workshop and are never
heard from again.  :-)

I'd have to think to come up with examples, but I'm pretty sure I've
seen sillier ideas as workshops papers.  More impractical ideas, for
certain.

I have observed that the things that will get funding for academic
research, and things which are considered interesting from a industry
or practitioner's perspective, tends to diverge in any field, and the
divergence increases over time.

It might or might not be the case that "the shell is a promising area
of research".  Even if it is true, there are plenty of things which
generate research papers, and serve to help education graduate
students, but which ultimately end up being completely useless from
the industry practitioners perspective.  I may be overly cynical, but
there are plenty of papers at many a conference, even highly respected
ones by tenture-track committees, which inspires nothing but a yawn
from me, and personally, that doesn't bother me; what consenting
adults do within the confines of academia is their business.

Again, I've seen worse in terms of "my tax dollars at play".

If we're lucky, even if the actual object of the research is useless,
sometimes it can sparc some insight that makes my time spent at such a
conference not a complete waste --- and even if it isn't at least
it's fertile recruiting ground for new college grads for $WORK. :-)

      	   	   	      	     	     - Ted

From rtomek at ceti.pl  Sat Jul 10 08:19:24 2021
From: rtomek at ceti.pl (Tomasz Rola)
Date: Sat, 10 Jul 2021 00:19:24 +0200
Subject: [TUHS] [tuhs] The Unix shell: a 50-year view
In-Reply-To: <CAC20D2NdVK1zGeACJW8jZfTm85CyWq8CZd6oZAAfRaRZgovNvg@mail.gmail.com>
References: <CMM.0.95.0.1625261060.beebe@gamma.math.utah.edu>
 <20210702213648.GW817@mcvoy.com>
 <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <alpine.DEB.2.21.2107021910240.15013@sd-119843.dedibox.fr>
 <396911b232bae5938068a14fe0f7181e@firemail.de>
 <CAEoi9W4NXd-yajWk9bcb1X9eK_Ws17TBJOpDE6M-Qf+uLQ2v6A@mail.gmail.com>
 <20210704004757.GB24671@tau1.ceti.pl>
 <CAEoi9W7fLGFQMPUcS2E0VAANnPXDVrbxGFs++Nv5W42rxoNxYg@mail.gmail.com>
 <20210705071450.GA12885@tau1.ceti.pl>
 <CAC20D2NdVK1zGeACJW8jZfTm85CyWq8CZd6oZAAfRaRZgovNvg@mail.gmail.com>
Message-ID: <20210709221924.GA17181@tau1.ceti.pl>

On Tue, Jul 06, 2021 at 12:05:04PM -0400, Clem Cole wrote:
[...]
> Ouch!!! This is so much important that you have missed in this statement,
> as this is a great example of not seeing the forest because of all the
> trees.  You are right that C and UNIX's success was intertwined but I think
> you are missing the drivers for that.   They were successful because of
> other things and because they were successful, we have them today.
[...]

Clem, thanks a lot for writing this. I think I have connected few dots
now. Like, I was long aware that there were various groups of computer
users, but never before I had the thought about how this "divide"
contributed so much to creation and adoption of Unix.

I suppose I like Unix even more now.

[...]
> The idea of lots of little programs that cooperate with each other is not
> what IBM and the like wanted/was providing.  They were selling closed
> 'solutions' complete SW systems ("walled gardens" controlled by them or
> their programming minions) and yes needed the big iron they sold.  Note
> the IBM 'solutions were not sold to engineers, their products were sold on
> the golf course to the 'managers' of what we know call IT shops.

Ahem. I do not see myself selling or buying during golf
course... Especially if it has to do with computers...

[...]
> The important thing is that the latter group (not enterprise) did not have
> as much money but was a completely different population.   UNIX is 100% a
> 'Christiansen style Disruption'  ( read his book completely if you have
> not, please).

I will see if I can have my hand on it.

>  It's a 'lessor technology,' running on smaller equipment,
> targeting a new and different consumer who does not care that it is 'not as
> good' as the established products.  If you compare UNIX to IBM's OS or VMS
> for that matter, UNIX does not have the 'features' that are valued by the
> 'enterprise market.'
> 
> Ken/Dennis, *et al*, clearly do not care -- they were building something
> they (the engineers) needed and wanted (thankfully).  And yes it had to run
> on modest hardware because that is what they could afford and had access
> to.  But because since the HW was modest, that forces a mindset of what are
> we really doing on the SW?  How can we do it effectively.  The designers
> are asking an important research question? *Maybe some of these other
> schemes are not necessary*.

I definitely like this attitude.

> You are correct the C grew because of UNIX, but you kind of have it
> backward. I'm a perfect example of what happened.  These new
> microprocessors from Intel/Zilog/Moto/MOS Tech became available to us
> (engineers mind you).  Hey, I was at CMU in the mid-1970s, I even had
> access to the BLISS sources, but most people did not.  A BLISS cross
> compiler binary cost $5K per CPU!!!

Yikes. Five kilodollars, what a deal.

When I learned C, in middle/late 80-ties, it was my third language
after Basic and Pascal. I did not have computer at that time and I
wrote short programs in a notebook. I wonder if I could locate the
notebook and if any of this code would run. But, compared to the first
two, C had something fresh in it. Nowadays, however, this freshness is
a little bit trapped under a ton of supporting libraries. Back at the
time, the fact there was a C compiler on every computer I heard about,
and standard library gave it a bit of unified look, and I could write
C oneliners on less paper, more idiomatic (saves time! all those
begin/end words replaced by mere curly braces, very nice) - all of
this made C very interesting to me.

[...]
> The key point is that UNIX was inexpensive and worked on modest hardware.
> Yes C came with it and that is why I think we use it not BLISS, BCPL, or
> some flavor of PLx today.

I hope C would have been invented even without Unix.

-- 
Regards,
Tomasz Rola

--
** A C programmer asked whether computer had Buddha's nature.      **
** As the answer, master did "rm -rif" on the programmer's home    **
** directory. And then the C programmer became enlightened...      **
**                                                                 **
** Tomasz Rola          mailto:tomasz_rola at bigfoot.com             **

From mah at mhorton.net  Sat Jul 10 13:17:14 2021
From: mah at mhorton.net (Mary Ann Horton)
Date: Fri, 9 Jul 2021 20:17:14 -0700
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAEoi9W6-HvePqqLe=Yhh=_tRNPego98J3c3nD7oGjkqwgz9=rg@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
 <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>
 <202107021140.162BeWZt018129@freefriends.org>
 <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>
 <CAC20D2Oo62Q-PemN7r5RBxjVS+fsYvKddmu73xBGBnZkFWr+1w@mail.gmail.com>
 <CAEoi9W6-HvePqqLe=Yhh=_tRNPego98J3c3nD7oGjkqwgz9=rg@mail.gmail.com>
Message-ID: <9d28ce46-f314-bc00-d2db-1f11b353b9f3@mhorton.net>

As I recall, Rogue began to appear in late 1980 or early 81 at Berkeley. 
I primarily remember it on the Vax. But I thought Toy et al originally 
wrote it at UCSB and then it came to UCB. It was written for the Arnold 
curses, and served as the first major application to test it out.

I loved that game. Still do, although I rarely find time to play it 
anymore. It's widely available on web emulators these days, just search 
for "play rogue online". It will likely be the color DOS version, but it 
plays roughly the same.

The source was widely available and widely customized. I think I brought 
a copy with me to Bell Labs in 1981 where Bob Flandrena eventually 
sprouted the "brogue" variant. Some of the monsters could eat into the 
walls between rooms, and when there was a line of several chasing you 
down a hallway, one or two of them would pull around to pass... Brogue 
worked on my new curses, it was in effect part of the test suite.

Eric, of course, is the authority noting that ing70 was "i" and, as I 
recall, ingvax was "j".

 В В В  Mary Ann

On 7/2/21 2:09 PM, Dan Cross wrote:
> On Fri, Jul 2, 2021 at 9:07 AM Clem Cole <clemc at ccc.com 
> <mailto:clemc at ccc.com>> wrote:
>
>     On Fri, Jul 2, 2021 at 8:15 AM Dan Cross <crossd at gmail.com
>     <mailto:crossd at gmail.com>> wrote:
>
>         It is; it looks like it was first distributedВ with
>         4.3BSD-Tahoe. The sources there are listedВ as "public domain
>         rogue", but I'm not sure about the provenance of that code.
>
>     That sounds right, youВ should ask Ken Arnold offline, I bet he had
>     a better idea.He would have made them available to Keith.
>
>
> Great idea. I reached out on linked in, but don't have an email 
> address for Ken. Anyone have his contact information?
>
> I'm curious if e.g. Mary Ann has any thoughts here, since she took 
> over maintaining curses at some point and might have gotten some of 
> the inside story?
>
> Thanks for the responses so far, all.
>
> В  В  В  В  - Dan C.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210709/e616e4b8/attachment.htm>

From fair-tuhs at netbsd.org  Sat Jul 10 14:00:23 2021
From: fair-tuhs at netbsd.org (Erik E. Fair)
Date: Fri, 09 Jul 2021 21:00:23 -0700
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <9d28ce46-f314-bc00-d2db-1f11b353b9f3@mhorton.net>
References: <CAEoi9W6-HvePqqLe=Yhh=_tRNPego98J3c3nD7oGjkqwgz9=rg@mail.gmail.com>
Message-ID: <6602.1625889623@cesium.clock.org>

I collected some stuff in from those days; here's a BerkNet map
dated November 1981; mtime on my file is Jan 2 1984:


		T H E  B E R K E L E Y  N E T W O R K

			November 30, 1981

	 {ARPAnet}   Ing70				Legend
	     @	       #				- or |	1200 Baud
	     @	       #				= or #	9600 Baud
	    C70	     IngVAX {UUCPland}	  Image		@	ARPAnet
	     #	       #   /		    |
	     #	       #  /		    |
Onyx======ARPAvax====CSvax=====UCBCAD=====ESvax-----EECS40
	     #	       #		    |
	   Novax       #	 A	    |
		       #	 #	    |
	     F ======= G ======= C ------ Cory ----MathStat
		       #         #
		       #         #
		       D	 E ======== B
				 |
				 |
				SRC


		M A C H I N E   G U I D E 

Name 	Char 	Run By		Type	Vers.	Default Mach.	Comments
----	----	------		----	----	-------------	--------
A	a	C F & O		11/70	V7	C		PhotoTypesetter Machine
B	b	C F & O		11/70	V7	D		School of Business Administration Machine
C	c	C F & O		11/70	V7	A
D	d	C F & O		11/70	V7	C
E	e	C F & O		11/70	V7	C
F	f	C F & O		11/70	V7	E
G	g	C F & O		VAX	V7	E		VAX Populi
Ing70	i	ERL		11/70	V6	IngVAX
IngVAX	j	Ingres Group 	VAX	V7	Ing70		Ingres Bergman
Image	m	EE-Signal Proc.	Vax750	V7	ESvax
Kim	n	Floating Point	VAX	V7	CSvax		Kim NoVAX
ESvax	o	EECS-CE Res.	VAX	V7	CSvax		VAX Vobiscum			(UUCP passive)
UCBCAD	p	Newton		VAX	V7	ESvax						(UUCP passive)
ARPAvax	r	ARPA/CSRG	VAX	V7	CSvax		Bert				(UUCP passive)
SRC	s	Survey Res.	11/34	V6	D
MathStat t	Math/Stat Dept	11/45	V7	Cory
C70	u	ARPA/CSRG	BBN C/70	ARPAVAX		ARPAnet Server
CSvax	v	CS Research	VAX	V7	Cory		Ernie CoVAX			(UUCP active)
Cory	y	EECS Dept.	11/70	V7	CSvax		EECS Instructional Machine	(UUCP passive)
EECS40	z	EECS Dept.	11/40	V6	Ing70		EECS Administrative Machine (Soon to be replace with a Vax-11/750)

(the following machines are not connected or do not exist yet)

Virus	k	MicroBiology	11/40	V7	E		Politics Prevent Connection to the BerkNet
VLSI	l	Brodersen	VAX	V7	Image		On order, exp. June 81
HackOnyx q	CSUA Hackers	Onyx	V7	Cory		Existing, exp. March 82
STATVAX	w	Stat Dept.	COMET	V7	MathStat	On order, exp. Nov 81
Onyx	x	CSRG (Fabry)	Onyx	V7	Cory		z8000 Micro running v7 UNIX	(UUCP passive)

(Letters used: A-Z (total of 26))	(K & L may never happen)
Files 200,000 to 500,000 bytes are only transmitted between midnight and 6AM.
There is a file-length limit of 500,000 bytes, so that larger files must be split up (use the split command).
TeleNet is connected to the Port Selector (all of the Computer Center) {Network Address: 41587}

From nobozo at gmail.com  Sat Jul 10 15:04:55 2021
From: nobozo at gmail.com (Jon Forrest)
Date: Fri, 9 Jul 2021 22:04:55 -0700
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <9d28ce46-f314-bc00-d2db-1f11b353b9f3@mhorton.net>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
 <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>
 <202107021140.162BeWZt018129@freefriends.org>
 <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>
 <CAC20D2Oo62Q-PemN7r5RBxjVS+fsYvKddmu73xBGBnZkFWr+1w@mail.gmail.com>
 <CAEoi9W6-HvePqqLe=Yhh=_tRNPego98J3c3nD7oGjkqwgz9=rg@mail.gmail.com>
 <9d28ce46-f314-bc00-d2db-1f11b353b9f3@mhorton.net>
Message-ID: <909572cb-cdc7-ebfa-d01b-7adbadcfa1c2@gmail.com>



On 7/9/21 8:17 PM, Mary Ann Horton wrote:
> As I recall, Rogue began to appear in late 1980 or early 81 at Berkeley. 
> I primarily remember it on the Vax. But I thought Toy et al originally 
> wrote it at UCSB and then it came to UCB. 

I was at UCSB from the time the first Unix machine arrived until
1985. I'm not aware of any Rogue activity there.

> The source was widely available and widely customized. I think I brought 
> a copy with me to Bell Labs in 1981 where Bob Flandrena eventually 
> sprouted the "brogue" variant. Some of the monsters could eat into the 
> walls between rooms, and when there was a line of several chasing you 
> down a hallway, one or two of them would pull around to pass... Brogue 
> worked on my new curses, it was in effect part of the test.

I heard there was a version that contained Ed Gould roaming around.

Jon




From ralph at inputplus.co.uk  Sat Jul 10 21:51:35 2021
From: ralph at inputplus.co.uk (Ralph Corderoy)
Date: Sat, 10 Jul 2021 12:51:35 +0100
Subject: [TUHS] The Unix shell: a 50-year view
In-Reply-To: <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
Message-ID: <20210710115135.22FDC21C4E@orac.inputplus.co.uk>

Hi,

Jon Steinhart wrote:
> In lectures these days, I'm asking the question "We haven't managed to
> off more than a thousand or so people at a time with a software bug
> yet so what's going to be software's Union Carbide Bhopal moment?"

If buggy code rather than a single bug counts then the software model
written over fifteen years by Neil Ferguson of Imperial College, London,
which has been instrumental in poor UK Government policy decisions on
COVID-19 has easily topped more than a thousand deaths in the net tally.

It was a single 15,000-line file of C, written by a non-programmer.
Eventually, ic.ac.uk released a C++ version which had been worked on by
Microsoft and other volunteers for a month so it could face the public.

   ‘For me the code is not a mess, but it’s all in my head, completely
    undocumented.  Nobody would be able to use it... and I don’t have
    the bandwidth to support individual users.’ ― Neil Ferguson.

Politician Steve Baker MP, a former senior programmer, has been critical
of the public version and commissioned a review by Mike Hearn.  A path
to Hearn's paper starts at
https://threadreaderapp.com/thread/1323897771510943745.html

And another coder critique is at
https://lockdownsceptics.org/code-review-of-fergusons-model/

The numbers from Ferguson's original pre-release C program were
presented by him to NumberВ 10 and were instrumental in setting the UK on
the path of lockdowns.  ‘...lockdowns are the single worst public health
mistake in the last 100 years’ ― Jay Bhattacharya, professor of medicine
at Stanford University.

-- 
Cheers, Ralph.

From henry.r.bent at gmail.com  Sat Jul 10 23:54:28 2021
From: henry.r.bent at gmail.com (Henry Bent)
Date: Sat, 10 Jul 2021 09:54:28 -0400
Subject: [TUHS] The Unix shell: a 50-year view
In-Reply-To: <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
Message-ID: <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>

I'm going to come right out ahead of any path to the contrary and say that
I'm in favor of the lockdowns that were enacted in the US.  I very plainly
do not trust the population here to make reasonable decisions, even in the
face of clearly presented evidence to the contrary.  Furthermore, I have
not seen any evidence that US lawmakers acted according to any model
whatsoever.

The evidence being what it is, I applaud UK lawmakers for acting as they
did, and our hindsight evidence can only support increased funding for
statistical modeling.  It wasn't a widely regarded field before this and I
can only hope that its support improves after this.

-Henry

On Sat, 10 Jul 2021 at 08:02, Ralph Corderoy <ralph at inputplus.co.uk> wrote:

> Hi,
>
> Jon Steinhart wrote:
> > In lectures these days, I'm asking the question "We haven't managed to
> > off more than a thousand or so people at a time with a software bug
> > yet so what's going to be software's Union Carbide Bhopal moment?"
>
> If buggy code rather than a single bug counts then the software model
> written over fifteen years by Neil Ferguson of Imperial College, London,
> which has been instrumental in poor UK Government policy decisions on
> COVID-19 has easily topped more than a thousand deaths in the net tally.
>
> It was a single 15,000-line file of C, written by a non-programmer.
> Eventually, ic.ac.uk released a C++ version which had been worked on by
> Microsoft and other volunteers for a month so it could face the public.
>
>    ‘For me the code is not a mess, but it’s all in my head, completely
>     undocumented.  Nobody would be able to use it... and I don’t have
>     the bandwidth to support individual users.’ ― Neil Ferguson.
>
> Politician Steve Baker MP, a former senior programmer, has been critical
> of the public version and commissioned a review by Mike Hearn.  A path
> to Hearn's paper starts at
> https://threadreaderapp.com/thread/1323897771510943745.html
>
> And another coder critique is at
> https://lockdownsceptics.org/code-review-of-fergusons-model/
>
> The numbers from Ferguson's original pre-release C program were
> presented by him to Number 10 and were instrumental in setting the UK on
> the path of lockdowns.  ‘...lockdowns are the single worst public health
> mistake in the last 100 years’ ― Jay Bhattacharya, professor of medicine
> at Stanford University.
>
> --
> Cheers, Ralph.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210710/e2f29fd3/attachment.htm>

From ralph at inputplus.co.uk  Sun Jul 11 00:12:17 2021
From: ralph at inputplus.co.uk (Ralph Corderoy)
Date: Sat, 10 Jul 2021 15:12:17 +0100
Subject: [TUHS] The Unix shell: a 50-year view
In-Reply-To: <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
 <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
Message-ID: <20210710141217.8795F21CD1@orac.inputplus.co.uk>

Hi Henry,

> I'm going to come right out ahead of any path to the contrary and say
> that I'm in favor of the lockdowns that were enacted in the US.

Death-by-bug is OT enough for TUHS to begin with, though ‘entertaining’.
Can we try and keep the thread to that together with any argument for
why a bug caused net deaths.

-- 
Cheers, Ralph.

From jon at fourwinds.com  Sun Jul 11 02:57:18 2021
From: jon at fourwinds.com (Jon Steinhart)
Date: Sat, 10 Jul 2021 09:57:18 -0700
Subject: [TUHS] Death by bug [formerly The Unix shell: a 50-year view]
In-Reply-To: <20210710141217.8795F21CD1@orac.inputplus.co.uk>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
 <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
 <20210710141217.8795F21CD1@orac.inputplus.co.uk>
Message-ID: <202107101657.16AGvIHu2818628@darkstar.fourwinds.com>

Ralph Corderoy writes:
> Hi Henry,
>
> > I'm going to come right out ahead of any path to the contrary and say
> > that I'm in favor of the lockdowns that were enacted in the US.
>
> Death-by-bug is OT enough for TUHS to begin with, though ‘entertaining’.
> Can we try and keep the thread to that together with any argument for
> why a bug caused net deaths.
>
> -- 
> Cheers, Ralph.

C'mon folks, is it really that hard to have a relevant subject line?
Especially you Ralph, as I know that you're an nmh user so it's just
a text editor :-)

So while I agree with your example, I guess that I was contemplating
the sort of example that makes the public take notice.  Arguments
about statistical models are lost on 99% of the population.

Jon


From jon at fourwinds.com  Sun Jul 11 05:18:04 2021
From: jon at fourwinds.com (Jon Steinhart)
Date: Sat, 10 Jul 2021 12:18:04 -0700
Subject: [TUHS] The Unix shell: a 50-year view - hopefully final review of
 letter
Message-ID: <202107101918.16AJI4N02822420@darkstar.fourwinds.com>

Once again, thanks to everybody who as contributed to making this a
better letter.  Many of you have asked to be co-signers.  Please
let me know if I've included your name by mistake or if you'd like
your name to be added.  And, of course, let me know if any more
edits are required.

BTW, except where I'm quoting the paper I use UNIX instead of Unix
as that's what I believe is the correct form.  Please let me know
if that's not correct.

Thanks,
	Jon



I read the "Unix Shell Programming: The Next 50 Years" paper
expecting some well thought out wisdom.  I was sorely disappointed.

The paper is lacking the generally accepted form of:

 o  What problem are you trying to solve?
 o  What have others done?
 o  What's our approach?
 o  How does it do?

Some particulars:

 o  The paper never defines what is meant by the term "Unix shell."
    I think that you're using it to mean a command interpreter as
    described in the POSIX 1003.2 documents.

 o  The paper makes liberal use of the term "Unix" such as "... in
    every Unix distribution." While systems descended from UNIX
    abound few actual instances of UNIX exist today.

 o  There is no 50-year-old UNIX shell.  I started using UNIX in the
    early 1970s, and the command interpreter at the time (Ken Thompson's
    shell) was nothing like later shells such as the Bourne shell (sh
    since research V7 UNIX), Korn shell (ksh), C shell (csh), and the
    Bourne again shell (bash).  UNIX mainstreamed the notion of a
    command interpreter that was not baked into the system.  The paper
    lacks any discussion of prior art.  In practice, shell implementations
    either predate the POSIX standard or were built afterwards and
    include non-standard extensions.

 o  The paper repeatedly claims that the shell has been largely ignored by
    academia and industry.  Yet, it does not include any references to
    support that claim.  In fact, the large body of published work on
    shells and ongoing work on shells such as zsh shows that claim to be
    incorrect.

 o  The large number of pejorative statements detract from the academic
    value of the paper.  And, in my opinion, these statements are provably
    false.  It reads as if the authors are projecting their personal
    opinions onto the rest of the world.

 o  The paper applies universal complaints such as "unmaintainable" to the
    shell; it doesn't call out any shell-specific problems.  It doesn't
    explain whether these complaints are against scripts, implementations,
    or both.  One of the reasons for the longevity of the family of shells
    descended from Bourne's sh is that experienced practitioners have been
    able to write easily maintainable code.  Scripts written in the 1980s
    are still around and working fine.

 o  The paper seems to complain about the fact that the shell is documented.
    This is astonishing.  Proper documentation has always been a key
    component of being a professional, at least in my decades of experience.
    As a matter of fact, my boss telling me that "nobody will give a crap
    about your work unless you write a good paper" when I was a teenager
    at Bell Labs is what led me to UNIX and roff.

 o  The paper includes non-sequiturs such as discussions about Docker
    and systemd that have nothing to to with the shell.

 o  The paper has many "no-op" statements such as "arguably improved" that
    provide no useful information.

 o  The example on page 105 don't work as there is no input to "cut".

 o  The single result in Figure 1 is insufficient evidence that the
    approach works on a wide variety of problems.

 o  The paper gives the appearance that the authors don't actually understand
    the Bourne shell semantics.  Not just my opinion; Steve Bourne expressed
    that in an email to me after he read your paper, and I consider him to be
    a subject matter expert.

 o  The paper confuses the performance of the shell with the performance of
    external commands executed by the shell.

 o  Proofreading should have caught things like "improve performance
    performance" on page 107 among others.

I think that the paper is really trying to say:

 o  Programmable command interpreters such as those found in UNIX based
    systems have been around for a long time.  For this paper, we're
    focusing on the GNU bash implementation of the POSIX P1003.2 shell.
    Other command interpreters predate UNIX.

 o  This implementation is used more often than many other scripting
    languages because it is available and often installed as the default
    command interpreter on most modern systems (UNIX-based and otherwise).
    In particular, it is often the default for Linux systems.

 o  The shell as defined above is being used in more complex environments
    than existed at the time of its creation.  This exposes a new set of
    performance issues.

 o  While much work has been done by the bash implementers, it's primarily
    been in the area of expanding the functionality, usually in a
    backward-compatible manner.   Other shells such as the original ksh and
    later ash and zsh were implemented with an eye towards the performance
    of the internals and user perspectives.

 o  Performance optimization using modern techniques such as JIT compilation
    have been applied to other languages but not to POSIX shell implementations.
    This paper looks at doing that.  It is unsurprising that techniques that
    have worked elsewhere work here too.

It's hard to imagine that the application of this technique is all that's
required for a 50-year life extension.  The title of this paper implies
that it's going to be comprehensive but instead concentrates on a couple
of projects.  It ignores other active work on shells such as "fish".  While
it wouldn't eliminate the issues with the paper, they would not have been
quite so glaring had it had a more modest title such as "Improving POSIX
Shell Performance with JIT Compilation".

Jon Steinhart plus John Cowan, Warner Losh,
John Dow, Steve Bourne, Larry McVoy, and Clem Cole

From rdm at cfcl.com  Sun Jul 11 05:27:21 2021
From: rdm at cfcl.com (Rich Morin)
Date: Sat, 10 Jul 2021 12:27:21 -0700
Subject: [TUHS] The Unix shell: a 50-year view - hopefully final review
 of letter
In-Reply-To: <202107101918.16AJI4N02822420@darkstar.fourwinds.com>
References: <202107101918.16AJI4N02822420@darkstar.fourwinds.com>
Message-ID: <3D562A05-3081-4C09-9D36-743FC42530F0@cfcl.com>

> Unix (/Л€juЛђnЙЄks/; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others. ... -- https://en.wikipedia.org/wiki/Unix

Perhaps UNIX is to Unix as STREAMS is to streams? (:-).

-r

> On Jul 10, 2021, at 12:18, Jon Steinhart <jon at fourwinds.com> wrote:
> 
> BTW, except where I'm quoting the paper I use UNIX instead of Unix
> as that's what I believe is the correct form.  Please let me know
> if that's not correct.


From jnc at mercury.lcs.mit.edu  Sun Jul 11 06:02:37 2021
From: jnc at mercury.lcs.mit.edu (Noel Chiappa)
Date: Sat, 10 Jul 2021 16:02:37 -0400 (EDT)
Subject: [TUHS] The Unix shell: a 50-year view - hopefully final review
 of letter
Message-ID: <20210710200237.28FA018C0AB@mercury.lcs.mit.edu>

    > From: Jon Steinhart

    > I use UNIX instead of Unix as that's what I believe is the correct form.

Well, Bell documentation uses "UNIX" through V6:

  https://minnie.tuhs.org//cgi-bin/utree.pl?file=V6/usr/doc/start/start

"Unix" starts to appear with V7:

  https://minnie.tuhs.org//cgi-bin/utree.pl?file=V7/usr/doc/setup

As mentioned, the trademark is "UNIX".

I don't really have a fixed position on _the_ way to spell it: when I'm
wiriting about a specific version (e.g. V6) I use the capitalization as of
that version; for general text I'd probably use 'Unix', as that seems to be
general now. But I could easily be convinced otherwise.

	Noel

From beebe at math.utah.edu  Sun Jul 11 06:09:14 2021
From: beebe at math.utah.edu (Nelson H. F. Beebe)
Date: Sat, 10 Jul 2021 14:09:14 -0600
Subject: [TUHS] The Unix shell: a 50-year view - hopefully final review
 of letter
In-Reply-To: <20210710200237.28FA018C0AB@mercury.lcs.mit.edu>
Message-ID: <CMM.0.95.0.1625947754.beebe@gamma.math.utah.edu>

Jon Steinhart writes

> I use UNIX instead of Unix as that's what I believe is the correct form.

Brian Kernighan addresses this issue in section 7.3 of his
recent memoir: it has "UNIX A History and a Memoir" on the
cover, but prefers "Unix" in the rest of that book, except
in the noted section.  He also refers back to the 1984
book with Rob Pike, "The UNIX Programming Environment",
in which the typography uses small caps for "UNIX".

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------

From jon at fourwinds.com  Sun Jul 11 06:11:36 2021
From: jon at fourwinds.com (Jon Steinhart)
Date: Sat, 10 Jul 2021 13:11:36 -0700
Subject: [TUHS] The Unix shell: a 50-year view - hopefully final review
 of letter
In-Reply-To: <CMM.0.95.0.1625947754.beebe@gamma.math.utah.edu>
References: <CMM.0.95.0.1625947754.beebe@gamma.math.utah.edu>
Message-ID: <202107102011.16AKBaVh2824331@darkstar.fourwinds.com>

Nelson H. F. Beebe writes:
> Jon Steinhart writes
>
> > I use UNIX instead of Unix as that's what I believe is the correct form.
>
> Brian Kernighan addresses this issue in section 7.3 of his
> recent memoir: it has "UNIX A History and a Memoir" on the
> cover, but prefers "Unix" in the rest of that book, except
> in the noted section.  He also refers back to the 1984
> book with Rob Pike, "The UNIX Programming Environment",
> in which the typography uses small caps for "UNIX".

Yeah, small caps was what I always considered correct.

From mah at mhorton.net  Sun Jul 11 07:09:08 2021
From: mah at mhorton.net (Mary Ann Horton)
Date: Sat, 10 Jul 2021 14:09:08 -0700
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <909572cb-cdc7-ebfa-d01b-7adbadcfa1c2@gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
 <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>
 <202107021140.162BeWZt018129@freefriends.org>
 <CAEoi9W7K7h5sdSnXeRcVjLd-JOuyDq6zYx8QVpwGhXKrO3k5cw@mail.gmail.com>
 <CAC20D2Oo62Q-PemN7r5RBxjVS+fsYvKddmu73xBGBnZkFWr+1w@mail.gmail.com>
 <CAEoi9W6-HvePqqLe=Yhh=_tRNPego98J3c3nD7oGjkqwgz9=rg@mail.gmail.com>
 <9d28ce46-f314-bc00-d2db-1f11b353b9f3@mhorton.net>
 <909572cb-cdc7-ebfa-d01b-7adbadcfa1c2@gmail.com>
Message-ID: <9e0384b1-c0be-379f-422c-3c86384c3b96@mhorton.net>


On 7/9/21 10:04 PM, Jon Forrest wrote:
>
>
> On 7/9/21 8:17 PM, Mary Ann Horton wrote:
>> As I recall, Rogue began to appear in late 1980 or early 81 at 
>> Berkeley. I primarily remember it on the Vax. But I thought Toy et al 
>> originally wrote it at UCSB and then it came to UCB. 
>
> I was at UCSB from the time the first Unix machine arrived until
> 1985. I'm not aware of any Rogue activity there.
>
The brain synapses have grown dusty. I meant UC Santa Cruz.



From robpike at gmail.com  Sun Jul 11 07:54:26 2021
From: robpike at gmail.com (Rob Pike)
Date: Sun, 11 Jul 2021 07:54:26 +1000
Subject: [TUHS] The Unix shell: a 50-year view - hopefully final review
 of letter
In-Reply-To: <202107102011.16AKBaVh2824331@darkstar.fourwinds.com>
References: <CMM.0.95.0.1625947754.beebe@gamma.math.utah.edu>
 <202107102011.16AKBaVh2824331@darkstar.fourwinds.com>
Message-ID: <CAKzdPgyOVJk+d-N6H8Gtyy4P4wzczpEP1VpwXORFERV=R=qafw@mail.gmail.com>

Yes, a related issue came up when dmr rebelled when the lawyers made him
rewrite a phrase when reprinting a paper in the BSTJ. For some reason, he
didn't prefer the rewrite: "PDP-11 computer system UNIX system file system".

-rob


On Sun, Jul 11, 2021 at 6:12 AM Jon Steinhart <jon at fourwinds.com> wrote:

> Nelson H. F. Beebe writes:
> > Jon Steinhart writes
> >
> > > I use UNIX instead of Unix as that's what I believe is the correct
> form.
> >
> > Brian Kernighan addresses this issue in section 7.3 of his
> > recent memoir: it has "UNIX A History and a Memoir" on the
> > cover, but prefers "Unix" in the rest of that book, except
> > in the noted section.  He also refers back to the 1984
> > book with Rob Pike, "The UNIX Programming Environment",
> > in which the typography uses small caps for "UNIX".
>
> Yeah, small caps was what I always considered correct.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210711/4eee2f23/attachment.htm>

From robpike at gmail.com  Sun Jul 11 07:55:12 2021
From: robpike at gmail.com (Rob Pike)
Date: Sun, 11 Jul 2021 07:55:12 +1000
Subject: [TUHS] The Unix shell: a 50-year view - hopefully final review
 of letter
In-Reply-To: <CAKzdPgyOVJk+d-N6H8Gtyy4P4wzczpEP1VpwXORFERV=R=qafw@mail.gmail.com>
References: <CMM.0.95.0.1625947754.beebe@gamma.math.utah.edu>
 <202107102011.16AKBaVh2824331@darkstar.fourwinds.com>
 <CAKzdPgyOVJk+d-N6H8Gtyy4P4wzczpEP1VpwXORFERV=R=qafw@mail.gmail.com>
Message-ID: <CAKzdPgy-eCpPitDM6DBkJFNvCTPMQKrVC-pXVjTFaOoVdbnFTA@mail.gmail.com>

(There were some в„ў's in there too.)


On Sun, Jul 11, 2021 at 7:54 AM Rob Pike <robpike at gmail.com> wrote:

> Yes, a related issue came up when dmr rebelled when the lawyers made him
> rewrite a phrase when reprinting a paper in the BSTJ. For some reason, he
> didn't prefer the rewrite: "PDP-11 computer system UNIX system file system".
>
> -rob
>
>
> On Sun, Jul 11, 2021 at 6:12 AM Jon Steinhart <jon at fourwinds.com> wrote:
>
>> Nelson H. F. Beebe writes:
>> > Jon Steinhart writes
>> >
>> > > I use UNIX instead of Unix as that's what I believe is the correct
>> form.
>> >
>> > Brian Kernighan addresses this issue in section 7.3 of his
>> > recent memoir: it has "UNIX A History and a Memoir" on the
>> > cover, but prefers "Unix" in the rest of that book, except
>> > in the noted section.  He also refers back to the 1984
>> > book with Rob Pike, "The UNIX Programming Environment",
>> > in which the typography uses small caps for "UNIX".
>>
>> Yeah, small caps was what I always considered correct.
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210711/2b660fd5/attachment.htm>

From ralph at inputplus.co.uk  Sun Jul 11 18:53:46 2021
From: ralph at inputplus.co.uk (Ralph Corderoy)
Date: Sun, 11 Jul 2021 09:53:46 +0100
Subject: [TUHS] Death by bug
In-Reply-To: <202107101657.16AGvIHu2818628@darkstar.fourwinds.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
 <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
 <20210710141217.8795F21CD1@orac.inputplus.co.uk>
 <202107101657.16AGvIHu2818628@darkstar.fourwinds.com>
Message-ID: <20210711085346.1951E21F16@orac.inputplus.co.uk>

Hi Jon,

> So while I agree with your example, I guess that I was contemplating
> the sort of example that makes the public take notice.  Arguments
> about statistical models are lost on 99% of the population.

True.

I don't know of any but if I had to pick an area where they might be
occurring it would be medical devices.  I've been an external reviewer
of a company's embedded C code for a medical device in the past,
bare-metal, simple pre-emptive round-robin task-switcher, etc., though
my suggestion is nothing to do with their quality of work or products,
just that the level of detail they went to shows how slacker companies
could err.

The Therac-25 gave fatal radiation doses in a few cases.  These were
obvious when they occurred.  https://en.wikipedia.org/wiki/Therac-25

What if a medical device which sits in the background quietly doing its
continuous, but sometimes vital, thing had the occasional hiccough from
which it recovered?  If the blip is only fatal in patients which were
already touch and go and device fault left no obvious sign to suggest
death wasn't caused by the initial ailment then the cause of death would
be, quite reasonably, assumed.  

Given some devices are present in large numbers for many years in
hospitals, and there's a lot of hospitals, an unnoticed bug could be
steadily chipping away at its human overlords.

-- 
Cheers, Ralph.

From arnold at skeeve.com  Sun Jul 11 19:04:53 2021
From: arnold at skeeve.com (arnold at skeeve.com)
Date: Sun, 11 Jul 2021 03:04:53 -0600
Subject: [TUHS] Death by bug
In-Reply-To: <20210711085346.1951E21F16@orac.inputplus.co.uk>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
 <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
 <20210710141217.8795F21CD1@orac.inputplus.co.uk>
 <202107101657.16AGvIHu2818628@darkstar.fourwinds.com>
 <20210711085346.1951E21F16@orac.inputplus.co.uk>
Message-ID: <202107110904.16B94rKu012217@freefriends.org>

Ralph Corderoy <ralph at inputplus.co.uk> wrote:

> Given some devices are present in large numbers for many years in
> hospitals, and there's a lot of hospitals, an unnoticed bug could be
> steadily chipping away at its human overlords.

This is why I have purposely stayed away from jobs at companies doing
stuff like this. I know I don't write perfect code; I don't want to
be responsible for devices that can affect human life.  This is also
discussed in the new edition of "The Pragmatic Programmer", which I've
just finished reading. (Highly recommended.)

Arnold

From jon at fourwinds.com  Mon Jul 12 02:10:57 2021
From: jon at fourwinds.com (Jon Steinhart)
Date: Sun, 11 Jul 2021 09:10:57 -0700
Subject: [TUHS] Death by bug
In-Reply-To: <20210711085346.1951E21F16@orac.inputplus.co.uk>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
 <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
 <20210710141217.8795F21CD1@orac.inputplus.co.uk>
 <202107101657.16AGvIHu2818628@darkstar.fourwinds.com>
 <20210711085346.1951E21F16@orac.inputplus.co.uk>
Message-ID: <202107111610.16BGAv5u2851405@darkstar.fourwinds.com>

Ralph Corderoy writes:
> Hi Jon,
>
> > So while I agree with your example, I guess that I was contemplating
> > the sort of example that makes the public take notice.  Arguments
> > about statistical models are lost on 99% of the population.
>
> True.
>
> I don't know of any but if I had to pick an area where they might be
> occurring it would be medical devices.  I've been an external reviewer
> of a company's embedded C code for a medical device in the past,
> bare-metal, simple pre-emptive round-robin task-switcher, etc., though
> my suggestion is nothing to do with their quality of work or products,
> just that the level of detail they went to shows how slacker companies
> could err.
>
> The Therac-25 gave fatal radiation doses in a few cases.  These were
> obvious when they occurred.  https://en.wikipedia.org/wiki/Therac-25
>
> What if a medical device which sits in the background quietly doing its
> continuous, but sometimes vital, thing had the occasional hiccough from
> which it recovered?  If the blip is only fatal in patients which were
> already touch and go and device fault left no obvious sign to suggest
> death wasn't caused by the initial ailment then the cause of death would
> be, quite reasonably, assumed.  
>
> Given some devices are present in large numbers for many years in
> hospitals, and there's a lot of hospitals, an unnoticed bug could be
> steadily chipping away at its human overlords.
>
> -- 
> Cheers, Ralph.

Well, we agree once again.  I have done a lot of work on medical devices,
and was surprised at the lack of diligence on the part of some of the
people with whom I worked.  But your example is similar to the way that
people have trouble with COVID - there's too much of a lag between
exposure and symptoms for many folks to make the connection.  So I'm kind
of wondering what sort of bug may blow up a refinery or chemical plant and
cause enough loss of life and damage to make people take notice.

Jon

From tytso at mit.edu  Mon Jul 12 11:42:58 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Sun, 11 Jul 2021 21:42:58 -0400
Subject: [TUHS] Death by bug
In-Reply-To: <202107110904.16B94rKu012217@freefriends.org>
References: <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
 <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
 <20210710141217.8795F21CD1@orac.inputplus.co.uk>
 <202107101657.16AGvIHu2818628@darkstar.fourwinds.com>
 <20210711085346.1951E21F16@orac.inputplus.co.uk>
 <202107110904.16B94rKu012217@freefriends.org>
Message-ID: <YOueIvV0QOR8Em8g@mit.edu>

On Sun, Jul 11, 2021 at 03:04:53AM -0600, arnold at skeeve.com wrote:
> Ralph Corderoy <ralph at inputplus.co.uk> wrote:
> 
> > Given some devices are present in large numbers for many years in
> > hospitals, and there's a lot of hospitals, an unnoticed bug could be
> > steadily chipping away at its human overlords.
> 
> This is why I have purposely stayed away from jobs at companies doing
> stuff like this. I know I don't write perfect code; I don't want to
> be responsible for devices that can affect human life.  This is also
> discussed in the new edition of "The Pragmatic Programmer", which I've
> just finished reading. (Highly recommended.)

We should never be depending on a human being able to write "perfect
code".  Instead, we need to come up with processes so that imperfect
code doesn't escape into production *despite* the fact that humans are
fallible.  Such processes might include requiring unit tests,
integration tests, stress tests, etc., requiring code reivews by a
second pair of eyes, perhaps using formal proofs, having multiple
implementations of critical algorithms, cross-checking the results
from those independent implementations, and so on.

The space shuttle used a number of these techniques.  It did *not*
depend on super-human, Гњber-programmers.

						- Ted

From jon at fourwinds.com  Mon Jul 12 12:57:16 2021
From: jon at fourwinds.com (Jon Steinhart)
Date: Sun, 11 Jul 2021 19:57:16 -0700
Subject: [TUHS] Death by bug
In-Reply-To: <YOueIvV0QOR8Em8g@mit.edu>
References: <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
 <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
 <20210710141217.8795F21CD1@orac.inputplus.co.uk>
 <202107101657.16AGvIHu2818628@darkstar.fourwinds.com>
 <20210711085346.1951E21F16@orac.inputplus.co.uk>
 <202107110904.16B94rKu012217@freefriends.org> <YOueIvV0QOR8Em8g@mit.edu>
Message-ID: <202107120257.16C2vHne2869581@darkstar.fourwinds.com>

Theodore Y. Ts'o writes:
> On Sun, Jul 11, 2021 at 03:04:53AM -0600, arnold at skeeve.com wrote:
> > Ralph Corderoy <ralph at inputplus.co.uk> wrote:
> > 
> > > Given some devices are present in large numbers for many years in
> > > hospitals, and there's a lot of hospitals, an unnoticed bug could be
> > > steadily chipping away at its human overlords.
> > 
> > This is why I have purposely stayed away from jobs at companies doing
> > stuff like this. I know I don't write perfect code; I don't want to
> > be responsible for devices that can affect human life.  This is also
> > discussed in the new edition of "The Pragmatic Programmer", which I've
> > just finished reading. (Highly recommended.)
>
> We should never be depending on a human being able to write "perfect
> code".  Instead, we need to come up with processes so that imperfect
> code doesn't escape into production *despite* the fact that humans are
> fallible.  Such processes might include requiring unit tests,
> integration tests, stress tests, etc., requiring code reivews by a
> second pair of eyes, perhaps using formal proofs, having multiple
> implementations of critical algorithms, cross-checking the results
> from those independent implementations, and so on.
>
> The space shuttle used a number of these techniques.  It did *not*
> depend on super-human, пїЅber-programmers.
>
> 						- Ted

In general I agree with you.  But the "we should never" ignores the fact
that we do.  It's a complicated problem.  A major component is that
our "legal" system allows companies to externalize their liabilities.
And it's difficult to come up a way to assign liability without severely
harming the open source world.  As I've said before, if your car crashed
as often as your Windows you probably wouldn't keep buying from the same
manufacturer.

Part of my preferred process is to have two software review teams.  One
has access to the source code, the other doesn't.  But of course this is
now often not possible when companies used closed-source components that
they purchase.

As someone who agrees with Feynman's dissent on the Challenger commission,
I think that incremental improvement is a good way to go.  But, we live in
an age where many folks would rather come up with something bloated and new
rather than build on what's come before.  That's making it more and more
difficult to distinguish between "full stack" and a landfill.

Jon

From arnold at skeeve.com  Mon Jul 12 16:39:01 2021
From: arnold at skeeve.com (arnold at skeeve.com)
Date: Mon, 12 Jul 2021 00:39:01 -0600
Subject: [TUHS] Death by bug
In-Reply-To: <YOueIvV0QOR8Em8g@mit.edu>
References: <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
 <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
 <20210710141217.8795F21CD1@orac.inputplus.co.uk>
 <202107101657.16AGvIHu2818628@darkstar.fourwinds.com>
 <20210711085346.1951E21F16@orac.inputplus.co.uk>
 <202107110904.16B94rKu012217@freefriends.org>
 <YOueIvV0QOR8Em8g@mit.edu>
Message-ID: <202107120639.16C6d1R8001426@freefriends.org>

"Theodore Y. Ts'o" <tytso at mit.edu> wrote:

> On Sun, Jul 11, 2021 at 03:04:53AM -0600, arnold at skeeve.com wrote:
> > This is why I have purposely stayed away from jobs at companies doing
> > stuff like this. I know I don't write perfect code; I don't want to
> > be responsible for devices that can affect human life.  This is also
> > discussed in the new edition of "The Pragmatic Programmer", which I've
> > just finished reading. (Highly recommended.)
>
> We should never be depending on a human being able to write "perfect
> code".  Instead, we need to come up with processes so that imperfect
> code doesn't escape into production *despite* the fact that humans are
> fallible.  Such processes might include requiring unit tests,
> integration tests, stress tests, etc., requiring code reivews by a
> second pair of eyes, perhaps using formal proofs, having multiple
> implementations of critical algorithms, cross-checking the results
> from those independent implementations, and so on.
>
> The space shuttle used a number of these techniques.  It did *not*
> depend on super-human, Гњber-programmers.

I strongly agree with all that. But given that many places don't use such
practices (especially startups), I prefer not to put myself into
situations where safety of the product depends entirely on the skills
of the programming team.

Arnold

From ralph at inputplus.co.uk  Mon Jul 12 19:56:39 2021
From: ralph at inputplus.co.uk (Ralph Corderoy)
Date: Mon, 12 Jul 2021 10:56:39 +0100
Subject: [TUHS] Death by bug
In-Reply-To: <YOueIvV0QOR8Em8g@mit.edu>
References: <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
 <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
 <20210710141217.8795F21CD1@orac.inputplus.co.uk>
 <202107101657.16AGvIHu2818628@darkstar.fourwinds.com>
 <20210711085346.1951E21F16@orac.inputplus.co.uk>
 <202107110904.16B94rKu012217@freefriends.org> <YOueIvV0QOR8Em8g@mit.edu>
Message-ID: <20210712095639.0BFE121E8F@orac.inputplus.co.uk>

Hi Ted,

> > This is why I have purposely stayed away from jobs at companies
> > doing stuff like this. I know I don't write perfect code; I don't
> > want to be responsible for devices that can affect human life.
>
> We should never be depending on a human being able to write "perfect
> code".

And no one has suggested we do; Arnold just pointed out he knows doesn't
which is a good first step to working on critical software.

> Instead, we need to come up with processes so that imperfect code
> doesn't escape into production *despite* the fact that humans are
> fallible.  Such processes might include requiring unit tests,
> integration tests, stress tests, etc., requiring code reivews by a
> second pair of eyes, perhaps using formal proofs, having multiple
> implementations of critical algorithms, cross-checking the results
> from those independent implementations, and so on.

Haven't you just pushed the need for perfection from coding to processes
to achieve ‘imperfect code doesn't escape into production’.  Perfection
doesn't exist there either.

-- 
Cheers, Ralph.

From ralph at inputplus.co.uk  Mon Jul 12 20:37:08 2021
From: ralph at inputplus.co.uk (Ralph Corderoy)
Date: Mon, 12 Jul 2021 11:37:08 +0100
Subject: [TUHS] Death by bug
In-Reply-To: <202107111610.16BGAv5u2851405@darkstar.fourwinds.com>
References: <CAEdTPBfs1S91FCKfHGojgaT9edODhWPRs9W2ZGmpN3frsyXCvw@mail.gmail.com>
 <06737C14-1122-4832-BCAA-A37B242F69E4@me.com>
 <CAC20D2Ps4V1V6hn9s-0Y6W0Qb8eX_MrGMUtoudvk3aKErPuBzg@mail.gmail.com>
 <CAGfO01xwG2ahSKSz7qRu-aVpNxPB4b+8C_a3PjdMXhPKEZEnCg@mail.gmail.com>
 <CAGg_6+MwmwBkbKHd2L55DV5=JSGd+Fz4Gi6iBaH0cS3i57uSUg@mail.gmail.com>
 <CAC20D2N2dmsX21fPO5_nHU7RTC+Kbsr0x_Hqvv2cr9C8Dpdeng@mail.gmail.com>
 <YOSDmL7dCmy2KYGz@mit.edu>
 <CAEoi9W6oDNmGgMo+cF163KW9AVmj7xvBYBORDwTHmOBGgX68cw@mail.gmail.com>
 <202107071828.167ISgdN2686558@darkstar.fourwinds.com>
 <20210710115135.22FDC21C4E@orac.inputplus.co.uk>
 <CAEdTPBer7fHrdcF6oXnmtFLOjVuwhAfiyc3eLkr__9AM-ORX1w@mail.gmail.com>
 <20210710141217.8795F21CD1@orac.inputplus.co.uk>
 <202107101657.16AGvIHu2818628@darkstar.fourwinds.com>
 <20210711085346.1951E21F16@orac.inputplus.co.uk>
 <202107111610.16BGAv5u2851405@darkstar.fourwinds.com>
Message-ID: <20210712103708.ECB1221E8F@orac.inputplus.co.uk>

Hi Jon,

> So I'm kind of wondering what sort of bug may blow up a refinery or
> chemical plant and cause enough loss of life and damage to make people
> take notice.

I see, a ‘big bang’ disaster, like Bhopal, rather than a gradual
sniping.

There's the Battery Management System software which controls the
charging and discharge of Lithium-ion batteries.  I don't mean a burning
laptop causing an airliner to go down, more a shipping container stuffed
full of the things going up.

There is an interesting recent paper on the flaws in ‘Battery Energy
Storage Systems’ and defending against the inevitable lithium metal
dendrites.  It assumes the BMS has no flaws but if it did then the same
end effect could occur.  Here's some extracts from the ‘Executive
Summary’.

    Safety of Grid Scale Lithium-ion Battery Energy Storage Systems
    https://www.researchgate.net/publication/352158070_Safety_of_Grid_Scale_Lithium-ion_Battery_Energy_Storage_Systems

    Li-ion batteries are dominant in large, grid-scale, Battery Energy
    Storage Systems (BESS) of several MWh and upwards in capacity.
    Several proposals for large-scale solar photovoltaic (PV) “energy
    farms” are current, incorporating very large capacity BESS.

    Despite storing electrochemical energy of many hundreds of tons of
    TNT equivalent, and several times the energy released in the August
    2020 Beirut explosion, these BESS are regarded as “articles” by the
    Health and Safety Executive (HSE), in defiance of the Control of
    Major Accident Hazards Regulations (COMAH) 2015, intended to
    safeguard public health...

    Li-ion batteries can fail by “thermal runaway” where overheating in
    a single faulty cell can propagate to neighbours with energy
    releases popularly known as “battery fires”.  These are not strictly
    “fires” at all, requiring no oxygen to propagate.  They are
    uncontrollable except by extravagant water cooling.  They evolve
    toxic gases such as Hydrogen Fluoride (HF) and highly inflammable
    gases including Hydrogen (H2), Methane (CH4), Ethylene (C2H4) and
    Carbon Monoxide (CO).  These in turn may cause further explosions or
    fires upon ignition.  The chemical energy then released can be up to
    20 times the stored electrochemical energy.

    “Battery fires” in grid scale BESS have occurred in South Korea,
    Belgium (2017), Arizona (2019) and in urban Liverpool (Sept 2020)...
    A report into the Liverpool “fire” though promised for New Year
    2021, has not yet been released...

    No existing engineering standards address thermal runaway
    adequately, or require measures (such as those already used in EV
    batteries) to pre-empt propagation of runaway events.

And BMS's get a few mentions, e.g.:

    Li-ion batteries are sensitive to mechanical damage and electrical
    surges, both in over-charging and discharging.  Most of this can
    however be safeguarded by an appropriate Battery Management System
    (BMS)...

-- 
Cheers, Ralph.

From lyndon at orthanc.ca  Wed Jul 14 03:48:01 2021
From: lyndon at orthanc.ca (Lyndon Nerenberg (VE7TFX/VE6BBM))
Date: Tue, 13 Jul 2021 10:48:01 -0700
Subject: [TUHS] First machine to run rogue?
In-Reply-To: <CAC20D2PepaO8mtat=J1CPg-nFO4-c4WbjNAK+_Q60a1_y5djEw@mail.gmail.com>
References: <CAEoi9W6Tr=b7O2Bn+GkXYCadCqrDdXiLTkL=eX-RaDZ9a7m+bw@mail.gmail.com>
 <CAC20D2OeAuk+FdqU=qe_TZ6wNpenfbOgdnk4UaEPRdEtyvvJ4g@mail.gmail.com>
 <CAEoi9W6Bk4qD7MFvA4nBhHg+Hn-8j0CXgkedh2PTObJ+mH2=bA@mail.gmail.com>
 <202107021140.162BeWZt018129@freefriends.org>
 <CAC20D2PepaO8mtat=J1CPg-nFO4-c4WbjNAK+_Q60a1_y5djEw@mail.gmail.com>
Message-ID: <8f1b79c4058a09bc@orthanc.ca>

You could buy source for a version of rogue from the AT&T Software
Toolchest.  We bought a copy and ran it on CTIX and 4.2BSD, among
others.  I don't recall any portability issues, and have long forgotten
everything related to licensing, code provenance, etc.

--lyndon

From dave at horsfall.org  Wed Jul 14 08:28:43 2021
From: dave at horsfall.org (Dave Horsfall)
Date: Wed, 14 Jul 2021 08:28:43 +1000 (EST)
Subject: [TUHS] 386BSD released
Message-ID: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>

In 1992, 386BSD is released by Lynne and William Jolitz, starting the open 
source operating system movement (Linux didn't come along under later).

-- Dave

From michael at kjorling.se  Wed Jul 14 17:54:35 2021
From: michael at kjorling.se (Michael =?utf-8?B?S2rDtnJsaW5n?=)
Date: Wed, 14 Jul 2021 07:54:35 +0000
Subject: [TUHS] 386BSD released
In-Reply-To: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
Message-ID: <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>

On 14 Jul 2021 08:28 +1000, from dave at horsfall.org (Dave Horsfall):
> In 1992, 386BSD is released by Lynne and William Jolitz, starting the open
> source operating system movement (Linux didn't come along under later).

Are you sure? Wikipedia claims that it happened the other way around;
that the Linux kernel initial release was 0.02 on 5 Oct 1991, while
the 386BSD initial release was 0.0 on 12 March 1992.

It seems that work on 386BSD began earlier than work on Linux, but
that the initial release of Linux was earlier than the initial release
of 386BSD.

-- 
Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se
 “Remember when, on the Internet, nobody cared that you were a dog?”


From angus at fairhaven.za.net  Wed Jul 14 18:19:02 2021
From: angus at fairhaven.za.net (Angus Robinson)
Date: Wed, 14 Jul 2021 10:19:02 +0200
Subject: [TUHS] 386BSD released
In-Reply-To: <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
Message-ID: <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>

Looking at a few online sources, Linus actually said when "386BSD came out,
Linux was already in a usable state, that I never really thought about
switching. If 386BSD had been available when I started on Linux, Linux
would probably never had happened".

Although the dates differ, it seems Linux was released in 1991


Kind Regards,
Angus Robinson


On Wed, Jul 14, 2021 at 10:04 AM Michael KjГ¶rling <michael at kjorling.se>
wrote:

> On 14 Jul 2021 08:28 +1000, from dave at horsfall.org (Dave Horsfall):
> > In 1992, 386BSD is released by Lynne and William Jolitz, starting the
> open
> > source operating system movement (Linux didn't come along under later).
>
> Are you sure? Wikipedia claims that it happened the other way around;
> that the Linux kernel initial release was 0.02 on 5 Oct 1991, while
> the 386BSD initial release was 0.0 on 12 March 1992.
>
> It seems that work on 386BSD began earlier than work on Linux, but
> that the initial release of Linux was earlier than the initial release
> of 386BSD.
>
> --
> Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se
>  “Remember when, on the Internet, nobody cared that you were a dog?”
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210714/13fb3209/attachment.htm>

From michael at kjorling.se  Wed Jul 14 18:32:11 2021
From: michael at kjorling.se (Michael =?utf-8?B?S2rDtnJsaW5n?=)
Date: Wed, 14 Jul 2021 08:32:11 +0000
Subject: [TUHS] 386BSD released
In-Reply-To: <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
Message-ID: <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost>

On 14 Jul 2021 10:19 +0200, from angus at fairhaven.za.net (Angus Robinson):
> Looking at a few online sources, Linus actually said when "386BSD came out,
> Linux was already in a usable state, that I never really thought about
> switching. If 386BSD had been available when I started on Linux, Linux
> would probably never had happened".

And all this, of course, ignoring the other issue of what might be
considered a "start to the open source operating system movement",
given that even development of GNU was well underway by the time the
Linux kernel got started (having been worked on since early 1984), and
one might even be able to argue that the early UNIX systems were also,
in a sense, open source.

-- 
Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se
 “Remember when, on the Internet, nobody cared that you were a dog?”


From lars at nocrew.org  Wed Jul 14 19:07:19 2021
From: lars at nocrew.org (Lars Brinkhoff)
Date: Wed, 14 Jul 2021 09:07:19 +0000
Subject: [TUHS] 386BSD released
In-Reply-To: <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost> ("Michael
 =?utf-8?Q?Kj=C3=B6rling=22's?= message of "Wed, 14 Jul 2021 08:32:11
 +0000")
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost>
Message-ID: <7wtukxtgag.fsf@junk.nocrew.org>

Michael KjГ¶rling wrote:
> And all this, of course, ignoring the other issue of what might be
> considered a "start to the open source operating system movement",
> given that even development of GNU was well underway by the time the
> Linux kernel got started (having been worked on since early 1984)

GNU planned to adopt TRIX which was developed at MIT in the mid 1980s.
I don't know its exact distribution terms, but Wipikedia says "open
source" so it was possibly in that general vicinity.

Arguably ancient PDP-10 operating systems like ITS, WAITS, TENEX were
somewhat "open" and "free", but it's not a clear cut case.

From tih at hamartun.priv.no  Wed Jul 14 20:09:49 2021
From: tih at hamartun.priv.no (Tom Ivar Helbekkmo)
Date: Wed, 14 Jul 2021 12:09:49 +0200
Subject: [TUHS] 386BSD released
In-Reply-To: <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost> ("Michael
 =?utf-8?Q?Kj=C3=B6rling=22's?= message of "Wed, 14 Jul 2021 08:32:11
 +0000")
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost>
Message-ID: <m2im1dqk9e.fsf@thuvia.hamartun.priv.no>

Michael KjГ¶rling <michael at kjorling.se> writes:

> [...] one might even be able to argue that the early UNIX systems were
> also, in a sense, open source.

Ditto MINIX, of course, which was released, along with the book, in 1987.

-tih
-- 
Most people who graduate with CS degrees don't understand the significance
of Lisp.  Lisp is the most important idea in computer science.  --Alan Kay

From arnold at skeeve.com  Wed Jul 14 20:39:10 2021
From: arnold at skeeve.com (arnold at skeeve.com)
Date: Wed, 14 Jul 2021 04:39:10 -0600
Subject: [TUHS] 386BSD released
In-Reply-To: <m2im1dqk9e.fsf@thuvia.hamartun.priv.no>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost>
 <m2im1dqk9e.fsf@thuvia.hamartun.priv.no>
Message-ID: <202107141039.16EAdAMK025329@freefriends.org>

Tom Ivar Helbekkmo via TUHS <tuhs at minnie.tuhs.org> wrote:

> Michael KjГ¶rling <michael at kjorling.se> writes:
>
> > [...] one might even be able to argue that the early UNIX systems were
> > also, in a sense, open source.
>
> Ditto MINIX, of course, which was released, along with the book, in 1987.

The original Minix wasn't so open source. It was certainly not GPL'ed
or BSD/MIT licensed.  Also, Tannenbaum had no interest in coordinating
distributed development of Minix into a production-worthy system.

I don't want to rehash all of that here, but I certainly would not
have listed the original Minix as Free Software / Open Source.

My two cents,

Arnold

From akosela at andykosela.com  Wed Jul 14 21:49:06 2021
From: akosela at andykosela.com (Andy Kosela)
Date: Wed, 14 Jul 2021 13:49:06 +0200
Subject: [TUHS] 386BSD released
In-Reply-To: <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
Message-ID: <CALMnNGj64FZrjS5Mgngk9px1zcSHvGkAdOL-=Bob7G9NVq0gyg@mail.gmail.com>

On 7/14/21, Michael KjГ¶rling <michael at kjorling.se> wrote:
> On 14 Jul 2021 08:28 +1000, from dave at horsfall.org (Dave Horsfall):
>> In 1992, 386BSD is released by Lynne and William Jolitz, starting the
>> open
>> source operating system movement (Linux didn't come along under later).
>
> Are you sure? Wikipedia claims that it happened the other way around;
> that the Linux kernel initial release was 0.02 on 5 Oct 1991, while
> the 386BSD initial release was 0.0 on 12 March 1992.
>
> It seems that work on 386BSD began earlier than work on Linux, but
> that the initial release of Linux was earlier than the initial release
> of 386BSD.
>

I consider the birth of Linux to be August 25th 1991, when Linus
announced it on comp.os.minix.  If he had access to 386BSD in 1991
then probably he would never have started the Linux project -- that's
his words.

He was exposed to UNIX at uni in late 1990, and purchased 386DX33 on
January 5th, 1991 -- a turning point in his life.  After messing
around with MS-DOS and games like Prince of Persia (still one of the
best computers games ever!) for a few months, he started exploring
programming tools for MS-DOS and wanted to write a UNIX clone for his
home computer.  The rest is literally the history...

--Andy

From lm at mcvoy.com  Thu Jul 15 00:09:10 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Wed, 14 Jul 2021 07:09:10 -0700
Subject: [TUHS] 386BSD released
In-Reply-To: <7wtukxtgag.fsf@junk.nocrew.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost>
 <7wtukxtgag.fsf@junk.nocrew.org>
Message-ID: <20210714140910.GZ15842@mcvoy.com>

On Wed, Jul 14, 2021 at 09:07:19AM +0000, Lars Brinkhoff wrote:
> Michael Kj??rling wrote:
> > And all this, of course, ignoring the other issue of what might be
> > considered a "start to the open source operating system movement",
> > given that even development of GNU was well underway by the time the
> > Linux kernel got started (having been worked on since early 1984)
> 
> GNU planned to adopt TRIX which was developed at MIT in the mid 1980s.
> I don't know its exact distribution terms, but Wipikedia says "open
> source" so it was possibly in that general vicinity.
> 
> Arguably ancient PDP-10 operating systems like ITS, WAITS, TENEX were
> somewhat "open" and "free", but it's not a clear cut case.

X10 and X11 predate all of this and at least X11 is open source.
-- 
---
Larry McVoy            	     lm at mcvoy.com             http://www.mcvoy.com/lm 

From imp at bsdimp.com  Thu Jul 15 00:54:51 2021
From: imp at bsdimp.com (Warner Losh)
Date: Wed, 14 Jul 2021 08:54:51 -0600
Subject: [TUHS] 386BSD released
In-Reply-To: <20210714140910.GZ15842@mcvoy.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost>
 <7wtukxtgag.fsf@junk.nocrew.org> <20210714140910.GZ15842@mcvoy.com>
Message-ID: <CANCZdfp-ZtijojnTk3ORgG=Ko-aGNGQtkxAVozKUZtyqmzhCCw@mail.gmail.com>

On Wed, Jul 14, 2021 at 8:10 AM Larry McVoy <lm at mcvoy.com> wrote:

> On Wed, Jul 14, 2021 at 09:07:19AM +0000, Lars Brinkhoff wrote:
> > Michael Kj??rling wrote:
> > > And all this, of course, ignoring the other issue of what might be
> > > considered a "start to the open source operating system movement",
> > > given that even development of GNU was well underway by the time the
> > > Linux kernel got started (having been worked on since early 1984)
> >
> > GNU planned to adopt TRIX which was developed at MIT in the mid 1980s.
> > I don't know its exact distribution terms, but Wipikedia says "open
> > source" so it was possibly in that general vicinity.
> >
> > Arguably ancient PDP-10 operating systems like ITS, WAITS, TENEX were
> > somewhat "open" and "free", but it's not a clear cut case.
>
> X10 and X11 predate all of this and at least X11 is open source.
>

The X10R3 license sure looks like a standard MIT license. The other license
statements that were included also read very much like open source, or
at least a strong intention of being open source, absent any drafting flaws.

Copyright 1985 by the Massachusetts Institute of Technology

Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of M.I.T. not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
M.I.T. makes no representations about the suitability of
this software for any purpose.  It is provided "as is"
without express or implied warranty.

This software is not subject to any license of the American
Telephone and Telegraph Company or of the Regents of the
University of California.

Although uwm did have the somewhat longer:

/************************************************************************
 *                                                                      *
 *                      Copyright (c) 1986 by                           *
 *              Digital Equipment Corporation, Maynard, MA              *
 *                       All Rights Reserved.                           *
 *                                                                      *
 *      Permission to use, copy, modify, and distribute this software   *
 *      and its documentation is hereby granted only to licensees of    *
 *      The Regents of the University of California pursuant to their   *
 *      license agreement for the Berkeley Software Distribution        *
 *      provided that the following appears on all copies.              *
 *                                                                      *
 *            "LICENSED FROM DIGITAL EQUIPMENT CORPORATION              *
 *                      COPYRIGHT (C) 1986                              *
 *                 DIGITAL EQUIPMENT CORPORATION                        *
 *                         MAYNARD, MA                                  *
 *                     ALL RIGHTS RESERVED.                             *
 *                                                                      *
 *      THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT   *
 *      NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL   *
 *      EQUIPMENT CORPORATION.  DIGITAL MAKES NO REPRESENTATIONS        *
 *      ABOUT SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE. IT IS       *
 *      SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.           *
 *                                                                      *
 *      IF THE UNIVERSITY OF CALIFORNIA OR ITS LICENSEES MODIFY         *
 *      THE SOFTWARE IN A MANNER CREATING DERIVATIVE COPYRIGHT          *
 *      RIGHTS APPROPRIATE COPYRIGHT LEGENDS MAY BE PLACED ON THE       *
 *      DERIVATIVE WORK IN ADDITION TO THAT SET FORTH ABOVE."           *
 *                                                                      *
 ************************************************************************/

This is the earliest copy of X10 I could find, pegging the date at around
1985, which
predates Linux by half a dozen years.

Warner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210714/11f14a46/attachment.htm>

From clemc at ccc.com  Thu Jul 15 01:01:58 2021
From: clemc at ccc.com (Clem Cole)
Date: Wed, 14 Jul 2021 11:01:58 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
Message-ID: <CAC20D2NDPLZQ25GfYq7Yi1XQj9BEJJY0gLQB3nb5Z2bM66wM8A@mail.gmail.com>

Sigh ... Warren I am going to ask for your indulgence once here on TUHS as
I try to get any *new* discussion moved to COFF, but I guess it's time to
renew this history as enough people have joined the list since the last
time this was all discussed ...  I'll do this once -- please take any other
discussion off this list.  It has been argued too many times.   Many of the
actors in this drama are part of the list.  Sadly we have lost a few,
sometimes because of the silliness of the argument/trying to give people
credit or not/person preferences, etc.

If you want to comment, please go back and read both the TUHS and COFF
archives and I suspect your point may have already been made.   *If you
really do have something new, please move to COFF.*

On Wed, Jul 14, 2021 at 4:21 AM Angus Robinson <angus at fairhaven.za.net>
wrote:

> Looking at a few online sources, Linus actually said when "386BSD came
> out, Linux was already in a usable state, that I never really thought about
> switching. If 386BSD had been available when I started on Linux, Linux
> would probably never had happened".
>
A number of us, such as Larry and I have discussed this a bunch both online
and in person.   What would become 386BSD was actually available as early
as 1988, but you needed to know the public FTP address of where to get it
at UCB (which the UCB licensees had access to that FTP server).  Bostic was
still working on what would become the 'NET' release, but this tarball
offered a bootable system and did have things in it that later AT&T would
require UCB to remove.  In fact, this system would have X10 ported to it
and was a reasonably complete 'distro' in today's terms.

By formal definition, the tarball and the rest of UNIX from Research is and
always has been, '*Open Source*' in the sources were available.  *But they
were licensed*.  This was fairly typical of much early software BTW.  The
binary nature only came about with the minicomputers.

The tarball in question was fairly easy to find in the wild but to use the
sources as a system, you technically needed an AT&T license.  An
practically you needed access to a BSD box to rebuild them, which took a
license - although by then SunOS was probably close enough - although I do
not know anyone that tried it.

The sources in the tarball were not '*Free and Open Source*' -- which
becomes the crux of the issue.  [Sadly the OSS folks have confused this
over the years and that important detail is lost].   Many people, such as
myself, when the AT&T suite began got worried and started hacking on  Linux
at that point as the not nearly as mature but sort of works version without
networking or graphics had appeared [386BSD had both and a real installer -
more in a minute]

FWIW: Linus could have had access to the BSD for a 386 tarball if we had
asked in the right place. But as he has said later in time, he wanted to
write his own OS and did not both ask the right folks at his University, or
try to get permission.   Although he has said he access to Sun3 and has
said that was his impetus for his work.   This is an important point that
Larry reminds us of, many institutions kept the sources locked away like
his U of Wis.   Other places were like liberal about access.  IIRC Larry
sometimes refers to it as the "UNIX Club."

In my own case, I was running what would become 386BSD on my Wyse 32:16 box
at home and on an NCR 386 based system in Clemson as I was consulting for
them at the time.  I also helped Bill with the PC/AT disk driver[WD1003 and
later WD7000/SCSI controllers], as I had access to the docs from WD which
Bill did not.  I think I still have a photocopy of them.

What basically happened is as BSDi forked and that begets a number of
things, from hurt feelings to a famous law suite.   A number of us, thought
the latter was about copyright (we were wrong it was about trade secret).
We were worried that the AT&T copyright would cause UNIX for an inexpensive
processor to disappear.   We >>thought<< (incorrectly) that the copyright
that Linux was using, the GPL, would save us.  Turns out >>legally<< it
would not have, if AT&T had won, at least in the USA and most NATO Allies -
the trade secret applied to all implementations of Ken, Dennis, and the
rest of the BTL folk's ideas.  All of the Unix-like systems were in
violation at this point.  BSDi/UCB was where AT&T started.  The problem is
that while the court found that AT&T did create and own the >>ideas<< (note
ideas are not the source code implementation of the ideas), they could not
call the UNIX 'IP', trade secrets since the AT&T people published them all
both academically in books like Maury Bach's, much less they had been
forced by the 1956 consent decree to make the license available, they had
taught an industry.  BTW:  It's not just software, the transistor 'gets
out' of AT&T under the same type of rules.

In reality, like PGP, since there was lots of UNIX-based IP in other
places, it hard to see in practice how AT&T could have enforced the trade
secret.  But again -- remember Charlie Brown (AT&T CEO) wants to go after
IBM, thinking the big money in computers in the mainframe.  So they did
believe that they could exert pressure on UNIX-like systems for the higher
end, and they might have been able to enforce that.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210714/930e9d3b/attachment.htm>

From rich.salz at gmail.com  Thu Jul 15 01:06:13 2021
From: rich.salz at gmail.com (Richard Salz)
Date: Wed, 14 Jul 2021 11:06:13 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <CANCZdfp-ZtijojnTk3ORgG=Ko-aGNGQtkxAVozKUZtyqmzhCCw@mail.gmail.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost>
 <7wtukxtgag.fsf@junk.nocrew.org> <20210714140910.GZ15842@mcvoy.com>
 <CANCZdfp-ZtijojnTk3ORgG=Ko-aGNGQtkxAVozKUZtyqmzhCCw@mail.gmail.com>
Message-ID: <CAFH29tqkbhru2dHSFbOmUAO6f8Yg=irV+4GGzROpfrB=0pbHeA@mail.gmail.com>

History of the MIT license first used for PC/IP in 1984 and then for X
Windows (read the link, fascinating "influence" was so important and the
benefits MIT got from that):
https://web.mit.edu/Saltzer/www/publications/MITLicense.pdf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210714/0a542d80/attachment.htm>

From usotsuki at buric.co  Thu Jul 15 01:37:08 2021
From: usotsuki at buric.co (Steve Nickolas)
Date: Wed, 14 Jul 2021 11:37:08 -0400 (EDT)
Subject: [TUHS] 386BSD released
In-Reply-To: <CANCZdfp-ZtijojnTk3ORgG=Ko-aGNGQtkxAVozKUZtyqmzhCCw@mail.gmail.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost>
 <7wtukxtgag.fsf@junk.nocrew.org> <20210714140910.GZ15842@mcvoy.com>
 <CANCZdfp-ZtijojnTk3ORgG=Ko-aGNGQtkxAVozKUZtyqmzhCCw@mail.gmail.com>
Message-ID: <alpine.DEB.2.21.2107141136250.2430@sd-119843.dedibox.fr>

On Wed, 14 Jul 2021, Warner Losh wrote:

> The X10R3 license sure looks like a standard MIT license. The other license
> statements that were included also read very much like open source, or
> at least a strong intention of being open source, absent any drafting flaws.
>
> Copyright 1985 by the Massachusetts Institute of Technology
>
> Permission to use, copy, modify, and distribute this
> software and its documentation for any purpose and without
> fee is hereby granted, provided that the above copyright
> notice appear in all copies and that both that copyright
> notice and this permission notice appear in supporting
> documentation, and that the name of M.I.T. not be used in
> advertising or publicity pertaining to distribution of the
> software without specific, written prior permission.
> M.I.T. makes no representations about the suitability of
> this software for any purpose.  It is provided "as is"
> without express or implied warranty.
>
> This software is not subject to any license of the American
> Telephone and Telegraph Company or of the Regents of the
> University of California.

Ironically...that's closer to a "3-clause BSD" license.

-uso.

From tytso at mit.edu  Thu Jul 15 01:48:22 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Wed, 14 Jul 2021 11:48:22 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <CALMnNGj64FZrjS5Mgngk9px1zcSHvGkAdOL-=Bob7G9NVq0gyg@mail.gmail.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CALMnNGj64FZrjS5Mgngk9px1zcSHvGkAdOL-=Bob7G9NVq0gyg@mail.gmail.com>
Message-ID: <YO8HRnhf4c1wdU2q@mit.edu>

On Wed, Jul 14, 2021 at 01:49:06PM +0200, Andy Kosela wrote:
> 
> I consider the birth of Linux to be August 25th 1991, when Linus
> announced it on comp.os.minix.  If he had access to 386BSD in 1991
> then probably he would never have started the Linux project -- that's
> his words.

I personally got started with Linux in September 1992, with one my
first projects being setting up the first US-based ftp site for Linux
--- tsx-11.mit.edu, which was a Decstation 3100 in my office ---
because at the time Finland was behind a super-slow trans-atlantic
link.  One of my other first initial was implementing BSD Job Control
from the POSIX spec, and improving the performance of the serial
driver, since at the time my 40 MHz 386 with 16 megs of memory was at
home, and the connection to the outside world was via modem.  (Or
hauling around dozens of 1.44M floppy disks from work.  :-)

I have heard stories that 386BSD was being demo'ed at various Usenix
conferences in 1990 and early 1991, but as far as I know it was never
publically released until 1992.  The Dr. Dobbs articles documenting
the porting process started in January 1991, so certainly Jolitz was
working on it by then.  However, 386BSD was largely developed behind
closed doors, whereas Linus was accepting patches and turning around
new releases every few weeks (and sometimes sooner).

Cheers,

						- Ted

From lyndon at orthanc.ca  Thu Jul 15 03:21:44 2021
From: lyndon at orthanc.ca (Lyndon Nerenberg (VE7TFX/VE6BBM))
Date: Wed, 14 Jul 2021 10:21:44 -0700
Subject: [TUHS] 386BSD released
In-Reply-To: <m2im1dqk9e.fsf@thuvia.hamartun.priv.no>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost>
 <m2im1dqk9e.fsf@thuvia.hamartun.priv.no>
Message-ID: <8f1b7be6ac367c79@orthanc.ca>

> Ditto MINIX, of course, which was released, along with the book, in 1987.

IBM was (inadvertantly) giving away the source to a few of its System/360
OSes in the 1960s ...

From rich.salz at gmail.com  Thu Jul 15 03:32:47 2021
From: rich.salz at gmail.com (Richard Salz)
Date: Wed, 14 Jul 2021 13:32:47 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <8f1b7be6ac367c79@orthanc.ca>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <61a16b78-fa11-49d3-8a62-a840e8b49d3e@localhost>
 <m2im1dqk9e.fsf@thuvia.hamartun.priv.no>
 <8f1b7be6ac367c79@orthanc.ca>
Message-ID: <CAFH29trrizz36G+YjWOF=J8VL4nHaPURuMLgdh7HAaZ19+AQVg@mail.gmail.com>

> IBM was (inadvertantly) giving away the source to a few of its System/360
> OSes in the 1960s ...
>

It was not inadvertent.  It was common practice to give access to the
source since the money was in the hardware.  Gates showed otherwise.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210714/811e5014/attachment.htm>

From tytso at mit.edu  Thu Jul 15 03:40:53 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Wed, 14 Jul 2021 13:40:53 -0400
Subject: [TUHS] [COFF]  386BSD released
In-Reply-To: <CAC20D2NDPLZQ25GfYq7Yi1XQj9BEJJY0gLQB3nb5Z2bM66wM8A@mail.gmail.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <CAC20D2NDPLZQ25GfYq7Yi1XQj9BEJJY0gLQB3nb5Z2bM66wM8A@mail.gmail.com>
Message-ID: <YO8hpZ4VYln+QxNb@mit.edu>

On Wed, Jul 14, 2021 at 11:01:58AM -0400, Clem Cole wrote:
> By formal definition, the tarball and the rest of UNIX from Research is and
> always has been, '*Open Source*' in the sources were available.  *But they
> were licensed*.  This was fairly typical of much early software BTW.  The
> binary nature only came about with the minicomputers.

It may have been "Open Source" by your definition, but there is a very
specific definition of "Open Source(tm)" and it has always been, from
the beginning, defined to mean code licensed under terms which meet
the Open Source Definition[1] (OSD).  The AT&T license, for better or
for worse does not mean the terms of the OSD.

[1] https://opensource.org/osd

> The sources in the tarball were not '*Free and Open Source*' -- which
> becomes the crux of the issue.  [Sadly the OSS folks have confused this
> over the years and that important detail is lost].

Hardly.  "Free and Open Source" (FOSS) is a term which developed
*after* the the term "Open Source" was coined and trademarked.  That
term was not created by the "OSS folks", but by people who were trying
the solve a political problem.  The GPL meets the definition of the
Open Source Definition, so GPL-licensed software is "Open Source(tm)".
But Stallman objected to that usage, preferring his terminology "Free
Software" on the grounds that it came first.  So FOSS was a compromise
to keep the FSF partisan happy.

But to take this back to TUHS, sorry, no code which falls under AT&T
License can be called "Open Source(tm)".  If AT&T were still trying to
sell Unix under its original terms including the AT&T Unpublished
Trade Secret "all your student's minds belong to us" license, and
tried to claim that Unix was "Open Source", the Open Source Initiative
could sue AT&T for trademark infringement.

If you must, you could try to claim that AT&T was "Source Available"
--- which is a terminology I've seen some used.  But I think your
assumptions of how easily the AT&T License could be obtained, and how
"anyone who wanted it could get it" may be looking at the past with
rose-colored classes.

Cheers,

					- Ted

From lm at mcvoy.com  Thu Jul 15 03:50:53 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Wed, 14 Jul 2021 10:50:53 -0700
Subject: [TUHS] [COFF]  386BSD released
In-Reply-To: <YO8hpZ4VYln+QxNb@mit.edu>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <CAC20D2NDPLZQ25GfYq7Yi1XQj9BEJJY0gLQB3nb5Z2bM66wM8A@mail.gmail.com>
 <YO8hpZ4VYln+QxNb@mit.edu>
Message-ID: <20210714175053.GC15842@mcvoy.com>

On Wed, Jul 14, 2021 at 01:40:53PM -0400, Theodore Y. Ts'o wrote:
> If you must, you could try to claim that AT&T was "Source Available"
> --- which is a terminology I've seen some used.  But I think your
> assumptions of how easily the AT&T License could be obtained, and how
> "anyone who wanted it could get it" may be looking at the past with
> rose-colored classes.

Clem was in "the club".  I do remember those times, barely, I was a 
bit too young to have a clear view of things.  But it certainly
seemed like some Universities made the source pretty available.
UW Madison was not one of those, I had to beg and plead to get 
access to the source.

So Clem's memory is fine, his experience was you could get the source.
But that wasn't the universal experience at all, and I agree with
Ted that just getting access to the source doesn't make it remotely
open source.  

From clemc at ccc.com  Thu Jul 15 04:28:37 2021
From: clemc at ccc.com (Clem Cole)
Date: Wed, 14 Jul 2021 14:28:37 -0400
Subject: [TUHS] [COFF]  386BSD released
In-Reply-To: <YO8hpZ4VYln+QxNb@mit.edu>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <CAE49LGn-gY9eikkwUgS+i3p=ZQV+gk_3BJ5V4_6B4HPbdyRuZw@mail.gmail.com>
 <CAC20D2NDPLZQ25GfYq7Yi1XQj9BEJJY0gLQB3nb5Z2bM66wM8A@mail.gmail.com>
 <YO8hpZ4VYln+QxNb@mit.edu>
Message-ID: <CAC20D2P12AV0Z2MAMbFL-y1D=x6RC5wPUWCx-_WAML9UJrZPWQ@mail.gmail.com>

On Wed, Jul 14, 2021 at 1:40 PM Theodore Y. Ts'o <tytso at mit.edu> wrote:

> On Wed, Jul 14, 2021 at 11:01:58AM -0400, Clem Cole wrote:
> > By formal definition, the tarball and the rest of UNIX from Research is
> and
> > always has been, '*Open Source*' in the sources were available.  *But
> they
> > were licensed*.  This was fairly typical of much early software BTW.  The
> > binary nature only came about with the minicomputers.
>
Please don't go here (again).   Yes, it has been trademarked, but
the official trademarked term is different from reality --> just like the
guy that got a copyright for email and claims to have invented it.  People
were 'open sourcing' software before you and I were born.  They just did
not have a name for it - thank you.

The real 'father' of Open Source as we think of it today was Prof Don
Pederson and his Industrial Liaison Office (ILO) of the EE Dept of UCB in
the late 1960s -- long before rms, et al.   As 'dop' used to say, I give
everything away because then I go in the back door, not the front door like
a salesman.   MIT/CMU/Stanford et al we often licensing their work.  In
many ways, CMU and Stanford were two of the worst.  The ILO gave away all
its products.  We would not have the current electronics industry without
the work dop and his students produced.  As I have also pointed in
other email tapes like the original, '1BSD' was managed and distributed by
the ILO because dop had set of the infrastructure 10-15 years earlier to
send out mag tapes and other IP to 'interested parties.'

Yes, computer networks changed the distribution and access medium, but
please refrain from trying to rewrite history.   The GNU project and FOSS
movement that was created took the idea and advanced it, making use of
better ways of communicating the ideas, removing the academic clubiness as
Larry suggested.  Larry is right, if you were a peer organization or maybe
a patron of same, getting source was possible.

As rms noted, at some point the sources to things go harder and harder to
get access.   ITS, WAITS, and even CTSS were all written at a time when you
go from IBM and DEC their sources - typically on  7 or 9 track mag-tape and
were usually available on microfiche.   You also got the circuit schematics
too.  Local modifications to both HW and SW were normal.

But starting with the Minis this began to change and it started to get
harder and harder.  SW started being a revenue source for those companies
-- DEC in particular, so they started to be hold back the sources.  The
rest is history...    Folks like rms objected because the behavior they
were used to had changed and he and people like him, could do nothing about
it.  So he created the Gnu project to compete with those commercial
products.

But just like have been getting 'email' since the late 1960s/early 1970s on
my computers, it was not named.  Someone body claimed the name later.   But
the function was old.  The same is for sharing software written and given
away, now we have a name and a way to describe the behavior.


Cheers
Clem



бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210714/8810a103/attachment-0001.htm>

From bakul at iitbombay.org  Thu Jul 15 07:37:41 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Wed, 14 Jul 2021 14:37:41 -0700
Subject: [TUHS] 386BSD released
In-Reply-To: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
Message-ID: <674F1273-7F3F-4ADA-BAF6-448A9403A36D@iitbombay.org>

I believe the following can count as an open source operating system (though this won’t satisfy the latter day purists). From Per Brinch-Hansen’s “Monitors and Concurrent Pascal: a Personal History” (1993):
    “At Caltech we prepared a distribution tape with the source text and portable code of the Solo system, including the Concurrent and Sequential Pascal compilers. The system reports were supplemented by implementation notes (Brinch Hansen 1976b).
    By the spring of 1976 we had distributed the system to 75 companies and 100 universities in 21 countries: Australia, Austria, Belgium, Canada, Denmark, Finland, France, Germany, Great Britain, Holland, India, Ireland, Italy, Japan, Norway, South Africa, the Soviet Union, Spain, Sweden, Switzerland, and the United States.”

This retrospective paper is worth reading in this age where the quest of higher and higher performance has produced super fast but very complicated and insecure machines where even synchronization has become a tricky affair (see for example the recent three articles by Russ Cox on his research.swtch.com site).

Can’t resist quoting Charles Hayden’s (Solocomment from the paper:
    “What was remarkable about [Concurrent Pascal] is that one could write experimental operating systems on a virtual machine without having to resort to machine registers, assembly language, etc. The development environment provided a way to do operating systems in a controlled way, on the “bare hardware” of a much nicer machine than any real computer. . .
    I think the significance of the system was . . . that one could provide a protected environment for concurrent programming—a high-level language environment which could maintain the illusion that there was no “machine” level. It was remarkable that through compile time restrictions and virtual machine error checking, that you could understand the program behavior by looking at the Pascal, not at the machine’s registers and memory. It was remarkable that the machine could retain its integrity while programs were being developed, without hardware memory protection.”

Nowadays writing an os kernel is considered quite a major effort. IMHO there has been nothing new in this area from a programming perspective since the ‘70s and no guidance for h/w design which has become increasingly more complex and “magic” (as per Artur C Clarke’s definition).

http://brinch-hansen.net/papers/1993a.pdf

> On Jul 13, 2021, at 3:35 PM, Dave Horsfall <dave at horsfall.org> wrote:
> 
> п»їIn 1992, 386BSD is released by Lynne and William Jolitz, starting the open source operating system movement (Linux didn't come along under later).
> 
> -- Dave
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210714/a5d44d52/attachment.htm>

From douglas.mcilroy at dartmouth.edu  Thu Jul 15 12:21:30 2021
From: douglas.mcilroy at dartmouth.edu (Douglas McIlroy)
Date: Wed, 14 Jul 2021 22:21:30 -0400
Subject: [TUHS] 386BSD released
Message-ID: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>

> Arguably ancient PDP-10 operating systems like ITS, WAITS, TENEX were
> somewhat "open" and "free", but it's not a clear cut case.

The open source movement was a revival of the old days of SHARE and other
user groups.

SAP, the SHARE assembly program for the IBM 704, was freely available--with
source code--to all members of the SHARE user group. I am not aware of any
restrictions on redistribution.

Other more specialized programs were also freely available through SHARE. In
particular, Fortran formatted IO was adopted directly from a SHARE program
written by Roy Nutt (who also wrote SAP and helped write Fortran I).

Bell Labs freely distributed the BESYS operating system for the IBM 704.
At the time (1958) no operating system was available from IBM.

IBM provided source code for the Fortran II compiler. In the
fashion of the time, I spent a memorable all-night session with
that code at hand, finding and fixing a bizarre bug (a computed GOTO
bombed if the number of branches was 74 mod 75) with a bizarre cause
(the code changed the index-register field in certain instructions on the
fly--inconsistently). And there was no operating system to help, because
BESYS swapped itself out to make room for the compiler.

Doug

From douglas.mcilroy at dartmouth.edu  Thu Jul 15 12:38:06 2021
From: douglas.mcilroy at dartmouth.edu (Douglas McIlroy)
Date: Wed, 14 Jul 2021 22:38:06 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
Message-ID: <CAKH6PiWDnDBEE9vWRU+6kAuEcMNFdpJ9tiv0=9VUr-LMJRRBbw@mail.gmail.com>

This somewhat stale note was sent some time ago, but was ignored
because it was sent from an unregistered email address.

> And if the Unix patriarchs were perhaps mistaken about how useful
> "head" might be and whether or not it should have been considered
> verboten.

Point well taken.

I don't know which of head(1) and sed(1) came first. They appeared in
different places at more or less the same time. We in Research
declined to adopt head because we already knew the idiom "sed 10q".
However one shouldn't have to do related operations in unrelated ways.
We finally admitted head in v10.

Head was independently invented by Mike Lesk. It was Lesk's
program that was deemed superfluous.

Head might not have been written if tail didn't exist. But, unlike head,
tail strayed from the tao of "do one thing well". Tail -r and tail -f are
as cringeworthy as cat -v.

-f is a strange feature that effectively turns a regular file into a pipe
with memory by polling for new data, A clean general alternative
might be to provide an open(2) mode that makes reads at the current
file end block if some process has the file open for writing.

-r is weird because it enables backwards reading, but only as
limited by count. Better would be a program, say revfile, that simply
reads backwards by lines. Then tail p  has an elegant implementation:
       revfile p | head | revfile

Doug

From athornton at gmail.com  Thu Jul 15 12:41:00 2021
From: athornton at gmail.com (Adam Thornton)
Date: Wed, 14 Jul 2021 19:41:00 -0700
Subject: [TUHS] 386BSD released
In-Reply-To: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
References: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
Message-ID: <CAP2nic3OB4Zs=owmmGTYTjw2H5gq=HwFVv53yYxnUS+EU0CAVQ@mail.gmail.com>

"SHARE.  It's not an acronym.  It's what we do."

*Still* a bad-ass slogan after all these years.

Adam

On Wed, Jul 14, 2021 at 7:22 PM Douglas McIlroy <
douglas.mcilroy at dartmouth.edu> wrote:

> > Arguably ancient PDP-10 operating systems like ITS, WAITS, TENEX were
> > somewhat "open" and "free", but it's not a clear cut case.
>
> The open source movement was a revival of the old days of SHARE and other
> user groups.
>
> SAP, the SHARE assembly program for the IBM 704, was freely available--with
> source code--to all members of the SHARE user group. I am not aware of any
> restrictions on redistribution.
>
> Other more specialized programs were also freely available through SHARE.
> In
> particular, Fortran formatted IO was adopted directly from a SHARE program
> written by Roy Nutt (who also wrote SAP and helped write Fortran I).
>
> Bell Labs freely distributed the BESYS operating system for the IBM 704.
> At the time (1958) no operating system was available from IBM.
>
> IBM provided source code for the Fortran II compiler. In the
> fashion of the time, I spent a memorable all-night session with
> that code at hand, finding and fixing a bizarre bug (a computed GOTO
> bombed if the number of branches was 74 mod 75) with a bizarre cause
> (the code changed the index-register field in certain instructions on the
> fly--inconsistently). And there was no operating system to help, because
> BESYS swapped itself out to make room for the compiler.
>
> Doug
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210714/967c896c/attachment.htm>

From arnold at skeeve.com  Thu Jul 15 14:19:39 2021
From: arnold at skeeve.com (arnold at skeeve.com)
Date: Wed, 14 Jul 2021 22:19:39 -0600
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAKH6PiWDnDBEE9vWRU+6kAuEcMNFdpJ9tiv0=9VUr-LMJRRBbw@mail.gmail.com>
References: <CAKH6PiWDnDBEE9vWRU+6kAuEcMNFdpJ9tiv0=9VUr-LMJRRBbw@mail.gmail.com>
Message-ID: <202107150419.16F4Jdf9024606@freefriends.org>

Douglas McIlroy <douglas.mcilroy at dartmouth.edu> wrote:

> -r is weird because it enables backwards reading, but only as
> limited by count. Better would be a program, say revfile, that simply
> reads backwards by lines. Then tail p  has an elegant implementation:
>        revfile p | head | revfile

The GNU coreutils provides "tac" (c-a-t backwards) which does that
job. It was adopted from a long-ago posting of same on comp.sources.something.
It should be standard on just about any Linux system.

(It too has too many options, but let's not go there.)

Thanks,

Arnold

From athornton at gmail.com  Thu Jul 15 14:25:36 2021
From: athornton at gmail.com (Adam Thornton)
Date: Wed, 14 Jul 2021 21:25:36 -0700
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <202107150419.16F4Jdf9024606@freefriends.org>
References: <CAKH6PiWDnDBEE9vWRU+6kAuEcMNFdpJ9tiv0=9VUr-LMJRRBbw@mail.gmail.com>
 <202107150419.16F4Jdf9024606@freefriends.org>
Message-ID: <A556D586-A6F3-4DEC-B445-C5330FF3E82D@gmail.com>



> On Jul 14, 2021, at 9:19 PM, arnold at skeeve.com wrote:
> 
> The GNU coreutils provides "tac" (c-a-t backwards) 

...

> (It too has too many options, but let's not go there.)

GNU pretty much anything has too many options.

I do aesthetically appreciate that tail -f is a bit of an abomination, but realistically it’s also 90% or more of my actual use of tail.  There obviously needs to be SOMETHING that lets you watch the end of a growing file as it’s growing.

Adam

From thomas.paulsen at firemail.de  Thu Jul 15 17:20:52 2021
From: thomas.paulsen at firemail.de (Thomas Paulsen)
Date: Thu, 15 Jul 2021 09:20:52 +0200
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <202107150419.16F4Jdf9024606@freefriends.org>
References: <CAKH6PiWDnDBEE9vWRU+6kAuEcMNFdpJ9tiv0=9VUr-LMJRRBbw@mail.gmail.com>
 <202107150419.16F4Jdf9024606@freefriends.org>
Message-ID: <3804e1f3ceda56278ffba203944149a7@firemail.de>

Arnold: (It too has too many options, but let's not go there.)
beside the usual help and version only 3 options what is not very much for a gnu tool. A emulate cat option is missing ;-)

Thanks,






From tytso at mit.edu  Fri Jul 16 00:28:04 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Thu, 15 Jul 2021 10:28:04 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAKH6PiWDnDBEE9vWRU+6kAuEcMNFdpJ9tiv0=9VUr-LMJRRBbw@mail.gmail.com>
References: <CAKH6PiWDnDBEE9vWRU+6kAuEcMNFdpJ9tiv0=9VUr-LMJRRBbw@mail.gmail.com>
Message-ID: <YPBF9GUgDw2Qa1nt@mit.edu>

On Wed, Jul 14, 2021 at 10:38:06PM -0400, Douglas McIlroy wrote:
> Head might not have been written if tail didn't exist. But, unlike head,
> tail strayed from the tao of "do one thing well". Tail -r and tail -f are
> as cringeworthy as cat -v.
> 
> -f is a strange feature that effectively turns a regular file into a pipe
> with memory by polling for new data, A clean general alternative
> might be to provide an open(2) mode that makes reads at the current
> file end block if some process has the file open for writing.

OTOH, this would mean adding more functionality (read: complexity)
into the kernel, and there has always been a general desire to avoid
pushing <stuff> into the kernel when it can be done in userspace.  Do
you really think using a blocking read(2) is somehow more superior
than using select(2) to wait for new data to be appended to the file?

And even if we did this using a new open(2) mode, are you saying we
should have a separate executable in /bin which would then be
identical to cat, except that it uses a different open(2) mode?

> -r is weird because it enables backwards reading, but only as
> limited by count. Better would be a program, say revfile, that simply
> reads backwards by lines. Then tail p  has an elegant implementation:
>        revfile p | head | revfile

I'll note, with amusement, that -r is one option which is *NOT* in the
GNU version of tail.  I see it in FreeBSD, but this looks like a
BSD'ism.  So for those like to claim that the GNU utilities have laden
with useless options, this is one which can't be left at the feet of
GNU coreutils.

					- Ted

From clemc at ccc.com  Fri Jul 16 01:07:10 2021
From: clemc at ccc.com (Clem Cole)
Date: Thu, 15 Jul 2021 11:07:10 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
References: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
Message-ID: <CAC20D2O=ZAD2mMOD+bDZ=-Rk1O8HRguaCCoMSvnQKQ1FE1-aBw@mail.gmail.com>

Thank you, Doug.

On Wed, Jul 14, 2021 at 10:22 PM Douglas McIlroy <
douglas.mcilroy at dartmouth.edu> wrote:

> The open source movement was a revival of the old days of SHARE and other
> user groups.
>
Amen, my basic point, although I was also trying to pointing at that these
user groups got started b*ecause the vendors gave the sources to their
products out.*  We SHARED patches and features. DECUS started out the same
way.   For instance, many/most PDP-10 OS's used the DEC compilers and often
even found a way to run TOPS-10 binaries by emulating the UUOs.  The
IBM/360 world worked pretty much the same way.  My own experience was that
the compilers (e.g WATFIV-FTNG-ALGOLW-PL/1) and language interpreters
(APL-Snolbol) for the TSS and MTS had been 'ported' from the IBM-supplied
OS [my own first job was doing just that].

The same story was true for the PDP-8 with DOS-8/TSS-8 and the like. By the
time of the PDP-11, while some of the DEC source code was available (such
as the Fortran-IV for RT-11/RSX), since it took at PDP-10/BLISS to support
it, DEC had it its protection - so moving it/stealing it - would have been
harder.  By the time of the VAX, DEC was charging a lot of money of SW and
it was actually a revenue stream, so they keep a lot more locked up and
had started to do the same with PDP-10 world.

So, the available/unavailable source issue came when things started to get
closed up, which really started with the rise of the SW industry and making
revenue with the use of your SW.   OEMs and IVSs started to be a lot less
willing to reveal what they thought was their 'special sauce.'    Some/many
end-users started to balk.   RMS just took it to a new level - just look at
how he reacted to Symbolics being closed source :-)

The question that used to come up (and still does not an extent) is how are
the engineers and teams of people that developed the SW going to be
paid/renumerated for their work?   The RMS/GNU answer had been service
revenue [and living like a student in a rent-controlled APT in
Central Sq].  What has happened for most of the biggest FOSS projects, the
salaries are paid for firms like my own that pay developers to work on the
SW and most FOSS projects die when the developer/maintainer is unable to
continue (if not just gets bored).

In fact, [I can not say I personally know this - but have read internal
memos that make the claim], Intel pays for more Linux developers and now
LLVM developers than any firm.  What's interesting is that Intel does not
really directly sell its HW product to end-users.  We sell to others than
use our chips to make their products.   We have finally moved to the
support model for the compilers (I've personally been fighting that battle
for 15 years).

So back to my basic point ... while giving the *behavior* a name, the *idea
*of "Open Source" is really not anything new.  While it may be new in their
lifetime/experience, it is frankly at minimum a sad, if not outright
disingenuous, statement for the people to try to imply otherwise because
they are unwilling to look back into history and understand, much less
accept it as a fact.  Trying to rewrite history is just not pretty to
witness.  And I am pleased to see that a few folks (like Larry) that have
lived a little both times have tried to pass the torch with more complete
history.

Clem.


бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210715/2b9f4560/attachment.htm>

From norman at oclsc.org  Fri Jul 16 01:44:43 2021
From: norman at oclsc.org (Norman Wilson)
Date: Thu, 15 Jul 2021 11:44:43 -0400 (EDT)
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
Message-ID: <20210715154443.4158A640CC6@lignose.oclsc.org>

Some comments from someone (me) who tends to be pickier than
most about cramming programs together and endless sets of
options:

I, too, had always thought sed was older than head.  I stand
corrected.  I have a long-standing habit of typing sed 10q but
don't spend much time fussing about head.

When I arrived at Bell Labs in late summer 1984, tail -f was
in /usr/bin and in the manual, readslow was only in /usr/bin.
readslow was like tail -f, except it either printed the entire
file first or (option -e) started at the end of the file.

I was told readslow had come first, and had been invented in a
hurry because people wanted to watch in real time the moves
logged by one of Belle's chess matches.  Vague memory says it
was written by pjw; the name and the code style seem consistent
with that.

Personally I feel like tail -r and tail -f both fit reasonably
well within what tail does, since both have to do with the
bottom of the file, though -r's implementation does make for
a special extra code path in tail so maybe a separate program
is better.  What I think is a bigger deal is that I have
frequently missed tail -r on Linux systems, and somehow hadn't
spotted tac; thanks to whoever here (was it Ted?) pointed it
out first!

On the other hand, adding data-processing functions to cat has
never made sense to me.  It seems to originate from a mistaken
notion that cat's focus is printing data on terminals, rather
than concatenating data from different places.  Here is a test:
if cat -v and cat -n and all that make sense, why shouldn't
cat also subsume tr and pr and even grep?  What makes converting
control characters and numbering lines so different from swapping
case and adding page headers?  I don't see the distinction, and
so I think vis(1) (in later Research) makes more sense than cat -v
and nl(1) (in Linux for a long time) more sense than cat -n.
(I'd also happily argue that given nl, pr shouldn't number lines.
That a program was in V6 or V7 doesn't make it perfect.)

And all those special options to wc that amounted to doing
arithmetic on the output were always just silly.  I'm glad
they were retracted.

On the other other hand, why didn't I know about tac?  Because
there are so damn many programs in /usr/bin these days.  When
I started with UNIX ca. 1980, the manual (even the BSD version)
was still short enough that one could sit down and read it through,
section by section, and keep track of what one had read, and
remember what all the different tools did.  That hasn't been
true for decades.  This could be an argument for adding to
existing programs (which many people already know about) rather
than adding new programs (which many people will never notice).

The real problem is that the system is just too damn big.  On
an Ubuntu 18.04 system I run, ls /usr/bin | wc -l shows 3242
entries.  How much of that is redundant?  How much is rarely or
never used?  Nobody knows, and I suspect few even try to find
out.  And because nobody knows, few are brave enough to throw
things away, or even trim out bits of existing things.

One day in the late 1980s, I helped out with an Introduction
to UNIX talk at a DECUS symposium.  One of the attendees noticed
the `total' line in the output of ls, and asked why is that there?
doesn't that contradict the principles of tools' output you've
just been talking about?  I thought about it, and said yes,
you're right, that's a bit of old history and shouldn't be
there any more.  When I got home to New Jersey, I took the
`total' line out of Research ls.

Good luck doing anything like that today.

Norman Wilson
Toronto ON

From beebe at math.utah.edu  Fri Jul 16 02:54:35 2021
From: beebe at math.utah.edu (Nelson H. F. Beebe)
Date: Thu, 15 Jul 2021 10:54:35 -0600
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
Message-ID: <CMM.0.96.0.1626368075.beebe@gamma.math.utah.edu>

On the subject of tac (concatenate and print files in reverse), I can
report that the tool was written by my late friend Jay Lepreau in the
Department of Computer Science (now, School of Computing) at the
University of Utah.  The GNU coreutils distribution for src/tac.c
contains a copyright for 1988-2020.

I searched my TOPS-20 PDP-10 archives, and found no source code for
tac, but I did find an older TOPS-20 executable in Jay's personal
directory with a file date of 17-Mar-1987.  There isn't much else in
that directory, so I suspect that he just copied over a needed tool
from his Department of Computer Science TOPS-20 system to ours in the
College of Science.

----------------------------------------

P.S. Jay was the first to get Steve Johnson's Portable C Compiler,
pcc, to run on the 36-bit PDP-10, and once we had pcc, we began the
move from writing utilities in Pascal and PDP-10 assembly language to
doing them in C.  The oldest C file for pcc in our PDP-10 archives is
dated 17-Mar-1981, with other pcc files dated to mid-1983, and final
compiler executables dated 12-May-1986.  Four system header files are
dated as late as 4-Oct-1986, presumably patched after the compiler was
built.

Later, Kok Chen and Ken Harrenstien's kcc provided another C compiler
that added support for byte datatypes, where a byte could be anything
from 1 to 36 bits.  The oldest distribution of kcc in our archives is
labeled "Fifth formal distribution snapshot" and dated 20-Apr-1988.
My info-kcc mailing list archives date from the list beginning, with
an initial post from Ken dated 27-Jul-1986 announcing the availability
of kcc at sri-nic.arpa.
	
By mid-1987, we had a dozen Sun workstations and NFS fileserver; they
marked the beginning of our move to a Unix workstation environment,
away from large, expensive, and electricity-gulping PDP-10 and VAX
mainframes.

By the summer of 1991, those mainframes were retired.  I recall
speaking to a used-equipment vendor about our VAX 8600, which cost
about US$450K (discounted academic pricing) in 1986, and was told that
its value was depreciating about 20% per month.  Although many of us
missed TOPS-20 features, I don't think anyone was sad to say goodbye
to VMS.  We always felt that the VMS developers worked in isolation
from the PDP-10 folks, and thus learned nothing from them.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------

From norman at oclsc.org  Fri Jul 16 05:01:08 2021
From: norman at oclsc.org (Norman Wilson)
Date: Thu, 15 Jul 2021 15:01:08 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
Message-ID: <1626375671.1426.for-standards-violators@oclsc.org>

Nelson H. F. Beebe:

  P.S. Jay was the first to get Steve Johnson's Portable C Compiler,
  pcc, to run on the 36-bit PDP-10, and once we had pcc, we began the
  move from writing utilities in Pascal and PDP-10 assembly language to
  doing them in C.

======

How did that C implementation handle ASCII text on the DEC-10?
Were it a from-scratch UNIX port it might make sense to store
four eight- or nine-bit bytes to a word, but if (as I sense it
was) it was C running on TOPS-10 or TOPS-20, it would have had
to work comfortably with DEC's convention of five 7-bit characters
(plus a spare bit used by some programs as a flag).

Norman Wilson
Toronto ON

From clemc at ccc.com  Fri Jul 16 05:27:36 2021
From: clemc at ccc.com (Clem Cole)
Date: Thu, 15 Jul 2021 15:27:36 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <1626375671.1426.for-standards-violators@oclsc.org>
References: <1626375671.1426.for-standards-violators@oclsc.org>
Message-ID: <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>

The 'second' C compiler was a PDP-10 and Honeywell (36-bit) target Alan
Synder did for his MIT Thesis.
It was originally targeted to ITS for the PDP-10, but it ran on Tops-20
also.

My >>memory<< is he used a 7-bit Character, ala SAIL, with 5 chars stored
in a word with a bit leftover.

You can check it out:  https://github.com/PDP-10/Snyder-C-compiler

I believe that C compiler Nelson is talking about I believe is actually
Synder's that Jay either ported from ITS  or WAITS.

We had some form of the Synder compiler on the PDP-10's at CMU in the late
1970s.
It was either Mike Accetta or Fil Aleva that wrote a program to read PDP-10
backup tapes, that I updated to deal with TOPS-20/TENEX 'dumper' format
which was similar/only different.
бђ§

On Thu, Jul 15, 2021 at 3:03 PM Norman Wilson <norman at oclsc.org> wrote:

> Nelson H. F. Beebe:
>
>   P.S. Jay was the first to get Steve Johnson's Portable C Compiler,
>   pcc, to run on the 36-bit PDP-10, and once we had pcc, we began the
>   move from writing utilities in Pascal and PDP-10 assembly language to
>   doing them in C.
>
> ======
>
> How did that C implementation handle ASCII text on the DEC-10?
> Were it a from-scratch UNIX port it might make sense to store
> four eight- or nine-bit bytes to a word, but if (as I sense it
> was) it was C running on TOPS-10 or TOPS-20, it would have had
> to work comfortably with DEC's convention of five 7-bit characters
> (plus a spare bit used by some programs as a flag).
>
> Norman Wilson
> Toronto ON
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210715/5051ca4d/attachment.htm>

From clemc at ccc.com  Fri Jul 16 05:28:32 2021
From: clemc at ccc.com (Clem Cole)
Date: Thu, 15 Jul 2021 15:28:32 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>
References: <1626375671.1426.for-standards-violators@oclsc.org>
 <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>
Message-ID: <CAC20D2PEG82MS9CWQkhfX2Ud7ZegRVDfg-_T2NG4aT9++H3KdQ@mail.gmail.com>

g/Synder/s//Snyder/ -- sigh....
бђ§

On Thu, Jul 15, 2021 at 3:27 PM Clem Cole <clemc at ccc.com> wrote:

> The 'second' C compiler was a PDP-10 and Honeywell (36-bit) target Alan
> Synder did for his MIT Thesis.
> It was originally targeted to ITS for the PDP-10, but it ran on Tops-20
> also.
>
> My >>memory<< is he used a 7-bit Character, ala SAIL, with 5 chars stored
> in a word with a bit leftover.
>
> You can check it out:  https://github.com/PDP-10/Snyder-C-compiler
>
> I believe that C compiler Nelson is talking about I believe is actually
> Synder's that Jay either ported from ITS  or WAITS.
>
> We had some form of the Synder compiler on the PDP-10's at CMU in the late
> 1970s.
> It was either Mike Accetta or Fil Aleva that wrote a program to read
> PDP-10 backup tapes, that I updated to deal with TOPS-20/TENEX 'dumper'
> format which was similar/only different.
> бђ§
>
> On Thu, Jul 15, 2021 at 3:03 PM Norman Wilson <norman at oclsc.org> wrote:
>
>> Nelson H. F. Beebe:
>>
>>   P.S. Jay was the first to get Steve Johnson's Portable C Compiler,
>>   pcc, to run on the 36-bit PDP-10, and once we had pcc, we began the
>>   move from writing utilities in Pascal and PDP-10 assembly language to
>>   doing them in C.
>>
>> ======
>>
>> How did that C implementation handle ASCII text on the DEC-10?
>> Were it a from-scratch UNIX port it might make sense to store
>> four eight- or nine-bit bytes to a word, but if (as I sense it
>> was) it was C running on TOPS-10 or TOPS-20, it would have had
>> to work comfortably with DEC's convention of five 7-bit characters
>> (plus a spare bit used by some programs as a flag).
>>
>> Norman Wilson
>> Toronto ON
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210715/0ca9c7c3/attachment.htm>

From tytso at mit.edu  Fri Jul 16 05:33:48 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Thu, 15 Jul 2021 15:33:48 -0400
Subject: [TUHS] [COFF]  386BSD released
In-Reply-To: <CAC20D2O=ZAD2mMOD+bDZ=-Rk1O8HRguaCCoMSvnQKQ1FE1-aBw@mail.gmail.com>
References: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
 <CAC20D2O=ZAD2mMOD+bDZ=-Rk1O8HRguaCCoMSvnQKQ1FE1-aBw@mail.gmail.com>
Message-ID: <YPCNnL4TLkLWqmFa@mit.edu>

On Thu, Jul 15, 2021 at 11:07:10AM -0400, Clem Cole wrote:
> In fact, [I can not say I personally know this - but have read internal
> memos that make the claim], Intel pays for more Linux developers and now
> LLVM developers than any firm.  What's interesting is that Intel does not
> really directly sell its HW product to end-users.  We sell to others than
> use our chips to make their products.   We have finally moved to the
> support model for the compilers (I've personally been fighting that battle
> for 15 years).

That claim is probably from the data collected from the Linux
Foundation, which publishes these stats every year or two.  The most
recent one is here:

https://www.linuxfoundation.org/wp-content/uploads/2020_kernel_history_report_082720.pdf

The top ten organizations responsible for commits from 2007 -- 2019:

(None)		11.95%
Intel		10.01%
Red Hat		 8.90%
(Unknown)	 4.09%
IBM		 3.79%
SuSE		 3.49%
Linaro		 3.17%
(Consultant)	 2.96%
Google		 2.79%
Samsung		 2.58%

"None" means no organizational affiliation (e.g., hobbyists, students,
etc.)  "Unknown" means the organization affiliation couldn't be
determined.

For more recent data, if you look at the commits for the 5.10 release
(end of 2020), the top ten list by organizations looks like this:

Huawei	     8.9%
Intel	     8.0%
(Unknown)    6.6%
(None)	     4.9%
Red Hat	     5.7%
Google	     5.2%
AMD	     4.3%
Linaro	     4.1%
Samsung	     3.5%
IBM	     3.2%

For the full list and more stats, see: https://lwn.net/Articles/839772/

> So back to my basic point ... while giving the *behavior* a name, the *idea
> *of "Open Source" is really not anything new.

I do think there is something which is radically new --- which is that
it's not a single company publishing all of the source code for a
particular OS, whether it's System/360 or the PDP-8 Disk Operating
System, or whatever.

In other words, it's the shared nature of the collaboration, which
partially solves the question of "who pays" --- the answer is, "lots
of companies, and they do so when it makes business sense for them to
do so".  Intel may have had the largest number of contributions to
Linux historically --- but that was still 10%, and it was eclipsed by
people with no organizational affliation, and in the 5.10 kernel
Huawei slightly edged out Intel with 8.9% vs 8.0% contributions.

I completely agree with you that one of the key questions is the
business case issue.  Not only who pays, but how do they justify the
software investment to the bean counters?  Of course, the "Stone Soup"
story predates computers, so this certainly isn't a new business
model.  And arguably the X Window Systems and the Open Software
Foundation also had a similar model where multiple companies
contributed to a common codebase, with perhaps mixed levels of
success.

The thing which Linux has managed to achieve, however, is the fact
that there is a large and diverse base of corporate contributions.
That to me is what makes the Linux model so interesting, and has been
a reason for its long-term sustainability.

Other companies may have been making their source code availble, but
the underlying business model behind their "source available" practices
was quite different.

Cheers,

					- Ted

From imp at bsdimp.com  Fri Jul 16 05:34:57 2021
From: imp at bsdimp.com (Warner Losh)
Date: Thu, 15 Jul 2021 13:34:57 -0600
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>
References: <1626375671.1426.for-standards-violators@oclsc.org>
 <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>
Message-ID: <CANCZdfpfzrU0SP5HY=0GVrbNaYPT9FP6pt6fsB+SgNDcCJCL0w@mail.gmail.com>

The C compiler we had at NMT that Greg Titus wrote/rewrote allowed one to
pick a number
of different choices for character size (5, 6, 7 or 8). It defaulted to 7
or 8. I recall that the
defaults produced OK results for student work, but that was a bit slow for
pushing the
envelope without some very careful choices. But it was good enough for me
to write
my OS group project running under 'ZAYEF' a DecSystem-20 emulator running
on the
DecSystem 20 under TOPS-20... My first exposure to virtual machines... It
was a total
trip to have 18 bit pointers and weird interrupt semantics....

I really rather working on the VAX 11/750 in 'C' and later on the Sun3/50s
more, though.
In part because the debugger was better (or at least more approachable by my
poor undergraduate mind).

Warner

On Thu, Jul 15, 2021 at 1:28 PM Clem Cole <clemc at ccc.com> wrote:

> The 'second' C compiler was a PDP-10 and Honeywell (36-bit) target Alan
> Synder did for his MIT Thesis.
> It was originally targeted to ITS for the PDP-10, but it ran on Tops-20
> also.
>
> My >>memory<< is he used a 7-bit Character, ala SAIL, with 5 chars stored
> in a word with a bit leftover.
>
> You can check it out:  https://github.com/PDP-10/Snyder-C-compiler
>
> I believe that C compiler Nelson is talking about I believe is actually
> Synder's that Jay either ported from ITS  or WAITS.
>
> We had some form of the Synder compiler on the PDP-10's at CMU in the late
> 1970s.
> It was either Mike Accetta or Fil Aleva that wrote a program to read
> PDP-10 backup tapes, that I updated to deal with TOPS-20/TENEX 'dumper'
> format which was similar/only different.
> бђ§
>
> On Thu, Jul 15, 2021 at 3:03 PM Norman Wilson <norman at oclsc.org> wrote:
>
>> Nelson H. F. Beebe:
>>
>>   P.S. Jay was the first to get Steve Johnson's Portable C Compiler,
>>   pcc, to run on the 36-bit PDP-10, and once we had pcc, we began the
>>   move from writing utilities in Pascal and PDP-10 assembly language to
>>   doing them in C.
>>
>> ======
>>
>> How did that C implementation handle ASCII text on the DEC-10?
>> Were it a from-scratch UNIX port it might make sense to store
>> four eight- or nine-bit bytes to a word, but if (as I sense it
>> was) it was C running on TOPS-10 or TOPS-20, it would have had
>> to work comfortably with DEC's convention of five 7-bit characters
>> (plus a spare bit used by some programs as a flag).
>>
>> Norman Wilson
>> Toronto ON
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210715/d56cc596/attachment.htm>

From athornton at gmail.com  Fri Jul 16 05:49:07 2021
From: athornton at gmail.com (Adam Thornton)
Date: Thu, 15 Jul 2021 12:49:07 -0700
Subject: [TUHS] [COFF] 386BSD released
In-Reply-To: <YPCNnL4TLkLWqmFa@mit.edu>
References: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
 <CAC20D2O=ZAD2mMOD+bDZ=-Rk1O8HRguaCCoMSvnQKQ1FE1-aBw@mail.gmail.com>
 <YPCNnL4TLkLWqmFa@mit.edu>
Message-ID: <CAP2nic0qY4HrFTUYj0qwr=eney-re6Gn2O=0S23d6jwvOL_O+g@mail.gmail.com>

The thing which Linux has managed to achieve, however, is the fact
> that there is a large and diverse base of corporate contributions.
> That to me is what makes the Linux model so interesting, and has been
> a reason for its long-term sustainability.
>
>
Although from a somewhat different perspective, it's also why the Linux
kernel syscall interface is so unruly, right?

You've got your...some number in the small dozens of common syscalls, which
are already present for the most part in v6 or v7.  These are the ones I,
at least, think of when I think of the Unix manual, section 2.

And then you've got all the other calls added in by (usually) this database
vendor or that storage vendor or the other display adapter vendor to make
their stuff work more efficiently.

And obviously there's a tradeoff there.  Elegance departs, and you've
probably introduced some security risk because these syscalls are not
nearly as well-exercised as the common ones, but on the other hand you have
these large companies paying to work on the kernel, and you have them
supporting their product on Linux systems because the system can be bent
into accommodating them more easily, and it will run better there than on
OSes where they don't get to introduce features that benefit their
products, which further drives adoption.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210715/76d88877/attachment.htm>

From akosela at andykosela.com  Fri Jul 16 06:29:57 2021
From: akosela at andykosela.com (Andy Kosela)
Date: Thu, 15 Jul 2021 22:29:57 +0200
Subject: [TUHS] [COFF] 386BSD released
In-Reply-To: <CAP2nic0qY4HrFTUYj0qwr=eney-re6Gn2O=0S23d6jwvOL_O+g@mail.gmail.com>
References: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
 <CAC20D2O=ZAD2mMOD+bDZ=-Rk1O8HRguaCCoMSvnQKQ1FE1-aBw@mail.gmail.com>
 <YPCNnL4TLkLWqmFa@mit.edu>
 <CAP2nic0qY4HrFTUYj0qwr=eney-re6Gn2O=0S23d6jwvOL_O+g@mail.gmail.com>
Message-ID: <CALMnNGhkExT1H5JmgDn-4OiYjjDz=P8TQoZidbZ_G1vHNVcD3Q@mail.gmail.com>

On 7/15/21, Adam Thornton <athornton at gmail.com> wrote:
> The thing which Linux has managed to achieve, however, is the fact
>> that there is a large and diverse base of corporate contributions.
>> That to me is what makes the Linux model so interesting, and has been
>> a reason for its long-term sustainability.
>>
>>
> Although from a somewhat different perspective, it's also why the Linux
> kernel syscall interface is so unruly, right?
>
> You've got your...some number in the small dozens of common syscalls, which
> are already present for the most part in v6 or v7.  These are the ones I,
> at least, think of when I think of the Unix manual, section 2.
>
> And then you've got all the other calls added in by (usually) this database
> vendor or that storage vendor or the other display adapter vendor to make
> their stuff work more efficiently.
>
> And obviously there's a tradeoff there.  Elegance departs, and you've
> probably introduced some security risk because these syscalls are not
> nearly as well-exercised as the common ones, but on the other hand you have
> these large companies paying to work on the kernel, and you have them
> supporting their product on Linux systems because the system can be bent
> into accommodating them more easily, and it will run better there than on
> OSes where they don't get to introduce features that benefit their
> products, which further drives adoption.

The last time I looked it was actually FreeBSD that had the most
system calls (more than 500).  Linux had more or less around the same
number as OpenBSD (more than 300).

UNIX V7 had around 50 -- this is still the golden standard, but
obviously a lot has changed since then...

--Andy

From clemc at ccc.com  Fri Jul 16 06:30:15 2021
From: clemc at ccc.com (Clem Cole)
Date: Thu, 15 Jul 2021 16:30:15 -0400
Subject: [TUHS] [COFF]  386BSD released
In-Reply-To: <YPCNnL4TLkLWqmFa@mit.edu>
References: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
 <CAC20D2O=ZAD2mMOD+bDZ=-Rk1O8HRguaCCoMSvnQKQ1FE1-aBw@mail.gmail.com>
 <YPCNnL4TLkLWqmFa@mit.edu>
Message-ID: <CAC20D2Pqu_hnt5A7XLtb6rRmniURmDc7Zzo4o6tzbZBD3pfJKA@mail.gmail.com>

On Thu, Jul 15, 2021 at 3:33 PM Theodore Y. Ts'o <tytso at mit.edu> wrote:

> > So back to my basic point ... while giving the *behavior* a name, the
> *idea
> > *of "Open Source" is really not anything new.
>
> I do think there is something which is radically new --- which is that
> it's not a single company publishing all of the source code for a
> particular OS, whether it's System/360 or the PDP-8 Disk Operating
> System, or whatever.


Ted - that *is what* Doug pointed out!!!  They did not create anything that
was new.  SHARED / DECUS / USENIX and the like were providing that exact
same function starting in the late 1950s!!!  Companies and Universities all
pooled their resources to make things better and to get new and improved
solutions.    Sometimes they started with things that come from the
original OEM.  Also often they created their own technology and made it
available to everyone.  Sometime they combine both.  And it was a
'bazaar where everyone had access and you chose to use it to not.  Sounds
pretty familiar, BTW.

What >>has<< changed (dramatically) was the *method* and *ability* to
*distribute* your work and/or the manner you *obtained* someone else's
efforts.  Today we download via the Web (much less ftp from a public area),
which is much more convenient than becoming a member of an organization and
having to obtain (typically for a small $50-$100 trape copying fee) a
9-track distribution tape.  But even the concept of 'free' is really not
new as I said.   Things like UCB's ILO used that model for a long time.
 MIT, CMU, Stanford, Univerity of Waterloo, Cambridge, et al, just made
their work to any interested parties.

But due to the new way of being *interconnected *and a *much better
distribution scheme* that indeed is a huge feature.  But please understand
'open source and collective sharing/working together is not a new thing
that just appeared with the Gnu project and was accelerated and taken to a
new level with the Linux work.

I personally blame esr's book for that beginning of the rewriting of
history/kicking the previous generations in the shins, as readers of it, or
worse readers of summations of it, miss the big picture instead of the
reality of standing on other shoulders.

I do want to give create for the cool and important things that have come.
I just want to make sure we don't forget the success of the modern world is
100% dependent on two important things: moore's law to make things more
economic and the hard work of a lot of people that came before (now and
before me for that matter).
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210715/9fe936ad/attachment.htm>

From jon at fourwinds.com  Fri Jul 16 06:55:39 2021
From: jon at fourwinds.com (Jon Steinhart)
Date: Thu, 15 Jul 2021 13:55:39 -0700
Subject: [TUHS] Unix Shell Programming: The Next 50 Years - author's
 response and my response
Message-ID: <202107152055.16FKteYd3043705@darkstar.fourwinds.com>

Below is a response from two of the authors with my response to it
inline.  Not very impressed.  Hopefully they'll get a clue and up
their game.  In any case, enough time spent on it.

Jon



Michael Greenberg writes:
>
> HotOS isn't exactly a conventional venue---you might notice that many
> if not most HotOS papers don't fit the outline you've given.

I'm aware of that, and have participated in many unconventional venues
myself.В  I wasn't saying that papers must fit that outline, but I do
believe that they should contain that information.В  There's a big
difference between a discussion transcript and a paper; I believe that
papers, especially those published under the auspices of a prestigious
organization such as the ACM, should adhere to a higher standard.

> I'd definitely appreciate detailed feedback on any semantic errors
> we've made!

Unfortunately I can't help you here; that was feedback from
a reader who doesn't want to spend any more time on this.

> Your summary covers much of what we imagined!
>
> As I understand it, the primary goals of the paper were to (a) help
> other academics think about the shell as a viable area for research, (b)
> highlight some work we're doing on JIT compilation, (c) make the case
> for JIT approaches to the shell in general (as its well adapted to its
> dynamism), and (d) explore various axes on which the shell could be
> improved. It seems like we've done a good job communicating (b) to you,
> but perhaps not the rest. Sorry again to disappoint.

I certainly hope that you understand the primary goals of your own paper.

Point-by-point:

В (a)В  While this is a valid point I don't understand why the paper didn't
      just state it in a straightforward manner.  There are several common
      forms.  One is to list issues in the introduction while explaining
      which one(s) will be addressed in the paper.  Another is in the
      conclusion where authors list work still to be done.

В (b)В  At least for me this goal was not accomplished because there were no
      examples.  Figure 1 by itself is insufficient given that the code
      used to generate the "result" is not shown.  It would have been much
      more illuminating had the paper not only shown that code but also the
      optimized result.  Professionals don't blithely accept magic data.

В (c)В  The paper failed to make this case to me for several reasons.
В  В  В  As I understand it, the paper is somewhat about applying JIT
В  В  В  compilation techniques to interconnected processes.В  While most
В  В  В  shells include syntax to support the construction of such, it's
В  В  В  really independent of the shell.В  For completeness, I have a vague
В  В  В  memory of shell implementations for non-multitasking systems that
В  В  В  sequentially ran pipelined programs passing intermediate results
В  В  В  via temporary files.В  The single "result" reminds me of something
      that I saw at a science fair when my child was in middle school;
      I looked a one team's results and asked "What makes you think that
      a sample size of one is significant?"  The lack of any benchmarks
      or other study results that justified the work also undermined the
      case.  It reads more like the authors had something that they wanted
      to play with rather than doing serious research.  The paper does not
      examine the percentage of shell scripts that actually benefit from
      JIT compilation; for all the reader may know it's such a small number
      that hand-optimizing just those scripts might be a better solution.
      I suppose that the paper fits into the apparently modern philosophy
      of expecting tools to fix up poorly written code so that programmers
      don't have to understand what they're doing.

В (d)В  In my opinion the paper didn't do this at all.В  There was no
В  В  В  analysis of "the shell" showing weaknesses and an explanation
В  В  В  of why one particular path was taken.В  And there was no discussion
В  В  В  of what was being done with shells to cause whatever problems you
В  В  В  were addressing and possibly ameliorating problems with some up-front
В  В  В  sanity.В  Again, being a geezer I'm reminded of past events
В  В  В  that repeat themselves.В  I joined a start-up company decades ago
В  В  В  that was going to speed up circuit simulation 100x by plugging
В  В  В  custom-designed floating-point processing boards into a multiprocessor
В  В  В  machine.В  I managed to beat that 100x just by cleverly crafting the
      database and memory management code.В  The fact that the company founder
      never verified his idea led to a big waste of resources.  But, he did
      manage to raise venture capital which is akin to getting DARPA funds.

Nikos Vasilakis writes:
>
> To add to Michael's points, HotOS'В  "position" papers are often
> intended as provocative, call-to-arms statements targeting primarily
> the research community (academic and industrial research). Our key
> position, which we possibly failed to communicate, is "Hey researchers
> everywhere, let's do more research on the shell! (and here's why)".

While provocative name-calling and false statements seem to have become
the political norm in America I don't think that they're appropriate in
a professional context.

In my experience a call-to-arms isn't productive unless those called
understand the nature of the call.  I'm reminded of something that happened
many decades ago; my partner asked me to proof a paper that she was writing
for her masters degree.В  I read it over with a confused look and asked her
what she was trying to say.В  She responded, and I told her to write that
down and stop trying to sound like someone else.В  Turned her into a much
better writer.В  So if the paper wanted to say "Hey researchers ..." it
should have done so instead of being obtuse.

To continue on this point and Michael's (a) above, I don't see a lot of
value in proclaiming that research can be done.В  I think that a more
fruitful approach is to cover what has been done, what you're doing,
and what you see but aren't doing.

> For our more conventional research papers related to the shell, which
> might cover your concerns about semantics, correctness, and
> performance please see next. These three papers also provide important
> context around the HotOS paper you read:
> ...

Tracking down your other work was key to understanding this paper.В  It's
my opinion that my having to do is illustrative of the problems with the
paper.

> Thank you for taking the time to read our paper and comment on it.
> Could you please share the emails of everyone mentioned at the end of
> your email? We are preparing a longer report on a recent shell
> roundtable, and would love to get everyone's feedback!

While I appreciate the offer to send the longer report, it would only be
of interest if it was substantially more professional.  There is no interest
in reviewing work that is not clearly presented, has not been proofread
and edited, includes unsubstantiated, pejorative, or meaningless statements,
includes incorrect examples, or statistically irrelevant results.  Likewise,
there is also no interest if the homework hasn't been done to put the
report in context with regards to prior art and other current work.

Jon Steinghart <jsacm at fourwinds.com>
Warner Losh <imp at bsdimp.com>
John Cowan <cowan at ccil.org>
Larry McVoy <lm at mcvoy.com>
John Dow <jmd at nelefa.org>
Andy Kosela <akosela at andykosela.com>
Clem Cole <clemc at ccc.com>
Steve Bourne does not want to give out his address

From pnr at planet.nl  Fri Jul 16 07:26:33 2021
From: pnr at planet.nl (Paul Ruizendaal)
Date: Thu, 15 Jul 2021 23:26:33 +0200
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
Message-ID: <4FA4AAA0-B3B8-410C-8307-A3ECEDE60E2C@planet.nl>


> Message: 7
> Date: Thu, 15 Jul 2021 10:28:04 -0400
> From: "Theodore Y. Ts'o" 
> Subject: Re: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
> 
> On Wed, Jul 14, 2021 at 10:38:06PM -0400, Douglas McIlroy wrote:
>> Head might not have been written if tail didn't exist. But, unlike head,
>> tail strayed from the tao of "do one thing well". Tail -r and tail -f are
>> as cringeworthy as cat -v.
>> 
>> -f is a strange feature that effectively turns a regular file into a pipe
>> with memory by polling for new data, A clean general alternative
>> might be to provide an open(2) mode that makes reads at the current
>> file end block if some process has the file open for writing.
> 
> OTOH, this would mean adding more functionality (read: complexity)
> into the kernel, and there has always been a general desire to avoid
> pushing <stuff> into the kernel when it can be done in userspace.  Do
> you really think using a blocking read(2) is somehow more superior
> than using select(2) to wait for new data to be appended to the file?
> 
> And even if we did this using a new open(2) mode, are you saying we
> should have a separate executable in /bin which would then be
> identical to cat, except that it uses a different open(2) mode?

Yes, it would put more complexity into the kernel, but maybe it is conceptually elegant.

Consider a classic pipe or a socket and the behaviour of read(2) for those objects. The behaviour of read(2) that Doug proposes for a file would make it in line with that for a classic pipe or a socket. Hence, maybe it should not be a mode, but the standard behaviour.

I often think that around 1981 the Unix community missed an opportunity to really think through how networking should integrate with the foundations of Unix. It seems to me that at that time there was an opportunity to merge files, pipes and sockets into a coherent, simple framework. If the 8th edition file-system-switch had been introduced already in V6 or V7, maybe this would have happened.

On the other hand, the installed base was probably already too large in 1981 to still make breaking changes to core concepts. V7 may have been the last chance saloon for that.

Paul


From douglas.mcilroy at dartmouth.edu  Fri Jul 16 08:00:19 2021
From: douglas.mcilroy at dartmouth.edu (Douglas McIlroy)
Date: Thu, 15 Jul 2021 18:00:19 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
Message-ID: <CAKH6PiVTsSHd625MHW3N3TGULcu=aD0RKxhiJVcAf14fKHUEsA@mail.gmail.com>

>> -f is a strange feature that effectively turns a regular file into a pipe
>> with memory by polling for new data, A clean general alternative
>> might be to provide an open(2) mode that makes reads at the current
>> file end block if some process has the file open for writing.

> OTOH, this would mean adding more functionality (read: complexity)
> into the kernel, and there has always been a general desire to avoid
> pushing <stuff> into the kernel when it can be done in userspace.  Do
> you really think using a blocking read(2) is somehow more superior
> than using select(2) to wait for new data to be appended to the file?

I'm showing my age. tail -f antedated select(2) and was implemented
by alternately sleeping and reading. select(2) indeed overcomes that
clumsiness.

> I'll note, with amusement, that -r is one option which is *NOT* in the
> GNU version of tail.  I see it in FreeBSD, but this looks like a
> BSD'ism.

-r came from Bell Labs. This reinforces the point that the ancients
had their imperfections.

Doug

From cowan at ccil.org  Fri Jul 16 08:12:52 2021
From: cowan at ccil.org (John Cowan)
Date: Thu, 15 Jul 2021 18:12:52 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAKH6PiVTsSHd625MHW3N3TGULcu=aD0RKxhiJVcAf14fKHUEsA@mail.gmail.com>
References: <CAKH6PiVTsSHd625MHW3N3TGULcu=aD0RKxhiJVcAf14fKHUEsA@mail.gmail.com>
Message-ID: <CAD2gp_SiXyE=-Gw0bzZH2Tyo=4xz_=CzaDecTL9DOrhFzAND-w@mail.gmail.com>

On Thu, Jul 15, 2021 at 6:00 PM Douglas McIlroy <
douglas.mcilroy at dartmouth.edu> wrote:


> I'm showing my age. tail -f antedated select(2) and was implemented
> by alternately sleeping and reading. select(2) indeed overcomes that
> clumsiness.
>

A fd at EOF is considered by select and friends to be ready, as it is
possible to read from it without hanging.

> -r came from Bell Labs. This reinforces the point that the ancients
> had their imperfections.
>

A Unix zealot, having heard that Master Foo was wise in the Great Way, came
to him for instruction. Master Foo said to him:

“When the Patriarch Thompson invented Unix, he did not understand it. Then
he gained in understanding, and no longer invented it.”

“When the Patriarch McIlroy invented the pipe, he knew that it would
transform software, but did not know that it would transform mind.”

“When the Patriarch Ritchie invented C, he condemned programmers to a
thousand hells of buffer overruns, heap corruption, and stale-pointer bugs.”

“Truly, the Patriarchs were blind and foolish!”

The zealot was greatly angered by the Master's words.

“These enlightened ones,” he protested, “gave us the Great Way of Unix.
Surely, if we mock them we will lose merit and be reborn as beasts or
MCSEs.”

“Is your code ever completely without stain and flaw?” demanded Master Foo.

“No,” admitted the zealot, “no man's is.”

“The wisdom of the Patriarchs” said Master Foo, “was that they *knew* they
were fools.”

Upon hearing this, the zealot was enlightened.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210715/d4c51d16/attachment.htm>

From beebe at math.utah.edu  Fri Jul 16 08:26:09 2021
From: beebe at math.utah.edu (Nelson H. F. Beebe)
Date: Thu, 15 Jul 2021 16:26:09 -0600
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
Message-ID: <CMM.0.95.0.1626387969.beebe@gamma.math.utah.edu>

Clem Cole asks:

>> Did you know that before PCC the 'second' C compiler was a PDP-10
>> target Alan Snyder did for his MIT Thesis?
>> [https://github.com/PDP-10/Snyder-C-compiler]

I was unaware of that compiler until sometime in the 21st Century,
long after our PDP-10 was retired on 31-Oct-1990.  

The site

	https://github.com/PDP-10/Snyder-C-compiler/tree/master/tops20
 
supplies a list of some of Snyder's files, but they don't match
anything in our TOPS-20 archives of almost 180,000 files.

I then looked into our 1980s-vintage pcc source tree and compared
it with a snapshot of the current pcc source code taken three
weeks ago.  The latter has support for these architectures

	aarch64  hppa  m16c  mips64  pdp11    sparc64
	amd64    i386  m68k  nova    pdp7     superh
	arm      i86   mips  pdp10   powerpc  vax

and the pdp10 directory contains these files:

	CVS  README  code.c  local.c  local2.c  macdefs.h  order.c  table.c

All 5 of those *.c files are present in our TOPS-20 archives.  I then
grepped those archives for familiar strings:

	% find . -name '*.[ch]' | sort | \
	       xargs egrep -n -i 'scj|feldman|johnson|snyder|bell|at[&]t|mit|m.i.t.'
	./code.c:8: * Based on Steve Johnson's pdp-11 version
	./code2.c:19: * Based on Steve Johnson's pdp-11 version
	./cpp.c:1678:		stsym("TOPS20");	/* for compatibility with Snyder */
	./local.c:4: * Based on Steve Johnson's pdp-11 version
	./local2.c:4: * Based on Steve Johnson's pdp-11 version
	./local2.c:209:		case 'A':		/* emit a label */
	./match.c:2: * match.c - based on Steve Johnson's pdp11 version
	./optim.c:318:						 * Turn 'em into regular PCONV's
	./order.c:5: * Based on Steve Johnson's pdp-11 version
	./pftn.c:967:			 * fill out previous word, to permit pointer
	./pftn.c:1458:	register	commflag = 0;  /* flag for labelled common declarations */
	./pftn2.c:1011:			 * fill out previous word, to permit pointer
	./pftn2.c:1502:	register	commflag = 0;  /* flag for labelled common declarations */
	./reader.c:632:		p2->op = NOASG p2->op;	   /* this was omitted in 11 & /6 !! */
	./table.c:128:		"	movei	A1,1\nZN",	/* ZN = emit branch */
	./xdefs.c:13: *	symbol table maintainence

Thus, I'm confident that Jay's work was based on Steve Johnson's
compiler, rather than Alan Snyder's.

Norman Wilson asks:

>> ...
>> How did that C implementation handle ASCII text on the DEC-10?
>> Were it a from-scratch UNIX port it might make sense to store
>> four eight- or nine-bit bytes to a word, but if (as I sense it
>> was) it was C running on TOPS-10 or TOPS-20, it would have had
>> to work comfortably with DEC's convention of five 7-bit characters
>> (plus a spare bit used by some programs as a flag).
>> ...

Our pcc compiler treated char* as a pointer to 7-bit ASCII strings,
stored in the top 35 bits of a word, with the low-order bit normally
zero; a 1-bit there meant that the word contained a 5-digit line
number that some compilers and editors would report.  Of course, that
low-order non-character bit meant that memset(), memcpy(), and
memmove() had somewhat dicey semantics, but I no longer recall their
specs.

kcc later gave us access to the PDP-10's 1- to 36-bit byte
instructions.

For text processing, 5 x 7b + 1b bits matched the conventions for all
other programming languages on the PDP-10.  When it came time to
implement NFS, and exchange files and data with 32-bit-word machines,
we needed the ability to handle files of 4 x 8b + 4b and 9 x 8b (in
two 36-bit words), and kcc provided that.

The one's-complement 36-bit Univac 1108 machines chose instead to
store text in a 4 x 9b format, because that architecture had
quarter-word load/store instructions, but not the general variable
byte instructions of the PDP-10.  Our campus had an 1108 at the
University of Utah Computer Center, but I chose to avoid it, because
it was run in batch mode with punched cards, and never got networking.
By contrast, our TOPS-20, BSD, RSX-11, SunOS, and VMS systems all had
interactive serial-line terminals, and there was no punched card
support at all.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------

From douglas.mcilroy at dartmouth.edu  Fri Jul 16 08:27:25 2021
From: douglas.mcilroy at dartmouth.edu (Douglas McIlroy)
Date: Thu, 15 Jul 2021 18:27:25 -0400
Subject: [TUHS] TUHS Digest, Vol 68, Issue 23
Message-ID: <CAKH6PiUHsVXC+ro8jQ+ycXCJ7n+G2x-OfN=n43iBGCrFo4=Bdw@mail.gmail.com>

The topic is intended, not a side effect of hitting reply.

This issue of the digest is a real keeper. So many memories; so illuminating!

Doug

From bakul at iitbombay.org  Fri Jul 16 08:29:40 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Thu, 15 Jul 2021 15:29:40 -0700
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAKH6PiWDnDBEE9vWRU+6kAuEcMNFdpJ9tiv0=9VUr-LMJRRBbw@mail.gmail.com>
References: <CAKH6PiWDnDBEE9vWRU+6kAuEcMNFdpJ9tiv0=9VUr-LMJRRBbw@mail.gmail.com>
Message-ID: <F78F5E0A-0DBF-4739-B13F-48367BBEF358@iitbombay.org>

On Jul 14, 2021, at 7:38 PM, Douglas McIlroy <douglas.mcilroy at dartmouth.edu> wrote:
> 
> -r is weird because it enables backwards reading, but only as
> limited by count. Better would be a program, say revfile, that simply
> reads backwards by lines. Then tail p  has an elegant implementation:
>      revfile p | head | revfile

tail -n can be smarter in that it can simply read the last K bytes
and see if there are n lines. If not, it can read back further.
revfile would have to read the whole file, which could be a lot
more than n lines! tail -n < /dev/tty may never terminate but it
will use a small finite amount of memory.

-- Bakul


From joe at via.net  Fri Jul 16 09:02:02 2021
From: joe at via.net (joe mcguckin)
Date: Thu, 15 Jul 2021 16:02:02 -0700
Subject: [TUHS] [COFF]  386BSD released
In-Reply-To: <YPCNnL4TLkLWqmFa@mit.edu>
References: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
 <CAC20D2O=ZAD2mMOD+bDZ=-Rk1O8HRguaCCoMSvnQKQ1FE1-aBw@mail.gmail.com>
 <YPCNnL4TLkLWqmFa@mit.edu>
Message-ID: <36A1FADC-560D-47D2-9F0C-401A1B4E1655@via.net>

I remember going to one of those cattle-call hiring events. I wanted to speak with the Intel compiler guy and when I got up to him, all he said 
was “Ganapathi”.

I actually knew who/what hw was talking about.

So, has Intel killed their own compiler toolset?

Joe McGuckin
ViaNet Communications

joe at via.net
650-207-0372 cell
650-213-1302 office
650-969-2124 fax



> On Jul 15, 2021, at 12:33 PM, Theodore Y. Ts'o <tytso at mit.edu> wrote:
> 
> On Thu, Jul 15, 2021 at 11:07:10AM -0400, Clem Cole wrote:
>> In fact, [I can not say I personally know this - but have read internal
>> memos that make the claim], Intel pays for more Linux developers and now
>> LLVM developers than any firm.  What's interesting is that Intel does not
>> really directly sell its HW product to end-users.  We sell to others than
>> use our chips to make their products.   We have finally moved to the
>> support model for the compilers (I've personally been fighting that battle
>> for 15 years).
> 
> That claim is probably from the data collected from the Linux
> Foundation, which publishes these stats every year or two.  The most
> recent one is here:
> 
> https://www.linuxfoundation.org/wp-content/uploads/2020_kernel_history_report_082720.pdf
> 
> The top ten organizations responsible for commits from 2007 -- 2019:
> 
> (None)		11.95%
> Intel		10.01%
> Red Hat		 8.90%
> (Unknown)	 4.09%
> IBM		 3.79%
> SuSE		 3.49%
> Linaro		 3.17%
> (Consultant)	 2.96%
> Google		 2.79%
> Samsung		 2.58%
> 
> "None" means no organizational affiliation (e.g., hobbyists, students,
> etc.)  "Unknown" means the organization affiliation couldn't be
> determined.
> 
> For more recent data, if you look at the commits for the 5.10 release
> (end of 2020), the top ten list by organizations looks like this:
> 
> Huawei	     8.9%
> Intel	     8.0%
> (Unknown)    6.6%
> (None)	     4.9%
> Red Hat	     5.7%
> Google	     5.2%
> AMD	     4.3%
> Linaro	     4.1%
> Samsung	     3.5%
> IBM	     3.2%
> 
> For the full list and more stats, see: https://lwn.net/Articles/839772/
> 
>> So back to my basic point ... while giving the *behavior* a name, the *idea
>> *of "Open Source" is really not anything new.
> 
> I do think there is something which is radically new --- which is that
> it's not a single company publishing all of the source code for a
> particular OS, whether it's System/360 or the PDP-8 Disk Operating
> System, or whatever.
> 
> In other words, it's the shared nature of the collaboration, which
> partially solves the question of "who pays" --- the answer is, "lots
> of companies, and they do so when it makes business sense for them to
> do so".  Intel may have had the largest number of contributions to
> Linux historically --- but that was still 10%, and it was eclipsed by
> people with no organizational affliation, and in the 5.10 kernel
> Huawei slightly edged out Intel with 8.9% vs 8.0% contributions.
> 
> I completely agree with you that one of the key questions is the
> business case issue.  Not only who pays, but how do they justify the
> software investment to the bean counters?  Of course, the "Stone Soup"
> story predates computers, so this certainly isn't a new business
> model.  And arguably the X Window Systems and the Open Software
> Foundation also had a similar model where multiple companies
> contributed to a common codebase, with perhaps mixed levels of
> success.
> 
> The thing which Linux has managed to achieve, however, is the fact
> that there is a large and diverse base of corporate contributions.
> That to me is what makes the Linux model so interesting, and has been
> a reason for its long-term sustainability.
> 
> Other companies may have been making their source code availble, but
> the underlying business model behind their "source available" practices
> was quite different.
> 
> Cheers,
> 
> 					- Ted

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210715/5d18f6a1/attachment.htm>

From jim.epost at gmail.com  Fri Jul 16 09:18:03 2021
From: jim.epost at gmail.com (Jim Davis)
Date: Thu, 15 Jul 2021 16:18:03 -0700
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CMM.0.95.0.1626387969.beebe@gamma.math.utah.edu>
References: <CMM.0.95.0.1626387969.beebe@gamma.math.utah.edu>
Message-ID: <CA+r1Zhgmf8zbBiztO3Ab1H7Hd7HZQZxqTbTRahtXWfowC=A4qQ@mail.gmail.com>

On Thu, Jul 15, 2021 at 3:27 PM Nelson H. F. Beebe <beebe at math.utah.edu> wrote:

> Our campus had an 1108 at the
> University of Utah Computer Center, but I chose to avoid it, because
> it was run in batch mode with punched cards, and never got networking.

It was a terrible beast.  One place to submit card decks +
undergraduate procrastination was an unhappy combination.   Later
there was a crude form a timesharing grafted on to it, with some very
shrill terminals attached.  The details are mercifully vague but I
think you basically had a 'session' and whatever files you created in
that session didn't persist once you'd logged out.

I remember trying to use the C compiler on that DEC-20 but never got
very far with it; I thought the SAIL compiler was more interesting.
Shows what foresight I had...
-- 
Jim (op.davis at science.utah.edu, iirc)

From clemc at ccc.com  Fri Jul 16 10:02:41 2021
From: clemc at ccc.com (Clem Cole)
Date: Thu, 15 Jul 2021 20:02:41 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CMM.0.95.0.1626387969.beebe@gamma.math.utah.edu>
References: <CMM.0.95.0.1626387969.beebe@gamma.math.utah.edu>
Message-ID: <CAC20D2NA4uEdnZupSLR=d-v7UAJ9dstgznUTHTC1kWCN+RHxOQ@mail.gmail.com>

Nelson thanks.  Excellent bit of snooping.  I wonder why Jay did his
version?     Maybe he wanted a more modern C features since the Snyder
compiler would been based on a very early C dialect.

Steve Johnson do you have any insight?
As I understand it, Alan started his work by rewritting your Honeywell B
compiler to be a C compiler when the C language was quite young and many
features we take for granted were not yet created.

Clem

On Thu, Jul 15, 2021 at 6:26 PM Nelson H. F. Beebe <beebe at math.utah.edu>
wrote:

> Clem Cole asks:
>
> >> Did you know that before PCC the 'second' C compiler was a PDP-10
> >> target Alan Snyder did for his MIT Thesis?
> >> [https://github.com/PDP-10/Snyder-C-compiler]
>
> I was unaware of that compiler until sometime in the 21st Century,
> long after our PDP-10 was retired on 31-Oct-1990.
>
> The site
>
>         https://github.com/PDP-10/Snyder-C-compiler/tree/master/tops20
>
> supplies a list of some of Snyder's files, but they don't match
> anything in our TOPS-20 archives of almost 180,000 files.
>
> I then looked into our 1980s-vintage pcc source tree and compared
> it with a snapshot of the current pcc source code taken three
> weeks ago.  The latter has support for these architectures
>
>         aarch64  hppa  m16c  mips64  pdp11    sparc64
>         amd64    i386  m68k  nova    pdp7     superh
>         arm      i86   mips  pdp10   powerpc  vax
>
> and the pdp10 directory contains these files:
>
>         CVS  README  code.c  local.c  local2.c  macdefs.h  order.c  table.c
>
> All 5 of those *.c files are present in our TOPS-20 archives.  I then
> grepped those archives for familiar strings:
>
>         % find . -name '*.[ch]' | sort | \
>                xargs egrep -n -i
> 'scj|feldman|johnson|snyder|bell|at[&]t|mit|m.i.t.'
>         ./code.c:8: * Based on Steve Johnson's pdp-11 version
>         ./code2.c:19: * Based on Steve Johnson's pdp-11 version
>         ./cpp.c:1678:           stsym("TOPS20");        /* for
> compatibility with Snyder */
>         ./local.c:4: * Based on Steve Johnson's pdp-11 version
>         ./local2.c:4: * Based on Steve Johnson's pdp-11 version
>         ./local2.c:209:         case 'A':               /* emit a label */
>         ./match.c:2: * match.c - based on Steve Johnson's pdp11 version
>         ./optim.c:318:                                           * Turn
> 'em into regular PCONV's
>         ./order.c:5: * Based on Steve Johnson's pdp-11 version
>         ./pftn.c:967:                    * fill out previous word, to
> permit pointer
>         ./pftn.c:1458:  register        commflag = 0;  /* flag for
> labelled common declarations */
>         ./pftn2.c:1011:                  * fill out previous word, to
> permit pointer
>         ./pftn2.c:1502: register        commflag = 0;  /* flag for
> labelled common declarations */
>         ./reader.c:632:         p2->op = NOASG p2->op;     /* this was
> omitted in 11 & /6 !! */
>         ./table.c:128:          "       movei   A1,1\nZN",      /* ZN =
> emit branch */
>         ./xdefs.c:13: * symbol table maintainence
>
> Thus, I'm confident that Jay's work was based on Steve Johnson's
> compiler, rather than Alan Snyder's.
>
> Norman Wilson asks:
>
> >> ...
> >> How did that C implementation handle ASCII text on the DEC-10?
> >> Were it a from-scratch UNIX port it might make sense to store
> >> four eight- or nine-bit bytes to a word, but if (as I sense it
> >> was) it was C running on TOPS-10 or TOPS-20, it would have had
> >> to work comfortably with DEC's convention of five 7-bit characters
> >> (plus a spare bit used by some programs as a flag).
> >> ...
>
> Our pcc compiler treated char* as a pointer to 7-bit ASCII strings,
> stored in the top 35 bits of a word, with the low-order bit normally
> zero; a 1-bit there meant that the word contained a 5-digit line
> number that some compilers and editors would report.  Of course, that
> low-order non-character bit meant that memset(), memcpy(), and
> memmove() had somewhat dicey semantics, but I no longer recall their
> specs.
>
> kcc later gave us access to the PDP-10's 1- to 36-bit byte
> instructions.
>
> For text processing, 5 x 7b + 1b bits matched the conventions for all
> other programming languages on the PDP-10.  When it came time to
> implement NFS, and exchange files and data with 32-bit-word machines,
> we needed the ability to handle files of 4 x 8b + 4b and 9 x 8b (in
> two 36-bit words), and kcc provided that.
>
> The one's-complement 36-bit Univac 1108 machines chose instead to
> store text in a 4 x 9b format, because that architecture had
> quarter-word load/store instructions, but not the general variable
> byte instructions of the PDP-10.  Our campus had an 1108 at the
> University of Utah Computer Center, but I chose to avoid it, because
> it was run in batch mode with punched cards, and never got networking.
> By contrast, our TOPS-20, BSD, RSX-11, SunOS, and VMS systems all had
> interactive serial-line terminals, and there was no punched card
> support at all.
>
>
> -------------------------------------------------------------------------------
> - Nelson H. F. Beebe                    Tel: +1 801 581 5254
>     -
> - University of Utah                    FAX: +1 801 581 4148
>     -
> - Department of Mathematics, 110 LCB    Internet e-mail:
> beebe at math.utah.edu  -
> - 155 S 1400 E RM 233                       beebe at acm.org
> beebe at computer.org -
> - Salt Lake City, UT 84112-0090, USA    URL:
> http://www.math.utah.edu/~beebe/ -
>
> -------------------------------------------------------------------------------
>
-- 
Sent from a handheld expect more typos than usual
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210715/98764b2b/attachment.htm>

From john at jfloren.net  Fri Jul 16 10:02:21 2021
From: john at jfloren.net (John Floren)
Date: Fri, 16 Jul 2021 00:02:21 +0000
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CA+r1Zhgmf8zbBiztO3Ab1H7Hd7HZQZxqTbTRahtXWfowC=A4qQ@mail.gmail.com>
References: <CMM.0.95.0.1626387969.beebe@gamma.math.utah.edu>
 <CA+r1Zhgmf8zbBiztO3Ab1H7Hd7HZQZxqTbTRahtXWfowC=A4qQ@mail.gmail.com>
Message-ID: <hnYS2RW60oBvlvcvoqNGbwEJCtOEHmclm_z1B_Od-Kc_vHLWpHYtHvFR5cVoNWdJXxy0h_3P8lFT-gAb2pO8BhHxGUtQ_-QmuFCuc2g9G2k=@jfloren.net>

On Thursday, July 15th, 2021 at 4:18 PM, Jim Davis <jim.epost at gmail.com> wrote:
> I remember trying to use the C compiler on that DEC-20 but never got
>
> very far with it; I thought the SAIL compiler was more interesting.
>
> Shows what foresight I had...

Speaking of SAIL (and I suppose further derailing an already derailed discussion), I've occasionally looked for more information about the environment (typically whenever a book or article briefly mentions SAIL as a place with lots of custom hardware and software) but come up with little. Anyone know of good description of SAIL computer systems?

john

From beebe at math.utah.edu  Fri Jul 16 10:25:41 2021
From: beebe at math.utah.edu (Nelson H. F. Beebe)
Date: Thu, 15 Jul 2021 18:25:41 -0600
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAC20D2NA4uEdnZupSLR=d-v7UAJ9dstgznUTHTC1kWCN+RHxOQ@mail.gmail.com>
Message-ID: <CMM.0.95.0.1626395141.beebe@gamma.math.utah.edu>

Clem Cole asks:

>> I wonder why Jay did his version?  Maybe he wanted more modern 
>> C features since the Snyder compiler would been based on a very 
>> early C dialect.

I never talked to Jay about his motivation for working on pcc for
TOPS-20.  I visited Ken Harrenstien at SRI, but regrettably, only
once.  I have great admiration for his work on kcc, and later, his
PDP-10 emulator (written in C, of course).

I suspect that the main reason was that in the early 1980s, we could
still see years of use of our PDP-10 systems in Computer Science and
the College of Science, yet, being Node 4 of the original 5 nodes of
the Arpanet, we were in frequent contact with Berkeley people who were
active in the BSD effort.

Besides our PDP-10s, we had several PDP-11s and VAXes that could run
Unix, so we wanted our software to run on all of those systems, and C
would be the obvious common programming language.  Also, the PC
revolution that started in roughly 1980 made it clear that computers
were going to get a lot cheaper, and a lot more numerous, so in
academia, we would phase out our Big Iron machines and replace them
with Unix workstations.
 
To help our users begin to make the transition to Unix, I wrote this
Rosetta Stone document:

	Unix for TOPS-20 Users
	[24-June-1987]
	http://www.math.utah.edu/~beebe/publications/1987/t20unix.pdf

I've not looked at it in years, and I might now cringe at parts, but
most of our users in the College of Science were not computer geeks,
but just scientists and mathematicians trying to do their research and
teaching, so they needed help.


-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------

From beebe at math.utah.edu  Fri Jul 16 11:02:03 2021
From: beebe at math.utah.edu (Nelson H. F. Beebe)
Date: Thu, 15 Jul 2021 19:02:03 -0600
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <hnYS2RW60oBvlvcvoqNGbwEJCtOEHmclm_z1B_Od-Kc_vHLWpHYtHvFR5cVoNWdJXxy0h_3P8lFT-gAb2pO8BhHxGUtQ_-QmuFCuc2g9G2k=@jfloren.net>
Message-ID: <CMM.0.95.0.1626397299.beebe@gamma.math.utah.edu>

John Floren asks

>> Anyone know of good description of SAIL computer systems?

SAIL was both an operating system at Stanford, and a programming
language at the same site, but the SAIL compiler ran on multiple
operating systems on the PDP-10.  

The first edition of William M. Newman and Robert F. Sproull's
``Principles of Interactive Computer Graphics'', McGraw-Hill, 1973,
ISBN 0-07-046337-9, had an appendix on the SAIL language, but that
book is in my campus office, and this week, I'm working at home, so I
cannot check how much they had to say about SAIL.  The bitsavers
archive should have programming language manuals for the SAIL
language.

When TeX and METAFONT were first written in 1977--1978, Don Knuth
programmed them both in SAIL, because it had the needed data
structures, recursion, and a good debugger.  However, by 1982, despite
the MAINSAIL effort to port the SAIL language to other platforms, it
became clear that a different implementation language was called for,
and the only candidate that offered portability to multiple CPU
architectures and operating systems at the time was Pascal.

That language has a number of syntactic aggravations, including
fixed-length character strings, so Don used his tangle preprocessor to
rewrite strings as lists of integers, and otherwise stuck to a strict
subset of Pascal.  By the late 1980s, the Pascal code was translated,
first manually, then automatically to C, and that is the language in
which it gets compiled today.  Any changes to the source code,
however, are done strictly in the original Pascal subset.  This year,
I have built TeX Live 2021 on AMD64, ARM32, ARM64, Alpha, M68K, MIPS,
PowerPC, RISC-V64, S390x, SPARC, and x86 CPUs, under numerous
operating systems, demonstrating that, thanks to C and Unix, TeX and
METAFONT remain widely portable.

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------


-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------

From dave at horsfall.org  Fri Jul 16 11:35:57 2021
From: dave at horsfall.org (Dave Horsfall)
Date: Fri, 16 Jul 2021 11:35:57 +1000 (EST)
Subject: [TUHS] 386BSD released
In-Reply-To: <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
Message-ID: <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>

On Wed, 14 Jul 2021, Michael KjГ¶rling wrote:

>> In 1992, 386BSD is released by Lynne and William Jolitz, starting the 
>> open source operating system movement (Linux didn't come along under 
>> later).
>
> Are you sure? Wikipedia claims that it happened the other way around; 
> that the Linux kernel initial release was 0.02 on 5 Oct 1991, while the 
> 386BSD initial release was 0.0 on 12 March 1992.

Could be; I got that news from one of those daily history sites (I don't 
always trust Wikipedia).

> It seems that work on 386BSD began earlier than work on Linux, but that 
> the initial release of Linux was earlier than the initial release of 
> 386BSD.

That could be the source of the confusion.

-- Dave

From tytso at mit.edu  Fri Jul 16 11:58:53 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Thu, 15 Jul 2021 21:58:53 -0400
Subject: [TUHS] [COFF]  386BSD released
In-Reply-To: <CAC20D2Pqu_hnt5A7XLtb6rRmniURmDc7Zzo4o6tzbZBD3pfJKA@mail.gmail.com>
References: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
 <CAC20D2O=ZAD2mMOD+bDZ=-Rk1O8HRguaCCoMSvnQKQ1FE1-aBw@mail.gmail.com>
 <YPCNnL4TLkLWqmFa@mit.edu>
 <CAC20D2Pqu_hnt5A7XLtb6rRmniURmDc7Zzo4o6tzbZBD3pfJKA@mail.gmail.com>
Message-ID: <YPDn3XRqRQ4a2UKl@mit.edu>

On Thu, Jul 15, 2021 at 04:30:15PM -0400, Clem Cole wrote:
> 
> Ted - that *is what* Doug pointed out!!!  They did not create anything that
> was new.  SHARED / DECUS / USENIX and the like were providing that exact
> same function starting in the late 1950s!!!  Companies and Universities all
> pooled their resources to make things better and to get new and improved
> solutions.    Sometimes they started with things that come from the
> original OEM.  Also often they created their own technology and made it
> available to everyone.  Sometime they combine both.  And it was a
> 'bazaar where everyone had access and you chose to use it to not.  Sounds
> pretty familiar, BTW.

I remember looking at the DECUS program catalog for the PDP-8, and I
seem to recall that for the most part, individuals were sharing their
programs with others.  In that way, it wasn't all that different from
say, CPM/UG, and HUG (Heathkit Users Group).  But the thing is, for
the most part, it was a single author sharing individual programs, and
often changes were not accepted back.  

Consider the history of Bill Jolitz and 386BSD, and the collection of
patches that eventuallya became NetBSD and FreeBSD, which was formed
because they were frustrated that they couldn't get their patch sets
back into Jolitz's code base.  Technology plays a part, in that it
enables the change.  But it's not just about technology.  There is
also a very strong social component.  Even when you were richly
interconnected at the network level, this does not guarantee that will
be willing to be richly interconnected in terms of accepting patch
sets from people who you may not know across the Internet, into *your*
program, for which you are the author and high priest.

I don't remember the exact date, but it would have been in the early
90's, when at the time I was already contributing patches to Linux,
and where ftp and e-mail and applying patches via context diffs was
very much available.  At that time, we were interested in getting
support for MIT Project Athena's Hesiod extenstions into the BIND
distributions (we had just been carrying patches against BIND for many
years).

In order to get those patches integrated, Paul Vixie invited me to his
house in Redwood City, and so I flew from Boston to San Francisco,
carrying my Linux laptop with the BIND patches, and we got the patches
integrated into master BIND sources.  Paul was a gracious host, and it
was lovely that I got to spend some time with him.  But it was
interesting that my physical presence was needed, or at least highly
useful, in terms of getting those patches into BIND.  Requiring
physical presence to get patches integrated.... doesn't scale.

And so it wasn't a matter of technology, since the technology for
Linus, who didn't know me from Adam in 1991, to accept patches from me
implementing BSD Job Control, was certainly available when I was
working with Paul to get the Hesiod changes integrated into BIND.  But
like with Jolitz and 386BSD, it's a mindset thing, not just technology.

I also want to emphasize again, the question of business model is also
something which I think is different, and *important*.  It's one thing
for Academics and Researchers to be willing to give changes away to
anyone who wants.  It's quite another for a company to give away their
intellectual property in such a way that it can actually be used by
their competitors, either because that's the social convention, or
because it's enforced by the license.  Was the practices we use today
for Linux built on the traditions of comp.sources.unix, and BSD, and
AT&T Research, and IBM making sources available for System/360, yadda,
yadda, yadda?  Of course!  I'm not denying that.

But at the same time, to claim that nothing is new under the Sun, and
*all* of this had been done decades earlier, is also not the whole
story.  And to call IBM releasing System/360, when they retained
control of the license, and wasn't accepting any changes back, and
*darned* well would have sued anyone trying to use that code on
non-IBM computers into a smoking crater, as "Open Source" can be
highly misleading, because that is not what most people associate with
the term "Open Source" today.

And if we take a look at what AT&T Lawyers did with the Unix source
code, at some point, it most *defintely* was the antithesis of "Open
Source".  Which would lead me to assert that Unix was never really
released under what today we would call, "Open Source".

Cheers,

					- Ted

From ggm at algebras.org  Fri Jul 16 12:14:43 2021
From: ggm at algebras.org (George Michaelson)
Date: Fri, 16 Jul 2021 12:14:43 +1000
Subject: [TUHS] [COFF] 386BSD released
In-Reply-To: <YPDn3XRqRQ4a2UKl@mit.edu>
References: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
 <CAC20D2O=ZAD2mMOD+bDZ=-Rk1O8HRguaCCoMSvnQKQ1FE1-aBw@mail.gmail.com>
 <YPCNnL4TLkLWqmFa@mit.edu>
 <CAC20D2Pqu_hnt5A7XLtb6rRmniURmDc7Zzo4o6tzbZBD3pfJKA@mail.gmail.com>
 <YPDn3XRqRQ4a2UKl@mit.edu>
Message-ID: <CAKr6gn1UOc5=K+Cghp3qUfjk6SBv1p3LVSF=TZ3=-a6tK6EVwQ@mail.gmail.com>

I was part of a discussion about a bug in the DECUS tape in Leeds uni,
in '82-84 window. I was a very small part I might add, not the
principal. I can't remember the package. It was probably trivia, like
walking a specific SYS$SYSTEM value in a way which was dangerous or
encoded assumptions about device:directory:user models in VMS.

The feedback I got from this process was "thanks, we'll think about
it" was closure, for those days.  We'd been pretty specific about a
fix. I got the sense the tape was an annual affair. And the likelihood
of our "patch" being both accepted, and added to the next round of the
tape was low-to-zero because everyone wanted "moar" and so people
focussed on adding things, not fixing things.

The exception here was compilers: people always want bugs fixed in a
compiler. Or the NAG library, but both compilers (language spec) and
NAG (strict maths formalisms about correctness) had policed mechanisms
to accept user input, validate, run through a remorselessly tight
compliance check, and emit, if it survived.

A bug in the implementation of MUD for dec-10? ok, so the word
"potato" is misspelled on one screen. Move on.

On Fri, Jul 16, 2021 at 11:59 AM Theodore Y. Ts'o <tytso at mit.edu> wrote:
>
> On Thu, Jul 15, 2021 at 04:30:15PM -0400, Clem Cole wrote:
> >
> > Ted - that *is what* Doug pointed out!!!  They did not create anything that
> > was new.  SHARED / DECUS / USENIX and the like were providing that exact
> > same function starting in the late 1950s!!!  Companies and Universities all
> > pooled their resources to make things better and to get new and improved
> > solutions.    Sometimes they started with things that come from the
> > original OEM.  Also often they created their own technology and made it
> > available to everyone.  Sometime they combine both.  And it was a
> > 'bazaar where everyone had access and you chose to use it to not.  Sounds
> > pretty familiar, BTW.
>
> I remember looking at the DECUS program catalog for the PDP-8, and I
> seem to recall that for the most part, individuals were sharing their
> programs with others.  In that way, it wasn't all that different from
> say, CPM/UG, and HUG (Heathkit Users Group).  But the thing is, for
> the most part, it was a single author sharing individual programs, and
> often changes were not accepted back.
>
> Consider the history of Bill Jolitz and 386BSD, and the collection of
> patches that eventuallya became NetBSD and FreeBSD, which was formed
> because they were frustrated that they couldn't get their patch sets
> back into Jolitz's code base.  Technology plays a part, in that it
> enables the change.  But it's not just about technology.  There is
> also a very strong social component.  Even when you were richly
> interconnected at the network level, this does not guarantee that will
> be willing to be richly interconnected in terms of accepting patch
> sets from people who you may not know across the Internet, into *your*
> program, for which you are the author and high priest.
>
> I don't remember the exact date, but it would have been in the early
> 90's, when at the time I was already contributing patches to Linux,
> and where ftp and e-mail and applying patches via context diffs was
> very much available.  At that time, we were interested in getting
> support for MIT Project Athena's Hesiod extenstions into the BIND
> distributions (we had just been carrying patches against BIND for many
> years).
>
> In order to get those patches integrated, Paul Vixie invited me to his
> house in Redwood City, and so I flew from Boston to San Francisco,
> carrying my Linux laptop with the BIND patches, and we got the patches
> integrated into master BIND sources.  Paul was a gracious host, and it
> was lovely that I got to spend some time with him.  But it was
> interesting that my physical presence was needed, or at least highly
> useful, in terms of getting those patches into BIND.  Requiring
> physical presence to get patches integrated.... doesn't scale.
>
> And so it wasn't a matter of technology, since the technology for
> Linus, who didn't know me from Adam in 1991, to accept patches from me
> implementing BSD Job Control, was certainly available when I was
> working with Paul to get the Hesiod changes integrated into BIND.  But
> like with Jolitz and 386BSD, it's a mindset thing, not just technology.
>
> I also want to emphasize again, the question of business model is also
> something which I think is different, and *important*.  It's one thing
> for Academics and Researchers to be willing to give changes away to
> anyone who wants.  It's quite another for a company to give away their
> intellectual property in such a way that it can actually be used by
> their competitors, either because that's the social convention, or
> because it's enforced by the license.  Was the practices we use today
> for Linux built on the traditions of comp.sources.unix, and BSD, and
> AT&T Research, and IBM making sources available for System/360, yadda,
> yadda, yadda?  Of course!  I'm not denying that.
>
> But at the same time, to claim that nothing is new under the Sun, and
> *all* of this had been done decades earlier, is also not the whole
> story.  And to call IBM releasing System/360, when they retained
> control of the license, and wasn't accepting any changes back, and
> *darned* well would have sued anyone trying to use that code on
> non-IBM computers into a smoking crater, as "Open Source" can be
> highly misleading, because that is not what most people associate with
> the term "Open Source" today.
>
> And if we take a look at what AT&T Lawyers did with the Unix source
> code, at some point, it most *defintely* was the antithesis of "Open
> Source".  Which would lead me to assert that Unix was never really
> released under what today we would call, "Open Source".
>
> Cheers,
>
>                                         - Ted

From tytso at mit.edu  Fri Jul 16 12:22:45 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Thu, 15 Jul 2021 22:22:45 -0400
Subject: [TUHS] [COFF] 386BSD released
In-Reply-To: <CAP2nic0qY4HrFTUYj0qwr=eney-re6Gn2O=0S23d6jwvOL_O+g@mail.gmail.com>
References: <CAKH6PiVCjo3YnTZUVYOCDeffQ6POVwGAQA1QMR9UinkfGn+AmQ@mail.gmail.com>
 <CAC20D2O=ZAD2mMOD+bDZ=-Rk1O8HRguaCCoMSvnQKQ1FE1-aBw@mail.gmail.com>
 <YPCNnL4TLkLWqmFa@mit.edu>
 <CAP2nic0qY4HrFTUYj0qwr=eney-re6Gn2O=0S23d6jwvOL_O+g@mail.gmail.com>
Message-ID: <YPDtdWs1BDRnMWJn@mit.edu>

On Thu, Jul 15, 2021 at 12:49:07PM -0700, Adam Thornton wrote:
> Although from a somewhat different perspective, it's also why the Linux
> kernel syscall interface is so unruly, right?
> 
> You've got your...some number in the small dozens of common syscalls, which
> are already present for the most part in v6 or v7.  These are the ones I,
> at least, think of when I think of the Unix manual, section 2.

Actually, a more reason why we have so many system calls is that there
is a strong belief that backwards compatibility is important.  So much
so that a Linux, or even Minix binary, from the early 1990's, will
still run on a modern Linux kernel today.  So that means we have
separate system calls for wait, wait3, wait4, etc.  Support for
openat(2), linkat(2), etc., which got added to Posix by way of
Solaris, need to be implemented as a separate system calls, since we
need to keep the original open(2) system calls.  Etc.

> And obviously there's a tradeoff there.  Elegance departs, and you've
> probably introduced some security risk because these syscalls are not
> nearly as well-exercised as the common ones, but on the other hand you have
> these large companies paying to work on the kernel, and you have them
> supporting their product on Linux systems because the system can be bent
> into accommodating them more easily, and it will run better there than on
> OSes where they don't get to introduce features that benefit their
> products, which further drives adoption.

In many cases, inside the kernel, system calls like wait(2) and
wait3(2) will be implemeanted in terms of wait4(2), the implementation
of open(2) and openat(2) share a common codepath, and so on.  So
although the *number* of system calls may look big, in many cases
there are shared code paths.  This is especially true for the system
calls that implement 64-bit support, where the old legacy 32-bit
system calls are just wrappers that call the 64-bit implementations of
those system calls.

There are also some architectures such as Alpha, where some of Linux's
system calls used the Ultrix system call numbering scheme, and other
Ultrix system calls were emulated, so that the Netscape browser, which
was provided in binary form only for Ultrix on Alpha, would run on
Linux Alpha.  Being able to run a subset of Ultrix binaries on Linux
Alpha was certainly a hack, but the ability to run a web browser
(there were no open source web browsers at that time) certainly drove
adoption for at least some users.

Was there perhaps some security risk in doing that?  Probably,
although people cared a lot less about that in the early 90's.  And
these days Linux support for architectures such as Alpha and HP's
PA-RISC are done only by folks who do for fun.  :-)

	    	      	       	      - Ted

P.S.  At one point Linux x86 could also run SCO Unix binaries.  Which
led to an amusing situation where MIT had purchased a site license for
a proprietary spreadsheet program that ran on SCO Unix, for use by
students who would be running Linux.  I worked with someone at that
company (who eventually became one of the founders of Red Hat) and he
gave me a custom application binary that checked for MIT's IP network
address prefix, which was how the site license enforcement was
implemented.

Turns out his development environment was Linux, cross-compiling to
create a SCO Unix binary, because the Linux development environment
was more developer friendly than SCO's.  And so here he was, building
a SCO Unix application on a Linux development machine, and then
handing it to me so that our students could run that SCO Unix
application on Linux systems at MIT.  The joys of syscall/OS
emulation.  :-)

From risner at stdio.com  Fri Jul 16 12:33:52 2021
From: risner at stdio.com (risner at stdio.com)
Date: Thu, 15 Jul 2021 22:33:52 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
Message-ID: <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com>

I was running 386BSD 0.0 on a 386 40 mhz machine in April 1992 with 32 
mb of ram.
There was much instability in the OS with more than 8 gb of ram and I 
mailed 32 mb of extra to the Jolitz late summer to the fall.
I never heard about Linux until much later in 1993.

There used to be a post on usenet news annoucing the relase with the 
FTP, but the best I could google was this FAQ confirming release in 
1992.
https://groups.google.com/g/comp.os.386bsd.announce/c/PGltboD6rq4

I have repetively seen discussion suggesting Linux was available first, 
but having directly worked for a university at the time installing 
SunOS, AT&T SVR3, and other old OS’s, we welcomed the concept of 
switching from AT&T SVR3 on 386 machines to 386BSD. We’d probably have 
welcomed Linux if anyone in the department knew about it.

James Risner

On 15 Jul 2021, at 21:35, Dave Horsfall wrote:

> On Wed, 14 Jul 2021, Michael KjГ¶rling wrote:
>
>>> In 1992, 386BSD is released by Lynne and William Jolitz, starting 
>>> the open source operating system movement (Linux didn't come along 
>>> under later).
>>
>> Are you sure? Wikipedia claims that it happened the other way around; 
>> that the Linux kernel initial release was 0.02 on 5 Oct 1991, while 
>> the 386BSD initial release was 0.0 on 12 March 1992.
>
> Could be; I got that news from one of those daily history sites (I 
> don't always trust Wikipedia).
>
>> It seems that work on 386BSD began earlier than work on Linux, but 
>> that the initial release of Linux was earlier than the initial 
>> release of 386BSD.
>
> That could be the source of the confusion.
>
> -- Dave

From tytso at mit.edu  Fri Jul 16 14:25:45 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Fri, 16 Jul 2021 00:25:45 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com>
Message-ID: <YPEKScdjJCE+KMjj@mit.edu>

On Thu, Jul 15, 2021 at 10:33:52PM -0400, risner at stdio.com wrote:
> 
> I have repetively seen discussion suggesting Linux was available first, but
> having directly worked for a university at the time installing SunOS, AT&T
> SVR3, and other old OS’s, we welcomed the concept of switching from AT&T
> SVR3 on 386 machines to 386BSD. We’d probably have welcomed Linux if anyone
> in the department knew about it.

To be fair, Linux in 1991 was a very primitive affair; no TCP/IP, no X
Windows.  We had C-Kermit, and we had emacs, and we had basic shell
utilities and a compiler.  But not much else.  So I doubt it would
have been a good replacement for SVR3.

The big difference was that Linus accepted patches, and turned around
new releases *quickly* while Jolitz apparently sat on patches until
the NetBSD and FreeBSD people finally lost patience and released a
fork with their patch sets in 1993.  So while Linux in 1992 was
probably behind 386BSD from a feature perspective, its development
velocity was much faster.

I remember a friendly rivalry that I had with Bruce D. Evans in
Australia, who was working on the serial driver for FreeBSD, where we
would exchange tips and techniques for making the serial driver on our
respective OS's more CPU efficient.  (The metric was to see who could
most reduce the system overhead of the serial interrupt and tty layers
when running a C-Kermit file transfer over a pair of RS-232 ports
connected via a loopback cable.)  It was a lot of fun, and we both
gained a lot from the exchange of ideas, but finally, I came up with
an idea (flip buffers) that really reduced Linux's serial/tty
overhead, but which Bruce couldn't match in FreeBSD, because the
FreeBSD core team thought that clists were handed down from Mount
Olympus by the Gods of BSD, and making that kind of change in the tty
layer was tantamount to heresy.  Heh.

						- Ted

From bakul at iitbombay.org  Fri Jul 16 15:51:11 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Thu, 15 Jul 2021 22:51:11 -0700
Subject: [TUHS] 386BSD released
In-Reply-To: <YPEKScdjJCE+KMjj@mit.edu>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
Message-ID: <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>

On Jul 15, 2021, at 9:25 PM, Theodore Y. Ts'o <tytso at mit.edu> wrote:
> 
> I remember a friendly rivalry that I had with Bruce D. Evans in
> Australia, who was working on the serial driver for FreeBSD, where we
> would exchange tips and techniques for making the serial driver on our
> respective OS's more CPU efficient.  (The metric was to see who could
> most reduce the system overhead of the serial interrupt and tty layers
> when running a C-Kermit file transfer over a pair of RS-232 ports
> connected via a loopback cable.)  It was a lot of fun, and we both
> gained a lot from the exchange of ideas, but finally, I came up with
> an idea (flip buffers) that really reduced Linux's serial/tty
> overhead, but which Bruce couldn't match in FreeBSD, because the
> FreeBSD core team thought that clists were handed down from Mount
> Olympus by the Gods of BSD, and making that kind of change in the tty
> layer was tantamount to heresy.  Heh.

Dave Yost wrote the serial driver for our 4 port serial card @ Fortune
(1981-82).  Later chips like NS16550 had 16 char on chip buffers but we
back then we used a Moto SIO chip that had only one char buffer.  IIRC,
he used two tricks. One was "partially evaluated" xmit/recv handlers so
that each port got its own xmit/recv functions, with hand-crafted
instructions (in hex, no less!) just right for a given port and all the
interry t handler . The  do was transfer a char from/to the buffer it
(lready knew about. The other was he increased the cblock size from 8 to 128
(what a clist points to). He says he described this design to dmr who said
why not?!  With this design Yost's code was able to handle 4 full-duplex
9600 baud streams at full-speed. Not bad for a 5.6Mhz clock machine!


From arnold at skeeve.com  Fri Jul 16 17:38:02 2021
From: arnold at skeeve.com (arnold at skeeve.com)
Date: Fri, 16 Jul 2021 01:38:02 -0600
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CANCZdfpfzrU0SP5HY=0GVrbNaYPT9FP6pt6fsB+SgNDcCJCL0w@mail.gmail.com>
References: <1626375671.1426.for-standards-violators@oclsc.org>
 <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>
 <CANCZdfpfzrU0SP5HY=0GVrbNaYPT9FP6pt6fsB+SgNDcCJCL0w@mail.gmail.com>
Message-ID: <202107160738.16G7c2gj008875@freefriends.org>

Warner Losh <imp at bsdimp.com> wrote:

> ... But it was good enough for me to write my OS group project running
> under 'ZAYEF' a DecSystem-20 emulator running ...

Fascinating. That's the Hebrew word used for "forgery" or "fakery".
Appropriate for an emulator. Whoever named it both knew Hebrew and
had a sense of humor. :-)

Arnold

From lars at nocrew.org  Fri Jul 16 18:05:43 2021
From: lars at nocrew.org (Lars Brinkhoff)
Date: Fri, 16 Jul 2021 08:05:43 +0000
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>
 (Clem Cole's message of "Thu, 15 Jul 2021 15:27:36 -0400")
References: <1626375671.1426.for-standards-violators@oclsc.org>
 <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>
Message-ID: <7wczriptt4.fsf@junk.nocrew.org>

Clem Cole wrote:
> The 'second' C compiler was a PDP-10 and Honeywell (36-bit) target
> Alan Synder did for his MIT Thesis.  It was originally targeted to ITS
> for the PDP-10, but it ran on Tops-20 also.  My >>memory<< is he used
> a 7-bit Character, ala SAIL, with 5 chars stored in a word with a bit
> leftover.

On ITS it only ever stored characters as full 36-bit words!  So sizeof
char == 1 == sizeof int.  This is allowed per the C standard.  (Maybe it
was updated somewhere else, I dunno.)

KCC does support 6/7/8/9 bits per character.  I think 9 is the default,
or else things like memcpy doesn't work.

> I believe that C compiler Nelson is talking about I believe is
> actually Synder's that Jay either ported from ITS or WAITS.

I think it's a different compiler based on pcc.  But I also think code
was moved between various PDP-10 C compilers and libraries, so it's
sometimes hard to tell one from another.

There was also "Sargasso C", but I don't know much about that one.
Maybe its claim to fame is as the original implementation language for
the VT100 test program vttest still in use today.

There was even an attempt to port GCC, and maybe it's still in use today
somewhere around the Seattle area.

From lars at nocrew.org  Fri Jul 16 18:50:04 2021
From: lars at nocrew.org (Lars Brinkhoff)
Date: Fri, 16 Jul 2021 08:50:04 +0000
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CMM.0.95.0.1626395141.beebe@gamma.math.utah.edu> (Nelson
 H. F. Beebe's message of "Thu, 15 Jul 2021 18:25:41 -0600")
References: <CMM.0.95.0.1626395141.beebe@gamma.math.utah.edu>
Message-ID: <7w35seprr7.fsf@junk.nocrew.org>

> Clem Cole asks:
>> I wonder why Jay did his version?  Maybe he wanted more modern C
>> features since the Snyder compiler would been based on a very early C
>> dialect.

I would guess that was one strong reason.  Snyder was at Bell Labs
during the very time B transformed into C, and brought that version back
to MIT.  If you think K&R C looks outdated and crufty, you may balk at
this "primeval C".  (I find it quite charming myself.)

The compiler is also quite slow and the emitted code is not very good.

Nelson H. F. Beebe wrote:
> Besides our PDP-10s, we had several PDP-11s and VAXes that could run
> Unix, so we wanted our software to run on all of those systems

I think the Snyder compiler wouldn't be the best for moving code around
these computers.  I can see pcc would be a much better choice.

From lars at nocrew.org  Fri Jul 16 18:27:17 2021
From: lars at nocrew.org (Lars Brinkhoff)
Date: Fri, 16 Jul 2021 08:27:17 +0000
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <hnYS2RW60oBvlvcvoqNGbwEJCtOEHmclm_z1B_Od-Kc_vHLWpHYtHvFR5cVoNWdJXxy0h_3P8lFT-gAb2pO8BhHxGUtQ_-QmuFCuc2g9G2k=@jfloren.net>
 (John Floren's message of "Fri, 16 Jul 2021 00:02:21 +0000")
References: <CMM.0.95.0.1626387969.beebe@gamma.math.utah.edu>
 <CA+r1Zhgmf8zbBiztO3Ab1H7Hd7HZQZxqTbTRahtXWfowC=A4qQ@mail.gmail.com>
 <hnYS2RW60oBvlvcvoqNGbwEJCtOEHmclm_z1B_Od-Kc_vHLWpHYtHvFR5cVoNWdJXxy0h_3P8lFT-gAb2pO8BhHxGUtQ_-QmuFCuc2g9G2k=@jfloren.net>
Message-ID: <7w8s26pst6.fsf@junk.nocrew.org>

John Floren wrote:
> Speaking of SAIL (and I suppose further derailing an already derailed
> discussion), I've occasionally looked for more information about the
> environment (typically whenever a book or article briefly mentions
> SAIL as a place with lots of custom hardware and software) but come up
> with little. Anyone know of good description of SAIL computer systems?

I'm risking the Wrath of the Moderator here, but I really want to supply
some information.  Sorry, this is very far from Unix.  But hey, SUDS was
used to design the Stanford SUN Unix workstation.

What do you mean with "SAIL computer systems"?  I think upthread SAIL
was referencing the Algol compiler written at the Stanford AI lab.  But
SAIL was also an acronym for the entire lab, AND also used as a name for
the main timesharing computer hardware.  The hardware was first a PDP-6,
then adding a PDP-10 (KA10), then a KL10.  The operating system was
eventually named WAITS, but was also sometimes called SAIL or just
SYSTEM.  WAITS was also run on two Foonlies at other sites, and those
could also be called SAIL computer systems in some sense.

I gather you probably mean the AI lab and its computers.  The best place
for information is saildart.org, and Bruce Baumgart is working on a tome
called "SAILDART_Prolegomenon".  This work in progress is 116 pages.
https://github.com/PDP-10/waits/blob/master/doc/SAILDART_Prolegomenon_2016.pdf

From douglas.mcilroy at dartmouth.edu  Fri Jul 16 22:09:59 2021
From: douglas.mcilroy at dartmouth.edu (Douglas McIlroy)
Date: Fri, 16 Jul 2021 08:09:59 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
Message-ID: <CAKH6PiWVc03DtJ0ujAauFZNJn7cuH7-QTCRYi83_KESsZ2AKOQ@mail.gmail.com>

>> -r is weird because it enables backwards reading, but only as
>> limited by count. Better would be a program, say revfile, that simply
>> reads backwards by lines. Then tail p  has an elegant implementation:
>>      revfile p | head | revfile

> tail -n can be smarter in that it can simply read the last K bytes
> and see if there are n lines. If not, it can read back further.
> revfile would have to read the whole file, which could be a lot
> more than n lines! tail -n < /dev/tty may never terminate but it
> will use a small finite amount of memory.

Revfile would work the same way. When head has seen enough
and terminates, revfile will get SIGPIPE and stop. I agree that,
depending on scheduling and buffer management, revfile might
read more than tail -n,  but  it wouldn't read the whole of a
humongous file.

Doug

From tytso at mit.edu  Fri Jul 16 23:00:58 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Fri, 16 Jul 2021 09:00:58 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com>
 <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
Message-ID: <YPGDCoO4uB1ehBxi@mit.edu>

On Thu, Jul 15, 2021 at 10:51:11PM -0700, Bakul Shah wrote:
> 
> Dave Yost wrote the serial driver for our 4 port serial card @ Fortune
> (1981-82).  Later chips like NS16550 had 16 char on chip buffers but we
> back then we used a Moto SIO chip that had only one char buffer.  IIRC,
> he used two tricks. One was "partially evaluated" xmit/recv handlers so
> that each port got its own xmit/recv functions, with hand-crafted
> instructions (in hex, no less!) just right for a given port and all the
> interry t handler . The  do was transfer a char from/to the buffer it
> (lready knew about. The other was he increased the cblock size from 8 to 128
> (what a clist points to). He says he described this design to dmr who said
> why not?!  With this design Yost's code was able to handle 4 full-duplex
> 9600 baud streams at full-speed. Not bad for a 5.6Mhz clock machine!

The trick that I used was two have two "flip buffers" which were
dedicated for each serial port.  One buffer would be filled by the
interrupt handler, while the other would be buffer would be processed
by the bottom half (read: software interrupt) handler.  When the
bottom half handler had emptied one buffer, it would check to see if
there were any characters in the other buffer, and if so, flip the two
and process the characters in that buffer.  Exclusion was handled by a
combination of disabling serial interrupts and using a spinlock (which
was held just long enough to flip the pointers to the two flip
buffers).

With this scheme I could handle multiple pairs of 115200 baud streams
at full rates before the 40 MHz CPU was saturated.  No memory
allocation is required on the hot paths, and the amount of processing
that is done in the hardware interrupt context is the absolute
minimum.

I also added a bit test against 32-byte bitarray to determine whether
a character could be handled via the fast path or require special
handling (in case it was a ^C, ^U, ^S, etc.) but that was important
only for cooked mode; it wasn't needed for raw mode.  I suspect this
hack would become less or even not helpful as Intel processors became
more Spectre- and Meltdown-susceptible, but for the 386, it was a win.  :-)

     	      	  			    	- Ted

From lm at mcvoy.com  Fri Jul 16 23:56:39 2021
From: lm at mcvoy.com (Larry McVoy)
Date: Fri, 16 Jul 2021 06:56:39 -0700
Subject: [TUHS] 386BSD released
In-Reply-To: <YPGDCoO4uB1ehBxi@mit.edu>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com>
 <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu>
Message-ID: <20210716135639.GI12733@mcvoy.com>

On Fri, Jul 16, 2021 at 09:00:58AM -0400, Theodore Y. Ts'o wrote:
> The trick that I used was two have two "flip buffers" which were
> dedicated for each serial port.  One buffer would be filled by the
> interrupt handler, while the other would be buffer would be processed
> by the bottom half (read: software interrupt) handler.  When the
> bottom half handler had emptied one buffer, it would check to see if
> there were any characters in the other buffer, and if so, flip the two
> and process the characters in that buffer.  

I'm pretty sure SGI used a similar approach for networking packets.

From beebe at math.utah.edu  Sat Jul 17 00:17:18 2021
From: beebe at math.utah.edu (Nelson H. F. Beebe)
Date: Fri, 16 Jul 2021 08:17:18 -0600
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAKH6PiW58PDPb5HRi12aKE+mT+O8AjETr9R51Db6U3KcEp_KkA@mail.gmail.com>
Message-ID: <CMM.0.95.0.1626445038.beebe@gamma.math.utah.edu>

Doug McIlroy asks about the Rosetta Stone table relating TOPS-20
commands to Unix command in my ``Unix for TOPS-20 Users'' document:

>> I was puzzled, though, by the Unix command "leave", which is 
>> not in the manuals I edited, nor is it in Linux. What does 
>> (or did) it do?

I reread that 1987 document this morning, and found a few small
mistakes, but on the whole, I still agree with what I wrote 34 years
ago, and I'm pleased that almost everything there about Unix still
applies today.

I confess that I had forgotten about the TOPS-20 ALERT command and its
Unix equivalent, leave.  As Doug noted, leave is not in Linux systems,
but it still exists in the BSD world, in DragonFlyBSD, FreeBSD,
NetBSD, OpenBSD, and their many derivatives.  From a bleeding-edge
FreeBSD 14 system, I find

% man leave
LEAVE(1)                FreeBSD General Commands Manual               LEAVE(1)

NAME
     leave – remind you when you have to leave

SYNOPSIS
     leave [[+]hhmm]

DESCRIPTION
     The leave utility waits until the specified time, then reminds you that
     you have to leave.  You are reminded 5 minutes and 1 minute before the
     actual time, at the time, and every minute thereafter.  When you log off,
     leave exits just before it would have printed the next message.
...

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------

From clemc at ccc.com  Sat Jul 17 00:19:15 2021
From: clemc at ccc.com (Clem Cole)
Date: Fri, 16 Jul 2021 10:19:15 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <7wczriptt4.fsf@junk.nocrew.org>
References: <1626375671.1426.for-standards-violators@oclsc.org>
 <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>
 <7wczriptt4.fsf@junk.nocrew.org>
Message-ID: <CAC20D2McU80+T+OzTNTQcFZ+_siXr9S-5SXtMd_QPcskhX6v9w@mail.gmail.com>

On Fri, Jul 16, 2021 at 4:05 AM Lars Brinkhoff <lars at nocrew.org> wrote:

> Clem Cole wrote:
> > The 'second' C compiler was a PDP-10 and Honeywell (36-bit) target
> > Alan Synder did for his MIT Thesis.  It was originally targeted to ITS
> > for the PDP-10, but it ran on Tops-20 also.  My >>memory<< is he used
> > a 7-bit Character, ala SAIL, with 5 chars stored in a word with a bit
> > leftover.
>
> On ITS it only ever stored characters as full 36-bit words!  So sizeof
> char == 1 == sizeof int.  This is allowed per the C standard.  (Maybe it
> was updated somewhere else, I dunno.)
>

Ah - that makes sense.  I never programmed the Honeywell in anything but
Dartmouth BASIC (mostly) and any early FORTRAN (very little) and the whole
idea of storage size was somewhat oblivious to me at the point as I was a
youngster when I did that.  Any idea did the Honeywell treat chars as
36-bit entities also?  Steve, maybe you remember?

Also, please remember that the standard does not yet exist for a good 10
years ;-)  At this point, the 'standard' was the Ritchie Compiler for the
PDP-11.

At the time, we to run wanted the program on all of the UNIX/v6 systems and
CMU's version of TOPS-10 and later TOPS-20 as an interchange format.  Thus,
I have memories of having to use the  "c =& 0177" idiom in the
backup/dumper program in a number of places [remember tar does not yet
exist, and tp/stp was a binary program].  Beyond that, I don't remember
much about the running C on the 10s.  I think we started trying to move
Harvard's stp to TOPS-10, but ran into an issue [maybe the directory size]
and stopped.  Since backup (dumper) was heavily used, we were trying to get
IUS and SUS to be able to be backed up and handled the same way the
operators did the backup for the 10's.  In my own case, I had learned SAIL
(and BLISS) on the 10s before C on the PDP-11, plus this was an early C
program for me, maybe my second or third non-trivial one after I worked
with Ted on fsck, so coming from the PDP-10/SAIL/BLISS *et al *world, 7-bit
chars certainly seemed normal.   I also remember having an early 'ah-ha'
moment, when the difference between a 7-bit and 8-bit char started to
become important.

Clem
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210716/95a49b3a/attachment.htm>

From bakul at iitbombay.org  Sat Jul 17 00:32:05 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Fri, 16 Jul 2021 07:32:05 -0700
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAKH6PiWVc03DtJ0ujAauFZNJn7cuH7-QTCRYi83_KESsZ2AKOQ@mail.gmail.com>
References: <CAKH6PiWVc03DtJ0ujAauFZNJn7cuH7-QTCRYi83_KESsZ2AKOQ@mail.gmail.com>
Message-ID: <D7429F77-70BB-4675-A11E-5FBE540C94A5@iitbombay.org>

On Jul 16, 2021, at 5:09 AM, Douglas McIlroy <douglas.mcilroy at dartmouth.edu> wrote:
> 
>>> -r is weird because it enables backwards reading, but only as
>>> limited by count. Better would be a program, say revfile, that simply
>>> reads backwards by lines. Then tail p  has an elegant implementation:
>>>     revfile p | head | revfile
> 
>> tail -n can be smarter in that it can simply read the last K bytes
>> and see if there are n lines. If not, it can read back further.
>> revfile would have to read the whole file, which could be a lot
>> more than n lines! tail -n < /dev/tty may never terminate but it
>> will use a small finite amount of memory.
> 
> Revfile would work the same way. When head has seen enough
> and terminates, revfile will get SIGPIPE and stop. I agree that,
> depending on scheduling and buffer management, revfile might
> read more than tail -n,  but  it wouldn't read the whole of a
> humongous file.

Good point! But when the input is from a device it would have to
buffer up everything since it doesn't know how much head would
want. No big deal of course but I was just pointing out that tail
can "behave better" in all cases!

-- Bakul


From clemc at ccc.com  Sat Jul 17 00:40:56 2021
From: clemc at ccc.com (Clem Cole)
Date: Fri, 16 Jul 2021 10:40:56 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <20210716135639.GI12733@mcvoy.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
Message-ID: <CAC20D2O=LuFMFdShXidPyJDTZvfbdJb9DN5ouXTBA-ScFtwNJA@mail.gmail.com>

On Fri, Jul 16, 2021 at 9:57 AM Larry McVoy <lm at mcvoy.com> wrote:

> I'm pretty sure SGI used a similar approach for networking packets.
>

Yeah, it was pretty standard for networking interfaces.  I think I first
saw it I'm the MIT Chaos driver maybe?  In many ways,  Gurwitz's whole mbuf
memory scheme for the ethernet controllers and the whole IP stack that
lives on in BSD is based on the idea.  Rob used a number of different size
buffers, not just the two, but the idea is the same, never copy anything if
we can avoid it.   Play pointer games in the top, bottom, and middle parts
of the driver/stack.

A huge difference, as Ted I'm sure knows, is that you tended to have many
more serial lines than network interfaces.  I suspect Rob's scheme
would have sucked trying to support traditional single-byte serial
interfaces or really just use too much memory to be practical.
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210716/6c275eb6/attachment.htm>

From john at jfloren.net  Sat Jul 17 01:28:22 2021
From: john at jfloren.net (John Floren)
Date: Fri, 16 Jul 2021 15:28:22 +0000
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <7w8s26pst6.fsf@junk.nocrew.org>
References: <CMM.0.95.0.1626387969.beebe@gamma.math.utah.edu>
 <CA+r1Zhgmf8zbBiztO3Ab1H7Hd7HZQZxqTbTRahtXWfowC=A4qQ@mail.gmail.com>
 <hnYS2RW60oBvlvcvoqNGbwEJCtOEHmclm_z1B_Od-Kc_vHLWpHYtHvFR5cVoNWdJXxy0h_3P8lFT-gAb2pO8BhHxGUtQ_-QmuFCuc2g9G2k=@jfloren.net>
 <7w8s26pst6.fsf@junk.nocrew.org>
Message-ID: <sJcciGiSe1mW1C4dAjtJVprKlulsY_RuI4ysfNkXOV7-8tlkBy3v_TA9PNdLrSlcgc3H5_cdDcsqOHjusPrl9ouKrEovkZ9eb5O2w4g2uRM=@jfloren.net>

On Friday, July 16th, 2021 at 1:27 AM, Lars Brinkhoff <lars at nocrew.org> wrote:
> John Floren wrote:
>
> > Speaking of SAIL (and I suppose further derailing an already derailed
> >
> > discussion), I've occasionally looked for more information about the
> >
> > environment (typically whenever a book or article briefly mentions
> >
> > SAIL as a place with lots of custom hardware and software) but come up
> >
> > with little. Anyone know of good description of SAIL computer systems?
>
> I'm risking the Wrath of the Moderator here, but I really want to supply
>
> some information. Sorry, this is very far from Unix. But hey, SUDS was
>
> used to design the Stanford SUN Unix workstation.
>
> What do you mean with "SAIL computer systems"? I think upthread SAIL
>
> was referencing the Algol compiler written at the Stanford AI lab. But
>
> SAIL was also an acronym for the entire lab, AND also used as a name for
>
> the main timesharing computer hardware. The hardware was first a PDP-6,
>
> then adding a PDP-10 (KA10), then a KL10. The operating system was
>
> eventually named WAITS, but was also sometimes called SAIL or just
>
> SYSTEM. WAITS was also run on two Foonlies at other sites, and those
>
> could also be called SAIL computer systems in some sense.
>
> I gather you probably mean the AI lab and its computers. The best place
>
> for information is saildart.org, and Bruce Baumgart is working on a tome
>
> called "SAILDART_Prolegomenon". This work in progress is 116 pages.
>
> https://github.com/PDP-10/waits/blob/master/doc/SAILDART_Prolegomenon_2016.pdf

Yes, WAITS is what I was thinking of. As I mentioned in my previous mail,
it feels like the SAIL timesharing systems get mentioned briefly in
a lot of accounts of historical computing, sometimes with mention that
they had some sort of (relatively) advanced video terminals, but no
in-depth descriptions of the actual hardware/software environment.

I will take a look at saildart.org and the Prolegomenon, thanks!


John

From tytso at mit.edu  Sat Jul 17 01:44:26 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Fri, 16 Jul 2021 11:44:26 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <CAC20D2O=LuFMFdShXidPyJDTZvfbdJb9DN5ouXTBA-ScFtwNJA@mail.gmail.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com>
 <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAC20D2O=LuFMFdShXidPyJDTZvfbdJb9DN5ouXTBA-ScFtwNJA@mail.gmail.com>
Message-ID: <YPGpWh60wFePL1en@mit.edu>

On Fri, Jul 16, 2021 at 10:40:56AM -0400, Clem Cole wrote:
> 
> A huge difference, as Ted I'm sure knows, is that you tended to have many
> more serial lines than network interfaces.  I suspect Rob's scheme
> would have sucked trying to support traditional single-byte serial
> interfaces or really just use too much memory to be practical.

Network interfaces tend to be much faster than serial lines; at least
an order of magnitude.  And with network interfaces you care about the
packet boundaries, and you want to process each packet separately.  So
that makes things a lot harder than with serial interfaces.

With serial ports, 8k per serial port is plenty (2 x 2k flip buffers,
plus a 4k tty buffer between the mid-layer and userspace) for the
receive path.  On the PDP-11, memory was much more constrained, so the
clist with each cblock storing 6 characters at a time in a linked list
was probably necessary.  But even in the early days of the 386, you
could afford to make a different memory/performance tradeoff.

							- Ted

From imp at bsdimp.com  Sat Jul 17 02:09:17 2021
From: imp at bsdimp.com (Warner Losh)
Date: Fri, 16 Jul 2021 10:09:17 -0600
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <202107160738.16G7c2gj008875@freefriends.org>
References: <1626375671.1426.for-standards-violators@oclsc.org>
 <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>
 <CANCZdfpfzrU0SP5HY=0GVrbNaYPT9FP6pt6fsB+SgNDcCJCL0w@mail.gmail.com>
 <202107160738.16G7c2gj008875@freefriends.org>
Message-ID: <CANCZdfoE5Tf__6jpG4qMsLrpzAF-Fw6KwH9FaQVDG1L6KC2fNw@mail.gmail.com>

On Fri, Jul 16, 2021, 1:38 AM <arnold at skeeve.com> wrote:

> Warner Losh <imp at bsdimp.com> wrote:
>
> > ... But it was good enough for me to write my OS group project running
> > under 'ZAYEF' a DecSystem-20 emulator running ...
>
> Fascinating. That's the Hebrew word used for "forgery" or "fakery".
> Appropriate for an emulator. Whoever named it both knew Hebrew and
> had a sense of humor. :-)
>

It was billed as not really a DECsystem 20, but a really good fake. Clearly
a nod to that meaning.

Warner

Arnold
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210716/a46a0939/attachment.htm>

From bakul at iitbombay.org  Sat Jul 17 02:11:16 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Fri, 16 Jul 2021 09:11:16 -0700
Subject: [TUHS] 386BSD released
In-Reply-To: <20210716135639.GI12733@mcvoy.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
Message-ID: <7DC2359B-93C7-4329-AF61-6078CB4B80EB@iitbombay.org>

On Jul 16, 2021, at 6:56 AM, Larry McVoy <lm at mcvoy.com> wrote:
> 
> On Fri, Jul 16, 2021 at 09:00:58AM -0400, Theodore Y. Ts'o wrote:
>> The trick that I used was two have two "flip buffers" which were
>> dedicated for each serial port.  One buffer would be filled by the
>> interrupt handler, while the other would be buffer would be processed
>> by the bottom half (read: software interrupt) handler.  When the
>> bottom half handler had emptied one buffer, it would check to see if
>> there were any characters in the other buffer, and if so, flip the two
>> and process the characters in that buffer.  
> 
> I'm pretty sure SGI used a similar approach for networking packets.

This is somewhat h/w dependent. Ideally you want the h/w to
do some buffering for streaming at full speed so that you
don't need to take a per char or per packet interrupt. Hence
NS16550 which used a 16 char FIFO. AMD LANCE used a ring of
2^N buffer descriptors. Intel 82586 used a linked list -
don't recall if you had to make it a circular buffer. The
early 3COM controller didn't buffer more than a packet and
you had to copy it. As a contractor I did a couple of network
drivers for 3rd party hardware for SGI in late '80s & early
'90s.  I don't recall any details now but in both cases the
h/w did buffer up a bunch. Once things are handed to s/w, you
have a lot more flexibility. Though I never liked the idea of
splitting a packet up in multiple mbufs!

From tytso at mit.edu  Sat Jul 17 02:13:02 2021
From: tytso at mit.edu (Theodore Y. Ts'o)
Date: Fri, 16 Jul 2021 12:13:02 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CMM.0.95.0.1626445038.beebe@gamma.math.utah.edu>
References: <CAKH6PiW58PDPb5HRi12aKE+mT+O8AjETr9R51Db6U3KcEp_KkA@mail.gmail.com>
 <CMM.0.95.0.1626445038.beebe@gamma.math.utah.edu>
Message-ID: <YPGwDpG/bJu0Lr4D@mit.edu>

On Fri, Jul 16, 2021 at 08:17:18AM -0600, Nelson H. F. Beebe wrote:
> 
> I confess that I had forgotten about the TOPS-20 ALERT command and its
> Unix equivalent, leave.  As Doug noted, leave is not in Linux systems,
> but it still exists in the BSD world, in DragonFlyBSD, FreeBSD,
> NetBSD, OpenBSD, and their many derivatives.

The leave program isn't installed by default, but it is available in
many if not most distributions (I checked Debian, Fedora and Ubuntu).
You just have to install it ("apt-get install leave" on Debian and
Ubuntu).  The upstream sources at least for the Debian package is from
NetBSD.

	      		     	       - Ted

From bakul at iitbombay.org  Sat Jul 17 03:03:09 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Fri, 16 Jul 2021 10:03:09 -0700
Subject: [TUHS] Fwd:  386BSD released
References: <B77CD16E-CC26-410F-BBE7-8F206B27620F@yost.com>
Message-ID: <99253357-AF74-422B-A206-82EF5D567298@iitbombay.org>

More from Yost below.

My purpose in relating this was to point out that the original unix
implementation choices were mostly fine; they just had to be tweaked a
bit. Clearly an independent implementation such as in Linux would veer
off in a different direction, done in a different era and with different prior
experience. I was a bit surprised that Bruce didn't make this same
tweak to cblock size but no way of knowing his reasons now.

> Begin forwarded message:
> 
> From: Dave Yost 
> Subject: Re: [TUHS] 386BSD released
> Date: July 16, 2021 at 9:21:53 AM PDT
> To: Bakul Shah
> 
> Plz forward this
> thanks
> 
> This was in early 1983 or late 1982.
> 
> We got the serial driver to go 19200 out and 9600 in.
> 
> I did 2 things in the Fortune Systems 68k serial driver:
> • hand-coded asm pseudo-DMA, suggested by Robert P Warnock III
> • cblock size 128 bytes instead of 8, count ’em, 8.
> 
> From Lyons,
>   https://cs3210.cc.gatech.edu/r/unix6.pdf <https://cs3210.cc.gatech.edu/r/unix6.pdf>
> the unix v6 serial driver used a clist of cblocks, like this:
> 
> 
> The pseudo-DMA interrupt handler was a function made up of a few hand-coded 68k instructions, entered into C code as hex data. That code transferred one byte into or out of a cblock, and at the end of the cblock it grabbed the next cblock from a queue and rang the “doorbell” hardware interrupt, which caused a “software interrupt” at lower priority for further processing. Rob put the doorbell into the architecture with a couple of gates on the board because he was well aware of this software interrupt trick, which was already used in bsd. For some reason I didn’t look at the bsd code, probably because Rob’s explanation was lucid and sufficient.
> 
> I once had occasion to mention this, and specifically the relaxing of the draconian 8 byte cblock size, to Dennis Ritchie. He said, sure, why not, the 8 byte cblock size was just a neglected holdover from early days.
> 
> This approach was just an interrupt version of what I had proposed to Rick Kiessig as a first project at Fortune Systems: to get a 30x speed up when writing to the Fortune Systems memory-mapped character display hardware. I had done the same thing a few years earlier in Z80 in C code in a serial CRT terminal. It’s simple and obvious: make the inner loop do as little as possible. The most primitive operation needs to be a block operation, not a byte-at-a-time operation.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210716/b571525c/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Messages Image(2650669068).png
Type: image/png
Size: 21772 bytes
Desc: not available
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210716/b571525c/attachment.png>

From beebe at math.utah.edu  Sat Jul 17 03:30:06 2021
From: beebe at math.utah.edu (Nelson H. F. Beebe)
Date: Fri, 16 Jul 2021 11:30:06 -0600
Subject: [TUHS] 386BSD released
Message-ID: <CMM.0.95.0.1626456606.beebe@gamma.math.utah.edu>

List members under this subject line have contributed reminders of
older efforts in the sharing of software, predating Linux, the Free
Software Foundation, the GNU Project, and the BSD Unix family.

Starting at the string "begin historical remarks" in the preamble
comments of

	http://www.math.utah.edu/pub/tex/bib/gnu.bib
	http://www.math.utah.edu/pub/tex/bib/gnu.html

I record things that I've encountered over decades in computing, going
back to Charles Babbage in 1830 and Joseph Henry in 1849, jumping to
IBM SHARE in 1955, and onward.

As usual in our bibliography archives, *.html files look similar on
screen to *.bib files, but have live hyperlinks.

Comments, corrections, improvements, etc. on that history are welcome.

Babbage's own works are covered at

	http://www.math.utah.edu/pub/bibnet/authors/b/babbage-charles.bib
	http://www.math.utah.edu/pub/bibnet/authors/b/babbage-charles.html

and those of his collaborator at

	http://www.math.utah.edu/pub/bibnet/authors/l/lovelace-ada-augusta.bib
	http://www.math.utah.edu/pub/bibnet/authors/l/lovelace-ada-augusta.html

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------

From kevin.bowling at kev009.com  Sat Jul 17 05:07:52 2021
From: kevin.bowling at kev009.com (Kevin Bowling)
Date: Fri, 16 Jul 2021 12:07:52 -0700
Subject: [TUHS] 386BSD released
In-Reply-To: <20210716135639.GI12733@mcvoy.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
Message-ID: <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>

On Fri, Jul 16, 2021 at 6:57 AM Larry McVoy <lm at mcvoy.com> wrote:
>
> On Fri, Jul 16, 2021 at 09:00:58AM -0400, Theodore Y. Ts'o wrote:
> > The trick that I used was two have two "flip buffers" which were
> > dedicated for each serial port.  One buffer would be filled by the
> > interrupt handler, while the other would be buffer would be processed
> > by the bottom half (read: software interrupt) handler.  When the
> > bottom half handler had emptied one buffer, it would check to see if
> > there were any characters in the other buffer, and if so, flip the two
> > and process the characters in that buffer.
>
> I'm pretty sure SGI used a similar approach for networking packets.

Yup was just going to say this is standard in the modern BSD network
drivers, looks like Clem says it's older.  There are recent
optimizations to help the CPU with prefetch, and some ideas around
vectors of mbufs.  What's remarkable is the mbuf design scales to
200gbps in practice, it must feel great to design something like that
so long ago :)

From clemc at ccc.com  Sat Jul 17 06:17:31 2021
From: clemc at ccc.com (Clem Cole)
Date: Fri, 16 Jul 2021 16:17:31 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
Message-ID: <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>

On Fri, Jul 16, 2021 at 3:08 PM Kevin Bowling <kevin.bowling at kev009.com>
wrote:

> Yup was just going to say this is standard in the modern BSD network
> drivers, looks like Clem says it's older.

Absolutely -- I believe it was Rob's undergrad project at Brown that he
brought to BBN.

The first use, if I saw, was the 'portable IP/TCP' stack  BBN did for
HP/3000 and a couple of other systems.  That code seems to have been lost.
I have asked about it on the Internet history mailing list.  I had a copy
of it one time, but sadly I don't think I still do.  IIRC The original
PDP-11 IP implementation which ran on a couple of dedicated systems,
whose names/function I frankly do not remember) was also based on a version
of this code.  I think it ran something like RT-11 or DOS-11 and then
started the IP code -- basically RTR style today.   Later it morphed into
Rob's Vax BSD  4.1 specific stack,  which we ran at UCB on a couple of the
systems using 3M Xerox board.  This latest until 4.1A and Joy's rewrite and
I want to say we switched in Interlan 10M boards then.  We have a couple of
the 3Com boards, but because of the lack of buffering, they were a bear to
use and stopped as soon as we got the Interlan one.


Anyway, all of these IP/TCP stacks used Rob's mbuf code.  Which was a
blessing and a curse.  By writing his own, he avoids huge
changes/integration into the memory system, but it also helped to make BSD
such a mess under the covers because there were so many private memory
managers between the network, the I/O systems etc...  As discussed
previously on the TUHS list, the one thing Risner really did well had a
uniform memory design.   Later BSD's moved to Mach and tried to clean this
up a little, but the network code was by then so screwed into Rob's mbuf
scheme, it stayed around a long time.  Werner -- what is the state of this
these days in FreeBSD is it still there?




> There are recent optimizations to help the CPU with prefetch, and some
> ideas around vectors of mbufs.  What's remarkable is the mbuf design
> scales to
> 200gbps in practice, it must feel great to design something like that so
> long ago :)
>
Well, ask Rob :-)  I've lost track of him since Stellar, and I think he I
heard he left high tech but frankly don't know.

Clem
бђ§
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210716/74a0e917/attachment.htm>

From rich.salz at gmail.com  Sat Jul 17 06:24:10 2021
From: rich.salz at gmail.com (Richard Salz)
Date: Fri, 16 Jul 2021 16:24:10 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
 <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
Message-ID: <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>

Anyone remember the old mtXinu calendar with fake ads?I only remember one
page, "oh no Spot(?) spilled the mbufs, Dad's favorite cereal."

On Fri, Jul 16, 2021, 4:19 PM Clem Cole <clemc at ccc.com> wrote:

>
>
> On Fri, Jul 16, 2021 at 3:08 PM Kevin Bowling <kevin.bowling at kev009.com>
> wrote:
>
>> Yup was just going to say this is standard in the modern BSD network
>> drivers, looks like Clem says it's older.
>
> Absolutely -- I believe it was Rob's undergrad project at Brown that he
> brought to BBN.
>
> The first use, if I saw, was the 'portable IP/TCP' stack  BBN did for
> HP/3000 and a couple of other systems.  That code seems to have been lost.
> I have asked about it on the Internet history mailing list.  I had a copy
> of it one time, but sadly I don't think I still do.  IIRC The original
> PDP-11 IP implementation which ran on a couple of dedicated systems,
> whose names/function I frankly do not remember) was also based on a version
> of this code.  I think it ran something like RT-11 or DOS-11 and then
> started the IP code -- basically RTR style today.   Later it morphed into
> Rob's Vax BSD  4.1 specific stack,  which we ran at UCB on a couple of the
> systems using 3M Xerox board.  This latest until 4.1A and Joy's rewrite and
> I want to say we switched in Interlan 10M boards then.  We have a couple of
> the 3Com boards, but because of the lack of buffering, they were a bear to
> use and stopped as soon as we got the Interlan one.
>
>
> Anyway, all of these IP/TCP stacks used Rob's mbuf code.  Which was a
> blessing and a curse.  By writing his own, he avoids huge
> changes/integration into the memory system, but it also helped to make BSD
> such a mess under the covers because there were so many private memory
> managers between the network, the I/O systems etc...  As discussed
> previously on the TUHS list, the one thing Risner really did well had a
> uniform memory design.   Later BSD's moved to Mach and tried to clean this
> up a little, but the network code was by then so screwed into Rob's mbuf
> scheme, it stayed around a long time.  Werner -- what is the state of this
> these days in FreeBSD is it still there?
>
>
>
>
>> There are recent optimizations to help the CPU with prefetch, and some
>> ideas around vectors of mbufs.  What's remarkable is the mbuf design
>> scales to
>> 200gbps in practice, it must feel great to design something like that so
>> long ago :)
>>
> Well, ask Rob :-)  I've lost track of him since Stellar, and I think he I
> heard he left high tech but frankly don't know.
>
> Clem
> бђ§
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210716/9a300c75/attachment.htm>

From dave at horsfall.org  Sat Jul 17 07:22:38 2021
From: dave at horsfall.org (Dave Horsfall)
Date: Sat, 17 Jul 2021 07:22:38 +1000 (EST)
Subject: [TUHS] 386BSD released
In-Reply-To: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
Message-ID: <alpine.BSF.2.21.9999.2107170718470.41085@aneurin.horsfall.org>

On Wed, 14 Jul 2021, Dave Horsfall wrote:

> In 1992, 386BSD is released by Lynne and William Jolitz, starting the 
> open source operating system movement (Linux didn't come along under 
> later).

Seems to have caused a "discussion", so...

     https://www.onthisday.com/day/july/14

``1992 386BSD is released by Lynne Jolitz and William Jolitz,
   starting the open source operating system revolution. Linus Torvalds
   release "Linux" soon afterwards''

If anything thinks this is incorrect then feel free to submit a correction;
I have more important things to do right now.

-- Dave

From charles.unix.pro at gmail.com  Sat Jul 17 10:34:17 2021
From: charles.unix.pro at gmail.com (Charles Anthony)
Date: Fri, 16 Jul 2021 17:34:17 -0700
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
In-Reply-To: <CAC20D2McU80+T+OzTNTQcFZ+_siXr9S-5SXtMd_QPcskhX6v9w@mail.gmail.com>
References: <1626375671.1426.for-standards-violators@oclsc.org>
 <CAC20D2NPMovqkKLahRKopt5y4mPQrmpNi__RrjtRw6cowmwszQ@mail.gmail.com>
 <7wczriptt4.fsf@junk.nocrew.org>
 <CAC20D2McU80+T+OzTNTQcFZ+_siXr9S-5SXtMd_QPcskhX6v9w@mail.gmail.com>
Message-ID: <CANV78LQsCrPDGW6-BQd1Q=ViDEbDdDBK9Frydso8tc6YE5r8Xg@mail.gmail.com>

On Fri, Jul 16, 2021 at 7:20 AM Clem Cole <clemc at ccc.com> wrote:

>
>
> On Fri, Jul 16, 2021 at 4:05 AM Lars Brinkhoff <lars at nocrew.org> wrote:
>
>> Clem Cole wrote:
>> > The 'second' C compiler was a PDP-10 and Honeywell (36-bit) target
>> > Alan Synder did for his MIT Thesis.  It was originally targeted to ITS
>> > for the PDP-10, but it ran on Tops-20 also.  My >>memory<< is he used
>> > a 7-bit Character, ala SAIL, with 5 chars stored in a word with a bit
>> > leftover.
>>
>> On ITS it only ever stored characters as full 36-bit words!  So sizeof
>> char == 1 == sizeof int.  This is allowed per the C standard.  (Maybe it
>> was updated somewhere else, I dunno.)
>>
>
> Ah - that makes sense.  I never programmed the Honeywell in anything but
> Dartmouth BASIC (mostly) and any early FORTRAN (very little) and the whole
> idea of storage size was somewhat oblivious to me at the point as I was a
> youngster when I did that.  Any idea did the Honeywell treat chars as
> 36-bit entities also?  Steve, maybe you remember?
>
>
The Honeywell 6000 machines ran GCOS; the system standard was six six-bit
characters per word.

The Honeywell 6100 machines ran Multics; the system standard was four
nine-bit characters per word.

For Multics C, sizeof (*) != sizeof (int) and NULL != 0, so a lot of
"portable" C code wasn't.

-- Charles
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210716/0df0ddf2/attachment.htm>

From arnold at skeeve.com  Sun Jul 18 23:13:28 2021
From: arnold at skeeve.com (arnold at skeeve.com)
Date: Sun, 18 Jul 2021 07:13:28 -0600
Subject: [TUHS] 386BSD released
In-Reply-To: <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com>
 <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
 <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
 <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>
Message-ID: <202107181313.16IDDSn8029320@freefriends.org>

Richard Salz <rich.salz at gmail.com> wrote:

> Anyone remember the old mtXinu calendar with fake ads?I only remember one
> page, "oh no Spot(?) spilled the mbufs, Dad's favorite cereal."

I think it was "my dog Biff..."  Wasn't that Heidi Stetner's dog or
something? Apparently he used to bark whenever the mailman showed up,
inspiring the BSD biff(1) command.

I had that calendar, and kept it for many years. There was a lovely
picture of a shepherd boy trying to herd cats. I don't remember the
rest, other than that they were amusing.  I think I finally tossed
it though.

Arnold

From rich.salz at gmail.com  Sun Jul 18 23:23:04 2021
From: rich.salz at gmail.com (Richard Salz)
Date: Sun, 18 Jul 2021 09:23:04 -0400
Subject: [TUHS] 386BSD released
In-Reply-To: <202107181313.16IDDSn8029320@freefriends.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
 <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
 <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>
 <202107181313.16IDDSn8029320@freefriends.org>
Message-ID: <CAFH29tozhv3jcAZ6f-RLkRi1j2PW7JUdFvfmYFgHCZb_4TQ-QQ@mail.gmail.com>

> I think it was "my dog Biff..."  Wasn't that Heidi Stetner's dog or
> something? Apparently he used to bark whenever the mailman showed up,
> inspiring the BSD biff(1) command.
>

Yes, that's the dog's name, and that I also now remember hearing that
story!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210718/61a62343/attachment.htm>

From aek at bitsavers.org  Sun Jul 18 23:43:38 2021
From: aek at bitsavers.org (Al Kossow)
Date: Sun, 18 Jul 2021 06:43:38 -0700
Subject: [TUHS] MtXinu calendar (was Re:  386BSD released)
In-Reply-To: <202107181313.16IDDSn8029320@freefriends.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
 <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
 <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>
 <202107181313.16IDDSn8029320@freefriends.org>
Message-ID: <aa9b0fe5-8d4b-ef72-218a-f82c771cc5d1@bitsavers.org>

On 7/18/21 6:13 AM, arnold at skeeve.com wrote:
> Richard Salz <rich.salz at gmail.com> wrote:
> 
>> Anyone remember the old mtXinu calendar with fake ads?

I just turned up a copy, it's from 1993
I'll have it on bitsavers under pdf/mtXinu later today


From aek at bitsavers.org  Sun Jul 18 23:51:10 2021
From: aek at bitsavers.org (Al Kossow)
Date: Sun, 18 Jul 2021 06:51:10 -0700
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
In-Reply-To: <aa9b0fe5-8d4b-ef72-218a-f82c771cc5d1@bitsavers.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
 <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
 <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>
 <202107181313.16IDDSn8029320@freefriends.org>
 <aa9b0fe5-8d4b-ef72-218a-f82c771cc5d1@bitsavers.org>
Message-ID: <f0579fca-fe17-dc48-8121-7ae71a9622a8@bitsavers.org>

On 7/18/21 6:43 AM, Al Kossow wrote:
> On 7/18/21 6:13 AM, arnold at skeeve.com wrote:
>> Richard Salz <rich.salz at gmail.com> wrote:
>>
>>> Anyone remember the old mtXinu calendar with fake ads?
> 
> I just turned up a copy, it's from 1993
> I'll have it on bitsavers under pdf/mtXinu later today
> 
Well this is a weird coincidence, 2021 matches the 1993 calendar
so a retro calendar for this year could be photoshopped together

The year doesn't even appear that many times on the original.

From aek at bitsavers.org  Mon Jul 19 02:44:53 2021
From: aek at bitsavers.org (Al Kossow)
Date: Sun, 18 Jul 2021 09:44:53 -0700
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
In-Reply-To: <aa9b0fe5-8d4b-ef72-218a-f82c771cc5d1@bitsavers.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
 <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
 <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>
 <202107181313.16IDDSn8029320@freefriends.org>
 <aa9b0fe5-8d4b-ef72-218a-f82c771cc5d1@bitsavers.org>
Message-ID: <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>

On 7/18/21 6:43 AM, Al Kossow wrote:
> On 7/18/21 6:13 AM, arnold at skeeve.com wrote:
>> Richard Salz <rich.salz at gmail.com> wrote:
>>
>>> Anyone remember the old mtXinu calendar with fake ads?
> 
> I just turned up a copy, it's from 1993
> I'll have it on bitsavers under pdf/mtXinu later today
> 

 > Calendars cycle every 28 years

the coincidence was asking about it on exactly that year

it's up now under http://bitsavers.org/pdf/mtXinu

is supposed to be pronouced zee new or zeye new ?


From cowan at ccil.org  Mon Jul 19 03:38:08 2021
From: cowan at ccil.org (John Cowan)
Date: Sun, 18 Jul 2021 13:38:08 -0400
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
In-Reply-To: <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
 <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
 <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>
 <202107181313.16IDDSn8029320@freefriends.org>
 <aa9b0fe5-8d4b-ef72-218a-f82c771cc5d1@bitsavers.org>
 <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>
Message-ID: <CAD2gp_S-xfQYg9cNTpBaEnazk89ktSW8pdeBfaRCObSSaN4riQ@mail.gmail.com>

On Sun, Jul 18, 2021 at 12:45 PM Al Kossow <aek at bitsavers.org> wrote:

is supposed to be pronouced zee new or zeye new ?
>

Not that I know, but I have always said "zeenew" for the (unrelated)
embedded OS by Comer and "mount zeenew" for the software company.

Armand Hammer, the American businessman and unofficial commercial attache
to the Soviet Union, had nothing to do with Arm and Hammer baking soda,
though he did buy stock in the manufacturer after being asked about it one
too many times.  Armand was probably named after the "arm and hammer" logo
of the Socialist Labor Party, an anti-Marxist  group who favored the
development of revolutionary industrial labor unions, to which his
father belonged.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210718/2a312d48/attachment.htm>

From bakul at iitbombay.org  Mon Jul 19 04:35:55 2021
From: bakul at iitbombay.org (Bakul Shah)
Date: Sun, 18 Jul 2021 11:35:55 -0700
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
In-Reply-To: <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>
References: <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>
Message-ID: <DDC768AA-D7CE-4CEA-92AD-D2D2AD7E1B3D@iitbombay.org>

On Jul 18, 2021, at 9:45 AM, Al Kossow <aek at bitsavers.org> wrote:
> 
> is supposed to be pronouced zee new or zeye new ?

Don't know how it is supposed to be pronounced but I have
always pronounced it as 'zai-noo, with xi the way the greek
letter Оѕ is pronounced in English.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210718/f2d6a2de/attachment.htm>

From arnold at skeeve.com  Mon Jul 19 05:00:32 2021
From: arnold at skeeve.com (arnold at skeeve.com)
Date: Sun, 18 Jul 2021 13:00:32 -0600
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
In-Reply-To: <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com>
 <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
 <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
 <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>
 <202107181313.16IDDSn8029320@freefriends.org>
 <aa9b0fe5-8d4b-ef72-218a-f82c771cc5d1@bitsavers.org>
 <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>
Message-ID: <202107181900.16IJ0Wwn007583@freefriends.org>

Hi.

Al Kossow <aek at bitsavers.org> wrote:

> On 7/18/21 6:43 AM, Al Kossow wrote:
> > On 7/18/21 6:13 AM, arnold at skeeve.com wrote:
> >> Richard Salz <rich.salz at gmail.com> wrote:
> >>
> >>> Anyone remember the old mtXinu calendar with fake ads?
> > 
> > I just turned up a copy, it's from 1993
> > I'll have it on bitsavers under pdf/mtXinu later today
> > 
>
>  > Calendars cycle every 28 years
>
> the coincidence was asking about it on exactly that year
>
> it's up now under http://bitsavers.org/pdf/mtXinu

Thanks!  It's not the calendar Rich and I remember, but it's
still worth having. :-)

> is supposed to be pronouced zee new or zeye new ?

I always pronounced it zee new.

Arnold

From douglas.mcilroy at dartmouth.edu  Mon Jul 19 06:07:53 2021
From: douglas.mcilroy at dartmouth.edu (Douglas McIlroy)
Date: Sun, 18 Jul 2021 16:07:53 -0400
Subject: [TUHS] head/sed/tail (was The Unix shell: a 50-year view)
Message-ID: <CAKH6PiVmLk0urDrMJW79gjQ_fk-c-JopiN41naRxcnXma7Q1zw@mail.gmail.com>

> For Multics C, ... NULL != 0

I know what you mean, but the formulation is paradoxical,
as the expression NULL==0 is always true in C :)

Doug

From norman at oclsc.org  Mon Jul 19 06:44:11 2021
From: norman at oclsc.org (Norman Wilson)
Date: Sun, 18 Jul 2021 16:44:11 -0400
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
Message-ID: <1626641054.6580.for-standards-violators@oclsc.org>

Unlike most here, I always pronounced Mt Xinu with an
eye, not an eee.  I don't know where I got that, though.

I did know Ed Gould via USENIX and DECUS, but that doesn't
make my pronunciation correct.

As an aside, anyone know where Ed is these days or how he's
doing?  I last saw him at a USENIX conference, probably in
San Jose in 2013 but I'm not sure.  He showed up just for the
reception; he'd retired, and had cut away most of his famous
beard because he was spending a lot of time sailing and it
got in the way.

Norman Wilson
Toronto ON

From dscherrer at solar.stanford.edu  Mon Jul 19 07:50:27 2021
From: dscherrer at solar.stanford.edu (Deborah Scherrer)
Date: Sun, 18 Jul 2021 14:50:27 -0700
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
In-Reply-To: <1626641054.6580.for-standards-violators@oclsc.org>
References: <1626641054.6580.for-standards-violators@oclsc.org>
Message-ID: <09cfb9e5-fcce-e554-ddd0-ff0a16e08500@solar.stanford.edu>

It is indeed Mount Z-eye-nu.В В  (I used to be its President. ;-)В В  )

Ed is living in the Walnut Creek area.В  He has indeed retired and he and 
his wife do indeed do a lot of sailing.

Deborah

On 7/18/21 1:44 PM, Norman Wilson wrote:
> Unlike most here, I always pronounced Mt Xinu with an
> eye, not an eee.  I don't know where I got that, though.
>
> I did know Ed Gould via USENIX and DECUS, but that doesn't
> make my pronunciation correct.
>
> As an aside, anyone know where Ed is these days or how he's
> doing?  I last saw him at a USENIX conference, probably in
> San Jose in 2013 but I'm not sure.  He showed up just for the
> reception; he'd retired, and had cut away most of his famous
> beard because he was spending a lot of time sailing and it
> got in the way.
>
> Norman Wilson
> Toronto ON

From imp at bsdimp.com  Mon Jul 19 08:40:07 2021
From: imp at bsdimp.com (Warner Losh)
Date: Sun, 18 Jul 2021 16:40:07 -0600
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
In-Reply-To: <09cfb9e5-fcce-e554-ddd0-ff0a16e08500@solar.stanford.edu>
References: <1626641054.6580.for-standards-violators@oclsc.org>
 <09cfb9e5-fcce-e554-ddd0-ff0a16e08500@solar.stanford.edu>
Message-ID: <CANCZdfoNwEZku5UFBvgdr51HK_WFgOQi_0q-h=8xPH=oDymrdg@mail.gmail.com>

On Sun, Jul 18, 2021 at 4:17 PM Deborah Scherrer <
dscherrer at solar.stanford.edu> wrote:

> It is indeed Mount Z-eye-nu.   (I used to be its President. ;-)   )
>

Excellent! That's how I'd always heard it. Glad to know it's right.

Ed is living in the Walnut Creek area.  He has indeed retired and he and
> his wife do indeed do a lot of sailing.
>

Great!

Thanks for the somewhat authoritative answer :)

Warner


> Deborah
>
> On 7/18/21 1:44 PM, Norman Wilson wrote:
> > Unlike most here, I always pronounced Mt Xinu with an
> > eye, not an eee.  I don't know where I got that, though.
> >
> > I did know Ed Gould via USENIX and DECUS, but that doesn't
> > make my pronunciation correct.
> >
> > As an aside, anyone know where Ed is these days or how he's
> > doing?  I last saw him at a USENIX conference, probably in
> > San Jose in 2013 but I'm not sure.  He showed up just for the
> > reception; he'd retired, and had cut away most of his famous
> > beard because he was spending a lot of time sailing and it
> > got in the way.
> >
> > Norman Wilson
> > Toronto ON
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210718/6303dd5e/attachment.htm>

From dscherrer at solar.stanford.edu  Mon Jul 19 07:48:09 2021
From: dscherrer at solar.stanford.edu (Deborah Scherrer)
Date: Sun, 18 Jul 2021 14:48:09 -0700
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
In-Reply-To: <202107181900.16IJ0Wwn007583@freefriends.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com> <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
 <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
 <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>
 <202107181313.16IDDSn8029320@freefriends.org>
 <aa9b0fe5-8d4b-ef72-218a-f82c771cc5d1@bitsavers.org>
 <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>
 <202107181900.16IJ0Wwn007583@freefriends.org>
Message-ID: <be0ee181-36b5-e4b3-6149-bd08acbe71db@solar.stanford.edu>

I believe I have all of the calendars.В В  Will try to scan them in.

Deborah

On 7/18/21 12:00 PM, arnold at skeeve.com wrote:
> Hi.
>
> Al Kossow <aek at bitsavers.org> wrote:
>
>> On 7/18/21 6:43 AM, Al Kossow wrote:
>>> On 7/18/21 6:13 AM, arnold at skeeve.com wrote:
>>>> Richard Salz <rich.salz at gmail.com> wrote:
>>>>
>>>>> Anyone remember the old mtXinu calendar with fake ads?
>>> I just turned up a copy, it's from 1993
>>> I'll have it on bitsavers under pdf/mtXinu later today
>>>
>>   > Calendars cycle every 28 years
>>
>> the coincidence was asking about it on exactly that year
>>
>> it's up now under http://bitsavers.org/pdf/mtXinu
> Thanks!  It's not the calendar Rich and I remember, but it's
> still worth having. :-)
>
>> is supposed to be pronouced zee new or zeye new ?
> I always pronounced it zee new.
>
> Arnold

From lbickley at bickleywest.com  Mon Jul 19 06:06:58 2021
From: lbickley at bickleywest.com (Lyle Bickley)
Date: Sun, 18 Jul 2021 13:06:58 -0700
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
In-Reply-To: <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>
References: <alpine.BSF.2.21.9999.2107140824460.15723@aneurin.horsfall.org>
 <213a4c11-3ab2-4b4a-8d6b-b52105a19711@localhost>
 <alpine.BSF.2.21.9999.2107161127480.32008@aneurin.horsfall.org>
 <5777F7E6-062B-4C5A-9C98-36FFE6AC3414@stdio.com>
 <YPEKScdjJCE+KMjj@mit.edu>
 <A75B5962-43CC-4BFA-B20F-DD66913DB72D@iitbombay.org>
 <YPGDCoO4uB1ehBxi@mit.edu> <20210716135639.GI12733@mcvoy.com>
 <CAK7dMtBcjeDEcjWjs829pUayq6ZkNf70t_Di4FwRynjVrZmJyg@mail.gmail.com>
 <CAC20D2M7ytkKEwTeBvZySJtr2XLNiQjphhJ-66ZTuKfsviJHOw@mail.gmail.com>
 <CAFH29trY2ZBcssDawauQWMEKzLc+7ZVeVOcXWc_50et7LcFtHw@mail.gmail.com>
 <202107181313.16IDDSn8029320@freefriends.org>
 <aa9b0fe5-8d4b-ef72-218a-f82c771cc5d1@bitsavers.org>
 <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>
Message-ID: <20210718130658.344b2273@asrock>

On Sun, 18 Jul 2021 09:44:53 -0700
Al Kossow <aek at bitsavers.org> wrote:

> On 7/18/21 6:43 AM, Al Kossow wrote:
> > On 7/18/21 6:13 AM, arnold at skeeve.com wrote:  
> >> Richard Salz <rich.salz at gmail.com> wrote:
> >>  
> >>> Anyone remember the old mtXinu calendar with fake ads?  
> > 
> > I just turned up a copy, it's from 1993
> > I'll have it on bitsavers under pdf/mtXinu later today
> >   
> 
>  > Calendars cycle every 28 years  
> 
> the coincidence was asking about it on exactly that year
> 
> it's up now under http://bitsavers.org/pdf/mtXinu
> 
> is supposed to be pronouced zee new or zeye new ?
> 

Thanks, Al!!!

Lyle
-- 
73   NM6Y
Bickley Consulting West
https://bickleywest.com

"Black holes are where God is dividing by zero"

From drsalists at gmail.com  Mon Jul 19 13:06:33 2021
From: drsalists at gmail.com (Dan Stromberg)
Date: Sun, 18 Jul 2021 20:06:33 -0700
Subject: [TUHS] MtXinu calendar (was Re: 386BSD released)
In-Reply-To: <DDC768AA-D7CE-4CEA-92AD-D2D2AD7E1B3D@iitbombay.org>
References: <a0f7e2bf-9b39-a353-0a91-58a9dbb9edf6@bitsavers.org>
 <DDC768AA-D7CE-4CEA-92AD-D2D2AD7E1B3D@iitbombay.org>
Message-ID: <CAGGBd_oEEJAuzecttgx-nD7giwpzdDwu1P9tgFPSsGBe9Oyx2w@mail.gmail.com>

On Sun, Jul 18, 2021 at 11:36 AM Bakul Shah <bakul at iitbombay.org> wrote:

> On Jul 18, 2021, at 9:45 AM, Al Kossow <aek at bitsavers.org> wrote:
>
>
> is supposed to be pronouced zee new or zeye new ?
>
>
> *Don't know **how it is supposed to be pronounced but **I have*
> *always pronounced it as **'zai-noo, with xi the **way the greek*
> *letter Оѕ is pronounced in English.*
>

We pronounced it as Mownt Zeye New when I was managing a lab of IBM RT's
running Mt Xinu's MSD 2.6 as a grad student.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210718/418cdb8d/attachment.htm>

From coppero1237 at gmail.com  Tue Jul 20 03:04:16 2021
From: coppero1237 at gmail.com (Tyler Adams)
Date: Mon, 19 Jul 2021 20:04:16 +0300
Subject: [TUHS] Unix Shell Programming: The Next 50 Years
Message-ID: <CAEuQd1AdT35zK-x1mTUMYiYtbOKy=PNfdF5mgE=7-F_Zimk5Lw@mail.gmail.com>

https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s06-greenberg.pdf
 Tyler
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210719/11583394/attachment.htm>

From coppero1237 at gmail.com  Tue Jul 20 03:12:34 2021
From: coppero1237 at gmail.com (Tyler Adams)
Date: Mon, 19 Jul 2021 20:12:34 +0300
Subject: [TUHS] Unix Shell Programming: The Next 50 Years
In-Reply-To: <CAEuQd1AdT35zK-x1mTUMYiYtbOKy=PNfdF5mgE=7-F_Zimk5Lw@mail.gmail.com>
References: <CAEuQd1AdT35zK-x1mTUMYiYtbOKy=PNfdF5mgE=7-F_Zimk5Lw@mail.gmail.com>
Message-ID: <CAEuQd1BWRadyM8if34biK9tfBos8tPy8m0ug08iqAMMhov96Bw@mail.gmail.com>

Whoops, sorry for the repost, didn't see the thread ><
 Tyler


On Mon, Jul 19, 2021 at 8:04 PM Tyler Adams <coppero1237 at gmail.com> wrote:

>
> https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s06-greenberg.pdf
>  Tyler
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210719/c1423c55/attachment.htm>

From pnr at planet.nl  Sat Jul 24 09:03:34 2021
From: pnr at planet.nl (Paul Ruizendaal)
Date: Sat, 24 Jul 2021 01:03:34 +0200
Subject: [TUHS] Triangulating 32V with paging
Message-ID: <B5BDBDB2-F23B-4C7D-9D04-F5E77B902664@planet.nl>


> Sat Aug 31 06:21:47 AEST 2019

> John Reiser did do his own paging system for UNIX 32/V.
> I heard about it from friends at Bell Labs ca. 1982-83,
> when I was still running systems for physicists at Caltech.
> It sounded very interesting, and I would love to have had
> my hands on it--page cache unified with buffer cache,
> copy-on-write from the start.
> 
> [...]
> 
> It is in any case a shame that jfr's code never saw the light
> of day.  I really hope someone can find it on an old tape
> somewhere and we can get it into the archive, if only because
> I'd love to look at it.
> 
> Norman Wilson
> Toronto ON

Norman,

I am getting more optimistic that much of this version of 32V can be ‘triangulated’ from the surviving sources. For convenience I call this version “32V r3” (with the first swapping version being "32V r1" and the scatter loading version being "32V r2").

I’ve been reading my way through the surviving 32/V r2, SysIII-Vax, SVr1-Vax and SVr2-Vax sources. There seems to be a lot of continuous progression in these versions. From a communication with Keith Kelleman I thought that VM in SVr2 was unrelated, but that appears to have been a misunderstanding. In short, it seems that the basic paging algorithms and data structures in SVr2 (other than the region abstraction) come from 32V r3.

The strongest clue for the source link is in the SVr2 “page.h” file. In it, the union describing a page table entry matches with JFR’s description and is otherwise (partially) unused in SVr2. There are other, similar clues in the other source trees.

To explain more clearly, have a look at this code section: https://github.com/ryanwoodsmall/oldsysv/blob/master/sysvr2-vax/src/uts/vax/sys/page.h#L61-L106

In this union, the 2nd struct “pgd” is never used, nor is the bit pg_disk in the “pgm” struct ever used. It matches with JFR’s recollection:

<quote>
My internal design strategy was to use the hardware page table entry
(4 bytes per page, with "page not present" being one bit which freed
the other 31 bits for use by software) as the anchor to track everything
about a page.  This resulted in a complicated union of bitfield structs,
which became a headache.  When other departments took over the work,
the first thing they did was use 8 bytes per page, which meant shuffling
between the software and the hardware descriptors: its own mess.
<unquote>

In the pte as given, a pte can be in two states: (i) the pg_disk bit is reset in which case it is in “pgm” format - this format is recognized by the mmu hardware; (ii) the pg_disk bit is set in which case it is in “pgd” format. When a page is paged in, the disk form of the pte was I think saved in the page frame descriptor (the “pfdat" table) and the pte converted to the memory form. Upon page-out the reverse happened. In the SVr2 version of this code the “pgd” form is abandoned and replaced by the separate disk descriptors (see https://github.com/ryanwoodsmall/oldsysv/blob/master/sysvr2-vax/src/uts/vax/sys/region.h#L104-L114)

The “pgd” structure is a bit puzzling. There is a 19 bit device block number, which is less than the 24 bits allowed by the filesystem code and also less than the 20 bits that would fit in the pte. Maybe this is because the RP04/RP05 disks of the early 80’s worked with 19 bits. I am not sure what the “pg_iord” field is about. The comment “inode index” may be misleading. My hypothesis that it is a short form of the device code, for instance an index into the mount table; magic values could have been used to identify the swap device, “demand zero”, etc.

It seems probable to me that the paging algorithm in SVr2 was derived from the 32/V r3 algorithm. John's recollection:

<quote>
Our machine started with 512KB of RAM, but within a few months was upgraded
to 4 MB with boards that used a new generation of RAM chips.
The hardware page size was 512 bytes, which is quite small.  Strict LRU
on 8,192 pages, plus Copy-On-Write, made the second reference to a page
"blindingly fast".
</unquote>

In a follow up mail conversation with JFR we (I?) arrived at the conclusion that literal “strict LRU” is not likely on VAX hardware, but that an algorithm that maintains a small working set combined with a large second chance list amounts to about the same. It seems to me that this description also applies to the surviving SVr2 implementation: every 4 seconds sweep through the page tables of all processes and pages that were not referenced are moved to the free/2nd chance list.

To implement this it seems likely to me that 32V r3 used a structure similar to this: https://github.com/ryanwoodsmall/oldsysv/blob/master/sysvr2-vax/src/uts/vax/sys/pfdat.h#L4-L13 Such a structure is also in line with viewing core as a cache for disk, similar to TENEX that JFR had in mind.

The big change from SysIII to SVr1 in kernel page table management is the introduction of the “sptmap” (https://chiselapp.com/user/pnr/repository/paging/file?name=os/machdep.c&ci=fba821c0b38e2e350da927347eba25d5fe53852c&ln=346,378).  In 32V r2 and SysIII the user page tables are swapped in and out of kernel space along with the _u area. This makes it impractical to do the working set sweep every few seconds. The “sptmap” innovation effectively creates a global page table space that fits with the needs of the working set sweep. In SVr1 it seems to have no real benefit, and it seems likely to me that it came from 32V r3.

In general it seems plausible to me that SVr1 derives from 32V r3, but was regressed to SysIII code where necessary to keep the code PDP-11 compatible. Another clue for this is in the buffer code of SVr1: https://chiselapp.com/user/pnr/repository/paging/file?name=os/main.c&ci=fba821c0b38e2e350da927347eba25d5fe53852c&ln=205,218
Here, the disk buffers are allocated as virtual memory pages, not as an array. This too is otherwise unused in SVr1, but makes perfect sense in the context of 32V r3.

So, in summary, it would seem to me that the 32V r3 virtual memory system:
- used sptmap code similar to SVr1/r2 to manage page tables in the kernel
- used the pte structure from SVr2 and a pfdat table similar to SVr2 to manage mappings
- used page stealer and fault code similar to SVr2
Phrased the other way around: SVr2-vax seems to use the 32V r3 virtual memory code with the region abstraction added on top, and the unified buffer removed.

At the moment I have not found clear clues for the unified buffer algorithms or mmap implementation. Perhaps careful reading of the IPC shared memory code in SVr1 will yield some.

To be continued … 







From pnr at planet.nl  Sun Jul 25 04:36:45 2021
From: pnr at planet.nl (Paul Ruizendaal)
Date: Sat, 24 Jul 2021 20:36:45 +0200
Subject: [TUHS] Who designed SysV IPC?
Message-ID: <6F5C0B9D-C7EF-4DED-AAA5-241F55A916E6@planet.nl>

Currently reading through IPC in CB Unix 3.0, Vr1-vax and SVr1-pdp11.

The IPC primitives in CB Unix (maus, event and msg) are quite different from those in SVr1 (although maus survives in SVr1-pdp11).

It made me wonder: is it still known who designed the IPC primitives for SysV?



From clemc at ccc.com  Sun Jul 25 05:41:40 2021
From: clemc at ccc.com (Clem Cole)
Date: Sat, 24 Jul 2021 15:41:40 -0400
Subject: [TUHS] Who designed SysV IPC?
In-Reply-To: <6F5C0B9D-C7EF-4DED-AAA5-241F55A916E6@planet.nl>
References: <6F5C0B9D-C7EF-4DED-AAA5-241F55A916E6@planet.nl>
Message-ID: <CAC20D2OpraFXB_1aE+9vtZyreEtgFx=86VmnaHJe6ODV06zM9A@mail.gmail.com>

Yeah - they are different, but I'm pretty sure that Dale's work in CB UNIX
came first.   I know I saw the CB/UNIX code as hacks to PWB 1.0 I think
(maybe 2.0) when I was still at CMU in 1978 (Phil Karn had it IIRC).   I
was under the impression that folks at Summit (e.g. UNIX Support Group) had
the job of collecting different features that had been done and putting
them into the AT&T 'Standard' for the operating companies.  I agree it
would be interesting to learn who did the work.  But as I always understood
it, Dale's team gave the CB/UNIX stuff to the USG folks who reimplemented
it, I thought because USG was redoing the memory code and wanted something
that would integrate better.   I suspect it is also possible, Dale and his
team redid it in the key of System V at some point and pushed it back.

Clem
бђ§

On Sat, Jul 24, 2021 at 2:38 PM Paul Ruizendaal via TUHS <
tuhs at minnie.tuhs.org> wrote:

> Currently reading through IPC in CB Unix 3.0, Vr1-vax and SVr1-pdp11.
>
> The IPC primitives in CB Unix (maus, event and msg) are quite different
> from those in SVr1 (although maus survives in SVr1-pdp11).
>
> It made me wonder: is it still known who designed the IPC primitives for
> SysV?
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210724/a8b021a2/attachment.htm>

From pnr at planet.nl  Sun Jul 25 22:54:13 2021
From: pnr at planet.nl (Paul Ruizendaal)
Date: Sun, 25 Jul 2021 14:54:13 +0200
Subject: [TUHS] Wy 32V R3 was fast
Message-ID: <28452B35-1321-4EC2-8F83-07E9D78BEC8B@planet.nl>

> TUHS list (Rob Pike, Aug 2019)
> 
> I think it was slightly later. I joined mid-1980 and VAXes to replace the
> 11/70 were being discussed but had not arrived. We needed to convert a lab
> into a VAX machine room and decide between BSD and Reiser, all of which
> happened in the second half of 1980.
> 
> Reiser Unix got demand paging a little later, and it was spectacularly
> fast. I remember being gobsmacked when I saw a demo in early 1981.
> 
> Dead ends everywhere.

I think I have figured out why 32V R3 was so fast (assuming my current understanding of how 32V R3 must have worked is correct).

Its VM subsystem tags each memory frame with its disk mirror location, be it in swap or in the file system. A page can quickly be found as they are hashed on device and block no. This is true both for pages in the working set and pages on the 2nd chance list. Effectively, most core is a disk cache.

In a unified buffer design, the buffer code would first look for an existing buffer header for the requested disk block, as in V7. If not found, it would check the page frame list for that block and if found it would connect the frame to an empty buffer header, increment its use count and move it to the working set. If not found there either, it would be loaded from disk as per usual. When a buffer is released, the frame use count would be decremented and if zero the page frame would be put back on the 2nd chance list and the buffer header would be marked empty. With this approach, up to 4MB of the disk could be cached in RAM.

Early in 1981 most binaries and files were a few dozen KB in size. All of the shell, editor, compiler tool chain, library files, intermediate files, etc. would have fitted in RAM all at once. In a developer focused demo and once memory was primed, the system would effectively run from RAM, barely hitting the disk, even with tens of concurrent logins. Also something like “ls -l /bin” would have been much faster on its second run.

It puts a comment from JFR in a clearer context:

<quote>
Strict LRU on 8,192 pages, plus Copy-On-Write, made the second reference to a page "blindingly fast".
<unquote>

So far I read this in context of the paging algorithm, and then it is hard to understand (is LRU really that much better than NRU?). In the context of a unified buffer and disk pages, it makes a lot more sense. Even the CoW part: as the (clean) data segment of executables would still be in core, they could start without reloading from disk - CoW would create copies as needed.

===

The interesting question now is: if this buffer unification was so impressive, why was it abandoned in SVr2-vax? I can think of 3 reasons:

1. Maybe there was a subtle bug that was hard to diagnose. “Research" opting for the BSD memory system “as it did not want to do the maintenance” suggests that there may have been lingering issues.

1b. A variation of this: JFR mentioned that his implementation of unified buffers broke conceptual layering. USG do not strike me as purists, but maybe they thought the code was too messy to maintain.

2. Maybe there was an unintended semantic issue (e.g. you can lock a buffer, but not a mmap ‘ed page).

3. Maybe it was hard to come up with a good sync() policy, making database work risky (and system crashes more devastating to the file system).

JFR mentioned that he did the design and implementation for 32V R3 in about 3 months, with 3 more months for bug fixing and polishing. That is not a lot of time for such a big and complex kernel mod (for its time).




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20210725/609fe42e/attachment.htm>

From douglas.mcilroy at dartmouth.edu  Wed Jul 28 08:46:43 2021
From: douglas.mcilroy at dartmouth.edu (Douglas McIlroy)
Date: Tue, 27 Jul 2021 18:46:43 -0400
Subject: [TUHS] Latex-Style Equations in Troff
Message-ID: <CAKH6PiX-LHqqfgmX+_GqornOvvy+XA2SoiAUMLf2wR03k_j_Pg@mail.gmail.com>

That's a neat tool. It would be nice to have the
inverse tool, too; it's painful to do by hand.

Doug

From msi at malbolge.net  Sat Jul 31 22:25:33 2021
From: msi at malbolge.net (Michael Siegel)
Date: Sat, 31 Jul 2021 14:25:33 +0200
Subject: [TUHS] Systematic approach to command-line interfaces
Message-ID: <20210731142533.69caf929@moon>

Hello,

I've recently started to implement a set of helper functions and
procedures for parsing Unix-like command-line interfaces (i.e., POSIX +
GNU-style long options, in this case) in Ada.

While doing that, I learned that there is a better way to approach
this problem – beyond using getopt(s) (which never really made sense to
me) and having to write case statements in loops every time: Define a
grammar, let a pre-built parser do the work, and have the parser
provide the results to the program.

Now, defining such a grammar requires a thoroughly systematic approach
to the design of command-line interfaces. One problem with that is
whether that grammar should allow for sub-commands. And that leads to
the question of how task-specific tool sets should be designed. These
seem to be a relatively new phenomenon in Unix-like systems that POSIX
doesn't say anything about, as far as I can see.

So, I've prepared a bit of a write-up, pondering on the pros and cons
of two different ways of having task-specific tool sets
(non-hierarchical command sets vs. sub-commands) that is available at

  https://www.msiism.org/files/doc/unix-like_command-line_interfaces.html

I tend to think the sub-command approach is better. But I'm neither a UI
nor a Unix expert and have no formal training in computer things. So, I
thought this would be a good place to ask for comment (and get some
historical perspective).

This is all just my pro-hobbyist attempt to make some people's lives
easier, especially mine. I mean, currently, the "Unix" command line is
quite a zoo, and not in a positive sense. Also, the number of
well-thought-out command-line interfaces doesn't seem to be a growing
one. But I guess that could be changed by providing truly easy ways to
make good interfaces.


--
Michael

From halbert at halwitz.org  Sat Jul 31 23:05:47 2021
From: halbert at halwitz.org (Dan Halbert)
Date: Sat, 31 Jul 2021 09:05:47 -0400
Subject: [TUHS] Systematic approach to command-line interfaces
In-Reply-To: <20210731142533.69caf929@moon>
References: <20210731142533.69caf929@moon>
Message-ID: <146ddec4-af34-dadb-65d0-1f8c309526ae@halwitz.org>

The "click" CLI parser for Python I think would be of interest to you: 
https://click.palletsprojects.com/. It has support for sub-commands and 
nesting. It's not grammar-based internally, as far as I know.
Also I think PowerShell has some interesting concepts, though I've not 
looked at it in detail.

Dan H.

On 7/31/21 8:25 AM, Michael Siegel wrote:
> Hello,
>
> I've recently started to implement a set of helper functions and
> procedures for parsing Unix-like command-line interfaces (i.e., POSIX +
> GNU-style long options, in this case) in Ada.
>
> While doing that, I learned that there is a better way to approach
> this problem – beyond using getopt(s) (which never really made sense to
> me) and having to write case statements in loops every time: Define a
> grammar, let a pre-built parser do the work, and have the parser
> provide the results to the program.
>
> Now, defining such a grammar requires a thoroughly systematic approach
> to the design of command-line interfaces. One problem with that is
> whether that grammar should allow for sub-commands. And that leads to
> the question of how task-specific tool sets should be designed. These
> seem to be a relatively new phenomenon in Unix-like systems that POSIX
> doesn't say anything about, as far as I can see.
>
> So, I've prepared a bit of a write-up, pondering on the pros and cons
> of two different ways of having task-specific tool sets
> (non-hierarchical command sets vs. sub-commands) that is available at
>
>    https://www.msiism.org/files/doc/unix-like_command-line_interfaces.html
>
> I tend to think the sub-command approach is better. But I'm neither a UI
> nor a Unix expert and have no formal training in computer things. So, I
> thought this would be a good place to ask for comment (and get some
> historical perspective).
>
> This is all just my pro-hobbyist attempt to make some people's lives
> easier, especially mine. I mean, currently, the "Unix" command line is
> quite a zoo, and not in a positive sense. Also, the number of
> well-thought-out command-line interfaces doesn't seem to be a growing
> one. But I guess that could be changed by providing truly easy ways to
> make good interfaces.
>
>
> --
> Michael