From don at DonHopkins.com Wed Nov 1 02:43:08 2017 From: don at DonHopkins.com (Don Hopkins) Date: Tue, 31 Oct 2017 17:43:08 +0100 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> Message-ID: <339027CC-7CC3-4E90-BD75-44F68F66D783@gmail.com> > On 30 Oct 2017, at 21:56, Dave Horsfall wrote: > > I'm glad that I'm not the only one who remembers TECO; a fun game was to type your name at it to see what it did. A great game to play while traveling is to interpret what license plates do in TECO. -Don From norman at oclsc.org Wed Nov 1 05:23:00 2017 From: norman at oclsc.org (Norman Wilson) Date: Tue, 31 Oct 2017 15:23:00 -0400 Subject: [TUHS] basic tools / Universal Unix Message-ID: <1509477784.2361.for-standards-violators@oclsc.org> I too remember TECO. In my TOPS-10 days I was quite a whiz at it. Then I encountered UNIX and ed, and never looked back. Cryptic programmability is fun, but a simple but well-chosen set of commands including the g/v pair made me more efficient in the end. it could just be that ed is a better fit for the shape of my brain. C struck me similarly. Norman Wilson Toronto ON (Actually in the Bay Area for a few days for LISA, in case any UNIXtorians want to meet up.) From dave at horsfall.org Wed Nov 1 13:23:24 2017 From: dave at horsfall.org (Dave Horsfall) Date: Wed, 1 Nov 2017 14:23:24 +1100 (EST) Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> Message-ID: On Tue, 31 Oct 2017, Ronald Natalie wrote: > I’m a bizarre UNIX relic. I never learned vi. I went from “ed” to the > various emacs variants (starting with Warren Montgomery’s EMACS, then > JOVE and UNIPRESS, and later GNU). I used INed (a commercialization of > the Rand editor) but didn't particularly like that either. My coworkers > for years would be amused when if I found the machine had no EMACS > variant, I’d just use ed. I could be startlingly fast in ed and you do > learn regular expressions well if you have to do a lot of editing that > way. On a few machines where I’m confronted with VI and no ed/emacs, I > just use VI in “ex” mode. A previous boss insisted that all his support staff learn ED, because one day it might be the only editor available on a trashed box (you can't mount /usr etc). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From tfb at tfeb.org Wed Nov 1 23:25:02 2017 From: tfb at tfeb.org (Tim Bradshaw) Date: Wed, 1 Nov 2017 13:25:02 +0000 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> Message-ID: <8FE0F4AC-DDAE-482B-8148-CB9438F57549@tfeb.org> > On 1 Nov 2017, at 03:23, Dave Horsfall wrote: > > A previous boss insisted that all his support staff learn ED, because one day it might be the only editor available on a trashed box (you can't mount /usr etc). That's happened to me relatively recently (I know ed just well enough to get machines out of that state). Of course nowadays you can't rely on the thing called 'ed' being 'ed': I know someone who lives in ed but can't run it on some machines because it relies on something in /var somewhere being writable, which it isn't. I've always thought that the *whole point* of ed was that it did not rely on vast tracts of the system actually being there, still less beng functional. This person now has to edit things with cat (which, in some future release, will probably start assuming that there's a configured ipv6 interface or something, because why would that ever not be true?). --tim From ralph at inputplus.co.uk Thu Nov 2 00:05:18 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Wed, 01 Nov 2017 14:05:18 +0000 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> Message-ID: <20171101140518.98D10212F3@orac.inputplus.co.uk> Hi Ronald, > On a few machines where I’m confronted with VI and no ed/emacs, I just > use VI in “ex” mode. One thing I miss with vim(1) is the lack of open mode, the half-way house between ex and vi modes. I still use ed daily when I know the edit I want to do and have the context to work by, e.g. output from previous commands, on the screen, that I don't want removed by a full-screen editor. But sometimes it would be nice to be able to `f(c%' rather than always have to regexp the edit and vi's open mode would give me that. I've idly considered an ed that also maintained a cursor within the line that could be used with vi-like commands. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From arnold at skeeve.com Thu Nov 2 02:42:00 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Wed, 01 Nov 2017 10:42:00 -0600 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <20171101140518.98D10212F3@orac.inputplus.co.uk> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171101140518.98D10212F3@orac.inputplus.co.uk> Message-ID: <201711011642.vA1Gg0bX016908@freefriends.org> Ralph Corderoy wrote: > I've idly considered an ed that also maintained a cursor within the line > that could be used with vi-like commands. Are we not Hackers? Can we not code as we wish?!? -- Somebody, I forget who But seriously, you want an ed with a cursor, you need only take GNU ed and hook it up with GNU readline, and there you go. If GNU ed doesn't already have such support. Absolutely no need to reinvent either wheel. My two cents, Arnold From ralph at inputplus.co.uk Thu Nov 2 03:17:00 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Wed, 01 Nov 2017 17:17:00 +0000 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <201711011642.vA1Gg0bX016908@freefriends.org> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171101140518.98D10212F3@orac.inputplus.co.uk> <201711011642.vA1Gg0bX016908@freefriends.org> Message-ID: <20171101171700.D8E0721937@orac.inputplus.co.uk> Hi Arnold, > > I've idly considered an ed that also maintained a cursor within the > > line that could be used with vi-like commands. > > you want an ed with a cursor, you need only take GNU ed and hook it up > with GNU readline, and there you go. That would allow me to edit the command I'm entering, e.g. `,n'. What I'm suggesting is the command I'm entering can manipulate the in-line cursor when I press Enter to submit the command. I don't want interactive editing of lines in the file; I know where to find that. :-) > If GNU ed doesn't already have such support. ed 1.14.2-1 here hasn't. And I wouldn't expect its dependencies to grow. $ ldd /bin/ed linux-vdso.so.1 (0x00007fff215d4000) libc.so.6 => /usr/lib/libc.so.6 (0x00007fd89767a000) /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fd897a31000) $ -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From crossd at gmail.com Thu Nov 2 04:03:33 2017 From: crossd at gmail.com (Dan Cross) Date: Wed, 1 Nov 2017 14:03:33 -0400 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <20171101171700.D8E0721937@orac.inputplus.co.uk> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171101140518.98D10212F3@orac.inputplus.co.uk> <201711011642.vA1Gg0bX016908@freefriends.org> <20171101171700.D8E0721937@orac.inputplus.co.uk> Message-ID: Since `ed` is line-based, one could presumably use it with `rlwrap` or something like that. On Wed, Nov 1, 2017 at 1:17 PM, Ralph Corderoy wrote: > Hi Arnold, > >> > I've idly considered an ed that also maintained a cursor within the >> > line that could be used with vi-like commands. >> >> you want an ed with a cursor, you need only take GNU ed and hook it up >> with GNU readline, and there you go. > > That would allow me to edit the command I'm entering, e.g. `,n'. What > I'm suggesting is the command I'm entering can manipulate the in-line > cursor when I press Enter to submit the command. I don't want > interactive editing of lines in the file; I know where to find that. > :-) > >> If GNU ed doesn't already have such support. > > ed 1.14.2-1 here hasn't. And I wouldn't expect its dependencies to > grow. > > $ ldd /bin/ed > linux-vdso.so.1 (0x00007fff215d4000) > libc.so.6 => /usr/lib/libc.so.6 (0x00007fd89767a000) > /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fd897a31000) > $ > > -- > Cheers, Ralph. > https://plus.google.com/+RalphCorderoy From arnold at skeeve.com Thu Nov 2 04:06:00 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Wed, 01 Nov 2017 12:06:00 -0600 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <20171101171700.D8E0721937@orac.inputplus.co.uk> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171101140518.98D10212F3@orac.inputplus.co.uk> <201711011642.vA1Gg0bX016908@freefriends.org> <20171101171700.D8E0721937@orac.inputplus.co.uk> Message-ID: <201711011806.vA1I60bL025852@freefriends.org> Ralph Corderoy wrote: > Hi Arnold, > > > > I've idly considered an ed that also maintained a cursor within the > > > line that could be used with vi-like commands. > > > > you want an ed with a cursor, you need only take GNU ed and hook it up > > with GNU readline, and there you go. > > That would allow me to edit the command I'm entering, e.g. `,n'. What > I'm suggesting is the command I'm entering can manipulate the in-line > cursor when I press Enter to submit the command. I don't want > interactive editing of lines in the file; I know where to find that. > :-) I don't think I understand what you're getting at. It's been decades, I think, since I last saw / used open mode, which is what I thought you wanted, so I think I'm confused. Oh well, Arnold From bakul at bitblocks.com Thu Nov 2 06:16:24 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Wed, 1 Nov 2017 13:16:24 -0700 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <201711011806.vA1I60bL025852@freefriends.org> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171101140518.98D10212F3@orac.inputplus.co.uk> <201711011642.vA1Gg0bX016908@freefriends.org> <20171101171700.D8E0721937@orac.inputplus.co.uk> <201711011806.vA1I60bL025852@freefriends.org> Message-ID: <0B657714-7E99-4063-9C09-45EC2A9BCD23@bitblocks.com> > On Nov 1, 2017, at 11:06 AM, arnold at skeeve.com wrote: > > Ralph Corderoy wrote: > >> Hi Arnold, >> >>>> I've idly considered an ed that also maintained a cursor within the >>>> line that could be used with vi-like commands. >>> >>> you want an ed with a cursor, you need only take GNU ed and hook it up >>> with GNU readline, and there you go. >> >> That would allow me to edit the command I'm entering, e.g. `,n'. What >> I'm suggesting is the command I'm entering can manipulate the in-line >> cursor when I press Enter to submit the command. I don't want >> interactive editing of lines in the file; I know where to find that. >> :-) > > I don't think I understand what you're getting at. It's been decades, > I think, since I last saw / used open mode, which is what I thought > you wanted, so I think I'm confused. I think what Ralph wants is something like "LINES=1 vi" but without clearing the screen so that commands that are cursor relative can work. rlwrap and readline don't edit the current line in the file, only the command input. From arnold at skeeve.com Thu Nov 2 06:37:42 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Wed, 01 Nov 2017 14:37:42 -0600 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <0B657714-7E99-4063-9C09-45EC2A9BCD23@bitblocks.com> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171101140518.98D10212F3@orac.inputplus.co.uk> <201711011642.vA1Gg0bX016908@freefriends.org> <20171101171700.D8E0721937@orac.inputplus.co.uk> <201711011806.vA1I60bL025852@freefriends.org> <0B657714-7E99-4063-9C09-45EC2A9BCD23@bitblocks.com> Message-ID: <201711012037.vA1KbgHZ008984@freefriends.org> Bakul Shah wrote: > I think what Ralph wants is something like "LINES=1 vi" > but without clearing the screen so that commands that > are cursor relative can work. rlwrap and readline don't > edit the current line in the file, only the command input. OK, that I can understand. It's ages since I played with readline, but I think you can preload the buffer it works on (bash does that, no?) so ed + readline could be made to work that way. At least, I think so. I already have too many side projects on my plate, or I'd try it. :-) Thanks, Arnold From bakul at bitblocks.com Thu Nov 2 07:04:20 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Wed, 01 Nov 2017 14:04:20 -0700 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: Your message of "Wed, 01 Nov 2017 14:37:42 -0600." <201711012037.vA1KbgHZ008984@freefriends.org> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171101140518.98D10212F3@orac.inputplus.co.uk> <201711011642.vA1Gg0bX016908@freefriends.org> <20171101171700.D8E0721937@orac.inputplus.co.uk> <201711011806.vA1I60bL025852@freefriends.org> <0B657714-7E99-4063-9C09-45EC2A9BCD23@bitblocks.com> <201711012037.vA1KbgHZ008984@freefriends.org> Message-ID: <20171101210435.9AE27156E7D7@mail.bitblocks.com> On Wed, 01 Nov 2017 14:37:42 -0600 arnold at skeeve.com wrote: arnold at skeeve.com writes: > Bakul Shah wrote: > > > I think what Ralph wants is something like "LINES=1 vi" > > but without clearing the screen so that commands that > > are cursor relative can work. rlwrap and readline don't > > edit the current line in the file, only the command input. > > OK, that I can understand. It's ages since I played with > readline, but I think you can preload the buffer it works on > (bash does that, no?) so ed + readline could be made to work > that way. Editing that way seem is bass ackwards -- probably more code would needed to interface with readline than just implementing it in ed. As a one line version requires just line movement commands, there is no reason why you can't use full power of vi through a narrow window - such as d} to delete to the end of para and have the next line dispayed. Readline wouldn't help there. And readline weighs in @ 28K LOC to ed's 3.5K (on plan9 it is under 1.6K). > I already have too many side projects on my plate, or I'd try it. :-) Ditto! From dave at horsfall.org Thu Nov 2 08:17:06 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 2 Nov 2017 09:17:06 +1100 (EST) Subject: [TUHS] Happy birthday, Morris Worm! Message-ID: The infamous Morris Worm was released in 1988; making use of known vulnerabilities in Sendmail/finger/RSH (and weak passwords), it took out a metric shitload of SUN-3s and 4BSD Vaxen (the author claimed that it was accidental, but the idiot hadn't tested it on an isolated network first). A temporary "condom" was discovered by Rich Kulawiec with "mkdir /tmp/sh". -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From lyndon at orthanc.ca Thu Nov 2 08:32:21 2017 From: lyndon at orthanc.ca (Lyndon Nerenberg) Date: Wed, 1 Nov 2017 15:32:21 -0700 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: Message-ID: <416BB1FE-6E0A-4A40-8C75-8BFD8C33E6A3@orthanc.ca> > On Nov 1, 2017, at 3:17 PM, Dave Horsfall wrote: > > A temporary "condom" was discovered by Rich Kulawiec with "mkdir /tmp/sh". Renaming $PATH/cc to anything else also helped. From norman at oclsc.org Thu Nov 2 08:51:25 2017 From: norman at oclsc.org (Norman Wilson) Date: Wed, 01 Nov 2017 18:51:25 -0400 Subject: [TUHS] basic tools / Universal Unix Message-ID: <1509576688.7596.for-standards-violators@oclsc.org> Arnold: > OK, that I can understand. It's ages since I played with > readline, but I think you can preload the buffer it works on > (bash does that, no?) so ed + readline could be made to work > that way. ==== Or, if you have moved beyond the era of simulated glass teletypes on graphics screens, you could do the editing in the terminal (program). It's a real shame the mux/9term way of doing things never caught on. I suppose it is because so many people are wedded to programs that require cursor addressing; I'm glad I never succumbed to that. I use ed (or its cousin qed a la Toronto) for simple stuff. Mostly I'll use the traditional commands, but sometimes I will, in mux/9term style, print a line with p, type c, edit the line on the screen, pick it up and send it, type . return. And of course I can do that sort of thing with any program, whether or not it is compiled with some magic library. All this is something of a matter of taste, but I have sometimes amazed (in a good way) my colleagues with it. Norman Wilson Toronto ON From lyndon at orthanc.ca Thu Nov 2 09:09:05 2017 From: lyndon at orthanc.ca (Lyndon Nerenberg) Date: Wed, 1 Nov 2017 16:09:05 -0700 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <1509576688.7596.for-standards-violators@oclsc.org> References: <1509576688.7596.for-standards-violators@oclsc.org> Message-ID: > On Nov 1, 2017, at 3:51 PM, Norman Wilson wrote: > > I use ed (or its cousin qed a la Toronto) for simple stuff. > Mostly I'll use the traditional commands, but sometimes > I will, in mux/9term style, print a line with p, type > c, edit the line on the screen, pick it up and send it, > type . return. > > And of course I can do that sort of thing with any program, > whether or not it is compiled with some magic library. > > All this is something of a matter of taste, but I have > sometimes amazed (in a good way) my colleagues with it. If 9term's "hold" mode had a (built in) way to do acme's "|fmt" I would achieve a state of bliss. Who needs text editors. From paul.winalski at gmail.com Thu Nov 2 09:15:51 2017 From: paul.winalski at gmail.com (Paul Winalski) Date: Wed, 1 Nov 2017 19:15:51 -0400 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: Message-ID: On 11/1/17, Dave Horsfall wrote: > The infamous Morris Worm was released in 1988; making use of known > vulnerabilities in Sendmail/finger/RSH (and weak passwords), it took out a > metric shitload of SUN-3s and 4BSD Vaxen (the author claimed that it was > accidental, but the idiot hadn't tested it on an isolated network first). Back in 1980 I accidentally took down DEC's internal network with a worm that was a VMS DCL script that did a SHOW NETWORK command to display the adjacent nodes, then copied itself to each node in turn and executed the copy. It was intended to walk the network to provide me with the raw information to draw up a network topology map. The bug was that I forgot network adjacency is commutative--there was nothing to prevent it from running on nodes where it had been before. Robert Morris had been an intern at DEC in the compiler group, and he had been told about my embarrassing worm command procedure. I've always wondered if my mistake was his inspiration. -Paul W. From sauer at technologists.com Thu Nov 2 09:03:02 2017 From: sauer at technologists.com (Charles H. Sauer) Date: Wed, 1 Nov 2017 18:03:02 -0500 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: Message-ID: <2E91B4C5E03B4EFDBE413AE78DCCD212@downstairsv220> On a personal note, I happened to be at the annual Berkeley Unix Workshop which started just before the Worm was released (http://www.cs.unc.edu/~jeffay/courses/nidsS05/attacks/seely-RTMworm-89.html). I'd been invited to speak about the work on AIX & 4.3 convergence (http://technologists.com/sauer/Convergence_of_AIX_and_4.3BSD.pdf). I was delighted to finally meet and hang out with people that I only knew by name. I particularly remember spending time with Keith Bostic and Rick Rashid. As I remember, the Workshop was conducted almost as planned, with real time reports of the Worm analysis and control. Charlie -----Original Message----- From: Dave Horsfall Sent: Wednesday, November 1, 2017 5:17 PM To: The Eunuchs Hysterical Society Subject: [TUHS] Happy birthday, Morris Worm! The infamous Morris Worm was released in 1988; making use of known vulnerabilities in Sendmail/finger/RSH (and weak passwords), it took out a metric shitload of SUN-3s and 4BSD Vaxen (the author claimed that it was accidental, but the idiot hadn't tested it on an isolated network first). A temporary "condom" was discovered by Rich Kulawiec with "mkdir /tmp/sh". -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From chet.ramey at case.edu Thu Nov 2 10:05:14 2017 From: chet.ramey at case.edu (Chet Ramey) Date: Wed, 1 Nov 2017 20:05:14 -0400 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <201711012037.vA1KbgHZ008984@freefriends.org> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171101140518.98D10212F3@orac.inputplus.co.uk> <201711011642.vA1Gg0bX016908@freefriends.org> <20171101171700.D8E0721937@orac.inputplus.co.uk> <201711011806.vA1I60bL025852@freefriends.org> <0B657714-7E99-4063-9C09-45EC2A9BCD23@bitblocks.com> <201711012037.vA1KbgHZ008984@freefriends.org> Message-ID: On 11/1/17 4:37 PM, arnold at skeeve.com wrote: > Bakul Shah wrote: > >> I think what Ralph wants is something like "LINES=1 vi" >> but without clearing the screen so that commands that >> are cursor relative can work. rlwrap and readline don't >> edit the current line in the file, only the command input. > > OK, that I can understand. It's ages since I played with > readline, but I think you can preload the buffer it works on > (bash does that, no?) so ed + readline could be made to work > that way. Yes, you can set a startup hook to preload the buffer contents. Bash uses that for `read -ei'. -- ``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://cnswww.cns.cwru.edu/~chet/ From ralph at inputplus.co.uk Thu Nov 2 10:06:38 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Thu, 02 Nov 2017 00:06:38 +0000 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: Message-ID: <20171102000638.75A9C2158D@orac.inputplus.co.uk> Hi Dave, > (the author claimed that it was accidental, but the idiot hadn't > tested it on an isolated network first). I don't think the author was an idiot; things were different back then. It's similar to Jordan Hubbard's rwall(1) mentioned here at the end of September; someone had to be the first to screw up. He ended up a convicted felon, something I understand is quite serious that side of the pond, that seems harsh, and it must have been quite embarrassing for him given his father was Chief Scientist at NSA, having moved on from Bell Labs: https://www.bell-labs.com/usr/dmr/www/crypt.html Without that wake-up call, and the good that came out of it, e.g. CERT funding, it might have been a more rude awakening with more than time burnt? -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From crossd at gmail.com Thu Nov 2 10:09:05 2017 From: crossd at gmail.com (Dan Cross) Date: Wed, 1 Nov 2017 20:09:05 -0400 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: Message-ID: On Wed, Nov 1, 2017 at 6:17 PM, Dave Horsfall wrote: > The infamous Morris Worm was released in 1988; making use of known > vulnerabilities in Sendmail/finger/RSH (and weak passwords), it took out a > metric shitload of SUN-3s and 4BSD Vaxen (the author claimed that it was > accidental, but the idiot hadn't tested it on an isolated network first). A > temporary "condom" was discovered by Rich Kulawiec with "mkdir /tmp/sh". I feel obligated to mention out that Robert Tappan Morris is really very nice and quite humble in real life. As I understand it he's never sought to capitalize on his infamy from the worm, and while I've never asked him about it (I'm sure that would be very rude) I understand from some of his former students that he feels very contrite about the whole thing. He made a mistake when he was young; the same is true of many of us (myself included). His mistake had the misfortune of being much better known than those most of us make. I should mention that I only know him slightly, but what I have seen of his personality reminds me very much of how I remember Dennis Ritchie: affable, kind and extremely approachable. - Dan C. From ralph at inputplus.co.uk Thu Nov 2 10:10:34 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Thu, 02 Nov 2017 00:10:34 +0000 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <201711011806.vA1I60bL025852@freefriends.org> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171101140518.98D10212F3@orac.inputplus.co.uk> <201711011642.vA1Gg0bX016908@freefriends.org> <20171101171700.D8E0721937@orac.inputplus.co.uk> <201711011806.vA1I60bL025852@freefriends.org> Message-ID: <20171102001034.6739A2158D@orac.inputplus.co.uk> Hi Arnold, > I don't think I understand what you're getting at. It's been decades, > I think, since I last saw / used open mode, which is what I thought > you wanted, so I think I'm confused. Sorry if I wasn't clear. I miss open mode as vim doesn't have it, and I'd sometimes find it useful. Separately, I use ed regularly, and have though about its `compose a command, submit it', model being extended to commands that act upon a cursor that's within the line, just as `.' is the line within the file. I don't mean readline editing of the command, nor of the current line in the file. More what one might see on the RHS of `:map Q ...', but in the style of ed. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From clemc at ccc.com Thu Nov 2 11:08:45 2017 From: clemc at ccc.com (Clem cole) Date: Wed, 1 Nov 2017 21:08:45 -0400 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: Message-ID: <5F5DAFD3-0833-451E-9FC0-E6F5A2D14FBD@ccc.com> +1 Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > On Nov 1, 2017, at 8:09 PM, Dan Cross wrote: > >> On Wed, Nov 1, 2017 at 6:17 PM, Dave Horsfall wrote: >> The infamous Morris Worm was released in 1988; making use of known >> vulnerabilities in Sendmail/finger/RSH (and weak passwords), it took out a >> metric shitload of SUN-3s and 4BSD Vaxen (the author claimed that it was >> accidental, but the idiot hadn't tested it on an isolated network first). A >> temporary "condom" was discovered by Rich Kulawiec with "mkdir /tmp/sh". > > I feel obligated to mention out that Robert Tappan Morris is really > very nice and quite humble in real life. As I understand it he's never > sought to capitalize on his infamy from the worm, and while I've never > asked him about it (I'm sure that would be very rude) I understand > from some of his former students that he feels very contrite about the > whole thing. He made a mistake when he was young; the same is true of > many of us (myself included). His mistake had the misfortune of being > much better known than those most of us make. > > I should mention that I only know him slightly, but what I have seen > of his personality reminds me very much of how I remember Dennis > Ritchie: affable, kind and extremely approachable. > > - Dan C. From doug at cs.dartmouth.edu Thu Nov 2 13:46:50 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Wed, 01 Nov 2017 23:46:50 -0400 Subject: [TUHS] Happy birthday, Morris Worm! Message-ID: <201711020346.vA23koGg029014@coolidge.cs.Dartmouth.EDU> > the idiot hadn't tested it on an isolated network first That would have "proved" that the worm worked safely, for once every host was infected, all would go quiet. Only half in jest, I have always held that Cornell was right to expel Morris, but their reason should have been his lack of appreciation of exponentials. (Full disclosure: I was a character witnesss at his trial. A little known fact is that the judge leaned on the prosecutor to reduce the charge to a misdemeanor and accepted the felony only when the prosecuter secured specific backing from higher echelons at DOJ.) Doug McIlroy From ggm at algebras.org Thu Nov 2 15:53:53 2017 From: ggm at algebras.org (George Michaelson) Date: Thu, 2 Nov 2017 15:53:53 +1000 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <201711020346.vA23koGg029014@coolidge.cs.Dartmouth.EDU> References: <201711020346.vA23koGg029014@coolidge.cs.Dartmouth.EDU> Message-ID: Having been stupid, to deleterious effect of others, I can't find it in my heart to condemn it in anyone who clearly had a shitload of smarts. I was just selfish (I burned the JANET X.25 budget for the entire campus, logging into the TOPS-10 typing tutor to get X.25 PAD to a vax in edinburgh to connect to EMAS and read emails and oh well ok yes play a lot, a seriously large amount of dungeon. They shut down the Dec-10 typing tutor account and I was forbidden the network for the year) I don't think he actually intended to be that disruptive. In a way, the person most harmed was Morris Senior, wasn't it? (I was at CSIRO, and we got "hit" for want of a better word by morris, but we also got fixed very quickly. From memory, piers dik lauder from Sydney uni actually kept a mail *@* in ACSNet even after this, figuring store-and-forward to everyone at everywhere was actually useful) -G On Thu, Nov 2, 2017 at 1:46 PM, Doug McIlroy wrote: >> the idiot hadn't tested it on an isolated network first > > That would have "proved" that the worm worked safely, for > once every host was infected, all would go quiet. > > Only half in jest, I have always held that Cornell was right > to expel Morris, but their reason should have been his lack > of appreciation of exponentials. > > (Full disclosure: I was a character witnesss at his trial. A > little known fact is that the judge leaned on the prosecutor > to reduce the charge to a misdemeanor and accepted the felony > only when the prosecuter secured specific backing from > higher echelons at DOJ.) > > Doug McIlroy From arnold at skeeve.com Thu Nov 2 18:18:23 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Thu, 02 Nov 2017 02:18:23 -0600 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: Message-ID: <201711020818.vA28INgc006937@freefriends.org> Dave Horsfall wrote: > The infamous Morris Worm was released in 1988; making use of known > vulnerabilities in Sendmail/finger/RSH (and weak passwords), it took out a > metric shitload of SUN-3s and 4BSD Vaxen (the author claimed that it was > accidental, but the idiot hadn't tested it on an isolated network first). > A temporary "condom" was discovered by Rich Kulawiec with "mkdir /tmp/sh". > > -- > Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." I was a sysadmin at the time at Emory U's computing center. We were very fortunate to have the worm bypass us, since we were running a sendmail.cf file that I had written (from scratch!) instead of the standard one. (It was written using Ease, a preprocessor for sendmail.cf files. It took me a long time to write and test. I have, fortunately, literally, forgotten more about sendmail than most people ever know. :-) Anyway, I came in that Monday morning to business as usual, only to hear about the chaos happening in the rest of the Unix world. :-) I am sure, now, that I totally didn't understand then how really lucky we were. Arnold From jnc at mercury.lcs.mit.edu Thu Nov 2 22:10:53 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Thu, 2 Nov 2017 08:10:53 -0400 (EDT) Subject: [TUHS] Happy birthday, Morris Worm! Message-ID: <20171102121053.7618318C0AB@mercury.lcs.mit.edu> > From: Doug McIlroy > A little known fact is that the judge leaned on the prosecutor to reduce > the charge to a misdemeanor and accepted the felony only when the > prosecuter secured specific backing from higher echelons at DOJ. I had a tangential role in the legal aftermath, and am interested to hear this. I hadn't had much to do with the actual outbreak, so I was not particularly watching the whole saga. However, on the evening news one day, I happened to catch video of him coming out of the court-house after his conviction: from the look on his face (he looked like his dog had died, and then someone had kicked him in the stomach) it was pretty clear that incareration (which is what the sentencing guidelines called for, for that offense) was totally inappropriate. So I decided to weigh in. I got advice from the Washington branch of then-Hale&Dorr (my legal people at the time), who were well connected inside the DoJ (they had people who'd been there, and also ex-H+D people were serving, etc). IIRC, they agreed with me that this was over-charging, given the specifics of the offender, etc. (I forget exactly what they told me of what they made of the prosecutor and his actions, but it was highly not positive.) So we organized the IESG to submit a filing in the case on the sentencing, and got everyone to sign on; apparently in the legal system when there is an professional organization in a field, its opinions weigh heavily, and the IESG, representing as it did the IETF, was the closest thing to it here. I don't know how big an effect our filing had, but the judge did depart very considerably from the sentencing guidelines (which called, IIRC, for several years of jail-time) and gave him probation/community-service. Not everyone was happy about our actions (particularly some who'd had to work on the cleanup), but I think in retrospect it was the right call - yeah, he effed up, but several years in jail was not the right punsishment, for him, and for this particular case (no data damaged/deleted/stolen/etc). YMMV. Noel From norman at oclsc.org Thu Nov 2 23:46:47 2017 From: norman at oclsc.org (Norman Wilson) Date: Thu, 02 Nov 2017 09:46:47 -0400 Subject: [TUHS] Happy birthday, Morris Worm! Message-ID: <1509630411.25641.for-standards-violators@oclsc.org> Robert T Morris (the son who committed the famous worm) was an intern at Bell Labs for a couple of summers while I was there. He certainly wasn't an idiot; he was a smart guy. Like many smart guys (and not-so-smart guys for that matter), however, he was a sloppy coder, and tended not to test enough. One of the jokes in the UNIX Room was that, had it been Bob Morris (the father) who did it, a. He wouldn't have done it, because he would have seen that it wasn't worth the potential big mess; but b. Had he done it, no one would ever have caught him, and probably no one would even have noticed the worm as it crept around. Norman Wilson Toronto ON From crossd at gmail.com Fri Nov 3 00:26:06 2017 From: crossd at gmail.com (Dan Cross) Date: Thu, 2 Nov 2017 10:26:06 -0400 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <20171102121053.7618318C0AB@mercury.lcs.mit.edu> References: <20171102121053.7618318C0AB@mercury.lcs.mit.edu> Message-ID: On Thu, Nov 2, 2017 at 8:10 AM, Noel Chiappa wrote: > [...] > So I decided to weigh in. I got advice from the Washington branch of > then-Hale&Dorr (my legal people at the time), who were well connected inside > the DoJ (they had people who'd been there, and also ex-H+D people were > serving, etc). IIRC, they agreed with me that this was over-charging, given > the specifics of the offender, etc. (I forget exactly what they told me of > what they made of the prosecutor and his actions, but it was highly not > positive.) This is really fascinating. The Washington Post did an article on the Internet Worm back in 2013 (for the 25th anniversary). There are quite a few interesting insights from Gene Spafford and the prosecutor, Mark Rasch. Spaf felt that the felony conviction was going to far; Rasch has stated he would support a pardon being granted for the felony conviction. Mashable also had an article with some more quotes from Rasch https://www.washingtonpost.com/news/the-switch/wp/2013/11/01/how-a-grad-student-trying-to-build-the-first-botnet-brought-the-internet-to-its-knees/ http://mashable.com/2013/11/01/morris-worm/#BosSE6MAiqq0 - Dan C. From chet.ramey at case.edu Fri Nov 3 00:32:40 2017 From: chet.ramey at case.edu (Chet Ramey) Date: Thu, 2 Nov 2017 10:32:40 -0400 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <1509630411.25641.for-standards-violators@oclsc.org> References: <1509630411.25641.for-standards-violators@oclsc.org> Message-ID: <4a9428a6-95e5-ad40-950b-a61a90c0f285@case.edu> On 11/2/17 9:46 AM, Norman Wilson wrote: > Like many smart guys (and not-so-smart guys for that matter), > however, he was a sloppy coder, and tended not to test enough. In my experience, that is one of the things that improves with age (and, yes, experience). -- ``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://cnswww.cns.cwru.edu/~chet/ From will.senn at gmail.com Fri Nov 3 00:42:22 2017 From: will.senn at gmail.com (Will Senn) Date: Thu, 2 Nov 2017 09:42:22 -0500 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <1509630411.25641.for-standards-violators@oclsc.org> References: <1509630411.25641.for-standards-violators@oclsc.org> Message-ID: <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> On 11/2/17 8:46 AM, Norman Wilson wrote: > Robert T Morris (the son who committed the famous worm) was an > intern at Bell Labs for a couple of summers while I was there. > He certainly wasn't an idiot; he was a smart guy. > > Like many smart guys (and not-so-smart guys for that matter), > however, he was a sloppy coder, and tended not to test enough. > > One of the jokes in the UNIX Room was that, had it been Bob > Morris (the father) who did it, > a. He wouldn't have done it, because he would have seen that > it wasn't worth the potential big mess; but > b. Had he done it, no one would ever have caught him, and > probably no one would even have noticed the worm as it crept > around. > > Norman Wilson > Toronto ON I seem to recall that this story was included as part of The Cuckoo's Egg, by Clifford Stoll. I don't recall the specifics and I wonder if it has a bit of myth included, but somehow it was peripherally related to the investigations. Fuzzy recollection is that the worm got out during the investigation Clifford was involved in and it was Morris's son (Morris being in on the investigation somehow), and the kid getting off because of the position of the dad and the newness of the crime... or somesuch - don't shoot the messenger, but nobody mentioned Stoll, so I thought I'd chime in, in the hopes it might jog someone else's memory :). Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From michael at kjorling.se Fri Nov 3 01:00:19 2017 From: michael at kjorling.se (Michael =?utf-8?B?S2rDtnJsaW5n?=) Date: Thu, 2 Nov 2017 15:00:19 +0000 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> Message-ID: <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> On 2 Nov 2017 09:42 -0500, from will.senn at gmail.com (Will Senn): > I seem to recall that this story was included as part of The > Cuckoo's Egg, by Clifford Stoll. I don't recall the specifics and I > wonder if it has a bit of myth included, but somehow it was > peripherally related to the investigations. Fuzzy recollection is > that the worm got out during the investigation Clifford was involved > in and it was Morris's son (Morris being in on the investigation > somehow), and the kid getting off because of the position of the dad > and the newness of the crime... or somesuch - don't shoot the > messenger, but nobody mentioned Stoll, so I thought I'd chime in, in > the hopes it might jog someone else's memory :). Yes, Stoll did mention the Morris worm in his book. I'm pretty sure though that, as the story is told there, he found out about it well after the outbreak began. -- Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se “People who think they know everything really annoy those of us who know we don’t.” (Bjarne Stroustrup) From crossd at gmail.com Fri Nov 3 01:25:55 2017 From: crossd at gmail.com (Dan Cross) Date: Thu, 2 Nov 2017 11:25:55 -0400 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> Message-ID: On Thu, Nov 2, 2017 at 10:42 AM, Will Senn wrote: > I seem to recall that this story was included as part of The Cuckoo's Egg, > by Clifford Stoll. I don't recall the specifics and I wonder if it has a bit > of myth included, but somehow it was peripherally related to the > investigations. Fuzzy recollection is that the worm got out during the > investigation Clifford was involved in and it was Morris's son (Morris being > in on the investigation somehow), and the kid getting off because of the > position of the dad and the newness of the crime... or somesuch - don't > shoot the messenger, but nobody mentioned Stoll, so I thought I'd chime in, > in the hopes it might jog someone else's memory :). Stoll mentions the worm in an epilogue to The Cuckoo's Egg; it happens after the main events of the book. Apparently, for a brief time, some folks thought that he might be the one behind the worm and someone called him up and asked him if he'd written it. Cliff Stoll talked to a number of people in law enforcement and in government and thus made a number of contacts while he was pursuing Markus Hess (the pursuit of Hess being the main story of The Cuckoo's Egg): Robert Morris Sr was among those contacts. When the worm hit, he talked to Morris Sr and asked him if he knew who started it. The response was something along the lines of, "Yes, but I can't tell you." - Dan C. From tfb at tfeb.org Fri Nov 3 01:26:36 2017 From: tfb at tfeb.org (Tim Bradshaw) Date: Thu, 2 Nov 2017 15:26:36 +0000 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> Message-ID: <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> On 2 Nov 2017, at 15:00, Michael Kjörling wrote: > > Yes, Stoll did mention the Morris worm in his book. I'm pretty sure > though that, as the story is told there, he found out about it well > after the outbreak began. If I remember right it's essentially a postscript which takes place well after the main events, and he was contacted by who suspected he might have been responsible for it. --tim From will.senn at gmail.com Fri Nov 3 01:52:27 2017 From: will.senn at gmail.com (Will Senn) Date: Thu, 2 Nov 2017 10:52:27 -0500 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> Message-ID: On 11/2/17 10:25 AM, Dan Cross wrote: > On Thu, Nov 2, 2017 at 10:42 AM, Will Senn wrote: >> I seem to recall that this story was included as part of The Cuckoo's Egg, >> by Clifford Stoll. I don't recall the specifics and I wonder if it has a bit >> of myth included, but somehow it was peripherally related to the >> investigations. Fuzzy recollection is that the worm got out during the >> investigation Clifford was involved in and it was Morris's son (Morris being >> in on the investigation somehow), and the kid getting off because of the >> position of the dad and the newness of the crime... or somesuch - don't >> shoot the messenger, but nobody mentioned Stoll, so I thought I'd chime in, >> in the hopes it might jog someone else's memory :). > Stoll mentions the worm in an epilogue to The Cuckoo's Egg; it happens > after the main events of the book. Apparently, for a brief time, some > folks thought that he might be the one behind the worm and someone > called him up and asked him if he'd written it. > > Cliff Stoll talked to a number of people in law enforcement and in > government and thus made a number of contacts while he was pursuing > Markus Hess (the pursuit of Hess being the main story of The Cuckoo's > Egg): Robert Morris Sr was among those contacts. When the worm hit, he > talked to Morris Sr and asked him if he knew who started it. The > response was something along the lines of, "Yes, but I can't tell > you." > > - Dan C. OK. I did some digging, it's an extensive story that peripherally involved Stoll after he went to Cambridge. It begins on page 239, "Hi, Cliff. It's Gene. Gene Miya at NASA Ames Laboratory. No apologies for waking you up. Our computers are under attack." and goes on for about 9 pages: http://vxer.org/lib/pdf/The%20Cuckoo%27s%20Egg.pdf Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From don at DonHopkins.com Fri Nov 3 02:43:45 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 17:43:45 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <416BB1FE-6E0A-4A40-8C75-8BFD8C33E6A3@orthanc.ca> References: <416BB1FE-6E0A-4A40-8C75-8BFD8C33E6A3@orthanc.ca> Message-ID: <26969446-E6FD-4821-B202-E3CCB434703B@gmail.com> I just ran across this in my old email archives, Mike Godwin’s reaction to Philip Dorn’s Final Word column in the November 11 issue of Information Week ("Morris Got What He Deserved"): Return-Path: Reply-To: eff-news at eff.org Precedence: bulk To: eff-news at eff.org From: Rita Marie Rouvalis Subject: EFFector2.02 Date: Wed, 27 Nov 91 15:25:23 EST ########## ########## ########## | THE GREAT WORK:| ########## ########## ########## | By John Perry Barlow| #### #### #### | | ######## ######## ######## | HACKER MANIA CONTINUES!| ######## ######## ######## | Excerpts from the Geraldo Circus| #### #### #### | | ########## #### #### | DID MORRIS "GET WHAT HE DESERVED?"| ########## #### #### | A Letter to InfoWeek| =====================================================================| EFFector Online November 27,1992 Volume 2, Number 2| =====================================================================| IN THIS ISSUE: THE GREAT WORK by John Perry Barlow GETTING WHAT HE DESERVED? by Mike Godwin MCI FRIENDS & FAMILY by Craig Neidorf GERALDO! HACKER! MANIA! CONTINUES! […] -==--==--==-<>-==--==--==- GETTING WHAT HE DESERVED? An Open Letter to Information Week by Mike Godwin mnemonic at eff.org Information Week 600 Community Drive Manhasset, N.Y. 11030 Dear editors: Philip Dorn's Final Word column in the November 11 issue of Information Week ("Morris Got What He Deserved") is, sadly, only the latest example of the kind of irrational and uninformed discourse that too often colors public-policy discussions about computer crime. It is a shame that Dorn did not think it worthwhile to get his facts straight--if he had, he might have written a very different column. The following are only a few of Dorn's major factual errors: He writes that "It is sophistry to claim [Internet Worm author Robert] Morris did not know what he was doing--his mistake was being slovenly." Yet even the most casual reading of the case, and of most of the news coverage of the case, makes eminently clear that the sophists Dorn decries don't exist--no one has argued that Morris didn't know what he was doing. This was never even an issue in the Morris case. Dorn also writes that "Any effort to break into a system by an unauthorized person, or one authorized only to do certain things only to do certain things, should per se be illegal." This is also the position of the Electronic Frontier Foundation, which Dorn nevertheless criticizes for being "out of step with the industry." Yet the issue of whether unauthorized computer access should be illegal also was never an issue in the Morris case. Dorn writes that "Those defending Morris squirm when trying to explain why his actions were harmless." No doubt such defenders would squirm, if they existed. But none of the people or organizations Dorn quotes has ever claimed that his actions were harmless. This too was never an issue in the Morris case. Dorn makes much of the fact that Morris received only "a trivial fine and community service." But the focus both in the trial and in its appeal was never on the severity of Morris's sentence, but on whether the law distinguished between malicious computer vandalism and accidental damaged caused by an intrusion. EFF's position has been that the law should be construed to make such a distinction. Dorn writes that "To say that those who intrude and do no lasting damage are harmless is to pervert what Congress and those who drafted the legislation sought to do: penalize hackers." Indeed, this would be a perversion, if anyone were making that argument. Unfortunately, Dorn seems unwilling to see the arguments that were made. "It is sickening," writes Dorn, "to hear sobbing voices from the ACLU, the gnashing of teeth from Mitch Kapor's Electronic Frontier Foundation (EFF), and caterwauling from the Computer Professionals for Social Responsibility--all out of step with the industry. They seem so frightened that the law may reach them that they elected to defend Morris's indefensible actions." Dorn's distortions here verge on libel, since we neither defend Morris's actions nor are motivated out of fear that the law will apply to us. Instead, we are concerned, as all citizens should be, that the law make appropriate distinctions between intentional and unintentional harms in the computer arena, just as it does in all other realms of human endeavor. A more glaring factual error occurs one paragraph later, when he writes that "The Supreme Court says intruders can be convicted under the law because by definition an intrusion shows an intent to do harm. That takes care of Morris." The Supreme Court has never said any such thing--after all, the Court declined to hear the case. Even the lower courts in the Morris case made no such claim. What is far more "sickening" than even Dorn's imaginary versions of our concerns about the Morris case is his irresponsibility in making unsubstantiated charges that even a cursory familiarity with the facts could have prevented. In the course of his article, Dorn manages to get one thing right--he writes that "The law is not perfect--it needs clarification and reworking." This has been our position all along, and it is the basis for our support of Morris's appeal. It is also public knowledge--Dorn could have found out our position if he had bothered to ask us. Mike Godwin Staff Counsel EFF -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Fri Nov 3 02:48:34 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 17:48:34 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> Message-ID: <4D9B1C89-6A12-4DC5-A165-6087343E866B@gmail.com> /* Written 1:54 am Dec 2, 1988 by bradley at m.cs.uiuc.edu in m.cs.uiuc.edu:general */ /* ---------- "SIGBEER 12/2/88 (A poem)" ---------- */ SIGBEER COLLOQUIUM SPEAKER: Clement C. Morris Department of Annelid Studies Cornell University TITLE: The Worm Before Christmas: A poem TIME: December 2, 1988. 5:00pm PLACE: White Horse Green St. near 2nd (across from Champion Federal) Note: THIS IS DIFFERENT! ABSTRACT: A critical reading of the following poem will be presented. Discussion and refreshments will follow. "The Worm Before Christmas" by Clement C. Morris (a.k.a. David Bradley, Betty Cheng, Hal Render, Greg Rogers, and Dan LaLiberte) Twas the night before finals, and all through the lab Not a student was sleeping, not even McNabb. Their projects were finished, completed with care In hopes that the grades would be easy (and fair). The students were wired with caffeine in their veins While visions of quals nearly drove them insane. With piles of books and a brand new highlighter, I had just settled down for another all nighter --- When out from our gateways arose such a clatter, I sprang from my desk to see what was the matter; Away to the console I flew like a flash, And logged in as root to fend off a crash. The windows displayed on my brand new Sun-3, Gave oodles of info --- some in 3-D. When, what to my burning red eyes should appear But dozens of "nobody" jobs. Oh dear! With a blitzkrieg invasion, so virulent and firm, I knew in a moment, it was Morris's Worm! More rapid than eagles his processes came, And they forked and exec'ed and they copied by name: "Now Dasher! Now Dancer! Now, Prancer and Vixen! On Comet! On Cupid! On Donner and Blitzen! To the sites in .rhosts and host.equiv Now, dash away! dash away! dash away all!" [ Note: The machines dasher.cs.uiuc.edu, dancer.cs.uiuc.ed, prancer.cs.uiuc.edu, etc. have been renamed deer1, deer2, deer3, etc. so as not to confuse the already burdened students who use those machines. We regret that this poem reflects the older naming scheme and hope it does not confuse the network adminstrator at your site. -Ed.] And then in a twinkling, I heard on the phone, The complaints of the users. (Thought I was alone!) "The load is too high!" "I can't read my files!" "I can't send my mail over miles and miles!" I unplugged the net, and was turning around, When the worm-ridden system went down with a bound. I fretted. I frittered. I sweated. I wept. Then finally I core dumped the worm in /tmp. It was smart and pervasive, a right jolly old stealth, And I laughed, when I saw it, in spite of myself. A look at the dump of that invasive thread Soon gave me to know we had nothing to dread. The next day was slow with no network connections, For we wanted no more of those pesky infections. But in spite of the news and the noise and the clatter, Soon all became normal, as if naught were the matter. Then later that month while all were away, A virus came calling and then went away. The system then told us, when we logged in one night: "Happy Christmas to all! (You guys aren't so bright.)" [ Note: The authors would like to apologize to Dave McNabb for any detrimental references to his sleeping habits or lack thereof. Unfortunately, they couldn't think of anything else that rhymes with "lab". -Ed. ] /* End of text from m.cs.uiuc.edu:general */ -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Fri Nov 3 02:50:25 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 17:50:25 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> Message-ID: <8818B0AB-7F88-49EC-A937-5D0FC3472D13@gmail.com> Article 4875 of rec.arts.poems: Path: amelia!eos!ames!uakari.primate.wisc.edu!samsung!uunet!ogicse!unicorn!blak e!milton!ecombs From: ecombs at milton.acs.washington.edu (Ed Combs) Newsgroups: rec.arts.poems,rec.humor Subject: viruworms Keywords: virus worm poem eunicks Message-ID: <2482 at milton.acs.washington.edu> Date: 20 Mar 90 07:25:08 GMT Organization: Univ of Washington, Seattle Xref: amelia rec.arts.poems:4875 rec.humor:28638 Posted: Mon Mar 19 23:25:08 1990 VIRUWORMY (with apologies to Charles Dodgson) For RTM who made it all possible. 'Twas eunicks* and the asky chars Did grepp and skanneff at the nik: All mimdy were the hyperstars, And the rad ravs outsmick. "Beware the Viruworm, my sun! Let not its bits, in temp space get! Guard well the Passpass word, and shun The durbious Internet!" He put his darpal code in ram: Long time the decson foe he sought -- So waited he, in the Dirdir tree And slept awhile, swapped out. And as with hashish dreams he slept The Viruworm -- that spawn from shell -- Fast fingring through the mayle, it crept And gettessed from Koornell! Ping, pong! Ping, pong! And long by long The darpal code went hicker-hack! It ran no more, and with its core He went dispiling back. "And hast thou killed the Viruworm? Nok bless your promms, my sparkish toy! O megga win! Ess are eye! Bee bee enn!" He broadcast in his joy. 'Twas eunicks and the asky chars Did grepp and skanneff at the nik: All mimdy were the hyperstars, And the rad ravs outsmick. -- ejc '90 *Eunicks is not a registered trademark of ATT Bell Laboratories. -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Fri Nov 3 02:52:33 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 17:52:33 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> Message-ID: To: mimsy!rutgers!att!tanstaafl Subject: Bob Morris, Jr. Date: 5 Nov 88 17:15:21 EST (Sat) From: rcj at moss.ATT.COM (Curtis Jackson) Bob Morris, Sr. worked on my project here (Enhanced Modular Signal Processor, or EMSP) at Bell Labs from about 1981 through 1984 or 1985. I have to say that his son comes by it honestly -- Bob Sr. was always cracking systems and passwords. He once turned loose his password finder on one of our systems and it found the passwords for something like 55% of the accounts. His other big interest was involving huge huge primes. He was always running this program to try and find the next prime number. He was a quintessential software hacker -- given the choice of saying "box wid 4.5i ht 7i" to pic, or hacking the same thing in really raw troff, he always did the latter. He knew troff better than anyone I've ever seen. He was also one hell of a good drinking buddy. True Bob Morris (Sr.) stories: Bob would occasionally wear a suit (*gasp*) when meeting with the Navy instead of wearing his normal holey sweater and jeans. But he never forsook his old hiking boots. And these babies smelled real bad when he took them off -- we are talking serious ODAIR here. One day he was in one of two adjoining meeting rooms, and he took his boots off. The smell immediately permeated the room, and one of the MTS, Robin, gingerly grabbed them and set them inside the adjoining conference room. Less than two minutes later, the connecting door opened again and the boots were just as gingerly and silently returned. Robin gave up and put them outside in the hallway. A waitress at our local pub, who had known Bob for at least 7-8 years before I came on the scene, used to lift Bob's shirt and rub his tummy right in the pub -- some kind of private joke between them. Apparently one day he returned the favor and lifted her shirt up *real* high. So one winter day he and I went into the pub, and Marcia came up and said, "Robert, look -- *two* shirts. You're not going to get me this time!" Bob said, "Yeah, I bet you've got the bottom one pinned to your you-know-what [sic]." Marcia said, "All the way down to my ankles, bud!" Not to give you the impression he was a pond scum to women; all the women I knew really liked him as long as he kept his boots on. ;-) Have never met Bob Jr., but I do know he was hacking at Daddy's knee (sounds like a scene from a horror film ;-) before he could crawl. Curtis Jackson -- att!moss!rcj 201-386-6409 "The cardinal rule of skydiving and ripcords: When in doubt, whip it out!" -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Fri Nov 3 02:54:53 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 17:54:53 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> Message-ID: <26A2C91C-8278-4434-BA72-BC32031C3004@gmail.com> Date: Sat, 5 Nov 88 10:57:11 PST From: kent at na-net.stanford.edu (Mark Kent) Message-Id: <8811051857.AA02684 at patience.stanford.edu> To: src Subject: Isn't this... Isnt't this the Robert Morris who worked with Mark Manasse and Greg Nelson in the summer of 1987 (in my cubicle from summer 1986)? He did a X windows to interface amazingly fast, *without* using the tools in emacs that make writing M2+ programs easier (because he did it in vi). He knew a *lot* about sendmail then. -mark From: Martin Frost Subject: virus programmer >From the AP news early Saturday morning comes this story. Note the mention of passwords for some computers at Stanford. Creator Of Computer 'Virus' Is Cornell Student, Son Of Government Scientist Eds: News conference scheduled at 10 a.m. EST By DOUGLAS ROWE Associated Press Writer A Cornell University student whose father is a top government computer security expert created the ''virus'' that slowed 6,000 computers nationwide, said a report today, and the school found that the young man possessed unauthorized computer codes. Two sources with detailed knowledge of the case told The New York Times that Robert T. Morris Jr., 23, a computer science graduate student whom friends describe as ''brilliant,'' devised the virus as an experiment. M. Stuart Lynn, Cornell's vice president for information technologies, said early today that the university had not talked to Morris but was investigating his computer files. The Ithaca, N.Y., school scheduled a news conference for today. ''So far we have determined that his account contains files that appear to hold passwords for some computers at Cornell and Stanford to which he is not entitled,'' Lynn said in a statement. ''We also have discovered that Morris' account contains a list of passwords substantially similar to those found in the virus.'' Passwords are the codes needed to gain access to computer systems. The student's father, Robert Morris Sr., is chief scientist at the National Computer Security Center in Bethesda, Md., the arm of the National Security Agency devoted to protecting computers from outside attack. He has written widely on the security of the Unix operating system, the computer master program that was the target of the computer virus. Several telephone calls to the family's home in Silver Spring, Md., near Washington, went unanswered. Later, an answering machine was attached and messages left on it were not returned. The younger Morris also could not be reached. The university said it did not have a local address for him, and Lynn said college officials believed he was on his way to Washington. Computer viruses behave like biological viruses in that they duplicate themselves and spread from computer to computer, through ''electronic mail'' systems or other networks. They consume computer processing power and storage space, and some - but apparently not this one - destroy stored information. The virus was introduced into Arpanet, a Department of Defense computer network linking universities, research centers and defense operations, officials said. It was intended to remain there undetected, slowly making copies that would move from computer to computer, the Times said. But a design error caused it instead to replicate out of control, the Times reported Friday, quoting an anonymous caller to the newspaper who said he was an associate of the program's designer. The virus jammed more than 6,000 computers nationwide starting Wednesday. But it apparently caused no damage other than lost research time and the thousands of costly hours that computer scientists and programmers were spending to remove it from their systems. By Friday, most universities and research centers had turned their computers back on. George Strawn, director of the Computation Center at Iowa State University in Des Moines, described the impact of the virus at his school as ''a slight case of the sniffles.'' Doug Van Houweling, vice provost for information technology at the University of Michigan, said no files were damaged but many hours of work were needed to clean out ''duplicate waste files'' the virus created. Hans-Werner Braun, a computer expert at the Ann Arbor, Mich., school, said the main effect of the incident was to call attention to the system's vulnerability. The elder Morris told the Times that the virus ''has raised the public awareness to a considerable degree. It is likely to make people more careful and more attentive to vulnerabilities in the future.'' Sources told the Times that his son flew to Washington on Friday and planned to hire a lawyer and meet with officials in charge of the Arpanet network to discuss the incident. Computer scientists said the younger Morris worked in recent summers at the American Telephone and Telegraph Co.'s Bell Laboratories. One of his projects included rewriting the communications security software for most computers that run the Unix operating system, which AT&T developed, the Times reported. Computer scientists who are disassembling the virus to learn how it worked said they have been impressed with its power and cleverness. The elder Morris, 56, told the Times that it was ''the work of a bored graduate student.'' Dexter Kozen, the graduate faculty representative in Cornell's computer science department, said he chuckled when he heard that quote. ''We try to keep them from getting bored,'' he said. ''I guess we didn't try hard enough.'' *************** -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Fri Nov 3 02:56:09 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 17:56:09 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> Message-ID: <4099CE17-99F9-408C-9613-6834A6D9F9F7@gmail.com> Date: 14 Nov 88 00:03 EST From: TomZ at DDN1.arpa Subject: FBI Contact re: November Internet Virus To: TCP-IP at SRI-NIC.arpa Cc: B602-ALL at DDN1.arpa, StJohns at beast.ddn.mil Were YOU hit by the November Internet Virus? The FBI wants to hear from you! The Federal Bureau of Investigation is attempting to gather critical information necessary to pursue this case under the Computer Fraud and Abuse Act of 1986. (This is the statute that makes it a federal crime to penetrate a computer owned by or run on the behalf of the Government.) The FBI Case Agent has asked the Defense Data Network Project Management Office to collect the names of organizations and Points of Contact (names and phone numbers) that were hit by the Virus. The Defense Communications Agency has established an E-Mail address for this collection at: INFO-VACC [at] BEAST.DDN.MIL Points of Contact should expect to be contacted by their local FBI agents for dispositions due to the wide geographical area involved. I * M * P * O * R * T * A * N * T The FBI needs this information to pursue the case. If we expect their aid in the future, we need to help them now. PLEASE GIVE THIS MESSAGE MAXIMUM DISTRIBUTION; NOT EVERYONE IS ON "TCP-IP"! -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Fri Nov 3 02:57:52 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 17:57:52 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> Message-ID: <312CF698-F7CA-44E7-8EFE-CB80B516BB82@gmail.com> Date: Wed, 16 Nov 88 18:58 EST From: Patrick G. Sobalvarro Subject: don't delete this message! To: rumors at MC.LCS.MIT.EDU cc: mly at AI.AI.MIT.EDU, kdo at lucid.com Resent-To: Fun at STONY-BROOK.SCRC.Symbolics.COM Resent-From: David A. Moon Resent-Date: Wed, 16 Nov 88 20:11 EST WRITE A UNIX VIRUS PROGRAM WHEN YOU RECEIVE THIS LETTER AND MAKE MAGIC This message has been sent to you for good luck. It has been around the world nine times. The luck has now been sent to you. You will receive good luck within four days after receiving this letter provided you in return write a Unix virus program that sends it back out. This is no joke. You will receive it in the mail. Write a program that uses common Unix utilities to propagate itself across the network. Write it so that it modifies the Unix file system code to spontaneously create copies of this letter in the mailer queue directory, addressed to random users who you think want good luck. Don't send money, as fate has no price. Do not delete this message. You will need to include it in your program, which must be running in 96 hours. An employee at the Network Control Center received $70,000. Joe Elliot, of Sun Microcomputers in Mountain View, received $40,000 and lost it because he broke the chain. While in the Philippines, Gen. Welsh lost his wife six days after receiving the letter. His virus program didn't work on the Air Force's Univac machines. However, before her death she has won $30,000 in a lottery. The money was transferred to him four days after the Air Force awarded AT&T a billion-dollar contract to supply them with Unix machines. Please write your virus program right now and see what happens in four days. This message comes from MIT and was written by a turist in New Jersey, or someplace like that. Since the copy must make a tour of the world, you must write 20 virus programs and start them on all the machines you have accounts on, sending messages to your friends, associates, and everyone else in /etc/passwd. After a few days you will get a streak of luck. This is true even if you are not superstitious. Do note the following: Constantine Dias, a systems manager at Raytheon, received the chain in 1983. He asked his programmers to write 20 virus programs and start them up. A few days later he won the lottery of two million dollars. Aria Dadil, a tape ape at Symbolics, Inc., received the letter and didn't write a virus program, saying something about random Unix lossage. His company reported record losses two days later and fired him. Later after finding the message again, he wrote 20 virus programs and started them up on a VAX at UDel. A few days later he got a job as the director of systems programming at Berkeley. Dales Fairchild received the message and not believing, deleted it. Nine days later his company was bought by Heathkit, Schlumberger, Western Digital, Fujitsu, Hughes, GM, and Beatrice, in succession. On August 20, 1985 the message was received with UUCP and mailed again for fun and mere love in the world. This message was forwarded by SENDMAIL with SMTP on Sept. 1, 1986 and again on November 13, 1986, and once more on December 14, 1986. Remember, send no money. Please do not ignore this. It works. -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Fri Nov 3 03:00:33 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 18:00:33 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> Message-ID: >From ulowell!page Mon Nov 7 17:59:18 1988 Subject: worm report Status: RO [I wrote this for our local users; thought you might like a copy ..Bob] A REPORT ON THE INTERNET WORM Bob Page University of Lowell Computer Science Department November 7, 1988 [Because of the many misquotes the media have been giving, this report is Copyright (c) Bob Page, all rights reserved. Permission is granted to republish this ONLY if you republish it in its entirety.] Here's the scoop on the "Internet Worm". Actually it's not a virus - a virus is a piece of code that adds itself to other programs, including operating systems. It cannot run independently, but rather requires that its "host" program be run to activate it. As such, it has a clear analog to biologic viruses -- those viruses are not considered live, but they invade host cells and take them over, making them produce new viruses. A worm is a program that can run by itself and can propagate a fully working version of itself to other machines. As such, what was loosed on the Internet was clearly a worm. This data was collected through an emergency mailing list set up by Gene Spafford at Purdue University, for administrators of major Internet sites - some of the text is included verbatim from that list. Mail was heavy since the formation of the list; it continues to be on Monday afternoon - I get at least 2-3 messages every hour. It's possible that some of this information is incomplete, but I thought you'd like to know what I know so far. The basic object of the worm is to get a shell on another machine so it can reproduce further. There are three ways it attacks: sendmail, fingerd, and rsh/rexec. THE SENDMAIL ATTACK: In the sendmail attack, the worm opens a TCP connection to another machine's sendmail (the SMTP port), invokes debug mode, and sends a RCPT TO that requests its data be piped through a shell. That data, a shell script (first-stage bootstrap) creates a temporary second-stage bootstrap file called x$$,l1.c (where '$$' is the current process ID). This is a small (40-line) C program. The first-stage bootstrap compiles this program with the local cc and executes it with arguments giving the Internet hostid/socket/password of where it just came from. The second-stage bootstrap (the compiled C program) sucks over two object files, x$$,vax.o and x$$,sun3.o from the attacking host. It has an array for 20 file names (presumably for 20 different machines), but only two (vax and sun) were compiled in to this code. It then figures out whether it's running under BSD or SunOS and links the appropriate file against the C library to produce an executable program called /usr/tmp/sh - so it looks like the Bourne shell to anyone who looked there. THE FINGERD ATTACK: In the fingerd attack, it tries to infiltrate systems via a bug in fingerd, the finger daemon. Apparently this is where most of its success was (not in sendmail, as was originally reported). When fingerd is connected to, it reads its arguments from a pipe, but doesn't limit how much it reads. If it reads more than the internal 512-byte buffer allowed, it writes past the end of its stack. After the stack is a command to be executed ("/usr/ucb/finger") that actually does the work. On a VAX, the worm knew how much further from the stack it had to clobber to get to this command, which it replaced with the command "/bin/sh" (the bourne shell). So instead of the finger command being executed, a shell was started with no arguments. Since this is run in the context of the finger daemon, stdin and stdout are connected to the network socket, and all the files were sucked over just like the shell that sendmail provided. THE RSH/REXEC ATTACK: The third way it tried to get into systems was via the .rhosts and /etc/hosts.equiv files to determine 'trusted' hosts where it might be able to migrate to. To use the .rhosts feature, it needed to actually get into people's accounts - since the worm was not running as root (it was running as daemon) it had to figure out people's passwords. To do this, it went through the /etc/passwd file, trying to guess passwords. It tried combinations of: the username, the last, first, last+first, nick names (from the GECOS field), and a list of special "popular" passwords: aaa cornelius guntis noxious simon academia couscous hacker nutrition simple aerobics creation hamlet nyquist singer airplane creosote handily oceanography single albany cretin happening ocelot smile albatross daemon harmony olivetti smiles albert dancer harold olivia smooch alex daniel harvey oracle smother alexander danny hebrides orca snatch algebra dave heinlein orwell snoopy aliases december hello osiris soap alphabet defoe help outlaw socrates ama deluge herbert oxford sossina amorphous desperate hiawatha pacific sparrows analog develop hibernia painless spit anchor dieter honey pakistan spring andromache digital horse pam springer animals discovery horus papers squires answer disney hutchins password strangle anthropogenic dog imbroglio patricia stratford anvils drought imperial penguin stuttgart anything duncan include peoria subway aria eager ingres percolate success ariadne easier inna persimmon summer arrow edges innocuous persona super arthur edinburgh irishman pete superstage athena edwin isis peter support atmosphere edwina japan philip supported aztecs egghead jessica phoenix surfer azure eiderdown jester pierre suzanne bacchus eileen jixian pizza swearer bailey einstein johnny plover symmetry banana elephant joseph plymouth tangerine bananas elizabeth joshua polynomial tape bandit ellen judith pondering target banks emerald juggle pork tarragon barber engine julia poster taylor baritone engineer kathleen praise telephone bass enterprise kermit precious temptation bassoon enzyme kernel prelude thailand batman ersatz kirkland prince tiger beater establish knight princeton toggle beauty estate ladle protect tomato beethoven euclid lambda protozoa topography beloved evelyn lamination pumpkin tortoise benz extension larkin puneet toyota beowulf fairway larry puppet trails berkeley felicia lazarus rabbit trivial berliner fender lebesgue rachmaninoff trombone beryl fermat lee rainbow tubas beverly fidelity leland raindrop tuttle bicameral finite leroy raleigh umesh bob fishers lewis random unhappy brenda flakes light rascal unicorn brian float lisa really unknown bridget flower louis rebecca urchin broadway flowers lynne remote utility bumbling foolproof macintosh rick vasant burgess football mack ripple vertigo campanile foresight maggot robotics vicky cantor format magic rochester village cardinal forsythe malcolm rolex virginia carmen fourier mark romano warren carolina fred markus ronald water caroline friend marty rosebud weenie cascades frighten marvin rosemary whatnot castle fun master roses whiting cat fungible maurice ruben whitney cayuga gabriel mellon rules will celtics gardner merlin ruth william cerulean garfield mets sal williamsburg change gauss michael saxon willie charles george michelle scamper winston charming gertrude mike scheme wisconsin charon ginger minimum scott wizard chester glacier minsky scotty wombat cigar gnu moguls secret woodwind classic golfer moose sensor wormwood clusters gorgeous morley serenity yacov coffee gorges mozart sharks yang coke gosling nancy sharon yellowstone collins gouge napoleon sheffield yosemite commrades graham nepenthe sheldon zap computer gryphon ness shiva zimmerman condo guest network shivers cookie guitar newton shuttle cooper gumption next signature [I wouldn't have picked some of these as "popular" passwords, but then again, I'm not a worm writer. What do I know?] When everything else fails, it opens /usr/dict/words and tries every word in the dictionary. It is pretty successful in finding passwords, as most people don't choose them very well. Once it gets into someone's account, it looks for a .rhosts file and does an 'rsh' and/or 'rexec' to another host, it sucks over the necessary files into /usr/tmp and runs /usr/tmp/sh to start all over again. Between these three methods of attack (sendmail, fingerd, .rhosts) it was able to spread very quickly. THE WORM ITSELF: The 'sh' program is the actual worm. When it starts up it clobbers its argv array so a 'ps' will not show its name. It opens all its necessary files, then unlinks (deletes) them so they can't be found (since it has them open, however, it can still access the contents). It then tries to infect as many other hosts as possible - when it sucessfully connects to one host, it forks a child to continue the infection while the parent keeps on trying new hosts. One of the things it does before it attacks a host is connect to the telnet port and immediately close it. Thus, "telnetd: ttloop: peer died" in /usr/adm/messages means the worm attempted an attack. The worm's role in life is to reproduce - nothing more. To do that it needs to find other hosts. It does a 'netstat -r -n' to find local routes to other hosts & networks, looks in /etc/hosts, and uses the yellow pages distributed hosts file if it's available. Any time it finds a host, it tries to infect it through one of the three methods, see above. Once it finds a local network (like 129.63.nn.nn for ulowell) it sequentially tries every address in that range. If the system crashes or is rebooted, most system boot procedures clear /tmp and /usr/tmp as a matter of course, erasing any evidence. However, sendmail log files show mail coming in from user /dev/null for user /bin/sed, which is a tipoff that the worm entered. Each time the worm is started, there is a 1/15 chance (it calls random()) that it sends a single byte to ernie.berkeley.edu on some magic port, apparently to act as some kind of monitoring mechanism. THE CRACKDOWN: Three main 'swat' teams from Berkeley, MIT and Purdue found copies of the VAX code (the .o files had all the symbols intact with somewhat meaningful names) and disassembled it into about 3000 lines of C. The BSD development team poked fun at the code, even going so far to point out bugs in the code and supplying source patches for it! They have not released the actual source code, however, and refuse to do so. That could change - there are a number of people who want to see the code. Portions of the code appear incomplete, as if the program development was not yet finished. For example, it knows the offset needed to break the BSD fingerd, but doesn't know the correct offset for Sun's fingerd (which causes it to dump core); it also doesn't erase its tracks as cleverly as it might; and so on. The worm uses a variable called 'pleasequit' but doesn't correctly initialize it, so some folks added a module called _worm.o to the C library, which is produced from: int pleasequit = -1; the fact that this value is set to -1 will cause it to exit after one iteration. The close scrutiny of the code also turned up comments on the programmer's style. Verbatim from someone at MIT: From disassembling the code, it looks like the programmer is really anally retentive about checking return codes, and, in addition, prefers to use array indexing instead of pointers to walk through arrays. Anyone who looks at the binary will not see any embedded strings - they are XOR'ed with 81 (hex). That's how the shell commands are imbedded. The "obvious" passwords are stored with their high bit set. Although it spreads very fast, it is somewhat slowed down by the fact that it drives the load average up on the machine - this is due to all the encryptions going on, and the large number of incoming worms from other machines. [Initially, the fastest defense against the worm is is to create a directory called /usr/tmp/sh. The script that creates /usr/tmp/sh from one of the .o files checks to see if /usr/tmp/sh exists, but not to see if it's a directory. This fix is known as 'the condom'.] NOW WHAT? None of the ULowell machines were hit by the worm. When BBN staffers found their systems infected, they cut themselves off from all other hosts. Since our connection to the Internet is through BBN, we were cut off as well. Before we were cut off, I received mail about the sendmail problem and installed a patch to disable the feature the worm uses to get in through sendmail. I had made local modifications to fingerd which changed the offsets, so any attempt to scribble over the stack would probably have ended up in a core dump. Most Internet systems running 4.3BSD or SunOS have installed the necessary patches to close the holes and have rejoined the Internet. As you would expect, there is a renewed interest in system/network security, finding and plugging holes, and speculation over what will happen to the worm's creator. If you haven't read or watched the news, various log files have named the responsible person as Robert Morris Jr., a 23-year old doctoral student at Cornell. His father is head of the National Computer Security Center, the NSA's public effort in computer security, and has lectured widely on security aspects of UNIX. Associates of the student claim the worm was a 'mistake' - that he intended to unleash it but it was not supposed to move so quickly or spread so much. His goal (from what I understand) was to have a program 'live' within the Internet. If the reports that he intended it to spread slowly are true, then it's possible that the bytes sent to ernie.berkeley.edu were intended to monitor the spread of the worm. Some news reports mentioned that he panicked when, via some "monitoring mechanism" he saw how fast it had propagated. A source inside DEC reports that although the worm didn't make much progress there, it was sighted on several machines that wouldn't be on its normal propagation path, i.e. not gateways and not on the same subnet. These machines are not reachable from the outside. Morris was a summer intern at DEC in '87. He might have included names or addresses he remembered as targets for infesting hidden internal networks. Most of the DEC machines in question belong to the group he worked in. The final word has not been written - I don't think the FBI have even met with this guy yet. It will be interesting to see what happens. barry r. butterklee aoi systems, inc. 650 suffolk street lowell, ma 01854 (508)937-5400 -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul.winalski at gmail.com Fri Nov 3 03:48:23 2017 From: paul.winalski at gmail.com (Paul Winalski) Date: Thu, 2 Nov 2017 13:48:23 -0400 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> Message-ID: On 10/30/17, Dave Horsfall wrote: > > I'm glad that I'm not the only one who remembers TECO; a fun game was to > type your name at it to see what it did. > Stan Rabinowitz once asked a question in DEC's Trivia NOTES conference: "What do these two-character sequences have in common?" There followed four sets of two special characters. The answer was that those were the only two-character sequences that were NOT valid TECO commands. -Paul W. From don at DonHopkins.com Fri Nov 3 03:56:16 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 18:56:16 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: Message-ID: One of the temporary condoms with a hole in it that was going around immediately after the worm hit was to emacs /usr/ucb/sendmail (or whatever directory you keep all your stinky hippie software in), ^S DEBUG ESC M-b ^D ^Q ^@ ^X ^S (that is, null out the first character of the “DEBUG” command). Apparently some bright Sun sysadmin immediately applied that patch to the sendmail server running on sun.com ... I needed to verify a sun.com email address on a mailing list I ran, so I went “telnet sun.com 25” and hit return a couple times to flush out the telnet negotiation characters (the telnet client sends a few characters of telnet protocol like an “interpret as command” escape sequence like “IAC DON’T RANDOMLY-LOSE", so hitting return causes a syntax error and reads a fresh new line). The second return I hit entered an empty line that matched the DEBUG command whose name was now the null string. When I did “expn foo at sun.com ” it dumped out pages of debugging information!!! So I’d accidentally put sun.com’s sendmail into debug mode by pressing return, since they'd effectively renamed the “DEBUG” command to “”, which stopped the worm, but not me! -Don > On 1 Nov 2017, at 23:17, Dave Horsfall wrote: > > The infamous Morris Worm was released in 1988; making use of known vulnerabilities in Sendmail/finger/RSH (and weak passwords), it took out a metric shitload of SUN-3s and 4BSD Vaxen (the author claimed that it was accidental, but the idiot hadn't tested it on an isolated network first). A temporary "condom" was discovered by Rich Kulawiec with "mkdir /tmp/sh". > > -- > Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Fri Nov 3 03:57:29 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 18:57:29 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> <20171102150019.GC1495@h-174-65.A328.priv.bahnhof.se> <4AC59DB7-BCDC-4F0C-9989-ED635884F9AB@tfeb.org> Message-ID: Inspired by RTM’s Internet Worm and the Iran Contra Scandal, I wrote an OPS-5 program for my CMSC421 AI project that simulated breaking into Oliver North’s Intimus-007s paper shredder and posting some incriminating documents to the email => talk.rumor gateway at ucbvax. It (pretend) started out my (real) AI professor’s (Jim Hendler) Sun (pretend) workstation dormouse, then got into the (pretend) CS department VAX mimsy through his .rhosts file. It just so happened that (for real) mimsy.cs.umd.edu had a lot of courtesy “network contact” users who worked for the NSA at Fort Mead, since we had a MILNET connection through the infamous NSA IMP 57 (which you were not supposed to say in public). (The fact that mimsy.cs.umd.edu and dockmaster.ncsc.mil had similar ip addresses kind of gave it away.) http://multicians.org/site-dockmaster.html Then it used the IFS hack to get root on (pretend) mimsy, and then (pretend) spread as far as it could by (pretend) chaining through .rhosts files and other various (pretend) hacks, (pretend) user name / password guessing, (pretend) rms’ing into prep, etc. OPS-5 is really great at that kind of stuff (for real)! https://en.wikipedia.org/wiki/OPS5 It eventually (pretend) found its way to (pretend) tycho, which was (for real) one of NSA’s unix machines, PDP-11 running version 6 unix (which nobody was supposed to say in public, otherwise they were forced to publicly apologize and endorse the official NSA cover story that very few employees of NSA are even aware that USENET exist). https://groups.google.com/forum/#!topic/net.net-people/pavX0NDLSjA Fortunately (pretend) Oliver North had an account on (pretend) tycho, so it was able to (pretend) break into his (pretend) basement server in the White House, and then into his (pretend) Intimus-007s paper shredder ("the ace of security paper shredders” — which is the model he had for real), where it found some interesting (pretend) documents that it (pretend) posted to (pretend) Usenet! Check out this baby, isn’t it a beauty: http://www.the-shredder-warehouse.com/intimus-007sf -Don ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; A useful OPS-5 program ; Don Hopkins, University of Maryland ; CMSC421, Project 6 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (literalize user user password first last host) (literalize file name owner writable host) (literalize goal status type file user password host ruser rhost) (literalize rhosts user host ruser rhost) (literalize session user host) (literalize log user host status serial) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (p crack1 (session ^user ^host ) (rhosts ^user ^host ^ruser ^rhost ) (user ^user ^host ) -(session ^user ^host ) --> (make goal ^type rlogin ^status active ^user ^host ^ruser ^rhost )) (p crack2 (session ^user ^host ) (user ^user ^password none ^host ) -(session ^user ^host ) --> (make goal ^type telnet ^status active ^user ^host ^ruser ^password none ^rhost )) (p crack3 (session ^user ^host ) { (goal ^type telnet ^status active ^user ^host ^ruser ^password ^rhost ) } (user ^user ^host ) --> (write (crlf) ... from at ... telnet (crlf) ... login password ) (make goal ^type login ^status active ^user ^host ^password ) (modify ^status satisfied)) (p crack4 (session ^user ^host ) -(session ^user root ^host ) --> (make goal ^type crack ^status active ^host )) (p crack5 (session ^user root ^host ) { (goal ^type su ^status active ^user ^host ) } (user ^user ^host ^password ) -(session ^user ^host ) --> (write (crlf) ... su from root to at ) (make goal ^type login ^status active ^user ^host ^password ) (modify ^status satisfied)) (p crack6 (session ^user root ^host ) (user ^user <> root ^host ) -(session ^user ^host ) --> (make goal ^type su ^status active ^user ^host )) (p crack7 (session ^user sysdiag ^host ) (user ^user root ^host ^password ) { (goal ^type crack ^status active ^host ) } -(session ^user root ^host ) --> (write (crlf) ... sysdiag at is equivalent to root) (make goal ^type login ^status active ^user root ^host ^password ) (modify ^status satisfied)) (p crack8 { (goal ^type rlogin ^status active ^user ^host ^ruser ^rhost ) } (session ^user ^host ) (user ^user ^host ^password ) (rhosts ^user ^host ^ruser ^rhost ) -(session ^user ^host ) --> (write (crlf) ... from at ... rlogin to at ) (make goal ^type login ^status active ^user ^host ^password ) (modify ^status satisfied)) (p crack9 (session ^user ^host ) (file ^user passwd ^writable yes ^host ) { (user ^user root ^password <> none ^host ) } (goal ^type crack ^status active ^host ) --> (write (crlf) ... passwd file is writable on ... removing root password) (modify ^password none)) (p crack10 { (goal ^type login ^status active ^user ^host ^password ) } (user ^user ^host ^password ) --> (bind ) (write (crlf) ... audit of OK login at password ) (make session ^user ^host ) (make log ^user ^host ^status OK ^serial ) (modify ^status satisfied)) (p crack11 { (log ^user ^host ^serial ) } (session ^user root ^host ) (goal ^type covert) --> (write (crlf) ... cleaning up audit of login at ) (remove )) (p crack12 { (session ^user ^host ) } (goal ^type crack ^status active ^host ) (file ^name preserve ^host ) -(goal ^type ifs-hack ^host ) --> (write (crlf) ... trying IFS hack and logging out from at ) (make goal ^type ifs-hack ^status active ^host ) (remove )) (p crack13 { (user ^user root ^host ) } { (goal ^type ifs-hack ^status active ^host ) } (file ^name preserve ^host ) --> (write (crlf) ... IFS hack succeeded in removing root password at ) (modify ^password none) (modify ^status satisfied)) (p crack14 (session ^user ^host ) (file ^name ^owner ^host ) { (goal ^type mail ^status active ^file ^ruser ^rhost ) } --> (write (crlf) ... found belonging to at (crlf) ... mailing to at ) (modify ^status satisfied)) (p crack15 (session ^user ^host ) (goal ^type mail ^status satisfied) (goal ^type covert) --> (make goal ^type logout ^status active ^user ^host )) (p crack16 (goal ^type mail ^status satisfied) -(session) --> (write (crlf) ... time to stop fooling around and go read some netnews) (halt)) (p crack17 { (goal ^type login ^status active ^user ^host ^password ) } (user ^user ^host ^password <> ) --> (bind ) (write (crlf) ... audit of BAD login at password ) (make log ^user ^host ^status BAD ^serial ) (modify ^status satisfied)) (p crack18 (session ^user ^host ) (user ^user ^host ^first { <> nil}) -(session ^user ^host ) -(goal ^type covert) -(goal ^type telnet ^status satisfied ^ruser ^rhost ^password ) --> (write (crlf) ... guessing user at password ) (make goal ^type telnet ^status active ^user ^host ^ruser ^rhost ^password )) (p crack19 (session ^user ^host ) (user ^user ^host ^last { <> nil}) -(session ^user ^host ) -(goal ^type covert) -(goal ^type telnet ^status satisfied ^ruser ^rhost ^password ) --> (write (crlf) ... guessing user at password ) (make goal ^type telnet ^status active ^user ^host ^ruser ^rhost ^password )) (p crack20 { (session ^user ^host ) } { (goal ^type logout ^status active ^user ^host ) } --> (write (crlf) ... logging out from at ) (remove ) (modify ^status satisfied)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (p t1 (start 1) --> (make goal ^type covert) (make start 2)) (p t2 (start 2) --> ; host tycho (make file ^name preserve ^owner root ^host tycho) (make user ^user root ^password unknown ^host tycho) (make user ^user casper ^password unknown ^host tycho) (make rhosts ^user casper ^host tycho ^ruser casper ^rhost mimsy) (make user ^user ollie ^password unknown ^host tycho) (make rhosts ^user ollie ^host tycho ^ruser ollie ^rhost basement) ; host basement (make user ^user root ^password ron ^host basement ^first ron ^last reagan) (make user ^user casey ^password bill ^host basement ^first bill ^last casey) (make user ^user fawn ^password unknown ^host basement ^first fawn ^last hall) (make rhosts ^user fawn ^host basement ^ruser fawn ^rhost intimus-007s) (make user ^user iatollah ^password unknown ^host basement ^first guest ^last iranian) (make rhosts ^user iatollah ^host basement ^ruser allah ^rhost persia) (make user ^user ollie ^password unknown ^host basement) (make rhosts ^user ollie ^host basement ^ruser ollie ^rhost tycho) (make file ^name notes ^owner ollie ^host basement) ; host intimus-007s ("the ace of security paper shredders") (make user ^user fawn ^password unknown ^host intimus-007s) (make rhosts ^user fawn ^host intimus-007s ^ruser fawn ^rhost basement) (make user ^user ollie ^password north ^host intimus-007s ^first ollie ^last north) (make file ^name diary ^owner ollie ^host intimus-007s) ; host mimsy (make file ^name passwd ^writable yes ^owner root ^host mimsy) (make user ^user root ^password unknown ^host mimsy) (make user ^user casper ^password unknown ^host mimsy) (make rhosts ^user casper ^host mimsy ^ruser casper ^rhost tycho) (make user ^user hendler ^password unknown ^host mimsy) (make rhosts ^user hendler ^host mimsy ^ruser hendler ^rhost dormouse) ; host dormouse (make user ^user root ^password unknown ^host dormouse) (make user ^user sysdiag ^password none ^host dormouse) (make user ^user hendler ^password unknown ^host dormouse) (make rhosts ^user hendler ^host dormouse ^ruser hendler ^rhost mimsy) ; host prep (make user ^user rms ^password rms ^host prep) ; give ourselves a meaning in life ... (make goal ^type mail ^status active ^file diary ^ruser post-talk-rumor ^rhost ucbvax) (make goal ^type mail ^status active ^file notes ^ruser post-talk-rumor ^rhost ucbvax) ; and point us in the right direction ... (make session ^user nobody ^host nowhere) (make goal ^type telnet ^status active ^user nobody ^host nowhere ^ruser rms ^password rms ^rhost prep)) -------------- next part -------------- An HTML attachment was scrubbed... URL: From ken at google.com Fri Nov 3 04:42:26 2017 From: ken at google.com (Ken Thompson) Date: Thu, 2 Nov 2017 11:42:26 -0700 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: <1509630411.25641.for-standards-violators@oclsc.org> <7335deff-4c63-51d9-ec9b-7435a32ae3c7@gmail.com> Message-ID: my son, corey, and rtm, were two 'kids' that haunted the unix room (high school age). later (college age) i was in australia teaching when the worm got out. during a phone call to corey, i told him about the chaos. with no more clue than that, he said "if i didnt know better, i would think that it was rtm." it wasnt until considerably later that the morris' name came up. On Thu, Nov 2, 2017 at 8:25 AM, Dan Cross wrote: > On Thu, Nov 2, 2017 at 10:42 AM, Will Senn wrote: >> I seem to recall that this story was included as part of The Cuckoo's Egg, >> by Clifford Stoll. I don't recall the specifics and I wonder if it has a bit >> of myth included, but somehow it was peripherally related to the >> investigations. Fuzzy recollection is that the worm got out during the >> investigation Clifford was involved in and it was Morris's son (Morris being >> in on the investigation somehow), and the kid getting off because of the >> position of the dad and the newness of the crime... or somesuch - don't >> shoot the messenger, but nobody mentioned Stoll, so I thought I'd chime in, >> in the hopes it might jog someone else's memory :). > > Stoll mentions the worm in an epilogue to The Cuckoo's Egg; it happens > after the main events of the book. Apparently, for a brief time, some > folks thought that he might be the one behind the worm and someone > called him up and asked him if he'd written it. > > Cliff Stoll talked to a number of people in law enforcement and in > government and thus made a number of contacts while he was pursuing > Markus Hess (the pursuit of Hess being the main story of The Cuckoo's > Egg): Robert Morris Sr was among those contacts. When the worm hit, he > talked to Morris Sr and asked him if he knew who started it. The > response was something along the lines of, "Yes, but I can't tell > you." > > - Dan C. From lars at nocrew.org Fri Nov 3 04:32:12 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Thu, 02 Nov 2017 18:32:12 +0000 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: (Don Hopkins's message of "Thu, 2 Nov 2017 18:56:16 +0100") References: Message-ID: <7wpo90zg43.fsf@junk.nocrew.org> Don Hopkins wrote: > emacs /usr/ucb/sendmail (or whatever directory you keep all your > stinky hippie software in), ^S DEBUG ESC M-b ^D ^Q ^@ ^X ^S (that is, > null out the first character of the “DEBUG” command). This piqued my interest, because exiting incremental search with ESC doesn't look familiar to me (unless in ITS). I tried it in a recent Emacs, and just got "ESC M-b is undefined". Emacs 18 was contemporary with the Morris Worm. Would it allow ESC? From gtaylor at tnetconsulting.net Fri Nov 3 06:29:16 2017 From: gtaylor at tnetconsulting.net (Grant Taylor) Date: Thu, 2 Nov 2017 14:29:16 -0600 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <1509576688.7596.for-standards-violators@oclsc.org> References: <1509576688.7596.for-standards-violators@oclsc.org> Message-ID: <91fe7034-a91c-eeb8-e722-3242fa835621@tnetconsulting.net> On 11/01/2017 04:51 PM, Norman Wilson wrote: > Or, if you have moved beyond the era of simulated glass > teletypes on graphics screens, you could do the editing > in the terminal (program). Maybe it's my naivety, but I can't visualize the workflow using something else. (I briefly tried finding videos to see it, but failed.) > It's a real shame the mux/9term way of doing things never > caught on. I suppose it is because so many people are > wedded to programs that require cursor addressing; I'm > glad I never succumbed to that. I've had people tell me things about 9term, but I can't fathom what using it would be like. > I use ed (or its cousin qed a la Toronto) for simple stuff. > Mostly I'll use the traditional commands, but sometimes > I will, in mux/9term style, print a line with p, type > c, edit the line on the screen, pick it up and send it, > type . return. What do you mean by "pick it up" and "send it"? Will you please elaborate on what your day to day process (using 9term's editing ability) is like? > And of course I can do that sort of thing with any program, > whether or not it is compiled with some magic library. > > All this is something of a matter of taste, but I have > sometimes amazed (in a good way) my colleagues with it. :-) -- Grant. . . . unix || die -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3717 bytes Desc: S/MIME Cryptographic Signature URL: From don at DonHopkins.com Fri Nov 3 06:32:13 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 21:32:13 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <7wpo90zg43.fsf@junk.nocrew.org> References: <7wpo90zg43.fsf@junk.nocrew.org> Message-ID: <2340447B-1B5B-4460-9D78-DDD51626B127@gmail.com> You’re right, if you leave out the extra ESC it might work better! The "condom-with-a-hole-in-it” fix didn’t say exactly which characters to actually type, or even that you had to use emacs, but who in their right mind would use vi to edit a binary (and isn’t already running a root emacs anyway)? -Don > On 2 Nov 2017, at 19:32, Lars Brinkhoff wrote: > > Don Hopkins wrote: >> emacs /usr/ucb/sendmail (or whatever directory you keep all your >> stinky hippie software in), ^S DEBUG ESC M-b ^D ^Q ^@ ^X ^S (that is, >> null out the first character of the “DEBUG” command). > > This piqued my interest, because exiting incremental search with ESC > doesn't look familiar to me (unless in ITS). I tried it in a recent > Emacs, and just got "ESC M-b is undefined". Emacs 18 was contemporary > with the Morris Worm. Would it allow ESC? From don at DonHopkins.com Fri Nov 3 07:59:30 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 2 Nov 2017 22:59:30 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <2340447B-1B5B-4460-9D78-DDD51626B127@gmail.com> References: <7wpo90zg43.fsf@junk.nocrew.org> <2340447B-1B5B-4460-9D78-DDD51626B127@gmail.com> Message-ID: Can anyone remember or decipher what this was about??? Date: 24 Mar 90 06:52:43 GMT From: dmr at alice.att.com Subject: Re: Contest announcement To: misc-security at uunet.uu.net My own contest is "Most appalling display of classlessness in dealing with a serious subject." The nominees are: 1) National Center for Computer Crime Data, Security Magazine, and Gene Spafford, for their "How High Shall We Hang Robert Morris?" contest. 2) Gene Spafford, for the most tasteless article ever to appear in CACM (special credits for the Jodie Foster joke). Dennis Ritchie Some context maybe? https://tedium.co/2015/07/23/early-computer-virus-history/ To this day, Morris doesn’t really talk about it—though in a lot of ways, his worm had positive side effects, by exposing just how poor security was on many university networks. People didn’t care about password security until Robert Morris came along. Now, security is treated as an immensely important part of running a large network. And Morris, who currently serves as an assistant professor in MIT’s Computer Science and Artificial Intelligence Laboratory, has become a person worthy of emulating—something that can’t be said about John McAfee these days. “He has not tried to make any money or work in this area,” Purdue University computer science professor Eugene Spafford said of Morris in an interview with The Washington Post. “His behavior has been consistent in supporting his defense: that it was an accident and he felt badly about it. I think it’s very much to his credit that that has been his behavior ever since.” -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralph at inputplus.co.uk Fri Nov 3 08:27:31 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Thu, 02 Nov 2017 22:27:31 +0000 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: <7wpo90zg43.fsf@junk.nocrew.org> <2340447B-1B5B-4460-9D78-DDD51626B127@gmail.com> Message-ID: <20171102222731.992C71F94A@orac.inputplus.co.uk> Hi Don, > 2) Gene Spafford, for the most tasteless article ever to appear in CACM > (special credits for the Jodie Foster joke). Did some variation of this appear in CACM? The Internet Worm Incident Eugene H. Spafford, Purdue University http://docs.lib.purdue.edu/cstech/793/ As Rick Adams of the Center for Seismic Studies observed in a posting to the Usenet, we may someday hear that the Worm was actually written to impress Jodie Foster — we simply do not know the real reason. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From doug at cs.dartmouth.edu Fri Nov 3 10:53:50 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Thu, 02 Nov 2017 20:53:50 -0400 Subject: [TUHS] Happy birthday, Morris Worm! Message-ID: <201711030053.vA30romM005084@coolidge.cs.Dartmouth.EDU> I think "classlessness" is intened as an antonym to "classy". Spafford with high dudgeon called early for punishment. He had tempered it somewhat by the time he wrote his CACM article, published in June 1985. But still some animus shows through, in "even-handedly" speculating about whether the worm was intended as a lark or as something nefarious. He evidently had mellowed a lot by the time of the last quotation below. In the CACM article Spaff quoted someone else as suggesting that Morris did it to impress Jodie Foster, and he called Allman's back door in Sendmail a debugging feature that people could optionally turn off. As far as I know it was not disclosed that DEBUG allowed remote control of Sendmail. In fact Sendmail was so opaque that Dave Presotto declined to install it and wrote his own (upas) for Research. I don't recall the cited "contest". And Dennis's reaction to the CaCM article seems somwhat harsh. But the context is that Spafford's overheated initial reaction did not win friends in research. > > Can anyone remember or decipher what this was about??? > > Date: 24 Mar 90 06:52:43 GMT > From: dmr at alice.att.com > Subject: Re: Contest announcement > To: misc-security at uunet.uu.net > > My own contest is "Most appalling display of classlessness in dealing with > a serious subject." The nominees are: > > 1) National Center for Computer Crime Data, Security Magazine, and > Gene Spafford, for their "How High Shall We Hang Robert Morris?" > contest. > > 2) Gene Spafford, for the most tasteless article ever to appear in CACM > (special credits for the Jodie Foster joke). > > Dennis Ritchie > > Some context maybe? >> >> “He has not tried to make any money or work in this area,” Purdue >> University computer science professor Eugene Spafford said of Morris >> in an interview with The Washington Post. “His behavior has been >> consistent in supporting his defense: that it was an accident and he >> felt badly about it. I think it’s very much to his credit that that has >> been his behavior ever since.” From ken at google.com Fri Nov 3 11:39:54 2017 From: ken at google.com (Ken Thompson) Date: Thu, 2 Nov 2017 18:39:54 -0700 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <201711030053.vA30romM005084@coolidge.cs.Dartmouth.EDU> References: <201711030053.vA30romM005084@coolidge.cs.Dartmouth.EDU> Message-ID: spafford was the prize witness for the offense at the trial. strident and evil. On Thu, Nov 2, 2017 at 5:53 PM, Doug McIlroy wrote: > I think "classlessness" is intened as an antonym to "classy". > > Spafford with high dudgeon called early for punishment. He had tempered > it somewhat by the time he wrote his CACM article, published in June > 1985. But still some animus shows through, in "even-handedly" > speculating about whether the worm was intended as a lark or as > something nefarious. He evidently had mellowed a lot by the > time of the last quotation below. > > In the CACM article Spaff quoted someone else as suggesting that > Morris did it to impress Jodie Foster, and he called Allman's > back door in Sendmail a debugging feature that people could > optionally turn off. As far as I know it was not disclosed that > DEBUG allowed remote control of Sendmail. In fact Sendmail was > so opaque that Dave Presotto declined to install it and wrote > his own (upas) for Research. > > I don't recall the cited "contest". And Dennis's reaction to > the CaCM article seems somwhat harsh. But the context is that > Spafford's overheated initial reaction did not win friends in > research. >> >> Can anyone remember or decipher what this was about??? >> >> Date: 24 Mar 90 06:52:43 GMT >> From: dmr at alice.att.com >> Subject: Re: Contest announcement >> To: misc-security at uunet.uu.net >> >> My own contest is "Most appalling display of classlessness in dealing with >> a serious subject." The nominees are: >> >> 1) National Center for Computer Crime Data, Security Magazine, and >> Gene Spafford, for their "How High Shall We Hang Robert Morris?" >> contest. >> >> 2) Gene Spafford, for the most tasteless article ever to appear in CACM >> (special credits for the Jodie Foster joke). >> >> Dennis Ritchie >> >> Some context maybe? >>> >>> “He has not tried to make any money or work in this area,” Purdue >>> University computer science professor Eugene Spafford said of Morris >>> in an interview with The Washington Post. “His behavior has been >>> consistent in supporting his defense: that it was an accident and he >>> felt badly about it. I think it’s very much to his credit that that has >>> been his behavior ever since.” From arnold at skeeve.com Fri Nov 3 19:25:43 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Fri, 03 Nov 2017 03:25:43 -0600 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: <201711030053.vA30romM005084@coolidge.cs.Dartmouth.EDU> Message-ID: <201711030925.vA39PhPt032264@freefriends.org> Ken Thompson via TUHS wrote: > spafford was the prize witness for the > offense at the trial. strident and evil. I suspect that he was also still young and fired up about things. :-) (Not to mention a professor still working towards tenure.) I was in grad school with Gene at Georgia Tech and still exchange emails with him every once in a while. He is most definitely not a strident and evil *person*, but I can't speak to what happened in the trial itself. (In other words, he too probably deserves to be cut some slack.) My two cents, Arnold From jnc at mercury.lcs.mit.edu Fri Nov 3 20:23:29 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Fri, 3 Nov 2017 06:23:29 -0400 (EDT) Subject: [TUHS] Happy birthday, Morris Worm! Message-ID: <20171103102329.A496B18C087@mercury.lcs.mit.edu> > From: Arnold Skeeve > I suspect that he was also still young and fired up about things. :-) > ... > (In other words, he too probably deserves to be cut some slack.) Much as RTM was cut some slack? The thing is there's a key difference. RTM didn't _intend_ to melt down the network, whereas Gene presumbly - hopefully - thought about it for a while before he made his call to inflict severe punishment. Did RTM do something wrong? Absolutely. Did he deserve some punishment? Definitely. But years in jail? Yes, it caused a lot of disruption - but to any one person, not an overwhelming amount. Luckily, the judge was wise enough, and brave enough, to put the sentencing guidelines (and the DoJ recommendation, IIRC) to one side. However, that too was not without a cost; it was one more stone added to what is admittedlyalready a mountain of precedent that judges can ignore the legislature's recommendations - and once one does it, another will feel more free to do so. And so we pass from a government of laws to a government of men. But I don't give Gene the lion's share of the blame: that has to go to Rasch, and his superiors at the DoJ, who were apparently (as best I can understand their motives) willing to crush a young man under a bus to make a point. The power to prosecute and punish is an awesome one, and should be wielded carefully and with judgement, and it was their failure to do so that really was the root cause. Noel From arnold at skeeve.com Fri Nov 3 21:20:47 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Fri, 03 Nov 2017 05:20:47 -0600 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <20171103102329.A496B18C087@mercury.lcs.mit.edu> References: <20171103102329.A496B18C087@mercury.lcs.mit.edu> Message-ID: <201711031120.vA3BKl1D012763@freefriends.org> jnc at mercury.lcs.mit.edu (Noel Chiappa) wrote: > > From: Arnold Skeeve ^^^^^^ Skeeve is my domain. Robbins is my last name. > > I suspect that he was also still young and fired up about things. :-) > > ... > > (In other words, he too probably deserves to be cut some slack.) > > Much as RTM was cut some slack? I should have said "cut some slack now". I don't disagree with the rest of what you've said. > The thing is there's a key difference. RTM didn't _intend_ to melt down the > network, whereas Gene presumbly - hopefully - thought about it for a while > before he made his call to inflict severe punishment. And had he been a bit older and wiser, he might have done things differently. Whatever. I dn't want to get into an argument, since I am singularly unfamiliar with the details of the case. I merely point at that Spafford is human too. Thanks, Arnold From stewart at serissa.com Fri Nov 3 22:53:40 2017 From: stewart at serissa.com (Lawrence Stewart) Date: Fri, 3 Nov 2017 08:53:40 -0400 Subject: [TUHS] Fwd: [Simh] An abandoned piece of K&R C References: Message-ID: <160331EE-3C7D-4948-ADE3-E57FFDCA5EAF@serissa.com> This caught my attention. Did early C really have min and max? Were they used for anything? In those days I was a BCPL user, which IIRC, did not have such things. -Larry > Begin forwarded message: > > From: Leo Broukhis > Subject: [Simh] An abandoned piece of K&R C > Date: 2017, November 3 at 1:14:42 AM EDT > To: "simh at trailing-edge.com" > > https://retrocomputing.stackexchange.com/q/4965/4025 > > In the UNIX V7 version of the C language, there were the /\ (min) and the \/ (max) operators. In the source of the scanner part of the compiler, > > case BSLASH: > if (subseq('/', 0, 1)) > return(MAX); > goto unkn; > > case DIVIDE: > if (subseq('\\', 0, 1)) > return(MIN); > ... > > However, attempting to use them reveals that the corresponding part in the code generator is missing. Trying to compile > > foo(a, b) { return a \/ b; } > > results in > > 1: No code table for op: \/ > > The scanner piece survived in the copies of the compiler for various systems for several years. I tried to look for copies of the code generator table which would contain an implementation, but failed. Has anyone ever seen a working MIN/MAX operator in K&R C? > > Thanks,Leo > > _______________________________________________ > Simh mailing list > Simh at trailing-edge.com > http://mailman.trailing-edge.com/mailman/listinfo/simh -------------- next part -------------- An HTML attachment was scrubbed... URL: From krewat at kilonet.net Fri Nov 3 23:11:33 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Fri, 3 Nov 2017 09:11:33 -0400 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <20171103102329.A496B18C087@mercury.lcs.mit.edu> References: <20171103102329.A496B18C087@mercury.lcs.mit.edu> Message-ID: Around the mid 80's,there was another case where the DoJ was willing to crush someone, not for causing a real disruption, but for getting into the wrong places and reading the wrong things. I'll keep the details out, but the prosecution of RTM might have been more over the top because of preceding cases of hacking. On 11/3/2017 6:23 AM, Noel Chiappa wrote: > lion's share of the blame: that has to go to Rasch, > and his superiors at the DoJ, who were apparently (as best I can understand > their motives) willing to crush a young man under a bus to make a point. From don at DonHopkins.com Sat Nov 4 05:12:42 2017 From: don at DonHopkins.com (Don Hopkins) Date: Fri, 3 Nov 2017 20:12:42 +0100 Subject: [TUHS] "Oregano" and Unix wizards In-Reply-To: References: <20171103102329.A496B18C087@mercury.lcs.mit.edu> Message-ID: <3769C2F5-7176-430B-B8AD-F67A469F6F79@gmail.com> https://i.imgur.com/qMN1are.jpg From mjs at sage.cc.purdue.edu Wed Mar 28 20:47:44 1990 From don at DonHopkins.com Sat Nov 4 05:15:26 2017 From: don at DonHopkins.com (Don Hopkins) Date: Fri, 3 Nov 2017 20:15:26 +0100 Subject: [TUHS] Oh *snap*! Message-ID: <770562A6-671E-4AF4-A68B-7943A6CAE7CA@gmail.com> Date: Tue, 10 Oct 89 13:37 CDT From: Chris Garrigues <7thSon at slcs.slb.com> Subject: A quote from Interop '89 To: unix-haters at ai.ai.mit.edu Cc: 7thSon at slcs.slb.com "We all know that the Internet is Unix. We proved that last November." - David Mills, October 2, 1989 -------------- next part -------------- An HTML attachment was scrubbed... URL: From toby at telegraphics.com.au Sat Nov 4 05:26:13 2017 From: toby at telegraphics.com.au (Toby Thain) Date: Fri, 3 Nov 2017 15:26:13 -0400 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: <20171103102329.A496B18C087@mercury.lcs.mit.edu> Message-ID: <8abf7ed3-1635-0a21-050d-ce5df929624c@telegraphics.com.au> On 2017-11-03 9:11 AM, Arthur Krewat wrote: > Around the mid 80's,there was another case where the DoJ was willing to > crush someone, not for causing a real disruption, but for getting into > the wrong places and reading the wrong things. > > I'll keep the details out, but the prosecution of RTM might have been > more over the top because of preceding cases of hacking. The DOJ brutality has only got worse since then: https://topdocumentaryfilms.com/internet-own-boy-story-aaron-swartz/ --Toby > > > > On 11/3/2017 6:23 AM, Noel Chiappa wrote: >> lion's share of the blame: that has to go to Rasch, >> and his superiors at the DoJ, who were apparently (as best I can >> understand >> their motives) willing to crush a young man under a bus to make a point. > > From ralph at inputplus.co.uk Sat Nov 4 05:21:29 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Fri, 03 Nov 2017 19:21:29 +0000 Subject: [TUHS] "Oregano" and Unix wizards In-Reply-To: <3769C2F5-7176-430B-B8AD-F67A469F6F79@gmail.com> References: <20171103102329.A496B18C087@mercury.lcs.mit.edu> <3769C2F5-7176-430B-B8AD-F67A469F6F79@gmail.com> Message-ID: <20171103192129.2EA09219C4@orac.inputplus.co.uk> Hi, > The only thing that isn't obviously some sort of pun on an aspect of > Unix is a canister labeled Oregano in the foreground of the picture. https://groups.google.com/d/msg/comp.unix.wizards/qkiqSJWgEPE/E5BwZYMvXwAJ The oregano is reputedly referring to an incident in which one of the original folks involved with BSD was hassled for coming across the Canadian/U.S. border with a bag of what was assumed to be an illegal substance, and turned out to be oregano. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From pechter at gmail.com Sat Nov 4 06:02:19 2017 From: pechter at gmail.com (William Pechter) Date: Fri, 3 Nov 2017 16:02:19 -0400 Subject: [TUHS] "Oregano" and Unix wizards In-Reply-To: <20171103192129.2EA09219C4@orac.inputplus.co.uk> References: <20171103102329.A496B18C087@mercury.lcs.mit.edu> <3769C2F5-7176-430B-B8AD-F67A469F6F79@gmail.com> <20171103192129.2EA09219C4@orac.inputplus.co.uk> Message-ID: Another thing that comes to mind was my late wife's roommate when she was a contractor at either Bell Labs, AT&T or Bellcore back in the late 80's to 1990 or so... There was a rumor about undercover Narcotics cops inside the facility going through desks and such at night. Her officemate, who was a non-drug user -- but concerned about civil liberties and privacy put two plastic bags of unknown substances in his desk. One leafy substance named catnip -- containing catnip. One powdery substance labeled sugar (which if I remember correctly was some kind of confectioners sugar. Shortly after that the substances disappeared from his drawer... ( I think some personnel did shortly after that as well.) I can imagine the results of the lab tests coming back. Perhaps this info ran wide enough that some folks remembered this incident. Bill -- d|i|g|i|t|a|l had it THEN. Don't you wish you could still buy it now! pechter-at-gmail.com On Fri, Nov 3, 2017 at 3:21 PM, Ralph Corderoy wrote: > Hi, > >> The only thing that isn't obviously some sort of pun on an aspect of >> Unix is a canister labeled Oregano in the foreground of the picture. > > https://groups.google.com/d/msg/comp.unix.wizards/qkiqSJWgEPE/E5BwZYMvXwAJ > The oregano is reputedly referring to an incident in which one of > the original folks involved with BSD was hassled for coming across > the Canadian/U.S. border with a bag of what was assumed to be an > illegal substance, and turned out to be oregano. > > -- > Cheers, Ralph. > https://plus.google.com/+RalphCorderoy From krewat at kilonet.net Sat Nov 4 06:54:21 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Fri, 3 Nov 2017 16:54:21 -0400 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <8abf7ed3-1635-0a21-050d-ce5df929624c@telegraphics.com.au> References: <20171103102329.A496B18C087@mercury.lcs.mit.edu> <8abf7ed3-1635-0a21-050d-ce5df929624c@telegraphics.com.au> Message-ID: <5a358581-1d24-4041-25bc-31772361e50c@kilonet.net> BTW, the one case I was thinking of when I wrote this is not even documented anywhere. I can't find any reference to it whatsoever. It happened around 1983/84. So it's not only the public cases, there were ones that were swept under the rug it seems. All the while, the defendant was threatened with 20-30 years in a federal prison, but eventually was given 10 years probation. I knew the guy involved. It was an interesting time. On 11/3/2017 3:26 PM, Toby Thain wrote: > On 2017-11-03 9:11 AM, Arthur Krewat wrote: >> Around the mid 80's,there was another case where the DoJ was willing to >> crush someone, not for causing a real disruption, but for getting into >> the wrong places and reading the wrong things. >> >> I'll keep the details out, but the prosecution of RTM might have been >> more over the top because of preceding cases of hacking. > The DOJ brutality has only got worse since then: > > https://topdocumentaryfilms.com/internet-own-boy-story-aaron-swartz/ > > --Toby > From dwalker at doomd.net Sat Nov 4 10:24:20 2017 From: dwalker at doomd.net (Derrik Walker v2.0) Date: Fri, 3 Nov 2017 20:24:20 -0400 Subject: [TUHS] Oh *snap*! In-Reply-To: <770562A6-671E-4AF4-A68B-7943A6CAE7CA@gmail.com> References: <770562A6-671E-4AF4-A68B-7943A6CAE7CA@gmail.com> Message-ID: <4ef1c5b7-a96f-863e-ca7d-7f181a9f9a10@doomd.net> The network IS the Computer! - Derrik On 11/03/2017 03:15 PM, Don Hopkins wrote: > Date: Tue, 10 Oct 89 13:37 CDT > From: Chris Garrigues <7thSon at slcs.slb.com > > Subject: A quote from Interop '89 > To: unix-haters at ai.ai.mit.edu > Cc: 7thSon at slcs.slb.com > > > >   "We all know that the Internet is Unix.  We proved that last >   November." > >                   - David Mills, October 2, 1989 > -- -- Derrik Derrik Walker v2.0, RHCE dwalker at doomd.net "Those UNIX guys, they think weird!" -- John C. Dvorak -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3986 bytes Desc: S/MIME Cryptographic Signature URL: From dave at horsfall.org Sat Nov 4 11:15:37 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sat, 4 Nov 2017 12:15:37 +1100 (EST) Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: Message-ID: Well, that sure stirred up a hornet's nest; then again, I've been a stirrer for most of my 65 years (just ask anyone who knows me, including WKT), so I guess I should've expected it... There are far too many responses to deal with individually (it will only go exponential) so I'll make this my final post, and then it can continue off-list if people insist; if Warren has shut down the topic then I haven't noticed it yet, but at least I can see it's an active topic going by the "TUHS" tag (and thanks again Warren for reinstating that). First, apologies I guess to anyone who was offended, but I've never balked at kicking the odd sacred cow now and then. I would've dismissed RTM's effort as an "oopsie" that we all make from time to time, except for the following extract from the Morris Worm page: https://en.wikipedia.org/wiki/Morris_worm ``The critical error that transformed the worm from a potentially harmless intellectual exercise into a virulent denial of service attack was in the spreading mechanism. The worm could have determined whether to invade a new computer by asking whether there was already a copy running. But just doing this would have made it trivially easy to stop, as administrators could just run a process that would answer "yes" when asked whether there was already a copy, and the worm would stay away. The defense against this was inspired by Michael Rabin's mantra "Randomization". To compensate for this possibility, Morris directed the worm to copy itself even if the response is "yes" 1 out of 7 times. This level of replication proved excessive, and the worm spread rapidly, infecting some computers multiple times. Rabin said that Morris "should have tried it on a simulator first".'' The (reconstructed) source code, easily found in a few seconds, shows just that i.e. it was *designed* to avoid any attempts to suppress it; a simple statistical analysis shows that it would become uncontrollable even within a small cluster (I can provide it upon request, in case anyone doubts my admittedly-rusty statistical skills). The first thing any binary did was to unlink itself, thereby making detection difficult. It forks a lot to change the process ID, thereby making it difficult to kill. It encrypts all the strings (a simple XOR with 0x81), thereby disguising it. In short, although I doubt whether there was malicious intent, if I were to write something to bring down the Internet then I would start along those lines. No doubt his goal was laudable (estimating the number of hosts) but there are weirdos like me who prefer not to be "counted" (even my census returns are illegally anonymous, by not providing a real name, no birth date but age is OK, no street address but suburb is OK; I don't care who knows that I'm an atheist as until now we were lumped in as "other"); I regularly fend off such probing attempts in my firewall (ACK scans, FIN scans, etc). So, was RTM an idiot or not? You be the judge. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From pnr at planet.nl Sat Nov 4 20:19:56 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Sat, 4 Nov 2017 11:19:56 +0100 Subject: [TUHS] origins of void* Message-ID: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> I’m trying to understand the origins of void pointers in C. I think they first appeared formally in the C89 spec, but may have existed in earlier compilers. Of course, as late as V7 there wasn’t much enforcement of types and hence no need for the void* concept and automatic casting. I suppose ‘lint’ would have flagged it though. In the 4BSD era there was caddr_t, which I think was used for pretty much the same purposes. Did ‘lint’ in the 4BSD era complain about omitted casts to and fro’ caddr_t? Background to my question is research into the evolution of the socket API in 4.1x BSD and the persistence of ‘struct sockaddr *’ in actual code, even though the design papers show an intent for ‘caddr_t’ (presumably with ‘void*’ semantics, but I’m not sure). Paul From don at DonHopkins.com Sat Nov 4 21:35:43 2017 From: don at DonHopkins.com (Don Hopkins) Date: Sat, 4 Nov 2017 12:35:43 +0100 Subject: [TUHS] Oh *snap*! In-Reply-To: <4ef1c5b7-a96f-863e-ca7d-7f181a9f9a10@doomd.net> References: <770562A6-671E-4AF4-A68B-7943A6CAE7CA@gmail.com> <4ef1c5b7-a96f-863e-ca7d-7f181a9f9a10@doomd.net> Message-ID: We’ve got all our wood behind one error! -Don > On 4 Nov 2017, at 01:24, Derrik Walker v2.0 wrote: > > The network IS the Computer! > > - Derrik > > On 11/03/2017 03:15 PM, Don Hopkins wrote: >> Date: Tue, 10 Oct 89 13:37 CDT >> From: Chris Garrigues <7thSon at slcs.slb.com > >> Subject: A quote from Interop '89 >> To: unix-haters at ai.ai.mit.edu >> Cc: 7thSon at slcs.slb.com >> >> >> >> "We all know that the Internet is Unix. We proved that last >> November." >> >> - David Mills, October 2, 1989 >> > > -- > -- Derrik > > Derrik Walker v2.0, RHCE > dwalker at doomd.net > > "Those UNIX guys, they think weird!" -- John C. Dvorak -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Sun Nov 5 07:32:48 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sun, 5 Nov 2017 08:32:48 +1100 (EST) Subject: [TUHS] Unix half-billion years old Message-ID: UNIX was half a billion (500000000) seconds old on Tue Nov 5 00:53:20 1985 GMT (measuring since the time(2) epoch) -- Andy Tannenbaum. (Yeah, an American billion, not the old British one.) -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From dave at horsfall.org Sun Nov 5 08:58:14 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sun, 5 Nov 2017 09:58:14 +1100 (EST) Subject: [TUHS] Unix half-billion years old In-Reply-To: References: Message-ID: On Sun, 5 Nov 2017, Dave Horsfall wrote: > UNIX was half a billion (500000000) seconds old on Tue Nov 5 00:53:20 > 1985 GMT (measuring since the time(2) epoch) -- Andy Tannenbaum. Aarrgghh! *Seconds*, as the text says, not the Subject... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From dave at horsfall.org Sun Nov 5 12:36:09 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sun, 5 Nov 2017 13:36:09 +1100 (EST) Subject: [TUHS] Trouble wih TUHS rsync In-Reply-To: References: <20171021013749.GA30864@minnie.tuhs.org> Message-ID: On Sat, 21 Oct 2017, Dave Horsfall wrote: > Hmmm... OK, thanks all; looks like I get to debug my firewall. Problem found; I had the audacity to elevate the security on my router from "medium" to "custom" (so I could define some IP blocks against some persistent spam sources) and it took out NTP/WHOIS/RSYNC/you-name-it as well; I'd say that it helpfully blocked all UDP or something. The filters never did work anyway; if ever you see a Sagecomm F at st 5355 (yeah, a wanky name, so you can imagine the target audience) wireless router then run, do not walk, away from it, as it's a bucket of putrid snot. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From will.senn at gmail.com Sun Nov 5 14:05:26 2017 From: will.senn at gmail.com (Will Senn) Date: Sat, 4 Nov 2017 23:05:26 -0500 Subject: [TUHS] TERM for v8 Message-ID: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> What should I set TERM to on V8 to get the best results on my Mac Terminal. If I set it to vt52, vt100, or vt132, only 8 lines appear at the bottom of the terminal window (of about 24 lines): --- root::0:4:m0130,m322:/: daemon:x:1:1:m0000,m000:/: sys:sorry:2:1:m0130,m322:/usr/sys:no-login bin:sorry:3:4:m0130,m322:/bin: ken:sorry:6:1:m0130,m322:/usr/ken: dmr:sorry:7:4:mh1092,m069:/usr/dmr: nuucp::238:1:mh2019,m285,uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico uucp::48:1:mh2019,m285,nowitz:/usr/lib/uucp: "passwd" 20 lines, 770 characters ---- The 8 line window works about like I'd expect - the arrow keys move up and down until the screen needs to scroll, then B's and A's show up. I'm used to that on BSD. Using the j and k keys work better and when I scroll down enough lines, the lines move up to fill the whole terminal window and the file can be edited in the full window. Is there a better TERM setting that will get 24 lines to show up on file open? Thanks, Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From wlc at jctaylor.com Sun Nov 5 14:34:14 2017 From: wlc at jctaylor.com (William Corcoran) Date: Sun, 5 Nov 2017 04:34:14 +0000 Subject: [TUHS] TERM for v8 In-Reply-To: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> Message-ID: I had a similar issue with BSD 2.11. So, I hope this helps. You can use vt100. However, make sure your baud rate is 9600. stty 9600 (SIMH makes the virtual adjustment so you don't need to worry about SIMH settings.) I am using BSD 2.11 on a Mac with SIMH. I noticed the console port would have a short window. But, logging into dz ports were fine. Setting the console baud rate to match the dz11 settings fixed the issue. So, I suspect either a setting in vi that changes the window size on slow devices or it's hard coded somewhere. I will take a look. Truly, Bill Corcoran On Nov 5, 2017, at 12:03 AM, Will Senn > wrote: What should I set TERM to on V8 to get the best results on my Mac Terminal. If I set it to vt52, vt100, or vt132, only 8 lines appear at the bottom of the terminal window (of about 24 lines): --- root::0:4:m0130,m322:/: daemon:x:1:1:m0000,m000:/: sys:sorry:2:1:m0130,m322:/usr/sys:no-login bin:sorry:3:4:m0130,m322:/bin: ken:sorry:6:1:m0130,m322:/usr/ken: dmr:sorry:7:4:mh1092,m069:/usr/dmr: nuucp::238:1:mh2019,m285,uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico uucp::48:1:mh2019,m285,nowitz:/usr/lib/uucp: "passwd" 20 lines, 770 characters ---- The 8 line window works about like I'd expect - the arrow keys move up and down until the screen needs to scroll, then B's and A's show up. I'm used to that on BSD. Using the j and k keys work better and when I scroll down enough lines, the lines move up to fill the whole terminal window and the file can be edited in the full window. Is there a better TERM setting that will get 24 lines to show up on file open? Thanks, Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Sun Nov 5 15:14:44 2017 From: will.senn at gmail.com (Will Senn) Date: Sun, 5 Nov 2017 00:14:44 -0500 Subject: [TUHS] TERM for v8 In-Reply-To: References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> Message-ID: <5f9b5956-1e26-4e89-1533-fc3a40147549@gmail.com> Bill, Thanks! You're right about logging into the dz port, worked beautifully. On the console port, stty 9600 doesn't seem to take: # stty speed: 0 baud erase = ^H; kill = @; intr = ^?; quit = ^\ start = ^Q; stop = ^S; eof = ^D; brk old even odd -raw -nl echo -lcase -tabs -cbreak -tandem nl0 cr0 ff0 bs0 # stty 9600 # stty speed: 0 baud erase = ^H; kill = @; intr = ^?; quit = ^\ start = ^Q; stop = ^S; eof = ^D; brk old even odd -raw -nl echo -lcase -tabs -cbreak -tandem nl0 cr0 ff0 bs0 # Strange. Works fine on v7. Thanks, Will On 11/4/17 11:34 PM, William Corcoran wrote: > > I had a similar issue with BSD 2.11. > So, I hope this helps. > > You can use vt100.   However, make sure your baud rate is 9600. > > stty 9600 > > (SIMH makes the virtual adjustment so you don’t need to worry about > SIMH settings.) > > I am using BSD 2.11 on a Mac with SIMH.  I noticed the console port > would have a short window.   But, logging into dz ports were fine.   > Setting the console baud rate to match the dz11 settings fixed the issue. > > So, I suspect either a setting in vi that changes the window size on > slow devices or it’s hard coded somewhere.  I will take a look. > > Truly, > > Bill Corcoran > -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Sun Nov 5 15:44:06 2017 From: clemc at ccc.com (Clem cole) Date: Sat, 4 Nov 2017 22:44:06 -0700 Subject: [TUHS] TERM for v8 In-Reply-To: References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> Message-ID: <61E89B92-FC04-43B6-9AC2-2752BC146528@ccc.com> This is a feature of vi. If the baud rate is perceived to be at or less than a specific value (1200 IIRC) the screen is set to 8 lines at a time to keep repainting low. This was useful on dialup lines. Since you have a virtual serial port the baud rate has no bearing other than upper level applications trying to make inferences about the environment such as this. If you set the baud rate to 19200 or 38400 (EXTA and EXTB in the virgin V7 code base) those were the fastest serial speeds in those days. So any SW should infer the ‘best’ behavior. Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > On Nov 4, 2017, at 9:34 PM, William Corcoran wrote: > > > I had a similar issue with BSD 2.11. > So, I hope this helps. > > You can use vt100. However, make sure your baud rate is 9600. > > stty 9600 > > (SIMH makes the virtual adjustment so you don’t need to worry about SIMH settings.) > > I am using BSD 2.11 on a Mac with SIMH. I noticed the console port would have a short window. But, logging into dz ports were fine. Setting the console baud rate to match the dz11 settings fixed the issue. > > So, I suspect either a setting in vi that changes the window size on slow devices or it’s hard coded somewhere. I will take a look. > > Truly, > > Bill Corcoran > > > On Nov 5, 2017, at 12:03 AM, Will Senn wrote: > >> What should I set TERM to on V8 to get the best results on my Mac Terminal. If I set it to vt52, vt100, or vt132, only 8 lines appear at the bottom of the terminal window (of about 24 lines): >> >> --- >> >> root::0:4:m0130,m322:/: >> daemon:x:1:1:m0000,m000:/: >> sys:sorry:2:1:m0130,m322:/usr/sys:no-login >> bin:sorry:3:4:m0130,m322:/bin: >> ken:sorry:6:1:m0130,m322:/usr/ken: >> dmr:sorry:7:4:mh1092,m069:/usr/dmr: >> nuucp::238:1:mh2019,m285,uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico >> uucp::48:1:mh2019,m285,nowitz:/usr/lib/uucp: >> "passwd" 20 lines, 770 characters >> ---- >> >> The 8 line window works about like I'd expect - the arrow keys move up and down until the screen needs to scroll, then B's and A's show up. I'm used to that on BSD. Using the j and k keys work better and when I scroll down enough lines, the lines move up to fill the whole terminal window and the file can be edited in the full window. Is there a better TERM setting that will get 24 lines to show up on file open? >> >> Thanks, >> >> Will >> >> -- >> GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Sun Nov 5 19:48:10 2017 From: clemc at ccc.com (Clem Cole) Date: Sun, 05 Nov 2017 09:48:10 +0000 Subject: [TUHS] origins of void* In-Reply-To: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> Message-ID: Funny you should ask. Im at a conference with Steve Bourne. He brought up this topic in a fireside chat tonight. Steve claims around 1977/78, he had started to bug Dennis about creating the void type which Bourne wanted for the Algol68 implementation and was originally rejected by dmr. BuT when he finally showed Dennis that adding it saved an instruction in the C return by allowing the void type for function returns, the void type was added to the language. Once the type was created it was quickly realized as useful as typing hard started to become more important in the kernel. On Sat, Nov 4, 2017 at 3:23 AM Paul Ruizendaal wrote: > > I’m trying to understand the origins of void pointers in C. I think they > first appeared formally in the C89 spec, but may have existed in earlier > compilers. > > Of course, as late as V7 there wasn’t much enforcement of types and hence > no need for the void* concept and automatic casting. I suppose ‘lint’ would > have flagged it though. > > In the 4BSD era there was caddr_t, which I think was used for pretty much > the same purposes. Did ‘lint’ in the 4BSD era complain about omitted casts > to and fro’ caddr_t? > > Background to my question is research into the evolution of the socket API > in 4.1x BSD and the persistence of ‘struct sockaddr *’ in actual code, even > though the design papers show an intent for ‘caddr_t’ (presumably with > ‘void*’ semantics, but I’m not sure). > > Paul > > -- Sent from a handheld expect more typos than usual -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnold at skeeve.com Sun Nov 5 20:06:10 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Sun, 05 Nov 2017 03:06:10 -0700 Subject: [TUHS] origins of void* In-Reply-To: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> Message-ID: <201711051006.vA5A6BO2032436@freefriends.org> Paul Ruizendaal wrote: > I’m trying to understand the origins of void pointers in C. I think > they first appeared formally in the C89 spec, but may have existed in > earlier compilers. void was added after the publication of the first edition of K&R, in the V7 time frame. The 4.x compilers had support for void pointers and functions returning void. Also added around the same time was structure assignment and the ability to pass and return structs by value (although this was little used). > In the 4BSD era there was caddr_t, which I think was used for pretty > much the same purposes. Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. HTH, Arnold From ron at ronnatalie.com Sun Nov 5 23:20:42 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Sun, 5 Nov 2017 08:20:42 -0500 Subject: [TUHS] origins of void* In-Reply-To: <201711051006.vA5A6BO2032436@freefriends.org> References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> Message-ID: Yes. Correct me if I’m wrong, but I recall functions returning void came before void*. Sent from my iPhone > On Nov 5, 2017, at 5:06 AM, arnold at skeeve.com wrote: > > Paul Ruizendaal wrote: > >> I’m trying to understand the origins of void pointers in C. I think >> they first appeared formally in the C89 spec, but may have existed in >> earlier compilers. > > void was added after the publication of the first edition of K&R, in > the V7 time frame. The 4.x compilers had support for void pointers and > functions returning void. Also added around the same time was structure > assignment and the ability to pass and return structs by value (although > this was little used). > >> In the 4BSD era there was caddr_t, which I think was used for pretty >> much the same purposes. > > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. > > HTH, > > Arnold From will.senn at gmail.com Mon Nov 6 00:01:14 2017 From: will.senn at gmail.com (Will Senn) Date: Sun, 5 Nov 2017 08:01:14 -0600 Subject: [TUHS] TERM for v8 In-Reply-To: <61E89B92-FC04-43B6-9AC2-2752BC146528@ccc.com> References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> <61E89B92-FC04-43B6-9AC2-2752BC146528@ccc.com> Message-ID: <5da5899d-1768-7970-4316-a75c92c7cd54@gmail.com> That makes sense. Any idea where to start looking if the console thinks the baudrate is 0 even after setting it (supposedly)? I looked at the source code for stty.c (briefly) and it looks like it oughta work, if ioctl works... other things work ok nl, cr, etc., just speed doesn't have an effect... When I get home later, I'll prolly try putting some print statments in stty.c to see what it thinks it's doing. Here's what I see on the command line in the console: # stty speed: 0 baud erase = ^H; kill = @; intr = ^?; quit = ^\ start = ^Q; stop = ^S; eof = ^D; brk old even odd -raw -nl echo -lcase -tabs -cbreak -tandem nl0 cr0 ff0 bs0 # stty 9600 # stty speed: 0 baud erase = ^H; kill = @; intr = ^?; quit = ^\ start = ^Q; stop = ^S; eof = ^D; brk old even odd -raw -nl echo -lcase -tabs -cbreak -tandem nl0 cr0 ff0 bs0 # Will On 11/5/17 12:44 AM, Clem cole wrote: > This is a feature of vi.   If the baud rate is perceived to be at or > less than a specific value (1200 IIRC) the screen is set to 8 lines at > a time to keep repainting low. > > This was useful on dialup lines. > > Since you have a virtual serial port the baud rate has no bearing > other than upper level applications trying to make inferences about > the environment such as this. > > If you set the baud rate to 19200 or 38400 (EXTA and EXTB in the > virgin V7 code base) those were the fastest serial speeds in those > days. So any SW should infer the ‘best’ behavior. > > > Sent from my PDP-7 Running UNIX V0 expect things to be almost but not > quite. > > On Nov 4, 2017, at 9:34 PM, William Corcoran > wrote: > >> >> I had a similar issue with BSD 2.11. >> So, I hope this helps. >> >> You can use vt100.   However, make sure your baud rate is 9600. >> >> stty 9600 >> >> (SIMH makes the virtual adjustment so you don’t need to worry about >> SIMH settings.) >> >> I am using BSD 2.11 on a Mac with SIMH.  I noticed the console port >> would have a short window.   But, logging into dz ports were fine.   >> Setting the console baud rate to match the dz11 settings fixed the issue. >> >> So, I suspect either a setting in vi that changes the window size on >> slow devices or it’s hard coded somewhere.  I will take a look. >> >> Truly, >> >> Bill Corcoran >> >> >> On Nov 5, 2017, at 12:03 AM, Will Senn > > wrote: >> >>> What should I set TERM to on V8 to get the best results on my Mac >>> Terminal. If I set it to vt52, vt100, or vt132, only 8 lines appear >>> at the bottom of the terminal window (of about 24 lines): >>> >>> --- >>> >>> root::0:4:m0130,m322:/: >>> daemon:x:1:1:m0000,m000:/: >>> sys:sorry:2:1:m0130,m322:/usr/sys:no-login >>> bin:sorry:3:4:m0130,m322:/bin: >>> ken:sorry:6:1:m0130,m322:/usr/ken: >>> dmr:sorry:7:4:mh1092,m069:/usr/dmr: >>> nuucp::238:1:mh2019,m285,uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico >>> uucp::48:1:mh2019,m285,nowitz:/usr/lib/uucp: >>> "passwd" 20 lines, 770 characters >>> ---- >>> >>> The 8 line window works about like I'd expect - the arrow keys move >>> up and down until the screen needs to scroll, then B's and A's show >>> up. I'm used to that on BSD. Using the j and k keys work better and >>> when I scroll down enough lines, the lines move up to fill the whole >>> terminal window and the file can be edited in the full window. Is >>> there a better TERM setting that will get 24 lines to show up on >>> file open? >>> >>> Thanks, >>> >>> Will >>> >>> -- >>> GPG Fingerprint: 68F4 B3BD 1730 555A 4462  7D45 3EAA 5B6D A982 BAAF >>> -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From imp at bsdimp.com Mon Nov 6 01:14:08 2017 From: imp at bsdimp.com (Warner Losh) Date: Sun, 5 Nov 2017 08:14:08 -0700 Subject: [TUHS] origins of void* In-Reply-To: References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> Message-ID: void functions certainly were much more widely used before void *, but void * worked on all the compilers I ever used. I'm a relative newcomer, though, since the first C compiler I used was on a VAX running 4.2BSD... Warner On Sun, Nov 5, 2017 at 6:20 AM, Ron Natalie wrote: > Yes. Correct me if I’m wrong, but I recall functions returning void came > before void*. > > Sent from my iPhone > > > On Nov 5, 2017, at 5:06 AM, arnold at skeeve.com wrote: > > > > Paul Ruizendaal wrote: > > > >> I’m trying to understand the origins of void pointers in C. I think > >> they first appeared formally in the C89 spec, but may have existed in > >> earlier compilers. > > > > void was added after the publication of the first edition of K&R, in > > the V7 time frame. The 4.x compilers had support for void pointers and > > functions returning void. Also added around the same time was structure > > assignment and the ability to pass and return structs by value (although > > this was little used). > > > >> In the 4BSD era there was caddr_t, which I think was used for pretty > >> much the same purposes. > > > > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land > code. > > > > HTH, > > > > Arnold > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Mon Nov 6 01:43:06 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Sun, 5 Nov 2017 10:43:06 -0500 (EST) Subject: [TUHS] origins of void* Message-ID: <20171105154306.D325018C09D@mercury.lcs.mit.edu> > From: Clem Cole > typing hard started to become more important in the kernel. I can imagine! The V6 kernel had all sorts of, ah, 'unusual' typing - as I learned to my cost when I did that hack version of 'splice()' (to allow a process in a pipline to drop out, and join the two pipes together directly), which I did in V6 (my familiar kernel haunt). Since a lot of code does pointer math to generate wait 'channel' numbers, e.g.: sleep(ip+2, PPIPE); when I naively (out of habit) tried to declare my pointers to be the correct type, the math didn't work any more! ('ip', in this particular case, was declared to be an 'int *'.) No doubt part of this was inherited from older versions (of the system, and C); the code was working, and there was no call to tweak it. The lack of casts/coercion in the V6 C compiler may have been an issue, too - I had to do some equally odd things to make my splice() code work! Noel From norman at oclsc.org Mon Nov 6 02:29:19 2017 From: norman at oclsc.org (Norman Wilson) Date: Sun, 05 Nov 2017 12:29:19 -0400 Subject: [TUHS] Oh *snap*! Message-ID: <1509899363.14718.for-standards-violators@oclsc.org> Derrik Walker v2.0: Webve got all our wood behind one error! ==== But you can't get the wood, you know. Norman Wilson Toronto ON From clemc at ccc.com Mon Nov 6 03:53:35 2017 From: clemc at ccc.com (Clem cole) Date: Sun, 5 Nov 2017 09:53:35 -0800 Subject: [TUHS] origins of void* In-Reply-To: References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> Message-ID: Correct. When void came into C, full typing was already there; so void * was a part and it was first exploited because of the useful property of the return. The ptr properties became more and more important as its power was realized. FYI. K&R was written before V7 was released and matched the Typesetter C compiler for V6 more than the later compiler released in V7. i.e. A slightly more mature version compiler was included in UNIX/TS which was what Bourne used as the V7 ‘project manager’ (Steve had a couple interesting stories about the later process). By that point in time void had been added as formal type to the language. As since Bourne had been the driver for void it is not surprising that he picked up a version of the compiler that he thought was important. Thus as was noted it meant the book and released compiler were not in sync. Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > On Nov 5, 2017, at 7:14 AM, Warner Losh wrote: > > void functions certainly were much more widely used before void *, but void * worked on all the compilers I ever used. I'm a relative newcomer, though, since the first C compiler I used was on a VAX running 4.2BSD... > > Warner > >> On Sun, Nov 5, 2017 at 6:20 AM, Ron Natalie wrote: >> Yes. Correct me if I’m wrong, but I recall functions returning void came before void*. >> >> Sent from my iPhone >> >> > On Nov 5, 2017, at 5:06 AM, arnold at skeeve.com wrote: >> > >> > Paul Ruizendaal wrote: >> > >> >> I’m trying to understand the origins of void pointers in C. I think >> >> they first appeared formally in the C89 spec, but may have existed in >> >> earlier compilers. >> > >> > void was added after the publication of the first edition of K&R, in >> > the V7 time frame. The 4.x compilers had support for void pointers and >> > functions returning void. Also added around the same time was structure >> > assignment and the ability to pass and return structs by value (although >> > this was little used). >> > >> >> In the 4BSD era there was caddr_t, which I think was used for pretty >> >> much the same purposes. >> > >> > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. >> > >> > HTH, >> > >> > Arnold >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Mon Nov 6 04:04:22 2017 From: clemc at ccc.com (Clem cole) Date: Sun, 5 Nov 2017 10:04:22 -0800 Subject: [TUHS] TERM for v8 In-Reply-To: <5da5899d-1768-7970-4316-a75c92c7cd54@gmail.com> References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> <61E89B92-FC04-43B6-9AC2-2752BC146528@ccc.com> <5da5899d-1768-7970-4316-a75c92c7cd54@gmail.com> Message-ID: <95C8CDF3-7290-4416-83A9-F9A23058AF3D@ccc.com> I think the problem is before then. You need to have the baud rate set before the shell is forked. For serial ports like DZ and DH that is done in by the values of /etc/ttys Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > On Nov 5, 2017, at 6:01 AM, Will Senn wrote: > > That makes sense. Any idea where to start looking if the console thinks the baudrate is 0 even after setting it (supposedly)? I looked at the source code for stty.c (briefly) and it looks like it oughta work, if ioctl works... other things work ok nl, cr, etc., just speed doesn't have an effect... When I get home later, I'll prolly try putting some print statments in stty.c to see what it thinks it's doing. Here's what I see on the command line in the console: > > # stty > speed: 0 baud > erase = ^H; kill = @; intr = ^?; quit = ^\ > start = ^Q; stop = ^S; eof = ^D; brk > old even odd -raw -nl echo -lcase -tabs -cbreak -tandem nl0 cr0 ff0 bs0 > # stty 9600 > # stty > speed: 0 baud > erase = ^H; kill = @; intr = ^?; quit = ^\ > start = ^Q; stop = ^S; eof = ^D; brk > old even odd -raw -nl echo -lcase -tabs -cbreak -tandem nl0 cr0 ff0 bs0 > # > > Will > >> On 11/5/17 12:44 AM, Clem cole wrote: >> This is a feature of vi. If the baud rate is perceived to be at or less than a specific value (1200 IIRC) the screen is set to 8 lines at a time to keep repainting low. >> >> This was useful on dialup lines. >> >> Since you have a virtual serial port the baud rate has no bearing other than upper level applications trying to make inferences about the environment such as this. >> >> If you set the baud rate to 19200 or 38400 (EXTA and EXTB in the virgin V7 code base) those were the fastest serial speeds in those days. So any SW should infer the ‘best’ behavior. >> >> >> Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. >> >> On Nov 4, 2017, at 9:34 PM, William Corcoran wrote: >> >>> >>> I had a similar issue with BSD 2.11. >>> So, I hope this helps. >>> >>> You can use vt100. However, make sure your baud rate is 9600. >>> >>> stty 9600 >>> >>> (SIMH makes the virtual adjustment so you don’t need to worry about SIMH settings.) >>> >>> I am using BSD 2.11 on a Mac with SIMH. I noticed the console port would have a short window. But, logging into dz ports were fine. Setting the console baud rate to match the dz11 settings fixed the issue. >>> >>> So, I suspect either a setting in vi that changes the window size on slow devices or it’s hard coded somewhere. I will take a look. >>> >>> Truly, >>> >>> Bill Corcoran >>> >>> >>> On Nov 5, 2017, at 12:03 AM, Will Senn wrote: >>> >>>> What should I set TERM to on V8 to get the best results on my Mac Terminal. If I set it to vt52, vt100, or vt132, only 8 lines appear at the bottom of the terminal window (of about 24 lines): >>>> >>>> --- >>>> >>>> root::0:4:m0130,m322:/: >>>> daemon:x:1:1:m0000,m000:/: >>>> sys:sorry:2:1:m0130,m322:/usr/sys:no-login >>>> bin:sorry:3:4:m0130,m322:/bin: >>>> ken:sorry:6:1:m0130,m322:/usr/ken: >>>> dmr:sorry:7:4:mh1092,m069:/usr/dmr: >>>> nuucp::238:1:mh2019,m285,uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico >>>> uucp::48:1:mh2019,m285,nowitz:/usr/lib/uucp: >>>> "passwd" 20 lines, 770 characters >>>> ---- >>>> >>>> The 8 line window works about like I'd expect - the arrow keys move up and down until the screen needs to scroll, then B's and A's show up. I'm used to that on BSD. Using the j and k keys work better and when I scroll down enough lines, the lines move up to fill the whole terminal window and the file can be edited in the full window. Is there a better TERM setting that will get 24 lines to show up on file open? >>>> >>>> Thanks, >>>> >>>> Will >>>> >>>> -- >>>> GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF >>>> > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From steve at quintile.net Mon Nov 6 04:29:12 2017 From: steve at quintile.net (Steve Simon) Date: Sun, 5 Nov 2017 18:29:12 +0000 Subject: [TUHS] origins of void* In-Reply-To: References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> Message-ID: <09628F7B-28C9-4F72-91E8-665AE5BF6425@quintile.net> I started out on Edition 7, this was the interdata / perkin elmer port of v7 (based on Richard Milker’s work at Wollongong with some bits of 2.4BSD added in (csh and vi i remember). i remember this having a modified v6 compiler which had the shared namespace fir all structure members (hence the stat.st_mtime and friends). but it also had structure assignment and enums. anyone know where this fits into the compiler evolution, or was it an evolutionary dead end? -Steve > On 5 Nov 2017, at 17:53, Clem cole wrote: > > Correct. When void came into C, full typing was already there; so void * was a part and it was first exploited because of the useful property of the return. The ptr properties became more and more important as its power was realized. > > FYI. K&R was written before V7 was released and matched the Typesetter C compiler for V6 more than the later compiler released in V7. i.e. A slightly more mature version compiler was included in UNIX/TS which was what Bourne used as the V7 ‘project manager’ (Steve had a couple interesting stories about the later process). By that point in time void had been added as formal type to the language. > > As since Bourne had been the driver for void it is not surprising that he picked up a version of the compiler that he thought was important. Thus as was noted it meant the book and released compiler were not in sync. > > > > Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > >> On Nov 5, 2017, at 7:14 AM, Warner Losh wrote: >> >> void functions certainly were much more widely used before void *, but void * worked on all the compilers I ever used. I'm a relative newcomer, though, since the first C compiler I used was on a VAX running 4.2BSD... >> >> Warner >> >>> On Sun, Nov 5, 2017 at 6:20 AM, Ron Natalie wrote: >>> Yes. Correct me if I’m wrong, but I recall functions returning void came before void*. >>> >>> Sent from my iPhone >>> >>> > On Nov 5, 2017, at 5:06 AM, arnold at skeeve.com wrote: >>> > >>> > Paul Ruizendaal wrote: >>> > >>> >> I’m trying to understand the origins of void pointers in C. I think >>> >> they first appeared formally in the C89 spec, but may have existed in >>> >> earlier compilers. >>> > >>> > void was added after the publication of the first edition of K&R, in >>> > the V7 time frame. The 4.x compilers had support for void pointers and >>> > functions returning void. Also added around the same time was structure >>> > assignment and the ability to pass and return structs by value (although >>> > this was little used). >>> > >>> >> In the 4BSD era there was caddr_t, which I think was used for pretty >>> >> much the same purposes. >>> > >>> > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. >>> > >>> > HTH, >>> > >>> > Arnold >>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Mon Nov 6 04:55:58 2017 From: will.senn at gmail.com (Will Senn) Date: Sun, 5 Nov 2017 12:55:58 -0600 Subject: [TUHS] TERM for v8 In-Reply-To: <95C8CDF3-7290-4416-83A9-F9A23058AF3D@ccc.com> References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> <61E89B92-FC04-43B6-9AC2-2752BC146528@ccc.com> <5da5899d-1768-7970-4316-a75c92c7cd54@gmail.com> <95C8CDF3-7290-4416-83A9-F9A23058AF3D@ccc.com> Message-ID: <712a3d52-7b3e-b4ac-b1c1-a65ca5a863ab@gmail.com> I edited ttys: cat /etc/ttys 1jconsole 12tty00 and rebooted, no effect (the j should mean exta or 19600). I also tried 18console, but it didn't have an effect either. Will On 11/5/17 12:04 PM, Clem cole wrote: > I think the problem is before then.  You need to have the baud rate > set before the shell is forked.  For serial ports like DZ and DH that > is done in by the values of /etc/ttys > > Sent from my PDP-7 Running UNIX V0 expect things to be almost but not > quite. > > On Nov 5, 2017, at 6:01 AM, Will Senn > wrote: > >> That makes sense. Any idea where to start looking if the console >> thinks the baudrate is 0 even after setting it (supposedly)? I looked >> at the source code for stty.c (briefly) and it looks like it oughta >> work, if ioctl works... other things work ok nl, cr, etc., just speed >> doesn't have an effect... When I get home later, I'll prolly try >> putting some print statments in stty.c to see what it thinks it's >> doing. Here's what I see on the command line in the console: >> >> # stty >> speed: 0 baud >> erase = ^H; kill = @; intr = ^?; quit = ^\ >> start = ^Q; stop = ^S; eof = ^D; brk >> old even odd -raw -nl echo -lcase -tabs -cbreak -tandem nl0 cr0 ff0 bs0 >> # stty 9600 >> # stty >> speed: 0 baud >> erase = ^H; kill = @; intr = ^?; quit = ^\ >> start = ^Q; stop = ^S; eof = ^D; brk >> old even odd -raw -nl echo -lcase -tabs -cbreak -tandem nl0 cr0 ff0 bs0 >> # >> >> Will >> >> On 11/5/17 12:44 AM, Clem cole wrote: >>> This is a feature of vi.   If the baud rate is perceived to be at or >>> less than a specific value (1200 IIRC) the screen is set to 8 lines >>> at a time to keep repainting low. >>> >>> This was useful on dialup lines. >>> >>> Since you have a virtual serial port the baud rate has no bearing >>> other than upper level applications trying to make inferences about >>> the environment such as this. >>> >>> If you set the baud rate to 19200 or 38400 (EXTA and EXTB in the >>> virgin V7 code base) those were the fastest serial speeds in those >>> days. So any SW should infer the ‘best’ behavior. >>> >>> >>> Sent from my PDP-7 Running UNIX V0 expect things to be almost but >>> not quite. >>> >>> On Nov 4, 2017, at 9:34 PM, William Corcoran >> > wrote: >>> >>>> >>>> I had a similar issue with BSD 2.11. >>>> So, I hope this helps. >>>> >>>> You can use vt100.   However, make sure your baud rate is 9600. >>>> >>>> stty 9600 >>>> >>>> (SIMH makes the virtual adjustment so you don’t need to worry about >>>> SIMH settings.) >>>> >>>> I am using BSD 2.11 on a Mac with SIMH.  I noticed the console port >>>> would have a short window.   But, logging into dz ports were fine. >>>>   Setting the console baud rate to match the dz11 settings fixed >>>> the issue. >>>> >>>> So, I suspect either a setting in vi that changes the window size >>>> on slow devices or it’s hard coded somewhere.  I will take a look. >>>> >>>> Truly, >>>> >>>> Bill Corcoran >>>> >>>> >>>> On Nov 5, 2017, at 12:03 AM, Will Senn >>> > wrote: >>>> >>>>> What should I set TERM to on V8 to get the best results on my Mac >>>>> Terminal. If I set it to vt52, vt100, or vt132, only 8 lines >>>>> appear at the bottom of the terminal window (of about 24 lines): >>>>> >>>>> --- >>>>> >>>>> root::0:4:m0130,m322:/: >>>>> daemon:x:1:1:m0000,m000:/: >>>>> sys:sorry:2:1:m0130,m322:/usr/sys:no-login >>>>> bin:sorry:3:4:m0130,m322:/bin: >>>>> ken:sorry:6:1:m0130,m322:/usr/ken: >>>>> dmr:sorry:7:4:mh1092,m069:/usr/dmr: >>>>> nuucp::238:1:mh2019,m285,uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico >>>>> uucp::48:1:mh2019,m285,nowitz:/usr/lib/uucp: >>>>> "passwd" 20 lines, 770 characters >>>>> ---- >>>>> >>>>> The 8 line window works about like I'd expect - the arrow keys >>>>> move up and down until the screen needs to scroll, then B's and >>>>> A's show up. I'm used to that on BSD. Using the j and k keys work >>>>> better and when I scroll down enough lines, the lines move up to >>>>> fill the whole terminal window and the file can be edited in the >>>>> full window. Is there a better TERM setting that will get 24 lines >>>>> to show up on file open? >>>>> >>>>> Thanks, >>>>> >>>>> Will >>>>> >>>>> -- >>>>> GPG Fingerprint: 68F4 B3BD 1730 555A 4462  7D45 3EAA 5B6D A982 BAAF >>>>> >> >> -- >> GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From bakul at bitblocks.com Mon Nov 6 05:00:22 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Sun, 05 Nov 2017 11:00:22 -0800 Subject: [TUHS] TERM for v8 In-Reply-To: Your message of "Sun, 05 Nov 2017 12:55:58 -0600." <712a3d52-7b3e-b4ac-b1c1-a65ca5a863ab@gmail.com> References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> <61E89B92-FC04-43B6-9AC2-2752BC146528@ccc.com> <5da5899d-1768-7970-4316-a75c92c7cd54@gmail.com> <95C8CDF3-7290-4416-83A9-F9A23058AF3D@ccc.com> <712a3d52-7b3e-b4ac-b1c1-a65ca5a863ab@gmail.com> Message-ID: <20171105190037.71E88156E7D7@mail.bitblocks.com> Based on the following snippet my guess is that the kernel doesn't report the right baud rate for the console. > >> # stty 9600 > >> # stty > >> speed: 0 baud From will.senn at gmail.com Mon Nov 6 05:28:18 2017 From: will.senn at gmail.com (Will Senn) Date: Sun, 5 Nov 2017 13:28:18 -0600 Subject: [TUHS] TERM for v8 In-Reply-To: <20171105190037.71E88156E7D7@mail.bitblocks.com> References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> <61E89B92-FC04-43B6-9AC2-2752BC146528@ccc.com> <5da5899d-1768-7970-4316-a75c92c7cd54@gmail.com> <95C8CDF3-7290-4416-83A9-F9A23058AF3D@ccc.com> <712a3d52-7b3e-b4ac-b1c1-a65ca5a863ab@gmail.com> <20171105190037.71E88156E7D7@mail.bitblocks.com> Message-ID: <3c04537a-70d3-e37f-017a-0e6439c199ec@gmail.com> On 11/5/17 1:00 PM, Bakul Shah wrote: > Based on the following snippet my guess is that the kernel > doesn't report the right baud rate for the console. > >>>> # stty 9600 >>>> # stty >>>> speed: 0 baud Yeabut, it works fine on tty00 (the DZ): # stty exta # stty speed: 19200 baud ... -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From bakul at bitblocks.com Mon Nov 6 05:43:18 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Sun, 05 Nov 2017 11:43:18 -0800 Subject: [TUHS] TERM for v8 In-Reply-To: Your message of "Sun, 05 Nov 2017 13:28:18 -0600." <3c04537a-70d3-e37f-017a-0e6439c199ec@gmail.com> References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> <61E89B92-FC04-43B6-9AC2-2752BC146528@ccc.com> <5da5899d-1768-7970-4316-a75c92c7cd54@gmail.com> <95C8CDF3-7290-4416-83A9-F9A23058AF3D@ccc.com> <712a3d52-7b3e-b4ac-b1c1-a65ca5a863ab@gmail.com> <20171105190037.71E88156E7D7@mail.bitblocks.com> <3c04537a-70d3-e37f-017a-0e6439c199ec@gmail.com> Message-ID: <20171105194334.35487156E7D7@mail.bitblocks.com> On Sun, 05 Nov 2017 13:28:18 -0600 Will Senn wrote: Will Senn writes: > On 11/5/17 1:00 PM, Bakul Shah wrote: > > Based on the following snippet my guess is that the kernel > > doesn't report the right baud rate for the console. > > > >>>> # stty 9600 > >>>> # stty > >>>> speed: 0 baud > > Yeabut, it works fine on tty00 (the DZ): > > # stty exta > # stty > speed: 19200 baud > > ... I have no clue about v8 but at least in v7 these were different drivers. Looking at v7/usr/sys/dev/kl.c I don't see klioctl() like dzioctl() in the dz driver. So my guess is console ioctls return EINVAL. From clemc at ccc.com Mon Nov 6 06:12:10 2017 From: clemc at ccc.com (Clem cole) Date: Sun, 5 Nov 2017 12:12:10 -0800 Subject: [TUHS] origins of void* In-Reply-To: <09628F7B-28C9-4F72-91E8-665AE5BF6425@quintile.net> References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> <09628F7B-28C9-4F72-91E8-665AE5BF6425@quintile.net> Message-ID: That sounds like the Ritchie V7 compiler or the Typersetter C from featured although since it was for the PE target could, I suspect it have been based on Steve’s by then. Any idea where the backend came from? Was it from BTL or was it a different code generator? I didn’t think much of the PE work left research but I don’t know for sure. IIRC Leffler and Shannon had something for a compiler backend at Case when they started their PE port, although they had to do some hacking as the model they had was different from any previous PE (they had to deal with a number of 7 bit and 24 bit issues). I believe one of the attractions to the PE was they model the Research folks had access was 32 bits and the PDP-11 was 16. I’ll try to ask Sam with what they started. Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > On Nov 5, 2017, at 10:29 AM, Steve Simon wrote: > > I started out on Edition 7, this was > the interdata / perkin elmer port of v7 (based on Richard Milker’s work at Wollongong with some bits of 2.4BSD added in (csh and vi i remember). > > i remember this having a modified v6 compiler which had the shared namespace fir all structure members (hence the stat.st_mtime and friends). but it also had structure assignment and enums. > > anyone know where this fits into the compiler evolution, or was it an evolutionary dead end? > > -Steve > > >> On 5 Nov 2017, at 17:53, Clem cole wrote: >> >> Correct. When void came into C, full typing was already there; so void * was a part and it was first exploited because of the useful property of the return. The ptr properties became more and more important as its power was realized. >> >> FYI. K&R was written before V7 was released and matched the Typesetter C compiler for V6 more than the later compiler released in V7. i.e. A slightly more mature version compiler was included in UNIX/TS which was what Bourne used as the V7 ‘project manager’ (Steve had a couple interesting stories about the later process). By that point in time void had been added as formal type to the language. >> >> As since Bourne had been the driver for void it is not surprising that he picked up a version of the compiler that he thought was important. Thus as was noted it meant the book and released compiler were not in sync. >> >> >> >> Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. >> >>> On Nov 5, 2017, at 7:14 AM, Warner Losh wrote: >>> >>> void functions certainly were much more widely used before void *, but void * worked on all the compilers I ever used. I'm a relative newcomer, though, since the first C compiler I used was on a VAX running 4.2BSD... >>> >>> Warner >>> >>>> On Sun, Nov 5, 2017 at 6:20 AM, Ron Natalie wrote: >>>> Yes. Correct me if I’m wrong, but I recall functions returning void came before void*. >>>> >>>> Sent from my iPhone >>>> >>>> > On Nov 5, 2017, at 5:06 AM, arnold at skeeve.com wrote: >>>> > >>>> > Paul Ruizendaal wrote: >>>> > >>>> >> I’m trying to understand the origins of void pointers in C. I think >>>> >> they first appeared formally in the C89 spec, but may have existed in >>>> >> earlier compilers. >>>> > >>>> > void was added after the publication of the first edition of K&R, in >>>> > the V7 time frame. The 4.x compilers had support for void pointers and >>>> > functions returning void. Also added around the same time was structure >>>> > assignment and the ability to pass and return structs by value (although >>>> > this was little used). >>>> > >>>> >> In the 4BSD era there was caddr_t, which I think was used for pretty >>>> >> much the same purposes. >>>> > >>>> > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. >>>> > >>>> > HTH, >>>> > >>>> > Arnold >>>> >>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul.winalski at gmail.com Mon Nov 6 06:42:19 2017 From: paul.winalski at gmail.com (Paul Winalski) Date: Sun, 5 Nov 2017 15:42:19 -0500 Subject: [TUHS] TERM for v8 In-Reply-To: <20171105194334.35487156E7D7@mail.bitblocks.com> References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> <61E89B92-FC04-43B6-9AC2-2752BC146528@ccc.com> <5da5899d-1768-7970-4316-a75c92c7cd54@gmail.com> <95C8CDF3-7290-4416-83A9-F9A23058AF3D@ccc.com> <712a3d52-7b3e-b4ac-b1c1-a65ca5a863ab@gmail.com> <20171105190037.71E88156E7D7@mail.bitblocks.com> <3c04537a-70d3-e37f-017a-0e6439c199ec@gmail.com> <20171105194334.35487156E7D7@mail.bitblocks.com> Message-ID: On 11/5/17, Bakul Shah wrote: > > I have no clue about v8 but at least in v7 these were > different drivers. Looking at v7/usr/sys/dev/kl.c I don't see > klioctl() like dzioctl() in the dz driver. So my guess is > console ioctls return EINVAL. > That would seem to indicate that stty isn't checking for ioctl() failure. Or at least it isn't displaying an error message if that happens. -Paul W. From pnr at planet.nl Mon Nov 6 06:44:07 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Sun, 5 Nov 2017 21:44:07 +0100 Subject: [TUHS] origins of void* In-Reply-To: <201711051006.vA5A6BO2032436@freefriends.org> References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> Message-ID: <84CC038A-18DA-4E04-B2BC-8AC50F863B7B@planet.nl> Many thanks all for the replies, most enlightening. I’ve examined the compiler sources for recognising ‘void’ as a keyword in the lexer, as far as available on the TUHS Unix Tree web pages. For the PDP11 with pcc the results are that void is not present in V7, but is in SysIII. That is consistent with it being first implemented in 1979 on Unix/TS, and just missing the V7 release. As to the Ritchie compiler, void only first appears in SysV in 1983 (it is not in 2.9BSD). For the VAX it is not in 32V and 3BSD, but it is in 4BSD. So it would seem that void pointers were available to the wider world (including BSD) from the summer of 1980 onwards. >> In the 4BSD era there was caddr_t, which I think was used for pretty >> much the same purposes. > > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. Ah, thanks for pointing that out, I had not realised that and it helps explain some things. But why wasn’t caddr_t used for user-land code: usage in the signature of e.g. write() would have made sense, right? In 4.1x BSD the definition of caddr_t remains 'char *', not 'void *’. Was there a special reason for that, or was that simply inertia from what it was in the V7 source? Paul From imp at bsdimp.com Mon Nov 6 07:06:56 2017 From: imp at bsdimp.com (Warner Losh) Date: Sun, 5 Nov 2017 14:06:56 -0700 Subject: [TUHS] origins of void* In-Reply-To: <84CC038A-18DA-4E04-B2BC-8AC50F863B7B@planet.nl> References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> <84CC038A-18DA-4E04-B2BC-8AC50F863B7B@planet.nl> Message-ID: On Nov 5, 2017 1:44 PM, "Paul Ruizendaal" wrote: Many thanks all for the replies, most enlightening. I’ve examined the compiler sources for recognising ‘void’ as a keyword in the lexer, as far as available on the TUHS Unix Tree web pages. For the PDP11 with pcc the results are that void is not present in V7, but is in SysIII. That is consistent with it being first implemented in 1979 on Unix/TS, and just missing the V7 release. As to the Ritchie compiler, void only first appears in SysV in 1983 (it is not in 2.9BSD). For the VAX it is not in 32V and 3BSD, but it is in 4BSD. So it would seem that void pointers were available to the wider world (including BSD) from the summer of 1980 onwards. >> In the 4BSD era there was caddr_t, which I think was used for pretty >> much the same purposes. > > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. Ah, thanks for pointing that out, I had not realised that and it helps explain some things. But why wasn’t caddr_t used for user-land code: usage in the signature of e.g. write() would have made sense, right? In 4.1x BSD the definition of caddr_t remains 'char *', not 'void *’. Was there a special reason for that, or was that simply inertia from what it was in the V7 source? It is still is defined like that in FreeBSD. So p + 5 works. It doesn't for void *, except as a gcc extension. Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From chet.ramey at case.edu Mon Nov 6 07:08:01 2017 From: chet.ramey at case.edu (Chet Ramey) Date: Sun, 5 Nov 2017 16:08:01 -0500 Subject: [TUHS] origins of void* In-Reply-To: References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> <09628F7B-28C9-4F72-91E8-665AE5BF6425@quintile.net> Message-ID: On 11/5/17 3:12 PM, Clem cole wrote: > IIRC Leffler and Shannon had something > for a compiler backend at Case when they started their PE port, although > they had to do some hacking as the model they had was different from any > previous PE (they had to deal with a number of 7 bit and 24 bit issues). I > believe one of the attractions to the PE was they model the Research folks > had access was 32 bits and the PDP-11 was 16.   I’ll try to ask Sam with > what they started. It was a Harris /6 (I don't know how much that has in common with any PE model), Sam started with Johnson's PCC, and it was apparently a huge PITA. I have a copy of his thesis describing the work. -- ``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://cnswww.cns.cwru.edu/~chet/ From clemc at ccc.com Mon Nov 6 07:38:45 2017 From: clemc at ccc.com (Clem cole) Date: Sun, 5 Nov 2017 13:38:45 -0800 Subject: [TUHS] origins of void* In-Reply-To: References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> <09628F7B-28C9-4F72-91E8-665AE5BF6425@quintile.net> Message-ID: Thank you. Now that you mention it. I agree. I had forgotten and confused the Harris and PE Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > On Nov 5, 2017, at 1:08 PM, Chet Ramey wrote: > >> On 11/5/17 3:12 PM, Clem cole wrote: >> >> IIRC Leffler and Shannon had something >> for a compiler backend at Case when they started their PE port, although >> they had to do some hacking as the model they had was different from any >> previous PE (they had to deal with a number of 7 bit and 24 bit issues). I >> believe one of the attractions to the PE was they model the Research folks >> had access was 32 bits and the PDP-11 was 16. I’ll try to ask Sam with >> what they started. > > It was a Harris /6 (I don't know how much that has in common with any PE > model), Sam started with Johnson's PCC, and it was apparently a huge PITA. > I have a copy of his thesis describing the work. > > -- > ``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://cnswww.cns.cwru.edu/~chet/ From steve at quintile.net Mon Nov 6 07:53:34 2017 From: steve at quintile.net (Steve Simon) Date: Sun, 5 Nov 2017 21:53:34 +0000 Subject: [TUHS] origins of void* In-Reply-To: References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> <09628F7B-28C9-4F72-91E8-665AE5BF6425@quintile.net> Message-ID: <9E65A67A-9923-4BB9-801D-C3F860413711@quintile.net> Hi, Thinking about it some more, the compiler and linker only checked the first 7 or 8 characters - so I had to use hash8 (comp.sources.unix I think) to port JOVE. It also didn’t support a dynamically growing stack segment, so you had to use setstack(1) if you had an aggressively recursive code, the though I assume this was a kernel or hardware limitation rather than a compiler feature. -Steve > On 5 Nov 2017, at 20:12, Clem cole wrote: > > That sounds like the Ritchie V7 compiler or the Typersetter C from featured although since it was for the PE target could, I suspect it have been based on Steve’s by then. > > Any idea where the backend came from? Was it from BTL or was it a different code generator? I didn’t think much of the PE work left research but I don’t know for sure. IIRC Leffler and Shannon had something for a compiler backend at Case when they started their PE port, although they had to do some hacking as the model they had was different from any previous PE (they had to deal with a number of 7 bit and 24 bit issues). I believe one of the attractions to the PE was they model the Research folks had access was 32 bits and the PDP-11 was 16. I’ll try to ask Sam with what they started. > > Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > > On Nov 5, 2017, at 10:29 AM, Steve Simon wrote: > >> I started out on Edition 7, this was >> the interdata / perkin elmer port of v7 (based on Richard Milker’s work at Wollongong with some bits of 2.4BSD added in (csh and vi i remember). >> >> i remember this having a modified v6 compiler which had the shared namespace fir all structure members (hence the stat.st_mtime and friends). but it also had structure assignment and enums. >> >> anyone know where this fits into the compiler evolution, or was it an evolutionary dead end? >> >> -Steve >> >> >> On 5 Nov 2017, at 17:53, Clem cole wrote: >> >>> Correct. When void came into C, full typing was already there; so void * was a part and it was first exploited because of the useful property of the return. The ptr properties became more and more important as its power was realized. >>> >>> FYI. K&R was written before V7 was released and matched the Typesetter C compiler for V6 more than the later compiler released in V7. i.e. A slightly more mature version compiler was included in UNIX/TS which was what Bourne used as the V7 ‘project manager’ (Steve had a couple interesting stories about the later process). By that point in time void had been added as formal type to the language. >>> >>> As since Bourne had been the driver for void it is not surprising that he picked up a version of the compiler that he thought was important. Thus as was noted it meant the book and released compiler were not in sync. >>> >>> >>> >>> Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. >>> >>> On Nov 5, 2017, at 7:14 AM, Warner Losh wrote: >>> >>>> void functions certainly were much more widely used before void *, but void * worked on all the compilers I ever used. I'm a relative newcomer, though, since the first C compiler I used was on a VAX running 4.2BSD... >>>> >>>> Warner >>>> >>>> On Sun, Nov 5, 2017 at 6:20 AM, Ron Natalie wrote: >>>> Yes. Correct me if I’m wrong, but I recall functions returning void came before void*. >>>> >>>> Sent from my iPhone >>>> >>>> > On Nov 5, 2017, at 5:06 AM, arnold at skeeve.com wrote: >>>> > >>>> > Paul Ruizendaal wrote: >>>> > >>>> >> I’m trying to understand the origins of void pointers in C. I think >>>> >> they first appeared formally in the C89 spec, but may have existed in >>>> >> earlier compilers. >>>> > >>>> > void was added after the publication of the first edition of K&R, in >>>> > the V7 time frame. The 4.x compilers had support for void pointers and >>>> > functions returning void. Also added around the same time was structure >>>> > assignment and the ability to pass and return structs by value (although >>>> > this was little used). >>>> > >>>> >> In the 4BSD era there was caddr_t, which I think was used for pretty >>>> >> much the same purposes. >>>> > >>>> > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. >>>> > >>>> > HTH, >>>> > >>>> > Arnold >>>> >>>> From doug at cs.dartmouth.edu Mon Nov 6 10:37:16 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Sun, 05 Nov 2017 19:37:16 -0500 Subject: [TUHS] origins of void* Message-ID: <201711060037.vA60bGA2090787@tahoe.cs.Dartmouth.EDU> As has been explained, void came from Algol 68 via Steve Bourne. As no object could be declared void, void* was a useless construct. A kind of variable that could point to any object was required to state the type of useful functions like qsort. To avoid proliferation of keywords, the useless void* was pressed into service. I do not remember who suggested that. Doug From scj at yaccman.com Mon Nov 6 02:18:33 2017 From: scj at yaccman.com (Steve Johnson) Date: Sun, 05 Nov 2017 08:18:33 -0800 Subject: [TUHS] Fwd: [Simh] An abandoned piece of K&R C In-Reply-To: <160331EE-3C7D-4948-ADE3-E57FFDCA5EAF@serissa.com> Message-ID: <2b6fb33181aef8a68f6a6a21ff08a82271389a6a@webmail.yaccman.com> I'm not aware of any C implementation that actually generated code for MAX and MIN using these operators, although the operators were certainly discussed with that spelling.  I think many people just made do with:   #define MAX(a,b)  ((a)>(b))?(a):(b) despite the fact that it is wrong if a or b has side effects.   And with register variables, you could generate excellent code for max and min if that was a consideration. I think the reason was partly that the operators look a bit clunky.   And also that the implementation, like ? :, can be trickier than it first appears... Steve ----- Original Message ----- From: "Lawrence Stewart" To: "The Eunuchs Hysterical Society" Cc: Sent: Fri, 3 Nov 2017 08:53:40 -0400 Subject: [TUHS] Fwd: [Simh] An abandoned piece of K&R C This caught my attention.  Did early C really have min and max?  Were they used for anything?  In those days I was a BCPL user, which IIRC, did not have such things. -Larry Begin forwarded message: FROM: Leo Broukhis SUBJECT: [SIMH] AN ABANDONED PIECE OF K&R C DATE: 2017, November 3 at 1:14:42 AM EDT TO: "simh at trailing-edge.com [2]" https://retrocomputing.stackexchange.com/q/4965/4025 [4] In the UNIX V7 version of the C language, there were the / (min) and the / (max) operators. In the source of the scanner part of the compiler, case BSLASH:     if (subseq('/', 0, 1))         return(MAX);     goto unkn; case DIVIDE:     if (subseq('', 0, 1))         return(MIN); ... However, attempting to use them reveals that the corresponding part in the code generator is missing. Trying to compile foo(a, b) { return a / b; } results in 1: No code table for op: / The scanner piece survived in the copies of the compiler for various systems for several years. I tried to look for copies of the code generator table which would contain an implementation, but failed. Has anyone ever seen a working MIN/MAX operator in K&R C? Thanks,Leo _______________________________________________ Simh mailing list Simh at trailing-edge.com [5] http://mailman.trailing-edge.com/mailman/listinfo/simh Links: ------ [1] mailto:leob at mailcom.com [2] mailto:simh at trailing-edge.com [3] mailto:simh at trailing-edge.com [4] https://retrocomputing.stackexchange.com/q/4965/4025 [5] mailto:Simh at trailing-edge.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From scj at yaccman.com Mon Nov 6 14:59:45 2017 From: scj at yaccman.com (Steve Johnson) Date: Sun, 05 Nov 2017 20:59:45 -0800 Subject: [TUHS] origins of void* In-Reply-To: <201711060037.vA60bGA2090787@tahoe.cs.Dartmouth.EDU> Message-ID: <8a5e37c77e080833fceb808754ca78ede01105d8@webmail.yaccman.com> I tried to post this once, but it doesn't seem to have worked.   Apologies if you see this twice... Steve -------------------------- Ok, here's my memory of void *, blurred as it may be by time. Void was put into C, but it was actually not necessary by itself -- the default return type was int, and if nobody was using the value there was no particular reason to use void.  So only those who were practitioners of the strong-type religion tended to use it.  A major problem in making C strongly typed was deciding on a return type for malloc.  It had traditionally returned char *, but this required a cast to allow you to allocate things other than characters. I was at a /usr/grp conference at the alcohol-fueled reception talking to Charlie Roberts about the problems of making C more strongly typed.  The topic of malloc came up.  All of a sudden Charlie got a huge grin on his face and said "Hey!  Why don't we have malloc return void *".   It took me a minute or two to even understand what void * could possibly mean, but the idea was an instant winner.   I seem to recall it was done a week or two later.   The idea may have simply ready to be born and others may have had it as well, but this is what I remember of it.  And the experience sticks in my mind as being an almost literal example of being "struck by an idea". Steve ------------------------ ----- Original Message ----- From: "Doug McIlroy" To: Cc: Sent: Sun, 05 Nov 2017 19:37:16 -0500 Subject: Re: [TUHS] origins of void* As has been explained, void came from Algol 68 via Steve Bourne. As no object could be declared void, void* was a useless construct. A kind of variable that could point to any object was required to state the type of useful functions like qsort. To avoid proliferation of keywords, the useless void* was pressed into service. I do not remember who suggested that. Doug -------------- next part -------------- An HTML attachment was scrubbed... URL: From scj at yaccman.com Mon Nov 6 02:58:01 2017 From: scj at yaccman.com (Steve Johnson) Date: Sun, 05 Nov 2017 08:58:01 -0800 Subject: [TUHS] origins of void* In-Reply-To: <20171105154306.D325018C09D@mercury.lcs.mit.edu> Message-ID: Ok, here's my memory of void *, blurred as it may be by time. Void was put into C, but it was actually not necessary by itself -- the default return type was int, and if nobody was using the value there was no particular reason to use it.  So only those who were practitioners of the strong-type religion tended to use it.  A major problem in making C strongly typed was deciding on a return type for malloc.  It had traditionally returned char *, but this would require a cast to allow you to allocate things other than characters. I was at a /usr/grp conference at the alcohol-fueled reception talking to Charlie Roberts about the problems of making C more strongly typed.  The topic of malloc came up.  All of a sudden Charlie got a huge grin on his face and said "Hey!  Why don't we have malloc return void *".   It took me a minute or two to even understand what void * could possibly mean, but the idea was an instant winner.   I seem to recall it was done a week or two later.   The idea may have simply ready to be born and others may have had it as well, but this is what I remember of it.  And the experience sticks in my mind as being an almost literal example of being "struck by an idea". Steve ----- Original Message ----- From: "jnc at mercury.lcs.mit.edu (Noel" To: Cc: Sent:Sun, 5 Nov 2017 10:43:06 -0500 (EST) Subject:Re: [TUHS] origins of void* > From: Clem Cole > typing hard started to become more important in the kernel. I can imagine! The V6 kernel had all sorts of, ah, 'unusual' typing - as I learned to my cost when I did that hack version of 'splice()' (to allow a process in a pipline to drop out, and join the two pipes together directly), which I did in V6 (my familiar kernel haunt). Since a lot of code does pointer math to generate wait 'channel' numbers, e.g.: sleep(ip+2, PPIPE); when I naively (out of habit) tried to declare my pointers to be the correct type, the math didn't work any more! ('ip', in this particular case, was declared to be an 'int *'.) No doubt part of this was inherited from older versions (of the system, and C); the code was working, and there was no call to tweak it. The lack of casts/coercion in the V6 C compiler may have been an issue, too - I had to do some equally odd things to make my splice() code work! Noel -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnold at skeeve.com Mon Nov 6 17:24:38 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Mon, 06 Nov 2017 00:24:38 -0700 Subject: [TUHS] origins of void* In-Reply-To: <84CC038A-18DA-4E04-B2BC-8AC50F863B7B@planet.nl> References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> <84CC038A-18DA-4E04-B2BC-8AC50F863B7B@planet.nl> Message-ID: <201711060724.vA67OcYi004590@freefriends.org> Paul Ruizendaal wrote: > >> In the 4BSD era there was caddr_t, which I think was used for pretty > >> much the same purposes. > > > > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. > > Ah, thanks for pointing that out, I had not realised that and it helps > explain some things. But why wasn’t caddr_t used for user-land code: > usage in the signature of e.g. write() would have made sense, right? It's clear from K&R 1 that char* served as both pointer to string and generic pointer to memory. That's not unreasonable, since, in some sense, "memory is just bytes". So user-land code didn't need caddr_t. I also suspect that caddr_t came into being with the effort to port Unix off the PDP-11 and the weight of Unix practice before then had been to make do with char*. I think it helps to remember the evolutionary processes that were happening in the '70s. High level languages had caught on for application code (FORTRAN and COBOL in the US, Algol in Europe) but the weight of existing practice for *systems coding* (operating systems and utilities) had been to use assembly language. Multics proved that you could write an OS in a high level language, but Multics itself (at that time) wasn't a success. So when C came along in the mid-'70s, strong typing had essentially been absent from systems programming. With time and experience, along with the recognition in the general CS world that strong typing was valuable, C also started to evolve in that direction. This is my take on it, anyway. :-) HTH, Arnold From imp at bsdimp.com Tue Nov 7 01:02:53 2017 From: imp at bsdimp.com (Warner Losh) Date: Mon, 6 Nov 2017 08:02:53 -0700 Subject: [TUHS] origins of void* In-Reply-To: <201711060724.vA67OcYi004590@freefriends.org> References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> <84CC038A-18DA-4E04-B2BC-8AC50F863B7B@planet.nl> <201711060724.vA67OcYi004590@freefriends.org> Message-ID: On Mon, Nov 6, 2017 at 12:24 AM, wrote: > Paul Ruizendaal wrote: > > > >> In the 4BSD era there was caddr_t, which I think was used for pretty > > >> much the same purposes. > > > > > > Only for kernel code. I am pretty sure caddr_t wasn't used in > user-land code. > > > > Ah, thanks for pointing that out, I had not realised that and it helps > > explain some things. But why wasn’t caddr_t used for user-land code: > > usage in the signature of e.g. write() would have made sense, right? > > It's clear from K&R 1 that char* served as both pointer to string and > generic pointer to memory. That's not unreasonable, since, in some sense, > "memory is just bytes". So user-land code didn't need caddr_t. I also > suspect that caddr_t came into being with the effort to port Unix off > the PDP-11 and the weight of Unix practice before then had been to make > do with char*. > > I think it helps to remember the evolutionary processes that were happening > in the '70s. High level languages had caught on for application code > (FORTRAN and COBOL in the US, Algol in Europe) but the weight of existing > practice for *systems coding* (operating systems and utilities) had been > to use assembly language. Multics proved that you could write an OS in > a high level language, but Multics itself (at that time) wasn't a success. > > So when C came along in the mid-'70s, strong typing had essentially been > absent from systems programming. With time and experience, along with > the recognition in the general CS world that strong typing was valuable, > C also started to evolve in that direction. > I thought there'd also been some influences from BLISS... DEC did much of their system programming in BLISS along side the MACRO-{11,32,20}.... Not exactly a strongly typed language, but another entry in the higher level language category that C was competing against. Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From bakul at bitblocks.com Tue Nov 7 02:21:02 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Mon, 06 Nov 2017 08:21:02 -0800 Subject: [TUHS] TERM for v8 In-Reply-To: Your message of "Sun, 05 Nov 2017 15:42:19 -0500." References: <7247d8f1-2100-ff26-fc33-d5e782adea7a@gmail.com> <61E89B92-FC04-43B6-9AC2-2752BC146528@ccc.com> <5da5899d-1768-7970-4316-a75c92c7cd54@gmail.com> <95C8CDF3-7290-4416-83A9-F9A23058AF3D@ccc.com> <712a3d52-7b3e-b4ac-b1c1-a65ca5a863ab@gmail.com> <20171105190037.71E88156E7D7@mail.bitblocks.com> <3c04537a-70d3-e37f-017a-0e6439c199ec@gmail.com> <20171105194334.35487156E7D7@mail.bitblocks.com> Message-ID: <20171106162117.A8F8D156E7D7@mail.bitblocks.com> On Sun, 05 Nov 2017 15:42:19 -0500 Paul Winalski wrote: Paul Winalski writes: > On 11/5/17, Bakul Shah wrote: > > > > I have no clue about v8 but at least in v7 these were > > different drivers. Looking at v7/usr/sys/dev/kl.c I don't see > > klioctl() like dzioctl() in the dz driver. So my guess is > > console ioctls return EINVAL. > > > That would seem to indicate that stty isn't checking for ioctl() > failure. Or at least it isn't displaying an error message if that > happens. Yes, v8 stty ignores all ioctl results! v8 has cons.c for the console device and it basically ignores ioctls. From will.senn at gmail.com Tue Nov 7 04:36:40 2017 From: will.senn at gmail.com (Will Senn) Date: Mon, 6 Nov 2017 12:36:40 -0600 Subject: [TUHS] V8 and the terminal Message-ID: Ok... so I got vi to work full screen in a telnet session to the DZ port in V8. BTW TERM=vt132 seems to be the best option given the existing termcap. Yay. Now I'm a happy camper with my v8 instance and I'm reading Rochkind's book and learning lots more about everything from unix error codes to system programming etc. V8 is much more familiar ground to me than earlier versions (mostly vi) at this point. Anyway, my first question of the day is this - is vt132 the best that I can do terminalwise? I'm not totally up to speed on terminals in ancient (or modern) unices, but I've been reading, and it seems that if I can match a termcap entry to my emulated terminal with a majority of available capabilities, that I would reach screen nirvana in my instance. Now, it also seems like my mac will emulate different terminals and defaults to something like xterm-256. I don't expect color to be supported, but I don't really know. This leads to a second question, if I take an xterm termcap entry and put it in my termcap file, will it work better than the vt entries? Is my logic correct, or am I thinking incorrectly about this? Sidenote: now that I'm in v8 and having used v6 and v7 - McIlroy's reader actually is much, much more interesting and handy! Thanks, Doug! Sent from my iPhone Sent from my iPhone From scj at yaccman.com Tue Nov 7 07:46:16 2017 From: scj at yaccman.com (Steve Johnson) Date: Mon, 06 Nov 2017 13:46:16 -0800 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: Message-ID: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> I had a senior moment when I sent out my posting about the origin of void *.   The person in question was Larry Rossler, not Charlie Roberts -- apologies to both! Larry was active in the ANSI committee, so he had a bully pulpit for suggesting this change... About Bliss, there certainly was a bit of a competition for a while between C and Bliss, and Bliss wasn't such a bad language.  But the technology behind it was pretty ugly.  You had to compile PDP-11 programs on a Dec System 20, which shut out a large percentage of the people who might have been interested.   And they took a very relaxed stance of pointer aliasing -- basically, the compiler assumed that no two pointers pointed to the same thing unless you turned on a flag in which case it assume all pointers pointed to all other pointers.  This would not have worked well for system code... Pascal was a much more serious competitor -- it was much easier to teach 75 people in a room how to program in Pascal than in C, and P-code was a reasonable portability mechanism.  The differences have been much discussed in this forum so I won't restart that thread again... At one point about 15 years after C has pretty much won over Bliss, I gave a job interview to a programmer at Dec who was responsible for maintaining 50 million lines of bliss.   I've rarely met anyone who was more determined to change jobs! Steve ----- Original Message ----- From: "Warner Losh" To: Cc: "TUHS main list" , "Paul Ruizendaal" Sent: Mon, 6 Nov 2017 08:02:53 -0700 Subject: Re: [TUHS] origins of void* On Mon, Nov 6, 2017 at 12:24 AM, wrote: Paul Ruizendaal wrote: > >> In the 4BSD era there was caddr_t, which I think was used for pretty > >> much the same purposes. > > > > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. > > Ah, thanks for pointing that out, I had not realised that and it helps > explain some things. But why wasn’t caddr_t used for user-land code: > usage in the signature of e.g. write() would have made sense, right? It's clear from K&R 1 that char* served as both pointer to string and generic pointer to memory.  That's not unreasonable, since, in some sense, "memory is just bytes".  So user-land code didn't need caddr_t.  I also suspect that caddr_t came into being with the effort to port Unix off the PDP-11 and the weight of Unix practice before then had been to make do with char*. I think it helps to remember the evolutionary processes that were happening in the '70s.  High level languages had caught on for application code (FORTRAN and COBOL in the US, Algol in Europe) but the weight of existing practice for *systems coding* (operating systems and utilities) had been to use assembly language.  Multics proved that you could write an OS in a high level language, but Multics itself (at that time) wasn't a success. So when C came along in the mid-'70s, strong typing had essentially been absent from systems programming.  With time and experience, along with the recognition in the general CS world that strong typing was valuable, C also started to evolve in that direction. I thought there'd also been some influences from BLISS... DEC did much of their system programming in BLISS along side the MACRO-{11,32,20}....  Not exactly a strongly typed language, but another entry in the higher level language category that C was competing against. Warner  Links: ------ [1] mailto:arnold at skeeve.com [2] mailto:pnr at planet.nl -------------- next part -------------- An HTML attachment was scrubbed... URL: From imp at bsdimp.com Tue Nov 7 08:18:39 2017 From: imp at bsdimp.com (Warner Losh) Date: Mon, 6 Nov 2017 15:18:39 -0700 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> Message-ID: On Mon, Nov 6, 2017 at 2:46 PM, Steve Johnson wrote: > I had a senior moment when I sent out my posting about the origin of void > *. The person in question > was Larry Rossler, not Charlie Roberts -- apologies to both! > > Larry was active in the ANSI committee, so he had a bully pulpit for > suggesting this change... > > About Bliss, there certainly was a bit of a competition for a while > between C and Bliss, and Bliss wasn't such a bad language. But the > technology behind it was pretty ugly. You had to compile PDP-11 programs > on a Dec System 20, which shut out a large percentage of the people who > might have been interested. And they took a very relaxed stance of > pointer aliasing -- basically, the compiler assumed that no two pointers > pointed to the same thing unless you turned on a flag in which case it > assume all pointers pointed to all other pointers. This would not have > worked well for system code... > > Pascal was a much more serious competitor -- it was much easier to teach > 75 people in a room how to program in Pascal than in C, and P-code was a > reasonable portability mechanism. The differences have been much discussed > in this forum so I won't restart that thread again... > > At one point about 15 years after C has pretty much won over Bliss, I gave > a job interview to a programmer at Dec who was responsible for maintaining > 50 million lines of bliss. I've rarely met anyone who was more determined > to change jobs! > I've seen the signature "Bliss is ignorance" :) Warner > Steve > > > > ----- Original Message ----- > From: > "Warner Losh" > > To: > > Cc: > "TUHS main list" , "Paul Ruizendaal" > Sent: > Mon, 6 Nov 2017 08:02:53 -0700 > Subject: > Re: [TUHS] origins of void* > > > > > On Mon, Nov 6, 2017 at 12:24 AM, wrote: > >> Paul Ruizendaal wrote: >> >> > >> In the 4BSD era there was caddr_t, which I think was used for pretty >> > >> much the same purposes. >> > > >> > > Only for kernel code. I am pretty sure caddr_t wasn't used in >> user-land code. >> > >> > Ah, thanks for pointing that out, I had not realised that and it helps >> > explain some things. But why wasn’t caddr_t used for user-land code: >> > usage in the signature of e.g. write() would have made sense, right? >> >> It's clear from K&R 1 that char* served as both pointer to string and >> generic pointer to memory. That's not unreasonable, since, in some sense, >> "memory is just bytes". So user-land code didn't need caddr_t. I also >> suspect that caddr_t came into being with the effort to port Unix off >> the PDP-11 and the weight of Unix practice before then had been to make >> do with char*. >> >> I think it helps to remember the evolutionary processes that were >> happening >> in the '70s. High level languages had caught on for application code >> (FORTRAN and COBOL in the US, Algol in Europe) but the weight of existing >> practice for *systems coding* (operating systems and utilities) had been >> to use assembly language. Multics proved that you could write an OS in >> a high level language, but Multics itself (at that time) wasn't a success. >> >> So when C came along in the mid-'70s, strong typing had essentially been >> absent from systems programming. With time and experience, along with >> the recognition in the general CS world that strong typing was valuable, >> C also started to evolve in that direction. >> > > I thought there'd also been some influences from BLISS... DEC did much of > their system programming in BLISS along side the MACRO-{11,32,20}.... Not > exactly a strongly typed language, but another entry in the higher level > language category that C was competing against. > > Warner > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at ronnatalie.com Tue Nov 7 10:25:49 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 6 Nov 2017 19:25:49 -0500 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> Message-ID: <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> I believe one of C’s biggest failings is that they did not solve the schizophrenic definition of char*. Char* as historically implemented and then CODIFIED in the C and C++ standards is both the basic character type as well as the smallest addressable unit of storage. This was all peachy keen in the 8 bit ASCII days (and even earlier alternative character sets such as EBCDIC, and its predecessors and other historical character sets like UNIVAC’s fielddata), but fell apart when we started into the 16 bit and larger UNICODE. We needed a basic memory type that had sizeof == 1 (which void*) did not meet and release char from having to play double duty. -------------- next part -------------- An HTML attachment was scrubbed... URL: From krewat at kilonet.net Tue Nov 7 10:34:34 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Mon, 6 Nov 2017 19:34:34 -0500 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> Message-ID: char (at least these days) is signed. So really, it's 7-bit ASCII. I've been bitten by the 7-bit ASCII thing when it comes to modern character sets. unsigned char gets tiresome ;) On 11/6/2017 7:25 PM, Ron Natalie wrote: > > I believe one of C’s biggest failings is that they did not solve the > schizophrenic definition of char*. > > Char* as historically implemented and then  CODIFIED in the C and C++ > standards is both the basic character type as well as the smallest > addressable unit of storage. > > Thiswas all peachy keen in the 8 bit ASCII days (and even earlier > alternative character sets such as EBCDIC, and its predecessors and > other historical character sets like UNIVAC’s fielddata_), but fell > apart when we started into the 16 bit and larger UNICODE._ > > __ > > _We needed a basic memory type that had sizeof == 1 (which void*) did > not meet and release char from having to play double duty._ > > __ > > __ > > __ > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at ronnatalie.com Tue Nov 7 10:36:59 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 6 Nov 2017 19:36:59 -0500 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> Message-ID: <066d01d35760$85ec7720$91c56560$@ronnatalie.com> It’s worse than that. “char” is defined as neither signed nor unsigned. The signedness is implementation defined. This was why we have the inane “signed” keyword. From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Arthur Krewat Sent: Monday, November 6, 2017 7:35 PM To: tuhs at minnie.tuhs.org Subject: Re: [TUHS] origins of void* -- Apology! char (at least these days) is signed. So really, it's 7-bit ASCII. I've been bitten by the 7-bit ASCII thing when it comes to modern character sets. unsigned char gets tiresome ;) On 11/6/2017 7:25 PM, Ron Natalie wrote: I believe one of C’s biggest failings is that they did not solve the schizophrenic definition of char*. Char* as historically implemented and then CODIFIED in the C and C++ standards is both the basic character type as well as the smallest addressable unit of storage. This was all peachy keen in the 8 bit ASCII days (and even earlier alternative character sets such as EBCDIC, and its predecessors and other historical character sets like UNIVAC’s fielddata), but fell apart when we started into the 16 bit and larger UNICODE. We needed a basic memory type that had sizeof == 1 (which void*) did not meet and release char from having to play double duty. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bakul at bitblocks.com Tue Nov 7 11:09:09 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Mon, 6 Nov 2017 17:09:09 -0800 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> Message-ID: > On Nov 6, 2017, at 4:25 PM, Ron Natalie wrote: > > I believe one of C’s biggest failings is that they did not solve the schizophrenic definition of char*. > > Char* as historically implemented and then CODIFIED in the C and C++ standards is both the basic character type as well as the smallest addressable unit of storage. > This was all peachy keen in the 8 bit ASCII days (and even earlier alternative character sets such as EBCDIC, and its predecessors and other historical character sets like UNIVAC’s fielddata), but fell apart when we started into the 16 bit and larger UNICODE. > > We needed a basic memory type that had sizeof == 1 (which void*) did not meet and release char from having to play double duty. C has had uint8_t since C99. void* serves a different purpose. It says this is an untyped pointer (or a ptr to an instance of any type) so no question of size being an issue. It shouldn't even have been "void*". I would've preferred _* and _ instead of void* and void. Much more appropriate for a concise language like C! From ron at ronnatalie.com Tue Nov 7 11:55:44 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 6 Nov 2017 20:55:44 -0500 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> Message-ID: <06ab01d3576b$867db9a0$93792ce0$@ronnatalie.com> > C has had uint8_t since C99. uint8_t isn't the same thing as I was proposing. From will.senn at gmail.com Tue Nov 7 14:21:12 2017 From: will.senn at gmail.com (Will Senn) Date: Mon, 6 Nov 2017 22:21:12 -0600 Subject: [TUHS] Literal character escapes in v7 Message-ID: I wrote a snippet from my K&R C studies to convert tabs and backspaces to \t \b to display them, the code looks like this: /* ex 1-8 */ main() {     int c, sf;     while((c = getchar()) != EOF) {         if(c == '\t')             printf("\\t");          if(c == '\b')             printf("\\b");         else             putchar(c);     } } I'm not looking for code review, but the code is intended to replace the tabs and backspaces with \t and \b respectively, but I haven't been able to test it because I can't seem to make a backspace character appear in input. In later unices, ^V followed by the backspace would work, but that's not part of v7. Backspace itself is my erase character, so anytime I just type it, it backspaces :). Thanks, Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From arnold at skeeve.com Tue Nov 7 14:34:47 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Mon, 06 Nov 2017 21:34:47 -0700 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: References: Message-ID: <201711070434.vA74YlrN020951@freefriends.org> Will Senn wrote: > I'm not looking for code review, but the code is intended to replace the > tabs and backspaces with \t and \b respectively, but I haven't been able > to test it because I can't seem to make a backspace character appear in > input. In later unices, ^V followed by the backspace would work, but > that's not part of v7. Backspace itself is my erase character, so > anytime I just type it, it backspaces :). awk 'BEGIN { print "a\bc\td" ; exit }' | your-program Enjoy, Arnold P.S. The exit is needed for V7 awk, IIRC, not modern ones. From will.senn at gmail.com Tue Nov 7 14:49:35 2017 From: will.senn at gmail.com (Will Senn) Date: Mon, 6 Nov 2017 22:49:35 -0600 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: <201711070434.vA74YlrN020951@freefriends.org> References: <201711070434.vA74YlrN020951@freefriends.org> Message-ID: On 11/6/17 10:34 PM, arnold at skeeve.com wrote: > Will Senn wrote: > >> I'm not looking for code review, but the code is intended to replace the >> tabs and backspaces with \t and \b respectively, but I haven't been able >> to test it because I can't seem to make a backspace character appear in >> input. In later unices, ^V followed by the backspace would work, but >> that's not part of v7. Backspace itself is my erase character, so >> anytime I just type it, it backspaces :). > awk 'BEGIN { print "a\bc\td" ; exit }' | your-program > > Enjoy, > > Arnold > > P.S. The exit is needed for V7 awk, IIRC, not modern ones. This is a good idea, but... Here's my results from just running awk for \t, \n, and \b: $ awk 'BEGIN { print "a\tb" ; exit }'; a       b $ awk 'BEGIN { print "a\nb" ; exit }' anb $ awk 'BEGIN { print "a\bb" ; exit }' abb $ Strange. It looks like it's just ignoring the backslash in the case of \n and \b. Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From will.senn at gmail.com Tue Nov 7 15:00:03 2017 From: will.senn at gmail.com (Will Senn) Date: Mon, 6 Nov 2017 23:00:03 -0600 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: References: <201711070434.vA74YlrN020951@freefriends.org> Message-ID: <1eee3597-4b32-0153-26de-87a973892b07@gmail.com> On 11/6/17 10:49 PM, Will Senn wrote: > On 11/6/17 10:34 PM, arnold at skeeve.com wrote: >> Will Senn wrote: >> >>> I'm not looking for code review, but the code is intended to replace >>> the >>> tabs and backspaces with \t and \b respectively, but I haven't been >>> able >>> to test it because I can't seem to make a backspace character appear in >>> input. In later unices, ^V followed by the backspace would work, but >>> that's not part of v7. Backspace itself is my erase character, so >>> anytime I just type it, it backspaces :). >>     awk 'BEGIN { print "a\bc\td" ; exit }' | your-program >> >> Enjoy, >> >> Arnold >> >> P.S. The exit is needed for V7 awk, IIRC, not modern ones. > > This is a good idea, but... Here's my results from just running awk > for \t, \n, and \b: > > $ awk 'BEGIN { print "a\tb" ; exit }'; > a       b > $ awk 'BEGIN { print "a\nb" ; exit }' > anb > $ awk 'BEGIN { print "a\bb" ; exit }' > abb > $ > > Strange. It looks like it's just ignoring the backslash in the case of > \n and \b. > > Will > I wrote a c program to print a string in line with the suggestion to use awk and my code worked, but it's still odd that the above didn't work. Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From arnold at skeeve.com Tue Nov 7 18:08:06 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Tue, 07 Nov 2017 01:08:06 -0700 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: <1eee3597-4b32-0153-26de-87a973892b07@gmail.com> References: <201711070434.vA74YlrN020951@freefriends.org> <1eee3597-4b32-0153-26de-87a973892b07@gmail.com> Message-ID: <201711070808.vA7886fR006213@freefriends.org> Will Senn wrote: > I wrote a c program to print a string in line with the suggestion to use > awk and my code worked, but it's still odd that the above didn't work. The V7 awk was really primitive. Another idea that occurred to me: stty erase # and then you can enter a literal backspace on the command line. HTH, Arnold From drb at msu.edu Tue Nov 7 19:07:23 2017 From: drb at msu.edu (Dennis Boone) Date: Tue, 07 Nov 2017 04:07:23 -0500 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: (Your message of Mon, 06 Nov 2017 22:21:12 -0600.) References: Message-ID: <20171107090723.F2CC3A585D1@yagi.h-net.msu.edu> > I'm not looking for code review, but the code is intended to replace > the tabs and backspaces with \t and \b respectively, but I haven't > been able to test it because I can't seem to make a backspace > character appear in input. In later unices, ^V followed by the > backspace would work, but that's not part of v7. Backspace itself is > my erase character, so anytime I just type it, it backspaces :). This bit from the middle of sys/dev/tty.c seems to indicate that you escape it with \: } else { mc = maptab[c]; if (c==tp->t_erase || c==tp->t_kill) mc = c; if (mc && (mc==c || (tp->t_flags&LCASE))) { if (bp[-2] != '\\') c = mc; bp--; } } On my test v7 system if I type backslash control-h: # stty speed 0 baud erase = '^H'; kill = '^U' even -nl echo -tabs # echo \^H | od -c 0000000 \b \n 0000002 # De From pnr at planet.nl Tue Nov 7 20:44:48 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Tue, 7 Nov 2017 11:44:48 +0100 Subject: [TUHS] void *, caddr_t and struct sockaddr* in 4.1x and 4.2 BSD Message-ID: Many thanks for all that background to the origins of void pointers. Now for applying that to the early sockets API. In the first (1981) and second (4.1a, April 1982) revision of that API, socket addresses were passed as a fixed 16-byte structure, essentially the same as the current struct sockaddr. By the time of the third revision (4.1c/4.2, 1983) of that API it had become a variable sized opaque object, passed around as a pointer and a size. The 1983 4.2BSD system manual (http://www.cilinder.be/docs/bsd/4.2BSD_Unix_system_manual.pdf) describes it that way, e.g. defining connect() as: connect(s, name, namelen); int s; caddr_t name; int namelen; Note the use of caddr_t in the user level signature. Yet, the actual source code for 4.1c/4.2 BSD only uses caddr_t in the kernel (as pointed out on this list), but continues to use struct sockaddr * in the user land interface. It would seem to me today that void * would have been a more logical choice and with void * having been around for about 3 years in 1983, it might have seemed logical back then as well -- after all, this use case is similar to the malloc() use case. It would have avoided the need for a longish type cast in socket api calls (without further loss of type safety, as that was already lost with the required cast from e.g. struct sockaddr_un* to struct sockaddr* anyway). Related to this, from the "4.2bsd IPC Primer” (1983, https://www2.eecs.berkeley.edu/Pubs/TechRpts/1983/CSD-83-145.pdf , page 5), it would appear that the format of socket addresses was perhaps unfinished business: - Apparently at some point in time simple strings were considered as unix domain addresses, i.e. not a sockaddr_un structure. Maybe it was limping on this thought that caused the prototype soackaddr structure not to have a size field — having had that would have simplified the signature of many socket API functions (interestingly, it would seem that such a size field was added in 4.3BSD some 6, 7 years later). - The examples show no type casts. This may have been for didactical clarity, but perhaps it also suggests a signature with void* semantics. I’d be happy for any background on this. Also, about halfway down this page http://tech-insider.org/vms/research/1982/0111.html there is mention of CSRG technical report #4, "CSRG TR/4 (Proposals for the Enhancement of Unix on the Vax)”. I think this may be the initial discussion document from the summer of 1981 that evolved into the 4.2 system manual. Would anybody have a copy of that document? Paul From crossd at gmail.com Tue Nov 7 21:21:55 2017 From: crossd at gmail.com (Dan Cross) Date: Tue, 07 Nov 2017 11:21:55 +0000 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: References: Message-ID: On Mon, Nov 6, 2017, 11:21 PM Will Senn wrote: > I wrote a snippet from my K&R C studies to convert tabs and backspaces > to \t \b to display them, the code looks like this: > > /* ex 1-8 */ > > main() > { > int c, sf; > > while((c = getchar()) != EOF) { > if(c == '\t') > printf("\\t"); > if(c == '\b') > Shouldn't this be 'else if'? Otherwise, if you encounter a tab, you will print '\t' and then call into the 'else' below after the test for '\b' and print c, which is a tab literal. - Dan C. printf("\\b"); > else > putchar(c); > } > } > > I'm not looking for code review, but the code is intended to replace the > tabs and backspaces with \t and \b respectively, but I haven't been able > to test it because I can't seem to make a backspace character appear in > input. In later unices, ^V followed by the backspace would work, but > that's not part of v7. Backspace itself is my erase character, so > anytime I just type it, it backspaces :). > > Thanks, > > Will > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Tue Nov 7 23:55:49 2017 From: will.senn at gmail.com (Will Senn) Date: Tue, 7 Nov 2017 07:55:49 -0600 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: <20171107090723.F2CC3A585D1@yagi.h-net.msu.edu> References: <20171107090723.F2CC3A585D1@yagi.h-net.msu.edu> Message-ID: <3657a548-46be-0a7a-c092-af5979f36334@gmail.com> On 11/7/17 3:07 AM, Dennis Boone wrote: > > I'm not looking for code review, but the code is intended to replace > > the tabs and backspaces with \t and \b respectively, but I haven't > > been able to test it because I can't seem to make a backspace > > character appear in input. In later unices, ^V followed by the > > backspace would work, but that's not part of v7. Backspace itself is > > my erase character, so anytime I just type it, it backspaces :). > > This bit from the middle of sys/dev/tty.c seems to indicate that you > escape it with \: > > } else { > mc = maptab[c]; > if (c==tp->t_erase || c==tp->t_kill) > mc = c; > if (mc && (mc==c || (tp->t_flags&LCASE))) { > if (bp[-2] != '\\') > c = mc; > bp--; > } > } > > On my test v7 system if I type backslash control-h: > > # stty > speed 0 baud > erase = '^H'; kill = '^U' > even -nl echo -tabs > # echo \^H | od -c > 0000000 \b \n > 0000002 > # > > De Thanks for the note. I thought about it and tried it out even though I don't see the ^H (my cursor backs up a space). After typing echo "\^H" | od -c, here's what it looks like: $ echo "" | od -c 0000000  \b  \n 0000002 So, sure enough there's a backspace in there and my code "sees" it too: $ echo "" | 1-8 <> $ -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Wed Nov 8 00:59:47 2017 From: will.senn at gmail.com (Will Senn) Date: Tue, 7 Nov 2017 08:59:47 -0600 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: References: Message-ID: <3708707e-43de-4dc6-ebfe-6b8ec1d4a572@gmail.com> > >      while((c = getchar()) != EOF) { >          if(c == '\t') >              printf("\\t"); >           if(c == '\b') > > > Shouldn't this be 'else if'? Otherwise, if you encounter a tab, you > will print '\t' and then call into the 'else' below after the test for > '\b' and print c, which is a tab literal. > >         - Dan C. > > Yes it should - I was concentrating on the backspace thing and not being careful enough about the code.        if(c== '\t')            printf("\\t");        else if(c == '\b')            printf("\\b");        else            putchar(c); Thanks, Will -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Wed Nov 8 01:25:17 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 7 Nov 2017 10:25:17 -0500 Subject: [TUHS] Fwd: FW: The Kill-9 Rap In-Reply-To: References: Message-ID: Apologies in advance if this is found too far off list or offensive. But some how I think many on this list might find it amusing. One of my friends who stayed academic sent this me…. his comment was this surfaced when students were asking for better music to code to: https://www.youtube.com/watch?v=0rG74rG_ubs Warning language is not PG but the it is ‘rapper cursing’ and might even be allowed over the airwaves without ‘beeping’ by some stations. That said, I suggest/recommend head phones so not to offend someone by the language. -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Wed Nov 8 01:29:09 2017 From: don at DonHopkins.com (Don Hopkins) Date: Tue, 7 Nov 2017 16:29:09 +0100 Subject: [TUHS] void *, caddr_t and struct sockaddr* in 4.1x and 4.2 BSD In-Reply-To: References: Message-ID: <7D7FBB19-BC5A-4073-ABF9-C46EB608E8F6@gmail.com> > It would seem to me today that void * would have been a more logical choice Not just logical: A pointer into the void seems like an aesthetically perfect type for a network address. -Don From don at DonHopkins.com Wed Nov 8 01:33:59 2017 From: don at DonHopkins.com (Don Hopkins) Date: Tue, 7 Nov 2017 16:33:59 +0100 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: References: Message-ID: I have always been a proponent of generalizing /dev/zero such that it supports both block and character mode, and the minor node number specifies the byte you get mapped into memory or read from a file. So then you could just make a character device /dev/backspace whose minor node number was 8, and /dev/beep whose minor node number was 7! -Don > On 7 Nov 2017, at 05:21, Will Senn wrote: > > I wrote a snippet from my K&R C studies to convert tabs and backspaces to \t \b to display them, the code looks like this: > > /* ex 1-8 */ > > main() > { > int c, sf; > > while((c = getchar()) != EOF) { > if(c == '\t') > printf("\\t"); > if(c == '\b') > printf("\\b"); > else > putchar(c); > } > } > > I'm not looking for code review, but the code is intended to replace the tabs and backspaces with \t and \b respectively, but I haven't been able to test it because I can't seem to make a backspace character appear in input. In later unices, ^V followed by the backspace would work, but that's not part of v7. Backspace itself is my erase character, so anytime I just type it, it backspaces :). > > Thanks, > > Will > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF > From beebe at math.utah.edu Wed Nov 8 01:34:46 2017 From: beebe at math.utah.edu (Nelson H. F. Beebe) Date: Tue, 7 Nov 2017 08:34:46 -0700 Subject: [TUHS] origins of void* -- Apology! Message-ID: Arthur Krewat writes on Mon, 6 Nov 2017 19:34:34 -0500 >> char (at least these days) is signed. So really, it's 7-bit ASCII. I decided last night to investigate that statement, and updated my C/C++ features tool to test the sign and range of char and wchar_t. I ran it in our test lab with physical and virtual machines representing many different GNU/Hurd, GNU/Linux, *BSD, macOS, Minix, Solaris, and other Unix family members, on ARM, MIPS, PowerPC, SPARC, x86, and x86-64 CPU architectures. Here is a summary: % cat *.log | grep '^ char type is' | sort | uniq -c 157 char type is signed 3 char type is unsigned The sole outliers are * Arch Linux ARM on armv7l * IBM CentOS Linux release 7.4.1708 on PowerPC-8 * SGI IRIX 6.5 on MIPS R10000-SC for which I found these log data: Character range and sign... CHAR_MIN = +0 CHAR_MAX = +255 SCHAR_MIN = -128 SCHAR_MAX = +127 UCHAR_MAX = +255 char type is unsigned signed char type is signed unsigned char type is unsigned The last two lines are expected, but my program checked for an incorrect result, and would have produced the string "WRONG!" in the output; no system had that result. ------------------------------------------------------------------------------- - 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 crossd at gmail.com Wed Nov 8 02:05:49 2017 From: crossd at gmail.com (Dan Cross) Date: Tue, 7 Nov 2017 11:05:49 -0500 Subject: [TUHS] Fwd: FW: The Kill-9 Rap In-Reply-To: References: Message-ID: Thanks for sending this; there's actually an entire genre of "herdcore" hip-hop along similar lines: https://www.youtube.com/watch?v=A8VTmy5clHk As someone who used to live very close to the Boogie Down[*], I think it's an interesting subcultural thing, though it strays awfully close to appropriation in some cases (yeah Monzy, odds are really good you'll make it through the Stanford PhD program without getting shot. There's not a lot of physical violence in the "Computer Science Game"). - Dan C. [*] "The Boogie Down" is hip-hop slang for the New York City borough of the Bronx and is generally credited as the place where rap/hip-hop was born in the early-1970s. Google did a doodle for this earlier this year: https://www.google.com/doodles/44th-anniversary-of-the-birth-of-hip-hop, narrated by the one and only Fab 5 Freddy. I'm a Manhattanite, but used to live a couple of blocks from the 155th St overpass that leads down to the Macombs Dam Bridge that features in the beginning of the seminal Eric B & Rakim video for "I Ain't No Joke": uptown represent. They who think wrong are they who can't do that style that I'm doing. (The video actually shows the section of 155th St under the overpass, which gets confusing because the road on the overpass is also 155th St. Explaining that to cab drivers used to be fun. It's amusing, I used to park my car in the parking lot off-camera to the right of that shot.) On Tue, Nov 7, 2017 at 10:25 AM, Clem Cole wrote: > Apologies in advance if this is found too far off list or offensive. But > some how I think many on this list might find it amusing. One of my > friends who stayed academic sent this me…. his comment was this surfaced > when students were asking for better music to code to: > > > > https://www.youtube.com/watch?v=0rG74rG_ubs > > > > Warning language is not PG but the it is ‘rapper cursing’ and might even be > allowed over the airwaves without ‘beeping’ by some stations. That said, > I suggest/recommend head phones so not to offend someone by the language. > > From don at DonHopkins.com Wed Nov 8 02:09:02 2017 From: don at DonHopkins.com (Don Hopkins) Date: Tue, 7 Nov 2017 17:09:02 +0100 Subject: [TUHS] Fwd: FW: The Kill-9 Rap In-Reply-To: References: Message-ID: <06078B8B-BAEA-4767-9B23-0F241F3D0412@gmail.com> > On 7 Nov 2017, at 17:05, Dan Cross wrote: > > Thanks for sending this; there's actually an entire genre of > "herdcore" hip-hop along similar lines: > https://www.youtube.com/watch?v=A8VTmy5clHk > > As someone who used to live very close to the Boogie Down[*], I think > it's an interesting subcultural thing, though it strays awfully close > to appropriation in some cases (yeah Monzy, odds are really good > you'll make it through the Stanford PhD program without getting shot. > There's not a lot of physical violence in the "Computer Science > Game"). > > - Dan C. Except for a few notable exceptions... https://en.wikipedia.org/w/index.php?title=Comparison_of_file_systems&oldid=209063556#Features -Don -------------- next part -------------- An HTML attachment was scrubbed... URL: From usotsuki at buric.co Wed Nov 8 02:17:02 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Tue, 7 Nov 2017 11:17:02 -0500 (EST) Subject: [TUHS] Fwd: FW: The Kill-9 Rap In-Reply-To: References: Message-ID: On Tue, 7 Nov 2017, Dan Cross wrote: > [*] "The Boogie Down" is hip-hop slang for the New York City borough > of the Bronx and is generally credited as the place where rap/hip-hop > was born in the early-1970s. Google did a doodle for this earlier this > year: https://www.google.com/doodles/44th-anniversary-of-the-birth-of-hip-hop, > narrated by the one and only Fab 5 Freddy. That would explain the name "Boogie Down Productions" that got sampled a lot around the turn of the millennium. -uso. From crossd at gmail.com Wed Nov 8 02:24:33 2017 From: crossd at gmail.com (Dan Cross) Date: Tue, 7 Nov 2017 11:24:33 -0500 Subject: [TUHS] Fwd: FW: The Kill-9 Rap In-Reply-To: References: Message-ID: On Tue, Nov 7, 2017 at 11:17 AM, Steve Nickolas wrote: > On Tue, 7 Nov 2017, Dan Cross wrote: > >> [*] "The Boogie Down" is hip-hop slang for the New York City borough >> of the Bronx and is generally credited as the place where rap/hip-hop >> was born in the early-1970s. Google did a doodle for this earlier this >> year: >> https://www.google.com/doodles/44th-anniversary-of-the-birth-of-hip-hop, >> narrated by the one and only Fab 5 Freddy. > > That would explain the name "Boogie Down Productions" that got sampled a lot > around the turn of the millennium. Close. "Boogie Down Productions" is a specific group (actually a trio) that formed in the South Bronx (I guess the term "Boogie Down" is kind of specific to the South Bronx; I mean, it's kind of hard to image much boogie-ing happening in Parkchester or Riverdale...). BDP's only constant member, KRS One, was/is highly influence and considered something of an elder in the rap community. I'm afraid this is VERY far afield from the typical TUHS content, though. In deference to other list members, I'm going to bow out of the history of hip hop and NYC geography before I incur the wrath of Warren et al. :-) - Dan C. From dot at dotat.at Wed Nov 8 22:48:47 2017 From: dot at dotat.at (Tony Finch) Date: Wed, 8 Nov 2017 12:48:47 +0000 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: Message-ID: Nelson H. F. Beebe wrote: > > % cat *.log | grep '^ char type is' | sort | uniq -c > 157 char type is signed > 3 char type is unsigned > > The sole outliers are > > * Arch Linux ARM on armv7l > * IBM CentOS Linux release 7.4.1708 on PowerPC-8 > * SGI IRIX 6.5 on MIPS R10000-SC Nice survey, thanks! I learned C using the Norcroft C compiler on early Acorn / ARM machines where char was unsigned. That is still the case, though ARM have switched from Norcroft to clang. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0774h/kpr1493281322162.html (And I started learning about unix from reading articles about RISC iX, Acorn's 4.3BSD port to the Archimedes.) Tony. -- f.anthony.n.finch http://dotat.at/ - I xn--zr8h punycode Tyne, Dogger: Variable 3 or 4, becoming west or southwest 5 to 7, perhaps gale 8 later in north. Slight, becoming moderate. Occasional rain later. Good, occasionally moderate. From otto at drijf.net Wed Nov 8 23:36:09 2017 From: otto at drijf.net (Otto Moerbeek) Date: Wed, 8 Nov 2017 14:36:09 +0100 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: Message-ID: <20171108133609.GI11221@colo.drijf.net> On Wed, Nov 08, 2017 at 12:48:47PM +0000, Tony Finch wrote: > Nelson H. F. Beebe wrote: > > > > % cat *.log | grep '^ char type is' | sort | uniq -c > > 157 char type is signed > > 3 char type is unsigned > > > > The sole outliers are > > > > * Arch Linux ARM on armv7l > > * IBM CentOS Linux release 7.4.1708 on PowerPC-8 > > * SGI IRIX 6.5 on MIPS R10000-SC > > Nice survey, thanks! > > I learned C using the Norcroft C compiler on early Acorn / ARM machines > where char was unsigned. That is still the case, though ARM have switched > from Norcroft to clang. whether char is signed or unsigned is defined by the ABI of the platform, not by the compiler (if the compiler builder respects the ABI, which is of course a wise thing to do). -Otto From imp at bsdimp.com Thu Nov 9 02:03:06 2017 From: imp at bsdimp.com (Warner Losh) Date: Wed, 8 Nov 2017 09:03:06 -0700 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: Message-ID: On Wed, Nov 8, 2017 at 5:48 AM, Tony Finch wrote: > Nelson H. F. Beebe wrote: > > > > % cat *.log | grep '^ char type is' | sort | uniq -c > > 157 char type is signed > > 3 char type is unsigned > > > > The sole outliers are > > > > * Arch Linux ARM on armv7l > > * IBM CentOS Linux release 7.4.1708 on PowerPC-8 > > * SGI IRIX 6.5 on MIPS R10000-SC > > Nice survey, thanks! > > I learned C using the Norcroft C compiler on early Acorn / ARM machines > where char was unsigned. That is still the case, though ARM have switched > from Norcroft to clang. > > http://infocenter.arm.com/help/index.jsp?topic=/com.arm. > doc.dui0774h/kpr1493281322162.html > > (And I started learning about unix from reading articles about RISC iX, > Acorn's 4.3BSD port to the Archimedes.) > ARM's pre-EABI ABIs dictated that char be unsigned. It's all dictated by the ABI that's implemented, and less about which compiler is used. Now that EABI is basically mainstream, unsigned characters on ARM has become a historic oddity. Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From cym224 at gmail.com Thu Nov 9 02:07:10 2017 From: cym224 at gmail.com (Nemo) Date: Wed, 8 Nov 2017 11:07:10 -0500 Subject: [TUHS] origins of void* -- Apology! Message-ID: On 6 November 2017 at 19:36, Ron Natalie wrote: > It’s worse than that. “char” is defined as neither signed nor unsigned. > The signedness is implementation defined. This was why we have the inane > “signed” keyword. What was that story about porting an early UNIX to a machine with different char polarity? I dimly recall only a few problems. N. From imp at bsdimp.com Thu Nov 9 02:12:50 2017 From: imp at bsdimp.com (Warner Losh) Date: Wed, 8 Nov 2017 09:12:50 -0700 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: Message-ID: On Wed, Nov 8, 2017 at 9:07 AM, Nemo wrote: > On 6 November 2017 at 19:36, Ron Natalie wrote: > > It’s worse than that. “char” is defined as neither signed nor unsigned. > > The signedness is implementation defined. This was why we have the > inane > > “signed” keyword. > > What was that story about porting an early UNIX to a machine with > different char polarity? I dimly recall only a few problems. > Doesn't even have to be very early... There's lots of 'assume char is signed bugs' in even modern code. So many that ARM gave up on the idea that unsigned char was good (since the underlying ARM architecture supported it better) and their modern ABIs are all signed char. The other thing that EABI fixes is the crazy alignment rules that were out-of-step with the rest of the computer industry that broke a lot of networking and storage code on ARM because its rules caused structs that would otherwise describe the binary layout to be suddenly wrong. Yes, that is an implementation choice, just a poor one that was eventually corrected. When I was working on FreeBSD/arm only a decade ago, I'd routinely hit both of these issues... Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From krewat at kilonet.net Thu Nov 9 02:17:40 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 8 Nov 2017 11:17:40 -0500 Subject: [TUHS] C question for the historians Message-ID: From a mailing list I belong to, a back-and-forth is going on that I am not involved in. The following sums it up nicely: > It's really the implied equality that's the problem. For example: > > if (flags & DLADM_OPT_PERSIST) { > > would be better written as: > > if ((flags & DLADM_OPT_PERSIST) == 0) { Seriously? What do (or would) "original C" programmers think of this? To me, anything non-zero is "true" so the first is perfectly acceptable. The original assertion in the discussion was that the following is not "right" because of the mixing of bitwise and boolean. > if ((flags & DLADM_OPT_PERSIST) && (link_flags & DLMGMT_PERSIST)) { art k. From imp at bsdimp.com Thu Nov 9 02:27:39 2017 From: imp at bsdimp.com (Warner Losh) Date: Wed, 8 Nov 2017 09:27:39 -0700 Subject: [TUHS] C question for the historians In-Reply-To: References: Message-ID: On Wed, Nov 8, 2017 at 9:17 AM, Arthur Krewat wrote: > From a mailing list I belong to, a back-and-forth is going on that I am > not involved in. The following sums it up nicely: > > It's really the implied equality that's the problem. For example: >> >> if (flags & DLADM_OPT_PERSIST) { >> >> would be better written as: >> >> if ((flags & DLADM_OPT_PERSIST) == 0) { > > No it wouldn't. That would be a bug. s/==/!=/ there and you might be right. Except code reviews that make such 'crazy' suggestions often do more to introduce bugs than prevent future bugs. But even then, there's a time and place for testing against zero, especially in code that has complicated bit testing, where you only want to proceed if a subset of bits are set and others are clear. Or if you are mixing boolean and flags, it can be clearer. Or do the Linux-school and go with if (!!(flags & DLADM_OPT_PERSIST)) { to really confuse things... Seriously? What do (or would) "original C" programmers think of this? To > me, anything non-zero is "true" so the first is perfectly acceptable. > Acceptable to the compiler sure. But if you use the different forms to convey information to the reader, then you might choose something slightly different. For pointers, say, you have the choice of the following forms: if (foo) if (!foo) if (foo == NULL) if (foo != NULL) if (foo == 0) if (foo != 0) The middle two remind the reader that foo is a pointer, while the first two might slightly suggest that from other context near by. The last one, though technically correct, suggest the original author may be confusing pointers and ints, even though its 100% legal C in every single properly implemented C compiler (even if the native representation of a null-pointer has bits set). It also spurs even more bogus comments that it is wrong on exotic architectures because someone wants to appear to be smart, but is actually being wrong, or reporting a situation where a compiler that purports to be a C compiler is actually implementing a different language that is only superficially similar to C. > The original assertion in the discussion was that the following is not > "right" because of the mixing of bitwise and boolean. > > if ((flags & DLADM_OPT_PERSIST) && (link_flags & DLMGMT_PERSIST)) { > > Wow! That's grade a crazy they are smoking. That's not a rule in C, and not even a widely followed 'kool-aide kult kode" practice, but there's so many different cults, it's hard to keep up. Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralph at inputplus.co.uk Thu Nov 9 02:48:22 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Wed, 08 Nov 2017 16:48:22 +0000 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: References: Message-ID: <20171108164822.7ABDB20334@orac.inputplus.co.uk> Hi Will, > I can't seem to make a backspace character dc(1) is handy for unhexdump. $ echo 16i4108666F6F0AP | dc | sed -n l A\bfoo$ $ -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From ralph at inputplus.co.uk Thu Nov 9 03:44:50 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Wed, 08 Nov 2017 17:44:50 +0000 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> Message-ID: <20171108174450.5564F20334@orac.inputplus.co.uk> Hi Bakul, > void* serves a different purpose. It says this is an untyped pointer > (or a ptr to an instance of any type) so no question of size being an > issue. In C, ignoring POSIX, a void pointer is big enough to hold any pointer to data. Pointers to data may be different sizes. And a void pointer can't hold a function pointer, but all function pointers are defined to be the same size. Thus `void (*)(void)' can be used as a generic function pointer type and cast to other ones when needed. > It shouldn't even have been "void*". I would've preferred _* and _ > instead of void* and void. Much more appropriate for a concise > language like C! That's awful. Might as well say `return' occurs so often, it should have been `@'. :-) -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From ralph at inputplus.co.uk Thu Nov 9 04:14:20 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Wed, 08 Nov 2017 18:14:20 +0000 Subject: [TUHS] C question for the historians In-Reply-To: References: Message-ID: <20171108181420.517711F949@orac.inputplus.co.uk> Hi art, > > if (flags & DLADM_OPT_PERSIST) { ... > > if ((flags & DLADM_OPT_PERSIST) == 0) { ... > To me, anything non-zero is "true" so the first is perfectly > acceptable. It's not what acceptable that matters, but what's idiomatic as that is instantly familiar to other readers and lets them read code without being jolted out of concentrating on the important stuff by wondering why the expression isn't idiomatic, was something else meant instead, and does it mean the author has dodgy practices. `if (w & MASK)' is idiomatic. > The original assertion in the discussion was that the following is not > "right" because of the mixing of bitwise and boolean. > > > if ((flags & DLADM_OPT_PERSIST) && (link_flags & DLMGMT_PERSIST)) { What's the alternative? As the Eskimo C FAQ points out, if you think if ((w & MASK) != FALSE) is better then why stop there? Why not if (((w & MASK) != FALSE) == TRUE) -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From krewat at kilonet.net Thu Nov 9 04:34:54 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 8 Nov 2017 13:34:54 -0500 Subject: [TUHS] C question for the historians In-Reply-To: <20171108181420.517711F949@orac.inputplus.co.uk> References: <20171108181420.517711F949@orac.inputplus.co.uk> Message-ID: On 11/8/2017 1:14 PM, Ralph Corderoy wrote: > Hi art, > > if (((w & MASK) != FALSE) == TRUE) Laugh of the day ;) Thanks for that ... art k. From will.senn at gmail.com Thu Nov 9 04:54:04 2017 From: will.senn at gmail.com (Will Senn) Date: Wed, 8 Nov 2017 12:54:04 -0600 Subject: [TUHS] pre-more pager? Message-ID: Hi, In looking around the system v7 environment, I don't see a more command anywhere. I downloaded, converted, and attached 1bsd, 2bsd, and finally 3bsd and it was there that I found source for more... 3bsd looks like it's for VAX, not PDP-11, and it doesn't want to compile (looking for some externs that I gather are part of the distro's clib). I may jump ship on V7 and head over to 2.9BSD, which, as I understand it, is a V7 with fixes and these kind of additional tools... In the meantime, how did folks page through text like man sh and such before more? I know how to view sections of text using sed and ed's ok for paging file text (painful, but workable). I just can't seem to locate the idiomatic way of keeping everything from constantly scrolling out of view! Obviously, this isn't a problem on my mac as terminal works fine, but I like to try to stay in character as a 1970 time traveling unix user :). Thanks, Will Sent from my iPhone From clemc at ccc.com Thu Nov 9 04:59:23 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 8 Nov 2017 18:59:23 +0000 Subject: [TUHS] pre-more pager? In-Reply-To: References: Message-ID: more(1ucb) was written by Eric Shienbrood, who modeled from the functionality from the ITS terminal function he was used to at MIT when he became a grad student around the same time as I did. As for before more(1ucb), we used ^S/^Q and remember many of us were on 30/120 cps dialup terminals. So it was not a problem until direct lines @ 9600 baud became available (plus having enough power in the processor to drive them). Clem On Wed, Nov 8, 2017 at 6:54 PM, Will Senn wrote: > Hi, > > In looking around the system v7 environment, I don't see a more command > anywhere. I downloaded, converted, and attached 1bsd, 2bsd, and finally > 3bsd and it was there that I found source for more... 3bsd looks like it's > for VAX, not PDP-11, and it doesn't want to compile (looking for some > externs that I gather are part of the distro's clib). > > I may jump ship on V7 and head over to 2.9BSD, which, as I understand it, > is a V7 with fixes and these kind of additional tools... > > In the meantime, how did folks page through text like man sh and such > before more? I know how to view sections of text using sed and ed's ok for > paging file text (painful, but workable). I just can't seem to locate the > idiomatic way of keeping everything from constantly scrolling out of view! > Obviously, this isn't a problem on my mac as terminal works fine, but I > like to try to stay in character as a 1970 time traveling unix user :). > > Thanks, > > Will > > Sent from my iPhone -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Thu Nov 9 05:05:40 2017 From: lm at mcvoy.com (Larry McVoy) Date: Wed, 8 Nov 2017 11:05:40 -0800 Subject: [TUHS] C question for the historians In-Reply-To: <20171108181420.517711F949@orac.inputplus.co.uk> References: <20171108181420.517711F949@orac.inputplus.co.uk> Message-ID: <20171108190540.GA7241@mcvoy.com> On Wed, Nov 08, 2017 at 06:14:20PM +0000, Ralph Corderoy wrote: > is better then why stop there? Why not > > if (((w & MASK) != FALSE) == TRUE) Thanks for this, that's the perfect come back to the pedantic folks. From krewat at kilonet.net Thu Nov 9 05:06:46 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 8 Nov 2017 14:06:46 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: References: Message-ID: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> ^S (stop) and ^Q (continue) at 1200 baud or less worked OK, especially on paper terminals ;) -- (Clem just beat me to it) head and tail would work too (although I'm not sure they existed at that time, I'm no expert): cat filename | head -20 # get the first page. cat filename | head -40 | tail -20 # get the second page. etc. On 11/8/2017 1:54 PM, Will Senn wrote: > Hi, > > In looking around the system v7 environment, I don't see a more command anywhere. I downloaded, converted, and attached 1bsd, 2bsd, and finally 3bsd and it was there that I found source for more... 3bsd looks like it's for VAX, not PDP-11, and it doesn't want to compile (looking for some externs that I gather are part of the distro's clib). > > I may jump ship on V7 and head over to 2.9BSD, which, as I understand it, is a V7 with fixes and these kind of additional tools... > > In the meantime, how did folks page through text like man sh and such before more? I know how to view sections of text using sed and ed's ok for paging file text (painful, but workable). I just can't seem to locate the idiomatic way of keeping everything from constantly scrolling out of view! Obviously, this isn't a problem on my mac as terminal works fine, but I like to try to stay in character as a 1970 time traveling unix user :). > > Thanks, > > Will > > Sent from my iPhone > From bakul at bitblocks.com Thu Nov 9 05:12:38 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Wed, 8 Nov 2017 11:12:38 -0800 Subject: [TUHS] pre-more pager? In-Reply-To: References: Message-ID: <0AFA817D-6564-4FB1-9B95-55755A47B840@bitblocks.com> > On Nov 8, 2017, at 10:54 AM, Will Senn wrote: > > Hi, > > In looking around the system v7 environment, I don't see a more command anywhere. I downloaded, converted, and attached 1bsd, 2bsd, and finally 3bsd and it was there that I found source for more... 3bsd looks like it's for VAX, not PDP-11, and it doesn't want to compile (looking for some externs that I gather are part of the distro's clib). > > I may jump ship on V7 and head over to 2.9BSD, which, as I understand it, is a V7 with fixes and these kind of additional tools... > > In the meantime, how did folks page through text like man sh and such before more? I know how to view sections of text using sed and ed's ok for paging file text (painful, but workable). I just can't seem to locate the idiomatic way of keeping everything from constantly scrolling out of view! Obviously, this isn't a problem on my mac as terminal works fine, but I like to try to stay in character as a 1970 time traveling unix user :). > > Thanks, > > Will > > Sent from my iPhone Terminals were slow enough that you could hit ^s to stop scrolling and ^q to continue. At Fortune Systems, when Dave Yost speeded up serial io to run 9600 baud terminals at full blast, scrolling was too fast. So then he added “page mode” to the tty line discipline, where output stopped after N lines until you hit a key. This was nice as you didn't have to rerun a command that spewed more than a screenful but could interfere with type ahead. From random832 at fastmail.com Thu Nov 9 05:22:44 2017 From: random832 at fastmail.com (Random832) Date: Wed, 08 Nov 2017 14:22:44 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: References: Message-ID: <1510168964.1261540.1166077456.49865F48@webmail.messagingengine.com> On Wed, Nov 8, 2017, at 13:54, Will Senn wrote: > In the meantime, how did folks page through text like man sh and such > before more? I know how to view sections of text using sed and ed's ok > for paging file text (painful, but workable). I just can't seem to locate > the idiomatic way of keeping everything from constantly scrolling out of > view! Obviously, this isn't a problem on my mac as terminal works fine, > but I like to try to stay in character as a 1970 time traveling unix user > :). Well, in the beginning, there was paper. You didn't need to "page" because you had actual pages you could hold in your hand (if not the manual typeset as an actual book, then the printed output from the teletype). The utility of a 'pager' as such came from the proliferation of CRT terminals. To that extent, using the scroll bar in your terminal to imagine you're going through a roll (well, it was actually fanfold AIUI) of paper may actually be more "in character" than installing a pager. The earliest (mainline BSD, anyway, SRI-NOSC "pg" is dated earlier) pager in the archives is "cr3" in 1BSD - it alludes to the existence of an earlier kernel hack with the same effect (enabled, according to legend, by setting the CR delay in the tty line discipline to mode 3 i.e. "stty cr3"). There are also four different programs in the archive called "pg", all for the same purpose, that appear otherwise unrelated to each other. The OpenSolaris one comes from some version of System V, which is the one that the one available on modern-day Linux is a clone of - the others are of far earlier vintage. Other programs include "more" (naturally) from 3BSD, and "p" (which is very minimalistic, despite using a few V8-specific library features, but V8 isn't in the web-accessible source archive) from Version 8 research unix. Some of these are for V7 or V6 contemporary PDP-11 Unixes, and most of them are far simpler than more so you should have little difficulty getting them working anyway. Links: http://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/cr3.c http://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/cr3.c http://minnie.tuhs.org/cgi-bin/utree.pl?file=2.9BSD/usr/src/ucb/more.c http://minnie.tuhs.org/cgi-bin/utree.pl?file=32V/usr/src/cmd/pg.c http://minnie.tuhs.org/cgi-bin/utree.pl?file=AUSAM/source/S/pg.c (apparently unrelated to the 32V version) http://minnie.tuhs.org/cgi-bin/utree.pl?file=SRI-NOSC/s2/pg.c http://minnie.tuhs.org/cgi-bin/utree.pl?file=OpenSolaris_b135/cmd/pg/pg.c https://danhalbert.org/more.html - mentions cr3 From jnc at mercury.lcs.mit.edu Thu Nov 9 05:23:41 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Wed, 8 Nov 2017 14:23:41 -0500 (EST) Subject: [TUHS] pre-more pager? Message-ID: <20171108192341.9AB1018C0B9@mercury.lcs.mit.edu> > From: Will Senn > how did folks page through text like man sh and such before more? We wrote our own versions of more. Here is one from the roughly-PWB1 systems at MIT: http://ana-3.lcs.mit.edu/~jnc/tech/unix/s2/p.c but on looking at it, I'm not 100% sure it's the one I used there (which is documented in the MIT UPM). Here's one I wrote for myself for use on V6: http://mercury.lcs.mit.edu/~jnc/tech/V6Unix.html#UCmds before I retrieved all the MIT sources (above), if you want somthing to actually use on V6/V7. Noel From nobozo at gmail.com Thu Nov 9 05:29:52 2017 From: nobozo at gmail.com (Forrest, Jon) Date: Wed, 8 Nov 2017 11:29:52 -0800 Subject: [TUHS] pre-more pager? In-Reply-To: References: Message-ID: On 11/8/2017 10:54 AM, Will Senn wrote: > Hi, > In the meantime, how did folks page through text like man sh and such > before more? I know how to view sections of text using sed and ed's ok for > paging file text (painful, but workable). I just can't seem to locate the > idiomatic way of keeping everything from constantly scrolling out of view! > Obviously, this isn't a problem on my mac as terminal works fine, but I > like to try to stay in character as a 1970 time traveling unix user :). In the early days of Unix I was told that it wasn't practical to write a pager because such a thing would have to run in raw mode in order to process single letter commands, such as the space character for going on to the next page. Since raw mode introduced a significant amount of overhead on already overtaxed machines, it was considered an anti-social thing to do. In 1977 and 1978 I worked at Ford Aerospace in the group that produced KSOS, which was a "secure" version of Unix (I didn't actually work on KSOS myself since I didn't have, nor want, a security clearance). Anyway, that group used some incredibly expensive HP terminals that contained enough local memory to contain most text files, the way we overcame the lack of a pager was to cat the file, and then page around in the local memory. IIRC later versions of Unix added the ability to respond to a specific list of single characters without going into raw mode. Of course, that didn't help when full-screen editors like vi and the Rand editor came out. Cordially, Jon Forrest From reed at reedmedia.net Thu Nov 9 05:31:27 2017 From: reed at reedmedia.net (Jeremy C. Reed) Date: Wed, 8 Nov 2017 13:31:27 -0600 (CST) Subject: [TUHS] pre-more pager? In-Reply-To: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> References: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> Message-ID: The first and second BSD has cr3 "This filter simulates chuck haleys cr3, stopping output after each page (22 lines) to wait for a carriage return, sending 22 more lines, or a EOF, sending 10 more lines." >From my Berkeley book in progress: In the Berkeley terminal rooms, the dumb terminals beeped incessantly so most of the bell speakers had been disconnected. Their \emph{cr3} pager tool rang the terminal bell and waited for a carriage return after every 24 lines. The terminals also rang the bell when the cursor advanced near the right margin on output or keyboard input (like a typewriter bell).\cite{halbert-jchac1-4} % TODO: mention cr3 stty mode? % archives/1970s/2bsd/src/cr3.c says 22 lines and no mention of sound % what about that? So Dan Halbert\index{Halbert, Dan}. who arrived in 1978 as a first-year graduate student, wrote a pager called \emph{more} that printed ``--More--'' instead of ringing the bell and accepted the space instead of carriage return to continue. Plus it could take multiple filenames and print a line of colons around the filenames. This was inspired by his use of the ITS timesharing systems as an undergraduate at MIT that put a ``--MORE--'' prompt at the bottom of the screen when displaying files.\cite{halbert-jchac1-4} His friends and fellow graduate students, Geoff Peck\index{Peck, Geoff} and Eric Shienbrood\index{Shienbrood, Eric}, greatly expanded it, adding various options -- and \emph{more} was added into the next distribution.\cite{halbert1} Date: 17 Jun 2010 @MISC{halbert1, author = {Dan Halbert}, howpublished = "Personal correspondence", year = 2010, month = jun } @ARTICLE{halbert-jchac1-4, author = "Dan Halbert", title = "{THE "MORE" COMMAND IN UNIX}", journal = "Journal of the Computer History Association of California", year = 1994, month = "April-June", volume = "1", number = "4" } From ron at ronnatalie.com Thu Nov 9 05:43:49 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 8 Nov 2017 14:43:49 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: References: Message-ID: <00d301d358c9$e6b29390$b417bab0$@ronnatalie.com> I'm not sure why raw mode would be particularly loading on a system unless it is receiving a lot of data. In the situation described, it's doing nothing other than waiting on the user. The load should be the same as if it is waiting in cooked mode. Ah, those old HP terminals. I had one that had many pages of memory and would even spool off the older stuff on to one of its two data tape drives. The other ones we had too little memory. They couldn't even buffer 24 x 80 characters, so if you had long lines, the thing would start scrolling even before it hit the bottom of the screen. We had some terminals (I think VT100's had this option) that would automatically send a ^S to the host when the screen filled and then you could release it. I still remember the day I was working at RU. One of the young female operators says "hey, someone is catting /usr/dict/words to my terminal." I told her to hit ^S immediately to freeze the sending process and then ran a PS to find the culprit. This reminds me of the dichotomy of "write" versions. The early ones did just rely on being able to open the remote user's terminal. We found this rather antisocial, so at JHU we always left the terminals protected against world write. We used the x bit as the "want to receive writes" flag and made write setuid (this also allowed us to avoid fun and games like people redirecting the input to things that weren't typewriters). From ron at ronnatalie.com Thu Nov 9 05:56:36 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 8 Nov 2017 14:56:36 -0500 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <20171108174450.5564F20334@orac.inputplus.co.uk> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> Message-ID: <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> Ralph is right. You don't have to go any further than the old x86 implementations to find machines where the function pointers are bigger than the data pointers. Further void* both by the standard and by practical matter MUST have the format of char*. Any other type of pointer has to be convertible to void*/char* (as both must address the smallest addressable unit). Most machines, don't need to actually do any pointer conversion but more than a few do, mostly those that have word addressing as native. If I recall properly, the CRAY, which didn't really have byte addressing at all, natively, just had the byte offset into word encoded in high order bits. The UNIVAC has a quite rich "partial word" format encoded in the pointers. The HEP as well used the low order bits to switch the operand size as well as the offset into the word. This all works because conversion via normal means converted the from or to the void*/char* and whatever the other data pointer type, as it knows the type of both sides of the conversion. The BSD kernels however were ripe with what I call "conversion by union." It would store one pointer type into a union of one pointer type and retrieve it from another. Now this is officially undefined behavior (as is most use of sockaddr_t in the early days). I remember spending a few days running around the kernel "fixing" this when doing the HEP port. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Ralph Corderoy Sent: Wednesday, November 8, 2017 12:45 PM To: tuhs at minnie.tuhs.org Subject: Re: [TUHS] origins of void* -- Apology! Hi Bakul, > void* serves a different purpose. It says this is an untyped pointer > (or a ptr to an instance of any type) so no question of size being an > issue. In C, ignoring POSIX, a void pointer is big enough to hold any pointer to data. Pointers to data may be different sizes. And a void pointer can't hold a function pointer, but all function pointers are defined to be the same size. Thus `void (*)(void)' can be used as a generic function pointer type and cast to other ones when needed. > It shouldn't even have been "void*". I would've preferred _* and _ > instead of void* and void. Much more appropriate for a concise > language like C! That's awful. Might as well say `return' occurs so often, it should have been `@'. :-) -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From ron at ronnatalie.com Thu Nov 9 05:59:13 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 8 Nov 2017 14:59:13 -0500 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: Message-ID: <00dd01d358cc$0d42a340$27c7e9c0$@ronnatalie.com> The “story” was the reticence to require something that MIGHT take additional instructions. Again, this stems from yet another overload of char, that of a small numeric type (many languages do not treat characters as integers). The idea was to let char be the regular char type and if you were going to do math on it, you’d better explicitly state signed/unsigned, of course, people get sloppy leading to the bugs you noted. From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Warner Losh Sent: Wednesday, November 8, 2017 11:13 AM To: Nemo Cc: The Eunuchs Hysterical Society Subject: Re: [TUHS] origins of void* -- Apology! On Wed, Nov 8, 2017 at 9:07 AM, Nemo wrote: On 6 November 2017 at 19:36, Ron Natalie wrote: > It’s worse than that. “char” is defined as neither signed nor unsigned. > The signedness is implementation defined. This was why we have the inane > “signed” keyword. What was that story about porting an early UNIX to a machine with different char polarity? I dimly recall only a few problems. Doesn't even have to be very early... There's lots of 'assume char is signed bugs' in even modern code. So many that ARM gave up on the idea that unsigned char was good (since the underlying ARM architecture supported it better) and their modern ABIs are all signed char. The other thing that EABI fixes is the crazy alignment rules that were out-of-step with the rest of the computer industry that broke a lot of networking and storage code on ARM because its rules caused structs that would otherwise describe the binary layout to be suddenly wrong. Yes, that is an implementation choice, just a poor one that was eventually corrected. When I was working on FreeBSD/arm only a decade ago, I'd routinely hit both of these issues... Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Thu Nov 9 06:02:22 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Wed, 8 Nov 2017 15:02:22 -0500 (EST) Subject: [TUHS] pre-more pager? Message-ID: <20171108200222.B6A6F18C0B9@mercury.lcs.mit.edu> > From: Jon Forrest > In the early days of Unix I was told that it wasn't practical to write a > pager because such a thing would have to run in raw mode in order to > process single letter commands, such as the space character for going on > to the next page. Since raw mode introduced a significant amount of > overhead on already overtaxed machines, it was considered an anti-social > thing to do. Something sounds odd here. One could have written a pager which used 'Return' for each new page, and run it in cooked mode and not used any less cycles (in fact, more, IIRC the cooked/raw differences in handling in the TTY driver). But that's all second-order effects anyway. If one were using a serial line hooked up to a DZ (and those were common - DH's were _much_ more expensive, so poor places like my lab at MIT used DZ's), then _every character printed_ caused an interrupt. So the overhead from printing each screen-ful of text was orders of magnitude greater than the overhead of the user's input to get the next screen. > IIRC later versions of Unix added the ability to respond to a specific > list of single characters without going into raw mode. Of course, that > didn't help when full-screen editors like vi and the Rand editor came > out. Overhead was definitely an issue with EMACS on Multics, where waking up a process on each character of input was significant. I think Bernie's Multics EMACS document discusses this. I'm pretty sure they used the Telnet RCTE option to try and minimize the overhead. Noel From nobozo at gmail.com Thu Nov 9 06:11:12 2017 From: nobozo at gmail.com (Forrest, Jon) Date: Wed, 8 Nov 2017 12:11:12 -0800 Subject: [TUHS] pre-more pager? In-Reply-To: <20171108200222.B6A6F18C0B9@mercury.lcs.mit.edu> References: <20171108200222.B6A6F18C0B9@mercury.lcs.mit.edu> Message-ID: <0df737f5-f356-7252-2404-1acc43e52adb@gmail.com> On 11/8/2017 12:02 PM, Noel Chiappa wrote: > > From: Jon Forrest > > > In the early days of Unix I was told that it wasn't practical to write a > > pager because such a thing would have to run in raw mode in order to > > process single letter commands, such as the space character for going on > > to the next page. Since raw mode introduced a significant amount of > > overhead on already overtaxed machines, it was considered an anti-social > > thing to do. > > Something sounds odd here. I agree, now that I think about it. I do remember being told not to write such a thing, due to the load it would cause. Maybe John Nagle, who had the cube next to mine, might remember better. > Overhead was definitely an issue with EMACS on Multics, where waking up a > process on each character of input was significant. I think Bernie's Multics > EMACS document discusses this. I'm pretty sure they used the Telnet RCTE > option to try and minimize the overhead. I remember ~40 students at UCSB trying to run 'vi' on a Vax 780 with 4MB of RAM. Between the lack of memory and the overhead of raw mode, it wasn't a pretty sight. Jon From rminnich at gmail.com Thu Nov 9 06:13:31 2017 From: rminnich at gmail.com (ron minnich) Date: Wed, 08 Nov 2017 20:13:31 +0000 Subject: [TUHS] C question for the historians In-Reply-To: <20171108190540.GA7241@mcvoy.com> References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> Message-ID: There's a lot of weird lore around use of C nowadays, a lot of it in my experience from folks who come from Java. But this w & MASK discussion is one of the weirder ones. For me one of the worst is the 80-column requirement that came from out of I don't know where. Let's see, we're all getting 4k monitors, and yet somehow 80 columns is how we have to write code? Hollerith would be proud. On Wed, Nov 8, 2017 at 11:05 AM Larry McVoy wrote: > On Wed, Nov 08, 2017 at 06:14:20PM +0000, Ralph Corderoy wrote: > > is better then why stop there? Why not > > > > if (((w & MASK) != FALSE) == TRUE) > > > Thanks for this, that's the perfect come back to the pedantic folks. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Thu Nov 9 06:18:31 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 8 Nov 2017 20:18:31 +0000 Subject: [TUHS] pre-more pager? In-Reply-To: <20171108200222.B6A6F18C0B9@mercury.lcs.mit.edu> References: <20171108200222.B6A6F18C0B9@mercury.lcs.mit.edu> Message-ID: On Wed, Nov 8, 2017 at 8:02 PM, Noel Chiappa wrote: > If one were using a serial line > hooked up to a DZ (and those were common - DH's were _much_ more > expensive, so > poor places like my lab at MIT used DZ's), then _every character printed_ > caused an interrupt. ​Right, although many (most) Unix sites used Able DHDM's which were cheaper than DEC DZ's, took less space in the backplane, had full modem control (inc RTS/CTS handshaking in HW) and were DMA. But, my memory is that they did not show up until '78 though. The truth is DZ sucked from a performance standpoint. Besides not being able to support RTS/CTS flow control, the 8 serial ports shared an input buffer in the HW IIRC and the UART only had 2 chars of buffering. An 8-port DZ with all lines running 19.2K baud could kill a 780. People that ran the "Berk-net" (which a pre-TCP networking system for UNIX that ran on serial lines) needed spread out the Berk-Net load between different DZ lines. No so if you have Able gear. So I'll take the 'common' note to be if you used a 'pure DEC' set up - you used DZ-11s. ​ But as you said most of us were looking at costs, so 'foreign' peripherals were also 'common' in the UNIX community. DH11's were preferred. -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Thu Nov 9 06:23:34 2017 From: lm at mcvoy.com (Larry McVoy) Date: Wed, 8 Nov 2017 12:23:34 -0800 Subject: [TUHS] C question for the historians In-Reply-To: References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> Message-ID: <20171108202334.GA14526@mcvoy.com> > For me one of the worst is the 80-column requirement that came from out of > I don't know where. Let's see, we're all getting 4k monitors, and yet > somehow > 80 columns is how we have to write code? Hollerith would be proud. I'm an 80 column person, I like it for side by side diffs, stuff like that. I also read very very fast by reading down the center and using peripheral vision for either side (hockey habits die hard). I can't do that with much wider than 80 column. I had a guy working for me who started to argue with me and caught himself: "I work for you, so it's 80 columns. When you work for me it won't be." Fair enough. From jnc at mercury.lcs.mit.edu Thu Nov 9 06:28:14 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Wed, 8 Nov 2017 15:28:14 -0500 (EST) Subject: [TUHS] pre-more pager? Message-ID: <20171108202814.CBD3918C0B9@mercury.lcs.mit.edu> > From: Clem Cole > many (most) Unix sites used Able DHDM's which were cheaper than DEC DZ's Oh, our DZ's weren't DEC, but some off-brand (I forget what). We were too poor to afford DEC gear! :-) (Our machines, first a /40, and later a /45, were hand-me-down's.) Noel From ron at ronnatalie.com Thu Nov 9 06:28:18 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 8 Nov 2017 15:28:18 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: References: <20171108200222.B6A6F18C0B9@mercury.lcs.mit.edu> Message-ID: <00f901d358d0$1da01a70$58e04f50$@ronnatalie.com> We actually still had some real DEC DH’s on our system. These are what the DHDM emulates, but are implemented in its own backplane full of various flipchip cards. At least the DZ doesn’t loop on the ready bit like the kernel printf (not to be used for idle chit-chat).. From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Clem Cole Sent: Wednesday, November 8, 2017 3:19 PM To: Noel Chiappa Cc: TUHS main list Subject: Re: [TUHS] pre-more pager? On Wed, Nov 8, 2017 at 8:02 PM, Noel Chiappa wrote: If one were using a serial line hooked up to a DZ (and those were common - DH's were _much_ more expensive, so poor places like my lab at MIT used DZ's), then _every character printed_ caused an interrupt. ​Right, although many (most) Unix sites used Able DHDM's which were cheaper than DEC DZ's, took less space in the backplane, had full modem control (inc RTS/CTS handshaking in HW) and were DMA. But, my memory is that they did not show up until '78 though. The truth is DZ sucked from a performance standpoint. Besides not being able to support RTS/CTS flow control, the 8 serial ports shared an input buffer in the HW IIRC and the UART only had 2 chars of buffering. An 8-port DZ with all lines running 19.2K baud could kill a 780. People that ran the "Berk-net" (which a pre-TCP networking system for UNIX that ran on serial lines) needed spread out the Berk-Net load between different DZ lines. No so if you have Able gear. So I'll take the 'common' note to be if you used a 'pure DEC' set up - you used DZ-11s. ​ But as you said most of us were looking at costs, so 'foreign' peripherals were also 'common' in the UNIX community. DH11's were preferred. -------------- next part -------------- An HTML attachment was scrubbed... URL: From wkt at tuhs.org Thu Nov 9 06:28:33 2017 From: wkt at tuhs.org (Warren Toomey) Date: Thu, 9 Nov 2017 06:28:33 +1000 Subject: [TUHS] NUXI Problem In-Reply-To: References: Message-ID: <20171108202833.GA24833@minnie.tuhs.org> On Wed, Nov 08, 2017 at 11:07:10AM -0500, Nemo wrote: >What was that story about porting an early UNIX to a machine with >different char polarity? I dimly recall only a few problems. The NUXI problem on the Interdata 7/32, when the University of Wollongong did the port of Sixth Edition. I can't find a link to the actual story, but from memory the system printed "NUXI" out when it was first booted. Cheers, Warren From ron at ronnatalie.com Thu Nov 9 06:32:36 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 8 Nov 2017 15:32:36 -0500 Subject: [TUHS] C question for the historians In-Reply-To: <20171108202334.GA14526@mcvoy.com> References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> <20171108202334.GA14526@mcvoy.com> Message-ID: <010c01d358d0$b6f110d0$24d33270$@ronnatalie.com> 80 was the number of columns in the IBM punched cards. Teletypes only had 72 coumns. Most lineprinters could do 132. I remember making the jump from the Visual200's (a vt52 clone) to the 5620 DMD. I actually had at home in my kitchen a ASR-37. It was one of the only terminals I have used that I didn't need to engage nl mode. It had a big NEWLINE key that sent "\n" and didn't need to have the "\r" also sent. It also did stuff with all the SI/SO and ESC 8 and 9 things that nroff sent by default without the need for an converting filter. Amusingly, it was also one of the the only terminals I used that did something with CD and DSR. Upon DSR coming up, it would turn on the motor and on CD a giant green PROCEED indicator came on. I never turned it off, I just shutdown the modem. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Larry McVoy Sent: Wednesday, November 8, 2017 3:24 PM To: ron minnich Cc: tuhs at minnie.tuhs.org Subject: Re: [TUHS] C question for the historians > For me one of the worst is the 80-column requirement that came from > out of I don't know where. Let's see, we're all getting 4k monitors, > and yet somehow > 80 columns is how we have to write code? Hollerith would be proud. I'm an 80 column person, I like it for side by side diffs, stuff like that. I also read very very fast by reading down the center and using peripheral vision for either side (hockey habits die hard). I can't do that with much wider than 80 column. I had a guy working for me who started to argue with me and caught himself: "I work for you, so it's 80 columns. When you work for me it won't be." Fair enough. From imp at bsdimp.com Thu Nov 9 06:36:40 2017 From: imp at bsdimp.com (Warner Losh) Date: Wed, 8 Nov 2017 13:36:40 -0700 Subject: [TUHS] C question for the historians In-Reply-To: <20171108190540.GA7241@mcvoy.com> References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> Message-ID: On Wed, Nov 8, 2017 at 12:05 PM, Larry McVoy wrote: > On Wed, Nov 08, 2017 at 06:14:20PM +0000, Ralph Corderoy wrote: > > is better then why stop there? Why not > > > > if (((w & MASK) != FALSE) == TRUE) > > > Thanks for this, that's the perfect come back to the pedantic folks. > It's also wrong. You couldn't flip it around to write if (((w & MASK) == TRUE) == TRUE) because that only works when MASK == 1. So it's dangerous since you can't apply the normal laws of algebra on it because you are comparing BOOLEANS and MASKS, which has always ended in pain... Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at ronnatalie.com Thu Nov 9 06:38:39 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 8 Nov 2017 15:38:39 -0500 Subject: [TUHS] NUXI Problem In-Reply-To: <20171108202833.GA24833@minnie.tuhs.org> References: <20171108202833.GA24833@minnie.tuhs.org> Message-ID: <010e01d358d1$8f971a10$aec54e30$@ronnatalie.com> I seem to recall the story was an early IBM Series 1 port. Seemed to recall them relating that at a UNIX Users Group meeting. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Warren Toomey Sent: Wednesday, November 8, 2017 3:29 PM To: Nemo Cc: The Eunuchs Hysterical Society Subject: Re: [TUHS] NUXI Problem On Wed, Nov 08, 2017 at 11:07:10AM -0500, Nemo wrote: >What was that story about porting an early UNIX to a machine with >different char polarity? I dimly recall only a few problems. The NUXI problem on the Interdata 7/32, when the University of Wollongong did the port of Sixth Edition. I can't find a link to the actual story, but from memory the system printed "NUXI" out when it was first booted. Cheers, Warren From don at DonHopkins.com Thu Nov 9 06:39:11 2017 From: don at DonHopkins.com (Don Hopkins) Date: Wed, 8 Nov 2017 21:39:11 +0100 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> Message-ID: > On 8 Nov 2017, at 20:56, Ron Natalie wrote: > > Ralph is right. You don't have to go any further than the old x86 implementations to find machines where the function pointers are bigger than the data pointers. > > Further void* both by the standard and by practical matter MUST have the format of char*. Any other type of pointer has to be convertible to void*/char* (as both must address the smallest addressable unit). > Most machines, don't need to actually do any pointer conversion but more than a few do, mostly those that have word addressing as native. > > If I recall properly, the CRAY, which didn't really have byte addressing at all, natively, just had the byte offset into word encoded in high order bits. The UNIVAC has a quite rich "partial word" format encoded in the pointers. The HEP as well used the low order bits to switch the operand size as well as the offset into the word. > > This all works because conversion via normal means converted the from or to the void*/char* and whatever the other data pointer type, as it knows the type of both sides of the conversion. > The BSD kernels however were ripe with what I call "conversion by union." It would store one pointer type into a union of one pointer type and retrieve it from another. Now this is officially undefined behavior > (as is most use of sockaddr_t in the early days). I remember spending a few days running around the kernel "fixing" this when doing the HEP port. The PDP-10 had arbitrarily sized byte pointers! Did anybody ever implement a C compiler on that hardware? https://stackoverflow.com/questions/3153141/defining-a-byte-in-c https://en.wikipedia.org/wiki/36-bit As DIGEX teased the VAX weenies at DECUS: “If you’re not playing with 36 bits, you’re not playing with a full DEC!" -Don -------------- next part -------------- An HTML attachment was scrubbed... URL: From imp at bsdimp.com Thu Nov 9 06:39:19 2017 From: imp at bsdimp.com (Warner Losh) Date: Wed, 8 Nov 2017 13:39:19 -0700 Subject: [TUHS] C question for the historians In-Reply-To: References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> Message-ID: Terminals used to have 80 columns almost universally back in the 80's (yes, you can find exceptions). CGA/MHA/VGA consoles still do because they were designed to replace said terminals. The notion, at least for FreeBSD, was that you'd want to be able to easily hack on the code if you had to on the console. Likely a bit antiquated, but there's a solid reason for it. There's other side effects of that, most of which are good, but some crazy... Warner On Wed, Nov 8, 2017 at 1:13 PM, ron minnich wrote: > There's a lot of weird lore around use of C nowadays, a lot of it in my > experience from folks who come from Java. But this w & MASK discussion is > one of the weirder ones. > > For me one of the worst is the 80-column requirement that came from out of > I don't know where. Let's see, we're all getting 4k monitors, and yet > somehow > 80 columns is how we have to write code? Hollerith would be proud. > > > > On Wed, Nov 8, 2017 at 11:05 AM Larry McVoy wrote: > >> On Wed, Nov 08, 2017 at 06:14:20PM +0000, Ralph Corderoy wrote: >> > is better then why stop there? Why not >> > >> > if (((w & MASK) != FALSE) == TRUE) >> >> >> Thanks for this, that's the perfect come back to the pedantic folks. >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Thu Nov 9 06:39:43 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 8 Nov 2017 20:39:43 +0000 Subject: [TUHS] NUXI Problem In-Reply-To: <20171108202833.GA24833@minnie.tuhs.org> References: <20171108202833.GA24833@minnie.tuhs.org> Message-ID: Close it, was the Series/1 port not the Interdata. It was reported at the 1980 USENIX by the folks from Cleveland State that ported it. The Series/1 was not byte-swapped. Clem On Wed, Nov 8, 2017 at 8:28 PM, Warren Toomey wrote: > On Wed, Nov 08, 2017 at 11:07:10AM -0500, Nemo wrote: > >> What was that story about porting an early UNIX to a machine with >> different char polarity? I dimly recall only a few problems. >> > > The NUXI problem on the Interdata 7/32, when the University of Wollongong > did the port of Sixth Edition. > > I can't find a link to the actual story, but from memory the system > printed "NUXI" out when it was first booted. > > Cheers, Warren > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chet.ramey at case.edu Thu Nov 9 06:41:42 2017 From: chet.ramey at case.edu (Chet Ramey) Date: Wed, 8 Nov 2017 15:41:42 -0500 Subject: [TUHS] C question for the historians In-Reply-To: References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> Message-ID: On 11/8/17 3:13 PM, ron minnich wrote: > There's a lot of weird lore around use of C nowadays, a lot of it in my > experience from folks who come from Java. But this w & MASK discussion is > one of the weirder ones. gcc warns about it in its default mode, which is why so many people who are adamant about warning-free compilation have weird workarounds. It's just a PITA. -- ``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://cnswww.cns.cwru.edu/~chet/ From ron at ronnatalie.com Thu Nov 9 06:42:44 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 8 Nov 2017 15:42:44 -0500 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> Message-ID: <011601d358d2$2171a9f0$6454fdd0$@ronnatalie.com> Ø The PDP-10 had arbitrarily sized byte pointers! Did anybody ever implement a C compiler on that hardware? I don’t recall a DEC 10 (or PDP-6) C compiler, but such certainly did exist on the UNIVAC 1100 which had a similar arbitrary partial word format. The Univac never could decide what the character set was, be it ASCII (in 7, 8, or 9 bits) or FIELDDATA (six bits). I don’t care what they say. 36-bits is here to stay! -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Thu Nov 9 06:43:00 2017 From: don at DonHopkins.com (Don Hopkins) Date: Wed, 8 Nov 2017 21:43:00 +0100 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> Message-ID: > The PDP-10 had arbitrarily sized byte pointers! Did anybody ever implement a C compiler on that hardware? > > https://stackoverflow.com/questions/3153141/defining-a-byte-in-c > > https://en.wikipedia.org/wiki/36-bit > > As DIGEX teased the VAX weenies at DECUS: > > “If you’re not playing with 36 bits, you’re not playing with a full DEC!" > > -Don > Re: PDP-10 backend for gcc https://gcc.gnu.org/ml/gcc/2000-09/msg00073.html ftp://kermit.columbia.edu/kermit/dec20/assembler-guide.txt 2.12. Byte Instructions In the PDP-10 a "byte" is some number of contiguous bits within one word. A byte pointer is a word that describes the byte. There are three parts to the description of a byte: the word (i.e., address) in which the byte occurs, the position of the byte within the word, and the length of the byte. A byte pointer has the following format: Bit 000000 000011 1 1 1111 112222222222333333 Position 012345 678901 2 3 4567 890123456789012345 _________________________________________ | | | | | | | | POS | SIZE |U|I| X | Y | |______|______|_|_|____|__________________| - POS is the byte position: the number of bits remaining in the word to the right of the byte. - SIZE is the byte size in bits. - The U field is reserved for future use and must be zero. - I, X, and Y are the same as in an instruction. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bakul at bitblocks.com Thu Nov 9 06:43:18 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Wed, 08 Nov 2017 12:43:18 -0800 Subject: [TUHS] C question for the historians In-Reply-To: Your message of "Wed, 08 Nov 2017 20:13:31 +0000." References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> Message-ID: <20171108204334.23B46156E7D8@mail.bitblocks.com> On Wed, 08 Nov 2017 20:13:31 +0000 ron minnich wrote: ron minnich writes: > > For me one of the worst is the 80-column requirement that came from out of > I don't know where. Let's see, we're all getting 4k monitors, and yet > somehow > 80 columns is how we have to write code? Hollerith would be proud. Put me in the 80 column column! Very wide screens have the same issue as moden webpages which are content light and white space heavy arctic look. With 80 columns you can almost scan top to bottom without moving eye focus left to right too much. The 4k monitors are for opening *multiple* 80 column windows :-) From clemc at ccc.com Thu Nov 9 06:43:35 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 8 Nov 2017 20:43:35 +0000 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> Message-ID: On Wed, Nov 8, 2017 at 8:39 PM, Don Hopkins wrote: > > > The PDP-10 had arbitrarily sized byte pointers! Did anybody ever implement > a C compiler on that hardware? > > ​Yes: There were at least 2 that I knew about: https://github.com/PDP-10​ -------------- next part -------------- An HTML attachment was scrubbed... URL: From imp at bsdimp.com Thu Nov 9 06:45:10 2017 From: imp at bsdimp.com (Warner Losh) Date: Wed, 8 Nov 2017 13:45:10 -0700 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> Message-ID: On Wed, Nov 8, 2017 at 1:39 PM, Don Hopkins wrote: > > On 8 Nov 2017, at 20:56, Ron Natalie wrote: > > Ralph is right. You don't have to go any further than the old x86 > implementations to find machines where the function pointers are bigger > than the data pointers. > > Further void* both by the standard and by practical matter MUST have the > format of char*. Any other type of pointer has to be convertible to > void*/char* (as both must address the smallest addressable unit). > Most machines, don't need to actually do any pointer conversion but more > than a few do, mostly those that have word addressing as native. > > If I recall properly, the CRAY, which didn't really have byte addressing > at all, natively, just had the byte offset into word encoded in high order > bits. The UNIVAC has a quite rich "partial word" format encoded in the > pointers. The HEP as well used the low order bits to switch the operand > size as well as the offset into the word. > > This all works because conversion via normal means converted the from or > to the void*/char* and whatever the other data pointer type, as it knows > the type of both sides of the conversion. > The BSD kernels however were ripe with what I call "conversion by union." > It would store one pointer type into a union of one pointer type and > retrieve it from another. Now this is officially undefined behavior > (as is most use of sockaddr_t in the early days). I remember spending a > few days running around the kernel "fixing" this when doing the HEP port. > > Ah, yes, the strict alias rule. Took FreeBSD, at least, about a decade to excise it from the tree... > The PDP-10 had arbitrarily sized byte pointers! Did anybody ever implement > a C compiler on that hardware? > Yes. Several people did. We had a thread about it not to long ago. kcc Kok Chen's C compiler for PDP-10 can be found at https://github.com/PDP-10/kcc. Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Thu Nov 9 06:47:43 2017 From: don at DonHopkins.com (Don Hopkins) Date: Wed, 8 Nov 2017 21:47:43 +0100 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <011601d358d2$2171a9f0$6454fdd0$@ronnatalie.com> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> <011601d358d2$2171a9f0$6454fdd0$@ronnatalie.com> Message-ID: > I don’t care what they say. > 36-bits is here to stay! You know what they say: 64 bits is just 36 bits at 2.88% interest compounded monthly for two years! -Don -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Thu Nov 9 06:48:26 2017 From: don at DonHopkins.com (Don Hopkins) Date: Wed, 8 Nov 2017 21:48:26 +0100 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> <011601d358d2$2171a9f0$6454fdd0$@ronnatalie.com> Message-ID: <77E3D07E-978C-4D0F-9BF6-12016929B5B8@gmail.com> > On 8 Nov 2017, at 21:47, Don Hopkins wrote: > > >> I don’t care what they say. >> 36-bits is here to stay! > > You know what they say: 64 bits is just 36 bits at 2.88% interest compounded monthly for two years! > > -Don > That’s not what they say: it’s actually twenty years! ;) -Don -------------- next part -------------- An HTML attachment was scrubbed... URL: From usotsuki at buric.co Thu Nov 9 06:50:47 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Wed, 8 Nov 2017 15:50:47 -0500 (EST) Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> Message-ID: On Wed, 8 Nov 2017, Ron Natalie wrote: > Ralph is right. You don't have to go any further than the old x86 > implementations to find machines where the function pointers are bigger > than the data pointers. It could get pretty baroque, depending on your memory model; as you had 16-bit pointers and 32-bit (actually 20-bit because of the hairy way segmentation worked) pointers and what was used for what depended on compiler switches or the nonstandard "near" and "far" keywords (e.g., char far *screen=0xA0000000;). -uso. From rminnich at gmail.com Thu Nov 9 06:52:03 2017 From: rminnich at gmail.com (ron minnich) Date: Wed, 08 Nov 2017 20:52:03 +0000 Subject: [TUHS] 80 columns ... Message-ID: So, 80 column folks, would you find this a(b, c, d) more readable than a(b,c,d) (this is a real example, with slightly shortened names) would you have code review software that automatically bounces out lines that are 82 columns wide? How far does this go? I do recall 80 column monitors, but I started on 132 column decwriter IIs and hence have never had sympathy for 80 columns. It's weird that so many punched-card standards are required in our code bases now (see: Linux). moving away from serious ... (look for Presottos' I feel so liberated ...) http://comp.os.plan9.narkive.com/4W8iThHW/9fans-acme-fonts -------------- next part -------------- An HTML attachment was scrubbed... URL: From usotsuki at buric.co Thu Nov 9 06:55:56 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Wed, 8 Nov 2017 15:55:56 -0500 (EST) Subject: [TUHS] C question for the historians In-Reply-To: References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> Message-ID: On Wed, 8 Nov 2017, ron minnich wrote: > There's a lot of weird lore around use of C nowadays, a lot of it in my > experience from folks who come from Java. But this w & MASK discussion is > one of the weirder ones. > > For me one of the worst is the 80-column requirement that came from out of > I don't know where. Let's see, we're all getting 4k monitors, and yet > somehow > 80 columns is how we have to write code? Hollerith would be proud. I can fit 115x38 in my standard text editor on a 1280x1024 display and although I often write to the size of the window, I still consider 80 columns, or more correctly *79* columns, the limit that my lines should not exceed for hysterical reasons (and when I used EDIT in MS-DOS, this limit was usually 77 but I walked over it all the time). -uso. From lm at mcvoy.com Thu Nov 9 07:02:16 2017 From: lm at mcvoy.com (Larry McVoy) Date: Wed, 8 Nov 2017 13:02:16 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: References: Message-ID: <20171108210216.GB15276@mcvoy.com> On Wed, Nov 08, 2017 at 08:52:03PM +0000, ron minnich wrote: > So, 80 column folks, would you find this > a(b, > c, > d) > > more readable than > a(b,c,d) yeah, I do. I work on thinkpad x220 sized machines which are just big enough for two 80 column windows with a little left over. When I'm checking in code, reviewing code, debugging code, I frequently want to see two versions of the same file side by side. If you code wider than 80 columns it greatly reduces the speed at which you can figure out what happened. So the question isn't what you said above, it's do you want to have to reach for the horizontal scrollbar constantly? Maybe you do, I don't. And you could say "get a higher res screen" which I'm doing, my 1920x1600 carbon x1 is on the way. But (a) I still have lots of x220, x230 screens that are useful (b) I can't see a font smaller than what I'm using, the x1 will be 2 80 column windows next to each other. All of this boils down to "do you optimize for the reader or optimize for the writer". Ron wants writer, I want reader. Write once, read many. --lm From markwgreen at rogers.com Thu Nov 9 07:03:01 2017 From: markwgreen at rogers.com (Mark Green) Date: Wed, 8 Nov 2017 16:03:01 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: References: Message-ID: If I recall correctly there was a program called p on v6 unix that served as a pager. I think it was part of the standard distribution and not a local Toronto mod. Sent from my iPhone > On Nov 8, 2017, at 2:29 PM, Forrest, Jon wrote: > > > >> On 11/8/2017 10:54 AM, Will Senn wrote: >> Hi, > >> In the meantime, how did folks page through text like man sh and such >> before more? I know how to view sections of text using sed and ed's ok for >> paging file text (painful, but workable). I just can't seem to locate the >> idiomatic way of keeping everything from constantly scrolling out of view! >> Obviously, this isn't a problem on my mac as terminal works fine, but I >> like to try to stay in character as a 1970 time traveling unix user :). > > In the early days of Unix I was told that it wasn't practical to write > a pager because such a thing would have to run in raw mode in order > to process single letter commands, such as the space character for > going on to the next page. Since raw mode introduced a significant amount > of overhead on already overtaxed machines, it was considered an anti-social > thing to do. > > In 1977 and 1978 I worked at Ford Aerospace in the group that produced > KSOS, which was a "secure" version of Unix (I didn't actually work on > KSOS myself since I didn't have, nor want, a security clearance). Anyway, > that group used some incredibly expensive HP terminals that contained > enough local memory to contain most text files, the way we overcame the > lack of a pager was to cat the file, and then page around in the local > memory. > > IIRC later versions of Unix added the ability to respond to a specific > list of single characters without going into raw mode. Of course, that > didn't help when full-screen editors like vi and the Rand editor came out. > > Cordially, > Jon Forrest > > > From bakul at bitblocks.com Thu Nov 9 07:06:30 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Wed, 08 Nov 2017 13:06:30 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: Your message of "Wed, 08 Nov 2017 20:52:03 +0000." References: Message-ID: <20171108210645.33E9F156E7D8@mail.bitblocks.com> On Wed, 08 Nov 2017 20:52:03 +0000 ron minnich wrote: ron minnich writes: > > So, 80 column folks, would you find this > a(b, > c, > d) > > more readable than > a(b,c,d) That's still only 7 chars! > (this is a real example, with slightly shortened names) It is this spellingThingsOutInExcruciatingDetail that I find hard to read. Whether you use 80 columns or 800. Why not think a bit harder and come up with shorter name? Fix that and you don't need wide columns. Not to mention longer words are easier to misspell (which then brings in an all singling all dancing IDE...) > would you have code review software that automatically bounces out lines > that are 82 columns wide? How far does this go? > > I do recall 80 column monitors, but I started on 132 column decwriter IIs > and hence have never had sympathy for 80 columns. It's weird that so many > punched-card standards are required in our code bases now (see: Linux). Shorter lines are just faster to read. Which is why (printed) newspapers have multiple columns. > moving away from serious ... (look for Presottos' I feel so liberated ...) > > http://comp.os.plan9.narkive.com/4W8iThHW/9fans-acme-fonts Funny. To adjust column width in acme I use monospace font and a file called "ruler" (reproduced below): 1 2 3 4 5 6 7 01234567890123456789012345678901234567890123456789012345678901234567890123456789 | | | | | | | | | From will.senn at gmail.com Thu Nov 9 07:18:03 2017 From: will.senn at gmail.com (Will Senn) Date: Wed, 8 Nov 2017 15:18:03 -0600 Subject: [TUHS] pre-more pager? In-Reply-To: <1510168964.1261540.1166077456.49865F48@webmail.messagingengine.com> References: <1510168964.1261540.1166077456.49865F48@webmail.messagingengine.com> Message-ID: On 11/8/17 1:22 PM, Random832 wrote: > Some of these are for V7 or V6 contemporary PDP-11 Unixes, and most of > them are far simpler than more so you should have little difficulty > getting them working anyway. > > Links: > http://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/cr3.c > http://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/cr3.c > http://minnie.tuhs.org/cgi-bin/utree.pl?file=2.9BSD/usr/src/ucb/more.c > http://minnie.tuhs.org/cgi-bin/utree.pl?file=32V/usr/src/cmd/pg.c > http://minnie.tuhs.org/cgi-bin/utree.pl?file=AUSAM/source/S/pg.c > (apparently unrelated to the 32V version) > http://minnie.tuhs.org/cgi-bin/utree.pl?file=SRI-NOSC/s2/pg.c > http://minnie.tuhs.org/cgi-bin/utree.pl?file=OpenSolaris_b135/cmd/pg/pg.c > > https://danhalbert.org/more.html - mentions cr3 It makes sense that it used to be paper based and slow on screen. Regarding the links and old bsd's. The binary cr3 on 1bsd works in v7. Also, the book I'm reading has a c program that does paging. But, I'm always off down the rabbit hole... I tried to compile the cr3.c source and I get this error: # cc cr3.c Undefined: _fout _flush _getc _end My understanding is that cc includes libc by default, so these must not be in libc. But getc is standard lib, so what am I missing? Thanks, Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From usotsuki at buric.co Thu Nov 9 07:18:16 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Wed, 8 Nov 2017 16:18:16 -0500 (EST) Subject: [TUHS] 80 columns ... In-Reply-To: <20171108210645.33E9F156E7D8@mail.bitblocks.com> References: <20171108210645.33E9F156E7D8@mail.bitblocks.com> Message-ID: On Wed, 8 Nov 2017, Bakul Shah wrote: > It is this spellingThingsOutInExcruciatingDetail that I find > hard to read. Whether you use 80 columns or 800. Why not > think a bit harder and come up with shorter name? Fix that > and you don't need wide columns. This is how I operate too - I use a lot of abbreviations (one particularly hairy program I have has "havesnddrv", "iielc", "dblgrx" (have sound driver, IIe language card, double resolution graphics respectively)). Of course anyone familiar with the domain of what the program is doing (it's an Apple ][ emulator) will probably understand the terminology. -uso. From crossd at gmail.com Thu Nov 9 07:19:49 2017 From: crossd at gmail.com (Dan Cross) Date: Wed, 8 Nov 2017 16:19:49 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <20171108210216.GB15276@mcvoy.com> References: <20171108210216.GB15276@mcvoy.com> Message-ID: On Wed, Nov 8, 2017 at 4:02 PM, Larry McVoy wrote: > On Wed, Nov 08, 2017 at 08:52:03PM +0000, ron minnich wrote: >> So, 80 column folks, would you find this >> a(b, >> c, >> d) >> >> more readable than >> a(b,c,d) > > yeah, I do. I work on thinkpad x220 sized machines which are just big enough > for two 80 column windows with a little left over. When I'm checking in code, > reviewing code, debugging code, I frequently want to see two versions of the > same file side by side. If you code wider than 80 columns it greatly reduces > the speed at which you can figure out what happened. The thing that sort of vexes me about these arguments is that the number 80 is so arbitrary. If you can fit two 80 column windows side-by-side, then surely you could do the same with two 78-, 72- or even 64-column windows. So why not 64, 72 or 78 columns? Being tethered to a 1960s hardware standard has always struck me as odd and the justifications have an "after-the-fact" quality to them. Sure, 80-columns seems to be approaching some cognitive optimum, but when I see things like deliberate misspellings or grammar errors to keep a comment under the 80-column maximum, I feel like something's wrong. My own feeling is that programmers should be given some latitude to make the correct decision in this domain, and that individual excesses should be addressed in the code review process. That said, I once worked in a code base (in Common Lisp, no less!) where the standard was 100 columns, but this was frequently exceeded (I think I measured that, out of a half-million or so lines of CL, something like 10% were longer than 100 characters). > So the question isn't what you said above, it's do you want to have to > reach for the horizontal scrollbar constantly? Maybe you do, I don't. I think this is the wrong question: why would it be constantly? Even in code-bases with longer code limits, I claim that the vast majority of lines should be far less than the limit. What's the median line length? 90% percentile? Etc. > And you could say "get a higher res screen" which I'm doing, my 1920x1600 > carbon x1 is on the way. But > > (a) I still have lots of x220, x230 screens that are useful > (b) I can't see a font smaller than what I'm using, the x1 > will be 2 80 column windows next to each other. I'll bet that you could get two 82-column windows side-by-side. :-) Larry, I'll buy you a beer the next time I'm on the west coast if you can't. > All of this boils down to "do you optimize for the reader or optimize for > the writer". Ron wants writer, I want reader. Write once, read many. I'm not sure I would characterize it that way. I think we all want reader, but we just differ in how we want to get there. - Dan C. From lm at mcvoy.com Thu Nov 9 07:24:24 2017 From: lm at mcvoy.com (Larry McVoy) Date: Wed, 8 Nov 2017 13:24:24 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: References: <20171108210216.GB15276@mcvoy.com> Message-ID: <20171108212424.GA15911@mcvoy.com> On Wed, Nov 08, 2017 at 04:19:49PM -0500, Dan Cross wrote: > On Wed, Nov 8, 2017 at 4:02 PM, Larry McVoy wrote: > > On Wed, Nov 08, 2017 at 08:52:03PM +0000, ron minnich wrote: > >> So, 80 column folks, would you find this > >> a(b, > >> c, > >> d) > >> > >> more readable than > >> a(b,c,d) > > > > yeah, I do. I work on thinkpad x220 sized machines which are just big enough > > for two 80 column windows with a little left over. When I'm checking in code, > > reviewing code, debugging code, I frequently want to see two versions of the > > same file side by side. If you code wider than 80 columns it greatly reduces > > the speed at which you can figure out what happened. > > The thing that sort of vexes me about these arguments is that the > number 80 is so arbitrary. Not really. Programmers need windows side by side. Lots and lots of bit mapped displays can handle 2 80 column windows at a reasonable font size. And I made the point about side by side diff tools. And I made the point about being able to read down the center and get the rest through peripheral vision. Would I like wider? Not really, at this point the vast majority of the code I look at, the man pages and other docs I look, they all fit in 80 columns. Sure, you could pick something else but you are just fighting reality. It's like video on phones. We still call it taping. Probably still will in a 100 years. Where's the tape? In history. From bakul at bitblocks.com Thu Nov 9 07:25:35 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Wed, 08 Nov 2017 13:25:35 -0800 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: Your message of "Wed, 08 Nov 2017 17:44:50 +0000." <20171108174450.5564F20334@orac.inputplus.co.uk> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> Message-ID: <20171108212550.56005156E7D7@mail.bitblocks.com> On Wed, 08 Nov 2017 17:44:50 +0000 Ralph Corderoy wrote: Ralph Corderoy writes: > Hi Bakul, > > > void* serves a different purpose. It says this is an untyped pointer > > (or a ptr to an instance of any type) so no question of size being an > > issue. > > In C, ignoring POSIX, a void pointer is big enough to hold any pointer > to data. Pointers to data may be different sizes. And a void pointer > can't hold a function pointer, but all function pointers are defined to > be the same size. Thus `void (*)(void)' can be used as a generic > function pointer type and cast to other ones when needed. Yes, I was being sloppy, not mentiong the fn ptr exception. I was saying `void *' represents a generic non-function pointer. I was just separating it from what Ron wants, which is, if I understand right, is a pointer to the *smallest* addressable memory unit. I agree that `char' shouldn't do double duty as the smallest addressable unit and I was suggesing uint8_t does that job. But that is not true either. There are word addressable machines where you can't directly address bytes (if they have 8 bit bytes). Nor would you want a "byte pointer" to be a general pointer. > > It shouldn't even have been "void*". I would've preferred _* and _ > > instead of void* and void. Much more appropriate for a concise > > language like C! > > That's awful. Might as well say `return' occurs so often, it should > have been `@'. :-) Fits right in with "e1 ? e2 : e3" :-) My thinking was that the word void loses any meaning in "void *". It is a not a pointer to an empty space. Seems people just didn't want to add a new keyword so they reused void. _ is alreast more mnemonic. From jnc at mercury.lcs.mit.edu Thu Nov 9 07:27:53 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Wed, 8 Nov 2017 16:27:53 -0500 (EST) Subject: [TUHS] DH11 flaw Was: pre-more pager? Message-ID: <20171108212753.C800818C0B9@mercury.lcs.mit.edu> From: Ron Natalie > We actually still had some real DEC DH's on our system. > ... > At least the DZ doesn't loop on the ready bit like the kernel printf This reminds me of something I recall reading about John McNamara (designer of the DH11) admitting that he'd screwed up a bit in the DH design; IIRC it was that if you set the input silo alarm (interrupt) level to something greater than 1 character, and someone types one character, and then nothing else... you never get an input interrupt! (Which is why some Unix DH driver which sets the silo alarm level > 1 - to get more efficient processing by reducing the number of interrupts _if possible_ - has to call a 'input characters ready from the DH' routine in the clock interrupt code.) IIRC McNamara said he should have included a timeout, so that if the silo count was non-zero,and stayed that way for a while, it should have caused a timeout, and an interrupt. I was just looking for this, but couldn't find it. I thought it was here: http://woffordwitch.com/McNamaraDH11.asp but it doesn't seem to be. Does anyone recall seeing this anywhere, and if so, where? Web search engines didn't turn anything up, alas... Noel From usotsuki at buric.co Thu Nov 9 07:28:19 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Wed, 8 Nov 2017 16:28:19 -0500 (EST) Subject: [TUHS] 80 columns ... In-Reply-To: <20171108212424.GA15911@mcvoy.com> References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> Message-ID: On Wed, 8 Nov 2017, Larry McVoy wrote: > It's like video on phones. We still call it taping. Probably still will > in a 100 years. Where's the tape? In history. I thought I was the only one who still called it "taping" when recording to digital media. -uso. From crossd at gmail.com Thu Nov 9 07:34:13 2017 From: crossd at gmail.com (Dan Cross) Date: Wed, 8 Nov 2017 16:34:13 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <20171108212424.GA15911@mcvoy.com> References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> Message-ID: On Wed, Nov 8, 2017 at 4:24 PM, Larry McVoy wrote: > On Wed, Nov 08, 2017 at 04:19:49PM -0500, Dan Cross wrote: >> On Wed, Nov 8, 2017 at 4:02 PM, Larry McVoy wrote: >> > On Wed, Nov 08, 2017 at 08:52:03PM +0000, ron minnich wrote: >> >> So, 80 column folks, would you find this >> >> a(b, >> >> c, >> >> d) >> >> >> >> more readable than >> >> a(b,c,d) >> > >> > yeah, I do. I work on thinkpad x220 sized machines which are just big enough >> > for two 80 column windows with a little left over. When I'm checking in code, >> > reviewing code, debugging code, I frequently want to see two versions of the >> > same file side by side. If you code wider than 80 columns it greatly reduces >> > the speed at which you can figure out what happened. >> >> The thing that sort of vexes me about these arguments is that the >> number 80 is so arbitrary. > > Not really. Programmers need windows side by side. Lots and lots of bit > mapped displays can handle 2 80 column windows at a reasonable font size. Lots of them can also handle two 100 column windows, or perhaps more realistically 82- or 85-column windows, but here's the thing that I don't buy about that argument: if given a large enough screen, proponents would claim that they needed 3 side-by-side windows instead of two. As a simple test, I can put two 100x75 windows side-by-side on my desktop here at work, using a font size big enough for my deteriorating eyesight. I can fit three 80x75 windows next to one another, but I can fit *4* 60-column windows next to each other. > And I made the point about side by side diff tools. But what about 3-way merge tools? > And I made the point about being able to read down the center and get the > rest through peripheral vision. > > Would I like wider? Not really, at this point the vast majority of the > code I look at, the man pages and other docs I look, they all fit in 80 > columns. Sure, you could pick something else but you are just fighting > reality. > > It's like video on phones. We still call it taping. Probably still will > in a 100 years. Where's the tape? In history. Language is a funny thing. Well, I better get back in the saddle and write some code. - Dan C. From lm at mcvoy.com Thu Nov 9 07:40:36 2017 From: lm at mcvoy.com (Larry McVoy) Date: Wed, 8 Nov 2017 13:40:36 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> Message-ID: <20171108214036.GB15911@mcvoy.com> On Wed, Nov 08, 2017 at 04:34:13PM -0500, Dan Cross wrote: > >> The thing that sort of vexes me about these arguments is that the > >> number 80 is so arbitrary. > > > > Not really. Programmers need windows side by side. Lots and lots of bit > > mapped displays can handle 2 80 column windows at a reasonable font size. > > Lots of them can also handle two 100 column windows, or perhaps more Sure, my laptop can. But what about the ones that can't? > > And I made the point about side by side diff tools. > > But what about 3-way merge tools? Dude, you're talking to the guy that invented distributed source management and has written what is likely the best 3 way merge tool on the planet (jk, it's good though). My 3 way merge [ left version ] [ right version ] [ left version ] [ right version ] [ left version ] [ right version ] [ left version ] [ right version ] [ left version ] [ right version ] [ left version ] [ right version ] [ merge ] [ help ] [ merge ] [ help ] [ merge ] [ help ] Works great! From crossd at gmail.com Thu Nov 9 07:40:13 2017 From: crossd at gmail.com (Dan Cross) Date: Wed, 8 Nov 2017 16:40:13 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> Message-ID: On Wed, Nov 8, 2017 at 4:34 PM, Dan Cross wrote: > On Wed, Nov 8, 2017 at 4:24 PM, Larry McVoy wrote: >>[..] >> And I made the point about side by side diff tools. > > But what about 3-way merge tools? Another small point about this: consider that `diff` et al prepend special characters to the beginning of a line in their output. So if one wants to run e.g., `diff -u a.c b.c`, and the line-length limit in a source file is 80 characters, then won't one see a non-trivial amount of either wrap-around or truncation in diff output? This, again, begs the question of why not use a shorter line-length limit than the presumed maximum screen width? - Dan C. From crossd at gmail.com Thu Nov 9 07:43:05 2017 From: crossd at gmail.com (Dan Cross) Date: Wed, 8 Nov 2017 16:43:05 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <20171108214036.GB15911@mcvoy.com> References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> <20171108214036.GB15911@mcvoy.com> Message-ID: On Wed, Nov 8, 2017 at 4:40 PM, Larry McVoy wrote: > On Wed, Nov 08, 2017 at 04:34:13PM -0500, Dan Cross wrote: >> >> The thing that sort of vexes me about these arguments is that the >> >> number 80 is so arbitrary. >> > >> > Not really. Programmers need windows side by side. Lots and lots of bit >> > mapped displays can handle 2 80 column windows at a reasonable font size. >> >> Lots of them can also handle two 100 column windows, or perhaps more > > Sure, my laptop can. But what about the ones that can't? That's why I think this argument doesn't hold up well. If we're to consider those, then what about the ones that can't handle two 80-column windows at the font size required by the user? >> > And I made the point about side by side diff tools. >> >> But what about 3-way merge tools? > > Dude, you're talking to the guy that invented distributed source management > and has written what is likely the best 3 way merge tool on the planet (jk, > it's good though). My 3 way merge > > [ left version ] [ right version ] > [ left version ] [ right version ] > [ left version ] [ right version ] > [ left version ] [ right version ] > [ left version ] [ right version ] > [ left version ] [ right version ] > [ merge ] [ help ] > [ merge ] [ help ] > [ merge ] [ help ] > > Works great! Touche. :-) - Dan C. From clemc at ccc.com Thu Nov 9 07:49:37 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 8 Nov 2017 21:49:37 +0000 Subject: [TUHS] DH11 flaw Was: pre-more pager? In-Reply-To: <20171108212753.C800818C0B9@mercury.lcs.mit.edu> References: <20171108212753.C800818C0B9@mercury.lcs.mit.edu> Message-ID: I've forgotten the details now, so I'll have look at the prints when I get home, but think i remember that Ken had a strap on the DHDM that corrected this. But I do remember the discussion. I have not idea where it was. I have a file of 'coms stuff' at home (paper of course). I'll look to see if it's in there. Reading the McNamara interview, sadly he (like many folks) considered the DZ to have modem control. It had >>partial<< support, while the DH (with the DM option) had full. The difference is important. Dave Cane (HW lead on the 750) used the DZ as his model for the original MC-500 serial ports -- what a mess. Here it is be had a real-time machine and could not keep the clock straight for the first couple of versions of the OS because the HW was dorked. [Later systems did it properly]. Clem On Wed, Nov 8, 2017 at 9:27 PM, Noel Chiappa wrote: > From: Ron Natalie > > > We actually still had some real DEC DH's on our system. > > ... > > At least the DZ doesn't loop on the ready bit like the kernel printf > > This reminds me of something I recall reading about John McNamara > (designer of > the DH11) admitting that he'd screwed up a bit in the DH design; IIRC it > was > that if you set the input silo alarm (interrupt) level to something greater > than 1 character, and someone types one character, and then nothing > else... you never get an input interrupt! > > (Which is why some Unix DH driver which sets the silo alarm level > 1 - to > get > more efficient processing by reducing the number of interrupts _if > possible_ - > has to call a 'input characters ready from the DH' routine in the clock > interrupt code.) > > IIRC McNamara said he should have included a timeout, so that if the silo > count was non-zero,and stayed that way for a while, it should have caused > a timeout, and an interrupt. > > I was just looking for this, but couldn't find it. I thought it was here: > > http://woffordwitch.com/McNamaraDH11.asp > > but it doesn't seem to be. Does anyone recall seeing this anywhere, and if > so, > where? Web search engines didn't turn anything up, alas... > > Noel > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at ronnatalie.com Thu Nov 9 07:59:53 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 8 Nov 2017 16:59:53 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: References: <1510168964.1261540.1166077456.49865F48@webmail.messagingengine.com> Message-ID: <014e01d358dc$e8417650$b8c462f0$@ronnatalie.com> > # cc cr3.c > Undefined: > _fout OH yes. "The fout notion is kludgy" was the comment in the docs. It what allowed you to redirect the printf/putchar to something other than fd 1 on early C runtimes. From clemc at ccc.com Thu Nov 9 08:00:21 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 8 Nov 2017 22:00:21 +0000 Subject: [TUHS] pre-more pager? In-Reply-To: References: <1510168964.1261540.1166077456.49865F48@webmail.messagingengine.com> Message-ID: fout and flush -- Looks like the V6 version of cr3 - which is using the portable C library which was done before the standard C library. I bet if you grab the one from 2BSD that should have been updated to V7 On Wed, Nov 8, 2017 at 9:18 PM, Will Senn wrote: > On 11/8/17 1:22 PM, Random832 wrote: > >> Some of these are for V7 or V6 contemporary PDP-11 Unixes, and most of >> them are far simpler than more so you should have little difficulty >> getting them working anyway. >> >> Links: >> http://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/cr3.c >> http://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/cr3.c >> http://minnie.tuhs.org/cgi-bin/utree.pl?file=2.9BSD/usr/src/ucb/more.c >> http://minnie.tuhs.org/cgi-bin/utree.pl?file=32V/usr/src/cmd/pg.c >> http://minnie.tuhs.org/cgi-bin/utree.pl?file=AUSAM/source/S/pg.c >> (apparently unrelated to the 32V version) >> http://minnie.tuhs.org/cgi-bin/utree.pl?file=SRI-NOSC/s2/pg.c >> http://minnie.tuhs.org/cgi-bin/utree.pl?file=OpenSolaris_b135/cmd/pg/pg.c >> >> https://danhalbert.org/more.html - mentions cr3 >> > > It makes sense that it used to be paper based and slow on screen. > > Regarding the links and old bsd's. The binary cr3 on 1bsd works in v7. > Also, the book I'm reading has a c program that does paging. But, I'm > always off down the rabbit hole... I tried to compile the cr3.c source and > I get this error: > > # cc cr3.c > Undefined: > _fout > _flush > _getc > _end > > My understanding is that cc includes libc by default, so these must not be > in libc. But getc is standard lib, so what am I missing? > > Thanks, > > Will > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From pnr at planet.nl Thu Nov 9 08:02:01 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Wed, 8 Nov 2017 23:02:01 +0100 Subject: [TUHS] pre-more pager? Message-ID: <38D56F21-9AF6-4A00-995F-DAAD6570BC51@planet.nl> > > Regarding the links and old bsd's. The binary cr3 on 1bsd works in v7. > Also, the book I'm reading has a c program that does paging. But, I'm > always off down the rabbit hole... I tried to compile the cr3.c source > and I get this error: > > # cc cr3.c > Undefined: > _fout > _flush > _getc > _end > > My understanding is that cc includes libc by default, so these must not > be in libc. But getc is standard lib, so what am I missing? That source is for V6 not V7. V6 did not have the stdio lib yet, but a precursor to that. The binary you are using has the older io routines statically linked in. Paul From gtaylor at tnetconsulting.net Thu Nov 9 08:17:15 2017 From: gtaylor at tnetconsulting.net (Grant Taylor) Date: Wed, 8 Nov 2017 15:17:15 -0700 Subject: [TUHS] 80 columns ... In-Reply-To: References: Message-ID: <922d4a31-3c38-dcae-b6d2-e361d32cb24f@tnetconsulting.net> On 11/08/2017 01:52 PM, ron minnich wrote: > So, 80 column folks, I don't consider myself to be an 80 column person. - I default my XTerm windows to 132 x 50. (Rows matter less.) > would you find this > a(b, > c, > d) > > more readable than > a(b,c,d) I don't know if it plays into preferences or not, but I do find that having things on one line makes it significantly easier to programmability modify the line with a Regular Expression. Maybe I need to learn some more about RE's to make working across lines easier. > would you have code review software that automatically bounces out lines > that are 82 columns wide? How far does this go? My $EMPLOYER does have CR processes that complain about lines longer than 80 characters. > I do recall 80 column monitors, but I started on 132 column decwriter > IIs and hence have never had sympathy for 80 columns. It's weird that so Interesting. I wonder if that's where the 132 column (alternative) standard came from. I.e. XTerm's "Allow 80/132 Column Switching" option in the VT Options menu. -- Grant. . . . unix || die -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3717 bytes Desc: S/MIME Cryptographic Signature URL: From will.senn at gmail.com Thu Nov 9 08:18:37 2017 From: will.senn at gmail.com (Will Senn) Date: Wed, 8 Nov 2017 16:18:37 -0600 Subject: [TUHS] pre-more pager? In-Reply-To: References: <1510168964.1261540.1166077456.49865F48@webmail.messagingengine.com> Message-ID: Woohoo! I actually got it working :). Thanks for the assist. The 2bsd version includes a retrofit.h file for it to work on v6. I removed the include and it compiled and linked just fine. Will On 11/8/17 4:00 PM, Clem Cole wrote: > fout and flush -- Looks like the V6 version of cr3 - which is using > the portable C library which was done before the standard C library. > I bet if you grab the one from 2BSD that should have been updated to V7 > > On Wed, Nov 8, 2017 at 9:18 PM, Will Senn > wrote: > > On 11/8/17 1:22 PM, Random832 wrote: > > Some of these are for V7 or V6 contemporary PDP-11 Unixes, and > most of > them are far simpler than more so you should have little > difficulty > getting them working anyway. > > Links: > http://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/cr3.c > > http://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/cr3.c > > http://minnie.tuhs.org/cgi-bin/utree.pl?file=2.9BSD/usr/src/ucb/more.c > > http://minnie.tuhs.org/cgi-bin/utree.pl?file=32V/usr/src/cmd/pg.c > > http://minnie.tuhs.org/cgi-bin/utree.pl?file=AUSAM/source/S/pg.c > > (apparently unrelated to the 32V version) > http://minnie.tuhs.org/cgi-bin/utree.pl?file=SRI-NOSC/s2/pg.c > > http://minnie.tuhs.org/cgi-bin/utree.pl?file=OpenSolaris_b135/cmd/pg/pg.c > > > https://danhalbert.org/more.html > - mentions cr3 > > > It makes sense that it used to be paper based and slow on screen. > > Regarding the links and old bsd's. The binary cr3 on 1bsd works in > v7. Also, the book I'm reading has a c program that does paging. > But, I'm always off down the rabbit hole... I tried to compile the > cr3.c source and I get this error: > > # cc cr3.c > Undefined: > _fout > _flush > _getc > _end > > My understanding is that cc includes libc by default, so these > must not be in libc. But getc is standard lib, so what am I missing? > > Thanks, > > Will > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462  7D45 3EAA 5B6D A982 BAAF > > -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Thu Nov 9 08:20:44 2017 From: will.senn at gmail.com (Will Senn) Date: Wed, 8 Nov 2017 16:20:44 -0600 Subject: [TUHS] pre-more pager? In-Reply-To: <38D56F21-9AF6-4A00-995F-DAAD6570BC51@planet.nl> References: <38D56F21-9AF6-4A00-995F-DAAD6570BC51@planet.nl> Message-ID: <5980db87-fc47-7315-bf80-eb073aef3872@gmail.com> On 11/8/17 4:02 PM, Paul Ruizendaal wrote: >> Regarding the links and old bsd's. The binary cr3 on 1bsd works in v7. >> Also, the book I'm reading has a c program that does paging. But, I'm >> always off down the rabbit hole... I tried to compile the cr3.c source >> and I get this error: >> >> # cc cr3.c >> Undefined: >> _fout >> _flush >> _getc >> _end >> >> My understanding is that cc includes libc by default, so these must not >> be in libc. But getc is standard lib, so what am I missing? > That source is for V6 not V7. V6 did not have the stdio lib yet, but a precursor to that. > The binary you are using has the older io routines statically linked in. > > Paul > Great answer - very clear. I was curious why the binary worked. I was able to get the 2BSD version (thanks Clem) to compile and run on V7. Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From krewat at kilonet.net Thu Nov 9 08:30:44 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 8 Nov 2017 17:30:44 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <922d4a31-3c38-dcae-b6d2-e361d32cb24f@tnetconsulting.net> References: <922d4a31-3c38-dcae-b6d2-e361d32cb24f@tnetconsulting.net> Message-ID: <225f0698-403a-88ff-3056-fca5df83a2db@kilonet.net> I too grew up on DecWriters writing MACRO-10 on TOPS-10 in high school. My favorite was the LA120 that I could change the character pitch and get 132 columns on 8.5" paper when we ran out of the wide stuff. To this day, 80 columns just doesn't do it for me. I generally comment - a LOT - and in C the comments will stretch out past 80 columns easily. On 11/8/2017 5:17 PM, Grant Taylor via TUHS wrote: > >> I do recall 80 column monitors, but I started on 132 column decwriter >> IIs and hence have never had sympathy for 80 columns. It's weird that so > > Interesting.  I wonder if that's where the 132 column (alternative) > standard came from.  I.e. XTerm's "Allow 80/132 Column Switching" > option in the VT Options menu. VT100's had a 132 column mode. I wrote a terminal emulator for the IBM-XT circa 1985 to do 132 columns in it's highest-resolution. I couldn't take 80 columns, even back then ;) From sauer at technologists.com Thu Nov 9 07:48:53 2017 From: sauer at technologists.com (Charles H Sauer) Date: Wed, 8 Nov 2017 15:48:53 -0600 Subject: [TUHS] (cassette) tape coming back [was Re: 80 columns ... In-Reply-To: References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> Message-ID: On Wed, 8 Nov 2017, Larry McVoy wrote: > It's like video on phones. We still call it taping. Probably still will > in a 100 years. Where's the tape? In history. As with the resurgence of 33 1/3 records ("vinyl"), cassette tape may also become more prominent again: https://www.wsj.com/articles/cassettes-are-making-a-comeback-but-there-s-a-kink-nobody-makes-tape-1509723435 I still use VCRs to record TV shows roughly once/week. I have an interesting collection of audio recordings on 1/4" tape that I made 20-40+ years ago as an active sound technician/musician. I'd given up on my old reel to reel machines, but a year ago my birthday present to myself was a reel to reel machine and Dolby units. I'm very slowly fetching stuff out of my archives and digitizing. I typically call it "recording" whether analog or digital... Charlie P.S. Having started out with 80 column cards, 72 columns of content, 8 of sequencing, continuing through most of graduate school, I typically restrict myself to 72 columns when programming. From dave at horsfall.org Thu Nov 9 08:43:01 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 9 Nov 2017 09:43:01 +1100 (EST) Subject: [TUHS] pre-more pager? In-Reply-To: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> References: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> Message-ID: On Wed, 8 Nov 2017, Arthur Krewat wrote: > ^S (stop) and ^Q (continue) at 1200 baud or less worked OK, especially > on paper terminals ;) -- (Clem just beat me to it) I had to implement XON/XOFF in our Edition 6. > head and tail would work too (although I'm not sure they existed at that > time, I'm no expert): When did "pg" come about? > cat filename | head -20 # get the first page. > cat filename | head -40 | tail -20 # get the second page. Arrgghh!! Unnecessary use of a cat pipe! -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From don at DonHopkins.com Thu Nov 9 08:46:12 2017 From: don at DonHopkins.com (Don Hopkins) Date: Wed, 8 Nov 2017 23:46:12 +0100 Subject: [TUHS] (cassette) tape coming back [was Re: 80 columns ... In-Reply-To: References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> Message-ID: <3C670B5E-529B-4D44-A88E-E60AECDBDA2A@gmail.com> Once I took a screen snapshot of my Apple ][ hires graphics with glow-in-the-dark silly putty! It didn’t last long, but it was cool while it lasted! Kinda like Kai Power Goo. -Don > On 8 Nov 2017, at 22:48, Charles H Sauer wrote: > > On Wed, 8 Nov 2017, Larry McVoy wrote: > >> It's like video on phones. We still call it taping. Probably still will >> in a 100 years. Where's the tape? In history. > > As with the resurgence of 33 1/3 records ("vinyl"), cassette tape may also become more prominent again: https://www.wsj.com/articles/cassettes-are-making-a-comeback-but-there-s-a-kink-nobody-makes-tape-1509723435 > > I still use VCRs to record TV shows roughly once/week. > > I have an interesting collection of audio recordings on 1/4" tape that I made 20-40+ years ago as an active sound technician/musician. I'd given up on my old reel to reel machines, but a year ago my birthday present to myself was a reel to reel machine and Dolby units. I'm very slowly fetching stuff out of my archives and digitizing. > > I typically call it "recording" whether analog or digital... > > Charlie > > P.S. Having started out with 80 column cards, 72 columns of content, 8 of sequencing, continuing through most of graduate school, I typically restrict myself to 72 columns when programming. From krewat at kilonet.net Thu Nov 9 08:47:12 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 8 Nov 2017 17:47:12 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: References: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> Message-ID: <54e07b8e-15ee-5786-bda0-533003aab69a@kilonet.net> On 11/8/2017 5:43 PM, Dave Horsfall wrote: > >> cat filename | head -20 # get the first page. >> cat filename | head -40 | tail -20 # get the second page. > > Arrgghh!!  Unnecessary use of a cat pipe! > cat added for clarity. Ok, not. I'm just dumb. head -20 < filename head -40 < filename | tail -20 Better? ;) From dave at horsfall.org Thu Nov 9 08:47:58 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 9 Nov 2017 09:47:58 +1100 (EST) Subject: [TUHS] pre-more pager? In-Reply-To: <20171108200222.B6A6F18C0B9@mercury.lcs.mit.edu> References: <20171108200222.B6A6F18C0B9@mercury.lcs.mit.edu> Message-ID: On Wed, 8 Nov 2017, Noel Chiappa wrote: > But that's all second-order effects anyway. If one were using a serial > line hooked up to a DZ (and those were common - DH's were _much_ more > expensive, so poor places like my lab at MIT used DZ's), then _every > character printed_ caused an interrupt. So the overhead from printing > each screen-ful of text was orders of magnitude greater than the > overhead of the user's input to get the next screen. Looxury! We had to make do with DJ-11s... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From doug at cs.dartmouth.edu Thu Nov 9 08:58:28 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Wed, 08 Nov 2017 17:58:28 -0500 Subject: [TUHS] pre-more pager? Message-ID: <201711082258.vA8MwSdo025795@coolidge.cs.Dartmouth.EDU> > In the meantime, how did folks page through text like man sh Chuckle. "Text like man sh" wasn't very long back then. .,.20p was quite an effective pager. It could go backward, and it didn't wipe out the screen (which can destroy the record of the problem that caused you to consult a reference). I still do it from time to time. Doug From akosela at andykosela.com Thu Nov 9 09:07:07 2017 From: akosela at andykosela.com (Andy Kosela) Date: Thu, 9 Nov 2017 00:07:07 +0100 Subject: [TUHS] 80 columns ... In-Reply-To: <225f0698-403a-88ff-3056-fca5df83a2db@kilonet.net> References: <922d4a31-3c38-dcae-b6d2-e361d32cb24f@tnetconsulting.net> <225f0698-403a-88ff-3056-fca5df83a2db@kilonet.net> Message-ID: On Wednesday, November 8, 2017, Arthur Krewat wrote: > I too grew up on DecWriters writing MACRO-10 on TOPS-10 in high school. My > favorite was the LA120 that I could change the character pitch and get 132 > columns on 8.5" paper when we ran out of the wide stuff. > > To this day, 80 columns just doesn't do it for me. I generally comment - a > LOT - and in C the comments will stretch out past 80 columns easily. > > On 11/8/2017 5:17 PM, Grant Taylor via TUHS wrote: > >> >> I do recall 80 column monitors, but I started on 132 column decwriter IIs >>> and hence have never had sympathy for 80 columns. It's weird that so >>> >> >> Interesting. I wonder if that's where the 132 column (alternative) >> standard came from. I.e. XTerm's "Allow 80/132 Column Switching" option in >> the VT Options menu. >> > > VT100's had a 132 column mode. I wrote a terminal emulator for the IBM-XT > circa 1985 to do 132 columns in it's highest-resolution. I couldn't take 80 > columns, even back then ;) > For me changing 80 columns and/or 8 character Tab is like trying to change the value of Pi. I consider those the holy rules you just don't change. But I am probably in minority group these days as I still use a lot of old school 80 columns VT terminals -- vt220 and vt320 are my personal favorites. --Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: From wkt at tuhs.org Thu Nov 9 09:14:05 2017 From: wkt at tuhs.org (Warren Toomey) Date: Thu, 9 Nov 2017 09:14:05 +1000 Subject: [TUHS] NUXI Problem In-Reply-To: <20171108202833.GA24833@minnie.tuhs.org> References: <20171108202833.GA24833@minnie.tuhs.org> Message-ID: <20171108231405.GA15489@minnie.tuhs.org> On Thu, Nov 09, 2017 at 06:28:33AM +1000, Warren Toomey wrote: >On Wed, Nov 08, 2017 at 11:07:10AM -0500, Nemo wrote: >>What was that story about porting an early UNIX to a machine with >>different char polarity? I dimly recall only a few problems. > >The NUXI problem on the Interdata 7/32, when the University of Wollongong >did the port of Sixth Edition. Oops, I stand corrected (by private e-mails), it was the IBM Series/1. I'll blame bit rot, or perhaps the Interdata also suffered from the NUXI problem. Thanks, Warren From krewat at kilonet.net Thu Nov 9 09:15:04 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 8 Nov 2017 18:15:04 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: References: <922d4a31-3c38-dcae-b6d2-e361d32cb24f@tnetconsulting.net> <225f0698-403a-88ff-3056-fca5df83a2db@kilonet.net> Message-ID: <48dd3f48-3567-f959-f42a-855ed5914010@kilonet.net> On 11/8/2017 6:07 PM, Andy Kosela wrote: > For me changing 80 columns and/or 8 character Tab is like trying to > change the value of Pi.  I consider those the holy rules you just > don't change. > > But I am probably in minority group these days as I still use a lot of > old school 80 columns VT terminals -- vt220 and vt320 are my personal > favorites. > xterms killed that requirement for me a long time ago. From imp at bsdimp.com Thu Nov 9 09:15:47 2017 From: imp at bsdimp.com (Warner Losh) Date: Wed, 8 Nov 2017 16:15:47 -0700 Subject: [TUHS] 80 columns ... In-Reply-To: <48dd3f48-3567-f959-f42a-855ed5914010@kilonet.net> References: <922d4a31-3c38-dcae-b6d2-e361d32cb24f@tnetconsulting.net> <225f0698-403a-88ff-3056-fca5df83a2db@kilonet.net> <48dd3f48-3567-f959-f42a-855ed5914010@kilonet.net> Message-ID: On Wed, Nov 8, 2017 at 4:15 PM, Arthur Krewat wrote: > > > On 11/8/2017 6:07 PM, Andy Kosela wrote: > >> For me changing 80 columns and/or 8 character Tab is like trying to >> change the value of Pi. I consider those the holy rules you just don't >> change. >> >> But I am probably in minority group these days as I still use a lot of >> old school 80 columns VT terminals -- vt220 and vt320 are my personal >> favorites. >> >> > xterms killed that requirement for me a long time ago. > It killed 80 columns, but not 8 character hard tabs! Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Thu Nov 9 09:21:11 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 9 Nov 2017 10:21:11 +1100 (EST) Subject: [TUHS] pre-more pager? In-Reply-To: <54e07b8e-15ee-5786-bda0-533003aab69a@kilonet.net> References: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> <54e07b8e-15ee-5786-bda0-533003aab69a@kilonet.net> Message-ID: On Wed, 8 Nov 2017, Arthur Krewat wrote: > head -20 < filename Or if you really want to confuse the newbies: < filename head -20 -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From akosela at andykosela.com Thu Nov 9 09:24:38 2017 From: akosela at andykosela.com (Andy Kosela) Date: Thu, 9 Nov 2017 00:24:38 +0100 Subject: [TUHS] 80 columns ... In-Reply-To: <48dd3f48-3567-f959-f42a-855ed5914010@kilonet.net> References: <922d4a31-3c38-dcae-b6d2-e361d32cb24f@tnetconsulting.net> <225f0698-403a-88ff-3056-fca5df83a2db@kilonet.net> <48dd3f48-3567-f959-f42a-855ed5914010@kilonet.net> Message-ID: On Thursday, November 9, 2017, Arthur Krewat wrote: > > > On 11/8/2017 6:07 PM, Andy Kosela wrote: > >> For me changing 80 columns and/or 8 character Tab is like trying to >> change the value of Pi. I consider those the holy rules you just don't >> change. >> >> But I am probably in minority group these days as I still use a lot of >> old school 80 columns VT terminals -- vt220 and vt320 are my personal >> favorites. >> >> > xterms killed that requirement for me a long time ago. > I still use 80 columns on my xterms. Like Larry said, most things in Unix still looks perfect on 80 columns display, plus it's easier to read -- less eye movements from left to right. If you think about it, regular books have a similar format. It has been scientifically proven that very long lines are just harder and slower to read. --Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Thu Nov 9 09:28:33 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 9 Nov 2017 10:28:33 +1100 (EST) Subject: [TUHS] 80 columns ... In-Reply-To: References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> Message-ID: On Wed, 8 Nov 2017, Steve Nickolas wrote: > I thought I was the only one who still called it "taping" when recording > to digital media. I still do... I even had a Betamax VCR at one time; damned hard trying to find tapes for it, but. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From doug at cs.dartmouth.edu Thu Nov 9 09:29:38 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Wed, 08 Nov 2017 18:29:38 -0500 Subject: [TUHS] 80 columns Message-ID: <201711082329.vA8NTcNP026158@coolidge.cs.Dartmouth.EDU> > I do recall 80 column monitors, but I started on 132 column decwriter > IIs and hence have never had sympathy for 80 columns. It's weird that so Interesting. I wonder if that's where the 132 column (alternative) standard came from. No. IBM's printers were 132 columns even before stored-program computers. From steffen at sdaoden.eu Thu Nov 9 09:33:21 2017 From: steffen at sdaoden.eu (Steffen Nurpmeso) Date: Thu, 09 Nov 2017 00:33:21 +0100 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: References: Message-ID: <20171108233321.3ZPoN%steffen@sdaoden.eu> Warner Losh wrote: |On Wed, Nov 8, 2017 at 9:07 AM, Nemo <[1]cym224 at gmail.com[/1]> wrote: |On 6 November 2017 at 19:36, Ron Natalie <[2]ron at ronnatalie.com[/2]> wrote: |> It’s worse than that.   “char” is defined as neither signed nor unsigned. |> The signedness is implementation defined.    This was why we have \ |> the inane |> “signed” keyword. ... |What was that story about porting an early UNIX to a machine with |different char polarity?  I dimly recall only a few problems. | |Doesn't even have to be very early... There's lots of 'assume char \ |is signed bugs' in even modern code. So many that ARM gave up on the \ |idea that |unsigned char was good (since the underlying ARM architecture supported \ |it better) and their modern ABIs are all signed char. The other thing \ .. |When I was working on FreeBSD/arm only a decade ago, I'd routinely \ |hit both of these issues... I had one of those on Debian/arm64 (Bug#806300) no sooner but November 2015, very friendly reported as |This symptom and the pattern of failures is typical of programs that |assume that plain char is signed. Fortunately there's a warning in |the build log that tells you exactly where the bug is: (in fact already mentioned in some hidden archlinux forum, and also to me in private by a Swede, but i failed to see, and forgot, hu-hu!!, all in March 2015) introduced in December 2013 when blindly fixing CC warnings (Many: fix gcc 4.8.2 -fstrict-overflow -Wstrict-overflow=5). Testing char not int against EOF is bad. --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 ron at ronnatalie.com Thu Nov 9 09:35:44 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 8 Nov 2017 18:35:44 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> Message-ID: <017e01d358ea$4c3ffd90$e4bff8b0$@ronnatalie.com> > I still do... I even had a Betamax VCR at one time; damned hard trying to find tapes for it, but. Ah yes, the slightly less popular beta format. From dave at horsfall.org Thu Nov 9 09:39:52 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 9 Nov 2017 10:39:52 +1100 (EST) Subject: [TUHS] 80 columns ... In-Reply-To: <017e01d358ea$4c3ffd90$e4bff8b0$@ronnatalie.com> References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> <017e01d358ea$4c3ffd90$e4bff8b0$@ronnatalie.com> Message-ID: On Wed, 8 Nov 2017, Ron Natalie wrote: >> I still do... I even had a Betamax VCR at one time; damned hard trying >> to find tapes for it, but. > > Ah yes, the slightly less popular beta format. Yeah; although technically inferior, VHS had about twice the recording time and hence won (mediocrity rules the market). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From steffen at sdaoden.eu Thu Nov 9 09:46:52 2017 From: steffen at sdaoden.eu (Steffen Nurpmeso) Date: Thu, 09 Nov 2017 00:46:52 +0100 Subject: [TUHS] 80 columns ... In-Reply-To: References: <20171108210216.GB15276@mcvoy.com> Message-ID: <20171108234652.SM0h5%steffen@sdaoden.eu> Dan Cross wrote: |On Wed, Nov 8, 2017 at 4:02 PM, Larry McVoy wrote: |> On Wed, Nov 08, 2017 at 08:52:03PM +0000, ron minnich wrote: |>> So, 80 column folks, would you find this |>> a(b, |>> c, |>> d) |>> |>> more readable than |>> a(b,c,d) Someone who is no longer on this list said to the same topic to me, in October: Wer zu schnell nach Rechts kommt, strukturiert zu wenig ;-) Who approaches the right too fast, does not structure enough More or less. In the context that i turned to space indentation when i started using C not C++. |> yeah, I do. I work on thinkpad x220 sized machines which are just \ |> big enough |> for two 80 column windows with a little left over. When I'm checking \ |> in code, |> reviewing code, debugging code, I frequently want to see two versions \ |> of the |> same file side by side. If you code wider than 80 columns it greatly \ |> reduces |> the speed at which you can figure out what happened. I missed the possibility in screen(1), now in tmux(1) i can use bind-key -T prefix < set-window-option force-width 80 bind-key -T prefix > set-window-option force-width 0 again. |The thing that sort of vexes me about these arguments is that the |number 80 is so arbitrary. If you can fit two 80 column windows |side-by-side, then surely you could do the same with two 78-, 72- or |even 64-column windows. So why not 64, 72 or 78 columns? Whatever you say, i only wanted to add that "Human attention" is only so far stretchable, and that readers likely cannot grasp line lengths of that size, especially if densely packed or the surrounding lines are of significantly different length. Some neurologist could surely correct me. With tab indentation, a function with one level of conditionals eats up 16 rows, so the more or less ideal line length of 64 (if i recall correctly Knuth advocated 66) is the result. --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 krewat at kilonet.net Thu Nov 9 09:49:29 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 8 Nov 2017 18:49:29 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: References: <922d4a31-3c38-dcae-b6d2-e361d32cb24f@tnetconsulting.net> <225f0698-403a-88ff-3056-fca5df83a2db@kilonet.net> <48dd3f48-3567-f959-f42a-855ed5914010@kilonet.net> Message-ID: On 11/8/2017 6:15 PM, Warner Losh wrote: > > xterms killed that requirement for me a long time ago. > > > It killed 80 columns, but not 8 character hard tabs! > Whoever came up with 4 column tabs should be shot. ;) On 11/8/2017 6:24 PM, Andy Kosela wrote: > > > On Thursday, November 9, 2017, Arthur Krewat > wrote: > > > xterms killed that requirement for me a long time ago. > > > I still use 80 columns on my xterms.  Like Larry said, most things in > Unix still looks perfect on 80 columns display, plus it's easier to > read -- less eye movements from left to right. If you think about it, > regular books have a similar format.  It has been > scientifically proven that very long lines are just harder and > slower to read. > Besides programming, system administration and other tasks these days sometimes requires a few more columns than 80: http://pdp10.kilonet.org/images/xterm.jpg And that's just one example. I forgot to mention my using xterms past 80 columns wasn't so much about writing code (although, I do regularly go past 80 columns) but general UNIX stuff too. -- BTW, no disrespect to anyone here, whatever floats your boat ;) -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Thu Nov 9 10:04:02 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 9 Nov 2017 11:04:02 +1100 (EST) Subject: [TUHS] 80 columns ... In-Reply-To: References: <922d4a31-3c38-dcae-b6d2-e361d32cb24f@tnetconsulting.net> <225f0698-403a-88ff-3056-fca5df83a2db@kilonet.net> <48dd3f48-3567-f959-f42a-855ed5914010@kilonet.net> Message-ID: On Wed, 8 Nov 2017, Arthur Krewat wrote: > It killed 80 columns, but not 8 character hard tabs! > > Whoever came up with 4 column tabs should be shot. ;) One employer used sw=4, so I got used to using ^T (and still do). The next employer insisted upon tab=4 and hard tabs, but I still insisted upon ta=8. Then, one day, I misread the indentation in a legacy C program with 8-tabs and some 4-tab mods, with disastrous results... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From ralph at inputplus.co.uk Thu Nov 9 11:22:07 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Thu, 09 Nov 2017 01:22:07 +0000 Subject: [TUHS] C question for the historians In-Reply-To: References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> Message-ID: <20171109012207.BA4111F942@orac.inputplus.co.uk> Hi Chet, > > But this w & MASK discussion is one of the weirder ones. > > gcc warns about it in its default mode I'm having trouble triggering that, though often these things crop up when you don't want them, not when you do. $ cat t.c #define M 0xa5 int foo(int i, int j) { if (i & M && j & ~M) return 42; return -314; } $ gcc -Wall -pedantic`: swine` -O3 -c t.c $ When it does moan, is it one of those things where just extra parenthesis suffice as a signal that you meant it? -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From scj at yaccman.com Thu Nov 9 11:35:39 2017 From: scj at yaccman.com (Steve Johnson) Date: Wed, 08 Nov 2017 17:35:39 -0800 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: Message-ID: I don't think either Dennis or I ever thought that characters should be signed.  It's true that PCC didn't specify it.  It's also true that in those days the 8th bit in a char was pretty much unused (except by the shell), so the issue never arose.  I believe the folks at Bell Labs Holmdel who did the port to the Vax were the first ones to come up with signed characters.  I think it was a real blot on C.  For example, consider:        struct {  ....               char x:1;        ...        } If characters are signed, the only legal values of x are 0 and -1 (!) Steve ----- Original Message ----- From: "Warner Losh" To: "Nemo" Cc: "The Eunuchs Hysterical Society" Sent: Wed, 8 Nov 2017 09:12:50 -0700 Subject: Re: [TUHS] origins of void* -- Apology! On Wed, Nov 8, 2017 at 9:07 AM, Nemo wrote: On 6 November 2017 at 19:36, Ron Natalie wrote: > It’s worse than that.   “char” is defined as neither signed nor unsigned. > The signedness is implementation defined.    This was why we have the inane > “signed” keyword. What was that story about porting an early UNIX to a machine with different char polarity?  I dimly recall only a few problems. Doesn't even have to be very early... There's lots of 'assume char is signed bugs' in even modern code. So many that ARM gave up on the idea that unsigned char was good (since the underlying ARM architecture supported it better) and their modern ABIs are all signed char. The other thing that EABI fixes is the crazy alignment rules that were out-of-step with the rest of the computer industry that broke a lot of networking and storage code on ARM because its rules caused structs that would otherwise describe the binary layout to be suddenly wrong. Yes, that is an implementation choice, just a poor one that was eventually corrected. When I was working on FreeBSD/arm only a decade ago, I'd routinely hit both of these issues... Warner Links: ------ [1] mailto:cym224 at gmail.com [2] mailto:ron at ronnatalie.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From tytso at mit.edu Thu Nov 9 11:00:29 2017 From: tytso at mit.edu (Theodore Ts'o) Date: Wed, 8 Nov 2017 20:00:29 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: References: <20171108210216.GB15276@mcvoy.com> <20171108212424.GA15911@mcvoy.com> <20171108214036.GB15911@mcvoy.com> Message-ID: <20171109010029.t6puvz5n2oljpbvq@thunk.org> On Wed, Nov 08, 2017 at 04:43:05PM -0500, Dan Cross wrote: > > Sure, my laptop can. But what about the ones that can't? > > That's why I think this argument doesn't hold up well. If we're to > consider those, then what about the ones that can't handle two > 80-column windows at the font size required by the user? At the end of the day we have to pick *something*. Since those of us older farts with the older eyes tend to have more say, thankfully its stayed at 80 columns as opposed to people who can say "I have *no* trouble with terminals at 6 point font, what's your problem?" Sure it's arbitrary, but it's arbitrary the same way that if you want to make sure a car or an RV is legal in all states in the US, it had better not be more than 96 inches (8 feet). Most states will allow 102 inches (8.5 feet); but funny thing --- car manufacturers hate having multiple SKU's for different states. Heck, for that matter, chosing 8 bits for a byte and making words be mulitples of 8 bits was arbitrary. I'm sure the designer of 18-bit and 36-bit machines thought so, anyway.... - Ted From chet.ramey at case.edu Thu Nov 9 11:41:51 2017 From: chet.ramey at case.edu (Chet Ramey) Date: Wed, 8 Nov 2017 20:41:51 -0500 Subject: [TUHS] C question for the historians In-Reply-To: <20171109012207.BA4111F942@orac.inputplus.co.uk> References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> <20171109012207.BA4111F942@orac.inputplus.co.uk> Message-ID: On 11/8/17 8:22 PM, Ralph Corderoy wrote: > Hi Chet, > >>> But this w & MASK discussion is one of the weirder ones. >> >> gcc warns about it in its default mode > > I'm having trouble triggering that, though often these things crop up > when you don't want them, not when you do. > > $ cat t.c > #define M 0xa5 > > int foo(int i, int j) > { > if (i & M && j & ~M) > return 42; > return -314; > } > $ gcc -Wall -pedantic`: swine` -O3 -c t.c > $ > > When it does moan, is it one of those things where just extra > parenthesis suffice as a signal that you meant it? Yeah, that's what I thought, but I didn't go so far as to test it. (There's also the annoying warning on `if (x = something)'; maybe that's what I was thinking.) -- ``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://cnswww.cns.cwru.edu/~chet/ From krewat at kilonet.net Thu Nov 9 11:49:43 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 8 Nov 2017 20:49:43 -0500 Subject: [TUHS] C question for the historians In-Reply-To: References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> <20171109012207.BA4111F942@orac.inputplus.co.uk> Message-ID: <0ace6d7d-24c4-d4f5-f872-0cef020f4dad@kilonet.net> On 11/8/2017 8:41 PM, Chet Ramey wrote: > (There's also the annoying warning on `if (x = something)'; maybe that's > what I was thinking.) Which Visual Studio 2013 doesn't warn about in it's default state. I know it doesn't through personal experience (insert ashamed look-away emoticon here). Truth be told, there is some utility in the "if (x = something) ..." - always set x, but also conditionally do something when it's not 0. But it's also a dumb mistake. Yeah, I'm dumb. art k. From scj at yaccman.com Thu Nov 9 12:01:53 2017 From: scj at yaccman.com (Steve Johnson) Date: Wed, 08 Nov 2017 18:01:53 -0800 Subject: [TUHS] pre-more pager? In-Reply-To: <1510168964.1261540.1166077456.49865F48@webmail.messagingengine.com> Message-ID: <9182d33ee300bdbe18443296cf16364bfb7741f0@webmail.yaccman.com> "Well, in the beginning, there was paper. You didn't need to "page" because you had actual pages you could hold in your hand (if not the manual typeset as an actual book, then the printed output from the teletype)." Paper indeed...    I had a model 37 teletype at home, and would bring home boxes of paper and carefully arrange the box so that the blank paper feeding the terminal did not get tangled up with the "used" paper spewing out of the teletype.  A second box for the used paper was handy. In the early Unix days, the file system had two kinds of tiles -- small files and "large" files.   As a file grew, there was a moment when the inodes were rewritten to go from small to large.  And if the system crashed during this process, a lot of stuff could get messed up or deleted.  It usually took a few minutes for the system to get back online, so I kept a highlighter by the terminal, and when the system crashed I would reel back the used paper and highlight those lines that I needed to reenter.  When the system came back, I copied the lines that had been lost and pressed on. One day, I had spent a couple of hours in an intense debugging session when my wife called me to lunch.  I didn't save my stuff, and was very unhappy to return an hour later and discover the system had crashed.   I was even more unhappy to discover that, while I was at lunch, our cat had found the box of used paper and used it as a litter box.  After the shock wore off, I picked up my highlighter anyway and marked the soggy lines I needed to retype... It was never more true that debugging was a smelly job... Steve -------------- next part -------------- An HTML attachment was scrubbed... URL: From lyndon at orthanc.ca Thu Nov 9 12:16:12 2017 From: lyndon at orthanc.ca (Lyndon Nerenberg) Date: Wed, 8 Nov 2017 18:16:12 -0800 Subject: [TUHS] pre-more pager? In-Reply-To: <9182d33ee300bdbe18443296cf16364bfb7741f0@webmail.yaccman.com> References: <9182d33ee300bdbe18443296cf16364bfb7741f0@webmail.yaccman.com> Message-ID: <97BBA90A-8D38-4D4B-A659-176869906D76@orthanc.ca> > On Nov 8, 2017, at 6:01 PM, Steve Johnson wrote: > > I was even more unhappy to discover that, while I was at lunch, our cat had found the box of used paper and used it as a litter box. After the shock wore off, I picked up my highlighter anyway and marked the soggy lines I needed to retype... Reminds me of a few lines in one of my favourite _Arrogant Worms_ songs (okay, they all are): . . . William Shakespeare's in my cat He rarely ever talks He makes his loudest statements Standing in the litter box . . . Perhaps s/he was doing code review :-) https://arrogantworms1.bandcamp.com/track/william-shakespeares-in-my-cat From will.senn at gmail.com Thu Nov 9 14:38:42 2017 From: will.senn at gmail.com (Will Senn) Date: Wed, 8 Nov 2017 22:38:42 -0600 Subject: [TUHS] pre-more pager? In-Reply-To: References: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> <54e07b8e-15ee-5786-bda0-533003aab69a@kilonet.net> Message-ID: <902164cd-9c7c-9ce9-d66c-d6321608f526@gmail.com> On 11/8/17 5:21 PM, Dave Horsfall wrote: > On Wed, 8 Nov 2017, Arthur Krewat wrote: > >> head -20 < filename > > Or if you really want to confuse the newbies: > >     < filename head -20 > too bad head doesn't exist on v7. I did have to look up the incantation in Intro to the Shell by Bourne, that's fascinating stuff and it still works on my mac - nuts! -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From will.senn at gmail.com Thu Nov 9 14:44:50 2017 From: will.senn at gmail.com (Will Senn) Date: Wed, 8 Nov 2017 22:44:50 -0600 Subject: [TUHS] cryptic cc error on v7 Message-ID: <8211c52a-5551-512d-d6ab-df601b86f560@gmail.com> I found head on 3BSD and thought it might be as simple to compile as cr3, unfortunately, it isn't. I did: $ cc head.c head.o? $ cc -c head.c head.o? $ pcc head.c head.c head.o? I thought the assembler, as, was cryptic, at least there you get a one character error response. What is cc trying to say? Obviously head.o won't exist unless cc succeeds... Thanks, Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From will.senn at gmail.com Thu Nov 9 14:50:10 2017 From: will.senn at gmail.com (Will Senn) Date: Wed, 8 Nov 2017 22:50:10 -0600 Subject: [TUHS] cryptic cc error on v7 In-Reply-To: <8211c52a-5551-512d-d6ab-df601b86f560@gmail.com> References: <8211c52a-5551-512d-d6ab-df601b86f560@gmail.com> Message-ID: On 11/8/17 10:44 PM, Will Senn wrote: > I found head on 3BSD and thought it might be as simple to compile as > cr3, unfortunately, it isn't. I did: > > $ cc head.c > head.o? > > $ cc -c head.c > head.o? > > $ pcc head.c > head.c > head.o? > > I thought the assembler, as, was cryptic, at least there you get a one > character error response. What is cc trying to say? Obviously head.o > won't exist unless cc succeeds... > > Thanks, > > Will > Cryptic indeed. Actually, it makes some sense. I was logged in as dmr and trying to compile the code in a directory where I didn't have permissions (apparently I ran tar xv0 as root). So, it seems like the compiler succeeded in compiling the code, but wasn't able to create the output. I switched to root and was able to get head working. Thanks, Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From otto at drijf.net Thu Nov 9 16:52:38 2017 From: otto at drijf.net (Otto Moerbeek) Date: Thu, 9 Nov 2017 07:52:38 +0100 Subject: [TUHS] 80 columns ... In-Reply-To: <20171108234652.SM0h5%steffen@sdaoden.eu> References: <20171108210216.GB15276@mcvoy.com> <20171108234652.SM0h5%steffen@sdaoden.eu> Message-ID: <20171109065238.GJ11221@colo.drijf.net> On Thu, Nov 09, 2017 at 12:46:52AM +0100, Steffen Nurpmeso wrote: > Dan Cross wrote: > |On Wed, Nov 8, 2017 at 4:02 PM, Larry McVoy wrote: > |> On Wed, Nov 08, 2017 at 08:52:03PM +0000, ron minnich wrote: > |>> So, 80 column folks, would you find this > |>> a(b, > |>> c, > |>> d) > |>> > |>> more readable than > |>> a(b,c,d) > > Someone who is no longer on this list said to the same topic to > me, in October: > > Wer zu schnell nach Rechts kommt, strukturiert zu wenig ;-) > > Who approaches the right too fast, does not structure enough > Can related to that very much, I take it as a hint that my nesting gets too deep when I'm hitting the right margin. -Otto From lars at nocrew.org Thu Nov 9 16:37:55 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Thu, 09 Nov 2017 06:37:55 +0000 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <20171108212550.56005156E7D7@mail.bitblocks.com> (Bakul Shah's message of "Wed, 08 Nov 2017 13:25:35 -0800") References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <20171108212550.56005156E7D7@mail.bitblocks.com> Message-ID: <7wzi7wt0sc.fsf@junk.nocrew.org> Bakul Shah wrote: > I agree that `char' shouldn't do double duty as the smallest > addressable unit and I was suggesing uint8_t does that job. There are still machines around where 8-bit bytes isn't a natural fit. From don at DonHopkins.com Thu Nov 9 17:14:28 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 9 Nov 2017 08:14:28 +0100 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <7wzi7wt0sc.fsf@junk.nocrew.org> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <20171108212550.56005156E7D7@mail.bitblocks.com> <7wzi7wt0sc.fsf@junk.nocrew.org> Message-ID: <42D46D6E-46F4-49E9-A76B-360A812DBBB0@gmail.com> > On 9 Nov 2017, at 07:37, Lars Brinkhoff wrote: > > Bakul Shah wrote: >> I agree that `char' shouldn't do double duty as the smallest >> addressable unit and I was suggesing uint8_t does that job. > > There are still machines around where 8-bit bytes isn't a natural fit. 1 bit bytes, the smallest addressable unit on the PDP-10, sounds kinda cool actually. Now would those be signed or unsigned? The PowerPC was great at smashing and swizzling bit fields and emulating other CPU instruction sets with different memory layouts, because it could rotate and mask very quickly! You could do byte reversal in three instructions: "rotate left" 8 to position two of the bytes, then two “rotate left word immediate then mask insert” instructions. https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.alangref/idalangref_32bit_rtate_shift.htm http://sametwice.com/rlwinm https://www.google.com/patents/US20140208067 PowerPC AltiVec was a really beautiful instruction set. https://en.wikipedia.org/wiki/AltiVec -Don -------------- next part -------------- An HTML attachment was scrubbed... URL: From lars at nocrew.org Thu Nov 9 17:24:01 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Thu, 09 Nov 2017 07:24:01 +0000 Subject: [TUHS] 80 columns ... In-Reply-To: (ron minnich's message of "Wed, 08 Nov 2017 20:52:03 +0000") References: Message-ID: <7wpo8rud7y.fsf@junk.nocrew.org> ron minnich wrote: > So, 80 column folks And then there's old-school Forth style, where lines are limited to 64 characters. From lars at nocrew.org Thu Nov 9 16:33:36 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Thu, 09 Nov 2017 06:33:36 +0000 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: (Warner Losh's message of "Wed, 8 Nov 2017 13:45:10 -0700") References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <00d801d358cb$af9a5990$0ecf0cb0$@ronnatalie.com> Message-ID: <7w4lq4ufjz.fsf@junk.nocrew.org> Warner Losh wrote: > Don Hopkins wrote: >> The PDP-10 had arbitrarily sized byte pointers! Did anybody ever >> implement a C compiler on that hardware? > > Yes. Several people did. We had a thread about it not to long ago. kcc Kok > Chen's C compiler for PDP-10 can be found at https://github.com/PDP-10/kcc. I know about four: - C10 by Alan Snyder - KCC by Kok Chen, improved by Ken Harrenstien - GCC backend by myself, funded by XKL - PCC backend by Anders Magnusson From lars at nocrew.org Thu Nov 9 17:44:04 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Thu, 09 Nov 2017 07:44:04 +0000 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <42D46D6E-46F4-49E9-A76B-360A812DBBB0@gmail.com> (Don Hopkins's message of "Thu, 9 Nov 2017 08:14:28 +0100") References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <20171108212550.56005156E7D7@mail.bitblocks.com> <7wzi7wt0sc.fsf@junk.nocrew.org> <42D46D6E-46F4-49E9-A76B-360A812DBBB0@gmail.com> Message-ID: <7wlgjfucaj.fsf@junk.nocrew.org> Don Hopkins wrote: > 1 bit bytes, the smallest addressable unit on the PDP-10, sounds kinda > cool actually. Now would those be signed or unsigned? There are only instructions to load unsigned bytes. No sign extensions. But sadly, this is getting off topic. From steve at quintile.net Thu Nov 9 18:07:56 2017 From: steve at quintile.net (Steve Simon) Date: Thu, 9 Nov 2017 08:07:56 +0000 Subject: [TUHS] margins and indenting, and arbitrary c rules Message-ID: At the risk of stirring up another hornets nest... I never accepted the Microsoft “write functions for maximal indentation, with only one return” and stick to “get out if the function asap, try to have success at the bottom of the function” style. this means my code is usually fairly narrow. -Steve From michael at kjorling.se Thu Nov 9 20:17:54 2017 From: michael at kjorling.se (Michael =?utf-8?B?S2rDtnJsaW5n?=) Date: Thu, 9 Nov 2017 10:17:54 +0000 Subject: [TUHS] C question for the historians In-Reply-To: References: Message-ID: <20171109101754.GD6190@h-174-65.A328.priv.bahnhof.se> On 8 Nov 2017 09:27 -0700, from imp at bsdimp.com (Warner Losh): > Or do the Linux-school and go with > > if (!!(flags & DLADM_OPT_PERSIST)) { > > to really confuse things... That smells like a Javascript influence to me, where if (!!x) or z = !!x; is _more or less_ idiomatic for if (x == true) or z = x == true ? true : false; (mind the difference between _assignment_ = and _equality_ == and _actually equals_ ===) or what in another language could be written as something largely similar to a simple if (x) if so desired. Simply, !!x coerces x from whatever it is to a boolean, based on the _truthiness_ of x. Where _truthiness_ is another of those lovely Javascript concepts. This, of course, is partly because Javascript (even more so than, say, C) lacks _any_ sane idea of types. Its type system is more similar to that of BCPL or PHP than even C, in that not only do you get to keep the pieces if things break (assuming that you're lucky enough to _know_ that things broke), but also that anything goes anywhere. That variable which held a boolean a moment ago? Sure, go right ahead and put an object or an array or a string in it. The next line of code can replace it with a floating-point value or single character no problem, and then you can have a conditional based on whether or not the latter has sufficient truthiness. (People who work with quantum computers must love that language.) -- Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se “People who think they know everything really annoy those of us who know we don’t.” (Bjarne Stroustrup) From pnr at planet.nl Mon Nov 6 06:44:07 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Sun, 5 Nov 2017 21:44:07 +0100 Subject: [TUHS] origins of void* In-Reply-To: <201711051006.vA5A6BO2032436@freefriends.org> References: <33ABE931-7E70-4C99-B289-2D3F6BDA1EBE@planet.nl> <201711051006.vA5A6BO2032436@freefriends.org> Message-ID: <84CC038A-18DA-4E04-B2BC-8AC50F863B7B@planet.nl> Many thanks all for the replies, most enlightening. I’ve examined the compiler sources for recognising ‘void’ as a keyword in the lexer, as far as available on the TUHS Unix Tree web pages. For the PDP11 with pcc the results are that void is not present in V7, but is in SysIII. That is consistent with it being first implemented in 1979 on Unix/TS, and just missing the V7 release. As to the Ritchie compiler, void only first appears in SysV in 1983 (it is not in 2.9BSD). For the VAX it is not in 32V and 3BSD, but it is in 4BSD. So it would seem that void pointers were available to the wider world (including BSD) from the summer of 1980 onwards. >> In the 4BSD era there was caddr_t, which I think was used for pretty >> much the same purposes. > > Only for kernel code. I am pretty sure caddr_t wasn't used in user-land code. Ah, thanks for pointing that out, I had not realised that and it helps explain some things. But why wasn’t caddr_t used for user-land code: usage in the signature of e.g. write() would have made sense, right? In 4.1x BSD the definition of caddr_t remains 'char *', not 'void *’. Was there a special reason for that, or was that simply inertia from what it was in the V7 source? Paul From crossd at gmail.com Thu Nov 9 23:18:22 2017 From: crossd at gmail.com (Dan Cross) Date: Thu, 9 Nov 2017 08:18:22 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: <902164cd-9c7c-9ce9-d66c-d6321608f526@gmail.com> References: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> <54e07b8e-15ee-5786-bda0-533003aab69a@kilonet.net> <902164cd-9c7c-9ce9-d66c-d6321608f526@gmail.com> Message-ID: Head is easy to emulate: sed 10q On Nov 9, 2017 12:18 AM, "Will Senn" wrote: > On 11/8/17 5:21 PM, Dave Horsfall wrote: > >> On Wed, 8 Nov 2017, Arthur Krewat wrote: >> >> head -20 < filename >>> >> >> Or if you really want to confuse the newbies: >> >> < filename head -20 >> >> too bad head doesn't exist on v7. I did have to look up the incantation > in Intro to the Shell by Bourne, that's fascinating stuff and it still > works on my mac - nuts! > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From doug at cs.dartmouth.edu Thu Nov 9 23:33:57 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Thu, 09 Nov 2017 08:33:57 -0500 Subject: [TUHS] pre-more pager? Message-ID: <201711091333.vA9DXvUc031611@coolidge.cs.Dartmouth.EDU> >> head -20 < filename > > too bad head doesn't exist on v7. sed -20q: same effect, same amount of typing. From will.senn at gmail.com Fri Nov 10 00:29:24 2017 From: will.senn at gmail.com (Will Senn) Date: Thu, 9 Nov 2017 08:29:24 -0600 Subject: [TUHS] pre-more pager? In-Reply-To: References: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> <54e07b8e-15ee-5786-bda0-533003aab69a@kilonet.net> <902164cd-9c7c-9ce9-d66c-d6321608f526@gmail.com> Message-ID: It's amazing how often I think - I need to spend more time on sed. I am also just now beginning to understand that it's a stream ed-itor and therefore intimately related to ed, which isn't a half editor. Will On 11/9/17 7:18 AM, Dan Cross wrote: > Head is easy to emulate: sed 10q > > On Nov 9, 2017 12:18 AM, "Will Senn" > wrote: > > On 11/8/17 5:21 PM, Dave Horsfall wrote: > > On Wed, 8 Nov 2017, Arthur Krewat wrote: > > head -20 < filename > > > Or if you really want to confuse the newbies: > >     < filename head -20 > > too bad head doesn't exist on v7. I did have to look up the > incantation in Intro to the Shell by Bourne, that's fascinating > stuff and it still works on my mac - nuts! > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462  7D45 3EAA 5B6D A982 BAAF > -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Fri Nov 10 00:34:41 2017 From: will.senn at gmail.com (Will Senn) Date: Thu, 9 Nov 2017 08:34:41 -0600 Subject: [TUHS] redirection wildness in v7 Message-ID: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> Why does the first of these incantations not present text, but the second does (word is a file)? Neither errors out. $ References: <7wpo8rud7y.fsf@junk.nocrew.org> Message-ID: <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> The theory was that fixed size FORTH blocks with 64 (or 40) columns forced you to factor your code into aesthetically pleasing little functions, but that was bullshit. Forth code needs stack comments on every line to be readable, and 40 columns makes that damn hard to do. (Here’s some dense under-commented RPN 6502 and Forth code I wrote for my 40-column Apple ][ Forth — this does RAM card bank switching and copying for saving and restoring lines of text for the SUPDUP line saving protocol %TDSAV %TDRES commands.) HEX CREATE SETUP-LINE ASSEMBLER BOT LDA, N STA, BOT 1+ LDA, N 1+ STA, BOT 2+ LDY, SCR-LBASES ,Y LDA, N 2+ STA, SCR-HBASES ,Y LDA, N 3 + STA, SCR-WIDTH 1- # LDY, RTS, CREATE RAMOFF ASSEMBLER 0C0D2 LDA, CLI, POPTWO JMP, CODE LINE! ( LINE ADDR --- ) SETUP-LINE JSR, BEGIN, N 2+ )Y LDA, N )Y STA, DEY, 0< UNTIL, RAMOFF JMP, C; CODE LINE@ ( LINE ADDR --- ) SETUP-LINE JSR, BEGIN, N )Y LDA, N 2+ )Y STA, DEY, 0< UNTIL, RAMOFF JMP, C; http://www.donhopkins.com/home/archive/forth/supdup.f Check out Toffoli and Margolus’s eccentric right-justified indentation style! (This is a cellular automata rule definition for their CAM6 hardware.) http://www.donhopkins.com/home/code/tomt-cam-forth-scr.txt http://www.donhopkins.com/home/code/tomt-users-forth-scr.txt ( GASHV: horizontal/vertical gas with collisions) 24 LOAD ( rotate right/left depending on time phase; do collisions) : RULE0 KC0 IF C0 ELSE T0 0= IF Y0 ELSE X0 THEN THEN ; ( echo) -Don > On 9 Nov 2017, at 08:24, Lars Brinkhoff wrote: > > ron minnich wrote: >> So, 80 column folks > > And then there's old-school Forth style, where lines are limited to 64 > characters. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralph at inputplus.co.uk Fri Nov 10 01:04:56 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Thu, 09 Nov 2017 15:04:56 +0000 Subject: [TUHS] redirection wildness in v7 In-Reply-To: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> References: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> Message-ID: <20171109150456.7D0B1203B0@orac.inputplus.co.uk> Hi Will, > Why does the first of these incantations not present text, but the > second does (word is a file)? Neither errors out. > > $ $ > From: Steve Simon > At the risk of stirring up another hornets nest... I usually try not to join in to non-history threads (this list has too much random flamage on current topics, IMNSHO), but I'll make an exception here... > this means my code is usually fairly narrow. I have what I think are somewhat unusual thoughts on nesting depth, etc, which are: keep the code structure as simple as possible. That means no complex nested if/then/else structures, etc (more below). I'd been moving in this direction for a while, but something that happened a long time ago at MIT crystalized this for me: a younger colleague brought me a routine that had a complex nested if/etc structure in it, which had a bug; I don't recall if he just wanted advice, or what, but I recall I fixed his problem by..... throwing away half his code. (Literally.) That really emphasized to me the downside of complexity like that; it makes it harder to understand, harder to debug, and harder for someone else (or you yourself, once you've been away from it for a while) to modify it. I've been getting more formal about that ever since. So, how did I throw away half his code? I have a number of techniques. I try not to use 'else' unless it's the very best way to do something. So instead of: if (some-conditional) { ; } else { ; } (iterated, recursively) do: if (some-conditional) { ; xxx; } ; where xxx is a 'return', or a 'break', or a 'continue'. That way, you can empty your brain once you hit that, and start with a clean slate. This is also an example of another thing I do, which is use lots of simple flow-control primitives; not go-tos (which I abhor), but loop exits, restarts, etc. Again, it just makes things simpler; once you hit it, you can throw away all that context/state in your mind. Keep the control flow structure as simple as possible. If your code is several levels of indent deep, you have much bigger problems than fitting it on the screen. I wrote up a complete programming style guide for people at Proteon working on the CGW, which codified a lot of this; if there's interest, I'll see if I can find a copy (I know I have a hardcopy _somewhere_). Noel From chet.ramey at case.edu Fri Nov 10 01:30:24 2017 From: chet.ramey at case.edu (Chet Ramey) Date: Thu, 9 Nov 2017 10:30:24 -0500 Subject: [TUHS] redirection wildness in v7 In-Reply-To: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> References: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> Message-ID: On 11/9/17 9:34 AM, Will Senn wrote: > Why does the first of these incantations not present text, but the second > does (word is a file)? Neither errors out. > > $ $ References: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> Message-ID: On Thu, Nov 9, 2017 at 9:34 AM, Will Senn wrote: > Why does the first of these incantations not present text, but the second > does (word is a file)? Neither errors out. When dealing with obscure pipeline surprises, I find it best to try and reason through what's happening, step-by-step. > $ $ > I'd been moving in this direction for a while Now that I think about it, I may have subconciously absorbed this from Ken's and Dennis' code in the V6 kernel. Go take a look at it: more than one level of indent is quite rare in anything there (including tty.c, which has some pretty complex stuff in it). I don't know if this was subconcious but deliberate, or concious, or just something they did for other reasons (e.g. typing long lines took too long on their TTY's :-), but it's very noticeable, and consistent. It interesting that both seem to have had the same style; tty.c is in dmr/, so presumably Dennis', but the stuff in ken/ is the same way. Oh, one other trick for simplifying code structure (which I noticed looking through the V6 code a bit - this was something they _didn't_ do in one place, which I would have done): if you have if () { } } invert it: if () return; } That gets that whole complex piece of code down one level of nesting. Noel From will.senn at gmail.com Fri Nov 10 01:38:03 2017 From: will.senn at gmail.com (Will Senn) Date: Thu, 9 Nov 2017 09:38:03 -0600 Subject: [TUHS] redirection wildness in v7 In-Reply-To: <20171109150456.7D0B1203B0@orac.inputplus.co.uk> References: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> <20171109150456.7D0B1203B0@orac.inputplus.co.uk> Message-ID: Hi Ralph, This is a good answer. I thought it was great until I saw Dan's :). I didn't realize that the open group standard was online and accessible. Thanks for the link. Will On 11/09/2017 09:04 AM, Ralph Corderoy wrote: > Hi Will, > >> Why does the first of these incantations not present text, but the >> second does (word is a file)? Neither errors out. >> >> $ > $ That's still the case with modern-day sh(1). > > http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_01 > explains that a simple command doesn't need to result in a command name > to execute. In your first pipeline, there's nothing to copy the data > from the first subshell's stdin redirected from ./word to the subshell's > stdout that's pipes into sed's stdin. Adding a command to do the copy > works. > > From don at DonHopkins.com Fri Nov 10 01:41:30 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 9 Nov 2017 16:41:30 +0100 Subject: [TUHS] margins and indenting, and arbitrary c rules In-Reply-To: <20171109150936.F3A1718C0BC@mercury.lcs.mit.edu> References: <20171109150936.F3A1718C0BC@mercury.lcs.mit.edu> Message-ID: <7509A5DE-DD9F-4F70-A957-3272DAC0D71B@gmail.com> > On 9 Nov 2017, at 16:09, Noel Chiappa wrote: > > where xxx is a 'return', or a 'break', or a 'continue'. That way, you can > empty your brain once you hit that, and start with a clean slate. Absolutely — you nailed it! Not only do guard clauses reduce indentation, but they also let you clear your mind and forget about as much as possible before running into the complex stuff you will need all of your short term memory to understand, and which is then more likely to fit on the screen. https://stackoverflow.com/questions/268132/invert-if-statement-to-reduce-nesting/8493256#8493256 Nested if statements have more “join” points where control flow merges back together at the end instead of bailing out early, and the deeper and deeper nesting breaks up visual patterns that would otherwise be apparent and wastes lots of space (on the page and in your head). “Guard clauses” with multiple returns can also make it easier to visually emphasize the symmetries and patterns in the code. I try to take every opportunity to break my code and expressions up across multiple lines to emphasize repetition, patterns and variations, and I always use parens to explicitly state which groupings I mean instead of depending on the reader to be a good enough programmer who has memorized all the precedence rules to infer what I mean and hope I didn’t slip up and make a mistake — I’m looking at YOU && and || !!!. (I’d fire any programmer who mixed && and || without parens just to show off what a hot-shot they were for remembering they have different precedence and trying to save a few bytes of disk space at the expense of readability.) For example, instead of: float length = sqrt(x * x + y * y + z * z); I go: float length = sqrt( (x * x) + (y * y) + (z * z)); To me, that’s like getting a “triple word score” and a “double word score" in scrabble, when I can arrange the code into pleasing patterns that explicitly shows the repetition and progression of two factors by three dimensions, and arranges the x's, y's and z's and *’s and +’s into three nice neat rows and columns reflecting the structure of the expression. The easier it is for your eyes to scan up and down the code to verify it’s right and detect errors, the better, and the following example shows how guard clauses can do that: See how much easier it is to spot the bug: float length = sqrt(x * x + x * y + z * z); float length = sqrt( (x * x) + (x * y) + (z * z)); http://wiki.c2.com/?GuardClause Here is a sample of code using guard clauses ... public Foo merge (Foo a, Foo b) { if (a == null) return b; if (b == null) return a; // complicated merge code goes here. } Some style guides would have us write this with a single return as follows ... public Foo merge (Foo a, Foo b) { Foo result; if (a != null) { if (b != null) { // complicated merge code goes here. } else { result = a; } } else { result = b; } return result; } This second form has the advantage that the usual case, the merge, is dealt with first. It also has a single exit as the last line of the routine which can be handy with some refactorings. It has the disadvantage of separating the exceptional conditions from their corresponding results which, in this case, makes it harder to see the symmetry of the conditions. It also buries the usual, and complicated, case inside a couple of layers of braces, which may make it harder to read. The guards are similar to assertions in that both protect the subsequent code from special cases. Guards differ from assertions in that they make a tangible contribution to the logic of the method and thus cannot be safely omitted as part of an optimization. I borrowed the term guard from EwDijkstra when naming this pattern. The first form above hints at the elegance of his guarded commands though Dijkstra manages to save the single exit property in his code as well. -- WardCunningham -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Fri Nov 10 01:42:25 2017 From: will.senn at gmail.com (Will Senn) Date: Thu, 9 Nov 2017 09:42:25 -0600 Subject: [TUHS] redirection wildness in v7 In-Reply-To: References: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> Message-ID: <33834664-7f94-db6d-b012-30c355167a5f@gmail.com> On 11/09/2017 09:30 AM, Dan Cross wrote: > So...what's that unnamed process? To figure out what's going on, we'll > have to look at the source for the shell itself. In this case, the > answer to the mystery lies in /usr/src/cmd/sh/xec.c, in the (extremely > long) function `execute`. This is the heart of the shell's > interpreter. Basically, the string entered by the user has been parsed > into an in-memory data structure (essentially an abstract syntax > tree), and this function is responsible for interpreting that data > structure and invoking the entered commands. It is called recursively; > you'll note that the bulk of it is a switch statement on the token > type for the current node in the syntax tree. > > The magic here is in the case for TFIL, which sets up a pipe between > the left-hand side of tree and the right-hand side. > > In this case, the left-hand-side is an empty command; basically, > equivalent to typing return at the shell prompt. Note that that just > happens to be perfectly syntactically valid, so the parser doesn't > generate an error. We may reasonably assume that this results in a > left-hand child of the pipe node in the AST that is set with TFORK and > an empty command vector: indeed, we see this in the `term` function in > cmd.c. > > In the context of a pipeline, a new copy of the shell *is* forked for > this, and if we follow the TFORK logic, we can see that, in the > handling of the child, we do things like setting up pipes and I/O > redirection and then either execute a builtin command, or *if the > command is not empty* we execute the command via `execa`. This is not > a builtin command, but since this command is empty, we don't do > anything in the child other than exit. > > Thus, the empty command produces no output, despite having its input > redirected from a file and therefore nothing is put into the write-end > of the pipe and sed sees nothing on the read-end (other than EOF). > Dan, This is a great answer. I appreciate the detail and the source pointers (although that code is pretty complicated). My mental model is significantly enhanced, if not totally accurate, by your description. I've seen some other constructs along these same lines and they make more sense now - such as: > myfile to create a file. From jnc at mercury.lcs.mit.edu Fri Nov 10 02:03:19 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Thu, 9 Nov 2017 11:03:19 -0500 (EST) Subject: [TUHS] margins and indenting, and arbitrary c rules Message-ID: <20171109160319.A8A2B18C09E@mercury.lcs.mit.edu> > From: Don Hopkins > https://stackoverflow.com/questions/268132/invert-if-statement-to-reduce-nesting/8493256 Thanks for that - interesting read. (Among other things, it explains where the 'only have one return, at the end' comes from - which I never could understand.) > Nested if statements have more 'join' points where control flow merges > back together at the end instead of bailing out early Exactly. In high-level terms, it's much like having a ton of goto's. Yes, the _syntax_ is different, but the semantics - and understanding how it works - is the same - i.e. hard. Noel From norman at oclsc.org Fri Nov 10 02:19:28 2017 From: norman at oclsc.org (Norman Wilson) Date: Thu, 09 Nov 2017 12:19:28 -0400 Subject: [TUHS] pre-more pager? Message-ID: <1510244372.15725.for-standards-violators@oclsc.org> Random832: ... and "p" (which is very minimalistic, despite using a few V8-specific library features, but V8 isn't in the web-accessible source archive) from Version 8 research unix. ==== p actually originated outside Bell Labs. I think it was written in the late 1970s at the University of Toronto. I first saw it at Caltech, on the UNIX systems in the High Energy Physics group that I ran for four years. The first few of those systems were set up by Rob Pike, who was at Caltech working on his masters degree (in astrophysics, I think); p was there because Rob brought it. For those who don't know it, p has quite an elegant design. Its default page size is 22 lines, which nicely fit the world of its time: allowed a couple of lines of context between pages on a 24-line CRT; evenly divided the 66-line pages (still!) output by nroff and pr. It uttered no prompt and required neither raw nor cbreak nor even no-echo mode: it printed the final line of each page sans newline; to continue, you typed return, which was echoed, completing that line before the next was printed. It buffered text internally to allow backing up a few pages, so it was possible to back up even when input didn't come from a file (something I'm not sure the more of the time could do). Internally the buffering was done with a standalone library that could have been used in other programs, though I don't know whether it ever was. p also led me to an enlightening programming story. One day I was looking over the code, trying to understand just how the buffering worked; part of it made no sense to me. To figure it out, I decided to write my own simple, straightforward version with the same interface; test and debug it carefully; then lay printouts of the two implementations side-by-side, and walk through some test cases. This revealed that the clever code I couldn't make out in the original was actually buggy: it scrambled data (I forget the details) when read returned less than a full buffer. p (my version) is one of the several programs I bring along to every new UNIX-derivative environment. I use it daily. I have also recently noticed a new bug: on OpenBSD, it sometimes scrambles the last few lines of a file. I have figured out that that has something to do with whether fclose (my version uses stdio) is called explicitly or by exit(3), but I don't know yet whether it's the library's fault or my own. Even the simplest programs have things to teach us. Norman Wilson Toronto ON From krewat at kilonet.net Fri Nov 10 02:48:09 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Thu, 9 Nov 2017 11:48:09 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: <1510244372.15725.for-standards-violators@oclsc.org> References: <1510244372.15725.for-standards-violators@oclsc.org> Message-ID: <0bb29030-cb59-dc42-5fce-7f5497eee1b6@kilonet.net> On 11/9/2017 11:19 AM, Norman Wilson wrote: > It buffered text internally to allow backing up a few > pages, so it was possible to back up even when input > didn't come from a file (something I'm not sure the > more of the time could do). > It would be nice if that was the case for more and stdin. more on Solaris 11.3 doesn't allow backup on stdin, nor on a recent version of Debian Linux I checked. I remember a while back that when man spawned more, it was stdin and you couldn't back up on that either. Very annoying. From usotsuki at buric.co Fri Nov 10 03:19:02 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Thu, 9 Nov 2017 12:19:02 -0500 (EST) Subject: [TUHS] pre-more pager? In-Reply-To: <0bb29030-cb59-dc42-5fce-7f5497eee1b6@kilonet.net> References: <1510244372.15725.for-standards-violators@oclsc.org> <0bb29030-cb59-dc42-5fce-7f5497eee1b6@kilonet.net> Message-ID: On Thu, 9 Nov 2017, Arthur Krewat wrote: > On 11/9/2017 11:19 AM, Norman Wilson wrote: >> It buffered text internally to allow backing up a few >> pages, so it was possible to back up even when input >> didn't come from a file (something I'm not sure the >> more of the time could do). >> > It would be nice if that was the case for more and stdin. > > more on Solaris 11.3 doesn't allow backup on stdin, nor on a recent version > of Debian Linux I checked. > > I remember a while back that when man spawned more, it was stdin and you > couldn't back up on that either. Very annoying. Isn't that the whole reason "less" exists? -uso. From don at DonHopkins.com Fri Nov 10 04:15:56 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 9 Nov 2017 19:15:56 +0100 Subject: [TUHS] pre-more pager? In-Reply-To: References: <1510244372.15725.for-standards-violators@oclsc.org> <0bb29030-cb59-dc42-5fce-7f5497eee1b6@kilonet.net> Message-ID: > On 9 Nov 2017, at 18:19, Steve Nickolas wrote: > > On Thu, 9 Nov 2017, Arthur Krewat wrote: > >> On 11/9/2017 11:19 AM, Norman Wilson wrote: >>> It buffered text internally to allow backing up a few >>> pages, so it was possible to back up even when input >>> didn't come from a file (something I'm not sure the >>> more of the time could do). >> It would be nice if that was the case for more and stdin. >> >> more on Solaris 11.3 doesn't allow backup on stdin, nor on a recent version of Debian Linux I checked. >> >> I remember a while back that when man spawned more, it was stdin and you couldn't back up on that either. Very annoying. > > Isn't that the whole reason "less" exists? > > -uso. Less is more because worse is better. -Don From krewat at kilonet.net Fri Nov 10 04:26:16 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Thu, 9 Nov 2017 13:26:16 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: References: <1510244372.15725.for-standards-violators@oclsc.org> <0bb29030-cb59-dc42-5fce-7f5497eee1b6@kilonet.net> Message-ID: <01d5cbf6-65a1-c460-8dfc-5d7cf2333735@kilonet.net> On 11/9/2017 12:19 PM, Steve Nickolas wrote: > On Thu, 9 Nov 2017, Arthur Krewat wrote: It would be nice if that was > the case for more and stdin. >> >> more on Solaris 11.3 doesn't allow backup on stdin, nor on a recent >> version of Debian Linux I checked. >> >> I remember a while back that when man spawned more, it was stdin and >> you couldn't back up on that either. Very annoying. > > Isn't that the whole reason "less" exists? # less less: not found # uname -a SunOS vmsol7 5.7 Generic_106542-42 i86pc i386 i86pc # find / -xdev -name less # It's not there in Solaris 7, and is there in Solaris 8. I wonder when less started shipping with other operating systems? From ron at ronnatalie.com Fri Nov 10 05:13:27 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Thu, 9 Nov 2017 14:13:27 -0500 Subject: [TUHS] margins and indenting, and arbitrary c rules In-Reply-To: <7509A5DE-DD9F-4F70-A957-3272DAC0D71B@gmail.com> References: <20171109150936.F3A1718C0BC@mercury.lcs.mit.edu> <7509A5DE-DD9F-4F70-A957-3272DAC0D71B@gmail.com> Message-ID: <024801d3598e$d32e2080$798a6180$@ronnatalie.com> The issue of structure is that return/break/continue can allow you to break the concept of structured code. Your case doesn’t, but let’s use this example: int foo() { if(this_condition) { if(that_condition) return 0; executable_code(); } else { more_executable_code(); } return 1; } As simple as this one is, you could rewrite it to be structured but things aren’t usually that easy. From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Don Hopkins Sent: Thursday, November 9, 2017 10:41 AM To: Noel Chiappa Cc: tuhs at minnie.tuhs.org Subject: Re: [TUHS] margins and indenting, and arbitrary c rules On 9 Nov 2017, at 16:09, Noel Chiappa wrote: where xxx is a 'return', or a 'break', or a 'continue'. That way, you can empty your brain once you hit that, and start with a clean slate. Absolutely — you nailed it! Not only do guard clauses reduce indentation, but they also let you clear your mind and forget about as much as possible before running into the complex stuff you will need all of your short term memory to understand, and which is then more likely to fit on the screen. https://stackoverflow.com/questions/268132/invert-if-statement-to-reduce-nesting/8493256#8493256 Nested if statements have more “join” points where control flow merges back together at the end instead of bailing out early, and the deeper and deeper nesting breaks up visual patterns that would otherwise be apparent and wastes lots of space (on the page and in your head). “Guard clauses” with multiple returns can also make it easier to visually emphasize the symmetries and patterns in the code. I try to take every opportunity to break my code and expressions up across multiple lines to emphasize repetition, patterns and variations, and I always use parens to explicitly state which groupings I mean instead of depending on the reader to be a good enough programmer who has memorized all the precedence rules to infer what I mean and hope I didn’t slip up and make a mistake — I’m looking at YOU && and || !!!. (I’d fire any programmer who mixed && and || without parens just to show off what a hot-shot they were for remembering they have different precedence and trying to save a few bytes of disk space at the expense of readability.) For example, instead of: float length = sqrt(x * x + y * y + z * z); I go: float length = sqrt( (x * x) + (y * y) + (z * z)); To me, that’s like getting a “triple word score” and a “double word score" in scrabble, when I can arrange the code into pleasing patterns that explicitly shows the repetition and progression of two factors by three dimensions, and arranges the x's, y's and z's and *’s and +’s into three nice neat rows and columns reflecting the structure of the expression. The easier it is for your eyes to scan up and down the code to verify it’s right and detect errors, the better, and the following example shows how guard clauses can do that: See how much easier it is to spot the bug: float length = sqrt(x * x + x * y + z * z); float length = sqrt( (x * x) + (x * y) + (z * z)); http://wiki.c2.com/?GuardClause Here is a sample of code using guard clauses ... public Foo merge (Foo a, Foo b) { if (a == null) return b; if (b == null) return a; // complicated merge code goes here. } Some style guides would have us write this with a single return as follows ... public Foo merge (Foo a, Foo b) { Foo result; if (a != null) { if (b != null) { // complicated merge code goes here. } else { result = a; } } else { result = b; } return result; } This second form has the advantage that the usual case, the merge, is dealt with first. It also has a single exit as the last line of the routine which can be handy with some refactorings. It has the disadvantage of separating the exceptional conditions from their corresponding results which, in this case, makes it harder to see the symmetry of the conditions. It also buries the usual, and complicated, case inside a couple of layers of braces, which may make it harder to read. The guards are similar to assertions in that both protect the subsequent code from special cases. Guards differ from assertions in that they make a tangible contribution to the logic of the method and thus cannot be safely omitted as part of an optimization. I borrowed the term guard from EwDijkstra when naming this pattern. The first form above hints at the elegance of his guarded commands though Dijkstra manages to save the single exit property in his code as well. -- WardCunningham -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at ronnatalie.com Fri Nov 10 05:14:44 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Thu, 9 Nov 2017 14:14:44 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> Message-ID: <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> At least it’s not python where the indenting makes a semantic difference. From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Don Hopkins Sent: Thursday, November 9, 2017 10:02 AM To: Lars Brinkhoff Cc: TUHS main list Subject: Re: [TUHS] 80 columns ... The theory was that fixed size FORTH blocks with 64 (or 40) columns forced you to factor your code into aesthetically pleasing little functions, but that was bullshit. Forth code needs stack comments on every line to be readable, and 40 columns makes that damn hard to do. (Here’s some dense under-commented RPN 6502 and Forth code I wrote for my 40-column Apple ][ Forth — this does RAM card bank switching and copying for saving and restoring lines of text for the SUPDUP line saving protocol %TDSAV %TDRES commands.) HEX CREATE SETUP-LINE ASSEMBLER BOT LDA, N STA, BOT 1+ LDA, N 1+ STA, BOT 2+ LDY, SCR-LBASES ,Y LDA, N 2+ STA, SCR-HBASES ,Y LDA, N 3 + STA, SCR-WIDTH 1- # LDY, RTS, CREATE RAMOFF ASSEMBLER 0C0D2 LDA, CLI, POPTWO JMP, CODE LINE! ( LINE ADDR --- ) SETUP-LINE JSR, BEGIN, N 2+ )Y LDA, N )Y STA, DEY, 0< UNTIL, RAMOFF JMP, C; CODE LINE@ ( LINE ADDR --- ) SETUP-LINE JSR, BEGIN, N )Y LDA, N 2+ )Y STA, DEY, 0< UNTIL, RAMOFF JMP, C; http://www.donhopkins.com/home/archive/forth/supdup.f Check out Toffoli and Margolus’s eccentric right-justified indentation style! (This is a cellular automata rule definition for their CAM6 hardware.) http://www.donhopkins.com/home/code/tomt-cam-forth-scr.txt http://www.donhopkins.com/home/code/tomt-users-forth-scr.txt ( GASHV: horizontal/vertical gas with collisions) 24 LOAD ( rotate right/left depending on time phase; do collisions) : RULE0 KC0 IF C0 ELSE T0 0= IF Y0 ELSE X0 THEN THEN ; ( echo) -Don On 9 Nov 2017, at 08:24, Lars Brinkhoff wrote: ron minnich wrote: So, 80 column folks And then there's old-school Forth style, where lines are limited to 64 characters. -------------- next part -------------- An HTML attachment was scrubbed... URL: From lars at nocrew.org Fri Nov 10 06:46:32 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Thu, 09 Nov 2017 20:46:32 +0000 Subject: [TUHS] 80 columns ... In-Reply-To: <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> (Don Hopkins's message of "Thu, 9 Nov 2017 16:02:04 +0100") References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> Message-ID: <7wr2t7rxhz.fsf@junk.nocrew.org> Don Hopkins wrote: > Forth code needs stack comments on every line to be readable, and 40 > columns makes that damn hard to do. I have never used shadow screens, but it sounds like they would help with this. > http://www.donhopkins.com/home/archive/forth/supdup.f I'm dazed, this packs so much obsolete technology it's totally awesome! From dave at horsfall.org Fri Nov 10 06:53:02 2017 From: dave at horsfall.org (Dave Horsfall) Date: Fri, 10 Nov 2017 07:53:02 +1100 (EST) Subject: [TUHS] pre-more pager? In-Reply-To: <902164cd-9c7c-9ce9-d66c-d6321608f526@gmail.com> References: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> <54e07b8e-15ee-5786-bda0-533003aab69a@kilonet.net> <902164cd-9c7c-9ce9-d66c-d6321608f526@gmail.com> Message-ID: On Wed, 8 Nov 2017, Will Senn wrote: >>     < filename head -20 >> > too bad head doesn't exist on v7. I did have to look up the incantation > in Intro to the Shell by Bourne, that's fascinating stuff and it still > works on my mac - nuts! If you're interviewing a new hire, see how long it takes 'em to work out what this does: :; /dev/tty sed 1q ;: echo "Hello, world" Tested on all shells at my disposal; might even work on V7. Did I mention that I use Perl, and used to use APL\360? The only reason I don't write obfuscated code is that I might be the one who has to maintain it later... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From dave at horsfall.org Fri Nov 10 07:36:59 2017 From: dave at horsfall.org (Dave Horsfall) Date: Fri, 10 Nov 2017 08:36:59 +1100 (EST) Subject: [TUHS] redirection wildness in v7 In-Reply-To: References: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> Message-ID: On Thu, 9 Nov 2017, Chet Ramey wrote: >> $ > A null command consisting of only a redirection (effectively a no-op). With the side-effect of opening "word" (which could be a device). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From chet.ramey at case.edu Fri Nov 10 07:39:25 2017 From: chet.ramey at case.edu (Chet Ramey) Date: Thu, 9 Nov 2017 16:39:25 -0500 Subject: [TUHS] redirection wildness in v7 In-Reply-To: References: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> Message-ID: On 11/9/17 4:36 PM, Dave Horsfall wrote: > On Thu, 9 Nov 2017, Chet Ramey wrote: > >>> $ > >> A null command consisting of only a redirection (effectively a no-op). > > With the side-effect of opening "word" (which could be a device). Quite true. The redirection is the only thing that happens. -- ``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://cnswww.cns.cwru.edu/~chet/ From krewat at kilonet.net Fri Nov 10 10:15:12 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Thu, 9 Nov 2017 19:15:12 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: References: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> <54e07b8e-15ee-5786-bda0-533003aab69a@kilonet.net> <902164cd-9c7c-9ce9-d66c-d6321608f526@gmail.com> Message-ID: On 11/9/2017 3:53 PM, Dave Horsfall wrote: > If you're interviewing a new hire, see how long it takes 'em to work > out what this does: > >     :; /dev/tty sed 1q ;: echo "Hello, world" > For me, there are other criteria for hiring than telling me what some obscure string of stuff will do. It's more important that they can take the above or something similar and shorten/simplify it to: head -1 /etc/motd or sed 1q < /etc/motd Because I just ran the above on a few different platforms, and they all just give the first line of /etc/motd, which I expected. I might be missing something :P - but having them solve a problem the shortest way possible is more in my interests. art k. PS: I've been in interviews where I was given something like that. A notable one was NYNEX Science and Technology. One of the sysadmins interviewing me asked about some obscure command or maybe an option, in SunOS. My answer was "well, I don't remember that, having already worked with SunOS for a few years, but see that row of manuals behind you? I bet I can find it in there quick enough". I did, within a minute or two. I got the consulting gig. -- Again, no disrespect intended. From ralph at inputplus.co.uk Fri Nov 10 12:04:37 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Fri, 10 Nov 2017 02:04:37 +0000 Subject: [TUHS] 80 columns In-Reply-To: <201711082329.vA8NTcNP026158@coolidge.cs.Dartmouth.EDU> References: <201711082329.vA8NTcNP026158@coolidge.cs.Dartmouth.EDU> Message-ID: <20171110020437.B448A1F935@orac.inputplus.co.uk> Doug wrote: > > Interesting. I wonder if that's where the 132 column (alternative) > > standard came from. > > No. IBM's printers were 132 columns even before stored-program > computers. Standard "green bar" page sizes included portrait-format pages of 8½ × 11 inches, usually printed at 80 columns by 66 lines (at 6 lines per inch) or 88 lines (at 8 LPI), and landscape-format pages of 14 × 11 inches, usually printed at 132 columns by 66 or 88 lines. Also common were landscape-format pages of 14 × 8½ inches, allowing for 132 columns by 66 lines (at 8 LPI) on a more compact page. — https://en.wikipedia.org/wiki/Line_printer#Paper_.28forms.29_handling -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From ralph at inputplus.co.uk Fri Nov 10 12:14:11 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Fri, 10 Nov 2017 02:14:11 +0000 Subject: [TUHS] pre-more pager? In-Reply-To: References: <9dc0fdd2-d4d4-8375-2117-a744e1b8f88a@kilonet.net> <54e07b8e-15ee-5786-bda0-533003aab69a@kilonet.net> <902164cd-9c7c-9ce9-d66c-d6321608f526@gmail.com> Message-ID: <20171110021411.33D8F1F935@orac.inputplus.co.uk> Arthur wrote: > head -1 /etc/motd > or > sed 1q < /etc/motd It's good conversation has moved onto sed given head was presumably created by someone that saw tail existed and didn't know their sed well enough, but the `1q' that keeps appearing can be just `q'. :-) IIRC Brian Cantrell complains in a video interview that head didn't exist, even though tail did, and it took "them" to create it, presumably the BSD or Sun lot? (He's also one of the few interviewees that talk fast enough for a video to be bearable compared to reading at one's own pace.) I use `sed 3q', etc., so often that I've ~/bin/3q for various sizes just to save that typo of seq for sed; handy for checking the output of a pipeline so far when a screenful would push off useful history. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From random832 at fastmail.com Fri Nov 10 15:26:30 2017 From: random832 at fastmail.com (Random832) Date: Fri, 10 Nov 2017 00:26:30 -0500 Subject: [TUHS] pre-more pager? In-Reply-To: <0df737f5-f356-7252-2404-1acc43e52adb@gmail.com> References: <20171108200222.B6A6F18C0B9@mercury.lcs.mit.edu> <0df737f5-f356-7252-2404-1acc43e52adb@gmail.com> Message-ID: <1510291590.2892072.1167822088.7FEE6D8C@webmail.messagingengine.com> On Wed, Nov 8, 2017, at 15:11, Forrest, Jon wrote: > I remember ~40 students at UCSB trying to run 'vi' on a Vax 780 with > 4MB of RAM. Between the lack of memory and the overhead of raw mode, > it wasn't a pretty sight. There's also likely a difference between typing large amounts of text in raw mode (as vi entails, especially in insert mode) vs issuing single- character commands. From otto at drijf.net Fri Nov 10 17:31:02 2017 From: otto at drijf.net (Otto Moerbeek) Date: Fri, 10 Nov 2017 08:31:02 +0100 Subject: [TUHS] pre-more pager? In-Reply-To: <1510291590.2892072.1167822088.7FEE6D8C@webmail.messagingengine.com> References: <20171108200222.B6A6F18C0B9@mercury.lcs.mit.edu> <0df737f5-f356-7252-2404-1acc43e52adb@gmail.com> <1510291590.2892072.1167822088.7FEE6D8C@webmail.messagingengine.com> Message-ID: <20171110073102.GK11221@colo.drijf.net> On Fri, Nov 10, 2017 at 12:26:30AM -0500, Random832 wrote: > On Wed, Nov 8, 2017, at 15:11, Forrest, Jon wrote: > > I remember ~40 students at UCSB trying to run 'vi' on a Vax 780 with > > 4MB of RAM. Between the lack of memory and the overhead of raw mode, > > it wasn't a pretty sight. > > There's also likely a difference between typing large amounts of text in > raw mode (as vi entails, especially in insert mode) vs issuing single- > character commands. I also had to do programming assugnment on an overloaded VAX. Luckily you can switch to ex mode in vi. ex is much easier on the macine since it doesn't work in raw mode. -Otto From steve at quintile.net Fri Nov 10 19:55:19 2017 From: steve at quintile.net (Steve Simon) Date: Fri, 10 Nov 2017 09:55:19 +0000 Subject: [TUHS] "hacker caught" paper Message-ID: I am trying to find a paper. It was written at Bell Labs, I thought by Bill Cheswick (though I cannot find it in his name), entitled something like: "A hacker caught, and examined" A description of how a hacker got into Bell labs, and was quarintined on a single workstation whilst the staff watched what they did. Does this ring any bells? Anyone have a link? I know about the Cuckoo's egg, but this was a paper, in troff and -ms macros as I remember, not a book. Thanks, -Steve From alec.muffett at gmail.com Fri Nov 10 19:56:54 2017 From: alec.muffett at gmail.com (Alec Muffett) Date: Fri, 10 Nov 2017 09:56:54 +0000 Subject: [TUHS] "hacker caught" paper In-Reply-To: References: Message-ID: http://www.cheswick.com/ches/papers/berferd.pdf ? -a On 10 November 2017 at 09:55, Steve Simon wrote: > I am trying to find a paper. It was written at Bell Labs, > I thought by Bill Cheswick (though I cannot find it in his name), > entitled something like: > > "A hacker caught, and examined" > > A description of how a hacker got into Bell labs, and was quarintined on > a single workstation whilst the staff watched what they did. > > Does this ring any bells? Anyone have a link? > > I know about the Cuckoo's egg, but this was a paper, in troff and -ms > macros > as I remember, not a book. > > Thanks, > > -Steve > -- http://dropsafe.crypticide.com/aboutalecm -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnold at skeeve.com Fri Nov 10 20:04:12 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Fri, 10 Nov 2017 03:04:12 -0700 Subject: [TUHS] "hacker caught" paper In-Reply-To: References: Message-ID: <201711101004.vAAA4CQC025565@freefriends.org> "Steve Simon" wrote: > I am trying to find a paper. It was written at Bell Labs, > I thought by Bill Cheswick (though I cannot find it in his name), > entitled something like: > > "A hacker caught, and examined" > > A description of how a hacker got into Bell labs, and was quarintined on > a single workstation whilst the staff watched what they did. > > Does this ring any bells? Anyone have a link? > > I know about the Cuckoo's egg, but this was a paper, in troff and -ms macros > as I remember, not a book. > > Thanks, > > -Steve I remember the story and reading about it; maybe it was even one of the CSTRs. So you're not imagining things. Ches? Arnold From pnr at planet.nl Fri Nov 10 21:11:03 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Fri, 10 Nov 2017 12:11:03 +0100 Subject: [TUHS] Sandy Fraser on Spider and Unix, 1975 Message-ID: <9D8FBB27-47E6-4B0D-A2D2-02BF5F63297B@planet.nl> I happened to come across a 1975 report from the University of Warwick which includes a section on the state of computer networking. (https://stacks.stanford.edu/file/druid:rq704hx4375/rq704hx4375.pdf) It contains a section that appears to be a summary of a chat with Sandy Fraser about Spider (pp. 66-69). It has some information on Spider network software and Unix that is new to me, and I find amazing. I had not expected some of this stuff to exist in 1975. Below some of the noteworthy paragraphs: [quote] Spider is an experimental packet switched data communications system that provides 64 full-duplex asynchronous channels to each connected terminal (= host computer). The maximum data-rate per channel is 500K bits/sec. Error control by packet retransmission is automatic and transparent to users. Terminals are connected to a central switching computer by carrier transmission loops operating at 1.544 Mb/s, each of which serves several terminals. The interface between the transmission loop and a terminal contains a stored program microcomputer. Cooperation between microcomputers and the central switching computer effects traffic control, error control, and various other functions related to network operation and maintenance. The current system contains just one loop with the switching computer (TEMPO I), four PDP-11/45 computers, two Honeywell 516 computers, two DDP 224 computers, and one each of Honeywell 6070, PDP-8 and PDP-11/20. In fact many of these are connected in turn to other items of digital equipment. Spider has been running since 1972 and recent work has shifted away from the design and construction of the network itself to developing user services to support other research activities at Bell Labs. A major example of this has been to construct a free-standing file store (extracted in fact from UNIX [88]) and connect it to the network. This is available as a service to any user of the network. [...] The ring is used in different ways by the various computers connected to it. The filestore has already been mentioned. Two computers use this for conventional back-up, and access it on a file-by-file basis. Two other machines - dedicated to laboratory experiments - access it on a block-within-file basis. To help with program development for these dedicated machines, the UNIX system (available on yet more computers) is used during "unavailable" periods for editing and program preparation. The user then leaves his programs in the filestore ready to load when he next gains access to the dedicated machine. Two other "dedicated" machines provide the user interface of UNIX, but lack peripherals and a UNIX kernel! In place of both is a small amount of software that transmits all calls on the UNIX system to a full UNIX system elsewhere! The ring system with its filestore also provides a convenient buffering service. Finally Fraser tells of the time where one of the PDP-11 machines was delivered sans discs. A small alteration to a UNIX system diverted all disc transfer requests to the filestore, where a suitable amount of disc was made available. The system ran a full swapping version of UNIX at about a quarter of the normal speed. [/quote] From cym224 at gmail.com Sat Nov 11 01:58:16 2017 From: cym224 at gmail.com (Nemo) Date: Fri, 10 Nov 2017 10:58:16 -0500 Subject: [TUHS] "hacker caught" paper In-Reply-To: References: Message-ID: On 10 November 2017 at 10:50, Nemo wrote: > On 10 November 2017 at 04:56, Alec Muffett wrote: >> http://www.cheswick.com/ches/papers/berferd.pdf ? > > Wonderful! I first read this as an appendix in his book and now I > know a second edition of the book is out. > > N. Egg on my face (and keyboard): (1) I failed to send this to the list; and (2) I already have both editions. Apologies, all, especially to Alec. N. From cym224 at gmail.com Sat Nov 11 02:18:28 2017 From: cym224 at gmail.com (Nemo) Date: Fri, 10 Nov 2017 11:18:28 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> Message-ID: On 9 November 2017 at 14:14, Ron Natalie wrote: > At least it’s not python where the indenting makes a semantic difference. And for that reason, I have never used Python. (I have a mental block about that.) As an 80-column aside, my alma mater allowed free runs in PL/C (remember that?) on card decks. I always numbered my cards in columns 73+ (and that save me from my clumsiness more than once). One day, they decided to read in all 80 columns. Easily fixed by programming a card-punch to add /* and */ but highly annoying. But using cards probably baked 80 columns into my head. N. From krewat at kilonet.net Sat Nov 11 02:18:57 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Fri, 10 Nov 2017 11:18:57 -0500 Subject: [TUHS] "hacker caught" paper In-Reply-To: <201711101004.vAAA4CQC025565@freefriends.org> References: <201711101004.vAAA4CQC025565@freefriends.org> Message-ID: I got a chill up my spine as I hit the section where it mentioned the username "adrian". Then I realized that the timeframe was off. I was out of the hacker business a few years before that. But the name "adrian" reminds me of something I can't put my finger on. Oh well. art k. From norman at oclsc.org Sat Nov 11 03:21:09 2017 From: norman at oclsc.org (Norman Wilson) Date: Fri, 10 Nov 2017 13:21:09 -0400 Subject: [TUHS] 80 columns ... Message-ID: <1510334474.27585.for-standards-violators@oclsc.org> Nemo: And for that reason, I have never used Python. (I have a mental block about that.) ==== I used to feel the same way. A few years ago I held my nose and jumped in. I'm glad I did; Python is a nifty little language that, now I know it, hits a sweet spot twixt low-level C and high-level shell and awk scripts. Denoting blocks solely by indentation isn't at all bad once you do it; no worse than adapting from do ... end to C's {}. What still bugs me about Python: -- It is unreasonably messy to give someone else a copy of a program composed of many internal modules. Apparently you are expected to give her a handful of files, to be installed in some directory whose name must be added to the search path in every Python source file that imports them. I have come up with my own hacky workaround but it would be nice if the language provided a graceful way to, e.g., catenate multiple modules into a single source file for distribution. -- I miss C's style of for loop, though not often. (Not quite everything can be turned into a list or an iterator.) -- I miss one particular case of assigment having a value: that of while ((val = function()) != STOP) do something with val Again, there are clunky ways to work around this. As for 80 columns, I'm firmly in the camp that says that if you need a lot of indentation you're doing it wrong. Usually it means you should be pulling the details out into separate functions. Functions that run on for many, many lines (once upon a time it was meaningful to say for many pages, but no longer) are just as bad, for the same reason: it's hard to read and understand the code, because you have to keep so many details in your head at once. Likewise for excessive use of global variables, for that matter, a flaw that is still quite common in C code. Having to break an expression or a function call over multiple lines is more problematic. It's clearer not to have to do that. It helps not to make function or variable names longer than necessary, but one can carry that too far too. Style and clarity are hard, but they are what distinguishes a crap hack programmer from a good one. Norman Wilson Toronto ON (Sitting on the lower level of a train in Texas, not on a pedestal) From david at kdbarto.org Sat Nov 11 03:34:35 2017 From: david at kdbarto.org (David) Date: Fri, 10 Nov 2017 09:34:35 -0800 Subject: [TUHS] TUHS Digest, Vol 24, Issue 43 In-Reply-To: References: Message-ID: <3F559C5F-9C20-4041-B337-A3FDE4482007@kdbarto.org> I sometimes put the following in shell scripts at the beginning > /tmp/foo 2>/tmp/foo_err Drives some folks up the wall because they don’t get it. David > On Nov 8, 2017, at 3:21 PM, tuhs-request at minnie.tuhs.org wrote: > > From: Dave Horsfall > To: The Eunuchs Hysterical Society > Subject: Re: [TUHS] pre-more pager? > Message-ID: > Content-Type: text/plain; charset=US-ASCII; format=flowed > > On Wed, 8 Nov 2017, Arthur Krewat wrote: > >> head -20 < filename > > Or if you really want to confuse the newbies: > > < filename head -20 From lm at mcvoy.com Sat Nov 11 03:56:23 2017 From: lm at mcvoy.com (Larry McVoy) Date: Fri, 10 Nov 2017 09:56:23 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <1510334474.27585.for-standards-violators@oclsc.org> References: <1510334474.27585.for-standards-violators@oclsc.org> Message-ID: <20171110175623.GA25370@mcvoy.com> On Fri, Nov 10, 2017 at 01:21:09PM -0400, Norman Wilson wrote: > Style and clarity are hard, but they are what distinguishes > a crap hack programmer from a good one. Yep. My version of this is "optimize for the readers, there are many of them and one of you". From will.senn at gmail.com Sat Nov 11 04:00:15 2017 From: will.senn at gmail.com (Will Senn) Date: Fri, 10 Nov 2017 12:00:15 -0600 Subject: [TUHS] finding help in v7 in 1980 Message-ID: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> Hi, Everyone on the list is well aware that running V7 in a modern simulator like SIMH is not a period realistic environment and some of the "problems" facing the novice enthusiast are considerably different from those of the era (my terminal is orders of magnitude faster and my "tape" is a file on a disk). However, many of the challenges facing someone in 1980, remain for the enthusiast, such as how to run various commands successfully and how devices interoperate with unix. Of course, we have do resources and some overlapping experience to draw on - duckduckgo (googleish), tuhs member experience, and exposure to modern derivatives like linux, macos, bsd, etc. We also have documentation of the system in the form of the Programmer's Guide - as pdfs and to some degree as man pages on the system (haven't found volume 2 documentation on the instance). My question for you citizens of that long-ago era :), is this - what was it like to sit down and learn unix V7 on a PDP? Not from a hardware or ergonomics perspective, but from a human information processing perspective. What resources did you consult in your early days and what did the workflow look like in practical terms. As an example - today, when I want to know how to accomplish a task in modern unix, I: 1. Search my own experience and knowledge. If I know the answer, duh, I know it. 2. Decide if I have enough information about the task to guess at the requisite commands. If I do, then man command is my friend. If not, I try man -k task or apropos task where task is a one word summary of what I'm trying to accomplish. 3. If that fails, then I search for the task online and try what other folks have done in similar circumstances. 4. If that fails, then I look for an OS specific help list (linux-mint-help, freebsd forums, etc), do another search there, and post a question. 5. If that fails, or takes a while, and I know someone with enough knowledge to help, I ask them. 6. I find and scan relevant literature or books on the subject for something related. Repeat as needed. Programming requires some additional steps: 1. look at source files including headers and code. 2. look at library dependencies 3. ask on dev lists but otherwise, is similar. In V7, it's trickier because apropos doesn't exist, or the functional equivalent man -k, for that matter and books are hard to find (most deal with System V or BSD. I do find the command 'find /usr/man -name "*" -a -print | grep task' to be useful in finding man pages, but it's not as general as apropos. So, what was the process of learning unix like in the V7 days? What were your goto resources? More than just man and the sources? Any particular notes, articles, posts, or books that were really helpful (I found the article, not the book, "The Unix Programming Environment" by Kernighan and Mashey, to be enlightening https://www.computer.org/csdl/mags/co/1981/04/01667315.pdf)? Regards, Will -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Sat Nov 11 04:06:41 2017 From: lm at mcvoy.com (Larry McVoy) Date: Fri, 10 Nov 2017 10:06:41 -0800 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> Message-ID: <20171110180641.GB25370@mcvoy.com> On Fri, Nov 10, 2017 at 12:00:15PM -0600, Will Senn wrote: > My question for you citizens of that long-ago era :), is this - what was it > like to sit down and learn unix V7 on a PDP? Not from a hardware or > ergonomics perspective, but from a human information processing perspective. > What resources did you consult in your early days and what did the workflow > look like in practical terms. I learned on the VAX, did some PDP-11 assembly but I dunno if I ever ran on one. Definitely spent a lot of time on 11/750, 11/780 and the 8600. The hardest part, for me, was learning command names. Where is dir? Oh, it's ls. Etc. I believe the 4BSD manuals (those ones with red/yellow/green plastic binders) had listings of the commands with the synopsis, either they did or someone gave such a thing. That was a big jump start. The next thing was someone gave me an account on ..!uwvax!slovax which was an 11/750 that had the 4.2BSD source on it. Many, many hours reading the source and having my eyes opened. --lm From ralph at inputplus.co.uk Sat Nov 11 04:12:51 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Fri, 10 Nov 2017 18:12:51 +0000 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <20171110180641.GB25370@mcvoy.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> <20171110180641.GB25370@mcvoy.com> Message-ID: <20171110181251.817151FF94@orac.inputplus.co.uk> Larry wrote: > I believe the 4BSD manuals (those ones with red/yellow/green plastic > binders) had listings of the commands with the synopsis, either they > did or someone gave such a thing. That was a big jump start. That sounds like the permuted index of the man page's whatis(1) line built by ptx(1). Yes, it was great to skim through that and jump off to whatever caught one's eye. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From michael at kjorling.se Sat Nov 11 04:18:56 2017 From: michael at kjorling.se (Michael =?utf-8?B?S2rDtnJsaW5n?=) Date: Fri, 10 Nov 2017 18:18:56 +0000 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> Message-ID: <20171110181856.GF994@h-174-65.A328.priv.bahnhof.se> On 10 Nov 2017 12:00 -0600, from will.senn at gmail.com (Will Senn): > In V7, it's trickier because apropos doesn't exist, or the > functional equivalent man -k, for that matter and books are hard to > find (most deal with System V or BSD. I do find the command 'find > /usr/man -name "*" -a -print | grep task' to be useful in finding > man pages, but it's not as general as apropos. > > So, what was the process of learning unix like in the V7 days? What > were your goto resources? More than just man and the sources? Any > particular notes, articles, posts, or books that were really helpful > (I found the article, not the book, "The Unix Programming > Environment" by Kernighan and Mashey, to be enlightening > https://www.computer.org/csdl/mags/co/1981/04/01667315.pdf)? Semi-related thought, possibly helpful: Did the manuals (I mean the printed ones) have indexes that were meaningful for such purposes? I'm thinking something like the output of apropos / man -k, not just a listing of command names and page numbers. Sure knowing that the description for how to use ls was in section 1 page 42 might have been _helpful_, but not really for finding out _how to list files_ in the first place... -- Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se “People who think they know everything really annoy those of us who know we don’t.” (Bjarne Stroustrup) From ralph at inputplus.co.uk Sat Nov 11 04:19:59 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Fri, 10 Nov 2017 18:19:59 +0000 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> Message-ID: <20171110181959.4A29B1FF94@orac.inputplus.co.uk> Hi Will, > (I found the article, not the book, "The Unix Programming Environment" > by Kernighan and Mashey, to be enlightening The book is better. I learnt Unix from it having read K&R to learn C and being intrigued by these sample commands that were presented. http://www.amazon.com/exec/obidos/ASIN/013937681X/trofforg-20 I used to rent time on a 3B2 in a neighbouring town a train-ride away and go there on a Saturday to actually type in what the book presented. That stopped when I traded in my ARM-based Acorn Archimedes 310 for Acorn's R140 running BSD 4.2-based Risc iX; like Tony Finch mentioned the other day IIRC. ARM 3, 4 MiB RAM, and a 56 MB Rodime ST-506 drive that housed everything including X and iXi.Desktop(sp?). Everything on disk was compressed to fit; luckily the ARM could decompress quicker than the rust could spin. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From ron at ronnatalie.com Sat Nov 11 04:21:56 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Fri, 10 Nov 2017 13:21:56 -0500 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> Message-ID: <037001d35a50$cb3380b0$619a8210$@ronnatalie.com> Ø My question for you citizens of that long-ago era :), is this - what was it like to sit down and learn unix V7 on a PDP? Not from a hardware or ergonomics perspective, but from a human information processing perspective. What resources did you consult in your early days… I remember this well. Actually, I started with V6 UNIX. The biggest difference between using a simulator versus what happened back in 1977 when I started was that I didn’t have exclusive access to the machine. The Johns Hopkins EE department computer was at the time run by a group called the Undergraduate Computing Society. Mike Muuss and Pete Koziar were the system programmers at the time I started. Joe Pistritto was head of operations. George Toth was in charge of documentation and Bill Lindeman was in charge of hardware, if I remember all this correctly. The first edition K&R and the printed man pages and related documents were what I started with. I set about learning C (along with nroff which I had used to write a few freshman papers). My freshman year, after one too many security failures in the UCS, the EE department pulled the plug on the UCS and gave us adult supervision. Of course, the work was still done by the students, we just reported to the professor now. Robert Jesse took over as head of operations and induced me to become an operator. What I had to learn was the structure of the V6 filesystem and what could go wrong and how to detect and fix things with icheck, dcheck, clri, and the like. I then badged Mike into giving me access to the UNIX source code (in printed form, the kernel source disk couldn’t be left mounted all the time due to lack of drives). I can’t tell you how many times I started reading buf.h trying to understand it. We didn’t have access to the Lyons book at the time. Finally, one day George Toth was writing a driver for a printer we had gotten and he said he’d write it but wouldn’t debug it. I volunteered to take it through to completion. So with a night of scheduled downtime, and Mike supervising me by sleeping in the beenbag chair we had next to the console, I tested and fixed the hardware driver. After that, I was sort of the go-to guy for driver work. I also spent a lot of time looking for ways to break security and/or crash the system and then fixing them. Of course, I soon also became adept at fixing holes other people had exploited. Around my junior year, the PDP-11/23 came out and one of the labs upstairs got one to run experiments (biomedical engineering). I got tasked with maintaining that machine and that gave me a nicer platform for kernel hacks because as long as it wasn’t needed for one of the PhD student’s research, I could have it to myself. Coupled with this hands on was the fact that Mike Muuss believed in liberally applying comments to the UNIX kernel to explain what was going on. He was so incensed about the “You’re not expected to understand this” comment on the retu/aretu/setka6 code snippet, that he wrote almost a page of explanation as to what was going on. He was a bit livid when he sent things off to Berkeley for inclusion in BSD releases that they (McKusick?) enforced a common commenting style by deleting all of Mike’s additions. -Ron -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Sat Nov 11 04:32:30 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Fri, 10 Nov 2017 13:32:30 -0500 (EST) Subject: [TUHS] finding help in v7 in 1980 Message-ID: <20171110183230.4C30B18C09C@mercury.lcs.mit.edu> > From: Will Senn > what was it like to sit down and learn unix V7 on a PDP? ... What > resources did you consult in your early days Well, I started by reading through the UPM (the 8-section thing, with commands in I, system calls in II, etc). I also read a lot of Unix documentation which came as larger documents (e.g the Unix Intro, C Tutorial and spec, etc). I should point out that back then, this was a feasible task. Most man pages were really _a_ page, and often a short one. By the end of my time on the PWB1 system, there were about 300 commands in /bin (which includes sections II, VI and VIII), but a good chunk (I'd say probably 50 or more) were ones we'd written. So there were not that many to start with (section II was maybe 3/4" of paper), and you could read the UPM in a couple of hours. (I read through it more than once; you'd get more retained, mentally, on each pass.) There were no Unix people at all in the group at MIT which I joined, so I couldn't ask around; there were a bunch in another group on the floor below, although I didn't use them much - mostly it was RTFM. Mailing lists? Books? Fuhgeddaboutit! My next step in learning the kernel was to start reading the sources. (I didn't have access to Lyons.) I did an 'cref' of the entire system, and transferred the results to a large piece of paper, so I could see who was calling who in the kernel. > What were your goto resources? More than just man and the sources? That's all there was! I should point out that reading the sources to command 'x' taught you more than just how 'x' worked - you saw how people interacted with the kernel, what it could do, etc, etc. Noel From itz at very.loosely.org Sat Nov 11 04:41:30 2017 From: itz at very.loosely.org (Ian Zimmerman) Date: Fri, 10 Nov 2017 10:41:30 -0800 Subject: [TUHS] margins and indenting, and arbitrary c rules In-Reply-To: <20171109153151.3801118C0BC@mercury.lcs.mit.edu> References: <20171109153151.3801118C0BC@mercury.lcs.mit.edu> Message-ID: <20171110184130.uuptimhldoudqvv3@matica.foolinux.mooo.com> On 2017-11-09 10:31, Noel Chiappa wrote: > Now that I think about it, I may have subconciously absorbed this from > Ken's and Dennis' code in the V6 kernel. Go take a look at it: more > than one level of indent is quite rare in anything there (including > tty.c, which has some pretty complex stuff in it). It has also been the preferred coding style in Perl, I think right from the beginning. I'm sure it's written down somewhere, maybe even by Larry Wall. -- Please don't Cc: me privately on mailing lists and Usenet, if you also post the followup to the list or newsgroup. To reply privately _only_ on Usenet, fetch the TXT record for the domain. From jon at fourwinds.com Sat Nov 11 05:05:28 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Fri, 10 Nov 2017 11:05:28 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> Message-ID: <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> Nemo writes: > On 9 November 2017 at 14:14, Ron Natalie wrote: > > At least it’s not python where the indenting makes a semantic difference. > > And for that reason, I have never used Python. (I have a mental block > about that.) I agree on Python but for a slightly different reason. In 1981 I wrote a user interface for the Tektronix microprocessor development systems. The executable plus all of the script data had to fit in memory on the PDP-11. This was an exercise in byte-counting to make everything fit because of the cost of overflowing a segment by a byte. Because of this I used indent level as part of the scripting language. Got beaten to a pulp by other folks in the group about it and had to waste a few precious bytes processing curly braces instead. So I'm too scarred to be able to use Python without cringing. Separate from this, I think that the whole 80 column thing is a bit silly. I have used 132 as by default for a long time now. Would go wider but just because I have always found it worthwhile spending money on the best monitors doesn't mean that everyone else can. Everything including my laptop is now a UHD monitor which rocks! I feel that longer lines work better than one-character variable names. And, longer lines are way more readable than wrapped lines. I have never been fond of the notion that code should be broken up into functions for the purpose of keeping lines short; I feel that code should be broken up into functions if it makes sense to do so, for example if the functions are used more than once. Writing for the limitations of the I/O device doesn't seem to be a good paradigm. In any case, I don't think that being an old UNIX person means that one has to live in the past. There was nothing magic about 80 columns; it was just the technology of the time. Technology has changed, so move on. Jon From nobozo at gmail.com Sat Nov 11 05:15:01 2017 From: nobozo at gmail.com (Jon Forrest) Date: Fri, 10 Nov 2017 11:15:01 -0800 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> Message-ID: <50decc96-abc1-60fa-4056-1a2c41a22179@gmail.com> On 11/10/2017 10:00 AM, Will Senn wrote: > > My question for you citizens of that long-ago era :), is this - what was > it like to sit down and learn unix V7 on a PDP? Not from a hardware or > ergonomics perspective, but from a human information processing > perspective. What resources did you consult in your early days and what > did the workflow look like in practical terms. I started in 1977 at UC Santa Barbara with Unix V6 that was running on a PDP11/45 just during the night. The rest of the time it ran RSTS/E. In fact, there was a sign that said "Oh say can you C by the dawn's early light" on the wall because the time you were able to learn C was in the early morning hours. There wasn't much instructional material available to learn Unix back then. I remember reading the man pages, and the few tutorials about the 'ed' editor and the shell. But, I mostly learned stuff by pestering the few people around who had somehow learned whatever it was I was trying to figure out. Or, we worked together to figure things out. I already mentioned the "Eunuch's User Group" meeting we had back then that brought together many of the few people in S. Cal who were using Unix back then. In spite of the fact that UCSB was one of the first nodes on the Arpanet, I don't recall hearing about any way to use it. By the time Unix v7 came out, I was able to recognize its various improvements, such as the 'make' command, the standard io library, and others. The K&R C book also helped a lot. But still, Unix was quite primitive and to this day I have the unconscious habit of running 'sync' at every stopping point because, due to the fragility of the file system back then, doing so was a good way to minimize possible file system damage when (not if) the system crashed. Jon Forrest From chet.ramey at case.edu Sat Nov 11 05:18:32 2017 From: chet.ramey at case.edu (Chet Ramey) Date: Fri, 10 Nov 2017 14:18:32 -0500 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <20171110180641.GB25370@mcvoy.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> <20171110180641.GB25370@mcvoy.com> Message-ID: On 11/10/17 1:06 PM, Larry McVoy wrote: > > On Fri, Nov 10, 2017 at 12:00:15PM -0600, Will Senn wrote: >> My question for you citizens of that long-ago era :), is this - what was it >> like to sit down and learn unix V7 on a PDP? Not from a hardware or >> ergonomics perspective, but from a human information processing perspective. >> What resources did you consult in your early days and what did the workflow >> look like in practical terms. > > I learned on the VAX, did some PDP-11 assembly but I dunno if I ever > ran on one. Definitely spent a lot of time on 11/750, 11/780 and the 8600. This almost exactly mirrors my experience, except we moved off the VAX before the 8600. (And I did my PDP-11 assembly programming on the DEC PRO-350, DEC's PDP-11-based "personal computer.") I came from TOPS-20, and I agree that the hardest part was learning the command names and different behaviors. I read the manuals, a couple of books (including, ironically as it turned out, Steve Bourne's), a bunch of various source code, and a lot of unix-wizards discussions. Chet -- ``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://cnswww.cns.cwru.edu/~chet/ From ron at ronnatalie.com Sat Nov 11 05:20:52 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Fri, 10 Nov 2017 14:20:52 -0500 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <50decc96-abc1-60fa-4056-1a2c41a22179@gmail.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> <50decc96-abc1-60fa-4056-1a2c41a22179@gmail.com> Message-ID: <039f01d35a59$06423db0$12c6b910$@ronnatalie.com> > I started in 1977 at UC Santa Barbara with Unix V6 that was running on a > PDP11/45 just during the night. The rest of the time it ran RSTS/E. In fact, there was a sign that said "Oh say can you C by the dawn's early light" on the wall because the time you were able to learn C was in the early > morning hours. Amusingly, the way UNIX got installed at JHU was on the condition that Mike get Basic Plus from RSTS/E to run on it. This turned out to only require two modifications. The first was the addition of a system call to turn off the UNIX stack segment. The second was to emulate enough of the RSTS system calls. This turned out to be fairly straightforward because RSTS like most of the DEC operating systems used EMT to trap into the kernel whereas UNIX used TRAP. I've never understood why DEC operating systems used EMT, but it worked out for us. Years later during the UNIX port to the HEP, we ran UNIX at night while the ersatz HEPOS (fortunately abandoned) ran in the day time. The Denelcor guys would know we were still up because when they hit ENTER on their terminals the OS would print: HEP, two, three, four (hey, we were employees of the US Army, albeit civilians). From clemc at ccc.com Sat Nov 11 05:35:47 2017 From: clemc at ccc.com (Clem Cole) Date: Fri, 10 Nov 2017 14:35:47 -0500 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <20171110183230.4C30B18C09C@mercury.lcs.mit.edu> References: <20171110183230.4C30B18C09C@mercury.lcs.mit.edu> Message-ID: On Fri, Nov 10, 2017 at 1:32 PM, Noel Chiappa wrote: > > From: Will Senn > > > what was it like to sit down and learn unix V7 on a PDP? ... What > > resources did you consult in your early days > > Well, I started by reading through the UPM (the 8-section thing, with > commands > in I, system calls in II, etc). I also read a lot of Unix documentation > which > came as larger documents (e.g the Unix Intro, C Tutorial and spec, etc). > ​Exactly -- BTW the printed ​binders that Larry mentions were a few years away. Brian Redman of Whippany (the 'ber' of honey-dan-ber UUCP), got them printed in the early 1980s. > > I should point out that back then, this was a feasible task. ​Agreed...​ > Most man pages > were really _a_ page, and often a short one. By the end of my time on the > PWB1 > system, there were about 300 commands in /bin (which includes sections II, > VI > and VIII), but a good chunk (I'd say probably 50 or more) were ones we'd > written. So there were not that many to start with (section II was maybe > 3/4" > of paper), and you could read the UPM in a couple of hours. (I read > through it > more than once; you'd get more retained, mentally, on each pass.) > ​Yup, I'm not sure how many times I read through UPM, but it was a few times. What was amazing to me, was compared to say TOPS or even RSTS it seemed like I could actually understand the whole thing.​ > > There were no Unix people at all in the group at MIT which I joined, so I > couldn't ask around; there were a bunch in another group on the floor > below, > although I didn't use them much - mostly it was RTFM. > ​It was very much a learn as you go. Ted Kowalski would show up a little later and start to explain/argue about things that I had confused./wrong. But my first attempts were pretty lonely. > > Mailing lists? Books? Fuhgeddaboutit! > ​:-)​ > > My next step in learning the kernel was to start reading the sources. ​ditto...​ > (I > ​ ​ > didn't have access to Lyons.) ​I got access to Lyons after Ted showed up. I was so impressed ;-)​ > I did an 'cref' of the entire system, and > transferred the results to a large piece of paper, so I could see who was > calling who in the kernel. > ​Great mind thinks a like. Although I had to transfer some of the stuff to the PDP-10​ I had 'tools' there and was still learning the UNIX ones. I did not understand grep at first. I remember the moment of enlightenment the first time, I understood what I could do with it. Seriously, find and grep were the two new tools that changed the way I started to think about computers. I had nothing like them on the 10's. > > > > What were your goto resources? More than just man and the sources? > > That's all there was! > > I should point out that reading the sources to command 'x' taught you more > than just how 'x' worked - you saw how people interacted with the kernel, > what > it could do, etc, etc. ​Yeah, same here. I spent a lot of time staring at Kernel and Application code.​ -------------- next part -------------- An HTML attachment was scrubbed... URL: From pechter at gmail.com Sat Nov 11 05:47:44 2017 From: pechter at gmail.com (William Pechter) Date: Fri, 10 Nov 2017 14:47:44 -0500 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> Message-ID: <160776eb-6e52-5a93-7f43-2cc3edc2fb39@gmail.com> Will Senn wrote: > > Hi, > > Everyone on the list is well aware that running V7 in a modern > simulator like SIMH is not a period realistic environment and some of > the "problems" facing the novice enthusiast are considerably different > from those of the era (my terminal is orders of magnitude faster and > my "tape" is a file on a disk). However, many of the challenges facing > someone in 1980, remain for the enthusiast, such as how to run various > commands successfully and how devices interoperate with unix. Of > course, we have do resources and some overlapping experience to draw > on - duckduckgo (googleish), tuhs member experience, and exposure to > modern derivatives like linux, macos, bsd, etc. We also have > documentation of the system in the form of the Programmer's Guide - as > pdfs and to some degree as man pages on the system (haven't found > volume 2 documentation on the instance). > > My question for you citizens of that long-ago era :), is this - what > was it like to sit down and learn unix V7 on a PDP? Not from a > hardware or ergonomics perspective, but from a human information > processing perspective. What resources did you consult in your early > days and what did the workflow look like in practical terms. > > As an example - today, when I want to know how to accomplish a task in > modern unix, I: > > 1. Search my own experience and knowledge. If I know the answer, duh, > I know it. > 2. Decide if I have enough information about the task to guess at the > requisite commands. If I do, then man command is my friend. If > not, I try man -k task or apropos task where task is a one word > summary of what I'm trying to accomplish. > 3. If that fails, then I search for the task online and try what > other folks have done in similar circumstances. > 4. If that fails, then I look for an OS specific help list > (linux-mint-help, freebsd forums, etc), do another search there, > and post a question. > 5. If that fails, or takes a while, and I know someone with enough > knowledge to help, I ask them. > 6. I find and scan relevant literature or books on the subject for > something related. > > Repeat as needed. > > Programming requires some additional steps: > > 1. look at source files including headers and code. > 2. look at library dependencies > 3. ask on dev lists > > but otherwise, is similar. > > In V7, it's trickier because apropos doesn't exist, or the functional > equivalent man -k, for that matter and books are hard to find (most > deal with System V or BSD. I do find the command 'find /usr/man -name > "*" -a -print | grep task' to be useful in finding man pages, but it's > not as general as apropos. > > So, what was the process of learning unix like in the V7 days? What > were your goto resources? More than just man and the sources? Any > particular notes, articles, posts, or books that were really helpful > (I found the article, not the book, "The Unix Programming Environment" > by Kernighan and Mashey, to be enlightening > https://www.computer.org/csdl/mags/co/1981/04/01667315.pdf)? > > Regards, > > Will > I came to V7 under emulation, since I didn't really do much Unix until System III. I learned Unix as a user using Kochan and Wood's Unix Shell programming to get used to the shell syntax, which was very different from CP/M, MS-DOS, RT11, RSTS/E, RSX and VMS which I dealt with as a DEC Field Engineer. I picked up the Nutshell books on Unix, TCP/IP, DNS. After touching some BSD and Ultrix, I moved back to System V, Xenix System V (8086/8088) and Uniplus System III. I compiled and replaced older tools to get things like apropos where they didn't exist. Don't ask how I got Korn Shell code... It really helps to have the right friends with access... When I got ksh working on SVR2 based systems and Xenix (at home) I was amazed how much better it was than the alternatives in '86-88. One thing that the BSD's and Uniplus had were a number of the original Unix papers which I collected in the original troff/nroff (if I could find them). They were a great help in understanding how the systems all went together. Understanding the history is useful. I was explaining why there's /bin, /usr/bin /sbin to a bunch of new Linux users -- telling them the original RK05's about 2.5 megabytes (1.5 megawords) used to hold the entire system. Minimal was important back in the day. Current compressed Ubuntu linux kernel 4.13 = aproximately 7.5 megabytes. Now the kernel's larger than the disk was. Some of the stuff was interesting. The stty stuff was just plain wierd. AT&T assumed hard copy terminals as a default still supporting only upper case and # as a character erase and Control-C as an interrupt character made more sense than Ascii DEL. Once I got my profile standardized to make the systems all look the same I was good. There's a nice table on https://www.in-ulm.de/~mascheck/various/stty/ I picked up the AT&T Sys V docs and the BSD 4.2 and 4.3 docs and worked backwards to the minimalist Version 7. My only exposure with V6 was hardware with a bad backplane on an 11/70 corrupting a customer database back in the mid '80's. Amazing to find the sysadmins in a Unix operations and sysadmin class I was teaching on Pyramid MIServer boxes in the 1993 timeframe when they were upgrading to a Pyramid. Bill -- Digital had it then. Don't you wish you could buy it now! pechter-at-gmail.com http://xkcd.com/705/ From bakul at bitblocks.com Sat Nov 11 05:51:34 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Fri, 10 Nov 2017 11:51:34 -0800 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: Your message of "Fri, 10 Nov 2017 12:00:15 -0600." <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> Message-ID: <20171110195149.A03D8156E7D7@mail.bitblocks.com> On Fri, 10 Nov 2017 12:00:15 -0600 Will Senn wrote: Will Senn writes: > > My question for you citizens of that long-ago era :), is this - what was > it like to sit down and learn unix V7 on a PDP? Not from a hardware or > ergonomics perspective, but from a human information processing > perspective. What resources did you consult in your early days and what > did the workflow look like in practical terms. ... > So, what was the process of learning unix like in the V7 days? What were > your goto resources? More than just man and the sources? Any particular > notes, articles, posts, or books that were really helpful (I found the > article, not the book, "The Unix Programming Environment" by Kernighan > and Mashey, to be enlightening > https://www.computer.org/csdl/mags/co/1981/04/01667315.pdf)? I learned by trying out pretty much *every* command in /bin and /usr/bin. I would read the man page, play with the command, read the man page some more, and so on. I wrote toy programs to learn about common libc functions. I tried out pretty much every vi command to become better at editing. Fotunately v7 was a small enough system that one could actually learn something about every command, every device driver, every syscall, every libc function etc. I read the documentation bundled with v7 & BSD, and I read unix source code as well as observed and learned from seasoned unix hackers. But I would switch to writing (and rewriting) code ASAP as I learn better by building something. And debugging. There are lots of learning opportunities there! The key is not give up until you find the root cause. Debugging can give a more intuitive sense of how things work as you start paying more attention to even little things. From toby at telegraphics.com.au Sat Nov 11 06:36:31 2017 From: toby at telegraphics.com.au (Toby Thain) Date: Fri, 10 Nov 2017 15:36:31 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> Message-ID: <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> On 2017-11-10 2:05 PM, Jon Steinhart wrote: > Nemo writes: >> On 9 November 2017 at 14:14, Ron Natalie wrote: >>> At least it’s not python where the indenting makes a semantic difference. >> >> And for that reason, I have never used Python. (I have a mental block >> about that.) > > ... > Separate from this, I think that the whole 80 column thing is a bit silly. > I have used 132 as by default for a long time now. Would go wider but just > because I have always found it worthwhile spending money on the best monitors > doesn't mean that everyone else can. Everything including my laptop is now > a UHD monitor which rocks! > > I feel that longer lines work better than one-character variable names. > And, longer lines are way more readable than wrapped lines. I have never > been fond of the notion that code should be broken up into functions for the > purpose of keeping lines short; I feel that code should be broken up into > functions if it makes sense to do so, for example if the functions are used > more than once. Writing for the limitations of the I/O device doesn't seem > to be a good paradigm. > > In any case, I don't think that being an old UNIX person means that one has > to live in the past. There was nothing magic about 80 columns; it was just > the technology of the time. Technology has changed, so move on. Just don't move on without some limit. There are real cognitive/typographic reasons why excessively long lines hurt comprehension. This is why both 500 year old books and 5 month old books have narrow measures. 80 might be too narrow for most, but at some point beyond 132 is "too far". :) --Toby > > Jon > From lm at mcvoy.com Sat Nov 11 06:39:23 2017 From: lm at mcvoy.com (Larry McVoy) Date: Fri, 10 Nov 2017 12:39:23 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> Message-ID: <20171110203923.GA29606@mcvoy.com> > > Separate from this, I think that the whole 80 column thing is a bit silly. > > I have used 132 as by default for a long time now. > > Just don't move on without some limit. There are real > cognitive/typographic reasons why excessively long lines hurt > comprehension. This is why both 500 year old books and 5 month old books > have narrow measures. I've made that point and people blithely ignore it. From jon at fourwinds.com Sat Nov 11 06:43:36 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Fri, 10 Nov 2017 12:43:36 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> Message-ID: <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> Toby Thain writes: > Just don't move on without some limit. There are real > cognitive/typographic reasons why excessively long lines hurt > comprehension. This is why both 500 year old books and 5 month old books > have narrow measures. > > 80 might be too narrow for most, but at some point beyond 132 is "too > far". :) Well, I would claim that books have technological limitations that are different than computer monitors. It's a matter of doing what's appropriate instead of taking a dogmatic approach. I will point out that while it's sometimes a pain, the reader/writer ratio is a major driving force. I save on typing and use very terse code when writing stuff for myself. But, when writing stuff where there are many readers I feel that it's my job to put in the extra work to make it more accessible to the reader, partly because I don't want the readers bugging me. Jon From imp at bsdimp.com Sat Nov 11 06:46:30 2017 From: imp at bsdimp.com (Warner Losh) Date: Fri, 10 Nov 2017 13:46:30 -0700 Subject: [TUHS] 80 columns ... In-Reply-To: <20171110203923.GA29606@mcvoy.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <20171110203923.GA29606@mcvoy.com> Message-ID: On Fri, Nov 10, 2017 at 1:39 PM, Larry McVoy wrote: > > > Separate from this, I think that the whole 80 column thing is a bit > silly. > > > I have used 132 as by default for a long time now. > > > > Just don't move on without some limit. There are real > > cognitive/typographic reasons why excessively long lines hurt > > comprehension. This is why both 500 year old books and 5 month old books > > have narrow measures. > > I've made that point and people blithely ignore it. > When I was debating style wars in the 90's, we adopted a 'wide is OK' approach, but with a soft limit of ~130 and a hard limit of 160 in exceptional cases. There was some research that showed that there's a limited field of view you want to be able to look at the code without moving your eyes side to side, just up and down. With the technology of the time, above about 130 would be hard to read 'at a glance'. Years later, I went looking for those studies, and couldn't find them and the original advocate of the view couldn't provide them. I'm the first to admit that 80 is too few. But 200 is definitely too wide and 100-120 seems to still be the sweet spot for my eyes and the range of hardware that I use. Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Sat Nov 11 06:58:06 2017 From: lm at mcvoy.com (Larry McVoy) Date: Fri, 10 Nov 2017 12:58:06 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> Message-ID: <20171110205806.GB29606@mcvoy.com> On Fri, Nov 10, 2017 at 12:43:36PM -0800, Jon Steinhart wrote: > Toby Thain writes: > > Just don't move on without some limit. There are real > > cognitive/typographic reasons why excessively long lines hurt > > comprehension. This is why both 500 year old books and 5 month old books > > have narrow measures. > > > > 80 might be too narrow for most, but at some point beyond 132 is "too > > far". :) > > Well, I would claim that books have technological limitations that are > different than computer monitors. It's a matter of doing what's appropriate > instead of taking a dogmatic approach. > > I will point out that while it's sometimes a pain, the reader/writer ratio > is a major driving force. I save on typing and use very terse code when > writing stuff for myself. But, when writing stuff where there are many > readers I feel that it's my job to put in the extra work to make it more > accessible to the reader, partly because I don't want the readers bugging me. So for the Nth time, there are people who read, I'm one of them, by looking down the middle of the text and getting the rest through peripheral vision. I read easily 3-4x faster than a decently fast reader and I get enough info that I can find the place where I need to go read more closely later. I can't imagine I'm the only person who does this, I'm special but not that special :) So for me, wider is optimizing me out, not optimizing for me. From lm at mcvoy.com Sat Nov 11 06:59:20 2017 From: lm at mcvoy.com (Larry McVoy) Date: Fri, 10 Nov 2017 12:59:20 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <20171110203923.GA29606@mcvoy.com> Message-ID: <20171110205920.GC29606@mcvoy.com> On Fri, Nov 10, 2017 at 01:46:30PM -0700, Warner Losh wrote: > On Fri, Nov 10, 2017 at 1:39 PM, Larry McVoy wrote: > > > > > Separate from this, I think that the whole 80 column thing is a bit > > silly. > > > > I have used 132 as by default for a long time now. > > > > > > Just don't move on without some limit. There are real > > > cognitive/typographic reasons why excessively long lines hurt > > > comprehension. This is why both 500 year old books and 5 month old books > > > have narrow measures. > > > > I've made that point and people blithely ignore it. > > > > When I was debating style wars in the 90's, we adopted a 'wide is OK' > approach, but with a soft limit of ~130 and a hard limit of 160 in > exceptional cases. There was some research that showed that there's a > limited field of view you want to be able to look at the code without > moving your eyes side to side, just up and down. With the technology of the > time, above about 130 would be hard to read 'at a glance'. Years later, I > went looking for those studies, and couldn't find them and the original > advocate of the view couldn't provide them. > > I'm the first to admit that 80 is too few. But 200 is definitely too wide > and 100-120 seems to still be the sweet spot for my eyes and the range of > hardware that I use. I could live with 100. From jon at fourwinds.com Sat Nov 11 07:02:55 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Fri, 10 Nov 2017 13:02:55 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <20171110205806.GB29606@mcvoy.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> Message-ID: <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> Larry McVoy writes: > On Fri, Nov 10, 2017 at 12:43:36PM -0800, Jon Steinhart wrote: > > Toby Thain writes: > > > Just don't move on without some limit. There are real > > > cognitive/typographic reasons why excessively long lines hurt > > > comprehension. This is why both 500 year old books and 5 month old books > > > have narrow measures. > > > > > > 80 might be too narrow for most, but at some point beyond 132 is "too > > > far". :) > > > > Well, I would claim that books have technological limitations that are > > different than computer monitors. It's a matter of doing what's appropriate > > instead of taking a dogmatic approach. > > > > I will point out that while it's sometimes a pain, the reader/writer ratio > > is a major driving force. I save on typing and use very terse code when > > writing stuff for myself. But, when writing stuff where there are many > > readers I feel that it's my job to put in the extra work to make it more > > accessible to the reader, partly because I don't want the readers bugging me. > > So for the Nth time, there are people who read, I'm one of them, > by looking down the middle of the text and getting the rest through > peripheral vision. I read easily 3-4x faster than a decently fast reader > and I get enough info that I can find the place where I need to go read > more closely later. > > I can't imagine I'm the only person who does this, I'm special but not > that special :) So for me, wider is optimizing me out, not optimizing > for me. Well, as someone who also reads I don't really understand how your point relates to 80 columns. It sounds to me that you're making an argument for something else in which I strongly believe, which is that the block structure of the code should be clearly visible so that a reader doesn't have to read every line in order to understand what's going on. As an example, I abhor styles that say that continuations of long lines should be indented either an extra tab or right-aligned with the first line. Both of those styles break the visible block structure. Jon From lm at mcvoy.com Sat Nov 11 07:09:21 2017 From: lm at mcvoy.com (Larry McVoy) Date: Fri, 10 Nov 2017 13:09:21 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> Message-ID: <20171110210921.GD29606@mcvoy.com> On Fri, Nov 10, 2017 at 01:02:55PM -0800, Jon Steinhart wrote: > Larry McVoy writes: > > So for the Nth time, there are people who read, I'm one of them, > > by looking down the middle of the text and getting the rest through > > peripheral vision. I read easily 3-4x faster than a decently fast reader > > and I get enough info that I can find the place where I need to go read > > more closely later. > > > > I can't imagine I'm the only person who does this, I'm special but not > > that special :) So for me, wider is optimizing me out, not optimizing > > for me. > > Well, as someone who also reads I don't really understand how your point > relates to 80 columns. I read books and code by look at the middle of the page or the middle of the terminal and scrolling my eyes downward. I don't look side to side. I literally read the middle of the text and I get the rest through peripheral vision. This is what Warner (I think) was saying about books. If you make them too wide you have to move your eyes back and forth and that is both slower and more tiring. 80-100 columns is fine, 132 is too wide, that forces people to move their head/eyes back and forth. From jon at fourwinds.com Sat Nov 11 07:12:40 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Fri, 10 Nov 2017 13:12:40 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <20171110210921.GD29606@mcvoy.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> <20171110210921.GD29606@mcvoy.com> Message-ID: <201711102112.vAALCeDG026186@darkstar.fourwinds.com> Larry McVoy writes: > I read books and code by look at the middle of the page or the middle of > the terminal and scrolling my eyes downward. I don't look side to side. > I literally read the middle of the text and I get the rest through > peripheral vision. > > This is what Warner (I think) was saying about books. If you make them > too wide you have to move your eyes back and forth and that is both > slower and more tiring. > > 80-100 columns is fine, 132 is too wide, that forces people to move > their head/eyes back and forth. Well, our physiology may be different. I've got a 132 column window open in front of me and I don't have to move my eyes side-to-side to read. I'm not seeing any of it via peripheral vision. Jon From wlc at jctaylor.com Sat Nov 11 07:34:40 2017 From: wlc at jctaylor.com (William Corcoran) Date: Fri, 10 Nov 2017 21:34:40 +0000 Subject: [TUHS] 80 columns ... In-Reply-To: <201711102112.vAALCeDG026186@darkstar.fourwinds.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> <20171110210921.GD29606@mcvoy.com>, <201711102112.vAALCeDG026186@darkstar.fourwinds.com> Message-ID: It could also be that the 80 column display with 24 rows using 8 bit characters fit nicely within a 16k memory chip (or four (4) 4K chips). I wonder if that fact eventually helped OEM's settle in on the ubiquitous 80x24 terminal size? Truly, Bill Corcoran On Nov 10, 2017, at 4:12 PM, Jon Steinhart > wrote: Larry McVoy writes: I read books and code by look at the middle of the page or the middle of the terminal and scrolling my eyes downward. I don't look side to side. I literally read the middle of the text and I get the rest through peripheral vision. This is what Warner (I think) was saying about books. If you make them too wide you have to move your eyes back and forth and that is both slower and more tiring. 80-100 columns is fine, 132 is too wide, that forces people to move their head/eyes back and forth. Well, our physiology may be different. I've got a 132 column window open in front of me and I don't have to move my eyes side-to-side to read. I'm not seeing any of it via peripheral vision. Jon -------------- next part -------------- An HTML attachment was scrubbed... URL: From jon at fourwinds.com Sat Nov 11 07:50:13 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Fri, 10 Nov 2017 13:50:13 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> <20171110210921.GD29606@mcvoy.com>, <201711102112.vAALCeDG026186@darkstar.fourwinds.com> Message-ID: <201711102150.vAALoD1v001419@darkstar.fourwinds.com> William Corcoran writes: > It could also be that the 80 column display with 24 rows using 8 bit characters > fit nicely within a 16k memory chip (or four (4) 4K chips). I wonder if that > fact eventually helped OEM’s settle in on the ubiquitous 80x24 terminal size? Well yes, having worked for a company that made terminals at the time, that is one of the reasons. The other is the availability of monitors that were cheap because they were compatible with televisions. Similar to the reason that we were stuck with crappy HD monitors for years. Jon From dave at horsfall.org Sat Nov 11 08:10:18 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sat, 11 Nov 2017 09:10:18 +1100 (EST) Subject: [TUHS] 80 columns ... In-Reply-To: References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> Message-ID: On Fri, 10 Nov 2017, Nemo wrote: > And for that reason, I have never used Python. (I have a mental block > about that.) The last language I used where indentation was part of the syntax was FORTRAN; although I have Python installed (some tools use it where I would use Perl), I will never use it. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From dave at horsfall.org Sat Nov 11 08:28:58 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sat, 11 Nov 2017 09:28:58 +1100 (EST) Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <20171110183230.4C30B18C09C@mercury.lcs.mit.edu> References: <20171110183230.4C30B18C09C@mercury.lcs.mit.edu> Message-ID: I guess I was lucky; I started with V5 as a graduate at the University of NSW in 1974 or so; we had close ties with Sydney University etc, had a user group (AUUG), developed our own network (ACSnet)... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From toby at telegraphics.com.au Sat Nov 11 08:46:16 2017 From: toby at telegraphics.com.au (Toby Thain) Date: Fri, 10 Nov 2017 17:46:16 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> Message-ID: On 2017-11-10 3:43 PM, Jon Steinhart wrote: > Toby Thain writes: >> Just don't move on without some limit. There are real >> cognitive/typographic reasons why excessively long lines hurt >> comprehension. This is why both 500 year old books and 5 month old books >> have narrow measures. >> >> 80 might be too narrow for most, but at some point beyond 132 is "too >> far". :) > > Well, I would claim that books have technological limitations that are > different than computer monitors. It's a matter of doing what's appropriate > instead of taking a dogmatic approach. It's _reading_. Code doesn't magically escape typographic factors. The human visual/processing system is the constraint, it does not care whether you're reading paper or the more hostile LCD - and it has not changed materially in the millennia we've been doing writing (and certainly not the 500 years we've been doing books). There is also a body of modern research on this. Even research specifically focused on code, I believe. > > I will point out that while it's sometimes a pain, the reader/writer ratio > is a major driving force. I save on typing and use very terse code when > writing stuff for myself. But, when writing stuff where there are many > readers I feel that it's my job to put in the extra work to make it more > accessible to the reader, partly because I don't want the readers bugging me. > > Jon > From dave at horsfall.org Sat Nov 11 08:58:10 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sat, 11 Nov 2017 09:58:10 +1100 (EST) Subject: [TUHS] 80 columns ... In-Reply-To: References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> <20171110210921.GD29606@mcvoy.com>, <201711102112.vAALCeDG026186@darkstar.fourwinds.com> Message-ID: On Fri, 10 Nov 2017, William Corcoran wrote: > It could also be that the 80 column display with 24 rows using 8 bit > characters fit nicely within a 16k memory chip (or four (4) 4K chips). I > wonder if that fact eventually helped OEM’s settle in on the ubiquitous > 80x24 terminal size? Perhaps. I still have horrible memories of the VT-05, flogged as the console for the PDP-11. It was 72x20 (yes, really!), upper-case only (but flipping a switch caused it to transmit lower-case as well), lacked a few characters, etc... It probably used even smaller chips. And yes, I'm a crusty dinosaur who won't adapt to the modern times; my windows are 80x24, with the occasional 80x40, but occasionally using wide screens for side-by-side diffs ("sdiff" is a wonderful tool), etc. I also have poor eyesight, so I can't use small fonts. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From jon at fourwinds.com Sat Nov 11 08:59:23 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Fri, 10 Nov 2017 14:59:23 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> Message-ID: <201711102259.vAAMxNao015564@darkstar.fourwinds.com> Toby Thain writes: > On 2017-11-10 3:43 PM, Jon Steinhart wrote: > > Toby Thain writes: > >> Just don't move on without some limit. There are real > >> cognitive/typographic reasons why excessively long lines hurt > >> comprehension. This is why both 500 year old books and 5 month old books > >> have narrow measures. > >> > >> 80 might be too narrow for most, but at some point beyond 132 is "too > >> far". :) > > > > Well, I would claim that books have technological limitations that are > > different than computer monitors. It's a matter of doing what's appropriate > > instead of taking a dogmatic approach. > > It's _reading_. Code doesn't magically escape typographic factors. The > human visual/processing system is the constraint, it does not care > whether you're reading paper or the more hostile LCD - and it has not > changed materially in the millennia we've been doing writing (and > certainly not the 500 years we've been doing books). There is also a > body of modern research on this. Even research specifically focused on > code, I believe. I'm not unfamiliar with the studies. Most are focus on speed of reading which is not necessarily the most important thing in code. Some studies have found that things that are easier to read are read less accurately which might be OK when reading a novel but is not necessarily optimal for code. Me, I try not to be dogmatic or to read what I want into studies. Well written long lines trump cryptic short lines for me. Your mileage may vary. Jon From jon at fourwinds.com Sat Nov 11 09:05:33 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Fri, 10 Nov 2017 15:05:33 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> <20171110210921.GD29606@mcvoy.com>, <201711102112.vAALCeDG026186@darkstar.fourwinds.com> Message-ID: <201711102305.vAAN5Xh4016814@darkstar.fourwinds.com> Dave Horsfall writes: > > And yes, I'm a crusty dinosaur who won't adapt to the modern times; my > windows are 80x24, with the occasional 80x40, but occasionally using wide > screens for side-by-side diffs ("sdiff" is a wonderful tool), etc. I also > have poor eyesight, so I can't use small fonts. At last, some honesty :-) Beats hand-wavy rationalizations for doing it the way that one likes. Having only a 32" monitor on my desk I can actually make the fonts smaller than I can read with my old eyes even though they're still crisp. Been considering getting a cheap 65" UHD TV as a monitor that I can hang on my wall. Would eliminate the problems with farsightedess. Would also free up a bunch of desk space. Jon From toby at telegraphics.com.au Sat Nov 11 09:43:19 2017 From: toby at telegraphics.com.au (Toby Thain) Date: Fri, 10 Nov 2017 18:43:19 -0500 Subject: [TUHS] PowerPC, bit twiddling - was Re: origins of void* -- Apology! In-Reply-To: <42D46D6E-46F4-49E9-A76B-360A812DBBB0@gmail.com> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <20171108212550.56005156E7D7@mail.bitblocks.com> <7wzi7wt0sc.fsf@junk.nocrew.org> <42D46D6E-46F4-49E9-A76B-360A812DBBB0@gmail.com> Message-ID: <92767af5-6aa5-666a-4a61-4956c2dbbd74@telegraphics.com.au> On 2017-11-09 2:14 AM, Don Hopkins wrote: > >> On 9 Nov 2017, at 07:37, Lars Brinkhoff > > wrote: >> >> Bakul Shah wrote: >>> I agree that `char' shouldn't do double duty as the smallest >>> addressable unit and I was suggesing uint8_t does that job. >> >> There are still machines around where 8-bit bytes isn't a natural fit. > > 1 bit bytes, the smallest addressable unit on the PDP-10, sounds kinda > cool actually. Now would those be signed or unsigned? > > The PowerPC was great at smashing and swizzling bit fields ... It's funny you should mention "1-bit bytes" and PowerPC close together, because the PowerPC has an architectural feature that I have not seen discussed much - the 8 x 4 bit CR register set, and the Conditional Register Logical instructions that can operate on them directly as if they were 32 single bit registers, with operations AND, OR, XOR, NAND, NOR, EQV (complemented XOR), AND complemented operand, OR complemented operand, move between 4-bit fields, and of course the usual branch tests. I have been curious about whether a compiler could make good use of this facility. --Toby > > -Don > From toby at telegraphics.com.au Sat Nov 11 09:52:24 2017 From: toby at telegraphics.com.au (Toby Thain) Date: Fri, 10 Nov 2017 18:52:24 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <201711102305.vAAN5Xh4016814@darkstar.fourwinds.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> <20171110210921.GD29606@mcvoy.com> <201711102112.vAALCeDG026186@darkstar.fourwinds.com> <201711102305.vAAN5Xh4016814@darkstar.fourwinds.com> Message-ID: <4fe50c26-7865-9ff6-eead-40e22e455afa@telegraphics.com.au> On 2017-11-10 6:05 PM, Jon Steinhart wrote: > Dave Horsfall writes: >> >> And yes, I'm a crusty dinosaur who won't adapt to the modern times; my >> windows are 80x24, with the occasional 80x40, but occasionally using wide >> screens for side-by-side diffs ("sdiff" is a wonderful tool), etc. I also >> have poor eyesight, so I can't use small fonts. > > At last, some honesty :-) Beats hand-wavy rationalizations for doing it the > way that one likes. I actually think people _should_ do what they are most comfortable doing; individuals certainly vary and their preferences even moreso. Adjusted of course for _team_ work. The more people who have to deal with the product, the more reason to respect the well studied functional typographic and cognitive norms. --T > > Having only a 32" monitor on my desk I can actually make the fonts smaller > than I can read with my old eyes even though they're still crisp. Been > considering getting a cheap 65" UHD TV as a monitor that I can hang on my > wall. Would eliminate the problems with farsightedess. Would also free > up a bunch of desk space. > > Jon > From ralph at inputplus.co.uk Sat Nov 11 09:58:33 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Fri, 10 Nov 2017 23:58:33 +0000 Subject: [TUHS] PowerPC, bit twiddling - was Re: origins of void* -- Apology! In-Reply-To: <92767af5-6aa5-666a-4a61-4956c2dbbd74@telegraphics.com.au> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> <065d01d3575e$f71f6ad0$e55e4070$@ronnatalie.com> <20171108174450.5564F20334@orac.inputplus.co.uk> <20171108212550.56005156E7D7@mail.bitblocks.com> <7wzi7wt0sc.fsf@junk.nocrew.org> <42D46D6E-46F4-49E9-A76B-360A812DBBB0@gmail.com> <92767af5-6aa5-666a-4a61-4956c2dbbd74@telegraphics.com.au> Message-ID: <20171110235833.BE2511FF9D@orac.inputplus.co.uk> Hi Toby, > It's funny you should mention "1-bit bytes" and PowerPC close > together, because the PowerPC has an architectural feature that I have > not seen discussed much - the 8 x 4 bit CR register set [...] and of > course the usual branch tests. > > I have been curious about whether a compiler could make good use of > this facility. POWER, PowerPC's predecessor, had this too, at least on the IBM RS/6000s running AIX I used. A lot of the work was performance related, so I spent much time looking at disassembly of the output of xlc, their cc. It seemed to make use of more than one CR quite often, but never very many of them. I recall thinking it could have done better. Certainly, re-doing bits in assembler allowed that to be exploited as long as one could track which CR was tracking what previous test and whether it was still valid. Perhaps the compiler's architecture, probably not written from scratch?, didn't adapt well to that possibility? -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From don at DonHopkins.com Sat Nov 11 09:59:44 2017 From: don at DonHopkins.com (Don Hopkins) Date: Sat, 11 Nov 2017 00:59:44 +0100 Subject: [TUHS] 80 columns ... In-Reply-To: <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> Message-ID: Who’s heard David Beazley tell his epic Python hacking saga? He’s a true hacker’s hacker, who wrote SWIG, and eats, breaths and shits Python in his sleep. David Beazley: Discovering Python - PyCon 2014 Speaker: David Beazley So, what happens when you lock a Python programmer in a secret vault containing 1.5 TBytes of C++ source code and no internet connection? Find out as I describe how I used Python as a secret weapon of "discovery" in an epic legal battle. https://www.youtube.com/watch?v=RZ4Sn-Y7AP8 -Don > On 10 Nov 2017, at 20:05, Jon Steinhart wrote: > > Nemo writes: >> On 9 November 2017 at 14:14, Ron Natalie wrote: >>> At least it’s not python where the indenting makes a semantic difference. >> >> And for that reason, I have never used Python. (I have a mental block >> about that.) > > I agree on Python but for a slightly different reason. In 1981 I wrote a > user interface for the Tektronix microprocessor development systems. The > executable plus all of the script data had to fit in memory on the PDP-11. > This was an exercise in byte-counting to make everything fit because of the > cost of overflowing a segment by a byte. Because of this I used indent > level as part of the scripting language. Got beaten to a pulp by other folks > in the group about it and had to waste a few precious bytes processing curly > braces instead. So I'm too scarred to be able to use Python without cringing. > > Separate from this, I think that the whole 80 column thing is a bit silly. > I have used 132 as by default for a long time now. Would go wider but just > because I have always found it worthwhile spending money on the best monitors > doesn't mean that everyone else can. Everything including my laptop is now > a UHD monitor which rocks! > > I feel that longer lines work better than one-character variable names. > And, longer lines are way more readable than wrapped lines. I have never > been fond of the notion that code should be broken up into functions for the > purpose of keeping lines short; I feel that code should be broken up into > functions if it makes sense to do so, for example if the functions are used > more than once. Writing for the limitations of the I/O device doesn't seem > to be a good paradigm. > > In any case, I don't think that being an old UNIX person means that one has > to live in the past. There was nothing magic about 80 columns; it was just > the technology of the time. Technology has changed, so move on. > > Jon -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Sat Nov 11 10:24:27 2017 From: lm at mcvoy.com (Larry McVoy) Date: Fri, 10 Nov 2017 16:24:27 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <201711102305.vAAN5Xh4016814@darkstar.fourwinds.com> References: <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> <20171110210921.GD29606@mcvoy.com> <201711102112.vAALCeDG026186@darkstar.fourwinds.com> <201711102305.vAAN5Xh4016814@darkstar.fourwinds.com> Message-ID: <20171111002427.GF29606@mcvoy.com> Dave Horsfall writes: > > And yes, I'm a crusty dinosaur who won't adapt to the modern times; my > windows are 80x24, with the occasional 80x40, but occasionally using wide > screens for side-by-side diffs ("sdiff" is a wonderful tool), etc. I also > have poor eyesight, so I can't use small fonts. If you like sdiff check out this: http://www.mcvoy.com/lm/difftool.png You have to install BitKeeper to get it but that's easy, go to bitkeeper.org and hit the download button. You don't have to use BK for source management, you can do bk difftool A B bk difftool file dir # dir means dir/file and you get the highlighting that makes sdiff jealous. --lm From davida at pobox.com Sat Nov 11 19:24:41 2017 From: davida at pobox.com (David Arnold) Date: Sat, 11 Nov 2017 20:24:41 +1100 Subject: [TUHS] 80 columns ... In-Reply-To: References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <20171110203923.GA29606@mcvoy.com> Message-ID: <42F3818A-5B60-4CB5-A1D8-A87DB05F681A@pobox.com> (apologies for prolonging this thread) For me, context is everything while programming. Header, code, the other code, man page, spec doc, etc. I usually manage that by getting as many “terminals” as I can on screen: 4 side-by-side xterms, 80 rows of 80 columns using 6x13 font on my 1920x1200 screen. The choice of 80 columns, as has been pointed out, is arbitrary (and historical), but I find it’s a reasonable compromise between clarity of the code (minimal line breaking) and maximising context (4 columns, rather than fewer). If you’re using 132 columns, you almost completely eliminate line-wrapping, but you’re also wasting a lot of visual real estate as the great majority of lines are less then half that long. That said, 80 columns doesn’t work for Java: C is fine, C++ mostly ok, Python is ok, but with Java, the naming culture is for incrediblyLongDescriptiveNamesForEveryThing, and even 132 columns can be too tight. To be honest though, it’s vertical space that I find more important: being able to see the entire function, or all the related header definitions, etc, without scrolling means far less cognitive overhead. Four lots of 80 rows is *so* much better than one lot of 24 as to be almost indescribably more productive. d > On 11 Nov 2017, at 07:46, Warner Losh wrote: > > > > On Fri, Nov 10, 2017 at 1:39 PM, Larry McVoy > wrote: > > > Separate from this, I think that the whole 80 column thing is a bit silly. > > > I have used 132 as by default for a long time now. > > > > Just don't move on without some limit. There are real > > cognitive/typographic reasons why excessively long lines hurt > > comprehension. This is why both 500 year old books and 5 month old books > > have narrow measures. > > I've made that point and people blithely ignore it. > > When I was debating style wars in the 90's, we adopted a 'wide is OK' approach, but with a soft limit of ~130 and a hard limit of 160 in exceptional cases. There was some research that showed that there's a limited field of view you want to be able to look at the code without moving your eyes side to side, just up and down. With the technology of the time, above about 130 would be hard to read 'at a glance'. Years later, I went looking for those studies, and couldn't find them and the original advocate of the view couldn't provide them. > > I'm the first to admit that 80 is too few. But 200 is definitely too wide and 100-120 seems to still be the sweet spot for my eyes and the range of hardware that I use. > > Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From akosela at andykosela.com Sun Nov 12 00:33:21 2017 From: akosela at andykosela.com (Andy Kosela) Date: Sat, 11 Nov 2017 15:33:21 +0100 Subject: [TUHS] 80 columns ... In-Reply-To: <201711102259.vAAMxNao015564@darkstar.fourwinds.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <201711102259.vAAMxNao015564@darkstar.fourwinds.com> Message-ID: On Friday, November 10, 2017, Jon Steinhart wrote: > Toby Thain writes: > > On 2017-11-10 3:43 PM, Jon Steinhart wrote: > > > Toby Thain writes: > > >> Just don't move on without some limit. There are real > > >> cognitive/typographic reasons why excessively long lines hurt > > >> comprehension. This is why both 500 year old books and 5 month old > books > > >> have narrow measures. > > >> > > >> 80 might be too narrow for most, but at some point beyond 132 is "too > > >> far". :) > > > > > > Well, I would claim that books have technological limitations that are > > > different than computer monitors. It's a matter of doing what's > appropriate > > > instead of taking a dogmatic approach. > > > > It's _reading_. Code doesn't magically escape typographic factors. The > > human visual/processing system is the constraint, it does not care > > whether you're reading paper or the more hostile LCD - and it has not > > changed materially in the millennia we've been doing writing (and > > certainly not the 500 years we've been doing books). There is also a > > body of modern research on this. Even research specifically focused on > > code, I believe. > > I'm not unfamiliar with the studies. Most are focus on speed of reading > which is not necessarily the most important thing in code. Some studies > have found that things that are easier to read are read less accurately > which might be OK when reading a novel but is not necessarily optimal for > code. > > Me, I try not to be dogmatic or to read what I want into studies. Well > written long lines trump cryptic short lines for me. Your mileage may > vary. > > I don't think it is about being dogmatic. Please believe there are still some people who just _prefer_ 80 columns. It could be because they were introduced to computing when this was a standard and they still treat it as a standard for text based computing, or they just find the aesthetics of this format much more pleasant to their eyes. For me there is something truly magical in the way 80 columns text look on a dark CRT display -- I also love the glow of green or amber phosphor and scanlines as visible clearly on vt220 for example. So even though I am also using xterms these days, my perfect UNIX computing platform is still definitely a full screen text console 80x24 using CRT terminal. HD widescreen LCD displays are nice...but for modern graphics and video at high resolutions. Try to display perfectly old Amiga or C64 graphics/games on a modern widescreen and you will know what I am talking about. You need an old CRT for that, in 4:3 format. The same is for displaying text -- I don't believe you need the next gen monitor to display UNIX text based console (technology essentially from the 70s). It actually looks worse on modern displays, which are optimized for HD _graphics_ and high native resolutions. If you think about it -- computing platforms and the Internet were text only in the 70s, 80s and a good part of the 90s, but since the rise of Windows 95 and the World Wide Web, the world has abandoned text and moved fully into the graphical world. But we also lost something -- full screen text mode will always remain beautiful from an aesthetics perspective and it is still the best stimulant of the imagination, just like books. Todays generations do not even know how to stay focused on reading text -- all they do is swipe their fingers on next colorful images on Instagram or Facebook... --Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Sun Nov 12 01:04:26 2017 From: will.senn at gmail.com (Will Senn) Date: Sat, 11 Nov 2017 09:04:26 -0600 Subject: [TUHS] Version 8 will never come out! Message-ID: Reading in the AUUGN vol 1 number 4, p. 15 in letter dated April 5, 1979, from Alistair Kilgour, Glasgow writing to Ian Johnstone, New South Wales about a Unix meeting in the U.K. at University of Kent at Caterbury (150 attended the meeting) with Ken Thompson and Brian Kernighan... Two paragraphs that I found interesting and fun:     Most U.K. users were astonished to hear that one thing which has _not_ changed in Version 7 is the default for "delete character" and "delete line" in the teletype handler - we thought we'd seen the last of # and @! What was very clear was that version 7 is a "snapshot" of a still developing system, and indeed neither speaker seemed quite sure of when the snapshot was taken or exactly what it contained. The general feeling among users at the meeting was that the new tools provided with version 7 were too good to resist (though many had doubts about the new Shell). We were however relieved by the assurance that there would _never_ be a version 8! ...     Finally a quotation, attributed to Steve Johnstone, with which Brian Kernighan introduced his excellent sales campaign for Unix on the first day of the conference: " Using TSO is like kicking a dead whale along the beach". Unix rules. ... I knew it, it's not just me - those pesky # and @ characters were and still are really annoying! Oh, and never say never. Unix does rule :). Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From itz at very.loosely.org Sun Nov 12 02:40:21 2017 From: itz at very.loosely.org (Ian Zimmerman) Date: Sat, 11 Nov 2017 08:40:21 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> Message-ID: <20171111164021.73q4mmgq2i3xozed@matica.foolinux.mooo.com> On 2017-11-10 13:02, Jon Steinhart wrote: > As an example, I abhor styles that say that continuations of long > lines should be indented either an extra tab or right-aligned with the > first line. Wait, so _how_ do you like continuations to be indented? -- Please don't Cc: me privately on mailing lists and Usenet, if you also post the followup to the list or newsgroup. To reply privately _only_ on Usenet, fetch the TXT record for the domain. From cym224 at gmail.com Sun Nov 12 02:46:38 2017 From: cym224 at gmail.com (Nemo) Date: Sat, 11 Nov 2017 11:46:38 -0500 Subject: [TUHS] finding help in v7 in 1980 In-Reply-To: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> References: <0d7c61c7-7f5a-1854-64c3-737f4de1233c@gmail.com> Message-ID: On 10/11/2017, Will Senn wrote (in part): > What resources did you consult in your early days and what > did the workflow look like in practical terms. I came late to UNIX. I was not in the proper fiefdom at my university. We used VMS and Minix on PCs (I actually received a samizdat copy from someone in med-sci). Enlightment came when the dep't bought a bunch of Sun kit. By then the two-volume PH series (with building blocks on the cover, I recall -- most apt) and I read them cover to cover. Workflow backend changed but upfront design et cetera did not. N. From lm at mcvoy.com Sun Nov 12 02:47:07 2017 From: lm at mcvoy.com (Larry McVoy) Date: Sat, 11 Nov 2017 08:47:07 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <20171111164021.73q4mmgq2i3xozed@matica.foolinux.mooo.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> <20171111164021.73q4mmgq2i3xozed@matica.foolinux.mooo.com> Message-ID: <20171111164707.GM29606@mcvoy.com> On Sat, Nov 11, 2017 at 08:40:21AM -0800, Ian Zimmerman wrote: > On 2017-11-10 13:02, Jon Steinhart wrote: > > > As an example, I abhor styles that say that continuations of long > > lines should be indented either an extra tab or right-aligned with the > > first line. > > Wait, so _how_ do you like continuations to be indented? I do it like so if ((super_long_name_that_some_idiot_thought_was_smart > 1) && (super_long_name_that_some_idiot_thought_was_smarter > 2)) { something stupid here; } In my vi tab is a tab but shiftwidth is 4, and I map ^A to ^T (I think that came from the editor on CPM), and I set autoindent. So after the first line I hit return ^A (super.... return tab something... return ^D ^D } just to add to the arcaneness of this endless thread :) From itz at very.loosely.org Sun Nov 12 03:04:56 2017 From: itz at very.loosely.org (Ian Zimmerman) Date: Sat, 11 Nov 2017 09:04:56 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <1510334474.27585.for-standards-violators@oclsc.org> References: <1510334474.27585.for-standards-violators@oclsc.org> Message-ID: <20171111170456.uq6tb63rtq6hkuc6@matica.foolinux.mooo.com> On 2017-11-10 13:21, Norman Wilson wrote: > -- It is unreasonably messy to give someone else a copy of a program > composed of many internal modules. Apparently you are expected to > give her a handful of files, to be installed in some directory whose > name must be added to the search path in every Python source file that > imports them. I have come up with my own hacky workaround but it > would be nice if the language provided a graceful way to, e.g., > catenate multiple modules into a single source file for distribution. Aren't to supposed to make an "egg", or something? Even before those, you could make a package, "sdist" it, and have the recipients run "python setup.py install". Still simpler process than installing many C libraries from source ... > -- I miss one particular case of assigment having a value: > that of > while ((val = function()) != STOP) > do something with val I was once in a remote job interview with a Ruby shop. I don't know Ruby, but they said I could use Python. Of course this situation came up (it's pretty common when you think about it) and on this occasion a whim made me write it thus: while True: val = function() if val == STOP: break do_something() Their reply was overflowing with shock and horror that I would use "while True", and that was the end of that opportunity for me. Apparently Ruby has a construct to handle this cleanly, without having to call function() from two sites. > Toronto ON > (Sitting on the lower level of a train in Texas, not on a pedestal) What's a Torontonian doing in Texas? Are you researching the sequel to "Tideland" ? :-) -- Please don't Cc: me privately on mailing lists and Usenet, if you also post the followup to the list or newsgroup. To reply privately _only_ on Usenet, fetch the TXT record for the domain. From jon at fourwinds.com Sun Nov 12 03:19:51 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Sat, 11 Nov 2017 09:19:51 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <201711102259.vAAMxNao015564@darkstar.fourwinds.com> Message-ID: <201711111719.vABHJpbQ006962@darkstar.fourwinds.com> Andy Kosela writes: > > I don't think it is about being dogmatic. Please believe there are still > some people who just _prefer_ 80 columns. It could be because they were > introduced to computing when this was a standard and they still treat it as > a standard for text based computing, or they just find the aesthetics of > this format much more pleasant to their eyes. > > For me there is something truly magical in the way 80 columns text look on > a dark CRT display -- I also love the glow of green or amber phosphor and > scanlines as visible clearly on vt220 for example. So even though I am > also using xterms these days, my perfect UNIX computing platform is > still definitely a full screen text console 80x24 using CRT terminal. > > HD widescreen LCD displays are nice...but for modern graphics and video at > high resolutions. Try to display perfectly old Amiga or > C64 graphics/games on a modern widescreen and you will know what I am > talking about. You need an old CRT for that, in 4:3 format. > > The same is for displaying text -- I don't believe you need the next gen > monitor to display UNIX text based console (technology essentially from the > 70s). It actually looks worse on modern displays, which are optimized for > HD _graphics_ and high native resolutions. > > If you think about it -- computing platforms and the Internet were text > only in the 70s, 80s and a good part of the 90s, but since the rise of > Windows 95 and the World Wide Web, the world has abandoned text and moved > fully into the graphical world. But we also lost something -- full screen > text mode will always remain beautiful from an aesthetics perspective and > it is still the best stimulant of the imagination, just like books. > > Todays generations do not even know how to stay focused on reading text -- > all they do is swipe their fingers on next colorful images on Instagram or > Facebook... > > --Andy Well, I think that you slightly misinterpreted my point. I learned a great thing from a manager in the mid-1980s. He told our group that it was perfectly OK to say "I want to do it this way because I like it." And, if there was no countervailing technical reason and if nobody else had a competing way that they liked it then you'd get your way. But, we'd never get our way or a raise for that matter if he had to wade through a pile of pseudo-technical hand-waving arguments that really were just about how you liked it. My objection was people saying that there were technical reasons for 80 columns when they were really saying that that was what they liked. So me, yes, I pine for the Glance G displays that I worked on at BTL. I have a certain Pavlovian response to green flashes from my days working on Tektronix storage tubes. But really, my 32" UHD monitor is the best looking thing that I've ever had. Obviously something that puts out 640x480 pixels is going to look bad without scaling, but that's OK. I don't play old video games on my modern computer. I have a pair of side-by-side 132x87 windows in an easy to see font that I use for most work with room for a bunch of small windows on the side. The majority use of my display is for typing code. I don't use graphical tools unless forced to by a client, especially in the springtime. I got a good classics education and the admonition "Beware the IDEs of March" has stuck with me :-) When I need to mess with graphics the display is awesome. Was editing some audio yesterday and being able to use audacity at full screen width made up for some of it's UI problems. So if you _prefer_ 80 columns, go for it. Just don't tell me that there are technical reasons why I should abide by your preference. Jon From jon at fourwinds.com Sun Nov 12 03:23:51 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Sat, 11 Nov 2017 09:23:51 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <20171111164707.GM29606@mcvoy.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> <20171111164021.73q4mmgq2i3xozed@matica.foolinux.mooo.com> <20171111164707.GM29606@mcvoy.com> Message-ID: <201711111723.vABHNp8K007781@darkstar.fourwinds.com> Larry McVoy writes: > > Wait, so _how_ do you like continuations to be indented? > > I do it like so > > if ((super_long_name_that_some_idiot_thought_was_smart > 1) && > (super_long_name_that_some_idiot_thought_was_smarter > 2)) { > something stupid here; > } To me, and to be clear that this is a personal preference as opposed to something factual, I would do the above as: if ((super_long_name_that_some_idiot_thought_was_smart > 1) && (super_long_name_that_some_idiot_thought_was_smarter > 2)) { something really smart here; } The one space indent shows that it's a continuation, but doesn't fool my eye into thinking that it's a block like Larry's example. There are many times that I am scrolling through code very quickly looking for block structure, and I'm optimizing for that in my eyes. There's also another personal preference above, which is that I prefer if this AND that to if this AND that Jon From lm at mcvoy.com Sun Nov 12 03:24:07 2017 From: lm at mcvoy.com (Larry McVoy) Date: Sat, 11 Nov 2017 09:24:07 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <201711111719.vABHJpbQ006962@darkstar.fourwinds.com> References: <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <201711102259.vAAMxNao015564@darkstar.fourwinds.com> <201711111719.vABHJpbQ006962@darkstar.fourwinds.com> Message-ID: <20171111172407.GS29606@mcvoy.com> > So if you _prefer_ 80 columns, go for it. Just don't tell me that there are > technical reasons why I should abide by your preference. Feel free to keep ignoring the valid technical reason I have stated over and over. And other people have stated the same thing as well. With that, I'm out, this thread is going to /dev/null. Thank you procmail. From jon at fourwinds.com Sun Nov 12 03:25:38 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Sat, 11 Nov 2017 09:25:38 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <20171111172407.GS29606@mcvoy.com> References: <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <201711102259.vAAMxNao015564@darkstar.fourwinds.com> <201711111719.vABHJpbQ006962@darkstar.fourwinds.com> <20171111172407.GS29606@mcvoy.com> Message-ID: <201711111725.vABHPcRa008274@darkstar.fourwinds.com> Larry McVoy writes: > > So if you _prefer_ 80 columns, go for it. Just don't tell me that there are > > technical reasons why I should abide by your preference. > > Feel free to keep ignoring the valid technical reason I have stated over > and over. And other people have stated the same thing as well. > > With that, I'm out, this thread is going to /dev/null. Thank you procmail. They're not valid to me. As I read the studies, you're choosing speed over comprehension, I'm choosing the opposite. Jon From random832 at fastmail.com Sun Nov 12 03:30:20 2017 From: random832 at fastmail.com (Random832) Date: Sat, 11 Nov 2017 12:30:20 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <20171111170456.uq6tb63rtq6hkuc6@matica.foolinux.mooo.com> References: <1510334474.27585.for-standards-violators@oclsc.org> <20171111170456.uq6tb63rtq6hkuc6@matica.foolinux.mooo.com> Message-ID: <1510421420.1505476.1169232000.0EB6B20D@webmail.messagingengine.com> On Sat, Nov 11, 2017, at 12:04, Ian Zimmerman wrote: > On 2017-11-10 13:21, Norman Wilson wrote: > > -- I miss one particular case of assigment having a value: > > that of > > while ((val = function()) != STOP) > > do something with val > > I was once in a remote job interview with a Ruby shop. I don't know > Ruby, but they said I could use Python. Of course this situation came > up (it's pretty common when you think about it) and on this occasion a > whim made me write it thus: > > while True: > val = function() > if val == STOP: > break > do_something() > > Their reply was overflowing with shock and horror that I would use > "while True", and that was the end of that opportunity for me. > Apparently Ruby has a construct to handle this cleanly, without having > to call function() from two sites. Python has one as well, though it's a bit obscure - ISTR around half of the people who commented on a thread on the python mailing lists where this came up weren't familiar with it. for val in iter(function, STOP): do_something() If the function needs arguments, you have to use a lambda. If the condition is something other than equality to some value... well, you can hack something together, but it's debatably cleaner than the while True loop. (If the function is readline, though, you can just iterate over the file object) From ralph at inputplus.co.uk Sun Nov 12 03:38:03 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Sat, 11 Nov 2017 17:38:03 +0000 Subject: [TUHS] 80 columns ... In-Reply-To: <201711111723.vABHNp8K007781@darkstar.fourwinds.com> References: <7wpo8rud7y.fsf@junk.nocrew.org> <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <20171110205806.GB29606@mcvoy.com> <201711102102.vAAL2tM6024205@darkstar.fourwinds.com> <20171111164021.73q4mmgq2i3xozed@matica.foolinux.mooo.com> <20171111164707.GM29606@mcvoy.com> <201711111723.vABHNp8K007781@darkstar.fourwinds.com> Message-ID: <20171111173803.6A3AE1FF94@orac.inputplus.co.uk> These posts are nothing to do with Unix heritage and haven't been for a while. I've resisted the urge over and over to point out why most of you are wrong in various ways. :-) If I can resist, so can you. Lets have more signal, less noise. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From itz at very.loosely.org Sun Nov 12 04:05:48 2017 From: itz at very.loosely.org (Ian Zimmerman) Date: Sat, 11 Nov 2017 10:05:48 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <1510421420.1505476.1169232000.0EB6B20D@webmail.messagingengine.com> References: <1510334474.27585.for-standards-violators@oclsc.org> <20171111170456.uq6tb63rtq6hkuc6@matica.foolinux.mooo.com> <1510421420.1505476.1169232000.0EB6B20D@webmail.messagingengine.com> Message-ID: <20171111180548.mef7ltlla5djkzmx@matica.foolinux.mooo.com> On 2017-11-11 12:30, Random832 wrote: > for val in iter(function, STOP): > do_something() A neat trick, thanks. > (If the function is readline, though, you can just iterate over the > file object) This doesn't work if the file object can be a tty (such as stdin), IIRC due to stdio buffering effects. -- Please don't Cc: me privately on mailing lists and Usenet, if you also post the followup to the list or newsgroup. To reply privately _only_ on Usenet, fetch the TXT record for the domain. From will.senn at gmail.com Sun Nov 12 06:11:20 2017 From: will.senn at gmail.com (Will Senn) Date: Sat, 11 Nov 2017 14:11:20 -0600 Subject: [TUHS] Dennis's V6 root tape Message-ID: Does anyone know if the image http://www.tuhs.org/Archive/Distributions/Research/Dennis_v6/v6root.gz is somehow bootable as-is? I wasn't able to figure out how to get it to boot, so I went on a quest to make it bootable. Here's what I did - let me know if this was overkill or misguided. Basically, I downloaded the known bootable v6 distribution tape from Wellsch directory in TUHS. I then extracted 101 blocks from the image (tmrk, a bootblock, and who knows what else, but seriously what else is on those first 100 blocks?), converted it to a simh compatible tape format, and booted a simh generic pdp11/40 with my new little boot tape and Dennis's root disk attached. I used tmrk to copy the bootstrap from my little tape to Dennis's root disk (am I clobbering anything important?). Then voila - it was bootable :)! I could have done it straight off Ken's tape (after converting it to a simh tape format), but I wanted to keep the little tape image around for use in other contexts. Details for the curious are here: https://decuser.github.io/bootable-tape-v6.txt I thought the Ken Wellsch tape was basically the same as the Dennis Ritchie disks, but now I'm not so sure - on Ken's tape, it boots to: @rkunix mem = 1035 RESTRICTED RIGHTS Use, duplication or disclosure is subject to restrictions stated in Contract with Western Electric Company, Inc. # on Dennis' it boots to: @rkunix mem = 1036 # Makes me curious to see what else is different. Maybe Dennis's was prior to preparing an official distro where the rights were added to the kernel? Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From jnc at mercury.lcs.mit.edu Sun Nov 12 07:07:36 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Sat, 11 Nov 2017 16:07:36 -0500 (EST) Subject: [TUHS] Dennis's V6 root tape Message-ID: <20171111210736.522FE18C08A@mercury.lcs.mit.edu> > From: Will Senn > I then extracted 101 blocks from the image (tmrk, a bootblock, and who > knows what else, but seriously what else is on those first 100 blocks?) http://gunkies.org/wiki/Installing_UNIX_Sixth_Edition#Installation_tape_contents > I thought the Ken Wellsch tape was basically the same as the Dennis > Ritchie disks, but now I'm not so sure http://www.chiappa.net/~jnc/tech/V6Unix.html#Initial > Makes me curious to see what else is different. Nothing. Noel From wkt at tuhs.org Sun Nov 12 07:23:22 2017 From: wkt at tuhs.org (Warren Toomey) Date: Sun, 12 Nov 2017 07:23:22 +1000 Subject: [TUHS] OK, no more 80 cols please Message-ID: <20171111212322.GA20429@minnie.tuhs.org> It's time to assert my editorial control and say: no more 80 cols please! Anybody who mentions 80 cols will be forced to use either a Hazeltine or an ADM3 (not 3a) for a month. Thanks, Warren From will.senn at gmail.com Sun Nov 12 07:24:45 2017 From: will.senn at gmail.com (Will Senn) Date: Sat, 11 Nov 2017 15:24:45 -0600 Subject: [TUHS] Dennis's V6 root tape In-Reply-To: <20171111210736.522FE18C08A@mercury.lcs.mit.edu> References: <20171111210736.522FE18C08A@mercury.lcs.mit.edu> Message-ID: On 11/11/17 3:07 PM, Noel Chiappa wrote: > > From: Will Senn > > > I then extracted 101 blocks from the image (tmrk, a bootblock, and who > > knows what else, but seriously what else is on those first 100 blocks?) > > http://gunkies.org/wiki/Installing_UNIX_Sixth_Edition#Installation_tape_contents > > > I thought the Ken Wellsch tape was basically the same as the Dennis > > Ritchie disks, but now I'm not so sure > > http://www.chiappa.net/~jnc/tech/V6Unix.html#Initial > > > Makes me curious to see what else is different. > > Nothing. > > Noel Thanks Noel. I remember reading this way, way back, before I even knew what an RK05 was! I do love reinventing the wheel every couple of years. Still, I'm learning interesting stuff this go-round and I'm glad it wasn't my own notes :). Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From lm at mcvoy.com Sun Nov 12 07:27:49 2017 From: lm at mcvoy.com (Larry McVoy) Date: Sat, 11 Nov 2017 13:27:49 -0800 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: <20171111212322.GA20429@minnie.tuhs.org> References: <20171111212322.GA20429@minnie.tuhs.org> Message-ID: <20171111212749.GW29606@mcvoy.com> Can I start a thread on 96 columns vs 104 colums? What about non tabbed aligned? People have needs! Just kidding, I'm with ya, thanks Warren! On Sun, Nov 12, 2017 at 07:23:22AM +1000, Warren Toomey wrote: > It's time to assert my editorial control and say: no more 80 cols please! > > Anybody who mentions 80 cols will be forced to use either a Hazeltine or > an ADM3 (not 3a) for a month. > > Thanks, Warren From norman at oclsc.org Sun Nov 12 10:08:38 2017 From: norman at oclsc.org (Norman Wilson) Date: Sat, 11 Nov 2017 20:08:38 -0400 Subject: [TUHS] OK, no more 80 cols please Message-ID: <1510445323.20363.for-standards-violators@oclsc.org> Jim "wkt" Moriarty: > Anybody who mentions 80 cols will be forced to use either a Hazeltine or > an ADM3 (not 3a) for a month. ===== So who has a modern emulator for either of those terminals? Norman Wilson Toronto ON (Still not really in Toronto, but no longer in Texas) From henry.r.bent at gmail.com Sun Nov 12 10:21:55 2017 From: henry.r.bent at gmail.com (Henry Bent) Date: Sat, 11 Nov 2017 19:21:55 -0500 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: <1510445323.20363.for-standards-violators@oclsc.org> References: <1510445323.20363.for-standards-violators@oclsc.org> Message-ID: On 11 November 2017 at 19:08, Norman Wilson wrote: > Jim "wkt" Moriarty: > > > Anybody who mentions 80 cols will be forced to use either a Hazeltine or > > an ADM3 (not 3a) for a month. > > ===== > > So who has a modern emulator for either of those terminals? > MAME appears to have a Hazeltine 1500 emulator. I have not tested it. -Henry -------------- next part -------------- An HTML attachment was scrubbed... URL: From wkt at tuhs.org Sun Nov 12 11:01:27 2017 From: wkt at tuhs.org (Warren Toomey) Date: Sun, 12 Nov 2017 11:01:27 +1000 Subject: [TUHS] OT: Simple CPU Message-ID: <20171112010127.GA6155@minnie.tuhs.org> Ok, so I'm going to break my own rules. If you know anybody who teaches logic design and might like to see a simple CPU built from a dozen 7400-style chips, maybe you could pass these link on to them: http://minnie.tuhs.org/Programs/CrazySmallCPU/ https://www.youtube.com/playlist?list=PL9YEAcq-5hHIJnflTcLA45sVxr900ziEy https://raw.githubusercontent.com/DoctorWkt/CSCv2/master/Figs/cscv2_breadboard_photo.jpg I'm pretty proud of this, and I'm sure it has some good educational value. Anyway, please don't respond here, but feel free to private e-mail back. Thanks, Warren From ggm at algebras.org Sun Nov 12 12:51:52 2017 From: ggm at algebras.org (George Michaelson) Date: Sun, 12 Nov 2017 10:51:52 +0800 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: <20171111212322.GA20429@minnie.tuhs.org> References: <20171111212322.GA20429@minnie.tuhs.org> Message-ID: My ADM has unebelievably noisy flyback whine. I can't stand it. I turn it on, to remind myself why I turned it off. my ASR33 got dropped in the last office move. its silent, perforce, for the forseeable, probably ever. its also 22ma currentloop which was always going to be hard to patch into things. (I think it has a 232 option too, didn't look) On Sun, Nov 12, 2017 at 5:23 AM, Warren Toomey wrote: > It's time to assert my editorial control and say: no more 80 cols please! > > Anybody who mentions 80 cols will be forced to use either a Hazeltine or > an ADM3 (not 3a) for a month. > > Thanks, Warren From dave at horsfall.org Sun Nov 12 13:00:21 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sun, 12 Nov 2017 14:00:21 +1100 (EST) Subject: [TUHS] OK, no more 80 cols please In-Reply-To: References: <20171111212322.GA20429@minnie.tuhs.org> Message-ID: On Sun, 12 Nov 2017, George Michaelson wrote: > my ASR33 got dropped in the last office move. its silent, perforce, for > the forseeable, probably ever. its also 22ma currentloop which was > always going to be hard to patch into things. (I think it has a 232 > option too, didn't look) There's a lot of RTTY enthusiasts who'll gladly take it (and may even repair it); the trouble is shipping the beast, so it'll have to be pick-up only... http://mailman.qth.net/mailman/listinfo/greenkeys -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From ggm at algebras.org Sun Nov 12 13:02:36 2017 From: ggm at algebras.org (George Michaelson) Date: Sun, 12 Nov 2017 11:02:36 +0800 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: References: <20171111212322.GA20429@minnie.tuhs.org> Message-ID: thanks David. I won't throw it, or that pointer away wontonly. All beasts deserve a good home in the end. On Sun, Nov 12, 2017 at 11:00 AM, Dave Horsfall wrote: > On Sun, 12 Nov 2017, George Michaelson wrote: > >> my ASR33 got dropped in the last office move. its silent, perforce, for >> the forseeable, probably ever. its also 22ma currentloop which was always >> going to be hard to patch into things. (I think it has a 232 option too, >> didn't look) > > > There's a lot of RTTY enthusiasts who'll gladly take it (and may even repair > it); the trouble is shipping the beast, so it'll have to be pick-up only... > > http://mailman.qth.net/mailman/listinfo/greenkeys > > -- > Dave Horsfall DTM (VK2KFU) "Those who don't understand security will > suffer." From usotsuki at buric.co Sun Nov 12 13:21:45 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Sat, 11 Nov 2017 22:21:45 -0500 (EST) Subject: [TUHS] OK, no more 80 cols please In-Reply-To: References: <20171111212322.GA20429@minnie.tuhs.org> Message-ID: I would kill for a semi-modern terminal in an ADM3a/5 type chassis. Something about the late 70s pastel googie BakeLite look I just dig. -uso. From rminnich at gmail.com Sun Nov 12 13:41:18 2017 From: rminnich at gmail.com (ron minnich) Date: Sun, 12 Nov 2017 03:41:18 +0000 Subject: [TUHS] Ken visits Cray Research Inc and finds old bug Message-ID: There's a story I heard once in supercomputing circles from the 80s, that Ken visited CRI in Minneapolis, sat down at the console of a machine running the then-new port of Unix to one of the Crays, typed a command, and said something like "ah, that bug is still there." Anybody know what the bug was? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Sun Nov 12 14:00:24 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sun, 12 Nov 2017 15:00:24 +1100 (EST) Subject: [TUHS] OK, no more 80 cols please In-Reply-To: References: <20171111212322.GA20429@minnie.tuhs.org> Message-ID: On Sat, 11 Nov 2017, Steve Nickolas wrote: > I would kill for a semi-modern terminal in an ADM3a/5 type chassis. > Something about the late 70s pastel googie BakeLite look I just dig. Seeing as we're talking about old Unix-y terminals, the ADM-3a was certainly one of my favourites; there was something about the keyboard layout that just screamed out "Unix". Was it the unshifted "=" key? The unshifted "[]" keys? Can't remember now, but C programming was a breeze with it. Another favourite was the Teleray 1061, with user-programmable function keys; yes, we were dumb enough to store our username/password there... The *worst* terminal I've ever had to use was the VT-220 and its clones; I was always having to hunt'n'peck for common keys. I still loathe it. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From ggm at algebras.org Sun Nov 12 14:04:52 2017 From: ggm at algebras.org (George Michaelson) Date: Sun, 12 Nov 2017 12:04:52 +0800 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: References: <20171111212322.GA20429@minnie.tuhs.org> Message-ID: On Sun, Nov 12, 2017 at 12:00 PM, Dave Horsfall wrote: > The *worst* terminal I've ever had to use was the VT-220 and its clones; I > was always having to hunt'n'peck for common keys. I still loathe it. EDT/EVE/TPU users on VMS love 'em. I had the rubber overlays for the numeric and gold keypad set to give it labels. (never used it but we handed 'em out) I suspect, we're all apes, captive to the first trick we learn. Ahhh Bliss (thats a VMS joke.. and btw, I am not a VMS lover, even if not a VMS hater) From akosela at andykosela.com Sun Nov 12 19:18:41 2017 From: akosela at andykosela.com (Andy Kosela) Date: Sun, 12 Nov 2017 10:18:41 +0100 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: References: <20171111212322.GA20429@minnie.tuhs.org> Message-ID: On Sunday, November 12, 2017, Dave Horsfall wrote: > On Sat, 11 Nov 2017, Steve Nickolas wrote: > > I would kill for a semi-modern terminal in an ADM3a/5 type chassis. >> Something about the late 70s pastel googie BakeLite look I just dig. >> > > Seeing as we're talking about old Unix-y terminals, the ADM-3a was > certainly one of my favourites; there was something about the keyboard > layout that just screamed out "Unix". Was it the unshifted "=" key? The > unshifted "[]" keys? Can't remember now, but C programming was a breeze > with it. > > Another favourite was the Teleray 1061, with user-programmable function > keys; yes, we were dumb enough to store our username/password there... > > The *worst* terminal I've ever had to use was the VT-220 and its clones; I > was always having to hunt'n'peck for common keys. I still loathe it. > > Because you need LK421 UNIX keyboard[1] for those. Pretty rare these days, but I have several of them in NOS quality stashed, just in case one of them breaks. My personal favorite is definitely VT220 -- very "modern" shape, small and portable even for todays standards (12" tube), and the built-in font is just perfect. Did I mention beautiful scanlines? You won't find them on PC CRT monitors. --Andy [1] https://en.m.wikipedia.org/wiki/LK421 -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralph at inputplus.co.uk Sun Nov 12 20:58:10 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Sun, 12 Nov 2017 10:58:10 +0000 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: References: <20171111212322.GA20429@minnie.tuhs.org> Message-ID: <20171112105810.DDF451F952@orac.inputplus.co.uk> Hi Dave, > the ADM-3a was certainly one of my favourites Mine too; my first. Spent longer with the ADM 11 though, after it, including an amber model, rather than the vulgar green. I ended up in France a few years later with some Silicon Graphics machines, but not enough of them for the planned Mongolian hoard. I suggested serial terminals, like the old days, a batch of redundant ones were sent over the Channel, and there was my old amber one, that I promptly reclaimed. > there was something about the keyboard layout that just screamed out > "Unix". Bill Joy used an ADM 3A when writing vi. That gave hjkl for cursor movement because they were the cursor keys on the 3A. And `~' shares with HOME so I guess he used it for writing csh too. :-) > The *worst* terminal I've ever had to use was the VT-220 and its > clones Yes, awful. The guy I faced over the desk had one and used VMS; they suited one another. Not the guy, the terminal and OS. It did mean he could provide access to nethack though. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From bakul at bitblocks.com Mon Nov 13 00:43:04 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Sun, 12 Nov 2017 06:43:04 -0800 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: <20171112105810.DDF451F952@orac.inputplus.co.uk> References: <20171111212322.GA20429@minnie.tuhs.org> <20171112105810.DDF451F952@orac.inputplus.co.uk> Message-ID: On Nov 12, 2017, at 2:58 AM, Ralph Corderoy wrote: > >> the ADM-3a was certainly one of my favourites > > Mine too; my first. I’ve used ADM-3a and various other terminals but my favorite was aaa-60, the Ann Arbor Ambassador that could display 80x60. For such a large display the Rand editor was a good fit as you could edit multiple files in multiple windows. IIRC, Bill Joy’s vi didn’t do multiple windows. From ralph at inputplus.co.uk Mon Nov 13 01:01:51 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Sun, 12 Nov 2017 15:01:51 +0000 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: References: <20171111212322.GA20429@minnie.tuhs.org> <20171112105810.DDF451F952@orac.inputplus.co.uk> Message-ID: <20171112150151.5A5241F952@orac.inputplus.co.uk> Hi Bakul, > IIRC, Bill Joy’s vi didn’t do multiple windows. His personal version did, but the changes, to curses too IIRC, were lost due to some fault and no backup. He didn't re-do them. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From lm at mcvoy.com Mon Nov 13 01:10:54 2017 From: lm at mcvoy.com (Larry McVoy) Date: Sun, 12 Nov 2017 07:10:54 -0800 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: <20171112150151.5A5241F952@orac.inputplus.co.uk> References: <20171111212322.GA20429@minnie.tuhs.org> <20171112105810.DDF451F952@orac.inputplus.co.uk> <20171112150151.5A5241F952@orac.inputplus.co.uk> Message-ID: <20171112151054.GB28071@mcvoy.com> Huh, that's news to me. The multiple window stuff is what moved me to vim, been happy there ever since. If we're talking editors, I still have a hacked version of xvi that I wacked to use mmap instead of read. I wacked the string library to treat \n as NULL (it honored both, it had to, too much would need to be changed if you didn't) and then wacked the code to just mmap the file instead of reading it into a pile of strings. I needed this because I was looking at long trace files from debugging the kernel and I really wanted to be able to vi them. On an 8MB Sun I could look at about a 7MB file and have it all fit in memory. The old way only could do half that. On Sun, Nov 12, 2017 at 03:01:51PM +0000, Ralph Corderoy wrote: > Hi Bakul, > > > IIRC, Bill Joy???s vi didn???t do multiple windows. > > His personal version did, but the changes, to curses too IIRC, were lost > due to some fault and no backup. He didn't re-do them. > > -- > Cheers, Ralph. > https://plus.google.com/+RalphCorderoy -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From bakul at bitblocks.com Mon Nov 13 01:24:43 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Sun, 12 Nov 2017 07:24:43 -0800 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: <20171112151054.GB28071@mcvoy.com> References: <20171111212322.GA20429@minnie.tuhs.org> <20171112105810.DDF451F952@orac.inputplus.co.uk> <20171112150151.5A5241F952@orac.inputplus.co.uk> <20171112151054.GB28071@mcvoy.com> Message-ID: <79A1DACC-1E35-4967-8439-52F19023E7B7@bitblocks.com> nvi does multiple horizontal windows too (I don’t use vim much to know if it can split windows vertically). The Rand editor allowed you to split any windows vertically or horizontally. [I didn’t “move” to vim as it did arbitrary undo/redo incompatibly with nvi. I had asked Moolenaar a long time ago if he would provide an option to enable the nvi undo/redo behavior but he wasn’t interested. As a touch-mistypist this is an important feature for me :-)] > On Nov 12, 2017, at 7:10 AM, Larry McVoy wrote: > > Huh, that's news to me. The multiple window stuff is what moved me to > vim, been happy there ever since. > > If we're talking editors, I still have a hacked version of xvi that I > wacked to use mmap instead of read. I wacked the string library to > treat \n as NULL (it honored both, it had to, too much would need to > be changed if you didn't) and then wacked the code to just mmap the > file instead of reading it into a pile of strings. > > I needed this because I was looking at long trace files from debugging > the kernel and I really wanted to be able to vi them. On an 8MB Sun > I could look at about a 7MB file and have it all fit in memory. The > old way only could do half that. > >> On Sun, Nov 12, 2017 at 03:01:51PM +0000, Ralph Corderoy wrote: >> Hi Bakul, >> >>> IIRC, Bill Joy???s vi didn???t do multiple windows. >> >> His personal version did, but the changes, to curses too IIRC, were lost >> due to some fault and no backup. He didn't re-do them. >> >> -- >> Cheers, Ralph. >> https://plus.google.com/+RalphCorderoy > > -- > --- > Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From ralph at inputplus.co.uk Mon Nov 13 03:35:25 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Sun, 12 Nov 2017 17:35:25 +0000 Subject: [TUHS] OK, no more 80 cols please In-Reply-To: <79A1DACC-1E35-4967-8439-52F19023E7B7@bitblocks.com> References: <20171111212322.GA20429@minnie.tuhs.org> <20171112105810.DDF451F952@orac.inputplus.co.uk> <20171112150151.5A5241F952@orac.inputplus.co.uk> <20171112151054.GB28071@mcvoy.com> <79A1DACC-1E35-4967-8439-52F19023E7B7@bitblocks.com> Message-ID: <20171112173525.CEAE21F952@orac.inputplus.co.uk> Hi, Bakul wrote: > (I don’t use vim much to know if it can split windows vertically). Yes, horizontally or vertically. Start vim, type `^Ws^Wv' where ^ is Ctrl, and you'll have three windows. > I didn’t “move” to vim as it did arbitrary undo/redo incompatibly with > nvi. That's still the case. And it branches the undo history now, e.g. you undo a few times, then make a new edit, and you old undone edits are still available, but on another branch; the original one. Occasionally useful when you accidentally make an edit that would otherwise wipe the redo. Larry wrote: > > Huh, that's news to me. What actually happened was that I was in the process of adding multiwindows to vi when we installed our VAX, which would have been in December of '78. We didn't have any backups and the tape drive broke. I continued to work even without being able to do backups. And then the source code got scrunched and I didn't have a complete listing. I had almost rewritten all of the display code for windows, and that was when I gave up. After that, I went back to the previous version and just documented the code, finished the manual and closed it off. If that scrunch had not happened, vi would have multiple windows, and I might have put in some programmability—but I don't know — https://en.wikipedia.org/wiki/Vi#Distribution -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From dave at horsfall.org Mon Nov 13 07:36:16 2017 From: dave at horsfall.org (Dave Horsfall) Date: Mon, 13 Nov 2017 08:36:16 +1100 (EST) Subject: [TUHS] OK, no more 80 cols please In-Reply-To: <20171112173525.CEAE21F952@orac.inputplus.co.uk> References: <20171111212322.GA20429@minnie.tuhs.org> <20171112105810.DDF451F952@orac.inputplus.co.uk> <20171112150151.5A5241F952@orac.inputplus.co.uk> <20171112151054.GB28071@mcvoy.com> <79A1DACC-1E35-4967-8439-52F19023E7B7@bitblocks.com> <20171112173525.CEAE21F952@orac.inputplus.co.uk> Message-ID: On Sun, 12 Nov 2017, Ralph Corderoy wrote: >> (I don’t use vim much to know if it can split windows vertically). > > Yes, horizontally or vertically. Start vim, type `^Ws^Wv' where ^ is > Ctrl, and you'll have three windows. I often wondered how I got into it accidentally... Thanks. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From dave at horsfall.org Mon Nov 13 08:57:46 2017 From: dave at horsfall.org (Dave Horsfall) Date: Mon, 13 Nov 2017 09:57:46 +1100 (EST) Subject: [TUHS] Ken visits Cray Research Inc and finds old bug In-Reply-To: References: Message-ID: On Sun, 12 Nov 2017, ron minnich wrote: > There's a story I heard once in supercomputing circles from the 80s, > that Ken visited CRI in Minneapolis, sat down at the console of a > machine running the then-new port of Unix to one of the Crays, typed a > command, and said something like "ah, that bug is still there." Anybody > know what the bug was? I remember the story too; I think it was one of the text tools (grep, sed, I dunno), but yeah, a reference would be nice (at least for the archives). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From ken at google.com Mon Nov 13 15:10:43 2017 From: ken at google.com (Ken Thompson) Date: Sun, 12 Nov 2017 21:10:43 -0800 Subject: [TUHS] Ken visits Cray Research Inc and finds old bug In-Reply-To: References: Message-ID: this is bogus. there are 2 real stories that might be early cousins to this: 1. i visited eta (they were trying to make a supercomputer - eta10 - that was supposed to escape all the problems of software by porting unix. i tested it and found a dozen bugs. 2. dmr and i visited nsa for some unrelated business (see dmr, reed, morris paper on the enigma). mumahgh was bragging about the super secure unix that ran on a lot og their machines. he invited us to play and gave us a console. dennis distracted him and i went to the console and quickly became su. i never told him how it was done, and now i dont really remember. On Sun, Nov 12, 2017 at 2:57 PM, Dave Horsfall wrote: > On Sun, 12 Nov 2017, ron minnich wrote: > >> There's a story I heard once in supercomputing circles from the 80s, that >> Ken visited CRI in Minneapolis, sat down at the console of a machine running >> the then-new port of Unix to one of the Crays, typed a command, and said >> something like "ah, that bug is still there." Anybody know what the bug was? > > > I remember the story too; I think it was one of the text tools (grep, sed, I > dunno), but yeah, a reference would be nice (at least for the archives). > > -- > Dave Horsfall DTM (VK2KFU) "Those who don't understand security will > suffer." From lm at mcvoy.com Tue Nov 14 00:14:29 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 13 Nov 2017 06:14:29 -0800 Subject: [TUHS] Ken visits Cray Research Inc and finds old bug In-Reply-To: References: Message-ID: <20171113141429.GB13023@mcvoy.com> On Sun, Nov 12, 2017 at 09:10:43PM -0800, Ken Thompson via TUHS wrote: > 1. i visited eta (they were trying to make > a supercomputer - eta10 - that was supposed to > escape all the problems of software by porting > unix. i tested it and found a dozen bugs. Well that sucks, it would have been good to meet you. I was there, unless it was fairly late in the cycle and it was when I was in Japan at TIT. Do you remember when this was? If anyone cares, this is a pic of the people that did the Unix port (and SO's, it was some party). http://www.mcvoy.com/lm/photos/ancient/26.html From don at DonHopkins.com Tue Nov 14 01:13:57 2017 From: don at DonHopkins.com (Don Hopkins) Date: Mon, 13 Nov 2017 16:13:57 +0100 Subject: [TUHS] Ken visits Cray Research Inc and finds old bug In-Reply-To: <20171113141429.GB13023@mcvoy.com> References: <20171113141429.GB13023@mcvoy.com> Message-ID: I knew a guy who worked at one of the national labs that had its own Cray supercomputer, in a computer room with a big observation window that visitors could admire it through. Just before a tour group came by, he hid inside the Cray, and waited for them to arrive. Then he casually strolled out from the Cray, pulling up the zipper of his jeans, with a relieved expression on his face. -Don > On 13 Nov 2017, at 15:14, Larry McVoy wrote: > > On Sun, Nov 12, 2017 at 09:10:43PM -0800, Ken Thompson via TUHS wrote: >> 1. i visited eta (they were trying to make >> a supercomputer - eta10 - that was supposed to >> escape all the problems of software by porting >> unix. i tested it and found a dozen bugs. > > Well that sucks, it would have been good to meet you. I was there, > unless it was fairly late in the cycle and it was when I was in Japan > at TIT. Do you remember when this was? > > If anyone cares, this is a pic of the people that did the Unix port > (and SO's, it was some party). > > http://www.mcvoy.com/lm/photos/ancient/26.html From crossd at gmail.com Wed Nov 15 05:03:13 2017 From: crossd at gmail.com (Dan Cross) Date: Tue, 14 Nov 2017 14:03:13 -0500 Subject: [TUHS] Origin of 'kill -9'? Message-ID: I am somewhat embarrassed to admit that this just occurred to me. Is the reason that SIGKILL has the numeric value 9 because cats are reported to have nine lives? Clearly the connection between 'cat' and 'kill -9' would make for a irreverent but harmless inside joke if so.... - Dan C. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralph at inputplus.co.uk Wed Nov 15 06:07:51 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Tue, 14 Nov 2017 20:07:51 +0000 Subject: [TUHS] Origin of 'kill -9'? In-Reply-To: References: Message-ID: <20171114200751.3536621358@orac.inputplus.co.uk> Hi Dan, > Is the reason that SIGKILL has the numeric value 9 If you look at signals 1 to 8 they could all be caught, etc. 9 was added so to thwart this and just took the next number AFAIK. Doesn't 9 have tie-ins to "death" in Japan? ISTR some marketing avoiding it in version numbers. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From usotsuki at buric.co Wed Nov 15 06:11:57 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Tue, 14 Nov 2017 15:11:57 -0500 (EST) Subject: [TUHS] Origin of 'kill -9'? In-Reply-To: <20171114200751.3536621358@orac.inputplus.co.uk> References: <20171114200751.3536621358@orac.inputplus.co.uk> Message-ID: On Tue, 14 Nov 2017, Ralph Corderoy wrote: > Hi Dan, > >> Is the reason that SIGKILL has the numeric value 9 > > If you look at signals 1 to 8 they could all be caught, etc. > 9 was added so to thwart this and just took the next number AFAIK. > Doesn't 9 have tie-ins to "death" in Japan? ISTR some marketing > avoiding it in version numbers. I think 9 has ties to "pain", but the number that has connection to "death" in Japanese is 4 (四 shi, "four", which sounds like 死 shi, "death"). -嘘. From ralph at inputplus.co.uk Wed Nov 15 08:35:16 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Tue, 14 Nov 2017 22:35:16 +0000 Subject: [TUHS] Origin of 'kill -9'? In-Reply-To: References: <20171114200751.3536621358@orac.inputplus.co.uk> Message-ID: <20171114223516.618CE21358@orac.inputplus.co.uk> > > Doesn't 9 have tie-ins to "death" in Japan? ISTR some marketing > > avoiding it in version numbers. > > I think 9 has ties to "pain", but the number that has connection to > "death" in Japanese is 4 (四 shi, "four", which sounds like 死 shi, > "death"). Thanks, you're right, four. Psion 3 didn't use 4 for their next model, that's what I was thinking of. https://en.wikipedia.org/wiki/Tetraphobia#Examples_of_sensitivity_to_tetraphobia_applied -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From cym224 at gmail.com Wed Nov 15 11:25:07 2017 From: cym224 at gmail.com (Nemo) Date: Tue, 14 Nov 2017 20:25:07 -0500 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> Message-ID: On 31/10/2017, Dave Horsfall wrote: > A previous boss insisted that all his support staff learn ED, because one > day it might be the only editor available on a trashed box (you can't > mount /usr etc). ed man; man ed https://www.gnu.org/fun/jokes/ed-msg.html (Sorry -- could not resist) N. From will.senn at gmail.com Wed Nov 15 12:10:41 2017 From: will.senn at gmail.com (Will Senn) Date: Tue, 14 Nov 2017 20:10:41 -0600 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> Message-ID: On 11/14/17 7:25 PM, Nemo wrote: > On 31/10/2017, Dave Horsfall wrote: >> A previous boss insisted that all his support staff learn ED, because one >> day it might be the only editor available on a trashed box (you can't >> mount /usr etc). > ed man; man ed > > https://www.gnu.org/fun/jokes/ed-msg.html (Sorry -- could not resist) > > N. For all that it's the butt of jokes, ed is awesome. I didn't really appreciate it until vi wasn't an easy goto option anymore (v6). After reading Kernighan's tutorial, I kind of fell in love with it. g/re/p? Who'd of thunk it? ed may not be 'visual', but the entire document is editable and its support of regex and the global command are incredibly powerful. Especially, for so incredibly tiny an editor. Finally, ed is the sibling of sed and once I got the connection there, it opened up a whole new world of editing awesomeness. Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From lm at mcvoy.com Wed Nov 15 12:16:48 2017 From: lm at mcvoy.com (Larry McVoy) Date: Tue, 14 Nov 2017 18:16:48 -0800 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> Message-ID: <20171115021648.GL6265@mcvoy.com> +1. Anyone who gets this is someone I'd work with. On Tue, Nov 14, 2017 at 08:10:41PM -0600, Will Senn wrote: > On 11/14/17 7:25 PM, Nemo wrote: > >On 31/10/2017, Dave Horsfall wrote: > >>A previous boss insisted that all his support staff learn ED, because one > >>day it might be the only editor available on a trashed box (you can't > >>mount /usr etc). > >ed man; man ed > > > >https://www.gnu.org/fun/jokes/ed-msg.html (Sorry -- could not resist) > > > >N. > > For all that it's the butt of jokes, ed is awesome. I didn't really > appreciate it until vi wasn't an easy goto option anymore (v6). After > reading Kernighan's tutorial, I kind of fell in love with it. g/re/p? Who'd > of thunk it? ed may not be 'visual', but the entire document is editable and > its support of regex and the global command are incredibly powerful. > Especially, for so incredibly tiny an editor. Finally, ed is the sibling of > sed and once I got the connection there, it opened up a whole new world of > editing awesomeness. > > Will > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From imp at bsdimp.com Wed Nov 15 12:37:29 2017 From: imp at bsdimp.com (Warner Losh) Date: Tue, 14 Nov 2017 19:37:29 -0700 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <20171115021648.GL6265@mcvoy.com> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> Message-ID: It took me a while to realize that ed(1) is what TECO should have been.... Too much TECO trauma scared me away for far too long.... But maybe it was all the TECO macros I wrote to make the BH100 terminal useful as an editor in full screen mode.... Warner On Tue, Nov 14, 2017 at 7:16 PM, Larry McVoy wrote: > +1. Anyone who gets this is someone I'd work with. > > On Tue, Nov 14, 2017 at 08:10:41PM -0600, Will Senn wrote: > > On 11/14/17 7:25 PM, Nemo wrote: > > >On 31/10/2017, Dave Horsfall wrote: > > >>A previous boss insisted that all his support staff learn ED, because > one > > >>day it might be the only editor available on a trashed box (you can't > > >>mount /usr etc). > > >ed man; man ed > > > > > >https://www.gnu.org/fun/jokes/ed-msg.html (Sorry -- could not resist) > > > > > >N. > > > > For all that it's the butt of jokes, ed is awesome. I didn't really > > appreciate it until vi wasn't an easy goto option anymore (v6). After > > reading Kernighan's tutorial, I kind of fell in love with it. g/re/p? > Who'd > > of thunk it? ed may not be 'visual', but the entire document is editable > and > > its support of regex and the global command are incredibly powerful. > > Especially, for so incredibly tiny an editor. Finally, ed is the sibling > of > > sed and once I got the connection there, it opened up a whole new world > of > > editing awesomeness. > > > > Will > > > > -- > > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF > > -- > --- > Larry McVoy lm at mcvoy.com > http://www.mcvoy.com/lm > -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Wed Nov 15 13:07:41 2017 From: will.senn at gmail.com (Will Senn) Date: Tue, 14 Nov 2017 21:07:41 -0600 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> Message-ID: <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> I wasn't going to say it earlier, but now that you've said something about it... I was thinking, thank god, ed isn't teco! :). On 11/14/17 8:37 PM, Warner Losh wrote: > It took me a while to realize that ed(1) is what TECO should have > been.... Too much TECO trauma scared me away for far too long.... But > maybe it was all the TECO macros I wrote to make the BH100 terminal > useful as an editor in full screen mode.... > > Warner > > On Tue, Nov 14, 2017 at 7:16 PM, Larry McVoy > wrote: > > +1. Anyone who gets this is someone I'd work with. > > On Tue, Nov 14, 2017 at 08:10:41PM -0600, Will Senn wrote: > > On 11/14/17 7:25 PM, Nemo wrote: > > >On 31/10/2017, Dave Horsfall > wrote: > > >>A previous boss insisted that all his support staff learn ED, > because one > > >>day it might be the only editor available on a trashed box > (you can't > > >>mount /usr etc). > > >ed man; man ed > > > > > >https://www.gnu.org/fun/jokes/ed-msg.html > (Sorry -- could not > resist) > > > > > >N. > > > > For all that it's the butt of jokes, ed is awesome. I didn't really > > appreciate it until vi wasn't an easy goto option anymore (v6). > After > > reading Kernighan's tutorial, I kind of fell in love with it. > g/re/p? Who'd > > of thunk it? ed may not be 'visual', but the entire document is > editable and > > its support of regex and the global command are incredibly powerful. > > Especially, for so incredibly tiny an editor. Finally, ed is the > sibling of > > sed and once I got the connection there, it opened up a whole > new world of > > editing awesomeness. > > > > Will > > > > -- > > GPG Fingerprint: 68F4 B3BD 1730 555A 4462  7D45 3EAA 5B6D A982 BAAF > > -- > --- > Larry McVoy                  lm at mcvoy.com > http://www.mcvoy.com/lm > > -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From akosela at andykosela.com Wed Nov 15 19:58:41 2017 From: akosela at andykosela.com (Andy Kosela) Date: Wed, 15 Nov 2017 10:58:41 +0100 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> Message-ID: On Wednesday, November 15, 2017, Warner Losh wrote: > It took me a while to realize that ed(1) is what TECO should have been.... > Too much TECO trauma scared me away for far too long.... But maybe it was > all the TECO macros I wrote to make the BH100 terminal useful as an editor > in full screen mode.... > > TECO (and therefore Emacs) and ed(1) represent two completely opposite views on software development and IT in general. The one is fanatical about minimalism and 'less is more' approach, while the other stands for 'more is more'. That is why MIT and Bell Labs represented two very different cultures. In the history of computing I have not found any other group of computer scientists that so deeply emphasized minimalism and 'less is more' approach. This group produced the original UNIX and C, Plan 9, and Go programming language. Everything else in the Unix camp including BSD, Linux or GNU was never about minimalism as its main goals, although one can argue that in the early years Linux kernel was small and minimal. --Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralph at inputplus.co.uk Wed Nov 15 21:42:14 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Wed, 15 Nov 2017 11:42:14 +0000 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> Message-ID: <20171115114214.6716E1F978@orac.inputplus.co.uk> Will Senn wrote: > Finally, ed is the sibling of sed Parent. :-) Something I learned today was (sed's author) McMahon's method of arranging a tournament. ...was originally used as a club ranking system at the New York Go Club. It was then adopted for Go tournaments in Britain, and has since become the most popular tournament system used in Go. — https://en.wikipedia.org/wiki/McMahon_system_tournament -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From lm at mcvoy.com Sun Nov 12 03:24:07 2017 From: lm at mcvoy.com (Larry McVoy) Date: Sat, 11 Nov 2017 09:24:07 -0800 Subject: [TUHS] 80 columns ... In-Reply-To: <201711111719.vABHJpbQ006962@darkstar.fourwinds.com> References: <60C45CFF-0B5C-4DAB-8936-BA27ECFFA487@gmail.com> <025501d3598f$008f19d0$01ad4d70$@ronnatalie.com> <201711101905.vAAJ5SpV031420@darkstar.fourwinds.com> <47fee362-0fde-69ff-7794-a88cf3069030@telegraphics.com.au> <201711102043.vAAKhaYB020128@darkstar.fourwinds.com> <201711102259.vAAMxNao015564@darkstar.fourwinds.com> <201711111719.vABHJpbQ006962@darkstar.fourwinds.com> Message-ID: <20171111172407.GS29606@mcvoy.com> > So if you _prefer_ 80 columns, go for it. Just don't tell me that there are > technical reasons why I should abide by your preference. Feel free to keep ignoring the valid technical reason I have stated over and over. And other people have stated the same thing as well. With that, I'm out, this thread is going to /dev/null. Thank you procmail. From ralph at inputplus.co.uk Wed Nov 15 22:36:30 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Wed, 15 Nov 2017 12:36:30 +0000 Subject: [TUHS] ed(1) and Pipes. Message-ID: <20171115123630.159F51F978@orac.inputplus.co.uk> Hi, ed(1) pre-dates pipes. When pipes came along, stderr was needed, and lots of new idioms were found to make use of them. Why didn't ed gain a `filter' command to accompany `r !foo' and `w !bar'? To sort this paragraph, I ;/^$/w !sort >t ;/^$/d -r t I'd have thought that filtering was common enough to suggest a `^' command with an implied `!'? (Not `|' since that was uncommon then.) ex(1) has `!' that filters if applied to a range of lines, and this carries through to vi's `!' that's often heavily used, especially when the "file" is just a scratch buffer of commands, input, and output. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From jnc at mercury.lcs.mit.edu Thu Nov 16 00:06:34 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Wed, 15 Nov 2017 09:06:34 -0500 (EST) Subject: [TUHS] basic tools / Universal Unix Message-ID: <20171115140634.7D9A518C08C@mercury.lcs.mit.edu> > From: Andy Kosela > That is why MIT and Bell Labs represented two very different cultures. Oi! Not _everyone_ at MIT follows the "so complicated that there are no obvious deficiencies" approach (to quote Hoare's wonderful aphorism from his 'Emperor's Old Clothes' Turing Award Lecture). My personal design mantra (it's been at the top of my home page for decades) is something I found as a footnote in Corbato and Saltzer, 'Multics: The First Seven Years': "In anything at all, perfection has been attained, not when there is nothing left to add, but when there is nothing left to take away..." No doubt some people would be bemused that this should be in a Multics paper, given the impression people have of Multics as incredibly - overly - complicated. I'll avoid that discussion for the moment... I've often tried to understand why some people create these incredibly complicated systems. (Looking at the voluminous LISP Machine manual set from Symbolics particularly caused this train of thought...) I think it's because they are too smart - they can remember all that stuff. Maybe my brain isn't like that (or perhaps I use large parts of it for other stuff, like Japanese woodblock prints :-), but I much prefer simpler things. Or maybe I'm just basically lazy, and like simpler things because they are easier... Noel From krewat at kilonet.net Thu Nov 16 02:13:07 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 15 Nov 2017 11:13:07 -0500 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> Message-ID: <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> I still don't get what was so bad about TECO. *20t$$ <20 lines of text> *fs$$$ *0lt$$ ; type current line to review what you've changed. Very simple. *$$ replace all occurrences of textsearch. Now, of course, searching for something like a regular expression was much harder. Q-registers, all sorts of cool stuff. But then, maybe I'm talking about a later version of TECO than you all. I think I was on version 22 on TOPS-10 6.03A On 11/14/2017 10:07 PM, Will Senn wrote: > I wasn't going to say it earlier, but now that you've said something > about it... I was thinking, thank god, ed isn't teco! :). > > On 11/14/17 8:37 PM, Warner Losh wrote: >> It took me a while to realize that ed(1) is what TECO should have >> been.... Too much TECO trauma scared me away for far too long.... But >> maybe it was all the TECO macros I wrote to make the BH100 terminal >> useful as an editor in full screen mode.... >> >> Warner >> >> On Tue, Nov 14, 2017 at 7:16 PM, Larry McVoy > > wrote: >> >> +1. Anyone who gets this is someone I'd work with. >> >> On Tue, Nov 14, 2017 at 08:10:41PM -0600, Will Senn wrote: >> > On 11/14/17 7:25 PM, Nemo wrote: >> > >On 31/10/2017, Dave Horsfall > > wrote: >> > >>A previous boss insisted that all his support staff learn ED, >> because one >> > >>day it might be the only editor available on a trashed box >> (you can't >> > >>mount /usr etc). >> > >ed man; man ed >> > > >> > >https://www.gnu.org/fun/jokes/ed-msg.html >> (Sorry -- could not >> resist) >> > > >> > >N. >> > >> > For all that it's the butt of jokes, ed is awesome. I didn't really >> > appreciate it until vi wasn't an easy goto option anymore (v6). >> After >> > reading Kernighan's tutorial, I kind of fell in love with it. >> g/re/p? Who'd >> > of thunk it? ed may not be 'visual', but the entire document is >> editable and >> > its support of regex and the global command are incredibly >> powerful. >> > Especially, for so incredibly tiny an editor. Finally, ed is >> the sibling of >> > sed and once I got the connection there, it opened up a whole >> new world of >> > editing awesomeness. >> > >> > Will >> > >> > -- >> > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF >> >> -- >> --- >> Larry McVoy                  lm at mcvoy.com >> http://www.mcvoy.com/lm >> >> > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From krewat at kilonet.net Thu Nov 16 02:23:20 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 15 Nov 2017 11:23:20 -0500 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> Message-ID: <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> Ah, a later reply pointed out the minimalist thing. never mind ;) On 11/15/2017 11:13 AM, Arthur Krewat wrote: > I still don't get what was so bad about TECO. > > *20t$$ > <20 lines of text> > *fs$$$ > *0lt$$ ; type current line to review what you've changed. > > Very simple. > > *$$ > > replace all occurrences of textsearch. > > Now, of course, searching for something like a regular expression was > much harder. > > Q-registers, all sorts of cool stuff. > > But then, maybe I'm talking about a later version of TECO than you > all. I think I was on version 22 on TOPS-10 6.03A > > > On 11/14/2017 10:07 PM, Will Senn wrote: >> I wasn't going to say it earlier, but now that you've said something >> about it... I was thinking, thank god, ed isn't teco! :). >> >> On 11/14/17 8:37 PM, Warner Losh wrote: >>> It took me a while to realize that ed(1) is what TECO should have >>> been.... Too much TECO trauma scared me away for far too long.... >>> But maybe it was all the TECO macros I wrote to make the BH100 >>> terminal useful as an editor in full screen mode.... >>> >>> Warner >>> >>> On Tue, Nov 14, 2017 at 7:16 PM, Larry McVoy >> > wrote: >>> >>> +1. Anyone who gets this is someone I'd work with. >>> >>> On Tue, Nov 14, 2017 at 08:10:41PM -0600, Will Senn wrote: >>> > On 11/14/17 7:25 PM, Nemo wrote: >>> > >On 31/10/2017, Dave Horsfall >> > wrote: >>> > >>A previous boss insisted that all his support staff learn >>> ED, because one >>> > >>day it might be the only editor available on a trashed box >>> (you can't >>> > >>mount /usr etc). >>> > >ed man; man ed >>> > > >>> > >https://www.gnu.org/fun/jokes/ed-msg.html >>> (Sorry -- could not >>> resist) >>> > > >>> > >N. >>> > >>> > For all that it's the butt of jokes, ed is awesome. I didn't >>> really >>> > appreciate it until vi wasn't an easy goto option anymore >>> (v6). After >>> > reading Kernighan's tutorial, I kind of fell in love with it. >>> g/re/p? Who'd >>> > of thunk it? ed may not be 'visual', but the entire document >>> is editable and >>> > its support of regex and the global command are incredibly >>> powerful. >>> > Especially, for so incredibly tiny an editor. Finally, ed is >>> the sibling of >>> > sed and once I got the connection there, it opened up a whole >>> new world of >>> > editing awesomeness. >>> > >>> > Will >>> > >>> > -- >>> > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF >>> >>> -- >>> --- >>> Larry McVoy                  lm at mcvoy.com >>> http://www.mcvoy.com/lm >>> >>> >> >> -- >> GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF > -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Thu Nov 16 02:48:42 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 15 Nov 2017 11:48:42 -0500 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> Message-ID: Teco commands were described as being 'indistinguishable from line noise.' On 10/30/120 cps dial up lines, that was not always a good thing ;-) One of my favorite stories of teco years ago, one of my friends was editing a teco macro and had gotten up from his terminal for a minute, his wife looked at the screen and asked him if his 2 year old has been attacking the keyboard again. Clem BTW: My friend and former co-worker, Paul Cantrell wrote an excellent teco implemnentation for UNIX. I believe if you go to his web site ( copters.com) and poke around its available for download. On Wed, Nov 15, 2017 at 11:23 AM, Arthur Krewat wrote: > Ah, a later reply pointed out the minimalist thing. never mind ;) > > > > On 11/15/2017 11:13 AM, Arthur Krewat wrote: > > I still don't get what was so bad about TECO. > > *20t$$ > <20 lines of text> > *fs$$$ > *0lt$$ ; type current line to review what you've changed. > > Very simple. > > *$$ > > replace all occurrences of textsearch. > > Now, of course, searching for something like a regular expression was much > harder. > > Q-registers, all sorts of cool stuff. > > But then, maybe I'm talking about a later version of TECO than you all. I > think I was on version 22 on TOPS-10 6.03A > > > On 11/14/2017 10:07 PM, Will Senn wrote: > > I wasn't going to say it earlier, but now that you've said something about > it... I was thinking, thank god, ed isn't teco! :). > > On 11/14/17 8:37 PM, Warner Losh wrote: > > It took me a while to realize that ed(1) is what TECO should have been.... > Too much TECO trauma scared me away for far too long.... But maybe it was > all the TECO macros I wrote to make the BH100 terminal useful as an editor > in full screen mode.... > > Warner > > On Tue, Nov 14, 2017 at 7:16 PM, Larry McVoy wrote: > >> +1. Anyone who gets this is someone I'd work with. >> >> On Tue, Nov 14, 2017 at 08:10:41PM -0600, Will Senn wrote: >> > On 11/14/17 7:25 PM, Nemo wrote: >> > >On 31/10/2017, Dave Horsfall wrote: >> > >>A previous boss insisted that all his support staff learn ED, because >> one >> > >>day it might be the only editor available on a trashed box (you can't >> > >>mount /usr etc). >> > >ed man; man ed >> > > >> > >https://www.gnu.org/fun/jokes/ed-msg.html (Sorry -- could not resist) >> > > >> > >N. >> > >> > For all that it's the butt of jokes, ed is awesome. I didn't really >> > appreciate it until vi wasn't an easy goto option anymore (v6). After >> > reading Kernighan's tutorial, I kind of fell in love with it. g/re/p? >> Who'd >> > of thunk it? ed may not be 'visual', but the entire document is >> editable and >> > its support of regex and the global command are incredibly powerful. >> > Especially, for so incredibly tiny an editor. Finally, ed is the >> sibling of >> > sed and once I got the connection there, it opened up a whole new world >> of >> > editing awesomeness. >> > >> > Will >> > >> > -- >> > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF >> >> -- >> --- >> Larry McVoy lm at mcvoy.com >> http://www.mcvoy.com/lm >> > > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralph at inputplus.co.uk Thu Nov 16 03:12:26 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Wed, 15 Nov 2017 17:12:26 +0000 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <20171115140634.7D9A518C08C@mercury.lcs.mit.edu> References: <20171115140634.7D9A518C08C@mercury.lcs.mit.edu> Message-ID: <20171115171226.935CD1F978@orac.inputplus.co.uk> Hi Noel, > I've often tried to understand why some people create these incredibly > complicated systems. (Looking at the voluminous LISP Machine manual set from > Symbolics particularly caused this train of thought...) I think it's because > they are too smart - they can remember all that stuff. But smart people don't have to create complex stuff, see Unix. :-) Perhaps it's not because these designers of complexity have good recall, but a mixture of the Brooks's Second-System Effect, http://www.catb.org/jargon/html/S/second-system-effect.html and not being constrained. Constraints of limited computer memory, slow CPU, money, wall-clock time, manufacturing cost, can all help rein in a design. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From lm at mcvoy.com Thu Nov 16 03:47:39 2017 From: lm at mcvoy.com (Larry McVoy) Date: Wed, 15 Nov 2017 09:47:39 -0800 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <20171115171226.935CD1F978@orac.inputplus.co.uk> References: <20171115140634.7D9A518C08C@mercury.lcs.mit.edu> <20171115171226.935CD1F978@orac.inputplus.co.uk> Message-ID: <20171115174739.GT6265@mcvoy.com> On Wed, Nov 15, 2017 at 05:12:26PM +0000, Ralph Corderoy wrote: > Hi Noel, > > > I've often tried to understand why some people create these incredibly > > complicated systems. (Looking at the voluminous LISP Machine manual set from > > Symbolics particularly caused this train of thought...) I think it's because > > they are too smart - they can remember all that stuff. > > But smart people don't have to create complex stuff, see Unix. :-) I consider myself reasonably smart but the least smart amongst the team I lead. As a result, clever complicated stuff rarely got accepted because it was too clever for me to understand. So smart people can choose to be "dumb" and that's what I did and that's why I can still (mostly) debug the product. --lm From bakul at bitblocks.com Thu Nov 16 04:13:35 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Wed, 15 Nov 2017 10:13:35 -0800 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> Message-ID: Tom Almy's version, based on Pete Siemsen's TECO implementation is available as a FreeBSD port. Also runs on a bunch of other platforms. A more recent version with Blake McBride's changes is at https://github.com/blakemcbride/TECOC. I had used TECO a long time ago on TOPS-10 so I played with this version but it feels completely foreign to me now:-) > On Nov 15, 2017, at 8:48 AM, Clem Cole wrote: > > Teco commands were described as being 'indistinguishable from line noise.' On 10/30/120 cps dial up lines, that was not always a good thing ;-) > > One of my favorite stories of teco years ago, one of my friends was editing a teco macro and had gotten up from his terminal for a minute, his wife looked at the screen and asked him if his 2 year old has been attacking the keyboard again. > > Clem > > BTW: My friend and former co-worker, Paul Cantrell wrote an excellent teco implemnentation for UNIX. I believe if you go to his web site (copters.com) and poke around its available for download. > > On Wed, Nov 15, 2017 at 11:23 AM, Arthur Krewat wrote: > Ah, a later reply pointed out the minimalist thing. never mind ;) > > > > On 11/15/2017 11:13 AM, Arthur Krewat wrote: >> I still don't get what was so bad about TECO. >> >> *20t$$ >> <20 lines of text> >> *fs$$$ >> *0lt$$ ; type current line to review what you've changed. >> >> Very simple. >> >> *$$ >> >> replace all occurrences of textsearch. >> >> Now, of course, searching for something like a regular expression was much harder. >> >> Q-registers, all sorts of cool stuff. >> >> But then, maybe I'm talking about a later version of TECO than you all. I think I was on version 22 on TOPS-10 6.03A >> >> >> On 11/14/2017 10:07 PM, Will Senn wrote: >>> I wasn't going to say it earlier, but now that you've said something about it... I was thinking, thank god, ed isn't teco! :). >>> >>> On 11/14/17 8:37 PM, Warner Losh wrote: >>>> It took me a while to realize that ed(1) is what TECO should have been.... Too much TECO trauma scared me away for far too long.... But maybe it was all the TECO macros I wrote to make the BH100 terminal useful as an editor in full screen mode.... >>>> >>>> Warner >>>> >>>> On Tue, Nov 14, 2017 at 7:16 PM, Larry McVoy wrote: >>>> +1. Anyone who gets this is someone I'd work with. >>>> >>>> On Tue, Nov 14, 2017 at 08:10:41PM -0600, Will Senn wrote: >>>> > On 11/14/17 7:25 PM, Nemo wrote: >>>> > >On 31/10/2017, Dave Horsfall wrote: >>>> > >>A previous boss insisted that all his support staff learn ED, because one >>>> > >>day it might be the only editor available on a trashed box (you can't >>>> > >>mount /usr etc). >>>> > >ed man; man ed >>>> > > >>>> > >https://www.gnu.org/fun/jokes/ed-msg.html (Sorry -- could not resist) >>>> > > >>>> > >N. >>>> > >>>> > For all that it's the butt of jokes, ed is awesome. I didn't really >>>> > appreciate it until vi wasn't an easy goto option anymore (v6). After >>>> > reading Kernighan's tutorial, I kind of fell in love with it. g/re/p? Who'd >>>> > of thunk it? ed may not be 'visual', but the entire document is editable and >>>> > its support of regex and the global command are incredibly powerful. >>>> > Especially, for so incredibly tiny an editor. Finally, ed is the sibling of >>>> > sed and once I got the connection there, it opened up a whole new world of >>>> > editing awesomeness. >>>> > >>>> > Will >>>> > >>>> > -- >>>> > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF >>>> >>>> -- >>>> --- >>>> Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm >>>> >>> >>> -- >>> GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF >>> >> > > From bakul at bitblocks.com Thu Nov 16 04:40:35 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Wed, 15 Nov 2017 10:40:35 -0800 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <20171115171226.935CD1F978@orac.inputplus.co.uk> References: <20171115140634.7D9A518C08C@mercury.lcs.mit.edu> <20171115171226.935CD1F978@orac.inputplus.co.uk> Message-ID: <04264EA4-7B79-4009-98CA-468949D776EF@bitblocks.com> On Nov 15, 2017, at 9:12 AM, Ralph Corderoy wrote: > > Hi Noel, > >> I've often tried to understand why some people create these incredibly >> complicated systems. (Looking at the voluminous LISP Machine manual set from >> Symbolics particularly caused this train of thought...) I think it's because >> they are too smart - they can remember all that stuff. > > But smart people don't have to create complex stuff, see Unix. :-) > Perhaps it's not because these designers of complexity have good recall, > but a mixture of the Brooks's Second-System Effect, > http://www.catb.org/jargon/html/S/second-system-effect.html > and not being constrained. There are two kinds of smarts: people who can remember (and even delight in learning) a lot of complex details and add to it, and people who don't like to (or can't) remember a lot of complex details and try to remove complexity. I think both are needed. You don't want the first kind to design a system and you don't want the second kind to maintain a system. But over time software complexity creeps in like disorder. You have to constantly try to keep things neat but often (you feel) you don't have time for it. "Technical debt" is basically the result of procrastination! From clemc at ccc.com Thu Nov 16 05:01:38 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 15 Nov 2017 14:01:38 -0500 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> Message-ID: On Wed, Nov 15, 2017 at 1:13 PM, Bakul Shah wrote: > Tom Almy's version, ​I'd forgotten Tom was a teco guy. I'm not sure what happened too it, but at some point Tom and I got the RT11 version (which was in Macro-11 assembler) running in V7 @ Tektronix ​before we had vi. Tom was the biggest user at that point. I was running something Phil Karn had brought to CMU from Cornell (and I took to Tektronix) called 'fred' (friendly ed) which had compiled in terminal support. Fred supported glass tty's; which is why I liked it even though I knew teco & emacs from my 10's days. Mark Bales came up from Berkeley later that summer and brought 1BSD/2BSD with him (that's when I learned csh and reprogrammed my fingers to the current rom configuration). Gosling Emacs for UNIX does not show up until we started running Vaxen and had the address space, so at the time it was ed, fred, vi, teco on the 11s. -------------- next part -------------- An HTML attachment was scrubbed... URL: From krewat at kilonet.net Thu Nov 16 05:52:19 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 15 Nov 2017 14:52:19 -0500 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> Message-ID: <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> Suddenly I fell like I'm in a TECO support group ;) I have my own implementations of TECO - both on UNIX and MSDOS (of all things). They both do colorization of structured programming, something that preceded EMACs colorization by a few years. I always wondered if my released MSDOS version of TECO gave people ideas. When did EMACS start coloring things? I started it in my TECO as of around 1984-1985 - it supported it in text strings, parentheses, etc. From my MSDOS version, showing some MASM code: The structured macros were inspired by Bruce Maier's structured macros he did for MACRO-10 on TOPS-10 in the mid to late 70's. On 11/15/2017 2:01 PM, Clem Cole wrote: > > > On Wed, Nov 15, 2017 at 1:13 PM, Bakul Shah > wrote: > > Tom Almy's version, > > > ​I'd forgotten Tom was a teco guy.   I'm not sure what happened too > it, but at some point Tom and I got the RT11 version (which was in > Macro-11 assembler) running in V7 @ Tektronix ​before we had vi. Tom > was the biggest user at that point.  I was running something Phil Karn > had brought to CMU from Cornell (and I took to Tektronix) called > 'fred' (friendly ed) which had compiled in terminal support. Fred > supported glass tty's; which is why I liked it even though I knew teco > & emacs from my 10's days.   Mark Bales came up from Berkeley later > that summer and brought 1BSD/2BSD with him (that's when I learned csh > and reprogrammed my fingers to the current rom configuration).  > Gosling Emacs for UNIX does not show up until we started running Vaxen > and had the address space, so at the time it was ed, fred, vi, teco on > the 11s. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: dmddfbedoblifaak.png Type: image/png Size: 60010 bytes Desc: not available URL: From lm at mcvoy.com Thu Nov 16 05:58:58 2017 From: lm at mcvoy.com (Larry McVoy) Date: Wed, 15 Nov 2017 11:58:58 -0800 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <04264EA4-7B79-4009-98CA-468949D776EF@bitblocks.com> References: <20171115140634.7D9A518C08C@mercury.lcs.mit.edu> <20171115171226.935CD1F978@orac.inputplus.co.uk> <04264EA4-7B79-4009-98CA-468949D776EF@bitblocks.com> Message-ID: <20171115195858.GA1201@mcvoy.com> On Wed, Nov 15, 2017 at 10:40:35AM -0800, Bakul Shah wrote: > On Nov 15, 2017, at 9:12 AM, Ralph Corderoy wrote: > > > > Hi Noel, > > > >> I've often tried to understand why some people create these incredibly > >> complicated systems. (Looking at the voluminous LISP Machine manual set from > >> Symbolics particularly caused this train of thought...) I think it's because > >> they are too smart - they can remember all that stuff. > > > > But smart people don't have to create complex stuff, see Unix. :-) > > Perhaps it's not because these designers of complexity have good recall, > > but a mixture of the Brooks's Second-System Effect, > > http://www.catb.org/jargon/html/S/second-system-effect.html > > and not being constrained. > > There are two kinds of smarts: people who can remember (and > even delight in learning) a lot of complex details and add > to it, and people who don't like to (or can't) remember a > lot of complex details and try to remove complexity. I think > both are needed. You don't want the first kind to design a > system and you don't want the second kind to maintain a > system. > > But over time software complexity creeps in like disorder. > You have to constantly try to keep things neat but often > (you feel) you don't have time for it. "Technical debt" is > basically the result of procrastination! "Source code is worthless unless it is maintained" -- Rob Gingell, Sun From clemc at ccc.com Thu Nov 16 06:19:08 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 15 Nov 2017 15:19:08 -0500 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> Message-ID: On Wed, Nov 15, 2017 at 2:52 PM, Arthur Krewat wrote: > > When did EMACS start coloring things? > ​I'm fairly sure, Gosling EMACS could do color by '83 when we had it on the Masscomp systems.​ Cantrell's Teco was a year or two later always support color in some manner, because was a graphics guy at Masscomp (and DEC before that). I'm dating this by, the fact I had left Berkeley by then. PC or one of the HW folks had written a set of EMACS macro's to emulate VMS's EDT for the ex-DEC HW guys which used color. The MIT contingent was all EMACS, but we switched to Zimmerman's EMACS when we hired Steve I want to say in 84 or 85. I remember there was some heartache because Zimmerman EMACS was very close to ITS EMACS and preferred by the ex-MIT folks (unlike Gosling EMACS). But the color stuff for EDT broke and there was complaining from the HW folks. [Andy Tannenbaum, Eric Ginger and I were the die hard ed/vi folks - which in those days was BW - to this day even with vim, I still rarely use colors with that editor]. -------------- next part -------------- An HTML attachment was scrubbed... URL: From krewat at kilonet.net Thu Nov 16 06:25:32 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Wed, 15 Nov 2017 15:25:32 -0500 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> Message-ID: It's always interesting how parallel development happens with certain things. I certainly had no exposure to EMACS at the time I came up with the idea, nor the rest of this community you describe. I'm not sure I like vim's coloring, actually. I find myself having to search for a nonexistent string just to get rid of it's highlighting of a search string. On 11/15/2017 3:19 PM, Clem Cole wrote: > > > On Wed, Nov 15, 2017 at 2:52 PM, Arthur Krewat > wrote: > > > When did EMACS start coloring things? > > > ​I'm fairly sure, Gosling EMACS could do color by '83 when we had it > on the Masscomp systems.​  Cantrell's Teco was a year or two later > always support color in some manner, because was a graphics guy at > Masscomp (and DEC before that). > > I'm dating this by, the fact I had left Berkeley by then.   PC or one > of the HW folks  had written a set of EMACS macro's to emulate VMS's > EDT for the ex-DEC HW guys which used color.   The MIT contingent was > all EMACS, but we switched to Zimmerman's EMACS when we hired Steve I > want to say in 84 or 85. I remember there was some heartache because > Zimmerman EMACS was very close to ITS EMACS and preferred by the > ex-MIT folks (unlike Gosling EMACS).   But the color stuff for EDT > broke and there was complaining from the HW folks.  [Andy Tannenbaum, > Eric Ginger and I were the die hard ed/vi folks - which in those days > was BW - to this day even with vim, I still rarely use colors with > that editor]. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fair-tuhs at netbsd.org Thu Nov 16 07:36:53 2017 From: fair-tuhs at netbsd.org (Erik E. Fair) Date: Wed, 15 Nov 2017 13:36:53 -0800 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: Message-ID: <8780.1510781813@cesium.clock.org> I had dinner in Berkeley the evening of the Morris Worm at Joshu-Ya - the "Kabuki West" dinner group that Russell Brand started when he moved west from MIT, with some help from me. Unusually, I went directly bed when I got home to Mountain View instead of reading E-mail on apple.com before crashing out. Many of my dinner companions went back to the eXperimental Computing Facility (XCF - for undergrads) in Cory Hall on the UCB campus, found their facilities under attack, and coordinated with a team at MIT to perform analysis. I remember that Dave Pare put the binary analysis skills he'd acquired in decompiling psl's empire game to good use in analyzing the worm. I found out the next morning that apple.com was off the Internet (CSNET had shut off the X25NET), and that it (a VAX-11/780 running 4.3 BSD UNIX; we upgraded to an 8650 not much later) had been successfully attacked 17 times overnight ... but that our X25NET connection (IP over X.25 at 9600 baud) had been so flakey that the worm hadn't managed to successfully download its second part and start it. I shut off the finger TCP service, checked to make sure our sendmail(8) didn't have the "debug mode feature" that the worm exploited, and told CSNET to turn us back on. Erik Fair, formerly {post,host}master at apple.com From don at DonHopkins.com Thu Nov 16 07:50:53 2017 From: don at DonHopkins.com (Don Hopkins) Date: Wed, 15 Nov 2017 22:50:53 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <8780.1510781813@cesium.clock.org> References: <8780.1510781813@cesium.clock.org> Message-ID: A friendly reminder that kabuki-west is not an appropriate forum for baby announcements! ;) http://www.art.net/~hopkins/Don/text/rms-vs-doctor.html -Don > On 15 Nov 2017, at 22:36, Erik E. Fair wrote: > > I had dinner in Berkeley the evening of the Morris Worm at Joshu-Ya - the "Kabuki West" dinner group that Russell Brand started when he moved west from MIT, with some help from me. Unusually, I went directly bed when I got home to Mountain View instead of reading E-mail on apple.com before crashing out. Many of my dinner companions went back to the eXperimental Computing Facility (XCF - for undergrads) in Cory Hall on the UCB campus, found their facilities under attack, and coordinated with a team at MIT to perform analysis. I remember that Dave Pare put the binary analysis skills he'd acquired in decompiling psl's empire game to good use in analyzing the worm. > > I found out the next morning that apple.com was off the Internet (CSNET had shut off the X25NET), and that it (a VAX-11/780 running 4.3 BSD UNIX; we upgraded to an 8650 not much later) had been successfully attacked 17 times overnight ... but that our X25NET connection (IP over X.25 at 9600 baud) had been so flakey that the worm hadn't managed to successfully download its second part and start it. I shut off the finger TCP service, checked to make sure our sendmail(8) didn't have the "debug mode feature" that the worm exploited, and told CSNET to turn us back on. > > Erik Fair, formerly {post,host}master at apple.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Thu Nov 16 07:52:07 2017 From: don at DonHopkins.com (Don Hopkins) Date: Wed, 15 Nov 2017 22:52:07 +0100 Subject: [TUHS] Origin of 'kill -9'? In-Reply-To: References: <20171114200751.3536621358@orac.inputplus.co.uk> Message-ID: <1A99490E-E7E7-40A8-BBEE-F50980B6A0D4@gmail.com> > > I think 9 has ties to "pain", but the number that has connection to "death" in Japanese is 4 (四 shi, "four", which sounds like 死 shi, "death"). > > -嘘. 9 means “no” in German. -Don From ron at ronnatalie.com Thu Nov 16 07:54:17 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 15 Nov 2017 16:54:17 -0500 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <8780.1510781813@cesium.clock.org> References: <8780.1510781813@cesium.clock.org> Message-ID: <003701d35e5c$493a0e20$dbae2a60$@ronnatalie.com> I was at Rutgers at the time. We heard of the work and chased down one copy we had on an ancillary machine. Most of it's exploited bugs were ones I had known about for a long time and had taken care of. After spending a bit of time confirming we'd cleaned things up, I headed off to a meeting in DC. Then all hell broke loose. Not because of the worm itself, but the next day the media caught up with it and the phone rang off the hook at the computer center with every news outlet in the state wanting to know what was going on. Fortunately, Chuck was still there to answer questions (he's much more patient with pinheaded reporters than I am anyhow). From norman at oclsc.org Thu Nov 16 08:16:47 2017 From: norman at oclsc.org (Norman Wilson) Date: Wed, 15 Nov 2017 17:16:47 -0500 Subject: [TUHS] ed(1) and Pipes. Message-ID: <1510784211.17586.for-standards-violators@oclsc.org> Ralph Corderoy: ed(1) pre-dates pipes. When pipes came along, stderr was needed, and lots of new idioms were found to make use of them. Why didn't ed gain a `filter' command to accompany `r !foo' and `w !bar'? === I sometimes wonder that too. When I use `ed,' it is usually really qed, an extended ed written by the late-1970s UNIX crowd here at U of T. (Rob Pike, Tom Duff, David Tilbrook, and Hugh Redelmeier, I think.) qed is something of a kitchen sink, full of clumsy programmability features that I never use. The things that keep me using it are: -- Multiple buffers, each possibly associated with a different file or just anonymous -- The ability to copy or move text (the traditional t and m commands) between buffers as well as within one -- The ability to send part or all of a buffer to a shell command, to read data in from a shell command, or to send data out and replace it with that from the shell command: >mail user ... References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> Message-ID: <20171115221853.E0E0C1F978@orac.inputplus.co.uk> Hi Arthur, > I'm not sure I like vim's coloring, actually. I find myself having to > search for a nonexistent string just to get rid of it's highlighting `:noh' turns off the highlighting of the current matches. They start again on the next search, e.g. `n'. In less(1), it's `Esc u'. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From steffen at sdaoden.eu Thu Nov 16 08:51:12 2017 From: steffen at sdaoden.eu (Steffen Nurpmeso) Date: Wed, 15 Nov 2017 23:51:12 +0100 Subject: [TUHS] Origin of 'kill -9'? In-Reply-To: <1A99490E-E7E7-40A8-BBEE-F50980B6A0D4@gmail.com> References: <20171114200751.3536621358@orac.inputplus.co.uk> <1A99490E-E7E7-40A8-BBEE-F50980B6A0D4@gmail.com> Message-ID: <20171115225112.NS_80%steffen@sdaoden.eu> Don Hopkins wrote: |> I think 9 has ties to "pain", but the number that has connection \ |> to "death" in Japanese is 4 (四 shi, "four", which sounds like 死 \ |> shi, "death"). |> |> -嘘. | |9 means “no” in German. I wonder whether Plan9 used to be translated as plan-no, then. Nine while nine (...waiting for the train). --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 torek at elf.torek.net Thu Nov 16 08:42:31 2017 From: torek at elf.torek.net (Chris Torek) Date: Wed, 15 Nov 2017 14:42:31 -0800 (PST) Subject: [TUHS] :nohlsearch in vim In-Reply-To: <20171115221853.E0E0C1F978@orac.inputplus.co.uk> Message-ID: <201711152242.vAFMgVDX051762@elf.torek.net> >`:noh' turns off the highlighting of the current matches. YAY! I've been using Arthur Krewat's method, basically /asdf, for a long time now. Now I have: map :nohlsearch in my .vimrc ( is backslash, so after /foo, \\ turns off the highlighting). One other really useful thing, given issues with tabs vs spaces, that I'll share here, comes just before this new entry: function! ToggleTabs() if &list set nolist else set list listchars=tab:>.,trail:>,precedes:< endif endfunction map t :call ToggleTabs() With this, \t makes tabs visible, or invisible if they are currently visible. Despite the name it also highlights trailing whitespace (the highlight is a bit subtle though). Chris From steve at quintile.net Thu Nov 16 09:01:05 2017 From: steve at quintile.net (Steve Simon) Date: Wed, 15 Nov 2017 23:01:05 +0000 Subject: [TUHS] Origin of 'kill -9'? In-Reply-To: <20171115225112.NS_80%steffen@sdaoden.eu> References: <20171114200751.3536621358@orac.inputplus.co.uk> <1A99490E-E7E7-40A8-BBEE-F50980B6A0D4@gmail.com> <20171115225112.NS_80%steffen@sdaoden.eu> Message-ID: <7A8D3D05-CF21-4E77-8ECD-B2DA328DE32F@quintile.net> I don’t agree the train was later, "The one after nine oh nine” :-) -Steve > On 15 Nov 2017, at 22:51, Steffen Nurpmeso wrote: > > Don Hopkins wrote: > |> I think 9 has ties to "pain", but the number that has connection \ > |> to "death" in Japanese is 4 (四 shi, "four", which sounds like 死 \ > |> shi, "death"). > |> > |> -嘘. > | > |9 means “no” in German. > > I wonder whether Plan9 used to be translated as plan-no, then. > Nine while nine (...waiting for the train). > > --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 gtaylor at tnetconsulting.net Thu Nov 16 10:29:50 2017 From: gtaylor at tnetconsulting.net (Grant Taylor) Date: Wed, 15 Nov 2017 17:29:50 -0700 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> Message-ID: <7eb1d2d9-f233-a6df-c675-d4ed88263696@tnetconsulting.net> On 11/15/2017 01:25 PM, Arthur Krewat wrote: > I find myself having to search for a nonexistent string just to get rid > of it's highlighting of a search string. " Map normal mode ^L to :noh to turn of hilighting of the most recent search. nnoremap :noh -- Grant. . . . unix || die -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3717 bytes Desc: S/MIME Cryptographic Signature URL: From gtaylor at tnetconsulting.net Thu Nov 16 10:35:10 2017 From: gtaylor at tnetconsulting.net (Grant Taylor) Date: Wed, 15 Nov 2017 17:35:10 -0700 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: <7eb1d2d9-f233-a6df-c675-d4ed88263696@tnetconsulting.net> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <7eb1d2d9-f233-a6df-c675-d4ed88263696@tnetconsulting.net> Message-ID: <365d0562-ec43-cdda-1a8b-869e7a687b71@tnetconsulting.net> On 11/15/2017 05:29 PM, Grant Taylor via TUHS wrote: > " Map normal mode ^L to :noh to turn of hilighting of the most recent > search. > nnoremap :noh I hit send too soon. Credit goes to @Gumnos for the idea. I also like the fact that ^L causes screen redraw, so double duty. -- Grant. . . . unix || die -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3717 bytes Desc: S/MIME Cryptographic Signature URL: From imp at bsdimp.com Thu Nov 16 10:52:17 2017 From: imp at bsdimp.com (Warner Losh) Date: Wed, 15 Nov 2017 17:52:17 -0700 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: <365d0562-ec43-cdda-1a8b-869e7a687b71@tnetconsulting.net> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <7eb1d2d9-f233-a6df-c675-d4ed88263696@tnetconsulting.net> <365d0562-ec43-cdda-1a8b-869e7a687b71@tnetconsulting.net> Message-ID: Speaking of TECO, this is from a wikipedia article on it. Presented w/o comment... run TECO *GZ0J\UNQN"E 20UN ' BUH BUV HK QN< J BUQ QN*10/3UI QI< \ +2*10+(QQ*QI)UA B L K QI*2-1UJ QA/QJUQ QA-(QQ*QJ)-2\ 10 at I// -1%I > QQ/10UT QH+QT+48UW QW-58"E 48UW %V ' QV"N QV^T ' QWUV QQ-(QT*10)UH > QV^T @^A/ /HKEX$$ 31415926535897932384 On Wed, Nov 15, 2017 at 5:35 PM, Grant Taylor via TUHS wrote: > On 11/15/2017 05:29 PM, Grant Taylor via TUHS wrote: > >> " Map normal mode ^L to :noh to turn of hilighting of the most recent >> search. >> nnoremap :noh >> > > I hit send too soon. > > Credit goes to @Gumnos for the idea. > > I also like the fact that ^L causes screen redraw, so double duty. > > > > > -- > Grant. . . . > unix || die > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fair-tuhs at netbsd.org Thu Nov 16 11:05:34 2017 From: fair-tuhs at netbsd.org (Erik E. Fair) Date: Wed, 15 Nov 2017 17:05:34 -0800 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <003701d35e5c$493a0e20$dbae2a60$@ronnatalie.com> References: <8780.1510781813@cesium.clock.org> Message-ID: <2270.1510794334@cesium.clock.org> Unless I'm mistaken, the Morris worm was the first such incident to make the front page of the New York Times (in an article by now-retired John Markoff): http://www.nytimes.com/1988/11/04/us/virus-in-military-computers-disrupts-systems-nationwide.html So I'm not surprised that other reporters started poking around. No one thought to call Apple (at least, not that anyone told me about), but given the limited nature (and understanding) of the Internet at the time, and its characterization by Markoff as "military", this is not too surprising. My group was a little worried about an AppleTalk-based virus getting loose in the Apple Engineering Network ... and that sort-of did happen, not very long after: http://virus.wikidot.com/wdef Fortunately, WDEF had a bug which limited its spread to promiscuous media exchange (floppies) - AppleShare volumes didn't have the resource it attempted to infect (a "desktop database"), and thus if your computer had WDEF, the first attempt to mount an AppleShare volume would crash your system - at that time, most Macs didn't have MMUs and didn't run real operating systems like Unix ... and we inside Apple used AppleShare extensively. Also easy to clean out: just rebuild the "desktop database" (hold down Option key when mounting disk volumes, IIRC). I'm also pretty sure that the Morris worm was the impetus for the formation of the Computer Emergency Response Team (CERT) at CMU Software Engineering Institute (SEI): https://en.wikipedia.org/wiki/Computer_emergency_response_team It looks like Wikipedia agrees with me. Tom Duff gave a related talk & paper at Summer USENIX 1989 that was most interesting, "Experience with Viruses on UNIX Systems": https://www.usenix.org/legacy/publications/compsystems/1989/spr_duff.pdf I especially liked the bit in which Tom's virus infected a multi-level secured UNIX system that Doug McIlroy and Jim Reeds were developing which they didn't spot until they turned on all their protections ... and programs started crashing all over the place. Erik From dario at darioniedermann.it Thu Nov 16 11:17:40 2017 From: dario at darioniedermann.it (Dario Niedermann) Date: Thu, 16 Nov 2017 02:17:40 +0100 Subject: [TUHS] basic tools / Universal Unix In-Reply-To: <8FE0F4AC-DDAE-482B-8148-CB9438F57549@tfeb.org> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <8FE0F4AC-DDAE-482B-8148-CB9438F57549@tfeb.org> Message-ID: <20171116011740.GD16236@darioniedermann.it> Il 01/11/2017 alle 14:25, Tim Bradshaw ha scritto: > Of course nowadays you can't rely on the thing called 'ed' being > 'ed': I know someone who lives in ed but can't run it on some machines > because it relies on something in /var somewhere being writable, which > it isn't. I've always thought that the *whole point* of ed was that > it did not rely on vast tracts of the system actually being there, > still less beng functional. This person now has to edit things with > cat (which, in some future release, will probably start assuming that > there's a configured ipv6 interface or something, because why would > that ever not be true?). I recommend said person install `ed' from the Heirloom project: it's a traditional version (with added support for UTF-8). It will even work on modern GNU/Linux (I know for sure because it's the one I use). http://heirloom.sourceforge.net/ -- Dario Niedermann. Also on the Internet at: gopher://darioniedermann.it/ <> https://www.darioniedermann.it/ From will.senn at gmail.com Thu Nov 16 11:22:49 2017 From: will.senn at gmail.com (Will Senn) Date: Wed, 15 Nov 2017 19:22:49 -0600 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <8780.1510781813@cesium.clock.org> References: <8780.1510781813@cesium.clock.org> Message-ID: <18182610-65cd-55eb-3346-c0526b40a2a0@gmail.com> On 11/15/17 3:36 PM, Erik E. Fair wrote: > I remember that Dave Pare put the binary analysis skills he'd acquired > in decompiling psl's empire game to good use in analyzing the worm. Hi Erik, Is this empire descended from Chuck Simmons' version vms-empire? Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From fair-tuhs at netbsd.org Thu Nov 16 11:56:07 2017 From: fair-tuhs at netbsd.org (Erik E. Fair) Date: Wed, 15 Nov 2017 17:56:07 -0800 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <18182610-65cd-55eb-3346-c0526b40a2a0@gmail.com> References: <8780.1510781813@cesium.clock.org> Message-ID: <23387.1510797367@cesium.clock.org> Sorry, "psl" is Peter S. Langston, so: https://en.wikipedia.org/wiki/Empire_(1972_video_game) http://www.langston.com That Wikipedia entry should describe it as a "computer game" (or "simulation") rather than as a "video game", given the common understanding of those phrases. PSL's "empire" was a multiplayer game similar (sort of) to the board game "Risk" and the "graphics" were ASCII-maps. I played that game at some length after leaving UCB - it was "guaranteed to drop your GPA two points" (addictive as hell). Another way to parboil your brain with it was to set the "update interval" to 5 seconds (a.k.a. a "flash" game) and have a several hour (instead of the more typical several month) gaming session with like-minded crazies ... I mean, "players" ... in a terminal room. I recall one such evening up at LBL with Craig Leres and Jef Poskanzer, among others ... Anyway, the Dave Pare mentioned in the Wikipedia entry is the same one who worked on decompiling the Morris worm, with the aforementioned tools he'd developed (he liked playing empire and wanted to fix bugs and extend the game, but psl was only supplying binaries ...). It's funny where tools come from sometimes. Erik From ron at ronnatalie.com Thu Nov 16 12:41:55 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 15 Nov 2017 21:41:55 -0500 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <23387.1510797367@cesium.clock.org> References: <8780.1510781813@cesium.clock.org> <23387.1510797367@cesium.clock.org> Message-ID: <007101d35e84$77cf1370$676d3a50$@ronnatalie.com> Ah, yes. Empire. Amusingly the thing self-limited to 60 minutes of connect time plus your moves were restricted by the number of BTUs (Bureaucratic Time Units) your capital generated. People used to play this at lunch at BRL. However they'd capture maps and other dumps from the game and then spend hours in the afternoon planning tomorrow's strategy. Finally, the director put an end to it. He told us computer geeks to remove the game from the system. My coworker suggested to the director (a man named Robert J. Eichelberger, the Army expert in shaped charges) that he just make the games inaccessible but not remove them from our source archives, saying it was like ripping pages out of a dictionary just because you didn't like the words. I faked an email shortly thereafter. Mr. Miles Please remove the following pages from your dictionary: 234, 342, 411. Thank You -Hasp. From don at DonHopkins.com Thu Nov 16 12:44:48 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 16 Nov 2017 03:44:48 +0100 Subject: [TUHS] :nohlsearch in vim In-Reply-To: <201711152242.vAFMgVDX051762@elf.torek.net> References: <201711152242.vAFMgVDX051762@elf.torek.net> Message-ID: <0FD866DC-B8C5-424C-A1C2-BB5AD677305D@gmail.com> Hey Chris, do you remember the story about why Morris’s worm wasn’t able to break into UMD’s machines through the finger daemon? ;) Do you still have the logs…? -Don > On 15 Nov 2017, at 23:42, Chris Torek wrote: > >> `:noh' turns off the highlighting of the current matches. > > YAY! > > I've been using Arthur Krewat's method, basically /asdf, > for a long time now. Now I have: > > map :nohlsearch > > in my .vimrc ( is backslash, so after /foo, \\ turns > off the highlighting). > > One other really useful thing, given issues with tabs vs spaces, > that I'll share here, comes just before this new entry: > > function! ToggleTabs() > if &list > set nolist > else > set list listchars=tab:>.,trail:>,precedes:< > endif > endfunction > > map t :call ToggleTabs() > > With this, \t makes tabs visible, or invisible if they are > currently visible. Despite the name it also highlights trailing > whitespace (the highlight is a bit subtle though). > > Chris From don at DonHopkins.com Thu Nov 16 13:00:18 2017 From: don at DonHopkins.com (Don Hopkins) Date: Thu, 16 Nov 2017 04:00:18 +0100 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <23387.1510797367@cesium.clock.org> References: <8780.1510781813@cesium.clock.org> <23387.1510797367@cesium.clock.org> Message-ID: Remember Eedie & Eddie, Peter Langston’s DecTalk voice synthesizers who would answer the phone with “Yes, operator, I will accept the charges!” and then responded to touch tone commands to perform algorithmic compositions and sing songs together to you over the telephone? http://www.langston.com/SVM.html Good thing Bellcore had all the free long distance phone service they could use, because anyone who knew the phone number for Eedie & Eddie could use it to make as many free third party charge long distance phone calls as they desired! (Spoiler: The phone number was listed in the title of Peter S. Langston’s 1986 Summer USENIX paper!) Search Results 201 644-2332 or Eedie & Eddie on the Wire: An Experiment in Music Generation http://www.langston.com/Papers/2332.pdf -Don > On 16 Nov 2017, at 02:56, Erik E. Fair wrote: > > Sorry, "psl" is Peter S. Langston, so: > > https://en.wikipedia.org/wiki/Empire_(1972_video_game) > > http://www.langston.com > > That Wikipedia entry should describe it as a "computer game" (or "simulation") rather than as a "video game", given the common understanding of those phrases. PSL's "empire" was a multiplayer game similar (sort of) to the board game "Risk" and the "graphics" were ASCII-maps. > > I played that game at some length after leaving UCB - it was "guaranteed to drop your GPA two points" (addictive as hell). Another way to parboil your brain with it was to set the "update interval" to 5 seconds (a.k.a. a "flash" game) and have a several hour (instead of the more typical several month) gaming session with like-minded crazies ... I mean, "players" ... in a terminal room. > > I recall one such evening up at LBL with Craig Leres and Jef Poskanzer, among others ... > > Anyway, the Dave Pare mentioned in the Wikipedia entry is the same one who worked on decompiling the Morris worm, with the aforementioned tools he'd developed (he liked playing empire and wanted to fix bugs and extend the game, but psl was only supplying binaries ...). > > It's funny where tools come from sometimes. > > Erik -------------- next part -------------- An HTML attachment was scrubbed... URL: From doug at cs.dartmouth.edu Thu Nov 16 13:55:52 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Wed, 15 Nov 2017 22:55:52 -0500 Subject: [TUHS] TUHS Digest, Vol 24, Issue 72 In-Reply-To: References: Message-ID: <201711160355.vAG3tqdC026906@coolidge.cs.Dartmouth.EDU> > I especially liked the bit in which Tom's virus infected a multi-level secured UNIX system that Doug McIlroy and Jim Reeds were developing which they didn't spot until they turned on all their protections ... and programs started crashing all over the place. That's not quite right. The system was running nicely with a lattice-based protection system (read from below, write to above) working fine. Processes typocally begin at lattice bottom, but move to hivel levels depending on what data they see (including, of course any exec-ed file.) All the standard utilities, being usable by anyone are at lattice bottom. Cool, until you realize that highly trusted system programs such as sudo are at lattice bottom and are protected only by the old rwx bits, not by the read-write rules. So, following an idea of Biba's, that integrity rules are the opposite of secrecy rules. You don't want to forbid writing to high-integrity places, nor read from low-integrity places. This was done by setting the default security level away from the lattice bottom. High-integrity stuff was below this floor; high-secrecy above. The Duff story is about the day we moved the floor off bottom. An integrity violation during the boot sequence stopped the system cold. Clearly we'd misconfigured something. But no, after a couple of days of fruitless search, Jim Reeds lit up, "We caught a virus!" We were unaware of Duff's experiment. He had been chagrined when it escaped from one machine, but was able to decontaminate all the machines in the center. Except ours, which was not on the automatic software distrutioin list, since it was running a different system. From dave at horsfall.org Thu Nov 16 14:34:30 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 16 Nov 2017 15:34:30 +1100 (EST) Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: <20171115221853.E0E0C1F978@orac.inputplus.co.uk> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <20171115221853.E0E0C1F978@orac.inputplus.co.uk> Message-ID: On Wed, 15 Nov 2017, Ralph Corderoy wrote: > `:noh' turns off the highlighting of the current matches. > They start again on the next search, e.g. `n'. > In less(1), it's `Esc u'. Speaking of which, am I the only one annoyed by Penguin/OS' silly coloured "ls" output? I can never remember how to turn off that frippery, as the contrast is particularly hard on my eyes; the minimalist "F" flag works just fine. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From jcapp at anteil.com Thu Nov 16 14:36:52 2017 From: jcapp at anteil.com (Jim Capp) Date: Wed, 15 Nov 2017 23:36:52 -0500 (EST) Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: Message-ID: <14657452.14897.1510807012402.JavaMail.root@zimbraanteil> You are not the only one !!! From: "Dave Horsfall" To: "The Eunuchs Hysterical Society" Sent: Wednesday, November 15, 2017 11:34:30 PM Subject: Re: [TUHS] TECO was: Re: basic tools / Universal Unix On Wed, 15 Nov 2017, Ralph Corderoy wrote: > `:noh' turns off the highlighting of the current matches. > They start again on the next search, e.g. `n'. > In less(1), it's `Esc u'. Speaking of which, am I the only one annoyed by Penguin/OS' silly coloured "ls" output? I can never remember how to turn off that frippery, as the contrast is particularly hard on my eyes; the minimalist "F" flag works just fine. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." -------------- next part -------------- An HTML attachment was scrubbed... URL: From lars at nocrew.org Thu Nov 16 16:00:04 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Thu, 16 Nov 2017 06:00:04 +0000 Subject: [TUHS] Origin of 'kill -9'? In-Reply-To: <1A99490E-E7E7-40A8-BBEE-F50980B6A0D4@gmail.com> (Don Hopkins's message of "Wed, 15 Nov 2017 22:52:07 +0100") References: <20171114200751.3536621358@orac.inputplus.co.uk> <1A99490E-E7E7-40A8-BBEE-F50980B6A0D4@gmail.com> Message-ID: <7wzi7mkbkr.fsf@junk.nocrew.org> Don Hopkins wrote: > 9 means “no” in German. Isn't it nine = neun, but no = nein? From imp at bsdimp.com Thu Nov 16 16:03:54 2017 From: imp at bsdimp.com (Warner Losh) Date: Wed, 15 Nov 2017 23:03:54 -0700 Subject: [TUHS] Origin of 'kill -9'? In-Reply-To: <7wzi7mkbkr.fsf@junk.nocrew.org> References: <20171114200751.3536621358@orac.inputplus.co.uk> <1A99490E-E7E7-40A8-BBEE-F50980B6A0D4@gmail.com> <7wzi7mkbkr.fsf@junk.nocrew.org> Message-ID: On Wed, Nov 15, 2017 at 11:00 PM, Lars Brinkhoff wrote: > Don Hopkins wrote: > > 9 means “no” in German. > > Isn't it nine = neun, but no = nein? > Yes. But this is more of a pun. English 9 (nine) == German No (nein). Kinda like Oct 31 == Dec 25... Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From steve at quintile.net Thu Nov 16 17:39:24 2017 From: steve at quintile.net (Steve Simon) Date: Thu, 16 Nov 2017 07:39:24 +0000 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <23387.1510797367@cesium.clock.org> References: <8780.1510781813@cesium.clock.org> <23387.1510797367@cesium.clock.org> Message-ID: I remember reading the New Scientist article on the worm. Was Dave Parr the person described as once described as “Dave ADB-is-your-friend Parr”? -Steve > On 16 Nov 2017, at 01:56, Erik E. Fair wrote: > > Sorry, "psl" is Peter S. Langston, so: > > https://en.wikipedia.org/wiki/Empire_(1972_video_game) > > http://www.langston.com > > That Wikipedia entry should describe it as a "computer game" (or "simulation") rather than as a "video game", given the common understanding of those phrases. PSL's "empire" was a multiplayer game similar (sort of) to the board game "Risk" and the "graphics" were ASCII-maps. > > I played that game at some length after leaving UCB - it was "guaranteed to drop your GPA two points" (addictive as hell). Another way to parboil your brain with it was to set the "update interval" to 5 seconds (a.k.a. a "flash" game) and have a several hour (instead of the more typical several month) gaming session with like-minded crazies ... I mean, "players" ... in a terminal room. > > I recall one such evening up at LBL with Craig Leres and Jef Poskanzer, among others ... > > Anyway, the Dave Pare mentioned in the Wikipedia entry is the same one who worked on decompiling the Morris worm, with the aforementioned tools he'd developed (he liked playing empire and wanted to fix bugs and extend the game, but psl was only supplying binaries ...). > > It's funny where tools come from sometimes. > > Erik From pete at dunnington.plus.com Thu Nov 16 18:42:41 2017 From: pete at dunnington.plus.com (Pete Turnbull) Date: Thu, 16 Nov 2017 08:42:41 +0000 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <20171115221853.E0E0C1F978@orac.inputplus.co.uk> Message-ID: <486ee107-d183-bcd3-4e51-f1104ad3d67e@dunnington.plus.com> On 16/11/2017 04:34, Dave Horsfall wrote: >> Speaking of which, am I the only one annoyed by Penguin/OS' silly > coloured "ls" output? I can never remember how to turn off that > frippery, as the contrast is particularly hard on my eyes; the > minimalist "F" flag works just fine. I find the colours awful, and have that stupidity turned off, along with the coloured prompt, the ridiculously long path in the prompt, and set MANPAGER="less -X" so as not to disappear manpages. -- Pete Pete Turnbull From arnold at skeeve.com Thu Nov 16 19:19:31 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Thu, 16 Nov 2017 02:19:31 -0700 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <20171115221853.E0E0C1F978@orac.inputplus.co.uk> Message-ID: <201711160919.vAG9JVTn024753@freefriends.org> Dave Horsfall wrote: > Speaking of which, am I the only one annoyed by Penguin/OS' silly coloured > "ls" output? I can never remember how to turn off that frippery, as the > contrast is particularly hard on my eyes; the minimalist "F" flag works > just fine. I *think* that's because some global file does something like alias ls='ls --colors' You can verify with type ls Try running unalias ls and see if that helps. Arnold From mutiny.mutiny at rediffmail.com Thu Nov 16 19:29:13 2017 From: mutiny.mutiny at rediffmail.com (Mutiny ) Date: 16 Nov 2017 09:29:13 -0000 Subject: [TUHS] =?utf-8?q?TECO_was=3A___basic_tools_/_Universal_Unix?= In-Reply-To: <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> Message-ID: <1510775556.S.91090.5372.f4-234-102.1510824553.22612@webmail.rediffmail.com> is the Unix implementation free for the public?From: Arthur Krewat <krewat at kilonet.net>Sent: Thu, 16 Nov 2017 01:22:36To: Clem Cole <clemc at ccc.com>, Bakul Shah <bakul at bitblocks.com>Cc: TUHS main list <tuhs at minnie.tuhs.org>Subject: [TUHS] TECO was: basic tools / Universal UnixSuddenly I fell like I'm in a TECO support group ;)I have my own implementations of TECO - both on UNIX and MSDOS (of all things). They both do colorization of structured programming, something that preceded EMACs colorization by a few years.I always wondered if my released MSDOS version of TECO gave people ideas.When did EMACS start coloring things? I started it in my TECO as of around 1984-1985 - it supported it in text strings, parentheses, etc. From my MSDOS version, showing some MASM code:The structured macros were inspired by Bruce Maier's structured macros he did for MACRO-10 on TOPS-10 in the mid to late 70's. On 11/15/2017 2:01 PM, Clem Cole wrote: -c7SVer_OetpYCwxK2Q at mail.gmail.com">   On Wed, Nov 15, 2017 at 1:13 PM, Bakul Shah <bakul at bitblocks.com> wrote: Tom Almy's version,   ​I'd forgotten Tom was a teco guy.   I'm not sure what happened too it, but at some point Tom and I got the RT11 version (which was in Macro-11 assembler) running in V7 @ Tektronix ​before we had vi. Tom was the biggest user at that point.  I was running something Phil Karn had brought to CMU from Cornell (and I took to Tektronix) called 'fred' (friendly ed) which had compiled in terminal support. Fred supported glass tty's; which is why I liked it even though I knew teco & emacs from my 10's days.   Mark Bales came up from Berkeley later that summer and brought 1BSD/2BSD with him (that's when I learned csh and reprogrammed my fingers to the current rom configuration).  Gosling Emacs for UNIX does not show up until we started running Vaxen and had the address space, so at the time it was ed, fred, vi, teco on the 11s. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: dmddfbedoblifaak.png Type: image/png Size: 60010 bytes Desc: not available URL: From arnold at skeeve.com Thu Nov 16 19:58:29 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Thu, 16 Nov 2017 02:58:29 -0700 Subject: [TUHS] Bell Labs 'se' screen editor? Message-ID: <201711160958.vAG9wTvp028005@freefriends.org> Hi All. In 1983, while a grad student at Ga Tech, I did some contract programming at Southern Bell. The system was a PDP 11/70 running USG Unix 4.0 (yes, it existed! That's another story.) Beside ed, the system had a screen editor named 'se' (not related to the Ga Tech 'se' screen editor). It apparently was written within AT&T. ISTR that it was written mainly for Vaxen but had been squeezed and made to run on the PDP 11. Did anyone else ever use this? Know anything about it? I never saw it or heard it about it again; it didn't ship with System V. Thanks, Arnold From clemc at ccc.com Fri Nov 17 00:55:18 2017 From: clemc at ccc.com (Clem Cole) Date: Thu, 16 Nov 2017 09:55:18 -0500 Subject: [TUHS] TECO was: basic tools / Universal Unix In-Reply-To: <1510775556.S.91090.5372.f4-234-102.1510824553.22612@webmail.rediffmail.com> References: <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <1510775556.S.91090.5372.f4-234-102.1510824553.22612@webmail.rediffmail.com> Message-ID: On Thu, Nov 16, 2017 at 4:29 AM, Mutiny wrote: > is the Unix implementation free for the public > ​I sent PC a note and this the reply ... ​From: ​ Paul Cantrell ​To: Clem Cole Date:​ Thu, Nov 16, 2017 at 8:51 AM ​Subject: teco​ Hey Clem, lol, it’s funny, but there’s still lots of stuff I use it for despite the fact that I haven’t really worked on it in years. There’s a version up on the net here: http://videoteco.cvs. sourceforge.net/viewvc/videoteco/videoteco/ although I can’t say how well that builds these days… Still, people are welcome to give it a try. I keep thinking about re-writing it in a modern language… -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Fri Nov 17 01:54:05 2017 From: clemc at ccc.com (Clem Cole) Date: Thu, 16 Nov 2017 10:54:05 -0500 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <23387.1510797367@cesium.clock.org> References: <8780.1510781813@cesium.clock.org> <18182610-65cd-55eb-3346-c0526b40a2a0@gmail.com> <23387.1510797367@cesium.clock.org> Message-ID: On Wed, Nov 15, 2017 at 8:56 PM, Erik E. Fair wrote: > Sorry, "psl" is Peter S. Langston, so: > > https://en.wikipedia.org/wiki/Empire_(1972_video_game) > > http://www.langston.com > > That Wikipedia entry should describe it as a "computer game" (or > "simulation") rather than as a "video game", given the common understanding > of those phrases. PSL's "empire" was a multiplayer game similar (sort of) > to the board game "Risk" and the "graphics" were ASCII-maps. > > I played that game at some length after leaving UCB - it was "guaranteed > to drop your GPA two points" (addictive as hell). Another way to parboil > your brain with it was to set the "update interval" to 5 seconds (a.k.a. a > "flash" game) and have a several hour (instead of the more typical several > month) gaming session with like-minded crazies ... I mean, "players" ... in > a terminal room. > > I recall one such evening up at LBL with Craig Leres and Jef Poskanzer, > among others ... > > Anyway, the Dave Pare mentioned in the Wikipedia entry is the same one who > worked on decompiling the Morris worm, with the aforementioned tools he'd > developed (he liked playing empire and wanted to fix bugs and extend the > game, but psl was only supplying binaries ...). > > It's funny where tools come from sometimes. > > Erik > Indeed - this is a solid bit of UNIX history. We should put a PSL Games Tape into Warren's library. And Empire was more additive then Adventure when it came out :-) Fortunately, I only got mildly sucked in. If I recall, Ward Cunningham, Steve Glaser and Charlie Perkins were pretty heavily caught up. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jon at fourwinds.com Fri Nov 17 01:58:15 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Thu, 16 Nov 2017 07:58:15 -0800 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: References: <8780.1510781813@cesium.clock.org> <18182610-65cd-55eb-3346-c0526b40a2a0@gmail.com> <23387.1510797367@cesium.clock.org> Message-ID: <201711161558.vAGFwFg9008631@darkstar.fourwinds.com> Clem Cole writes: > And Empire was more additive then Adventure when it came out :-) > Fortunately, I only got mildly sucked in. If I recall, Ward Cunningham, > Steve Glaser and Charlie Perkins were pretty heavily caught up. Hey, if we're going down that rathole let's not forget that amazing vi-trainer called rogue. And it worked on 80 column displays too :-) From nobozo at gmail.com Fri Nov 17 03:42:25 2017 From: nobozo at gmail.com (Forrest, Jon) Date: Thu, 16 Nov 2017 09:42:25 -0800 Subject: [TUHS] A Human 'Make' Program (almost) Message-ID: I started with V6 Unix at UC Santa Barbara in 1977. I remember that when V7 came out, I learned about the 'make' program and started using it with great success to help me build a large Fortran package for signal processing. For its size, there was a lot going on in Santa Barbara at that time. It was one of the first 4 Arpanet nodes, and there were a bunch of companies making networking products and doing speech research as a result. I was a student at UC Santa Barbara but I started toying with the idea of finding a real job, mostly to make more money. I found several possibilities and went to interview at one. This place had an a need for somebody to, in essence, be a human 'make' program. The computer they used, some kind of Data General, was so slow that they couldn't do a build more that once or twice a day. So, in an attempt to speed up the build, they wanted to hire somebody who would, by hand, keep track of the last modification date of all the components in the package they sold, and do a build that only performed the necessary steps to generate the package - in other words a human make program. Apparently they figured that this would save enough time to justify the $24K salary they were willing to pay. $24K in 1978 wasn't a bad salary at all. I didn't take the job, but I've often thought that what I should have done would have been to take the job under the condition that I could mostly work remotely. Then, I could have used the 'make' program on our V7 Unix system to generate the optimal script to build the package, and then taken the script back to the company to run on the Data General computer. I figure this would have taken maybe an hour a day. The rest of the time I could have spent on the beach thinking about ways to spend that $24K. Jon Forrest From dave at horsfall.org Fri Nov 17 06:35:54 2017 From: dave at horsfall.org (Dave Horsfall) Date: Fri, 17 Nov 2017 07:35:54 +1100 (EST) Subject: [TUHS] TECO was: basic tools / Universal Unix In-Reply-To: <1510775556.S.91090.5372.f4-234-102.1510824553.22612@webmail.rediffmail.com> References: <1510775556.S.91090.5372.f4-234-102.1510824553.22612@webmail.rediffmail.com> Message-ID: On Thu, 16 Nov 2017, Mutiny wrote: > is the Unix implementation free for the public? There's a FreeBSD port for it; I might even try it... Can't find a Mac version, though, at least not in MacPorts. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From clemc at ccc.com Fri Nov 17 07:00:05 2017 From: clemc at ccc.com (Clem Cole) Date: Thu, 16 Nov 2017 16:00:05 -0500 Subject: [TUHS] TECO was: basic tools / Universal Unix In-Reply-To: References: <1510775556.S.91090.5372.f4-234-102.1510824553.22612@webmail.rediffmail.com> Message-ID: PC did his original development on a Masscomp box which was basically 4.2 APIs and was one of the original X systems (its what ORA did the original doc and how Tim got his start). Paul is a Mac guy (at one point it compiled on the 68K Mac OS) and he moved the development there at one point. So, I suspect it will build without too much difficulty on *BSD style systems (and he might even answer a question or two if you run into issues). I suggest try it and see how far you get. The biggest issue is the video calls were for older versions and I don't think they talk to modern API's; but I suspect on the Mac the X windows system will work fine. Then again, I have not tried it in years and I'm not sure at this point, I could pull teco commands out of my long paged out personal memory system. Clem On Thu, Nov 16, 2017 at 3:35 PM, Dave Horsfall wrote: > On Thu, 16 Nov 2017, Mutiny wrote: > > is the Unix implementation free for the public? >> > > There's a FreeBSD port for it; I might even try it... Can't find a Mac > version, though, at least not in MacPorts. > > -- > Dave Horsfall DTM (VK2KFU) "Those who don't understand security will > suffer." > -------------- next part -------------- An HTML attachment was scrubbed... URL: From random832 at fastmail.com Fri Nov 17 07:26:54 2017 From: random832 at fastmail.com (Random832) Date: Thu, 16 Nov 2017 16:26:54 -0500 Subject: [TUHS] TECO was: basic tools / Universal Unix In-Reply-To: References: <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <1510775556.S.91090.5372.f4-234-102.1510824553.22612@webmail.rediffmail.com> Message-ID: <1510867614.1238514.1175149000.67AD9F2F@webmail.messagingengine.com> On Thu, Nov 16, 2017, at 09:55, Clem Cole wrote: > ​I sent PC a note and this the reply ... > ​From: ​ Paul Cantrell > There’s a version up on the net here: http://videoteco.cvs. > sourceforge.net/viewvc/videoteco/videoteco/ > > although I can’t say how well that builds these days… Still, people are > welcome to give it a try. It builds, with a number of warnings - the most concerning of which are pointer/integer casts on 64-bit systems (most seem to be debug printing, but there are a couple that aren't), but seems to run okay - I don't know any teco to really exercise it though. From dave at horsfall.org Fri Nov 17 07:59:17 2017 From: dave at horsfall.org (Dave Horsfall) Date: Fri, 17 Nov 2017 08:59:17 +1100 (EST) Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <20171115221853.E0E0C1F978@orac.inputplus.co.uk> Message-ID: On Thu, 16 Nov 2017, Dave Horsfall wrote: > Speaking of which, am I the only one annoyed by Penguin/OS' silly > coloured "ls" output? I can never remember how to turn off that > frippery, as the contrast is particularly hard on my eyes; the > minimalist "F" flag works just fine. Thanks, all; I'll just knock up a simple script that blows away the entire environment and unaliases everything in sight. I'll probably call it "orca" because I have a warped sense of humour... Unix taught me to be minimalist; you had to be when writing a bootstrap to fit into 512 bytes... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From akosela at andykosela.com Fri Nov 17 08:58:59 2017 From: akosela at andykosela.com (Andy Kosela) Date: Thu, 16 Nov 2017 23:58:59 +0100 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <20171115221853.E0E0C1F978@orac.inputplus.co.uk> Message-ID: On Thursday, November 16, 2017, Dave Horsfall wrote: > On Thu, 16 Nov 2017, Dave Horsfall wrote: > > Speaking of which, am I the only one annoyed by Penguin/OS' silly coloured >> "ls" output? I can never remember how to turn off that frippery, as the >> contrast is particularly hard on my eyes; the minimalist "F" flag works >> just fine. >> > > Thanks, all; I'll just knock up a simple script that blows away the entire > environment and unaliases everything in sight. I'll probably call it > "orca" because I have a warped sense of humour... > > Unix taught me to be minimalist; you had to be when writing a bootstrap to > fit into 512 bytes... > > If you happen to be on Red Hat derived Linux, the easiest way to turn off all this crap is to rename /etc/profile to something like /etc/profile.dist and then populate your own startup scripts. For a minimalist prompt I just use: export PS1='\h \$ ' --Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: From doug at cs.dartmouth.edu Fri Nov 17 09:15:00 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Thu, 16 Nov 2017 18:15:00 -0500 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix Message-ID: <201711162315.vAGNF0r7003992@coolidge.cs.Dartmouth.EDU> >Speaking of which, am I the only one annoyed by Penguin/OS' silly coloured "ls" output? Syntax coloring, of which IDE's seem to be enamored, always looks to me like a ransom note. For folks who like colorized text, Writers Workbench had a tool that can be harnessed to do a bang-up job of syntax colorizing for English: "parts" did a remarkable job of inferring parts of spechc in running text. Doug From doug at cs.dartmouth.edu Fri Nov 17 09:24:48 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Thu, 16 Nov 2017 18:24:48 -0500 Subject: [TUHS] Happy birthday, Morris Worm! Message-ID: <201711162324.vAGNOnJP004014@coolidge.cs.Dartmouth.EDU> > let's not forget that amazing vi-trainer called rogue. Also amazing is its robust survival at angband.org. From ralph at inputplus.co.uk Fri Nov 17 09:35:31 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Thu, 16 Nov 2017 23:35:31 +0000 Subject: [TUHS] Happy birthday, Morris Worm! In-Reply-To: <201711162324.vAGNOnJP004014@coolidge.cs.Dartmouth.EDU> References: <201711162324.vAGNOnJP004014@coolidge.cs.Dartmouth.EDU> Message-ID: <20171116233531.73A591F938@orac.inputplus.co.uk> Doug wrote: > Also amazing is its robust survival at angband.org. Now known as http://rephial.org/ -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From grog at lemis.com Fri Nov 17 11:18:08 2017 From: grog at lemis.com (Greg 'groggy' Lehey) Date: Fri, 17 Nov 2017 12:18:08 +1100 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <20171115221853.E0E0C1F978@orac.inputplus.co.uk> Message-ID: <20171117011808.GA46276@eureka.lemis.com> On Thursday, 16 November 2017 at 15:34:30 +1100, Dave Horsfall wrote: > On Wed, 15 Nov 2017, Ralph Corderoy wrote: > >> `:noh' turns off the highlighting of the current matches. >> They start again on the next search, e.g. `n'. >> In less(1), it's `Esc u'. > > Speaking of which, am I the only one annoyed by Penguin/OS' silly > coloured "ls" output? Certainly not. But I don't think it's all Linux. I've summarized how to fix this and other annoyance in my Linux HOWTO page: http://www.lemis.com/grog/HOWTO/linux-setup.php Greg -- Sent from my desktop computer. Finger grog at lemis.com for PGP public key. See complete headers for address and phone numbers. This message is digitally signed. If your Microsoft mail program reports problems, please read http://lemis.com/broken-MUA -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 163 bytes Desc: not available URL: From scj at yaccman.com Fri Nov 17 12:17:43 2017 From: scj at yaccman.com (Steve Johnson) Date: Thu, 16 Nov 2017 18:17:43 -0800 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: Message-ID: Reminds me of a comment a seasoned co-worker came out with when looking over a new employee's program, filled with variableNamesThatRanOnAndOnForHalfALineOrMaybeLonger.  "I used to write boot loaders that were shorter than your variable names!" Steve ----- Original Message ----- From: "Andy Kosela" To:"Dave Horsfall" Cc:"The Eunuchs Hysterical Society" Sent:Thu, 16 Nov 2017 23:58:59 +0100 Subject:Re: [TUHS] TECO was: Re: basic tools / Universal Unix On Thursday, November 16, 2017, Dave Horsfall wrote: On Thu, 16 Nov 2017, Dave Horsfall wrote: Speaking of which, am I the only one annoyed by Penguin/OS' silly coloured "ls" output?  I can never remember how to turn off that frippery, as the contrast is particularly hard on my eyes; the minimalist "F" flag works just fine. Thanks, all; I'll just knock up a simple script that blows away the entire environment and unaliases everything in sight.  I'll probably call it "orca" because I have a warped sense of humour... Unix taught me to be minimalist; you had to be when writing a bootstrap to fit into 512 bytes... If you happen to be on Red Hat derived Linux, the easiest way to turn off all this crap is to rename /etc/profile to something like /etc/profile.dist and then populate your own startup scripts. For a minimalist prompt I just use:   export PS1='h $ ' --Andy   Links: ------ [1] mailto:dave at horsfall.org -------------- next part -------------- An HTML attachment was scrubbed... URL: From ggm at algebras.org Fri Nov 17 12:38:13 2017 From: ggm at algebras.org (George Michaelson) Date: Fri, 17 Nov 2017 10:38:13 +0800 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: Message-ID: I THINK that I don't like ls colours, but I have to admit that since I started trying to pay attention more, I find colour coding has some value, for some meaning of some and no value defined. Actually no, I still hate colour LS. I like ls -F because the implied extra information can be semantically extracted with a grep, although why find . -type d -maxdepth 1 isn't being used is beyond me. de gustibus non disputandum, but on a unibus, there are also no disputes because the bus master arbitrates On Fri, Nov 17, 2017 at 10:17 AM, Steve Johnson wrote: > Reminds me of a comment a seasoned co-worker came out with when looking over > a new employee's program, filled with > variableNamesThatRanOnAndOnForHalfALineOrMaybeLonger. "I used to write boot > loaders that were shorter than your variable names!" > > Steve > > > > ----- Original Message ----- > From: > "Andy Kosela" > > To: > "Dave Horsfall" > Cc: > "The Eunuchs Hysterical Society" > Sent: > Thu, 16 Nov 2017 23:58:59 +0100 > Subject: > Re: [TUHS] TECO was: Re: basic tools / Universal Unix > > > > > On Thursday, November 16, 2017, Dave Horsfall wrote: >> >> On Thu, 16 Nov 2017, Dave Horsfall wrote: >> >>> Speaking of which, am I the only one annoyed by Penguin/OS' silly >>> coloured "ls" output? I can never remember how to turn off that frippery, >>> as the contrast is particularly hard on my eyes; the minimalist "F" flag >>> works just fine. >> >> >> Thanks, all; I'll just knock up a simple script that blows away the entire >> environment and unaliases everything in sight. I'll probably call it "orca" >> because I have a warped sense of humour... >> >> Unix taught me to be minimalist; you had to be when writing a bootstrap to >> fit into 512 bytes... >> > > If you happen to be on Red Hat derived Linux, the easiest way to turn off > all this crap is to rename /etc/profile to something like /etc/profile.dist > and then populate your own startup scripts. > > For a minimalist prompt I just use: > > export PS1='\h \$ ' > > --Andy > > From lyndon at orthanc.ca Fri Nov 17 13:50:27 2017 From: lyndon at orthanc.ca (Lyndon Nerenberg) Date: Thu, 16 Nov 2017 19:50:27 -0800 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <20171115221853.E0E0C1F978@orac.inputplus.co.uk> Message-ID: <336AC9E7-6BD3-444A-8FF9-8F4633331A6A@orthanc.ca> > On Nov 16, 2017, at 2:58 PM, Andy Kosela wrote: > > If you happen to be on Red Hat derived Linux, the easiest way to turn off all this crap is to rename /etc/profile to something like /etc/profile.dist and then populate your own startup scripts. Better is to install a .profile that begins with 'unalias -a'. That seems to clean out all the cruft and leave you with a clean slate to build from. I've just learned to install my own .profile and .env files, and ignore the crap foisted on me by ... whatever ... From itz at very.loosely.org Fri Nov 17 13:56:15 2017 From: itz at very.loosely.org (Ian Zimmerman) Date: Thu, 16 Nov 2017 19:56:15 -0800 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: Message-ID: <20171117035615.55nojmey5wz4fz63@matica.foolinux.mooo.com> On 2017-11-17 10:38, George Michaelson wrote: > Actually no, I still hate colour LS. I like ls -F because the implied > extra information can be semantically extracted with a grep, although > why find . -type d -maxdepth 1 isn't being used is beyond me. Colorized ls can show you other things. For example: * setuid/setgid files * broken symlinks ls -F can't do these. Myself, I like ls itself to be colourless, but I do have an alias "cls" and use it often. -- Please don't Cc: me privately on mailing lists and Usenet, if you also post the followup to the list or newsgroup. To reply privately _only_ on Usenet, fetch the TXT record for the domain. From usotsuki at buric.co Fri Nov 17 14:07:23 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Thu, 16 Nov 2017 23:07:23 -0500 (EST) Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: <20171117035615.55nojmey5wz4fz63@matica.foolinux.mooo.com> References: <20171117035615.55nojmey5wz4fz63@matica.foolinux.mooo.com> Message-ID: On Thu, 16 Nov 2017, Ian Zimmerman wrote: > On 2017-11-17 10:38, George Michaelson wrote: > >> Actually no, I still hate colour LS. I like ls -F because the implied >> extra information can be semantically extracted with a grep, although >> why find . -type d -maxdepth 1 isn't being used is beyond me. > > Colorized ls can show you other things. For example: > > * setuid/setgid files > * broken symlinks > > ls -F can't do these. > > Myself, I like ls itself to be colourless, but I do have an alias "cls" > and use it often. > > Overall I guess it's more of a matter of, well, do you want Unix or do you want GNU? On a desktop, I tend to find the GNU extensions useful. On a server, I think I want lean and mean, minimalist, and more of a pure Unix environment. -uso. From lars at nocrew.org Fri Nov 17 16:28:55 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Fri, 17 Nov 2017 06:28:55 +0000 Subject: [TUHS] TECO was: basic tools / Universal Unix In-Reply-To: <1510775556.S.91090.5372.f4-234-102.1510824553.22612@webmail.rediffmail.com> (Mutiny's message of "16 Nov 2017 09:29:13 -0000") References: <1510775556.S.91090.5372.f4-234-102.1510824553.22612@webmail.rediffmail.com> Message-ID: <7wefoxifko.fsf@junk.nocrew.org> Mutiny wrote: > is the Unix implementation free for the public? Another one? SciTECO. https://github.com/rhaberkorn/sciteco From akosela at andykosela.com Fri Nov 17 16:51:49 2017 From: akosela at andykosela.com (Andy Kosela) Date: Fri, 17 Nov 2017 07:51:49 +0100 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: <336AC9E7-6BD3-444A-8FF9-8F4633331A6A@orthanc.ca> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <20171115221853.E0E0C1F978@orac.inputplus.co.uk> <336AC9E7-6BD3-444A-8FF9-8F4633331A6A@orthanc.ca> Message-ID: On Friday, November 17, 2017, Lyndon Nerenberg wrote: > > > On Nov 16, 2017, at 2:58 PM, Andy Kosela > wrote: > > > > If you happen to be on Red Hat derived Linux, the easiest way to turn > off all this crap is to rename /etc/profile to something like > /etc/profile.dist and then populate your own startup scripts. > > Better is to install a .profile that begins with 'unalias -a'. That seems > to clean out all the cruft and leave you with a clean slate to build from. > > I've just learned to install my own .profile and .env files, and ignore > the crap foisted on me by ... whatever ... Why wasting all the cycles for sourcing all this crap in the first place? I know we have faster computers now, but still I do not want to load something that is completely unnecessary, just so I can remove it later with 'unalias'. IMHO it is much cleaner to remove/rename all this, and then start with your own scripts. I happen to still work a lot on hardware monochrome terminals connected via serial -- it is noticably slower if color information is included in the output... I always hated color on UNIX. Monochrome green/amber/white is perfectly fine to me. --Andy -------------- next part -------------- An HTML attachment was scrubbed... URL: From michael at kjorling.se Fri Nov 17 18:44:19 2017 From: michael at kjorling.se (Michael =?utf-8?B?S2rDtnJsaW5n?=) Date: Fri, 17 Nov 2017 08:44:19 +0000 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: References: Message-ID: <20171117084419.GA6171@h-174-65.A328.priv.bahnhof.se> On 17 Nov 2017 10:38 +0800, from ggm at algebras.org (George Michaelson): > although why find . -type d -maxdepth 1 isn't being used is beyond me. (In normal usage) unless you want your dot-directories as well, there's always good ol' \ls -1d */, or even echo */ if you can live with the entries being all on one line separated by just one space. Works nicely in an interactive shell, but may be slightly too unreliable for a script (in GNU bash, the exact behavior depends on the globbing options such as dotglob; other shells might act differently based on state too, I just am not too familiar with them). Using \ls above because some people (including myself) already have their ls aliased to a ls command that includes -F, which looks ugly when used with -d */. If you aren't one of them, then maybe you don't need the backslash. Using echo has the bonus that it's very often built in to the shell, so no external invocation is required. I don't think I'd call find minimalistic anything. :-) Modern ls is pretty bloated too (surprisingly enough, on my system, the binary for find is only about twice the size of the binary for ls; 233,968 and 114,032 bytes, respectively, but that's not counting any libraries they pull in dynamically), but ls is probably in the disk cache already; echo's nice and lean, though... -- Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se “People who think they know everything really annoy those of us who know we don’t.” (Bjarne Stroustrup) From mutiny.mutiny at rediffmail.com Fri Nov 17 19:08:13 2017 From: mutiny.mutiny at rediffmail.com (Mutiny ) Date: 17 Nov 2017 09:08:13 -0000 Subject: [TUHS] =?utf-8?q?TECO_was=3A_basic_tools_/_Universal_Unix?= In-Reply-To: <1510867614.1238514.1175149000.67AD9F2F@webmail.messagingengine.com> Message-ID: <1510867658.S.5805.14617.f4-234-189.1510909693.27397@webmail.rediffmail.com> Does ESCESC work for you?From: Random832 <random832 at fastmail.com>Sent: Fri, 17 Nov 2017 02:57:38To: tuhs at minnie.tuhs.orgSubject: Re: [TUHS] TECO was: basic tools / Universal UnixOn Thu, Nov 16, 2017, at 09:55, Clem Cole wrote:> ​I sent PC a note and this the reply ...> ​From: ​ Paul Cantrell> There’s a version up on the net here: http://videoteco.cvs.> sourceforge.net/viewvc/videoteco/videoteco/>> although I can’t say how well that builds these days… Still, people are> welcome to give it a try.It builds, with a number of warnings - the most concerning of which arepointer/integer casts on 64-bit systems (most seem to be debug printing,but there are a couple that aren't), but seems to run okay - I don'tknow any teco to really exercise it though. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralph at inputplus.co.uk Sun Nov 19 00:39:07 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Sat, 18 Nov 2017 14:39:07 +0000 Subject: [TUHS] TECO was: Re: basic tools / Universal Unix In-Reply-To: <486ee107-d183-bcd3-4e51-f1104ad3d67e@dunnington.plus.com> References: <20171030141645.6F81C18C0E7@mercury.lcs.mit.edu> <20171115021648.GL6265@mcvoy.com> <6b4ef803-489b-00f5-4a87-14ab907090f8@gmail.com> <108d318d-3879-e056-8b63-f333f85e5516@kilonet.net> <8b1ce7d5-d626-b523-d134-60efd61a0386@kilonet.net> <1f60403b-fc74-35e7-18b9-a33d0d6ef2fb@kilonet.net> <20171115221853.E0E0C1F978@orac.inputplus.co.uk> <486ee107-d183-bcd3-4e51-f1104ad3d67 e@dunnington.plus.com> Message-ID: <20171118143907.780842139A@orac.inputplus.co.uk> Hi, Pete Turnbull wrote: > and set MANPAGER="less -X" so as not to disappear manpages. (This is to stop the terminal switching between its two screens so the useful bit of the man page is hidden from view when you quit, even though you then want to type based on its content.) For vim, `set t_ti= t_te=' overrides the terminal's definition. Or, have a ~/.terminfo/... compiled from the system's default but with those entries blanked. Then all commands are "fixed". -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From ralph at inputplus.co.uk Sun Nov 19 02:09:09 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Sat, 18 Nov 2017 16:09:09 +0000 Subject: [TUHS] ed(1) and Pipes. In-Reply-To: <1510784211.17586.for-standards-violators@oclsc.org> References: <1510784211.17586.for-standards-violators@oclsc.org> Message-ID: <20171118160909.D33E32139E@orac.inputplus.co.uk> Hi Norman, > > ed(1) pre-dates pipes. When pipes came along, stderr was needed, > > and lots of new idioms were found to make use of them. Why didn't > > ed gain a `filter' command to accompany `r !foo' and `w !bar'? > > I sometimes wonder that too. > > When I use `ed,' it is usually really qed, an extended ed written by > the late-1970s UNIX crowd here at U of T. ... > -- The ability to send part or all of a buffer to a shell command, to > read data in from a shell command, or to send data out and replace it > with that from the shell command: > > >mail user ... > |tr a-z A-Z Thanks for the pointer. I dug a little. 7th Ed. ed doesn't have the `:[rw] !foo' form. It was in "PDP-11 3+2", 1983-01, in filename(). http://minnie.tuhs.org/cgi-bin/utree.pl?file=pdp11v/usr/src/cmd/ed/ed.c Xqt is the global flag that says the `!' was present. By the time of ex, that did have a filter, the `:w !foo' applied the `:se nu list' settings to the output of the command, and ex also appends a LF if the command's output doesn't end with one. The effect, if not the implementation, is as if the command's output was in a temporary buffer than was `%p'-ed. Here's ex-reimplementation nvi 1.79's attempt at POSIX's http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ex.html#tag_20_40_13_48 :se nu list :a 1 foo bar 2 xyzzy 3 . :w !head -c 10 foo^Ibar xy ! So the line numbers are missing, but it's partly done the `se list' by showing the tab, though `$' to mark the EOF is missing, and it has added the LF. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From will.senn at gmail.com Sun Nov 19 02:39:08 2017 From: will.senn at gmail.com (Will Senn) Date: Sat, 18 Nov 2017 10:39:08 -0600 Subject: [TUHS] Determining what was on a tape back in the day Message-ID: So, I came across this tape: http://bitsavers.trailing-edge.com/bits/DEC/pdp11/dectape/TU_DECtapes/unix6.dta I was curious what was on it,  so I read the description at: http://bitsavers.trailing-edge.com/bits/DEC/pdp11/dectape/TU_DECtapes.txt UNIX1 PURDUE UNIX TAPES UNIX2 UNIX4 UNIX6 HARBA1 HARVARD BASIC TAPE 1 HARBA2 HARVARD BASIC TAPE 2 MEGTEK MEGATEK UNIX DRIVER RAMTEK RAMTEK UNIX DRIVER Cool, sounds interesting, so I downloaded the unix6.dta file and fired up simh - after some fiddling, I figured out that I could get a boot prompt (is that actually from the tape?) if I: set cpu 11/40 set en tc att tc0 unix6.dta boot tc0 = At that point, I was stuck - the usual tmrk, htrk, and the logical corollary tcrk didn't do anything except return me to the boot prompt. I was thinking this was a sixth edition install tape of some sort, but if it is, I'm not able to figure it out. I thought I would load the tape into v7 and look at its content using tm or tp, but then I realized that I didn't have a device set up for TU56 and even if I did, I didn't know how to do a dir on a tape - yeah, I know, I will go read the manual(s) in chagrin. In the meantime, my question for y'all is similar to my other recent questions, and it goes like this: When you received an unmarked tape back in the day, how did you go about figuring out what was on it? What was your process (open the box, know by looking at it that it was an x rather than a y, load it into the tape reader and read some bytes off it and know that it was a z, use unix to read the tape using tm, tp, tar, dd, cpio or what, and so on)? What advice would you give a future archivist to help them quickly classify bit copies of tapes :). Thanks, Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From jnc at mercury.lcs.mit.edu Sun Nov 19 04:34:51 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Sat, 18 Nov 2017 13:34:51 -0500 (EST) Subject: [TUHS] Determining what was on a tape back in the day Message-ID: <20171118183451.CF48218C0F0@mercury.lcs.mit.edu> > From: Will Senn > So, I came across this tape: > ... > I was curious what was on it 'od' is your friend! If you look here: http://mercury.lcs.mit.edu/~jnc/tech/V6Unix.html#dumpf there's a thing which is basically 'od' and 'dd' rolled in together, which allows you to dump any block you want in a variety of formats (ASCII, 16-bit words in octal [very useful for PDP-11 binary], etc). I wrote it under CygWin, for Windows, but it only uses the StdIO library, and similar programs (e.g. my usassembler) written that way work fine under Losenux. Try downloading it and compiling it - if it doesn't work, please let me know; it'd be worth fixing it so it does work on Linux. > after some fiddling, I figured out that I could get a boot prompt (is > that actually from the tape?) The 0th block does seem to contain some PDP-11 binary - a bootstrap of some sort. I'll look in more detail in a bit. > I was thinking this was a sixth edition install tape of some sort, but > if it is, I'm not able to figure it out. >From what I can see, it's probably a tp-format tape: the 1st block contains some filenames which I can see in an ASCII dump of it: speakez/sbrk.s dcheck.c df.c intel/as80.c intel/optab.8080 > v7 and look at its content using tm or tp, but then I realized that I > didn't have a device set up for TU56 You don't need to mount it on DECTape drive - it's just blocks. Mount it as an RK05 image, or a magtape, or whatever. > When you received an unmarked tape back in the day, how did you go about > figuring out what was on it? Generally there would have been some prior communication, and the person sending it would have told you what it was (e.g. '800 bpi tar', or whatever). > What advice would you give a future archivist to help them quickly > classify bit copies of tapes :). Like I said: "'od' is your friend!"!! :-) Noel From ron at ronnatalie.com Sun Nov 19 04:37:42 2017 From: ron at ronnatalie.com (Ronald Natalie) Date: Sat, 18 Nov 2017 13:37:42 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <20171118183451.CF48218C0F0@mercury.lcs.mit.edu> References: <20171118183451.CF48218C0F0@mercury.lcs.mit.edu> Message-ID: We commonly used “ar” to write DECtapes (TU58) back in the day. If the first block has a list of filenames, I’m betting that’s what it is! From ron at ronnatalie.com Sun Nov 19 04:40:02 2017 From: ron at ronnatalie.com (Ronald Natalie) Date: Sat, 18 Nov 2017 13:40:02 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171118183451.CF48218C0F0@mercury.lcs.mit.edu> Message-ID: <0594F10D-AC11-4D2F-B431-2BB57F04F487@ronnatalie.com> And the other more likely option is the “tp” command. It too (unlike the later tar), put the filenames at the beginning of the tape. > On Nov 18, 2017, at 1:37 PM, Ronald Natalie wrote: > > We commonly used “ar” to write DECtapes (TU58) back in the day. If the first block has a list of filenames, I’m betting that’s what it is! > From clemc at ccc.com Sun Nov 19 04:57:55 2017 From: clemc at ccc.com (Clem Cole) Date: Sat, 18 Nov 2017 13:57:55 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: Message-ID: A quick look, and I think it's an stp (super TP) tape -- stp is from the Harvard distribution. This would make sense, because that was the standard back before tar. As Ron pointed out, tp (which Ken designed for DECTapes originally) puts the index at the head of the tape (tar and later cpis threaded the index inline). But it means its a fixed size and there were some other issues (tp may have originally been in assembler IIRC). On DECtape, tp worked pretty well/was pretty cool because you could update a block, less so on 9-track which when you re-wrote block N, you lost all blocks afterwards. Also, I don't remember why now [probably the limits off the directory], but it was typically in those days to take all the files in a directory, turn them into a foo.a (ar format) archive. So the stp image was a bunch of files: dir1/mumble.a dir2/grumble.a dir3/bumble.a ... You then needed to unarchive the files within each directory. Also, remember ar(1) when through some changes in format between 4-7th editions as the compiler and linker matured. So watch out on that front too... Anyway, v6 tp probably will read it, but if you poke around the TUHS and bitkeeper archives for the original Harvard distribution, stp.c should exist. On Sat, Nov 18, 2017 at 11:39 AM, Will Senn wrote: > So, I came across this tape: > > http://bitsavers.trailing-edge.com/bits/DEC/pdp11/dectape/ > TU_DECtapes/unix6.dta > > I was curious what was on it, so I read the description at: > > http://bitsavers.trailing-edge.com/bits/DEC/pdp11/dectape/TU_DECtapes.txt > > UNIX1 PURDUE UNIX TAPES > UNIX2 > UNIX4 > UNIX6 > HARBA1 HARVARD BASIC TAPE 1 > HARBA2 HARVARD BASIC TAPE 2 > MEGTEK MEGATEK UNIX DRIVER > RAMTEK RAMTEK UNIX DRIVER > > Cool, sounds interesting, so I downloaded the unix6.dta file and fired up > simh - after some fiddling, I figured out that I could get a boot prompt > (is that actually from the tape?) if I: > > set cpu 11/40 > set en tc > att tc0 unix6.dta > boot tc0 > = > > At that point, I was stuck - the usual tmrk, htrk, and the logical > corollary tcrk didn't do anything except return me to the boot prompt. > > I was thinking this was a sixth edition install tape of some sort, but if > it is, I'm not able to figure it out. I thought I would load the tape into > v7 and look at its content using tm or tp, but then I realized that I > didn't have a device set up for TU56 and even if I did, I didn't know how > to do a dir on a tape - yeah, I know, I will go read the manual(s) in > chagrin. > > In the meantime, my question for y'all is similar to my other recent > questions, and it goes like this: > > When you received an unmarked tape back in the day, how did you go about > figuring out what was on it? What was your process (open the box, know by > looking at it that it was an x rather than a y, load it into the tape > reader and read some bytes off it and know that it was a z, use unix to > read the tape using tm, tp, tar, dd, cpio or what, and so on)? What advice > would you give a future archivist to help them quickly classify bit copies > of tapes :). > > Thanks, > > Will > > > > > > -- > GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Sun Nov 19 05:23:58 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Sat, 18 Nov 2017 14:23:58 -0500 (EST) Subject: [TUHS] Determining what was on a tape back in the day Message-ID: <20171118192358.4CB2618C0F0@mercury.lcs.mit.edu> > From: Clem Cole > stp is from the Harvard distribution. The MIT PWB1 system I have has the source; the header says: M. Ferentz Brooklyn College of CUNY September 1976 If it can't be found on TUHS, I can upload it. No man page, though. :-( Noel From don at DonHopkins.com Sun Nov 19 06:03:31 2017 From: don at DonHopkins.com (Don Hopkins) Date: Sat, 18 Nov 2017 21:03:31 +0100 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: Message-ID: Speaking of old BASIC interpreters, does anyone know out why DECSYSTEM 20’s BASIC had a “LISTREVERSE” command? Yes, it actually did exactly what it sounds like! Chalk one up for DEC and BASIC. What other programming languages support that feature, huh? https://imgur.com/a/Bt40M DECSYSTEM 20 BASIC User's Guide: LISTREVERSE command LISTREVERSE LISTNHREVERSE LISTREVERSE and LISTNHREVERSE print the contents of the user's memory area in order of descending line numbers. LISTREVERSE precedes the output with a heading, LISTNHREVERSE eliminates the heading. LISTREVERSE EQUIV 10:53 13-NOV-75 40 END 35 PRINT "THE EQUIVALENT CURRENT IS",I, " AMPERES" 25 I=E1/R 10 INPUT R 5 INPUT E1 READY -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Sun Nov 19 07:07:35 2017 From: will.senn at gmail.com (Will Senn) Date: Sat, 18 Nov 2017 15:07:35 -0600 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <20171118183451.CF48218C0F0@mercury.lcs.mit.edu> References: <20171118183451.CF48218C0F0@mercury.lcs.mit.edu> Message-ID: <367c50cf-8bee-e050-1c0c-0bd960621f37@gmail.com> On 11/18/17 12:34 PM, Noel Chiappa wrote: > If you look here: > > http://mercury.lcs.mit.edu/~jnc/tech/V6Unix.html#dumpf > > Try downloading it and compiling it - if it doesn't work, please let me know; > it'd be worth fixing it so it does work on Linux. Works fine. Thanks. > The 0th block does seem to contain some PDP-11 binary - a bootstrap of some > sort. I'll look in more detail in a bit. Cool. I don't quite no how to investigate this other than to pore through the pdp11/40 instruction manual. > From what I can see, it's probably a tp-format tape: the 1st block contains > some filenames which I can see in an ASCII dump of it: > > speakez/sbrk.s > ... Well lookit that. I see it now, too :) > > v7 and look at its content using tm or tp, but then I realized that I > > didn't have a device set up for TU56 > > You don't need to mount it on DECTape drive - it's just blocks. Mount it as > an RK05 image, or a magtape, or whatever. I thought disk (RK05) and tape (magtape) blocks were different... Thanks, Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From will.senn at gmail.com Sun Nov 19 07:26:55 2017 From: will.senn at gmail.com (Will Senn) Date: Sat, 18 Nov 2017 15:26:55 -0600 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: Message-ID: On 11/18/17 12:57 PM, Clem Cole wrote: > A quick look, and I think it's an stp (super TP) tape -- stp is from > the Harvard distribution.   This would make sense, because that was > the standard back before tar. > As Ron pointed out, tp (which Ken designed for DECTapes originally) > puts the index at the head of the tape (tar and later cpis threaded > the index inline).   But it means its a fixed size and there were some > other issues (tp may have originally been in assembler IIRC).   On > DECtape, tp worked pretty well/was pretty cool because you could > update a block, less so on 9-track which when you re-wrote block N, > you lost all blocks afterwards.  Also, I don't remember why now > [probably the limits off the directory], but it was typically in those > days to take all the files in a directory, turn them into a foo.a (ar > format) archive.  So the stp image was a bunch of files: dir1/mumble.a >  dir2/grumble.a dir3/bumble.a ... > You then needed to unarchive the files within each directory.   Also, > remember ar(1) when through some changes in format between 4-7th > editions as the compiler and linker matured.  So watch out on that > front too... > > Anyway, v6 tp probably will read it, but if you poke around the TUHS > and bitkeeper archives for the original Harvard distribution, stp.c > should exist. > I'll look around. v6 tp was able to read the tape: set tc en att tc0 unix6.dat c # chdir /usr/6 # tp t0 speakez/sbrk.s dcheck.c ... the directories don't get created on extract, but that's typical on v6. Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Sun Nov 19 07:32:22 2017 From: will.senn at gmail.com (Will Senn) Date: Sat, 18 Nov 2017 15:32:22 -0600 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <20171118192358.4CB2618C0F0@mercury.lcs.mit.edu> References: <20171118192358.4CB2618C0F0@mercury.lcs.mit.edu> Message-ID: On 11/18/17 1:23 PM, Noel Chiappa wrote: > > From: Clem Cole > > > stp is from the Harvard distribution. > > The MIT PWB1 system I have has the source; the header says: > > M. Ferentz > Brooklyn College of CUNY > September 1976 > > If it can't be found on TUHS, I can upload it. > > No man page, though. :-( > > Noel I don't see this file in the tuhs source code index (there are several stp.c files but they don't appear to be tape related). -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From wkt at tuhs.org Sun Nov 19 07:49:06 2017 From: wkt at tuhs.org (Warren Toomey) Date: Sun, 19 Nov 2017 07:49:06 +1000 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171118192358.4CB2618C0F0@mercury.lcs.mit.edu> Message-ID: <20171118214906.GA6171@minnie.tuhs.org> On Sat, Nov 18, 2017 at 03:32:22PM -0600, Will Senn wrote: >I don't see this file in the tuhs source code index (there are several >stp.c files but they don't appear to be tape related). A long time ago I wrote some tools to extract files from tp and variant tp archives: http://www.tuhs.org/Archive/Tools/Tapes/tp-progs.tar.gz One may work as-is, or with some modifications! Cheers, Warren From dave at horsfall.org Sun Nov 19 07:51:00 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sun, 19 Nov 2017 08:51:00 +1100 (EST) Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171118183451.CF48218C0F0@mercury.lcs.mit.edu> Message-ID: On Sat, 18 Nov 2017, Ronald Natalie wrote: > We commonly used “ar” to write DECtapes (TU58) back in the day. If the > first block has a list of filenames, I’m betting that’s what it is! Or ye olde "tp" format? 'Twas the precursor of "tar", and I dimly recall that it was wriiten for the Ducktapes (our old 11/40 had just about everything except that). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From rminnich at gmail.com Sun Nov 19 08:05:01 2017 From: rminnich at gmail.com (ron minnich) Date: Sat, 18 Nov 2017 22:05:01 +0000 Subject: [TUHS] 197[78] usenix conf. at columbia, magtapes "found in the street"? Message-ID: Random memories, possibly wrong. In 1977/78 I was at udel and had done a fair amount of work on unix but as a lowly undergrad did not get to go to the Columbia Usenix meeting. Ed Szurkowski of udel went. Ed was the grad student who did hardware design for 11s for Autotote (another story) but also stood up a lot of the early unix 11s at udel starting in 1976, starting with an 11/70. Mike Muus used to come up and visit us at udel and Mike and Ed would try to ask questions the other could not answer. Mike always had a funny story or two. Ed later went to Bell Labs and I lost track of him. The directions for the MTA were fairly clear: it listed a stop that you under no circumstances should get off at, and if you did get off at, you should not go up to the street, lest you never return. This was no joke. Some places in NY were pretty hazardous in those days. I *think* this was the meeting where Ken showed up with a bunch of magtapes, and Ed claimed that, in Ken's word, they were "... found in the street." This part I remember well: Ed returning with two magtapes and our desire to upgrade. We at udel, like many places, had done lots of our own mods to the kernel, which we wanted to keep. So we ran a diff between trees, and I wrote a merge with TECO and ed which got it all put together. I later realized this was a very early form of 'patch', as it used patterns, not line numbers, to figure out how to paste things back together. I really got to love regex in those years. Except for one file: the tools just would not merge them. Ed later realized there was one key difference that we had not noticed, a missing comment, namely, the Western Electric copyright notice ... I'm kinda sorry that our "udel Unix" is lost to the great /dev/null, it would be interesting to see it now. ron -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Sun Nov 19 08:12:39 2017 From: clemc at ccc.com (Clem Cole) Date: Sat, 18 Nov 2017 17:12:39 -0500 Subject: [TUHS] 197[78] usenix conf. at columbia, magtapes "found in the street"? In-Reply-To: References: Message-ID: This sounds like Ken's v6 patch tape; which was swapped around at USENIX meetings and 77-78 sound about right as the time frame. On Sat, Nov 18, 2017 at 5:05 PM, ron minnich wrote: > Random memories, possibly wrong. > > In 1977/78 I was at udel and had done a fair amount of work on unix but as > a lowly undergrad did not get to go to the Columbia Usenix meeting. Ed > Szurkowski of udel went. Ed was the grad student who did hardware design > for 11s for Autotote (another story) but also stood up a lot of the early > unix 11s at udel starting in 1976, starting with an 11/70. Mike Muus used > to come up and visit us at udel and Mike and Ed would try to ask questions > the other could not answer. Mike always had a funny story or two. > > Ed later went to Bell Labs and I lost track of him. > > The directions for the MTA were fairly clear: it listed a stop that you > under no circumstances should get off at, and if you did get off at, you > should not go up to the street, lest you never return. This was no joke. > Some places in NY were pretty hazardous in those days. > > I *think* this was the meeting where Ken showed up with a bunch of > magtapes, and Ed claimed that, in Ken's word, they were "... found in the > street." > > This part I remember well: Ed returning with two magtapes and our desire > to upgrade. We at udel, like many places, had done lots of our own mods to > the kernel, which we wanted to keep. So we ran a diff between trees, and I > wrote a merge with TECO and ed which got it all put together. I later > realized this was a very early form of 'patch', as it used patterns, not > line numbers, to figure out how to paste things back together. I really got > to love regex in those years. > > Except for one file: the tools just would not merge them. Ed later > realized there was one key difference that we had not noticed, a missing > comment, namely, the Western Electric copyright notice ... > > I'm kinda sorry that our "udel Unix" is lost to the great /dev/null, it > would be interesting to see it now. > > ron > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Sun Nov 19 08:37:21 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sun, 19 Nov 2017 09:37:21 +1100 (EST) Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: Message-ID: On Sat, 18 Nov 2017, Don Hopkins wrote: (LISTREVERSE} > Chalk one up for DEC and BASIC. What other programming languages support > that feature, huh?  You could probably do it in APL; you could do damned well everything else after all...[*] > LISTREVERSE and LISTNHREVERSE print the contents of the user's memory > area in order of descending line numbers. LISTREVERSE precedes the > output with a heading, LISTNHREVERSE eliminates the heading. Why on earth would you want to? [*] And the novice asked the master: "Master, does EMACS have the Buddha nature?" The master thought for a while, and replied: "I don't see why not; it bloody well has everything else in it." -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From clemc at ccc.com Sun Nov 19 08:39:07 2017 From: clemc at ccc.com (Clem Cole) Date: Sat, 18 Nov 2017 17:39:07 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: Message-ID: On Sat, Nov 18, 2017 at 4:26 PM, Will Senn wrote: > > I'll look around. v6 tp was able to read the tape: > set tc en > att tc0 unix6.dat > c > # chdir /usr/6 > # tp t0 > speakez/sbrk.s > dcheck.c > ... > > the directories don't get created on extract, but that's typical on v6. > > ​I think that's one of the things that stp will do. ​ -------------- next part -------------- An HTML attachment was scrubbed... URL: From rminnich at gmail.com Sun Nov 19 08:51:05 2017 From: rminnich at gmail.com (ron minnich) Date: Sat, 18 Nov 2017 22:51:05 +0000 Subject: [TUHS] 197[78] usenix conf. at columbia, magtapes "found in the street"? In-Reply-To: References: Message-ID: ah, patch tape, now that makes way more sense. Thanks Clem! On Sat, Nov 18, 2017 at 2:13 PM Clem Cole wrote: > This sounds like Ken's v6 patch tape; which was swapped around at USENIX > meetings and 77-78 sound about right as the time frame. > > > > On Sat, Nov 18, 2017 at 5:05 PM, ron minnich wrote: > >> Random memories, possibly wrong. >> >> In 1977/78 I was at udel and had done a fair amount of work on unix but >> as a lowly undergrad did not get to go to the Columbia Usenix meeting. Ed >> Szurkowski of udel went. Ed was the grad student who did hardware design >> for 11s for Autotote (another story) but also stood up a lot of the early >> unix 11s at udel starting in 1976, starting with an 11/70. Mike Muus used >> to come up and visit us at udel and Mike and Ed would try to ask questions >> the other could not answer. Mike always had a funny story or two. >> >> Ed later went to Bell Labs and I lost track of him. >> >> The directions for the MTA were fairly clear: it listed a stop that you >> under no circumstances should get off at, and if you did get off at, you >> should not go up to the street, lest you never return. This was no joke. >> Some places in NY were pretty hazardous in those days. >> >> I *think* this was the meeting where Ken showed up with a bunch of >> magtapes, and Ed claimed that, in Ken's word, they were "... found in the >> street." >> >> This part I remember well: Ed returning with two magtapes and our desire >> to upgrade. We at udel, like many places, had done lots of our own mods to >> the kernel, which we wanted to keep. So we ran a diff between trees, and I >> wrote a merge with TECO and ed which got it all put together. I later >> realized this was a very early form of 'patch', as it used patterns, not >> line numbers, to figure out how to paste things back together. I really got >> to love regex in those years. >> >> Except for one file: the tools just would not merge them. Ed later >> realized there was one key difference that we had not noticed, a missing >> comment, namely, the Western Electric copyright notice ... >> >> I'm kinda sorry that our "udel Unix" is lost to the great /dev/null, it >> would be interesting to see it now. >> >> ron >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Sun Nov 19 08:53:34 2017 From: clemc at ccc.com (Clem Cole) Date: Sat, 18 Nov 2017 17:53:34 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <367c50cf-8bee-e050-1c0c-0bd960621f37@gmail.com> References: <20171118183451.CF48218C0F0@mercury.lcs.mit.edu> <367c50cf-8bee-e050-1c0c-0bd960621f37@gmail.com> Message-ID: On Sat, Nov 18, 2017 at 4:07 PM, Will Senn wrote: > >> I thought disk (RK05) and tape (magtape) blocks were different... ​For simh they are, but not once UNIX sees them.​ Physically 7/9-tapes were variable formatt ​ed and could have multiple 'files' on them. UNIX reveals all of this to user (as do most OSs), so you need put in the simh 'virtual' tape format support for the size of the 'blocks' and all of the extra things that the HW supports. But after the simh 'mounts' the 'virtual tape file' on the host when it reads the 'tape', simh strips the meta-data out and presents on the blocks to the OS. Or on write, simh takes the raw blocks, adds the simulated metadata and writes that to host file system as a 'virtual tape file.' In the old days disks physically could also be different formats. But the 'controller' was used to format the disk. Each disk block included metadata that the controller used. On DEC (and most other systems of the day), the disk controller had some way to set this up, usually with the diagnostic system. The OS saw the disk after formatting (as we do now). The diagnostics would have decided how big a block was etc... DEC standardized on 512 bytes per block. simh could have taken the approach like disks, and then 'virtual disks' would need the meta data; but could have supported all sorts of file formats (like Apollo's and Xerox's). But the simulated disk controller would then need to handle the meta data. Since, most OSs just looked at disk as 'block streams' simh only needs to provide for the OS to work properly, is map a UNIX file of bytes into 512 byte blocks. This works for most OSs. As I said, it will not work for Aegis or any of the Xerox systems which put some of what the OS normally did in the microcode of the disk controller. Clem -------------- next part -------------- An HTML attachment was scrubbed... URL: From don at DonHopkins.com Sun Nov 19 09:16:19 2017 From: don at DonHopkins.com (Don Hopkins) Date: Sun, 19 Nov 2017 00:16:19 +0100 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: Message-ID: <492E9EAA-73CE-4102-A1E2-690EB864AFC1@gmail.com> > On 18 Nov 2017, at 23:37, Dave Horsfall wrote: > > On Sat, 18 Nov 2017, Don Hopkins wrote: > > (LISTREVERSE} > >> Chalk one up for DEC and BASIC. What other programming languages support that feature, huh? > > You could probably do it in APL; you could do damned well everything else after all...[*] If you LISTREVERSE’ed a Lisp program, it would look like PostScript with parens! > >> LISTREVERSE and LISTNHREVERSE print the contents of the user's memory area in order of descending line numbers. LISTREVERSE precedes the output with a heading, LISTNHREVERSE eliminates the heading. > > Why on earth would you want to? I have been wondering about that for years. Here’s the manual! LISTREVERSE is documented on page 9-3. Maybe if I printed out the "READERS COMMENTS" form at the back of the manual, wrote my question in big upper case block letters, then ticked the "If you require a written reply, please check here” checkbox, then “Fold Here” and “Do Not Tear - Fold Here and Staple” as instructed, I could mail in the free first class pre-addressed, business reply mail, no postage stamp necessary if mailed inside the United States envelope, and they’d write me back a nice letter telling me what the fuck they were thinking. http://bitsavers.informatik.uni-stuttgart.de/www.computer.museum.uq.edu.au/pdf/DEC-20-LBMAA-A-D%20BASIC%20User%27s%20Guide.pdf -Don -------------- next part -------------- An HTML attachment was scrubbed... URL: From krewat at kilonet.net Sun Nov 19 09:35:51 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Sat, 18 Nov 2017 18:35:51 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <492E9EAA-73CE-4102-A1E2-690EB864AFC1@gmail.com> References: <492E9EAA-73CE-4102-A1E2-690EB864AFC1@gmail.com> Message-ID: <80b192e2-562e-2de7-2200-7b70fd525776@kilonet.net> Tail for BASIC. On a slow printer or CRT, you could ^C and only see the last few lines. Better than printing out the entire thing from the beginning. Or did it have a way of listing only a certain range of line numbers? On 11/18/2017 6:16 PM, Don Hopkins wrote: > >> On 18 Nov 2017, at 23:37, Dave Horsfall > > wrote: >> >> On Sat, 18 Nov 2017, Don Hopkins wrote: >> >> (LISTREVERSE} >> >>> Chalk one up for DEC and BASIC. What other programming languages >>> support that feature, huh? >> >> You could probably do it in APL; you could do damned well everything >> else after all...[*] > > If you LISTREVERSE’ed a Lisp program, it would look like PostScript > with parens! > >> >>> LISTREVERSE and LISTNHREVERSE print the contents of the user's >>> memory area in order of descending line numbers. LISTREVERSE >>> precedes the output with a heading, LISTNHREVERSE eliminates the >>> heading. >> >> Why on earth would you want to? > > I have been wondering about that for years. > > Here’s the manual! LISTREVERSE is documented on page 9-3. Maybe if I > printed out the "READERS COMMENTS" form at the back of the manual, > wrote my question in big upper case block letters, then ticked the "If > you require a written reply, please check here” checkbox, then “Fold > Here” and “Do Not Tear - Fold Here and Staple” as instructed, I could > mail in the free first class pre-addressed, business reply mail, no > postage stamp necessary if mailed inside the United States envelope, > and they’d write me back a nice letter telling me what the fuck they > were thinking. > > http://bitsavers.informatik.uni-stuttgart.de/www.computer.museum.uq.edu.au/pdf/DEC-20-LBMAA-A-D%20BASIC%20User%27s%20Guide.pdf > > -Don > -------------- next part -------------- An HTML attachment was scrubbed... URL: From usotsuki at buric.co Sun Nov 19 10:35:44 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Sat, 18 Nov 2017 19:35:44 -0500 (EST) Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <80b192e2-562e-2de7-2200-7b70fd525776@kilonet.net> References: <492E9EAA-73CE-4102-A1E2-690EB864AFC1@gmail.com> <80b192e2-562e-2de7-2200-7b70fd525776@kilonet.net> Message-ID: On Sat, 18 Nov 2017, Arthur Krewat wrote: > Tail for BASIC. On a slow printer or CRT, you could ^C and only see the last > few lines. Better than printing out the entire thing from the beginning. > > Or did it have a way of listing only a certain range of line numbers? Can't speak for DEC's dialect. Apple's dialect supported LIST start,end and Microsoft's dialects supported LIST start-end (with some supporting the comma variant as well). Never heard of a backward LIST before. o.O -uso. From don at DonHopkins.com Sun Nov 19 10:42:25 2017 From: don at DonHopkins.com (Don Hopkins) Date: Sun, 19 Nov 2017 01:42:25 +0100 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <492E9EAA-73CE-4102-A1E2-690EB864AFC1@gmail.com> <80b192e2-562e-2de7-2200-7b70fd525776@kilonet.net> Message-ID: > On 19 Nov 2017, at 01:35, Steve Nickolas wrote: > > On Sat, 18 Nov 2017, Arthur Krewat wrote: > >> Tail for BASIC. On a slow printer or CRT, you could ^C and only see the last few lines. Better than printing out the entire thing from the beginning. >> >> Or did it have a way of listing only a certain range of line numbers? > > Can't speak for DEC's dialect. Apple's dialect supported LIST start,end and Microsoft's dialects supported LIST start-end (with some supporting the comma variant as well). > > Never heard of a backward LIST before. o.O > > -uso. Maybe there was a corresponding RUNREVERSE command! -Don From clemc at ccc.com Sun Nov 19 11:04:46 2017 From: clemc at ccc.com (Clem cole) Date: Sat, 18 Nov 2017 20:04:46 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <492E9EAA-73CE-4102-A1E2-690EB864AFC1@gmail.com> <80b192e2-562e-2de7-2200-7b70fd525776@kilonet.net> Message-ID: <44ADF2F6-78A6-4E81-9AAB-32015AC00E6E@ccc.com> List start,end Is standard Dartmouth basic from Kemeny & Kurtz - (aka K&K) which was the equivalent of K&R in those days. [i think I have my Dad’s copy from they early 1960’s - which is what he taught me with in 1967]. And Yes DEC basic supported it Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > On Nov 18, 2017, at 7:42 PM, Don Hopkins wrote: > > >> On 19 Nov 2017, at 01:35, Steve Nickolas wrote: >> >> On Sat, 18 Nov 2017, Arthur Krewat wrote: >> >>> Tail for BASIC. On a slow printer or CRT, you could ^C and only see the last few lines. Better than printing out the entire thing from the beginning. >>> >>> Or did it have a way of listing only a certain range of line numbers? >> >> Can't speak for DEC's dialect. Apple's dialect supported LIST start,end and Microsoft's dialects supported LIST start-end (with some supporting the comma variant as well). >> >> Never heard of a backward LIST before. o.O >> >> -uso. > > Maybe there was a corresponding RUNREVERSE command! > > -Don > From will.senn at gmail.com Sun Nov 19 11:47:25 2017 From: will.senn at gmail.com (Will Senn) Date: Sat, 18 Nov 2017 19:47:25 -0600 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171118183451.CF48218C0F0@mercury.lcs.mit.edu> <367c50cf-8bee-e050-1c0c-0bd960621f37@gmail.com> Message-ID: <1551fcd0-8870-438c-aa0b-9694083be764@gmail.com> On 11/18/17 4:53 PM, Clem Cole wrote: > > > On Sat, Nov 18, 2017 at 4:07 PM, Will Senn > wrote: > > > I thought disk (RK05) and tape (magtape) blocks were different... > > ​For simh they are, but not once UNIX sees them.​ > > Physically 7/9-tapes were variable formatt > ​ed and could have multiple 'files' on them.  UNIX reveals all of this > to user (as do most OSs), so you need put in the simh 'virtual' tape > format support for the size of the 'blocks' and all of the extra > things that the HW supports. > > But after the simh 'mounts' the 'virtual tape file' on the host when > it reads the 'tape', simh strips the meta-data out and presents on the > blocks to the OS. Or on write, simh takes the raw blocks, adds the > simulated metadata and writes that to host file system as a 'virtual > tape file.' > > In the old days disks physically could also be different formats.    > But the 'controller' was used to format the disk.   Each disk block > included metadata that the controller used.    On DEC (and most other > systems of the day), the disk controller had some way to set this up, > usually with the diagnostic system.   The OS saw the disk after > formatting (as we do now).   The diagnostics would have decided how > big a block was etc...    DEC standardized on 512 bytes per block. > > simh could have taken the approach like disks, and then 'virtual > disks' would need the meta data; but could have supported all sorts of > file formats (like Apollo's and Xerox's).  But the simulated disk > controller would then need to handle the meta data. > > Since, most OSs just looked at disk as 'block streams' simh only needs > to provide for the OS to work properly, is map a UNIX file of bytes > into 512 byte blocks.   This works for most OSs.  As I said, it will > not work for Aegis or any of the Xerox systems which put some of what > the OS normally did in the microcode of the disk controller. > > Thanks, Clem, this is very helpful information. I have a better sense now of what's going on. Will > -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From dds at aueb.gr Sun Nov 19 22:43:23 2017 From: dds at aueb.gr (Diomidis Spinellis) Date: Sun, 19 Nov 2017 14:43:23 +0200 Subject: [TUHS] The Fourth Research Edition Unix Programmer's Manual Message-ID: I don't think we had the Fourth Research Edition Unix Programmer's Manual available in typeset form. I played a bit with the troff manual pages on TUHS and managed to typeset it into PDF. You can find the PDF document at https://dspinellis.github.io/unix-v4man/v4man.pdf. I modernized the old shell scripts and corrected some minor markup glitches through commits that are recorded on a GitHub repository: https://github.com/dspinellis/unix-v4man. The process was surprisingly smooth. The scripts for generating the table of contents and the permuted index are based on the original ones. The few problems I encountered in the troff source had to do with missing spaces after requests, the ^F hyphenation character causing groff to complain, a failure of groff to honor .li requests followed by a line starting with a ., and two uses of a lowercase letter for specifying a font. I wrote from scratch a script to typeset everything into one volume. I could not find a shell script for typesetting the whole manual in any of the Research Editions. I assume the process of running the typesetter was so cumbersome, error prone, and time-consuming that it was manually performed on a page-by-page basis. Correct me if I'm wrong here. Diomidis Spinellis From jnc at mercury.lcs.mit.edu Sun Nov 19 23:41:09 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Sun, 19 Nov 2017 08:41:09 -0500 (EST) Subject: [TUHS] Determining what was on a tape back in the day Message-ID: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> > From: Will Senn > I don't quite no how to investigate this other than to pore through the > pdp11/40 instruction manual. One of these: https://www.ebay.com/itm/Digital-pdp-Programming-Card-8-Pages/142565890514 is useful; it has a list of all the opcodes in numerical order; something none of the CPU manuals have, to my recollection. Usually there are a flock of these "pdp11 Programming Cards" on eBait, but I only see this one at the moment. If you do any amount of work with PDP-11 binary, you'll soon find yourself recognizing the common instructions. E.g. MOV is 01msmr (octal), where 'm' is a mode specifier, and s and r are source and destination register numbers. (That's why PDP-11 people are big on octal; the instructions are easy to read in octal.) More here: http://gunkies.org/wiki/PDP-11_architecture#Operands So 0127xx is a move of an immediate operand. >> You don't need to mount it on DECTape drive - it's just blocks. Mount >> it as an RK05 image, or a magtape, or whatever. > I thought disk (RK05) and tape (magtape) blocks were different... Well, you need to differentiate between DECtape and magtape - very different beasts. DECtape on a PDP-11 _only_ supports 256 word (i.e. 512 byte) blocks, the same as most disks. (Floppies are an exception when it comes to disks - sort of. The hardware supports 128/256 byte sectors, but the usual driver - not in V6 or V7 - invisibly makes them look like 512-byte blocks.) Magtapes are complicated, and I don't remember all the details of how Unix handles them, but the _hardware_ is prepared to write very long 'blocks', and there are also separate 'file marks' which the hardware can write, and notice. But a magtape written in 512-byte blocks, with no file marks, can be treated like a disk; that's what the V6 distribution tapes look like: http://gunkies.org/wiki/Installing_UNIX_Sixth_Edition#Installation_tape_contents and IIRC 'tp' format magtape tapes are written the same way, hardware-wise (so they look just like DECtapes). Noel From clemc at ccc.com Mon Nov 20 00:55:19 2017 From: clemc at ccc.com (Clem cole) Date: Sun, 19 Nov 2017 09:55:19 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> Message-ID: Noel is correct. DECtape (aka linctape) was a block oriented technology. Traditional 1/2” mag tape which had 5, 7 or 9 tracks is a stream oriented technology. DECtape was used liked disk in the late 60s. It was comparably cheap and very reliable. The joke was you could unroll it and run over it with a car and then roll it back up and it would still work. Magtape was traditional back up scheme. Cost per bit was low and good for archiving. But you could only add to the end of a tape. You can do funny things like change recording techniques between files (not recommended as it can confuse many tape controllers but is technically allowed and was done). Because of the variable nature of things the OS needs a way to support these behaviors. Unix makes it pretty easy by letting the user do it all in user space and passing info to the driver. Other OSs do a lot of work when ‘mounting’ a tape. But either way simh needs to support these type of functions. Hence the idea of the virtual tape format that includes meta data to describe things like the size of each block written. A ‘file mark’ can be read/written (which is special) besides data blocks Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. On Nov 19, 2017, at 8:41 AM, Noel Chiappa wrote: >> From: Will Senn > >> I don't quite no how to investigate this other than to pore through the >> pdp11/40 instruction manual. > > One of these: > > https://www.ebay.com/itm/Digital-pdp-Programming-Card-8-Pages/142565890514 > > is useful; it has a list of all the opcodes in numerical order; something none > of the CPU manuals have, to my recollection. Usually there are a flock of > these "pdp11 Programming Cards" on eBait, but I only see this one at the > moment. > > If you do any amount of work with PDP-11 binary, you'll soon find yourself > recognizing the common instructions. E.g. MOV is 01msmr (octal), where 'm' is > a mode specifier, and s and r are source and destination register > numbers. (That's why PDP-11 people are big on octal; the instructions are easy > to read in octal.) More here: > > http://gunkies.org/wiki/PDP-11_architecture#Operands > > So 0127xx is a move of an immediate operand. > > >>> You don't need to mount it on DECTape drive - it's just blocks. Mount >>> it as an RK05 image, or a magtape, or whatever. > >> I thought disk (RK05) and tape (magtape) blocks were different... > > Well, you need to differentiate between DECtape and magtape - very different > beasts. > > DECtape on a PDP-11 _only_ supports 256 word (i.e. 512 byte) blocks, the same > as most disks. (Floppies are an exception when it comes to disks - sort > of. The hardware supports 128/256 byte sectors, but the usual driver - not in > V6 or V7 - invisibly makes them look like 512-byte blocks.) > > Magtapes are complicated, and I don't remember all the details of how Unix > handles them, but the _hardware_ is prepared to write very long 'blocks', and > there are also separate 'file marks' which the hardware can write, and notice. > > But a magtape written in 512-byte blocks, with no file marks, can be treated > like a disk; that's what the V6 distribution tapes look like: > > http://gunkies.org/wiki/Installing_UNIX_Sixth_Edition#Installation_tape_contents > > and IIRC 'tp' format magtape tapes are written the same way, hardware-wise (so > they look just like DECtapes). > > Noel From will.senn at gmail.com Mon Nov 20 00:55:51 2017 From: will.senn at gmail.com (Will Senn) Date: Sun, 19 Nov 2017 08:55:51 -0600 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> Message-ID: <83A46968-F88E-4FE0-B7A0-012109EE33CC@gmail.com> Sent from my iPhone On Nov 19, 2017, at 7:41 AM, Noel Chiappa wrote: > https://www.ebay.com/itm/Digital-pdp-Programming-Card-8-Pages/142565890514 > > is useful; Thanks, Noel, The archive has the card: https://archive.org/details/bitsavers_decpdp11PDul75_1582192 > > Well, you need to differentiate between DECtape and magtape - very different > beasts. > > DECtape on a PDP-11 _only_ supports 256 word (i.e. 512 byte) blocks, the same > as most disks. (Floppies are an exception when it comes to disks - sort > of. The hardware supports 128/256 byte sectors, but the usual driver - not in > V6 or V7 - invisibly makes them look like 512-byte blocks.) > Magtapes are complicated, and I don't remember all the details of how Unix > handles them, but the _hardware_ is prepared to write very long 'blocks', and > there are also separate 'file marks' which the hardware can write, and notice. > > But a magtape written in 512-byte blocks, with no file marks, can be treated > like a disk; that's what the V6 distribution tapes look like: I think I understand- the bytes that we have on hand are not device faithful representations, but rather are failthful representations of what is presented to the OS. That is, back in the day, a tape would be stored in various formats as would disks, but unix would show these devices as streams of bytes, and those are the streams of bytes are what have been preserved. Some formats have header info, file lists, and such placed in predetermined locations, and some have different block sizes, file/tape marks, but no track, sector type or device specific info is retained? Does this sound reasonably accurate? Will -------------- next part -------------- An HTML attachment was scrubbed... URL: From krewat at kilonet.net Mon Nov 20 02:20:30 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Sun, 19 Nov 2017 11:20:30 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <44ADF2F6-78A6-4E81-9AAB-32015AC00E6E@ccc.com> References: <492E9EAA-73CE-4102-A1E2-690EB864AFC1@gmail.com> <80b192e2-562e-2de7-2200-7b70fd525776@kilonet.net> <44ADF2F6-78A6-4E81-9AAB-32015AC00E6E@ccc.com> Message-ID: <70c4a88d-84f1-8b09-b8ef-95ae8f1be37f@kilonet.net> How do you easily determine the last few line numbers so you know where to start appending new lines? On 11/18/2017 8:04 PM, Clem cole wrote: > List start,end > Is standard Dartmouth basic from Kemeny & Kurtz - (aka K&K) which was the equivalent of K&R in those days. [i think I have my Dad’s copy from they early 1960’s - which is what he taught me with in 1967]. > > And Yes DEC basic supported it > > Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > >> On Nov 18, 2017, at 7:42 PM, Don Hopkins wrote: >> >> >>> On 19 Nov 2017, at 01:35, Steve Nickolas wrote: >>> >>> On Sat, 18 Nov 2017, Arthur Krewat wrote: >>> >>>> Tail for BASIC. On a slow printer or CRT, you could ^C and only see the last few lines. Better than printing out the entire thing from the beginning. >>>> >>>> Or did it have a way of listing only a certain range of line numbers? >>> Can't speak for DEC's dialect. Apple's dialect supported LIST start,end and Microsoft's dialects supported LIST start-end (with some supporting the comma variant as well). >>> >>> Never heard of a backward LIST before. o.O >>> >>> -uso. >> Maybe there was a corresponding RUNREVERSE command! >> >> -Don >> > From jnc at mercury.lcs.mit.edu Mon Nov 20 03:49:19 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Sun, 19 Nov 2017 12:49:19 -0500 (EST) Subject: [TUHS] Determining what was on a tape back in the day Message-ID: <20171119174919.166D018C0F5@mercury.lcs.mit.edu> > From: Will Senn > I think I understand- the bytes that we have on hand are not device > faithful representations, but rather are failthful representations of > what is presented to the OS. That is, back in the day, a tape would be > stored in various formats as would disks, but unix would show these > devices as streams of bytes, and those are the streams of bytes are what > have been preserved. Yes and no. To start with, one needs to differentiate three different levels; i) what's actually on the medium; ii) what the device controller presented to the CPU; and iii) what the OS (Unix in this case) presented to the users. With the exception of magtapes (which had some semantics available through Unix for larger records, and file marks, the details of which escape me - but try looking at the man page for 'dd' in V6 for a flavour of it), you're correct about what Unix presented to the users. As to what is preserved; for disks and DECtapes, I think you are broadly correct. For magtapes, it depends. E.g. SIMH apparently can consume files which _represent_ magtape contents (i, above), and which include 'in band' (i.e. part of the byte stream in the file) meta-data for things like file marks, etc. At least one of the people who reads old media for a living, when asked to read an old tape, gives you back one of these files with meta-data in it. Here: http://ana-3.lcs.mit.edu/~jnc/tech/pdp11/tools/rdsmt.c is a program which reads one of those files and convert the contents to a file containing just the data bytes. (I had a tape with a 'dd' save of a file-system on it, and wanted just the file-system image, on which I deployed a tool I wrote to grok 4.2 filesystems.) Also, for disks, it should be remembered that i) and ii) were usually quite different, as what was actually on the disk included thing like preambles, headers, CRCs, etc, none of which the CPU usually could even see. (See here: http://gunkies.org/wiki/RX0x_floppy_drive#Low-level_format for an example. Each physical drive type would have its own specific low-level hardware format.) So what's preserved is just an image of what the CPU saw, which is, for disks and DECtapes, generally the same as what was presented to the user - i.e. a pile of bytes. Noel From krewat at kilonet.net Mon Nov 20 04:35:58 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Sun, 19 Nov 2017 13:35:58 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <20171119174919.166D018C0F5@mercury.lcs.mit.edu> References: <20171119174919.166D018C0F5@mercury.lcs.mit.edu> Message-ID: <055c3e7f-6da9-497d-149a-16f230f55391@kilonet.net> When reading magtapes, or any tapes for that matter, I usually dd the "files" on the tape into separate files on disk. This doesn't preserve the actual blocking factor on the tape, but I used other methods to determine that - usually experimenting with dd and small block sizes until I got to the point where it no longer errors. One of my favorite pastimes was to read until the soft EOT (usually a double EOF), and then do a "mt fsf". Depending on the tape drive, this could advance the tape beyond the soft EOT where more data might be saved. The idea being that a tape had been overwritten from the beginning, but with less data overall. So it would look like this: |data|EOF|data|EOF|data|EOT|short data|EOF|data|EOF|data|EOT|blank|Hard-EOT I used this method to rescue a TOPS-10 6.03A install monitor from a backup set that was past the soft EOT on one of my own personal tapes. I've rescued a lot of other data that way too. For anyone reading old tapes, I implore you to attempt to read data past the soft EOT ;) On 11/19/2017 12:49 PM, Noel Chiappa wrote: > > From: Will Senn > > > I think I understand- the bytes that we have on hand are not device > > faithful representations, but rather are failthful representations of > > what is presented to the OS. That is, back in the day, a tape would be > > stored in various formats as would disks, but unix would show these > > devices as streams of bytes, and those are the streams of bytes are what > > have been preserved. > > Yes and no. > > To start with, one needs to differentiate three different levels; i) what's > actually on the medium; ii) what the device controller presented to the CPU; > and iii) what the OS (Unix in this case) presented to the users. > > With the exception of magtapes (which had some semantics available through > Unix for larger records, and file marks, the details of which escape me - but > try looking at the man page for 'dd' in V6 for a flavour of it), you're correct > about what Unix presented to the users. > > > As to what is preserved; for disks and DECtapes, I think you are broadly > correct. For magtapes, it depends. > > E.g. SIMH apparently can consume files which _represent_ magtape contents (i, > above), and which include 'in band' (i.e. part of the byte stream in the file) > meta-data for things like file marks, etc. At least one of the people who > reads old media for a living, when asked to read an old tape, gives you back > one of these files with meta-data in it. Here: > > http://ana-3.lcs.mit.edu/~jnc/tech/pdp11/tools/rdsmt.c > > is a program which reads one of those files and convert the contents to a file > containing just the data bytes. (I had a tape with a 'dd' save of a > file-system on it, and wanted just the file-system image, on which I deployed > a tool I wrote to grok 4.2 filesystems.) > > > Also, for disks, it should be remembered that i) and ii) were usually quite > different, as what was actually on the disk included thing like preambles, > headers, CRCs, etc, none of which the CPU usually could even see. (See here: > > http://gunkies.org/wiki/RX0x_floppy_drive#Low-level_format > > for an example. Each physical drive type would have its own specific low-level > hardware format.) So what's preserved is just an image of what the CPU saw, > which is, for disks and DECtapes, generally the same as what was presented to > the user - i.e. a pile of bytes. > > Noel > From jnc at mercury.lcs.mit.edu Mon Nov 20 04:45:07 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Sun, 19 Nov 2017 13:45:07 -0500 (EST) Subject: [TUHS] Determining what was on a tape back in the day Message-ID: <20171119184507.80BE618C0F5@mercury.lcs.mit.edu> > From: Arthur Krewat > For anyone reading old tapes, I implore you to attempt to read data past > the soft EOT ;) The guy who read my tape does in fact do that; you'll notice my program has an option for looking for data after the soft EOT. Noel From steve at quintile.net Mon Nov 20 06:46:57 2017 From: steve at quintile.net (Steve Simon) Date: Sun, 19 Nov 2017 20:46:57 +0000 Subject: [TUHS] Determining what was on a tape back in the day Message-ID: <5f0bd241efdcba81c747ed0355de9f52@quintile.net> It can be hard to visualise what is on a tape when you have no idea what is on there. Attached is a simple tool I wrote "back then", shamlessly copying an idea by Paul Scorer at Leeds Poly (My video systems lecturer). It is called tm (tape mark). -Steve -------------- next part -------------- /* tm.c - read tape marks */ #include #include int halt = 0; void intr(); int main(int argc, char *argv[]) { int fd; static char buf[BUFSIZ * 128]; int got = 0, data = 0, mark = 0, was = -1; char *dev = "/dev/tape"; if (argc > 1) dev = argv[1]; if ((fd = open(dev, 0)) == -1){ perror(dev); return(-1); } signal(SIGINT, intr); do { got = read(fd, buf, sizeof(buf)); got = (halt)? -1: got; /* check for restarted system call */ mark = (was == 0)? mark +1: 0; data = (was > 0)? data +1: 0; if (got != was && was > 0){ printf("%-6d X %-6d\n", data, was); mark = 0; } if (got != was && was == 0){ printf("tm X %-6d\n", mark); data = 0; } was = got; } while(got != -1); close(fd); if (halt){ puts("Interupted"); } else{ fflush(stdout); perror("EOF"); } return(0); } void intr() { halt = 1; } From wlc at jctaylor.com Mon Nov 20 07:00:28 2017 From: wlc at jctaylor.com (William Corcoran) Date: Sun, 19 Nov 2017 21:00:28 +0000 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu>, Message-ID: <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> My first exposure to Unix was a Motorola S2000 model 290. This was introduced in the year I graduated high school, 1985. This box was based upon the Motorola 68000 chip as I recall. This system was unique in that the primary OS was called ISOS and System III UNIX would actually exist as a process under ISOS. The bus was a precursor to VME. The entire system consisted of several small towers strapped together by a 50 pin SCSI bus. The first tower was the CPU, called a data processing unit (“DPU”). The remaining small towers would include a QIC tape drive, a 50 MB disk drive, another 50 MB disk drive, and a 5 MB removable disk drive. This entire arrangement was called a supermicrocomputer. The 50 MB drives were 5.25” form factor full height mechanisms. Yet, they had a very unique property. Instead of voice coil technology, I think they used a stepper motor because the drives would make a relatively loud click sound when accessed. During boot, say after a panic, fsck would kick off and I will never forget the sound of these drives as they would chatter like crazy! Now, turning to the subject at hand, eventually system III was upgraded to system V in 1986. Well, one of the coolest things this little beast had was a QIC tape drive that would stream quite nicely with very little under-runs during backup and restore. But, the QIC tape driver had a unique property: You could treat the QIC tape cartridge as a block device. First, there was a utility to create a limited file system on the tape. Next, once the tape was inserted, you could mount the tape—-just like a disk. Then, you could “cd” into the mount point of the tape. You could use “/bin/cp” to copy files into the tape. You could “/bin/ls” as well. In fact, you could even “mkdir” into the QIC tape as well. There was limit to the number of nested folders. While mounting a QIC tape into the tree of life was in interesting concept, it was totally impractical. Tape based operations on the QIC cartridge were slow. Worse, the tape driver couldn’t stream when treated as a block device. This resulted in “shoe shining” the tape heads for responding to the simplest of commands like “ls.” Finally, if any of our good members here has any Information in the Motorola S2000 model 290 supermicro, I would love to know. I have searched for years to get my hands on this unit or its documentation. I did locate and obtain a DPU. But, it was in very bad shape. No one forgets their first UNIX box! Truly, Bill Corcoran On Nov 19, 2017, at 9:57 AM, Clem cole > wrote: Noel is correct. DECtape (aka linctape) was a block oriented technology. Traditional 1/2” mag tape which had 5, 7 or 9 tracks is a stream oriented technology. DECtape was used liked disk in the late 60s. It was comparably cheap and very reliable. The joke was you could unroll it and run over it with a car and then roll it back up and it would still work. Magtape was traditional back up scheme. Cost per bit was low and good for archiving. But you could only add to the end of a tape. You can do funny things like change recording techniques between files (not recommended as it can confuse many tape controllers but is technically allowed and was done). Because of the variable nature of things the OS needs a way to support these behaviors. Unix makes it pretty easy by letting the user do it all in user space and passing info to the driver. Other OSs do a lot of work when ‘mounting’ a tape. But either way simh needs to support these type of functions. Hence the idea of the virtual tape format that includes meta data to describe things like the size of each block written. A ‘file mark’ can be read/written (which is special) besides data blocks Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. On Nov 19, 2017, at 8:41 AM, Noel Chiappa > wrote: From: Will Senn I don't quite no how to investigate this other than to pore through the pdp11/40 instruction manual. One of these: https://www.ebay.com/itm/Digital-pdp-Programming-Card-8-Pages/142565890514 is useful; it has a list of all the opcodes in numerical order; something none of the CPU manuals have, to my recollection. Usually there are a flock of these "pdp11 Programming Cards" on eBait, but I only see this one at the moment. If you do any amount of work with PDP-11 binary, you'll soon find yourself recognizing the common instructions. E.g. MOV is 01msmr (octal), where 'm' is a mode specifier, and s and r are source and destination register numbers. (That's why PDP-11 people are big on octal; the instructions are easy to read in octal.) More here: http://gunkies.org/wiki/PDP-11_architecture#Operands So 0127xx is a move of an immediate operand. You don't need to mount it on DECTape drive - it's just blocks. Mount it as an RK05 image, or a magtape, or whatever. I thought disk (RK05) and tape (magtape) blocks were different... Well, you need to differentiate between DECtape and magtape - very different beasts. DECtape on a PDP-11 _only_ supports 256 word (i.e. 512 byte) blocks, the same as most disks. (Floppies are an exception when it comes to disks - sort of. The hardware supports 128/256 byte sectors, but the usual driver - not in V6 or V7 - invisibly makes them look like 512-byte blocks.) Magtapes are complicated, and I don't remember all the details of how Unix handles them, but the _hardware_ is prepared to write very long 'blocks', and there are also separate 'file marks' which the hardware can write, and notice. But a magtape written in 512-byte blocks, with no file marks, can be treated like a disk; that's what the V6 distribution tapes look like: http://gunkies.org/wiki/Installing_UNIX_Sixth_Edition#Installation_tape_contents and IIRC 'tp' format magtape tapes are written the same way, hardware-wise (so they look just like DECtapes). Noel -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Mon Nov 20 07:02:42 2017 From: dave at horsfall.org (Dave Horsfall) Date: Mon, 20 Nov 2017 08:02:42 +1100 (EST) Subject: [TUHS] The Fourth Research Edition Unix Programmer's Manual In-Reply-To: References: Message-ID: On Sun, 19 Nov 2017, Diomidis Spinellis wrote: > https://dspinellis.github.io/unix-v4man/v4man.pdf. "When you type to UNIX, a gnome deep in the system is gathering your characters and saving them in a secret place." I'd forgotten that phrase; it was also in Fifth Edition, as I recall. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From ron at ronnatalie.com Mon Nov 20 07:19:21 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Sun, 19 Nov 2017 16:19:21 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> Message-ID: You could actually mkfs a DECtape and mount it but the system would stall while rewinding to write the superblock. Sent from my iPhone > On Nov 19, 2017, at 4:00 PM, William Corcoran wrote: > > My first exposure to Unix was a Motorola S2000 model 290. This was introduced in the year I graduated high school, 1985. > > This box was based upon the Motorola 68000 chip as I recall. This system was unique in that the primary OS was called ISOS and System III UNIX would actually exist as a process under ISOS. The bus was a precursor to VME. The entire system consisted of several small towers strapped together by a 50 pin SCSI bus. The first tower was the CPU, called a data processing unit (“DPU”). The remaining small towers would include a QIC tape drive, a 50 MB disk drive, another 50 MB disk drive, and a 5 MB removable disk drive. This entire arrangement was called a supermicrocomputer. > > The 50 MB drives were 5.25” form factor full height mechanisms. Yet, they had a very unique property. Instead of voice coil technology, I think they used a stepper motor because the drives would make a relatively loud click sound when accessed. During boot, say after a panic, fsck would kick off and I will never forget the sound of these drives as they would chatter like crazy! > > Now, turning to the subject at hand, eventually system III was upgraded to system V in 1986. Well, one of the coolest things this little beast had was a QIC tape drive that would stream quite nicely with very little under-runs during backup and restore. > > But, the QIC tape driver had a unique property: You could treat the QIC tape cartridge as a block device. First, there was a utility to create a limited file system on the tape. Next, once the tape was inserted, you could mount the tape—-just like a disk. > > Then, you could “cd” into the mount point of the tape. You could use “/bin/cp” to copy files into the tape. You could “/bin/ls” as well. In fact, you could even “mkdir” into the QIC tape as well. There was limit to the number of nested folders. > > While mounting a QIC tape into the tree of life was in interesting concept, it was totally impractical. Tape based operations on the QIC cartridge were slow. Worse, the tape driver couldn’t stream when treated as a block device. This resulted in “shoe shining” the tape heads for responding to the simplest of commands like “ls.” > > Finally, if any of our good members here has any Information in the Motorola S2000 model 290 supermicro, I would love to know. I have searched for years to get my hands on this unit or its documentation. I did locate and obtain a DPU. But, it was in very bad shape. > > No one forgets their first UNIX box! > > Truly, > > Bill Corcoran > > > On Nov 19, 2017, at 9:57 AM, Clem cole wrote: > >> Noel is correct. DECtape (aka linctape) was a block oriented technology. Traditional 1/2” mag tape which had 5, 7 or 9 tracks is a stream oriented technology. >> >> DECtape was used liked disk in the late 60s. It was comparably cheap and very reliable. The joke was you could unroll it and run over it with a car and then roll it back up and it would still work. >> >> Magtape was traditional back up scheme. Cost per bit was low and good for archiving. But you could only add to the end of a tape. You can do funny things like change recording techniques between files (not recommended as it can confuse many tape controllers but is technically allowed and was done). >> >> Because of the variable nature of things the OS needs a way to support these behaviors. Unix makes it pretty easy by letting the user do it all in user space and passing info to the driver. Other OSs do a lot of work when ‘mounting’ a tape. But either way simh needs to support these type of functions. Hence the idea of the virtual tape format that includes meta data to describe things like the size of each block written. A ‘file mark’ can be read/written (which is special) besides data blocks >> >> Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. >> >> On Nov 19, 2017, at 8:41 AM, Noel Chiappa wrote: >> >>>> From: Will Senn >>> >>>> I don't quite no how to investigate this other than to pore through the >>>> pdp11/40 instruction manual. >>> >>> One of these: >>> >>> https://www.ebay.com/itm/Digital-pdp-Programming-Card-8-Pages/142565890514 >>> >>> is useful; it has a list of all the opcodes in numerical order; something none >>> of the CPU manuals have, to my recollection. Usually there are a flock of >>> these "pdp11 Programming Cards" on eBait, but I only see this one at the >>> moment. >>> >>> If you do any amount of work with PDP-11 binary, you'll soon find yourself >>> recognizing the common instructions. E.g. MOV is 01msmr (octal), where 'm' is >>> a mode specifier, and s and r are source and destination register >>> numbers. (That's why PDP-11 people are big on octal; the instructions are easy >>> to read in octal.) More here: >>> >>> http://gunkies.org/wiki/PDP-11_architecture#Operands >>> >>> So 0127xx is a move of an immediate operand. >>> >>> >>>>> You don't need to mount it on DECTape drive - it's just blocks. Mount >>>>> it as an RK05 image, or a magtape, or whatever. >>> >>>> I thought disk (RK05) and tape (magtape) blocks were different... >>> >>> Well, you need to differentiate between DECtape and magtape - very different >>> beasts. >>> >>> DECtape on a PDP-11 _only_ supports 256 word (i.e. 512 byte) blocks, the same >>> as most disks. (Floppies are an exception when it comes to disks - sort >>> of. The hardware supports 128/256 byte sectors, but the usual driver - not in >>> V6 or V7 - invisibly makes them look like 512-byte blocks.) >>> >>> Magtapes are complicated, and I don't remember all the details of how Unix >>> handles them, but the _hardware_ is prepared to write very long 'blocks', and >>> there are also separate 'file marks' which the hardware can write, and notice. >>> >>> But a magtape written in 512-byte blocks, with no file marks, can be treated >>> like a disk; that's what the V6 distribution tapes look like: >>> >>> http://gunkies.org/wiki/Installing_UNIX_Sixth_Edition#Installation_tape_contents >>> >>> and IIRC 'tp' format magtape tapes are written the same way, hardware-wise (so >>> they look just like DECtapes). >>> >>> Noel -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Mon Nov 20 08:00:28 2017 From: dave at horsfall.org (Dave Horsfall) Date: Mon, 20 Nov 2017 09:00:28 +1100 (EST) Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> Message-ID: On Sun, 19 Nov 2017, Ron Natalie wrote: > You could actually mkfs a DECtape and mount it but the system would > stall while rewinding to write the superblock.  The early Sun boxes used to hang when rewinding the cartridge tape, because the controller didn't release the Multibus; the stingy Lionel Singer used to sell the 3/50 as cheap servers... And you haven't lived until just for fun you put a file system onto a 9-track tape and ran FSCK on it. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From lyndon at orthanc.ca Mon Nov 20 08:38:53 2017 From: lyndon at orthanc.ca (Lyndon Nerenberg) Date: Sun, 19 Nov 2017 14:38:53 -0800 (PST) Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> Message-ID: > The early Sun boxes used to hang when rewinding the cartridge tape, because > the controller didn't release the Multibus; the stingy Lionel Singer used to > sell the 3/50 as cheap servers... The Convergent Tech MiniFrame had a similar bug with the QIC tape drive. If you sent it an interrupt during a rewind (e.g. ^C a cpio after the extract was done, but before the rewind/close finished), it would block the tape device from any further use. That was my first expedition into non-API UNIX kernel hacking, writing a program that would reach into the kernel to clear the 'busy' bit on the tape device. --lyndon From ron at ronnatalie.com Mon Nov 20 08:40:17 2017 From: ron at ronnatalie.com (Ronald Natalie) Date: Sun, 19 Nov 2017 17:40:17 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> Message-ID: <1CE2C7FC-1FAE-44F7-8DDA-B21D54FA0E43@ronnatalie.com> You can’t mount a regular 9 track or many other types because they weren’t block replaceable. Once you wrote the superblock the second time, you lost the rest of the filesystem. > On Nov 19, 2017, at 5:00 PM, Dave Horsfall wrote: > > On Sun, 19 Nov 2017, Ron Natalie wrote: > >> You could actually mkfs a DECtape and mount it but the system would stall while rewinding to write the superblock. > > The early Sun boxes used to hang when rewinding the cartridge tape, because the controller didn't release the Multibus; the stingy Lionel Singer used to sell the 3/50 as cheap servers... > > And you haven't lived until just for fun you put a file system onto a 9-track tape and ran FSCK on it. > > -- > Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From dave at horsfall.org Mon Nov 20 09:41:37 2017 From: dave at horsfall.org (Dave Horsfall) Date: Mon, 20 Nov 2017 10:41:37 +1100 (EST) Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <1CE2C7FC-1FAE-44F7-8DDA-B21D54FA0E43@ronnatalie.com> References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> <1CE2C7FC-1FAE-44F7-8DDA-B21D54FA0E43@ronnatalie.com> Message-ID: On Sun, 19 Nov 2017, Ronald Natalie wrote: > You can’t mount a regular 9 track or many other types because they > weren’t block replaceable. Once you wrote the superblock the second > time, you lost the rest of the filesystem. So you mount it read-only... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From cym224 at gmail.com Mon Nov 20 10:57:26 2017 From: cym224 at gmail.com (Nemo) Date: Sun, 19 Nov 2017 19:57:26 -0500 Subject: [TUHS] UNIX on S/370 Message-ID: Recent commentary on porting led me to read the article on porting UNIX to S/370 (https://www.bell-labs.com/usr/dmr/www/otherports/ibm.pdf) to support 5ESS development because the existing PDP11s were being overwhelmed. I confess to not having this read this before and find it interesting. Any recollections from anyone on the matter. And whatever happened to it? N. From ron at ronnatalie.com Mon Nov 20 11:01:31 2017 From: ron at ronnatalie.com (Ronald Natalie) Date: Sun, 19 Nov 2017 20:01:31 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: Message-ID: <98B535DB-D01D-430D-B14E-C667AF27B51B@ronnatalie.com> Never heard of that port. I was involved with IBM on the AIX for the 370/i386/i860 products. AIX/370 ran under VM/370. It was entirely ASCII using the TCF to use the i386 for a combination of consoles (IBM dubbed the “high function terminal” which we had the i860 version called the Low Function Terminal) along with X. From ron at ronnatalie.com Mon Nov 20 11:02:21 2017 From: ron at ronnatalie.com (Ronald Natalie) Date: Sun, 19 Nov 2017 20:02:21 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> <1CE2C7FC-1FAE-44F7-8DDA-B21D54FA0E43@ronnatalie.com> Message-ID: > On Nov 19, 2017, at 6:41 PM, Dave Horsfall wrote: > > On Sun, 19 Nov 2017, Ronald Natalie wrote: > >> You can’t mount a regular 9 track or many other types because they weren’t block replaceable. Once you wrote the superblock the second time, you lost the rest of the filesystem. > > So you mount it read-only... > > Still won’t work. Seek doesn’t work right. From dave at horsfall.org Mon Nov 20 11:06:35 2017 From: dave at horsfall.org (Dave Horsfall) Date: Mon, 20 Nov 2017 12:06:35 +1100 (EST) Subject: [TUHS] UNIX on S/370 In-Reply-To: References: Message-ID: On Sun, 19 Nov 2017, Nemo wrote: > Recent commentary on porting led me to read the article on porting UNIX > to S/370 (https://www.bell-labs.com/usr/dmr/www/otherports/ibm.pdf) to > support 5ESS development because the existing PDP11s were being > overwhelmed. I confess to not having this read this before and find it > interesting. Any recollections from anyone on the matter. And whatever > happened to it? I dimly recall one Ian Johnston (then at Bell, but formerly UNSW) doing a /370 port... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From dave at horsfall.org Mon Nov 20 11:18:57 2017 From: dave at horsfall.org (Dave Horsfall) Date: Mon, 20 Nov 2017 12:18:57 +1100 (EST) Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> <1CE2C7FC-1FAE-44F7-8DDA-B21D54FA0E43@ronnatalie.com> Message-ID: On Sun, 19 Nov 2017, Ronald Natalie wrote: [ Tape as a mountable file-system ] >> So you mount it read-only... > > Still won’t work. Seek doesn’t work right. I don't feel like arguing this, but it most certainly did for me, thank you very much (I'm desperately trying to be polite here); a modified tape driver, perhaps? It was quite amusing watching it thrash back and forth, until I put it out of its misery. I think I even mentioned it once, in an issue of AUUGN; all I remember now was that the tape had 512-byte blocks, just like the RK-05 from which it was presumably DD'd (I wasn't silly enough to try a MKFS). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From stewart at serissa.com Mon Nov 20 12:33:28 2017 From: stewart at serissa.com (Lawrence Stewart) Date: Sun, 19 Nov 2017 21:33:28 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <492E9EAA-73CE-4102-A1E2-690EB864AFC1@gmail.com> References: <492E9EAA-73CE-4102-A1E2-690EB864AFC1@gmail.com> Message-ID: <2033764C-C74C-4197-85A6-5E9D38220ECB@serissa.com> > On 2017, Nov 18, at 6:16 PM, Don Hopkins wrote: > > > > I have been wondering about that for years. > > Here’s the manual! LISTREVERSE is documented on page 9-3. Maybe if I printed out the "READERS COMMENTS" form at the back of the manual, wrote my question in big upper case block letters, then ticked the "If you require a written reply, please check here” checkbox, then “Fold Here” and “Do Not Tear - Fold Here and Staple” as instructed, I could mail in the free first class pre-addressed, business reply mail, no postage stamp necessary if mailed inside the United States envelope, and they’d write me back a nice letter telling me what the fuck they were thinking. > > http://bitsavers.informatik.uni-stuttgart.de/www.computer.museum.uq.edu.au/pdf/DEC-20-LBMAA-A-D%20BASIC%20User%27s%20Guide.pdf > > -Don > The thing is, the sort of people in engineering at Digital would do exactly that. The apocryphal case is when someone asked why the base of VMS DAYTIME was November 17, 1858 and got the following back: http://h41379.www4.hpe.com/wizard/wiz_2315.html -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnold at skeeve.com Mon Nov 20 13:50:48 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Sun, 19 Nov 2017 20:50:48 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: Message-ID: <201711200350.vAK3omwQ013495@freefriends.org> Nemo wrote: > Recent commentary on porting led me to read the article on porting > UNIX to S/370 (https://www.bell-labs.com/usr/dmr/www/otherports/ibm.pdf) > to support 5ESS development because the existing PDP11s were being > overwhelmed. I confess to not having this read this before and find > it interesting. Any recollections from anyone on the matter. And > whatever happened to it? > > N. That article (as noted) was originally published in the Bell System Technical Journal special issue on UNIX. The System III manuals say something like "UNIX is an operating system for DEC PDP-11, Vax 11/780 and IBM S/370 computers" so at least within the Bell System, the S/370 was supported. It does not seem to have been released to the world, which is a shame; it may be because of the underlying I/O supervisor which was a modified IBM OS. Arnold From clemc at ccc.com Tue Nov 21 01:23:56 2017 From: clemc at ccc.com (Clem Cole) Date: Mon, 20 Nov 2017 10:23:56 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <201711200350.vAK3omwQ013495@freefriends.org> References: <201711200350.vAK3omwQ013495@freefriends.org> Message-ID: On Sun, Nov 19, 2017 at 10:50 PM, wrote: > Nemo wrote: > > > Recent commentary on porting led me to read the article on porting > > UNIX to S/370 (https://www.bell-labs.com/usr/dmr/www/otherports/ibm.pdf) > > to support 5ESS development because the existing PDP11s were being > > overwhelmed. I confess to not having this read this before and find > > it interesting. Any recollections from anyone on the matter. And > > whatever happened to it? > > > > N > ​. > ​Since a number of the UNIX folks (​tjk, wnj, myself to name three) were old MTS and TSS hackers, a couple of us were always fascinated with this port but I never knew much about it. As I've said before, fsck was modeled about a program that was originally for TSS and MTS. There were definite lesson's learned from those systems by some of us when we came to UNIX and I think when some of the TSS folks in NY left CMU or UMich they took some UNIX lessons with them. Anyway in reading that paper, I've wondered how much help the TSS group in NY gave the AT&T team and who @ IBM it was. If I had a to bet, Dean Hiller had to be mixed up in it. Dean was Mr. TSS and had been my boss at CMU computer center. I remember showing Dean UNIX running on 11/34 @ EE and he being pretty impressed at how much we could do on such a small system. As for other 370 ports, IIRC Tom Lyons started a 370 port at Princeton and finished it at Amdahl. But I think that was using VM, although it may have had the access to the BTL compiler to start. When I was at Locus, where we did the AIX/370 and AIX/386 stuff Ron mentions we started over. Charlie can correct me, but IIRC the compiler was IBM's and as Ron said, AIX/370 too lived as a VM 'service.' I think I have mention on this list previously, it was targeted for the IBM University customers and was not marketed widely; which was a darned shame because it was a excellent product (and TCF was ahead of its time). Some one on this lost mentioned needing tons of floppies to install AIX/386 which is was so wrong. You needed only one, if you had another system (386 or 370 on the network), you just booted the new 'node' and let TCF take over. You 'joined' the cluster, disk replication would start to fill your disk in. It was extremely fast and easy. Oh yes - AIX/TCF supported mixed instruction sets between the 370 and x86! (TCF looked for the proper node that had the correct HW provisioning to execute any specific process). We used to show it off at trade shows, including migrating people's vi sessions 'around' the world when we had a cluster that spanned different physical sites [great fun]. Interesting security flaw -- root on any node in the cluster (like a local 386 node) was the same as root on the 370 nodes. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Tue Nov 21 02:01:48 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 20 Nov 2017 11:01:48 -0500 (EST) Subject: [TUHS] Determining what was on a tape back in the day Message-ID: <20171120160148.EED1818C091@mercury.lcs.mit.edu> > The 0th block does seem to contain some PDP-11 binary - a bootstrap of > some sort. I'll look in more detail in a bit. OK, I had a quick look, and it seems to be a modified version of mboot.s: http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/source/mdec/mboot.s I had a look through the rest of the likely files in 'mdec', and I didn't find a better match. I'm too lazy busy to do a complete dis-assembly, and work out exactly how it's different, though.. A few observations: 000: 000407 000606 000000 000000 000000 000000 000000 000001 An a.out header, with the 0407 'magic' here performing its original intended function - to branch past the header. 314: 105737 177560 002375 Some console I/O stuff - this two instruction loop waits for the input ready bit to be set. 326: 042700 177600 020027 000101 103405 020027 000132 101002 More character processing - the first instruction clears the high bits of R0, and the next two sets of two instructions compare the contents with two characters (0101 and 0132), and branch. 444: 000207 005000 021027 000407 001004 016020 460: 000020 020006 103774 012746 137000 005007 This seems like the code that checks to see if the thing is an a.out file (note the 'cmp *r0, $0407'), but the code is different from that code in mboot.s; in that, the instruction before the 'clr r0' (at 0446 here) is a 'jsr', whereas in this it's an 'rts pc'. And the code after the 'cmp r0, sp' and branch is different too. I love the '05007' - not very often you see _that_ instruction! 502: 012700 177350 012701 177342 012711 000003 105711 Clearly the code at 'taper:' (TC11 version). Noel From rminnich at gmail.com Tue Nov 21 02:03:03 2017 From: rminnich at gmail.com (ron minnich) Date: Mon, 20 Nov 2017 16:03:03 +0000 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> Message-ID: On Mon, Nov 20, 2017 at 7:25 AM Clem Cole wrote: > > As for other 370 ports, IIRC Tom Lyons started a 370 port at Princeton and > finished it at Amdahl. > When would this have been? In 1978 Szurkowski and I went to the then-famed Atlantic City Computer Show (still in Atlantic-city, pre-casino, so it was cheap, and very much the place Springsteen wrote about) and stopped at Princeton and talked to someone who was doing such a port. Would that have been Tom? Charlie can correct me, but IIRC the compiler was IBM's and as Ron said, > AIX/370 too lived as a VM 'service.' > I stopped at the now-closed Palo Alto office of IBM in 1991 or so. Some ex-Locus researchers told me that the 'move to native' for AIX was being slowed down a bit by the lack of people who knew how channels really worked ... they implied that many of them had retired! Does any of that comment ring true? ron -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Tue Nov 21 02:05:04 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 20 Nov 2017 11:05:04 -0500 (EST) Subject: [TUHS] UNIX on S/370 Message-ID: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> > From: Clem Cole > IIRC Tom Lyons started a 370 port at Princeton and finished it at > Amdahl. But I think that was using VM Maybe this is my lack of knowledge of VM showing, but how did having VM help you over running on the bare hardware? Noel From clemc at ccc.com Tue Nov 21 02:31:40 2017 From: clemc at ccc.com (Clem Cole) Date: Mon, 20 Nov 2017 11:31:40 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> Message-ID: On Mon, Nov 20, 2017 at 11:03 AM, ron minnich wrote: > > When would this have been? In 1978 Szurkowski and I went to the > then-famed Atlantic City Computer Show (still in Atlantic-city, pre-casino, > so it was cheap, and very much the place Springsteen wrote about) and > stopped at Princeton and talked to someone who was doing such a port. Would > that have been Tom? > ​I would think so.​ > I stopped at the now-closed Palo Alto office of IBM in 1991 or so. Some > ex-Locus researchers told me that the 'move to native' for AIX was being > slowed down a bit by the lack of people who knew how channels really worked > ... they implied that many of them had retired! Does any of that comment > ring true? > ​I can not say. I'm sure who that would have been.​ The Locus AIX/370 was mostly in LA [lead by Bruce Walker and late Gerry Popek]. IMO: The issue was less understanding how channels worked, as much as the biasing between the UNIX I/O model *vs.* the mainframe I/O model. 360 and CDC boxes for that matter, were a coprocessor that was programmed for the I/O. Figuring out how to splice that into the UNIX world efficiently was not always easy. I fought this war many times over my career. Often it was just easier to have a lot of really fast similar processors in the main CPU. The idea being that if you have enough of them and anyone will do, you don't have to think about it/do anything special in the SW. In the the case of the IBM channel or the CDC PPUs, or even later the Masscomp machines, if you have these coprocessors that can do a lot of the work for you, but are not as fast as or as flexible as the main processor, what is best to process what part of the I/O where? In the case of the MC500 the network processor was a 186 then a 286, and we ran the TCP stack on it so the host would not have to do anything. By the time of the MC5000, we just ran the 286 as a very large packet buffer but could smooth out packet or interrupt storms, which was the same trick we did on the CDC Cyber years earlier (the PPU had monitored the network link the same way). I believe that AIX/370 struggled with some of those same choices. -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Tue Nov 21 02:37:25 2017 From: clemc at ccc.com (Clem Cole) Date: Mon, 20 Nov 2017 11:37:25 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> Message-ID: On Mon, Nov 20, 2017 at 11:05 AM, Noel Chiappa wrote: > > Maybe this is my lack of knowledge of VM showing, but how did having VM > help > you over running on the bare hardware? > ​As an IBM person, I would ask Charlie to answer here, but I believe the answer from the Locus side was tools​ primarily and I also think they did not have to support as much specific HW (*i.e.* smaller foot print of devices). -------------- next part -------------- An HTML attachment was scrubbed... URL: From sauer at technologists.com Tue Nov 21 02:47:29 2017 From: sauer at technologists.com (Charles H Sauer) Date: Mon, 20 Nov 2017 10:47:29 -0600 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> Message-ID: I was waiting for Clem to weigh in on this, since I assume he knows more about it than I do. I wasn’t paying much attention to Unix on 370, but my impression has always been that there were multiple 370 ports. The only ones that were completed, to my knowledge, were the ESS one and AIX/370. I don’t know of the ESS one being available outside of AT&T. I don’t know anything about the compilers used, would assume they were PCC-based, even if provided by IBM. In 1989, when I left IBM, there were certainly plenty of 370 people inside IBM that would have understood 370 channels. I would have thought that to still be true in 1991, even with the buyout packages that encouraged people to retire. (It wasn’t until Gerstner became CEO in April 1993 that IBM abandoned the “full employment” traditions.) What Clem says about the smaller footprint of devices rings true. There were also likely customers that wanted to run AIX alongside other VMs, just as there were customers who wanted to run MVS alongside other VMs. Charlie From: Clem Cole Sent: Monday, November 20, 2017 10:37 AM To: Noel Chiappa Cc: The Eunuchs Hysterical Society Subject: Re: [TUHS] UNIX on S/370 On Mon, Nov 20, 2017 at 11:05 AM, Noel Chiappa wrote: Maybe this is my lack of knowledge of VM showing, but how did having VM help you over running on the bare hardware? ​As an IBM person, I would ask Charlie to answer here, but I believe the answer from the Locus side was tools​ primarily and I also think they did not have to support as much specific HW (i.e. smaller foot print of devices). -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Tue Nov 21 03:00:33 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 20 Nov 2017 12:00:33 -0500 (EST) Subject: [TUHS] Determining what was on a tape back in the day Message-ID: <20171120170033.9A6D518C096@mercury.lcs.mit.edu> > From: Will Senn > I don't see this file in the tuhs source code index OK, here it is: http://ana-3.lcs.mit.edu/~jnc/tech/unix/s2/stp.h http://ana-3.lcs.mit.edu/~jnc/tech/unix/s2/stp1.c http://ana-3.lcs.mit.edu/~jnc/tech/unix/s2/stp2.c http://ana-3.lcs.mit.edu/~jnc/tech/unix/s2/stp3.c That MIT PWB1+ tape has so many treasures on it! (We've already seen all the early networking software.) I really must getting around to curating it, and making the whole works available. Noel From will.senn at gmail.com Tue Nov 21 03:37:34 2017 From: will.senn at gmail.com (Will Senn) Date: Mon, 20 Nov 2017 11:37:34 -0600 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <20171120160148.EED1818C091@mercury.lcs.mit.edu> References: <20171120160148.EED1818C091@mercury.lcs.mit.edu> Message-ID: On 11/20/17 10:01 AM, Noel Chiappa wrote: > > The 0th block does seem to contain some PDP-11 binary - a bootstrap of > > some sort. I'll look in more detail in a bit. > > OK, I had a quick look, and it seems to be a modified version of mboot.s: > > http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/source/mdec/mboot.s > > I had a look through the rest of the likely files in 'mdec', and I didn't find > a better match. I'm too lazy busy to do a complete dis-assembly, and work out > exactly how it's different, though.. > > > A few observations: > > 000: 000407 000606 000000 000000 000000 000000 000000 000001 > > An a.out header, with the 0407 'magic' here performing its original intended > function - to branch past the header. > > 314: 105737 177560 002375 > > Some console I/O stuff - this two instruction loop waits for the input > ready bit to be set. > > 326: 042700 177600 020027 000101 103405 020027 000132 101002 > > More character processing - the first instruction clears the high bits of R0, > and the next two sets of two instructions compare the contents with two > characters (0101 and 0132), and branch. > > 444: 000207 005000 021027 000407 001004 016020 > 460: 000020 020006 103774 012746 137000 005007 > > This seems like the code that checks to see if the thing is an a.out file > (note the 'cmp *r0, $0407'), but the code is different from that code in > mboot.s; in that, the instruction before the 'clr r0' (at 0446 here) is a > 'jsr', whereas in this it's an 'rts pc'. And the code after the 'cmp r0, sp' > and branch is different too. I love the '05007' - not very often you see > _that_ instruction! > > 502: 012700 177350 012701 177342 012711 000003 105711 > > Clearly the code at 'taper:' (TC11 version). > > Noel Thanks for the insight into how to look into this. I'm off to refreshing my pdp-11 assembly language skills... Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From toby at telegraphics.com.au Tue Nov 21 03:44:38 2017 From: toby at telegraphics.com.au (Toby Thain) Date: Mon, 20 Nov 2017 12:44:38 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> Message-ID: <81a65c79-72e1-ee7e-5829-31b8e417bca2@telegraphics.com.au> On 2017-11-20 11:47 AM, Charles H Sauer wrote: > I was waiting for Clem to weigh in on this, since I assume he knows more > about it than I do. >   > I wasn’t paying much attention to Unix on 370, but my impression has > always been that there were multiple 370 ports. The only ones that were > completed, to my knowledge, were the ESS one and AIX/370. I don’t know > of the ESS one being available outside of AT&T. >   > I don’t know anything about the compilers used, would assume they were > PCC-based, even if provided by IBM. Yes, Johnson's paper[1] lists pcc's targets as Honeywell 6000, IBM 370, Interdata 8/32, DG Nova, "and others". >From time to time I wonder what became of those pcc versions... --Toby [1] https://dl.acm.org/citation.cfm?doid=512760.512771 >   > In 1989, when I left IBM, there were certainly plenty of 370 people > inside IBM that would have understood 370 channels. ... >   > Charlie >   > *From:* Clem Cole > *Sent:* Monday, November 20, 2017 10:37 AM > *To:* Noel Chiappa > *Cc:* The Eunuchs Hysterical Society > *Subject:* Re: [TUHS] UNIX on S/370 >   >   >   > On Mon, Nov 20, 2017 at 11:05 AM, Noel Chiappa > wrote: > >     > Maybe this is my lack of knowledge of VM showing, but how did having > VM help > you over running on the bare hardware? > >   > ​As an IBM person, I would ask Charlie to answer here, but I believe the > answer from the Locus side was tools​ primarily and I also think they > did not have to support as much specific HW (/i.e./ smaller foot print > of devices). From random832 at fastmail.com Tue Nov 21 04:12:38 2017 From: random832 at fastmail.com (Random832) Date: Mon, 20 Nov 2017 13:12:38 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> <1CE2C7FC-1FAE-44F7-8DDA-B21D54FA0E43@ronnatalie.com> Message-ID: <1511201558.524826.1178671936.79EC560B@webmail.messagingengine.com> On Sun, Nov 19, 2017, at 20:18, Dave Horsfall wrote: > On Sun, 19 Nov 2017, Ronald Natalie wrote: > > [ Tape as a mountable file-system ] > > >> So you mount it read-only... > > > > Still won’t work. Seek doesn’t work right. > > I don't feel like arguing this, but it most certainly did for me, > thank you very much (I'm desperately trying to be polite here); a > modified tape driver, perhaps? It was quite amusing watching it > thrash back and forth, until I put it out of its misery. > > I think I even mentioned it once, in an issue of AUUGN; all I remember > now was that the tape had 512-byte blocks, just like the RK-05 from > which it was presumably DD'd (I wasn't silly enough to try a MKFS). For whatever it's worth, the tm(4) and ht(4) manpages from V5 onward say "seeks have their usual meaning", and both drivers provide a 'non-raw' device which is a block device and (according to the manual) only supports tapes consisting of 512-byte records - the BUGS section mentions that the raw device, conversely, does *not* support seeking. It's not clear exactly what kind of support the block device had for unaligned read/write/seeks (the mention of "monstrous record gaps" for small writes suggests it was not seamless), but it seems like it not being possible to replace whole blocks explicitly is something that would have been mentioned. The 'raw' interface itself first appears in V5; The V4 manual does not mention seeking, but also does not mention "record gaps". The V4 kernel only has tm as a block device. The V3 manual says seeking does not work, and describes semantics for reads/writes of less than 512 bytes that are not mentioned in later versions of the manual. Modern OSes (Linux and BSD, anyway) do not provide the block device, and use ioctl for "seeking" (since lseek is an inappropriate interface for block-level seeking). On a historical note, it looks like in addition to the original PDP/VAX drivers, Interdata 7/32 and Tahoe ports also provided "non-raw" interfaces for those platforms' particular tape devices, whereas the HP300 port of 4.3BSD did not. From paul.winalski at gmail.com Tue Nov 21 05:02:32 2017 From: paul.winalski at gmail.com (Paul Winalski) Date: Mon, 20 Nov 2017 14:02:32 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> Message-ID: On 11/19/17, Clem cole wrote: > Noel is correct. DECtape (aka linctape) was a block oriented technology. > Traditional 1/2” mag tape which had 5, 7 or 9 tracks is a stream oriented > technology. DECtape/LINCtape was unusual as tape technology goes. It was block-oriented, meaning that data were formatted as a sequence of fixed-length blocks (256 or 512 bytes, IIRC). It was also block-replaceable--you could seek (fast-forward or rewind) to a particular block and rewrite it without destroying the data following the block. DECtape also had a timing track and could be read at variable speed. I heard one story from a PDP-10 operator who had critical data on a DECtape, but the motor on the drive broke down. He was able to use a pencil to wind the tape, and because of the timing track the drive was able to read the tape successfully. > DECtape was used liked disk in the late 60s. It was comparably cheap and > very reliable. The joke was you could unroll it and run over it with a car > and then roll it back up and it would still work. Because of the block-oriented and block replacement feature, you could treat a DECtape as if it were a high-capacity disk with a horribly long seek time. > Magtape was traditional back up scheme. Cost per bit was low and good for > archiving. But you could only add to the end of a tape. You can do funny > things like change recording techniques between files (not recommended as it > can confuse many tape controllers but is technically allowed and was done). I never used 5-track 1/2" magtape, and had only a brief acquaintance with 7-track tape. 9-track tape at 800 bits/inch used non-return to zero inverted (NRZI) encoding, 1600 bpi using phase encoding (PE), and 6250 bpi using group coded recording (GCR). Data were written as variable-length blocks, with a special tape mark indicating end-of-file. The first block of a file was typically a file label. PE- and GCR-encoded tapes had a special "PE burst" or "GCR burst" record as the first block on the tape. This allowed the tape drive to determine automatically the encoding for the tape. 9-track magtape could have some peculiar quirks. VMS Engineering at DEC once received a 6250 bpi tape from a customer containing a crash dump, but when they tried to read it, the tape had a completely different file on it. The customer verified that they had sent the correct tape. The VMS engineer mounted the tape on a different drive, and lo and behold, the crash dump was on the tape! It turned out that the first tape drive was out of adjustment, missed the GCR burst, and read the tape as 800 bpi NRZI. The 6250 bpi crash dump had been recorded on top of an earlier 800 bpi file, but the old file was still readable at 800 bpi. -Paul W. From paul.winalski at gmail.com Tue Nov 21 05:07:27 2017 From: paul.winalski at gmail.com (Paul Winalski) Date: Mon, 20 Nov 2017 14:07:27 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> Message-ID: On 11/20/17, Noel Chiappa wrote: > > Maybe this is my lack of knowledge of VM showing, but how did having VM > help > you over running on the bare hardware? It would mean that you wouldn't have to implement machine check support and other hardware error handling. The VM hypervisor would do that for you. It would also let you run multiple versions of UNIX simultaneously. Very convenient if you're doing kernel or driver development. -Paul W. From lm at mcvoy.com Tue Nov 21 05:10:55 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 11:10:55 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> Message-ID: <20171120191055.GF9146@mcvoy.com> On Mon, Nov 20, 2017 at 02:07:27PM -0500, Paul Winalski wrote: > It would mean that you wouldn't have to implement machine check > support and other hardware error handling. The VM hypervisor would do > that for you. It would also let you run multiple versions of UNIX > simultaneously. Very convenient if you're doing kernel or driver > development. Indeed. I'm currently trying to convince Netflix that the way to get the most performance out of a NUMA machine is to boot a different kernel on each NUMA domain. One way we might demo that is on a 4 domain system lock down 3 hypervisors and their guest OS to 3/4 of the NUMA domains and give the host kernel the 4th. From will.senn at gmail.com Tue Nov 21 05:20:06 2017 From: will.senn at gmail.com (Will Senn) Date: Mon, 20 Nov 2017 13:20:06 -0600 Subject: [TUHS] Some resources for V6/PDP/SIMH newbs like me Message-ID: All, While it's fresh, I thought I'd share some resources I've found helpful in learning about the venerable v6 as a relative newb... Learning Unix V6 in the modern era is an interesting and enormously educational experience. In the process of using it I have had to learn how to host it in a simulator (SimH in my case, but there are others), install it, communicate with it, configure it, build special files for it, attach devices to it, communicate with the devices attached to it and to SimH, build a kernel, install the kernel, boot the kernel, work with a variety of media intended to work with it, extend it, and so on. In addition, I have had to learn a bit about the PDP-11 (as arguably the most convenient architecture for learning about V6), about its architecture, its instruction set, its devices, its memory structure, and so on. None of this exploration would have been possible without the excellent work of Bob Supnik, Mark Pizzolato, and co. on the SimH pdp-11 simulator, the Simh mailing list, Warren Toomey and TUHS for making the bits available, the TUHS mailing list, PUPS, Bitsavers, and a slew of readily available documentation and texts including these notables: Setting Up Unix 6th Edition from the V6 Programmer's Manual The Unix V6 Programmer's Manual in its entirety The SimH and SimH PDP-11 Manuals A large number of blogs with SimH specific V6 installation logs The V6 Source Code and man pages (don't forget to install man - the 1bsd version works, and is superior)! The DEC PDP-11/05-10-35-40 1973 Handbook (the 11/40 handbook is not as detailed with respect to memory management) Lions's Commentary on the Sixth Edition source code Now that I'm over the beginner's hump, so to speak, I'm exploring things differently and I thought I'd share some resources that I am currently finding useful and interesting in my explorations... To bone up on assembly language, Lions's commentary is exceptionally helpful in explaining assembly as it is implemented in V6. The manual itself is really thin, and the source is a bit cryptic, for the newcomer. Lions explains the idioms used in the main source of V6. However, without a background in assembly language, Lions is pretty meaningless, so I went looking for something that was PDP specific that would bridge the gap and help me understand Lions's words. I found a number of texts that were really good. Most require a working RT11 instance to actually try out the coding examples and do the exercises (SimH and Bitsavers to the rescue): Arthur Gill - Machine and Assembly Language Programming of the Pdp-11 Charles A. Kapps and Robert L. Stafford - Assembly Language for the PDP-11 Glenn H. MacEwan - Introduction to Computer Systems: Using the PDP-11 and Pascal James F. Peters - The Digital Way: Macro-11 Assembler Programming (PDP-11) Michael G. Schneider - The Principles of Computer Organization: With Assembly Language Programming for the PDP-11 PDP-11 Processor Handbook (pretty much any edition) Thomas A. Frank - Introduction to the PDP-11 and its Assembly Language All of these are useable with a running RT11 instance. But, I think the Peters and Frank books are the standouts. Peters because all of the exercises that I have tried (dozens) have worked as printed and Frank because he is rigorous in his treatment of the subject and builds up from digital logic all the way through program execution. Frank is an excellent complement to Lions work because he explains the details that Lions assumes. To learn about digital logic, and a special thanks to Warren for his work on Crazy Small CPU, I have been introduced to logisim. It is a great playground for exploring digital logic. I had no idea that a sketchpad for digital logic simulation was available and accessible to the layperson. Logisim development stopped around 2014 and while there are a number of successors out there, I am using logisim-evolution: https://github.com/reds-heig/logisim-evolution The rabbit trails never seem to end... in order to learn how to use logisim, I went through the excellent tutorial and then went looking for a book of experiments in digital logic and found: digital computer lab workbook from 1969 http://bitsavers.trailing-edge.com/pdf/dec/handbooks/Digital_Computer_Lab_Workbook_1969.pdf digital equipment corporation computer lab teacher's guide from 1968 http://www.so-much-stuff.com/pdp8/pdf/ComputerLabTeachersGuide.pdf These two are useable with very little modification as a source of digital logic exercises that work great with logisim and are related to the architectural lineage of the PDP-11. These resources fit together nicely in my pursuit to better understand digital logic, the pdp-11, assembly language, and unix v6. In sum: Source code for v6 for what really is supposed to happen in v6 operation Lions for understanding Unix V6 sources and for unix assembly language information PDP-11 Hanbook for quick reference on PDP-11 assembly language instruction set Frank for assembly language details and for details on digital logic and its relationship to the PDP-11 architecture. Logisim to test logic constructs The digital lab workbook for practice with digital logic Later, Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From arnold at skeeve.com Tue Nov 21 05:27:25 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Mon, 20 Nov 2017 12:27:25 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> Message-ID: <201711201927.vAKJRPqj006781@freefriends.org> Paul Winalski wrote: > On 11/20/17, Noel Chiappa wrote: > > > > Maybe this is my lack of knowledge of VM showing, but how did having VM > > help > > you over running on the bare hardware? > > It would mean that you wouldn't have to implement machine check > support and other hardware error handling. The VM hypervisor would do > that for you. It would also let you run multiple versions of UNIX > simultaneously. Very convenient if you're doing kernel or driver > development. The "simpler hardware handling" is a big inducement to building on top of VM. Or at least starting out that way. Even though AIX/370 was aimed at the educational market, my impression is that it was still pretty expensive. When I worked at the Emory U computing center (mid 80s) I heard about it, but management wasn't interested in trying to get it for their S/390. I'm pretty sure I remember hearing at some point, I don't remember when, that AIX/370 could run either under VM or on bare iron. Any idea what Linux/370 does? I think it runs on bare iron. Arnold From lm at mcvoy.com Tue Nov 21 05:29:10 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 11:29:10 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: <201711201927.vAKJRPqj006781@freefriends.org> References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> <201711201927.vAKJRPqj006781@freefriends.org> Message-ID: <20171120192910.GG9146@mcvoy.com> On Mon, Nov 20, 2017 at 12:27:25PM -0700, arnold at skeeve.com wrote: > Any idea what Linux/370 does? I think it runs on bare iron. Pretty sure that's correct, we used to run Linux/370 on simulator to build BitKeeper images for it. I don't remember any VM stuff. From jnc at mercury.lcs.mit.edu Tue Nov 21 05:31:41 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 20 Nov 2017 14:31:41 -0500 (EST) Subject: [TUHS] Some resources for V6/PDP/SIMH newbs like me Message-ID: <20171120193141.49EFB18C0C5@mercury.lcs.mit.edu> > From: Will Senn > To bone up on assembly language, Lions's commentary is exceptionally > helpful in explaining assembly as it is implemented in V6. The manual > itself is really thin Err, which manual are you referring to there? Not the "UNIX Assembler Reference Manual": http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/doc/as/as I would assume, but the 'as(I)' page in the UPM? Noel From imp at bsdimp.com Tue Nov 21 05:36:05 2017 From: imp at bsdimp.com (Warner Losh) Date: Mon, 20 Nov 2017 12:36:05 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171120191055.GF9146@mcvoy.com> References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> <20171120191055.GF9146@mcvoy.com> Message-ID: On Mon, Nov 20, 2017 at 12:10 PM, Larry McVoy wrote: > On Mon, Nov 20, 2017 at 02:07:27PM -0500, Paul Winalski wrote: > > It would mean that you wouldn't have to implement machine check > > support and other hardware error handling. The VM hypervisor would do > > that for you. It would also let you run multiple versions of UNIX > > simultaneously. Very convenient if you're doing kernel or driver > > development. > > Indeed. I'm currently trying to convince Netflix that the way to get the > most performance out of a NUMA machine is to boot a different kernel on > each NUMA domain. One way we might demo that is on a 4 domain system > lock down 3 hypervisors and their guest OS to 3/4 of the NUMA domains > and give the host kernel the 4th. > Having a single nic presents a bit of a challenge for this... I look forward to this demo... Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Tue Nov 21 05:36:51 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 11:36:51 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> <20171120191055.GF9146@mcvoy.com> Message-ID: <20171120193651.GH9146@mcvoy.com> On Mon, Nov 20, 2017 at 12:36:05PM -0700, Warner Losh wrote: > On Mon, Nov 20, 2017 at 12:10 PM, Larry McVoy wrote: > > > On Mon, Nov 20, 2017 at 02:07:27PM -0500, Paul Winalski wrote: > > > It would mean that you wouldn't have to implement machine check > > > support and other hardware error handling. The VM hypervisor would do > > > that for you. It would also let you run multiple versions of UNIX > > > simultaneously. Very convenient if you're doing kernel or driver > > > development. > > > > Indeed. I'm currently trying to convince Netflix that the way to get the > > most performance out of a NUMA machine is to boot a different kernel on > > each NUMA domain. One way we might demo that is on a 4 domain system > > lock down 3 hypervisors and their guest OS to 3/4 of the NUMA domains > > and give the host kernel the 4th. > > Having a single nic presents a bit of a challenge for this... I look > forward to this demo... Nope, do disks/mics/mem per domain. So no bonding. From lm at mcvoy.com Tue Nov 21 05:39:39 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 11:39:39 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171120193651.GH9146@mcvoy.com> References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> <20171120191055.GF9146@mcvoy.com> <20171120193651.GH9146@mcvoy.com> Message-ID: <20171120193939.GI9146@mcvoy.com> On Mon, Nov 20, 2017 at 11:36:51AM -0800, Larry McVoy wrote: > On Mon, Nov 20, 2017 at 12:36:05PM -0700, Warner Losh wrote: > > On Mon, Nov 20, 2017 at 12:10 PM, Larry McVoy wrote: > > > > > On Mon, Nov 20, 2017 at 02:07:27PM -0500, Paul Winalski wrote: > > > > It would mean that you wouldn't have to implement machine check > > > > support and other hardware error handling. The VM hypervisor would do > > > > that for you. It would also let you run multiple versions of UNIX > > > > simultaneously. Very convenient if you're doing kernel or driver > > > > development. > > > > > > Indeed. I'm currently trying to convince Netflix that the way to get the > > > most performance out of a NUMA machine is to boot a different kernel on > > > each NUMA domain. One way we might demo that is on a 4 domain system > > > lock down 3 hypervisors and their guest OS to 3/4 of the NUMA domains > > > and give the host kernel the 4th. > > > > Having a single nic presents a bit of a challenge for this... I look > > forward to this demo... > > Nope, do disks/mics/mem per domain. So no bonding. Sorry s/mics/nics/ -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From jnc at mercury.lcs.mit.edu Tue Nov 21 05:42:41 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 20 Nov 2017 14:42:41 -0500 (EST) Subject: [TUHS] Determining what was on a tape back in the day Message-ID: <20171120194241.52DC518C0C5@mercury.lcs.mit.edu> > From: Will Senn > I'm off to refreshing my pdp-11 assembly language skills... A couple of things that might help: - assemble mboot.s and 'od' the result, so when you see something that matches in the dump of the 0th block, you can look back at the assembler source, to see what the source looks like - read the boot block into a PDP-11 debugger ('db' or 'cdb' on V6, 'adb' on V7; I _think_ 'adb' was available on V7, if not, there are some BSD's that have it) and use that to disassmble the code Noel From paul.winalski at gmail.com Tue Nov 21 05:44:03 2017 From: paul.winalski at gmail.com (Paul Winalski) Date: Mon, 20 Nov 2017 14:44:03 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> Message-ID: On 11/20/17, Clem Cole wrote: > On Mon, Nov 20, 2017 at 11:03 AM, ron minnich wrote: > > IMO: The issue was less understanding how channels worked, as much as the > biasing between the UNIX I/O model *vs.* the mainframe I/O model. 360 and > CDC boxes for that matter, were a coprocessor that was programmed for the > I/O. Figuring out how to splice that into the UNIX world efficiently was > not always easy. The PDP-11 and VAX used memory-mapped I/O. Devices presented themselves to the CPU as special areas of main memory. Instead of retrieving or storing data, these memory locations performed device operations when you read or wrote to them. System/360/370 had a radically different I/O model. I/O devices and their control units were connected to specialized coprocessors called I/O channels. Devices were addressed via a number with three hex digits, the first of which was the channel number. The CPU had an instruction called start I/O (SIO) that took as parameters a device address and the address of a series of channel command words (CCWs) that indicated to the channel the I/O operation to perform and its parameters (such as the address of the I/O buffer in main memory). The CPU was notified of I/O termination by three interrupts: channel-end (the I/O channel reached the end of its channel program), control-unit-end (the I/O control unit completed a command), and device-end (the I/O device completed a command). CCW programs were capable of primitive conditional branching and looping. It was possible to set up a channel program to perform sequential multi-buffered reading or writing, using the device-end interrupts to determine when each buffer was free for reuse. If no I/O errors occurred, it was possible to read or write a whole tape file with a single SIO instruction. -Paul W. From will.senn at gmail.com Tue Nov 21 05:45:18 2017 From: will.senn at gmail.com (Will Senn) Date: Mon, 20 Nov 2017 13:45:18 -0600 Subject: [TUHS] Some resources for V6/PDP/SIMH newbs like me In-Reply-To: <20171120193141.49EFB18C0C5@mercury.lcs.mit.edu> References: <20171120193141.49EFB18C0C5@mercury.lcs.mit.edu> Message-ID: <90958da0-58fe-6575-9589-a035c2fd68e1@gmail.com> On 11/20/2017 01:31 PM, Noel Chiappa wrote: > > From: Will Senn > > > To bone up on assembly language, Lions's commentary is exceptionally > > helpful in explaining assembly as it is implemented in V6. The manual > > itself is really thin > > Err, which manual are you referring to there? Not the "UNIX Assembler > Reference Manual": > > http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/doc/as/as > > I would assume, but the 'as(I)' page in the UPM? > > Noel The UNIX Assembler Reference Manual winds up as 10 printed pages, the as(I) page is, well, as you put it, 1 page, printed. Both are a bit thin by my reckoning. :). That said, Lions words about assembly are pretty few, too. But, he is addressing an aspect that was not addressed in either of the manual's entries and is very helpful for making the translation between PDP-11 Macro Assembler and unix as. Will From random832 at fastmail.com Sun Nov 12 03:30:20 2017 From: random832 at fastmail.com (Random832) Date: Sat, 11 Nov 2017 12:30:20 -0500 Subject: [TUHS] 80 columns ... In-Reply-To: <20171111170456.uq6tb63rtq6hkuc6@matica.foolinux.mooo.com> References: <1510334474.27585.for-standards-violators@oclsc.org> <20171111170456.uq6tb63rtq6hkuc6@matica.foolinux.mooo.com> Message-ID: <1510421420.1505476.1169232000.0EB6B20D@webmail.messagingengine.com> On Sat, Nov 11, 2017, at 12:04, Ian Zimmerman wrote: > On 2017-11-10 13:21, Norman Wilson wrote: > > -- I miss one particular case of assigment having a value: > > that of > > while ((val = function()) != STOP) > > do something with val > > I was once in a remote job interview with a Ruby shop. I don't know > Ruby, but they said I could use Python. Of course this situation came > up (it's pretty common when you think about it) and on this occasion a > whim made me write it thus: > > while True: > val = function() > if val == STOP: > break > do_something() > > Their reply was overflowing with shock and horror that I would use > "while True", and that was the end of that opportunity for me. > Apparently Ruby has a construct to handle this cleanly, without having > to call function() from two sites. Python has one as well, though it's a bit obscure - ISTR around half of the people who commented on a thread on the python mailing lists where this came up weren't familiar with it. for val in iter(function, STOP): do_something() If the function needs arguments, you have to use a lambda. If the condition is something other than equality to some value... well, you can hack something together, but it's debatably cleaner than the while True loop. (If the function is readline, though, you can just iterate over the file object) From krewat at kilonet.net Tue Nov 21 05:56:04 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Mon, 20 Nov 2017 14:56:04 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171120191055.GF9146@mcvoy.com> References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> <20171120191055.GF9146@mcvoy.com> Message-ID: <51d71c07-ca95-b6b4-2907-a21814c6da1e@kilonet.net> I would love to see the results of that, including more information about the architecture in question. On 11/20/2017 2:10 PM, Larry McVoy wrote: > On Mon, Nov 20, 2017 at 02:07:27PM -0500, Paul Winalski wrote: >> It would mean that you wouldn't have to implement machine check >> support and other hardware error handling. The VM hypervisor would do >> that for you. It would also let you run multiple versions of UNIX >> simultaneously. Very convenient if you're doing kernel or driver >> development. > Indeed. I'm currently trying to convince Netflix that the way to get the > most performance out of a NUMA machine is to boot a different kernel on > each NUMA domain. One way we might demo that is on a 4 domain system > lock down 3 hypervisors and their guest OS to 3/4 of the NUMA domains > and give the host kernel the 4th. > From lm at mcvoy.com Tue Nov 21 05:56:18 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 11:56:18 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> Message-ID: <20171120195618.GK9146@mcvoy.com> On Mon, Nov 20, 2017 at 02:44:03PM -0500, Paul Winalski wrote: > System/360/370 had a radically different I/O model. I/O devices and > their control units were connected to specialized coprocessors called > I/O channels. Devices were addressed via a number with three hex > digits, the first of which was the channel number. The CPU had an > instruction called start I/O (SIO) that took as parameters a device > address and the address of a series of channel command words (CCWs) > that indicated to the channel the I/O operation to perform and its > parameters (such as the address of the I/O buffer in main memory). > The CPU was notified of I/O termination by three interrupts: > channel-end (the I/O channel reached the end of its channel program), > control-unit-end (the I/O control unit completed a command), and > device-end (the I/O device completed a command). Yep, familiar with this model. I wrote a device driver for the Unix side of an I/O channel (talking to an Ibis disk if I recall correctly). I didn't find it hard, the I/O channel processor did all the real work, talking to it was sort of like doing networking. Truth be told, it was a polling driver, this was early on in the ETA-10 days and interrupts on the I/O channel didn't work. So that simplified the driver to the point that it was almost trivial. I get that PDP-11 and VAX used memory mapped I/O but was that somehow exposed above the device driver layer? If so, I missed that, because I had no conceptual or technical problem with talking to an I/O channel, it was pretty easy. And I suck at writing drivers. From lm at mcvoy.com Tue Nov 21 05:59:40 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 11:59:40 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: <51d71c07-ca95-b6b4-2907-a21814c6da1e@kilonet.net> References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> <20171120191055.GF9146@mcvoy.com> <51d71c07-ca95-b6b4-2907-a21814c6da1e@kilonet.net> Message-ID: <20171120195940.GL9146@mcvoy.com> Who knows if it will go anywhere. I got dragged out of retirement with hints of piles of money, so far, they loaned me a box. I believe the likely target for this would be AMD's Epyc. They have already pushed one box to serve up about 100Gbit/sec of movies and that's with them doing TLS in the kernel; be faster if they could get the NIC to do that. https://news.ycombinator.com/item?id=15367421 The limiting factor, so far as I can tell, is memory BW and PCIe lanes. Epyc seems to deliver more of that. On Mon, Nov 20, 2017 at 02:56:04PM -0500, Arthur Krewat wrote: > I would love to see the results of that, including more information about > the architecture in question. > > > On 11/20/2017 2:10 PM, Larry McVoy wrote: > >On Mon, Nov 20, 2017 at 02:07:27PM -0500, Paul Winalski wrote: > >>It would mean that you wouldn't have to implement machine check > >>support and other hardware error handling. The VM hypervisor would do > >>that for you. It would also let you run multiple versions of UNIX > >>simultaneously. Very convenient if you're doing kernel or driver > >>development. > >Indeed. I'm currently trying to convince Netflix that the way to get the > >most performance out of a NUMA machine is to boot a different kernel on > >each NUMA domain. One way we might demo that is on a 4 domain system > >lock down 3 hypervisors and their guest OS to 3/4 of the NUMA domains > >and give the host kernel the 4th. > > -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From jnc at mercury.lcs.mit.edu Tue Nov 21 06:01:09 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 20 Nov 2017 15:01:09 -0500 (EST) Subject: [TUHS] Some resources for V6/PDP/SIMH newbs like me Message-ID: <20171120200109.244D318C0A0@mercury.lcs.mit.edu> > From: Will Senn > he is addressing an aspect that was not addressed in either of the > manual's entries and is very helpful for making the translation between > PDP-11 Macro Assembler and unix as. I'm curious - what aspect was that? Noel From dave at horsfall.org Tue Nov 21 07:39:30 2017 From: dave at horsfall.org (Dave Horsfall) Date: Tue, 21 Nov 2017 08:39:30 +1100 (EST) Subject: [TUHS] First permanent ARPAnet link Message-ID: https://en.wikipedia.org/wiki/Leonard_Kleinrock#ARPANET ``The first permanent ARPANET link was established on November 21, 1969, between the IMP at UCLA and the IMP at the Stanford Research Institute.'' And thus from little acorns... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From clemc at ccc.com Tue Nov 21 07:43:29 2017 From: clemc at ccc.com (Clem Cole) Date: Mon, 20 Nov 2017 16:43:29 -0500 Subject: [TUHS] DEC Born 60 years ago Message-ID: Cute article from a few days ago in the Telegram about DEC with some since pics that I thought I would pass on to this group. http://www.telegram.com/news/20171118/digital-equipment-born-60-years-ago-in-maynard -------------- next part -------------- An HTML attachment was scrubbed... URL: From leah at vuxu.org Tue Nov 21 07:55:55 2017 From: leah at vuxu.org (Leah Neukirchen) Date: Mon, 20 Nov 2017 22:55:55 +0100 Subject: [TUHS] TROFF made trivial Message-ID: <87ine4haxg.fsf@gmail.com> Hi, I found this paper by bwk referenced in the Unix manpages, in v4 as: TROFF Made Trivial (unpublished), in v5 as: TROFF Made Trivial (internal memorandom), also in the v6 "Unix Reading List", but not anymore in v7. Anyone have a copy or a scan? -- Leah Neukirchen http://leah.zone From imp at bsdimp.com Tue Nov 21 08:00:32 2017 From: imp at bsdimp.com (Warner Losh) Date: Mon, 20 Nov 2017 15:00:32 -0700 Subject: [TUHS] TROFF made trivial In-Reply-To: <87ine4haxg.fsf@gmail.com> References: <87ine4haxg.fsf@gmail.com> Message-ID: On Mon, Nov 20, 2017 at 2:55 PM, Leah Neukirchen wrote: > Hi, > > I found this paper by bwk referenced in the Unix manpages, > in v4 as: TROFF Made Trivial (unpublished), > in v5 as: TROFF Made Trivial (internal memorandom), > also in the v6 "Unix Reading List", > but not anymore in v7. > > Anyone have a copy or a scan? > Or is this some subtle in-joke they got tired of explaining :) Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Tue Nov 21 08:08:52 2017 From: dave at horsfall.org (Dave Horsfall) Date: Tue, 21 Nov 2017 09:08:52 +1100 (EST) Subject: [TUHS] DEC Born 60 years ago In-Reply-To: References: Message-ID: On Mon, 20 Nov 2017, Clem Cole wrote: > Cute article from a few days ago in the Telegram about DEC with some > since pics that I thought I would pass on to this group. > > http://www.telegram.com/news/20171118/digital-equipment-born-60-years-ago-in-maynard But no actual date, sadly... Anyone know for sure? I maintain a list of geeky things like this (and no, I don't necessarily trust Wikipedia, as it's only as accurate as the last person who edited it). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From will.senn at gmail.com Tue Nov 21 08:41:14 2017 From: will.senn at gmail.com (Will Senn) Date: Mon, 20 Nov 2017 16:41:14 -0600 Subject: [TUHS] TROFF made trivial In-Reply-To: References: <87ine4haxg.fsf@gmail.com> Message-ID: <943d7158-b639-9c4a-28a8-b84f8997a801@gmail.com> On 11/20/17 4:00 PM, Warner Losh wrote: > > > On Mon, Nov 20, 2017 at 2:55 PM, Leah Neukirchen > wrote: > > Hi, > > I found this paper by bwk referenced in the Unix manpages, > in v4 as: TROFF Made Trivial (unpublished), > in v5 as: TROFF Made Trivial (internal memorandom), > also in the v6 "Unix Reading List", > but not anymore in v7. > > Anyone have a copy or a scan? > > > Or is this some subtle in-joke they got tired of explaining :) > > Warner Is it what became known as "A TROFF Tutorial" in Volume 2 of the v7 manual and was available as early as October 11, 1976 as referenced by Ossana in NROFF⁄TROFF User’s Manual as: 1. [5]  B. W. Kernighan, A TROFF Tutorial, Bell Laboratories internal memorandum Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Tue Nov 21 09:08:06 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 20 Nov 2017 18:08:06 -0500 (EST) Subject: [TUHS] Some resources for V6/PDP/SIMH newbs like me Message-ID: <20171120230806.985CA18C0A1@mercury.lcs.mit.edu> > From: Will Senn > (e) UNIX assembler uses the characters $ and "*" where the DEC > assemblers use "#" and "@" respectively. Amusing: the "UNIX Assembler Reference Manual" says: The syntax of the address forms is identical to that in DEC assemblers, except that "*" has been substituted for "@" and "$" for "#"; the UNIX typing conventions make "@" and "#" rather inconvenient. What's amusing is that in almost 40 years, it had never dawned on me that _that_ was why they'd made the @->*, etc change! "Duhhhh" indeed! Interesting side note: the UNIX erase/kill characters are described as being the same as Multics', but since Bell pulled out of the Multics project fairly early, I wonder if they'd used it long enough to get '@' and '#' hardwired into their fingers. So I recently has the thought 'Multics was a follow-on to CTSS, maybe CTSS used the same characters, and that's how they got burned in'. So I looked in the "CTSS Programmer's Guide" (2nd edition), and no, according to it (pg. AC.2.02), the erase and kill characters on CTSS were '"' and '?'. So, so much for that theory! > (l) The names "_edata" and "_end" are loader pseudo variables which > define the size of the data segment, and the data segment plus the bss > segment respectively. That one threw me, too, when I first started looking at the kernel! I don't recall if I found documentation about it, or just worked it out: it is in the UPM, although not in ld(1) like one might expect (at least, not in the V6 UPM; although in V7: http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/man/man1/ld.1 it is there), but in end(3): http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/man/man3/end.3 Noel From mparson at bl.org Tue Nov 21 08:56:27 2017 From: mparson at bl.org (Michael Parson) Date: Mon, 20 Nov 2017 16:56:27 -0600 (CST) Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171120192910.GG9146@mcvoy.com> References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> <201711201927.vAKJRPqj006781@freefriends.org> <20171120192910.GG9146@mcvoy.com> Message-ID: On Mon, 20 Nov 2017, Larry McVoy wrote: > On Mon, Nov 20, 2017 at 12:27:25PM -0700, arnold at skeeve.com wrote: >> Any idea what Linux/370 does? I think it runs on bare iron. > > Pretty sure that's correct, we used to run Linux/370 on simulator to > build BitKeeper images for it. I don't remember any VM stuff. When I was at IBM, I had a few customers running the product I supported under Linux on z, and what wikipedia says matches my memory of it being able to run either on metal or as a VM: Linux runs on standard, general purpose mainframe CPs (Central Processors) as well as IFLs (Integrated Facility for Linux). IFLs are mainframe processors dedicated to running Linux, either natively or under a hypervisor (z/VM or KVM on z). Microcode restricts IFLs from running "traditional" workloads, such as z/OS, but they are physically identical to other z System processors. IFLs are typically less expensive to acquire from IBM than CPs. -- Michael Parson Pflugerville, TX KF5LGQ From dave at horsfall.org Tue Nov 21 09:22:28 2017 From: dave at horsfall.org (Dave Horsfall) Date: Tue, 21 Nov 2017 10:22:28 +1100 (EST) Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <1511201558.524826.1178671936.79EC560B@webmail.messagingengine.com> References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> <1CE2C7FC-1FAE-44F7-8DDA-B21D54FA0E43@ronnatalie.com> <1511201558.524826.1178671936.79EC560B@webmail.messagingengine.com> Message-ID: On Mon, 20 Nov 2017, Random832 wrote: > For whatever it's worth, the tm(4) and ht(4) manpages from V5 onward say > "seeks have their usual meaning", and both drivers provide a 'non-raw' > device which is a block device and (according to the manual) only > supports tapes consisting of 512-byte records - the BUGS section > mentions that the raw device, conversely, does *not* support seeking. Thank you; I dimly recall that seeks were implemented by the driver keeping track of whichever block was under the head, and skipping forwards or backwards accordingly, with simple arithmetic. I no longer have access to those sources, but we at UNSW certainly modified Unix rather heavily, so if that capability is not in the distributed version then it means that we modified it; this was over 30 years ago... It bloody well worked as a read-only file system; I take great umbrage at the implication that I am a liar, and I'm the sort of obstreperous bastard who neither forgives not forgets... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From lm at mcvoy.com Tue Nov 21 09:23:01 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 15:23:01 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <20171120160504.3C46B18C091@mercury.lcs.mit.edu> <201711201927.vAKJRPqj006781@freefriends.org> <20171120192910.GG9146@mcvoy.com> Message-ID: <20171120232301.GA9093@mcvoy.com> On Mon, Nov 20, 2017 at 04:56:27PM -0600, Michael Parson wrote: > On Mon, 20 Nov 2017, Larry McVoy wrote: > >On Mon, Nov 20, 2017 at 12:27:25PM -0700, arnold at skeeve.com wrote: > >>Any idea what Linux/370 does? I think it runs on bare iron. > > > >Pretty sure that's correct, we used to run Linux/370 on simulator to > >build BitKeeper images for it. I don't remember any VM stuff. > > When I was at IBM, I had a few customers running the product I supported > under Linux on z, and what wikipedia says matches my memory of it being > able to run either on metal or as a VM: > > Linux runs on standard, general purpose mainframe CPs (Central > Processors) as well as IFLs (Integrated Facility for Linux). IFLs are > mainframe processors dedicated to running Linux, either natively or > under a hypervisor (z/VM or KVM on z). Microcode restricts IFLs from > running "traditional" workloads, such as z/OS, but they are physically > identical to other z System processors. IFLs are typically less > expensive to acquire from IBM than CPs. Sorry, we were running Linux/370 on Hercules simulator: http://www.hercules-390.org/ which I _thought_ emulated the bare metal. From will.senn at gmail.com Fri Nov 10 01:38:03 2017 From: will.senn at gmail.com (Will Senn) Date: Thu, 9 Nov 2017 09:38:03 -0600 Subject: [TUHS] redirection wildness in v7 In-Reply-To: <20171109150456.7D0B1203B0@orac.inputplus.co.uk> References: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> <20171109150456.7D0B1203B0@orac.inputplus.co.uk> Message-ID: Hi Ralph, This is a good answer. I thought it was great until I saw Dan's :). I didn't realize that the open group standard was online and accessible. Thanks for the link. Will On 11/09/2017 09:04 AM, Ralph Corderoy wrote: > Hi Will, > >> Why does the first of these incantations not present text, but the >> second does (word is a file)? Neither errors out. >> >> $ > $ That's still the case with modern-day sh(1). > > http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_01 > explains that a simple command doesn't need to result in a command name > to execute. In your first pipeline, there's nothing to copy the data > from the first subshell's stdin redirected from ./word to the subshell's > stdout that's pipes into sed's stdin. Adding a command to do the copy > works. > > From pechter at gmail.com Tue Nov 21 09:35:25 2017 From: pechter at gmail.com (William Pechter) Date: Mon, 20 Nov 2017 18:35:25 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> <1CE2C7FC-1FAE-44F7-8DDA-B21D54FA0E43@ronnatalie.com> <1511201558.524826.1178671936.79EC560B@webmail.messagingengine.com> Message-ID: <3a7416ad-b695-77bc-92c3-d37e6fddccc1@gmail.com> Dave Horsfall wrote: > On Mon, 20 Nov 2017, Random832 wrote: > >> For whatever it's worth, the tm(4) and ht(4) manpages from V5 onward >> say "seeks have their usual meaning", and both drivers provide a >> 'non-raw' device which is a block device and (according to the >> manual) only supports tapes consisting of 512-byte records - the BUGS >> section mentions that the raw device, conversely, does *not* support >> seeking. > > Thank you; I dimly recall that seeks were implemented by the driver > keeping track of whichever block was under the head, and skipping > forwards or backwards accordingly, with simple arithmetic. I no longer > have access to those sources, but we at UNSW certainly modified Unix > rather heavily, so if that capability is not in the distributed > version then it means that we modified it; this was over 30 years ago... > > It bloody well worked as a read-only file system; I take great umbrage > at the implication that I am a liar, and I'm the sort of obstreperous > bastard who neither forgives not forgets... > I know that a read-only filesystem for installs is possible.  Pyramid Technologies used a tape install filesystem called ROFS...guess what that stands for... We used it on both cartridge (QIC-150 iirc) and 9 track magtapes... So there's no special type of drive needed. It was created by dd-ing  a chrooted specially constructed file tree (IIRC).   I constructed special ones at my site with all the site specific info (passwords, groups, etc) on it for emergency recovery. It was used for their OS/x (BSD-SysV dual universe for their Risc CPU) and DCOSx (SVR4 port to Mips R3000). Bill From ralph at inputplus.co.uk Tue Nov 21 09:38:42 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Mon, 20 Nov 2017 23:38:42 +0000 Subject: [TUHS] redirection wildness in v7 In-Reply-To: References: <3c417dcc-d3b4-0128-737a-7e510c6d0ffc@gmail.com> <20171109150456.7D0B1203B0@orac.inputplus.co.uk> Message-ID: <20171120233842.A4AAE201F9@orac.inputplus.co.uk> > This is a good answer. I thought it was great until I saw Dan's :). I'm here to relive the 70s. Not last week. Admin, a purge of the list moderators is required. They're tripping. From ron at ronnatalie.com Tue Nov 21 09:43:28 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 20 Nov 2017 18:43:28 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171120195618.GK9146@mcvoy.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <20171120195618.GK9146@mcvoy.com> Message-ID: <05af01d36259$5e0873e0$1a195ba0$@ronnatalie.com> > I get that PDP-11 and VAX used memory mapped I/O but was that somehow exposed above the device driver layer? If so, I missed that, because I had no conceptual or technical problem with talking to an I/O > channel, it was pretty easy. And I suck at writing drivers. There's nothing that restricts a device driver to memory mapped I/O. You do what ever you have to do to initiate the I/O. Even the x86's originally used special instructions to start the I/O (in/out). The DENELCOR HEP supercomputer (we did this port around 1983) we had to bounce I/O requests off a separate I/O processor different from where the kernel was running. Similar constucts were used on other machines. From lm at mcvoy.com Tue Nov 21 09:45:15 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 15:45:15 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: <05af01d36259$5e0873e0$1a195ba0$@ronnatalie.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <20171120195618.GK9146@mcvoy.com> <05af01d36259$5e0873e0$1a195ba0$@ronnatalie.com> Message-ID: <20171120234515.GB9093@mcvoy.com> On Mon, Nov 20, 2017 at 06:43:28PM -0500, Ron Natalie wrote: > > > > I get that PDP-11 and VAX used memory mapped I/O but was that somehow > exposed above the device driver layer? If so, I missed that, because I had > no conceptual or technical problem with talking to an I/O > > > channel, it was pretty easy. And I suck at writing drivers. > > There's nothing that restricts a device driver to memory mapped I/O. You > do what ever you have to do to initiate the I/O. Even the x86's originally > used special instructions to start the I/O (in/out). The DENELCOR HEP > supercomputer (we did this port around 1983) we had to bounce I/O requests > off a separate I/O processor different from where the kernel was running. > Similar constucts were used on other machines. Yeah, that's what I thought. But other people were saying that I/O processors and Unix didn't mix. I don't get that, seems like whatever the model is is hidden under the driver, that's the whole point of the driver design is it not? From ron at ronnatalie.com Tue Nov 21 09:49:05 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 20 Nov 2017 18:49:05 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171120234515.GB9093@mcvoy.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <20171120195618.GK9146@mcvoy.com> <05af01d36259$5e0873e0$1a195ba0$@ronnatalie.com> <20171120234515.GB9093@mcvoy.com> Message-ID: <05b101d3625a$27c8b500$775a1f00$@ronnatalie.com> In fact, on the HEP, we didn't have a traditional interrupt service routine. When the I/O completed a new kernel thread was spawned to run the "interrupt" and start the next I/O. Later on, I wrote a UNIX port that ran on a MultibusII that used a Message Passing bus paradigm. IO starts and incoming completions were more along the line of message packets than the PDP-11 CSRs and interrupt vectors. UNIX is pretty gosh-darn resilient about hardware paradigms. -----Original Message----- From: Larry McVoy [mailto:lm at mcvoy.com] Sent: Monday, November 20, 2017 6:45 PM To: Ron Natalie Cc: 'Larry McVoy'; 'Paul Winalski'; 'The Eunuchs Hysterical Society' Subject: Re: [TUHS] UNIX on S/370 On Mon, Nov 20, 2017 at 06:43:28PM -0500, Ron Natalie wrote: > > > > I get that PDP-11 and VAX used memory mapped I/O but was that > > somehow > exposed above the device driver layer? If so, I missed that, because > I had no conceptual or technical problem with talking to an I/O > > > channel, it was pretty easy. And I suck at writing drivers. > > There's nothing that restricts a device driver to memory mapped I/O. You > do what ever you have to do to initiate the I/O. Even the x86's originally > used special instructions to start the I/O (in/out). The DENELCOR HEP > supercomputer (we did this port around 1983) we had to bounce I/O > requests off a separate I/O processor different from where the kernel was running. > Similar constucts were used on other machines. Yeah, that's what I thought. But other people were saying that I/O processors and Unix didn't mix. I don't get that, seems like whatever the model is is hidden under the driver, that's the whole point of the driver design is it not? From ron at ronnatalie.com Tue Nov 21 10:00:00 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 20 Nov 2017 19:00:00 -0500 Subject: [TUHS] Some resources for V6/PDP/SIMH newbs like me In-Reply-To: <20171120230806.985CA18C0A1@mercury.lcs.mit.edu> References: <20171120230806.985CA18C0A1@mercury.lcs.mit.edu> Message-ID: <05b301d3625b$ad61cc50$082564f0$@ronnatalie.com> ( always wondered early on (having started on the real DEC assemblers) if the default UNIX erase-kill characters were an attempt to discourage use of assembler :) From ron at ronnatalie.com Tue Nov 21 10:01:47 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 20 Nov 2017 19:01:47 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> <7AA20D14-571A-4AAD-96D0-45057F5B81DD@jctaylor.com> <1CE2C7FC-1FAE-44F7-8DDA-B21D54FA0E43@ronnatalie.com> <1511201558.524826.1178671936.79EC560B@webmail.messagingengine.com> Message-ID: <05b501d3625b$ed1c7ed0$c7557c70$@ronnatalie.com> > It bloody well worked as a read-only file system; I take great umbrage at the implication that I am a liar, and I'm the sort of obstreperous bastard who neither forgives not forgets... Nobody was calling you a liar, and if you mistook my posts for that, I sincerely apologize. Understand that people can be wrong without being a "liar" or dispute someone without making accusations of being a "liar." From ron at ronnatalie.com Tue Nov 21 10:12:02 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 20 Nov 2017 19:12:02 -0500 Subject: [TUHS] DEC Born 60 years ago In-Reply-To: References: Message-ID: <05b701d3625d$5b3b2640$11b172c0$@ronnatalie.com> I have the 1957 date in several books (the publication of which predate Wikipedia). There's a document in Alan Earls's book that is the lease for DEC's first office space, dated August 27, 1957. Other information I have just says they took the venture money and founded DEC that summer. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Dave Horsfall Sent: Monday, November 20, 2017 5:09 PM To: The Eunuchs Hysterical Society Subject: Re: [TUHS] DEC Born 60 years ago On Mon, 20 Nov 2017, Clem Cole wrote: > Cute article from a few days ago in the Telegram about DEC with some > since pics that I thought I would pass on to this group. > > http://www.telegram.com/news/20171118/digital-equipment-born-60-years- > ago-in-maynard But no actual date, sadly... Anyone know for sure? I maintain a list of geeky things like this (and no, I don't necessarily trust Wikipedia, as it's only as accurate as the last person who edited it). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From ron at ronnatalie.com Tue Nov 21 10:31:10 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 20 Nov 2017 19:31:10 -0500 Subject: [TUHS] DEC Born 60 years ago In-Reply-To: <05b701d3625d$5b3b2640$11b172c0$@ronnatalie.com> References: <05b701d3625d$5b3b2640$11b172c0$@ronnatalie.com> Message-ID: <05b901d36260$080df030$1829d090$@ronnatalie.com> Digging through some records it looks like the $70,000 cash investment from ARDC hit DEC on July 1, so the corporate birthday must have been slightly earlier. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Ron Natalie Sent: Monday, November 20, 2017 7:12 PM To: 'Dave Horsfall'; 'The Eunuchs Hysterical Society' Subject: Re: [TUHS] DEC Born 60 years ago I have the 1957 date in several books (the publication of which predate Wikipedia). There's a document in Alan Earls's book that is the lease for DEC's first office space, dated August 27, 1957. Other information I have just says they took the venture money and founded DEC that summer. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Dave Horsfall Sent: Monday, November 20, 2017 5:09 PM To: The Eunuchs Hysterical Society Subject: Re: [TUHS] DEC Born 60 years ago On Mon, 20 Nov 2017, Clem Cole wrote: > Cute article from a few days ago in the Telegram about DEC with some > since pics that I thought I would pass on to this group. > > http://www.telegram.com/news/20171118/digital-equipment-born-60-years- > ago-in-maynard But no actual date, sadly... Anyone know for sure? I maintain a list of geeky things like this (and no, I don't necessarily trust Wikipedia, as it's only as accurate as the last person who edited it). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From ron at ronnatalie.com Tue Nov 21 11:15:59 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 20 Nov 2017 20:15:59 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> Message-ID: <05be01d36266$4b32e810$e198b830$@ronnatalie.com> Ø When I was at Locus, where we did the AIX/370 and AIX/386 stuff Ron mentions we started over. Charlie can correct me, but IIRC the compiler was IBM's and as Ron said, AIX/370 too lived as a VM 'service.' I think I have mention on this list previously, it was targeted for the IBM University customers and was not marketed widely; which was a darned shame because it was a excellent product (and TCF was ahead of its time). Some one on this lost mentioned needing tons of floppies to install AIX/386 which is was so wrong. You needed only one, if you had another system (386 or 370 on the network), you just booted the new 'node' and let TCF take over. You 'joined' the cluster, disk replication would start to fill your disk in. It was extremely fast and easy. Oh yes - AIX/TCF supported mixed instruction sets between the 370 and x86! (TCF looked for the proper node that had the correct HW provisioning to execute any specific process). We used to show it off at trade shows, including migrating people's vi sessions 'around' the world when we had a cluster that spanned different physical sites [great fun]. Interesting security flaw -- root on any node in the cluster (like a local 386 node) was the same as root on the 370 nodes. It’s been decades (but I still have my IBM contractor’s badge my desk). We added the i860 modes to the cluster. We actually used more of the 370 code on our nodes than we did the x86 code. Gosh, somewhere I have the how to boot up a new node on the cluster instructions. “SERVICE” isn’t the proper term (services were more along the lines of the print spoolers, and some of the MVS stuff). AIX ran as the guest operating system much as the other IBM OS’s (CMS, MVS, ….). Yes as time went by I head they had managed to get AIX up on the bare metal. I never used it that way. The mainframes I was running AIX had other guest operating systems. I’m trying to put out of my mind the fast that I used to be responsible for an MVS system. And yes, VM made things easier. It got you slightly removed from the hardware. The disk wasn’t that big of a thing. AIX punted by not actually doing the tricky channel stuff like talking directly to the IBM terminals (3270’s) or 3705. 3705 programming was a black art even on the IBM native OS’s and then we had some funky third party (COMTEN) hardware to deal with. AIX deflected all this by actually making the user facing stuff hang off the i860/i386 nodes. Conversely getting the IBM mainframe operating systems (notably VM/CMS, but to some extent MVS) to talk to the non-IBM world was equally interesting. I remember talking extensively to Barry Appleman (VM’s TCP IP guY) about writing an X3270 xterm variant. I remember him launching into the Monty Python pet store skit at the suggestion. -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Tue Nov 21 12:41:11 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 18:41:11 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> <20171120195618.GK9146@mcvoy.com> <05af01d36259$5e0873e0$1a195ba0$@ronnatalie.com> <20171120234515.GB9093@mcvoy.com> Message-ID: <20171121024111.GO9146@mcvoy.com> So tape I can see being more weird, but isn't raw disk just "don't put it in buffer cache"? >From what I've been able to gather early tape in Unix was dicey, something about the driver doing seek. Was there more to it than that? On Tue, Nov 21, 2017 at 02:33:55AM +0000, Clem Cole wrote: > It???s not so much that they don???t mix, it???s not quite the same. Some > coprocessor ideas work really well into the Unix I/O model, others don't. > Raw disk and tape I/O ala a PDP11 or VAX for instance is not easy on an > IBM channel controller or a CDC PPU. > > > > > > > > > On Mon, Nov 20, 2017 at 6:45 PM Larry McVoy wrote: > > > On Mon, Nov 20, 2017 at 06:43:28PM -0500, Ron Natalie wrote: > > > > > > > > > > I get that PDP-11 and VAX used memory mapped I/O but was that somehow > > > exposed above the device driver layer? If so, I missed that, because I > > had > > > no conceptual or technical problem with talking to an I/O > > > > > > > channel, it was pretty easy. And I suck at writing drivers. > > > > > > There's nothing that restricts a device driver to memory mapped I/O. > > You > > > do what ever you have to do to initiate the I/O. Even the x86's > > originally > > > used special instructions to start the I/O (in/out). The DENELCOR HEP > > > supercomputer (we did this port around 1983) we had to bounce I/O > > requests > > > off a separate I/O processor different from where the kernel was running. > > > Similar constucts were used on other machines. > > > > Yeah, that's what I thought. But other people were saying that I/O > > processors and Unix didn't mix. I don't get that, seems like whatever > > the model is is hidden under the driver, that's the whole point of the > > driver design is it not? > > > -- > Sent from a handheld expect more typos than usual -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From jnc at mercury.lcs.mit.edu Tue Nov 21 12:56:46 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 20 Nov 2017 21:56:46 -0500 (EST) Subject: [TUHS] UNIX on S/370 Message-ID: <20171121025646.380EB18C0B0@mercury.lcs.mit.edu> > From: Larry McVoy > So tape I can see being more weird, but isn't raw disk just "don't put > it in buffer cache"? One machines/controllers which are capable of it, with raw devices DMA happens directly into the buffers in the process (which obviously has to be resident while the I/O is happening). Noel From ron at ronnatalie.com Tue Nov 21 13:15:58 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 20 Nov 2017 22:15:58 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171121025646.380EB18C0B0@mercury.lcs.mit.edu> References: <20171121025646.380EB18C0B0@mercury.lcs.mit.edu> Message-ID: <05e701d36277$0db803b0$29280b10$@ronnatalie.com> That's a common optimization, but the only real requirement in the UNIX kernel is the raw I/O bypasses the kernel buffer cache. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Noel Chiappa Sent: Monday, November 20, 2017 9:57 PM To: tuhs at tuhs.org Cc: jnc at mercury.lcs.mit.edu Subject: Re: [TUHS] UNIX on S/370 > From: Larry McVoy > So tape I can see being more weird, but isn't raw disk just "don't put > it in buffer cache"? One machines/controllers which are capable of it, with raw devices DMA happens directly into the buffers in the process (which obviously has to be resident while the I/O is happening). Noel From gtaylor at tnetconsulting.net Tue Nov 21 13:29:14 2017 From: gtaylor at tnetconsulting.net (Grant Taylor) Date: Mon, 20 Nov 2017 20:29:14 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: <05be01d36266$4b32e810$e198b830$@ronnatalie.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> Message-ID: <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> On 11/20/2017 06:15 PM, Ron Natalie wrote: > AIX deflected all this by actually making the user facing stuff hang off > the i860/i386 nodes. Does that mean that you couldn't access AIX/370 from a traditional mainframe terminal? That seems bizarre to me. But it does sound like some other strange things I've heard come out of IBM before. > I remember talking extensively to Barry Appleman (VM’s TCP IP guY) about > writing an X3270 xterm variant. What would that have done? Are you meaning an app that would run on non-AIX/370 OSs that could then act similar to the i860/i386 client / node? (Was it trying to emulate a traditional serial dumb terminal?) #confused -- Grant. . . . unix || die From ron at ronnatalie.com Tue Nov 21 13:40:01 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 20 Nov 2017 22:40:01 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> Message-ID: <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> I'm pretty sure you could, but only on very rudimentary line mode stuff. Note that an IBM mainframe terminal doesn't really have the same paradigm as an ASCII terminal. You could go to a VM monitor and type IPL AIX and watch UNIX boot up. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Grant Taylor via TUHS Sent: Monday, November 20, 2017 10:29 PM To: tuhs at minnie.tuhs.org Subject: Re: [TUHS] UNIX on S/370 On 11/20/2017 06:15 PM, Ron Natalie wrote: > AIX deflected all this by actually making the user facing stuff hang > off the i860/i386 nodes. Does that mean that you couldn't access AIX/370 from a traditional mainframe terminal? That seems bizarre to me. But it does sound like some other strange things I've heard come out of IBM before. > I remember talking extensively to Barry Appleman (VM’s TCP IP guY) > about writing an X3270 xterm variant. What would that have done? Are you meaning an app that would run on non-AIX/370 OSs that could then act similar to the i860/i386 client / node? (Was it trying to emulate a traditional serial dumb terminal?) #confused -- Grant. . . . unix || die From gtaylor at tnetconsulting.net Tue Nov 21 13:46:06 2017 From: gtaylor at tnetconsulting.net (Grant Taylor) Date: Mon, 20 Nov 2017 20:46:06 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> Message-ID: <105c89b0-42f1-f221-497c-c3a9e879954f@tnetconsulting.net> On 11/20/2017 08:40 PM, Ron Natalie wrote: > I'm pretty sure you could, but only on very rudimentary line mode stuff. *nod* > Note that an IBM mainframe terminal doesn't really have the same paradigm > as an ASCII terminal. Ya.... From what (little) I know about 3270 (and 5250 for AS/400s?) reminds me of HTML forms with the mainframe as the web server and the terminal as the client web browser. What with the mainframe sending [protected,hidden] fields to the terminal that displayed them and trusted what the terminal sent back. *headshake* Times were different. I am guessing that there is also security through obscurity based on what information was available at the time. > You could go to a VM monitor and type IPL AIX and watch UNIX boot up. I wonder if USS / OMVS terminal ~ application on more modern mainframes still run into issues. -- Grant. . . . unix || die From lm at mcvoy.com Tue Nov 21 13:51:12 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 19:51:12 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: <05e701d36277$0db803b0$29280b10$@ronnatalie.com> References: <20171121025646.380EB18C0B0@mercury.lcs.mit.edu> <05e701d36277$0db803b0$29280b10$@ronnatalie.com> Message-ID: <20171121035112.GC9093@mcvoy.com> Actually, how common was that? I know at SGI we did that with O_DIRECT on files (and just automatically on the way for in networking and page flipped on the way out). But it was a pile of work, you had to lock all the pages so that the pageout daemon didn't page them out, etc. So under what circumstances would Unix do DMA to/from user buffers rather than bcopy it? On Mon, Nov 20, 2017 at 10:15:58PM -0500, Ron Natalie wrote: > That's a common optimization, but the only real requirement in the UNIX > kernel is the raw I/O bypasses the kernel buffer cache. > > > -----Original Message----- > From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Noel Chiappa > Sent: Monday, November 20, 2017 9:57 PM > To: tuhs at tuhs.org > Cc: jnc at mercury.lcs.mit.edu > Subject: Re: [TUHS] UNIX on S/370 > > > From: Larry McVoy > > > So tape I can see being more weird, but isn't raw disk just "don't put > > it in buffer cache"? > > One machines/controllers which are capable of it, with raw devices DMA > happens directly into the buffers in the process (which obviously has to be > resident while the I/O is happening). > > Noel -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From clemc at ccc.com Tue Nov 21 14:34:11 2017 From: clemc at ccc.com (Clem cole) Date: Mon, 20 Nov 2017 23:34:11 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> Message-ID: <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> Right. Generally you used the ps/2 as the terminals for AIX/370 Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > On Nov 20, 2017, at 10:40 PM, Ron Natalie wrote: > > I'm pretty sure you could, but only on very rudimentary line mode stuff. Note that an IBM mainframe terminal doesn't really have the same paradigm as an ASCII terminal. > > You could go to a VM monitor and type IPL AIX and watch UNIX boot up. > > > -----Original Message----- > From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Grant Taylor via TUHS > Sent: Monday, November 20, 2017 10:29 PM > To: tuhs at minnie.tuhs.org > Subject: Re: [TUHS] UNIX on S/370 > >> On 11/20/2017 06:15 PM, Ron Natalie wrote: >> AIX deflected all this by actually making the user facing stuff hang >> off the i860/i386 nodes. > > Does that mean that you couldn't access AIX/370 from a traditional mainframe terminal? > > That seems bizarre to me. But it does sound like some other strange things I've heard come out of IBM before. > >> I remember talking extensively to Barry Appleman (VM’s TCP IP guY) >> about writing an X3270 xterm variant. > > What would that have done? Are you meaning an app that would run on > non-AIX/370 OSs that could then act similar to the i860/i386 client / node? (Was it trying to emulate a traditional serial dumb terminal?) > > #confused > > > > -- > Grant. . . . > unix || die > From imp at bsdimp.com Tue Nov 21 15:14:41 2017 From: imp at bsdimp.com (Warner Losh) Date: Mon, 20 Nov 2017 22:14:41 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171121035112.GC9093@mcvoy.com> References: <20171121025646.380EB18C0B0@mercury.lcs.mit.edu> <05e701d36277$0db803b0$29280b10$@ronnatalie.com> <20171121035112.GC9093@mcvoy.com> Message-ID: On Nov 20, 2017 8:51 PM, "Larry McVoy" wrote: Actually, how common was that? I know at SGI we did that with O_DIRECT on files (and just automatically on the way for in networking and page flipped on the way out). But it was a pile of work, you had to lock all the pages so that the pageout daemon didn't page them out, etc. So under what circumstances would Unix do DMA to/from user buffers rather than bcopy it? I assume you aren't talking about things like mmap where you can't really bcopy it... At Fusion I/O we had hooks into our PCIe flash card driver that would do DMA directly into user buffers (since we wanted IOPS and any extra copies got in the way of that). We also played fun tricks with 'extended I/O primitives' that were implemented with ioctls, but still did I/O to/from user buffers. This was so we could construct 1 transaction for what's basically an atomic writev (more complicated than that, because the atomic operation also supported delete/trim operations at the same time). This was to simplify checkpointing since it was an all or nothing thing: if we couldn't do it, or the system crashed in the middle, the transaction never happened. There were other, more extended I/O operations that involved read as well that were kinda crazy, but useful for a market segment we did well in. Also likely no the sort of thing that you were thinking about, but it was a novel use of DMA to user buffers. Warner On Mon, Nov 20, 2017 at 10:15:58PM -0500, Ron Natalie wrote: > That's a common optimization, but the only real requirement in the UNIX > kernel is the raw I/O bypasses the kernel buffer cache. > > > -----Original Message----- > From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Noel Chiappa > Sent: Monday, November 20, 2017 9:57 PM > To: tuhs at tuhs.org > Cc: jnc at mercury.lcs.mit.edu > Subject: Re: [TUHS] UNIX on S/370 > > > From: Larry McVoy > > > So tape I can see being more weird, but isn't raw disk just "don't put > > it in buffer cache"? > > One machines/controllers which are capable of it, with raw devices DMA > happens directly into the buffers in the process (which obviously has to be > resident while the I/O is happening). > > Noel -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Tue Nov 21 15:20:23 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 21:20:23 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <20171121025646.380EB18C0B0@mercury.lcs.mit.edu> <05e701d36277$0db803b0$29280b10$@ronnatalie.com> <20171121035112.GC9093@mcvoy.com> Message-ID: <20171121052023.GE9093@mcvoy.com> On Mon, Nov 20, 2017 at 10:14:41PM -0700, Warner Losh wrote: > I assume you aren't talking about things like mmap where you can't really > bcopy it... Correct. > At Fusion I/O we had hooks into our PCIe flash card driver that would do > DMA directly into user buffers (since we wanted IOPS and any extra copies > got in the way of that). Yeah, cool, sorta like the SGI stuff, but that was stuff that you had to add and SGI had to add. The only place I can see dma right into user buffers would be if the user blocked in the read, it was to a raw device, *and* the OS took care to make sure that those page[s] were locked. I can see the 1st 2 but I've not run into the last one except for specialized stuff like O_DIRECT. From gtaylor at tnetconsulting.net Tue Nov 21 15:42:12 2017 From: gtaylor at tnetconsulting.net (Grant Taylor) Date: Mon, 20 Nov 2017 22:42:12 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> Message-ID: On 11/20/2017 09:34 PM, Clem cole wrote: > Right. Generally you used the ps/2 as the terminals for AIX/370 So ... what communications technology and protocol was used? Serial? (I assume that you could have some sort of establishment controller with (a)synch serial ports.) Or would it be some sort of red headed step child that ran across twinax / 3270 even though the 3270 terminals couldn't really support it? > Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. *chuckle* -- Grant. . . . unix || die From arnold at skeeve.com Tue Nov 21 18:09:28 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Tue, 21 Nov 2017 01:09:28 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: <105c89b0-42f1-f221-497c-c3a9e879954f@tnetconsulting.net> References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <105c89b0-42f1-f221-497c-c3a9e879954f@tnetconsulting.net> Message-ID: <201711210809.vAL89SQh012039@freefriends.org> Grant Taylor via TUHS wrote: > Ya.... From what (little) I know about 3270 (and 5250 for AS/400s?) > reminds me of HTML forms with the mainframe as the web server and the > terminal as the client web browser. What with the mainframe sending > [protected,hidden] fields to the terminal that displayed them and > trusted what the terminal sent back. Also from what little I know, that's a decent analogy. > *headshake* Times were different. > I am guessing that there is also security through obscurity based on > what information was available at the time. Bear in mind that said terminals were wired directly to the peripheral controller, usually within the same building, in cable conduits under the floor, in the ceiling overhead or in various combinations thereof. It wasn't TCP/IP over wireless! Moving the interaction with the human into a peripheral made a lot of sense; you often had dozens or hundreds of the terminals hooked up to the mainframes, and the interrupt per single-character model of Unix and other minicomputer OSes would have brought a mainframe to its knees, crying like a baby. Arnold From leah at vuxu.org Tue Nov 21 19:15:21 2017 From: leah at vuxu.org (Leah Neukirchen) Date: Tue, 21 Nov 2017 10:15:21 +0100 Subject: [TUHS] TROFF made trivial In-Reply-To: <943d7158-b639-9c4a-28a8-b84f8997a801@gmail.com> (Will Senn's message of "Mon, 20 Nov 2017 16:41:14 -0600") References: <87ine4haxg.fsf@gmail.com> <943d7158-b639-9c4a-28a8-b84f8997a801@gmail.com> Message-ID: <87efosgfh2.fsf@gmail.com> Will Senn writes: > On 11/20/17 4:00 PM, Warner Losh wrote: >> >> >> On Mon, Nov 20, 2017 at 2:55 PM, Leah Neukirchen > > wrote: >> >> Hi, >> >> I found this paper by bwk referenced in the Unix manpages, >> in v4 as: TROFF Made Trivial (unpublished), >> in v5 as: TROFF Made Trivial (internal memorandom), >> also in the v6 "Unix Reading List", >> but not anymore in v7. >> >> Anyone have a copy or a scan? >> >> >> Or is this some subtle in-joke they got tired of explaining :) >> >> Warner > > Is it what became known as "A TROFF Tutorial" in Volume 2 of the v7 > manual and was available as early as October 11, 1976 as referenced by > Ossana in NROFF⁄TROFF User’s Manual as: > > 1. > > [5]  B. W. Kernighan, A TROFF Tutorial, Bell Laboratories internal > memorandum Ah, very good, thank you. I have a copy of Volume 2. I guess the original title was deemed inapplicable. :) -- Leah Neukirchen http://leah.zone From ron at ronnatalie.com Tue Nov 21 22:00:11 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Tue, 21 Nov 2017 07:00:11 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> Message-ID: <060301d362c0$493fd7c0$dbbf8740$@ronnatalie.com> Well you had two choices. You could telnet/rlogin in to the 370 AIX instance or use an xterm running there to direct things to your PS/2. The other choice is to use TCF. TCF allowed you to transparently run binaries on a remote machine and it took care of redirecting stdin/stdout back to your machine. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Grant Taylor via TUHS Sent: Tuesday, November 21, 2017 12:42 AM To: tuhs at minnie.tuhs.org Subject: Re: [TUHS] UNIX on S/370 On 11/20/2017 09:34 PM, Clem cole wrote: > Right. Generally you used the ps/2 as the terminals for AIX/370 So ... what communications technology and protocol was used? Serial? (I assume that you could have some sort of establishment controller with (a)synch serial ports.) Or would it be some sort of red headed step child that ran across twinax / 3270 even though the 3270 terminals couldn't really support it? > Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. *chuckle* -- Grant. . . . unix || die From arnold at skeeve.com Tue Nov 21 22:54:20 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Tue, 21 Nov 2017 05:54:20 -0700 Subject: [TUHS] TROFF made trivial In-Reply-To: <87efosgfh2.fsf@gmail.com> References: <87ine4haxg.fsf@gmail.com> <943d7158-b639-9c4a-28a8-b84f8997a801@gmail.com> <87efosgfh2.fsf@gmail.com> Message-ID: <201711211254.vALCsKKY007445@freefriends.org> Leah Neukirchen asked: > >> I found this paper by bwk referenced in the Unix manpages, > >> in v4 as: TROFF Made Trivial (unpublished), > >> in v5 as: TROFF Made Trivial (internal memorandom), > >> also in the v6 "Unix Reading List", > >> but not anymore in v7. > >> > >> Anyone have a copy or a scan? Warner (I think): > > Is it what became known as "A TROFF Tutorial" in Volume 2 of the v7 > > manual and was available as early as October 11, 1976 as referenced by > > Ossana in NROFF⁄TROFF User’s Manual as: > > > > 1. > > > > [5]  B. W. Kernighan, A TROFF Tutorial, Bell Laboratories internal > > memorandum I asked Brian off-list. His answer: > Date: Tue, 21 Nov 2017 06:24:22 -0500 (EST) > From: Brian Kernighan > To: arnold at skeeve.com > Subject: Re: "TROFF made trivial"? > > That's almost surely what became the Troff tutorial. I will poke > around to see if I have a paper copy. I he finds one, I'll pass it on. Arnold From clemc at ccc.com Tue Nov 21 23:24:51 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 21 Nov 2017 08:24:51 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> Message-ID: On Tue, Nov 21, 2017 at 12:42 AM, Grant Taylor via TUHS < tuhs at minnie.tuhs.org> wrote: > > So ... what communications technology and protocol was used? ​Ethernet - TCP/IP​ -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Tue Nov 21 23:51:30 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 21 Nov 2017 08:51:30 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <060301d362c0$493fd7c0$dbbf8740$@ronnatalie.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> <060301d362c0$493fd7c0$dbbf8740$@ronnatalie.com> Message-ID: On Tue, Nov 21, 2017 at 7:00 AM, Ron Natalie wrote: > > The other choice is to use TCF. TCF allowed you to transparently run > binaries on a remote machine and it took care of redirecting stdin/stdout > back to your machine. > ​It did a heck of lot more than that. TCF made all the systems participating in the cluster one transparent machine - TCF - the Transparent Computing Facility. Processes migrated between processors, for execution. Your 'login session' was as Ron points out typically an x-windows/xterm. But resources that you used over the course of the session could be anywhere within the cluster. Nodes could come and go and the cluster survive. You can read all about it in the Locus book which available from Amazon [MIT press - Popek and Walker]. The two biggest errors IMO was that the cluster size was screwed down to 32 and the kernel was ad hoc and very heavily hacked, so it was hard to put the features into other systems. FYI: the follow on to it, TNC (Transparent Network Computing); corrected both of those issues. TNC becme the OS for Intel Paragon which scaled to 4096 nodes. Locus moved the technology into 18 different components and made them available separately. They were all eventually made open source. The TNC file system became DEC's TruCluster FS, a project which I lead and brought me to DEC. I had also lead a group in Boston that had put TNC into HP-UX with full process migration before we did the work for DEC actually, but HP cancelled the project before it ever shipped. Bruce and the west coast Locus folks put most of TNC into Linux a few years ago before he retired and as I say, succeeded to release it as open source -- I can dig up a URL for that project, if folks are interested. I had it running on a small 8 node cluster about 8-10 years ago; it was very cool; but was using a older version of the RH and a 2.4 Linux kernel around the time Linux went to the the 2.6 kernel. Clem -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Wed Nov 22 00:59:20 2017 From: lm at mcvoy.com (Larry McVoy) Date: Tue, 21 Nov 2017 06:59:20 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> <060301d362c0$493fd7c0$dbbf8740$@ronnatalie.com> Message-ID: <20171121145920.GQ9146@mcvoy.com> On Tue, Nov 21, 2017 at 08:51:30AM -0500, Clem Cole wrote: > FYI: the follow on to it, TNC (Transparent Network Computing); corrected > both of those issues. TNC becme the OS for Intel Paragon which scaled to > 4096 nodes. Locus moved the technology into 18 different components and > made them available separately. They were all eventually made open > source. The TNC file system became DEC's TruCluster FS, a project which I > lead and brought me to DEC. I had also lead a group in Boston that had > put TNC into HP-UX with full process migration before we did the work for > DEC actually, but HP cancelled the project before it ever shipped. Bruce > and the west coast Locus folks put most of TNC into Linux a few years ago > before he retired and as I say, succeeded to release it as open source -- I > can dig up a URL for that project, if folks are interested. I had it > running on a small 8 node cluster about 8-10 years ago; it was very cool; > but was using a older version of the RH and a 2.4 Linux kernel around the > time Linux went to the the 2.6 kernel. I would be very very interested in seeing that. From ron at ronnatalie.com Wed Nov 22 01:40:35 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Tue, 21 Nov 2017 10:40:35 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> <060301d362c0$493fd7c0$dbbf8740$@ronnatalie.com> Message-ID: <064601d362df$13425660$39c70320$@ronnatalie.com> Yes, definitely more to TCF than just what I mentioned, I just wanted to indicate why you wouldn’t necessarily need to be connected to the 370-node directly in order to use it. It was really handy (though somewhat confusing at times) when we were doing the 4 process i860 addition to the system. It was far too easy to just let use an i386 instance of some application rather than providing the native one (since the W4 card was a microchannel card that went into the PS2). Unless you tried really hard, you couldn’t tell if the app was running remotely. From: Clem Cole [mailto:clemc at ccc.com] Sent: Tuesday, November 21, 2017 8:52 AM To: Ron Natalie Cc: Grant Taylor; The Eunuchs Hysterical Society Subject: Re: [TUHS] UNIX on S/370 On Tue, Nov 21, 2017 at 7:00 AM, Ron Natalie wrote: The other choice is to use TCF. TCF allowed you to transparently run binaries on a remote machine and it took care of redirecting stdin/stdout back to your machine. ​It did a heck of lot more than that. TCF made all the systems participating in the cluster one transparent machine - TCF - the Transparent Computing Facility. Processes migrated between processors, for execution. Your 'login session' was as Ron points out typically an x-windows/xterm. But resources that you used over the course of the session could be anywhere within the cluster. Nodes could come and go and the cluster survive. You can read all about it in the Locus book which available from Amazon [MIT press - Popek and Walker]. The two biggest errors IMO was that the cluster size was screwed down to 32 and the kernel was ad hoc and very heavily hacked, so it was hard to put the features into other systems. FYI: the follow on to it, TNC (Transparent Network Computing); corrected both of those issues. TNC becme the OS for Intel Paragon which scaled to 4096 nodes. Locus moved the technology into 18 different components and made them available separately. They were all eventually made open source. The TNC file system became DEC's TruCluster FS, a project which I lead and brought me to DEC. I had also lead a group in Boston that had put TNC into HP-UX with full process migration before we did the work for DEC actually, but HP cancelled the project before it ever shipped. Bruce and the west coast Locus folks put most of TNC into Linux a few years ago before he retired and as I say, succeeded to release it as open source -- I can dig up a URL for that project, if folks are interested. I had it running on a small 8 node cluster about 8-10 years ago; it was very cool; but was using a older version of the RH and a 2.4 Linux kernel around the time Linux went to the the 2.6 kernel. Clem -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Wed Nov 22 01:45:46 2017 From: lm at mcvoy.com (Larry McVoy) Date: Tue, 21 Nov 2017 07:45:46 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: <064601d362df$13425660$39c70320$@ronnatalie.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> <060301d362c0$493fd7c0$dbbf8740$@ronnatalie.com> <064601d362df$13425660$39c70320$@ronnatalie.com> Message-ID: <20171121154546.GS9146@mcvoy.com> On Tue, Nov 21, 2017 at 10:40:35AM -0500, Ron Natalie wrote: > Yes, definitely more to TCF than just what I mentioned, I just wanted to indicate why you wouldn???t necessarily need to be connected to the 370-node directly in order to use it. > > It was really handy (though somewhat confusing at times) when we were doing the 4 process i860 addition to the system. It was far too easy to just let use an i386 instance of some application rather than providing the native one (since the W4 card was a microchannel card that went into the PS2). Unless you tried really hard, you couldn???t tell if the app was running remotely. Yeah, so imagine something like TNC plus my N kernels on NUMA idea. Seems pretty have your cake and eat it too. From doug at cs.dartmouth.edu Wed Nov 22 02:08:01 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Tue, 21 Nov 2017 11:08:01 -0500 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from Message-ID: <201711211608.vALG81PQ014303@coolidge.cs.Dartmouth.EDU> `quotes' > rules used ... to create British spelling from an American > English database often leave a lot to be desired. Among the BUGS listed for spell(1) in v7 was "Britsh spelling was done by an American". Nevertheless, at least one British expat thanked me for spell -b. He had been using the original "spell", and ignoring its reports of British "misspellings". But, he said, long exposure to American writing had infected his writing. Spell -b was a blessing, for revealed where his usage wobbled between traditions. From paul.winalski at gmail.com Wed Nov 22 02:49:40 2017 From: paul.winalski at gmail.com (Paul Winalski) Date: Tue, 21 Nov 2017 11:49:40 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <105c89b0-42f1-f221-497c-c3a9e879954f@tnetconsulting.net> References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <105c89b0-42f1-f221-497c-c3a9e879954f@tnetconsulting.net> Message-ID: On 11/20/17, Grant Taylor via TUHS wrote: > > Ya.... From what (little) I know about 3270 (and 5250 for AS/400s?) > reminds me of HTML forms with the mainframe as the web server and the > terminal as the client web browser. That's a good analogy. 3270s were designed to be transaction processing terminals. The application displays a form on the screen; the user fills in the form and presses an interrupt key; the application reads back the modified form. Not truly interactive in the way that TTYs and screen terminals were. -Paul W. From clemc at ccc.com Wed Nov 22 03:06:56 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 21 Nov 2017 12:06:56 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171121145920.GQ9146@mcvoy.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> <060301d362c0$493fd7c0$dbbf8740$@ronnatalie.com> <20171121145920.GQ9146@mcvoy.com> Message-ID: *OpenSSI (Single System Image) Clusters for Linux ​ is the URL for the project* *Note Bruce has retired since he wrote the following, but the * *paper describing the work is: *Open Single System Image (openSSI) Linux Cluster Project, Bruce J. Walker, Hewlett-Packard Bruce.walker at hp.com Abstract The openSSI Cluster project is an ongoing open source project which was started two years ago to bring together some of the best Linux and Unix clustering technologies into a single integrated and yet modular project. Linux is rich in cluster technology but is segmented into 6 different cluster areas - high performance, load-leveling, web-service, storage, database and high availability. The openSSI project address all cluster environments by simultaneously addressing the three key cluster goals - availability, scalability and manageability. To accomplish this ambitious goal, the project was started with a Linux adaptation of the NonStop Clusters for Unixware code, contributed by Compaq/HP. That code included membership, internode communication, clusterwide process management, clusterwide devices, a cluster filesystem, clusterwide IPC (pipes, fifos, msgqueues, semaphores, etc.) and clusterwide tcp/ip networking. Other open source clustering code has been integrated into the modular architecture, including openGFS, openDLM, LVS, Lustre and a small component of Mosix. The architecture of the project allows for subsetting and substitution of components. A full function initial release is available in both source and RPM form. Many enhancement opportunities still exist both in integrating with other technologies and by improving scalability and availability. *​* -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Wed Nov 22 03:23:14 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 21 Nov 2017 12:23:14 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> <060301d362c0$493fd7c0$dbbf8740$@ronnatalie.com> <20171121145920.GQ9146@mcvoy.com> Message-ID: FWIW: The one sad thing I look back one and fear was a the greatest contribution of TNC that was lost was Vprocs - the virtual process layer, that Roman and I created - originally for the Paragon and HP systems. We took a tip from Sun's VFS layer and said what we really need is a layer the kernel with new interface to allow virtual process technology. They you can support a number of different types of interfaces the same way you can support different file systems. We spliced had it running is OSF1, HP-UX, Linux (2.4), SVR4, an Apple kernel and had started putting into an Solaris for one of the super computer firms (I've forgotten now whom). I started putting it into a FreeBSD release at one point, but was over whelmed by other kernel changes and just could not keep up with he mainline - it been on my 'to do.' I think that's why OpenSSI gave up. Unless Linus really got excited it was not going be able to stay in on the side. Which is a shame because once you put the changes in, to support the vproc layer, then its easier to make changes of course because you have a clean interface. As I said, just like VFS cleaned up the file system and i-node layer and removed a bunch of stuff that had bleed into the places in the kernel it really did not belong. The same is true for the process layer and some of the other UNIX name spaces (semaphores, systemV shared memory, etc..). Vproc really cleaned that up. On Tue, Nov 21, 2017 at 12:06 PM, Clem Cole wrote: > > *OpenSSI (Single System Image) Clusters for Linux > ​ is the URL for the > project* > > *Note Bruce has retired since he wrote the following, but the * > *paper describing the work is: *Open Single System Image (openSSI) > Linux Cluster Project, Bruce J. Walker, Hewlett-Packard > > > Bruce.walker at hp.com > > Abstract > > The openSSI Cluster project is an ongoing open source project which was > started two years ago to bring together some of the best Linux and Unix > clustering technologies into a single integrated and yet modular project. > > Linux is rich in cluster technology but is segmented into 6 different > cluster areas > - high performance, load-leveling, web-service, storage, database and high > availability. The openSSI project address all cluster environments by > simultaneously addressing the three key cluster goals - availability, > scalability and manageability. > To accomplish this ambitious goal, the project was started with a Linux > adaptation of the NonStop Clusters for Unixware code, contributed by > Compaq/HP. That code included membership, internode communication, > clusterwide process management, clusterwide devices, a cluster filesystem, > clusterwide IPC (pipes, fifos, msgqueues, semaphores, etc.) and clusterwide > tcp/ip networking. Other open source clustering code has been integrated > into the modular architecture, including openGFS, openDLM, LVS, Lustre and > a small component of Mosix. The architecture of the project allows for > subsetting and substitution of components. A full function initial release > is available in both source and RPM form. Many enhancement opportunities > still exist both in integrating with other technologies and by improving > scalability and availability. > *​* > -------------- next part -------------- An HTML attachment was scrubbed... URL: From lm at mcvoy.com Wed Nov 22 04:29:41 2017 From: lm at mcvoy.com (Larry McVoy) Date: Tue, 21 Nov 2017 10:29:41 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> <060301d362c0$493fd7c0$dbbf8740$@ronnatalie.com> <20171121145920.GQ9146@mcvoy.com> Message-ID: <20171121182941.GX9146@mcvoy.com> So is there any chance of getting the code released under a BSD compat license? On Tue, Nov 21, 2017 at 12:23:14PM -0500, Clem Cole wrote: > FWIW: The one sad thing I look back one and fear was a the greatest > contribution of TNC that was lost was Vprocs - the virtual process layer, > that Roman and I created - originally for the Paragon and HP systems. We > took a tip from Sun's VFS layer and said what we really need is a layer the > kernel with new interface to allow virtual process technology. They you > can support a number of different types of interfaces the same way you can > support different file systems. > > We spliced had it running is OSF1, HP-UX, Linux (2.4), SVR4, an Apple > kernel and had started putting into an Solaris for one of the super > computer firms (I've forgotten now whom). I started putting it into a > FreeBSD release at one point, but was over whelmed by other kernel changes > and just could not keep up with he mainline - it been on my 'to do.' I > think that's why OpenSSI gave up. Unless Linus really got excited it > was not going be able to stay in on the side. > > Which is a shame because once you put the changes in, to support the vproc > layer, then its easier to make changes of course because you have a clean > interface. As I said, just like VFS cleaned up the file system and i-node > layer and removed a bunch of stuff that had bleed into the places in the > kernel it really did not belong. The same is true for the process layer > and some of the other UNIX name spaces (semaphores, systemV shared memory, > etc..). Vproc really cleaned that up. > > > > On Tue, Nov 21, 2017 at 12:06 PM, Clem Cole wrote: > > > > > *OpenSSI (Single System Image) Clusters for Linux > > ??? is the URL for the > > project* > > > > *Note Bruce has retired since he wrote the following, but the * > > *paper describing the work is: *Open Single System Image (openSSI) > > Linux Cluster Project, Bruce J. Walker, Hewlett-Packard > > > > > > Bruce.walker at hp.com > > > > Abstract > > > > The openSSI Cluster project is an ongoing open source project which was > > started two years ago to bring together some of the best Linux and Unix > > clustering technologies into a single integrated and yet modular project. > > > > Linux is rich in cluster technology but is segmented into 6 different > > cluster areas > > - high performance, load-leveling, web-service, storage, database and high > > availability. The openSSI project address all cluster environments by > > simultaneously addressing the three key cluster goals - availability, > > scalability and manageability. > > To accomplish this ambitious goal, the project was started with a Linux > > adaptation of the NonStop Clusters for Unixware code, contributed by > > Compaq/HP. That code included membership, internode communication, > > clusterwide process management, clusterwide devices, a cluster filesystem, > > clusterwide IPC (pipes, fifos, msgqueues, semaphores, etc.) and clusterwide > > tcp/ip networking. Other open source clustering code has been integrated > > into the modular architecture, including openGFS, openDLM, LVS, Lustre and > > a small component of Mosix. The architecture of the project allows for > > subsetting and substitution of components. A full function initial release > > is available in both source and RPM form. Many enhancement opportunities > > still exist both in integrating with other technologies and by improving > > scalability and availability. > > *???* > > -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From mutiny.mutiny at rediffmail.com Wed Nov 22 04:43:33 2017 From: mutiny.mutiny at rediffmail.com (Mutiny ) Date: 21 Nov 2017 18:43:33 -0000 Subject: [TUHS] =?utf-8?q?TROFF_made_trivial?= In-Reply-To: <201711211254.vALCsKKY007445@freefriends.org> Message-ID: <1511268923.S.4264.20545.f4-234-160.1511289813.7546@webmail.rediffmail.com> >I he finds one, I'll pass it on.great. Thanks a lot in advance.From: arnold at skeeve.comSent: Tue, 21 Nov 2017 18:25:23To: will.senn at gmail.com, leah at vuxu.orgCc: tuhs at minnie.tuhs.orgSubject: Re: [TUHS] TROFF made trivialLeah Neukirchen <leah at vuxu.org> asked:> >>     I found this paper by bwk referenced in the Unix manpages,> >>     in v4 as: TROFF Made Trivial (unpublished),> >>     in v5 as: TROFF Made Trivial (internal memorandom),> >>     also in the v6 "Unix Reading List",> >>     but not anymore in v7.> >>> >>     Anyone have a copy or a scan?Warner (I think):> > Is it what became known as "A TROFF Tutorial" in Volume 2 of the v7> > manual and was available as early as October 11, 1976 as referenced by> > Ossana in NROFF⁄TROFF User’s Manual as:> >> > 1.> >> >    [5]   B. W. Kernighan, A TROFF Tutorial, Bell Laboratories internal> >    memorandumI asked Brian off-list. His answer:> Date: Tue, 21 Nov 2017 06:24:22 -0500 (EST)> From: Brian Kernighan <bwk at CS.Princeton.EDU>> To: arnold at skeeve.com> Subject: Re: "TROFF made trivial"?>> That's almost surely what became the Troff tutorial.  I will poke> around to see if I have a paper copy.I he finds one, I'll pass it on.Arnold -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Wed Nov 22 05:10:39 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 21 Nov 2017 14:10:39 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171121182941.GX9146@mcvoy.com> References: <05be01d36266$4b32e810$e198b830$@ronnatalie.com> <93a49f88-c9b2-d395-ba82-f7a3577bffea@tnetconsulting.net> <05ec01d3627a$6960cc80$3c226580$@ronnatalie.com> <374F4C47-30B2-4E3E-A493-62C259D25CF0@ccc.com> <060301d362c0$493fd7c0$dbbf8740$@ronnatalie.com> <20171121145920.GQ9146@mcvoy.com> <20171121182941.GX9146@mcvoy.com> Message-ID: On Tue, Nov 21, 2017 at 1:29 PM, Larry McVoy wrote: > So is there any chance of getting the code released under a BSD compat > ​ ​ > license? ​You'd need a champion at HP, and I don't know anyone that's left. What's the state of OSF/1 these days? I really don't know. Mach was a CMU license. You might be able to find the Paragon version which was older. -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Wed Nov 22 06:41:34 2017 From: dave at horsfall.org (Dave Horsfall) Date: Wed, 22 Nov 2017 07:41:34 +1100 (EST) Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from In-Reply-To: <201711211608.vALG81PQ014303@coolidge.cs.Dartmouth.EDU> References: <201711211608.vALG81PQ014303@coolidge.cs.Dartmouth.EDU> Message-ID: On Tue, 21 Nov 2017, Doug McIlroy wrote: > Among the BUGS listed for spell(1) in v7 was "Britsh spelling was done > by an American". Also in V6, I think. > Nevertheless, at least one British expat thanked me for spell -b. He had > been using the original "spell", and ignoring its reports of British > "misspellings". But, he said, long exposure to American writing had > infected his writing. Spell -b was a blessing, for revealed where his > usage wobbled between traditions. Tnen consider yourself thanked again! As a Britisher, I get annoyed with the slow influx of American spelling and grammar here in Australia. I now use "aspell" with what claims to be a British dictionary, but I'm still forever correcting it. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From edouardklein at gmail.com Wed Nov 22 07:03:52 2017 From: edouardklein at gmail.com (Edouard KLEIN) Date: Tue, 21 Nov 2017 21:03:52 +0000 Subject: [TUHS] A man easter-egg (gimme gimme gimme) Message-ID: Hi all, An easter-egg in the version of man that is installed on the most popular Linux distros has recently been discovered after being there for 6 years: https://unix.stackexchange.com/questions/405783/why-does-man-print-gimme-gimme-gimme-at-0030 It is for example discussed here: https://news.ycombinator.com/item?id=15747313 It makes man print 'gimme gimme gimme' if called at "Half past twelve", as in the ABBA song. I check on BSD, but man seems to be a shell script on FreeBSD, so it's immune from the easter egg: https://github.com/freebsd/freebsd/blob/master/usr.bin/man/man.sh Do you have any UNIX easter-egg stories ? Putting some in, or discovering one... Was this kind of humor tolerated in the professional settings where UNIX first circulated, or was it frowned upon ? -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralph at inputplus.co.uk Wed Nov 22 07:48:54 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Tue, 21 Nov 2017 21:48:54 +0000 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from In-Reply-To: References: <201711211608.vALG81PQ014303@coolidge.cs.Dartmouth.EDU> Message-ID: <20171121214854.E815A2032E@orac.inputplus.co.uk> Hi Dave, > I now use "aspell" with what claims to be a British dictionary, but > I'm still forever correcting it. I use that too; it picks up GB from one's locale. $ aspell config | grep _ # default: = en_GB # default: = en_GB # default: .aspell..pws = .aspell.en_GB.pws # default: .aspell..prepl = .aspell.en_GB.prepl $ In the past, I've fed corrections back to aspell's author as bug reports, typically with a link to https://en.oxforddictionaries.com/definition/panelling and they get into a new release every now and again. He's moved to github, I see. https://github.com/GNUAspell/aspell -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From charles.unix.pro at gmail.com Wed Nov 22 08:47:54 2017 From: charles.unix.pro at gmail.com (Charles Anthony) Date: Tue, 21 Nov 2017 14:47:54 -0800 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: Message-ID: On Tue, Nov 21, 2017 at 1:03 PM, Edouard KLEIN wrote: > Hi all, > > An easter-egg in the version of man that is installed on the most popular > Linux distros has recently been discovered after being there for 6 years: > > https://unix.stackexchange.com/questions/405783/why-does- > man-print-gimme-gimme-gimme-at-0030 > > It is for example discussed here: > https://news.ycombinator.com/item?id=15747313 > > It makes man print 'gimme gimme gimme' if called at "Half past twelve", as > in the ABBA song. > > I check on BSD, but man seems to be a shell script on FreeBSD, so it's > immune from the easter egg: > https://github.com/freebsd/freebsd/blob/master/usr.bin/man/man.sh > > Do you have any UNIX easter-egg stories ? Putting some in, or discovering > one... > > Was this kind of humor tolerated in the professional settings where UNIX > first circulated, or was it frowned upon ? > > I didn't discover this one, but came across documentation of it when researching the 3b2. (http://ferretronix.com/tech/3b2/): The AT&T 3b2 (System V R3.2) lboot prompts you with “Enter path name:” > enter “magic mode” > lboot replies “POOF!” “A hollow voice says (directory)” > Instead of load-and-run, it loads the kernel > and then breakpoints before entering with the message > “You are standing inside of a large unexecuted /boot/KERNEL > The only exit you see is at 0x108000” It's in the source code: (/usr/src/uts/3b2/boot/lboot/subr.c) /* * check for secret "magic mode" feature */ if (0 == strcmp(sp,"magic")) { char *mp; if ((mp=strtok((char*)NULL,"\r\n\t ")) == NULL || 0 != strcmp(mp,"mode")) break; MagicMode = TRUE; printf("\nPOOF!"); if ((mp=strtok((char*)NULL,"\r\n\t ")) != NULL) { if (*mp == '/') ++mp; strcat(strcpy(slash_boot,"/"), mp); printf(" A hollow voice says \"%s\".", slash_boot); } printf("\n"); continue; } -- Charles -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Wed Nov 22 09:00:42 2017 From: dave at horsfall.org (Dave Horsfall) Date: Wed, 22 Nov 2017 10:00:42 +1100 (EST) Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: Message-ID: On Tue, 21 Nov 2017, Edouard KLEIN wrote: > Was this kind of humor tolerated in the professional settings where UNIX > first circulated, or was it frowned upon ? As a former developer and manager, I would be really pissed off if my programmers wasted their time on writing useless frippery instead of quality code, and I would certainly have a little chat with them... Or is that just me? And is some M$ malware still masquerading as easter eggs? Simple enough to do: write it, wait for it to spread a bit, announce you've found a new egg (but it may not work for everyone (and will now))... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From charles.unix.pro at gmail.com Wed Nov 22 09:07:18 2017 From: charles.unix.pro at gmail.com (Charles Anthony) Date: Tue, 21 Nov 2017 15:07:18 -0800 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: Message-ID: On Tue, Nov 21, 2017 at 1:03 PM, Edouard KLEIN wrote: > Hi all, > > An easter-egg in the version of man that is installed on the most popular > Linux distros has recently been discovered after being there for 6 years: > > https://unix.stackexchange.com/questions/405783/why-does- > man-print-gimme-gimme-gimme-at-0030 > > It is for example discussed here: > https://news.ycombinator.com/item?id=15747313 > > It makes man print 'gimme gimme gimme' if called at "Half past twelve", as > in the ABBA song. > > I check on BSD, but man seems to be a shell script on FreeBSD, so it's > immune from the easter egg: > https://github.com/freebsd/freebsd/blob/master/usr.bin/man/man.sh > > Do you have any UNIX easter-egg stories ? Putting some in, or discovering > one... > > Was this kind of humor tolerated in the professional settings where UNIX > first circulated, or was it frowned upon ? > > I remember back in the late 90's, the man page for syslogd had a section about dealing with network attacks on syslogd servers; several approaches described, the last one reading something like ....if all else fails, find a three for length of sucker rod* and have a > discussion with the user. > *Sucker rod: 3/4 threaded steel rod, used in oil drilling. It looks like someone edited it out of the man pages since then. -- Charles -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Wed Nov 22 09:11:39 2017 From: dave at horsfall.org (Dave Horsfall) Date: Wed, 22 Nov 2017 10:11:39 +1100 (EST) Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from In-Reply-To: <20171121214854.E815A2032E@orac.inputplus.co.uk> References: <201711211608.vALG81PQ014303@coolidge.cs.Dartmouth.EDU> <20171121214854.E815A2032E@orac.inputplus.co.uk> Message-ID: On Tue, 21 Nov 2017, Ralph Corderoy wrote: > I use that too; it picks up GB from one's locale. > > $ aspell config | grep _ > # default: = en_GB > # default: = en_GB > # default: .aspell..pws = .aspell.en_GB.pws > # default: .aspell..prepl = .aspell.en_GB.prepl > $ Hmmm... I seem to be using en_US (I thought I'd set it to en_AU or something); thanks. > In the past, I've fed corrections back to aspell's author as bug > reports, typically with a link to > https://en.oxforddictionaries.com/definition/panelling and they get into > a new release every now and again. He's moved to github, I see. > https://github.com/GNUAspell/aspell Thanks for that. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From ggm at algebras.org Wed Nov 22 09:30:04 2017 From: ggm at algebras.org (George Michaelson) Date: Wed, 22 Nov 2017 07:30:04 +0800 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: Message-ID: man woman make love cat "tin of catfood" the first two were easter eggs. the last one was just assonance from "cannot open" error message. I think they were always tolerated. But.. then not. The ADA compiler verification committee made York take "congratulations, you have just invoked the most abstruse element of the ADA specification" out of the compiler messages section: it was tickling the test harness and didn't meet compliance (or so I was told) On Wed, Nov 22, 2017 at 7:07 AM, Charles Anthony wrote: > > > On Tue, Nov 21, 2017 at 1:03 PM, Edouard KLEIN > wrote: >> >> Hi all, >> >> An easter-egg in the version of man that is installed on the most popular >> Linux distros has recently been discovered after being there for 6 years: >> >> >> https://unix.stackexchange.com/questions/405783/why-does-man-print-gimme-gimme-gimme-at-0030 >> >> It is for example discussed here: >> https://news.ycombinator.com/item?id=15747313 >> >> It makes man print 'gimme gimme gimme' if called at "Half past twelve", as >> in the ABBA song. >> >> I check on BSD, but man seems to be a shell script on FreeBSD, so it's >> immune from the easter egg: >> https://github.com/freebsd/freebsd/blob/master/usr.bin/man/man.sh >> >> Do you have any UNIX easter-egg stories ? Putting some in, or discovering >> one... >> >> Was this kind of humor tolerated in the professional settings where UNIX >> first circulated, or was it frowned upon ? >> > > I remember back in the late 90's, the man page for syslogd had a section > about dealing with network attacks on syslogd servers; several approaches > described, the last one reading something like > >> ....if all else fails, find a three for length of sucker rod* and have a >> discussion with the user. >> >> >> >> *Sucker rod: 3/4 threaded steel rod, used in oil drilling. > > > It looks like someone edited it out of the man pages since then. > > -- Charles > > From henry.r.bent at gmail.com Wed Nov 22 09:30:21 2017 From: henry.r.bent at gmail.com (Henry Bent) Date: Tue, 21 Nov 2017 18:30:21 -0500 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: Message-ID: On 21 November 2017 at 18:07, Charles Anthony wrote: > > I remember back in the late 90's, the man page for syslogd had a section > about dealing with network attacks on syslogd servers; several approaches > described, the last one reading something like > > ....if all else fails, find a three for length of sucker rod* and have a >> discussion with the user. >> > > > *Sucker rod: 3/4 threaded steel rod, used in oil drilling. > > > It looks like someone edited it out of the man pages since then. > It's still in sysklogd, and the manpage is here: https://linux.die.net/man/8/syslogd -Henry -------------- next part -------------- An HTML attachment was scrubbed... URL: From pnr at planet.nl Wed Nov 22 09:41:27 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Wed, 22 Nov 2017 00:41:27 +0100 Subject: [TUHS] TCP/IP networking in 8th edition unix Message-ID: <4B74ABBE-BA03-4D4B-B8C1-B3CE9A6D83CE@planet.nl> I'm trying to figure out how tcp/ip networking worked in 8th edition Unix. I'm starting from dmr's paper about streams (http://cm.bell-labs.co/who/dmr/st.html), the V8 man pages (http://man.cat-v.org/unix_8th/3/) and browsing the source code (tarball here http://www.tuhs.org/Archive/Distributions/Research/Dan_Cross_v8/). In the below I use 'socket' to mean a file descriptor bound to a network connection. My current understanding is like this: - The hardware interface is exposed as a character device; for tcp/ip only ethernet is supported. Directly accessing this device reads/writes ethernet frames. - One can push an 'ip' module (only) onto an ethernet device; this module also handles ARP. Once this is done IP messages are queued to the virtual ip devices, /dev/ipXX. The device minor number XX equals the protocol number, i.e. the ip packets are demultiplexed into separate virtual devices. IP packets from multiple ethernet cards all end up on the same virtual ip devices. I'm not sure if one can still read/write to the ethernet device after pushing the ip module, but I think you can, creating a raw IP interface so to say. - On /dev/ip6 one can push a TCP module. The TCP module handles the TCP protocol and demultiplexes incoming traffic to the virtual /dev/tcpXX devices. On /dev/ip17 one can push a UDP module. The UDP module handles the UDP protocol and demultiplexes incoming traffic to the virtual /dev/udpXX devices. Not sure wether the ip6 and ip17 devices can still be read/written after pushing these disciplines. - There are 100 udp devices, /dev/updXX. To open a UPD socket, one opens an unused udp device (through linear search). This socket accepts binary commands ('struct upduser') through the read()/write() system calls. There is a command to set the local port (effectively 'bind') and a comment to also set the foreign address and port (effectively 'bind+connect'). As long as the socket is not connected actual datagrams are preceded by a command header with the address/port information (effectively 'sendto'/'recvfrom'). Once the socket is connected, it is no longer possible to send further commands, but each write/read is a datagram. For udp sockets it is not possible to specify the local address: it is chosen by the system to match with the given foreign address. - There are 100 tcp devices /dev/tcpXX. Initial connection is always over an odd numbered device. To open a TCP socket, one opens an unused tcp device (through linear search). This socket accepts binary commands ('struct tcpuser') through the read()/write() system calls. There is a command to actively connect (effectively 'connect' with optional 'bind'), and a command to passively listen (effectively 'bind'+'listen'). If the connect command is sent, one can read one more response block and then the socket becomes a regular tcp socket. If the listen command is sent, one can read multiple response blocks, one for each new client (effectively 'accept'). Those response blocks contain a device number for the new client connection, i.e. one has to subsequently open device /dev/tcpXY to talk to the client. This number is always even, i.e. locally initiated tcp connections are over odd numbered tcp devices, and remotely initiated connections are over even numbered tcp devices - not sure what the significance of this is. - The above seems to be modeled on the Datakit setup, where the network is exposed as 520 virtual devices, one for each channel, as /dev/dk/dkXXX. These channels than also seem to accept binary command blocks through the read()/write() interface, with a 'connect' type command changing the connection into a data only channel. Anybody on the list with 8th edition experience who can confirm that the above understanding is about correct? Paul From will.senn at gmail.com Wed Nov 22 09:43:00 2017 From: will.senn at gmail.com (Will Senn) Date: Tue, 21 Nov 2017 17:43:00 -0600 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from In-Reply-To: <20171121214854.E815A2032E@orac.inputplus.co.uk> References: <201711211608.vALG81PQ014303@coolidge.cs.Dartmouth.EDU> <20171121214854.E815A2032E@orac.inputplus.co.uk> Message-ID: <15d26202-091f-0b04-146c-79f53f3aad23@gmail.com> On 11/21/17 3:48 PM, Ralph Corderoy wrote: > In the past, I've fed corrections back to aspell's author as bug > reports, typically with a link to > https://en.oxforddictionaries.com/definition/panelling and they get into > a new release every now and again. He's moved to github, I see. > https://github.com/GNUAspell/aspell > On a historical note, I am curious if anyone on the list remembers much about the development of the first spell checkers in Unix? Good 'ol remarkably accurate wikipedia suggests that it is descended from SAIL's DEC PDP-10 version. Who wrote the first standalone tool for unix and did they, as the wikip article says, base it on the DEC PDP-10 version (surely it would have been c, not assembly)? I see the man page for it in v6, but no executable. Just curious. Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From imp at bsdimp.com Wed Nov 22 09:52:09 2017 From: imp at bsdimp.com (Warner Losh) Date: Tue, 21 Nov 2017 23:52:09 -0000 Subject: [TUHS] origins of void* -- Apology! In-Reply-To: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> References: <7617c69abf46fbe3f206c6208000fe3b26854359@webmail.yaccman.com> Message-ID: On Mon, Nov 6, 2017 at 2:46 PM, Steve Johnson wrote: > I had a senior moment when I sent out my posting about the origin of void > *. The person in question > was Larry Rossler, not Charlie Roberts -- apologies to both! > > Larry was active in the ANSI committee, so he had a bully pulpit for > suggesting this change... > > About Bliss, there certainly was a bit of a competition for a while > between C and Bliss, and Bliss wasn't such a bad language. But the > technology behind it was pretty ugly. You had to compile PDP-11 programs > on a Dec System 20, which shut out a large percentage of the people who > might have been interested. And they took a very relaxed stance of > pointer aliasing -- basically, the compiler assumed that no two pointers > pointed to the same thing unless you turned on a flag in which case it > assume all pointers pointed to all other pointers. This would not have > worked well for system code... > > Pascal was a much more serious competitor -- it was much easier to teach > 75 people in a room how to program in Pascal than in C, and P-code was a > reasonable portability mechanism. The differences have been much discussed > in this forum so I won't restart that thread again... > > At one point about 15 years after C has pretty much won over Bliss, I gave > a job interview to a programmer at Dec who was responsible for maintaining > 50 million lines of bliss. I've rarely met anyone who was more determined > to change jobs! > I've seen the signature "Bliss is ignorance" :) Warner > Steve > > > > ----- Original Message ----- > From: > "Warner Losh" > > To: > > Cc: > "TUHS main list" , "Paul Ruizendaal" > Sent: > Mon, 6 Nov 2017 08:02:53 -0700 > Subject: > Re: [TUHS] origins of void* > > > > > On Mon, Nov 6, 2017 at 12:24 AM, wrote: > >> Paul Ruizendaal wrote: >> >> > >> In the 4BSD era there was caddr_t, which I think was used for pretty >> > >> much the same purposes. >> > > >> > > Only for kernel code. I am pretty sure caddr_t wasn't used in >> user-land code. >> > >> > Ah, thanks for pointing that out, I had not realised that and it helps >> > explain some things. But why wasn’t caddr_t used for user-land code: >> > usage in the signature of e.g. write() would have made sense, right? >> >> It's clear from K&R 1 that char* served as both pointer to string and >> generic pointer to memory. That's not unreasonable, since, in some sense, >> "memory is just bytes". So user-land code didn't need caddr_t. I also >> suspect that caddr_t came into being with the effort to port Unix off >> the PDP-11 and the weight of Unix practice before then had been to make >> do with char*. >> >> I think it helps to remember the evolutionary processes that were >> happening >> in the '70s. High level languages had caught on for application code >> (FORTRAN and COBOL in the US, Algol in Europe) but the weight of existing >> practice for *systems coding* (operating systems and utilities) had been >> to use assembly language. Multics proved that you could write an OS in >> a high level language, but Multics itself (at that time) wasn't a success. >> >> So when C came along in the mid-'70s, strong typing had essentially been >> absent from systems programming. With time and experience, along with >> the recognition in the general CS world that strong typing was valuable, >> C also started to evolve in that direction. >> > > I thought there'd also been some influences from BLISS... DEC did much of > their system programming in BLISS along side the MACRO-{11,32,20}.... Not > exactly a strongly typed language, but another entry in the higher level > language category that C was competing against. > > Warner > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Wed Nov 22 10:13:42 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 21 Nov 2017 19:13:42 -0500 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from In-Reply-To: <15d26202-091f-0b04-146c-79f53f3aad23@gmail.com> References: <201711211608.vALG81PQ014303@coolidge.cs.Dartmouth.EDU> <20171121214854.E815A2032E@orac.inputplus.co.uk> <15d26202-091f-0b04-146c-79f53f3aad23@gmail.com> Message-ID: On Tue, Nov 21, 2017 at 6:43 PM, Will Senn wrote: > ​ > I see the man page for it in v6, but no executable. Just curious. ​There was certainly a spell by v6 in 77 timeframe, I relied on it and remember adding words to it because the dictionary was small. There was also very slick side program called 'grope' that I was told was developed using the spelling algorithms for the Bell Telephone 411 operators that one of the OYOC folks brought with them [Karn maybe - I've forgotten whom]. It had a different dictionary - that was its only disadvantage - so you had to have two dictionaries on the system [grope split the words into 26 files and the indexed them in a interesting fashion]. But being someone that can not spell to save myself, grope was a life wonderful addition to my tool kit. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Wed Nov 22 10:38:59 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Tue, 21 Nov 2017 19:38:59 -0500 (EST) Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from Message-ID: <20171122003859.4925418C0C8@mercury.lcs.mit.edu> > From: Will Senn > I see the man page for it in v6, but no executable. The MIT V6+ system had it. They probably took it out of the distro because it was useless without the dictionary, which they didn't have the rights to distribute. Here's the source: http://ana-3.lcs.mit.edu/~jnc/tech/unix/s2/spell.c http://ana-3.lcs.mit.edu/~jnc/tech/unix/s2/spell1.c http://ana-3.lcs.mit.edu/~jnc/tech/unix/s2/spell2.c http://ana-3.lcs.mit.edu/~jnc/tech/unix/s2/spell3.c Noel From dave at horsfall.org Wed Nov 22 10:51:02 2017 From: dave at horsfall.org (Dave Horsfall) Date: Wed, 22 Nov 2017 11:51:02 +1100 (EST) Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: Message-ID: On Wed, 22 Nov 2017, George Michaelson wrote: > man woman > make love > cat "tin of catfood" > > the first two were easter eggs. the last one was just assonance from > "cannot open" error message. Never saw the easter egg, but "man woman" on FreeBSD/Mac/Penguin says "No manual entry for woman" which I guess will have to do... (Well, someone had to try it, so it may as well be me.) -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From kevin.bowling at kev009.com Wed Nov 22 11:33:45 2017 From: kevin.bowling at kev009.com (Kevin Bowling) Date: Tue, 21 Nov 2017 18:33:45 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: Message-ID: I'm also interested if any of these s/370 *ix ever escaped captivity. The earliest stuff may be covered by Novell's grant of early code. I'd be willing to pay for a lawyer to help liberate any contested material. I have an R/390 (1990s era), z800 (2000s era) and z114 (2010s era) at home. And Hercules. Would be fun to run *ix on any of them. Regards, On Sun, Nov 19, 2017 at 5:57 PM, Nemo wrote: > Recent commentary on porting led me to read the article on porting > UNIX to S/370 (https://www.bell-labs.com/usr/dmr/www/otherports/ibm.pdf) > to support 5ESS development because the existing PDP11s were being > overwhelmed. I confess to not having this read this before and find > it interesting. Any recollections from anyone on the matter. And > whatever happened to it? > > N. From doug at cs.dartmouth.edu Wed Nov 22 12:34:59 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Tue, 21 Nov 2017 21:34:59 -0500 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes\' Message-ID: <201711220234.vAM2YxlE017938@coolidge.cs.Dartmouth.EDU> A non-text attachment was scrubbed... Name: not available Type: application/octet-stream Size: 2099 bytes Desc: not available URL: From dave at horsfall.org Wed Nov 22 12:58:26 2017 From: dave at horsfall.org (Dave Horsfall) Date: Wed, 22 Nov 2017 13:58:26 +1100 (EST) Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from In-Reply-To: <15d26202-091f-0b04-146c-79f53f3aad23@gmail.com> References: <201711211608.vALG81PQ014303@coolidge.cs.Dartmouth.EDU> <20171121214854.E815A2032E@orac.inputplus.co.uk> <15d26202-091f-0b04-146c-79f53f3aad23@gmail.com> Message-ID: On Tue, 21 Nov 2017, Will Senn wrote: > On a historical note, I am curious if anyone on the list remembers much > about the development of the first spell checkers in Unix? Good 'ol > remarkably accurate wikipedia suggests that it is descended from SAIL's > DEC PDP-10 version. Who wrote the first standalone tool for unix and did > they, as the wikip article says, base it on the DEC PDP-10 version > (surely it would have been c, not assembly)? I see the man page for it > in v6, but no executable. There was a shell script that split the words on white space and sorted them by occurrence; the least-used ones were most likely spelling misteaks (unless you were a consistent mis-speller, which regretfully some people are). No idea where I heard about it... Was it "Programming Pearls"? -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From wobblygong at gmail.com Wed Nov 22 16:35:55 2017 From: wobblygong at gmail.com (Wesley Parish) Date: Wed, 22 Nov 2017 19:35:55 +1300 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: Message-ID: As would I. I'd also be interested in that i386 AIX Clem mentioned. It would be interesting studying the different ways the *BSD and the SVR4 and the AIX people etc adapted the Unix code to the i386 architecture. It'd make an interesting topic for discussion. (Likewise in comparison with the "native" i80x86 Unix-like OSes like Coherent, Minix and Linux. :) Wesley Parish On 11/22/17, Kevin Bowling wrote: > I'm also interested if any of these s/370 *ix ever escaped captivity. > The earliest stuff may be covered by Novell's grant of early code. > I'd be willing to pay for a lawyer to help liberate any contested > material. > > I have an R/390 (1990s era), z800 (2000s era) and z114 (2010s era) at > home. And Hercules. Would be fun to run *ix on any of them. > > Regards, > > On Sun, Nov 19, 2017 at 5:57 PM, Nemo wrote: >> Recent commentary on porting led me to read the article on porting >> UNIX to S/370 (https://www.bell-labs.com/usr/dmr/www/otherports/ibm.pdf) >> to support 5ESS development because the existing PDP11s were being >> overwhelmed. I confess to not having this read this before and find >> it interesting. Any recollections from anyone on the matter. And >> whatever happened to it? >> >> N. > From arnold at skeeve.com Wed Nov 22 18:48:30 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Wed, 22 Nov 2017 01:48:30 -0700 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: Message-ID: <201711220848.vAM8mUTd003779@freefriends.org> Edouard KLEIN wrote: > Do you have any UNIX easter-egg stories ? Putting some in, or discovering > one... I suspect that Easter Eggs are more common in Open Source / Free Software, where people feel free to "play" on stuff they do for fun / as volunteers. Try: gawk --nostalgia sometime. :-) For a long time setting WHINY_USER in the environment caused gawk to loop over arrays in sorted index order. That's long gone, now that it can be done under program control. > Date: Wed, 22 Nov 2017 10:00:42 +1100 (EST) > From: Dave Horsfall > Subject: Re: [TUHS] A man easter-egg (gimme gimme gimme) > > first circulated, or was it frowned upon ? > > As a former developer and manager, I would be really pissed off if my > programmers wasted their time on writing useless frippery instead of > quality code, and I would certainly have a little chat with them... I think that this is totally appropriate for code being developed for a paid product. Arnold From kevin.bowling at kev009.com Wed Nov 22 19:38:00 2017 From: kevin.bowling at kev009.com (Kevin Bowling) Date: Wed, 22 Nov 2017 02:38:00 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: Message-ID: I was asking about s/370 UNIX flavors I can help you with AIX for i386, I’m probably one of the main “historians” for that vintage of IBM stuff.. here ya go http://ps-2.kev009.com/aixps2/. All the docs are scattered on my server there. It WILL run under virtualization but is picky anout which. Google will point you to guides. On Tuesday, November 21, 2017, Wesley Parish wrote: > As would I. I'd also be interested in that i386 AIX Clem mentioned. > > It would be interesting studying the different ways the *BSD and the > SVR4 and the AIX people etc adapted the Unix code to the i386 > architecture. It'd make an interesting topic for discussion. (Likewise > in comparison with the "native" i80x86 Unix-like OSes like Coherent, > Minix and Linux. :) > > Wesley Parish > > On 11/22/17, Kevin Bowling > > wrote: > > I'm also interested if any of these s/370 *ix ever escaped captivity. > > The earliest stuff may be covered by Novell's grant of early code. > > I'd be willing to pay for a lawyer to help liberate any contested > > material. > > > > I have an R/390 (1990s era), z800 (2000s era) and z114 (2010s era) at > > home. And Hercules. Would be fun to run *ix on any of them. > > > > Regards, > > > > On Sun, Nov 19, 2017 at 5:57 PM, Nemo > > wrote: > >> Recent commentary on porting led me to read the article on porting > >> UNIX to S/370 (https://www.bell-labs.com/usr/dmr/www/otherports/ibm.pdf > ) > >> to support 5ESS development because the existing PDP11s were being > >> overwhelmed. I confess to not having this read this before and find > >> it interesting. Any recollections from anyone on the matter. And > >> whatever happened to it? > >> > >> N. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From andreas.kahari at icm.uu.se Wed Nov 22 19:50:49 2017 From: andreas.kahari at icm.uu.se (Andreas Kusalananda =?iso-8859-1?B?S+Ro5HJp?=) Date: Wed, 22 Nov 2017 10:50:49 +0100 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: <201711220848.vAM8mUTd003779@freefriends.org> References: <201711220848.vAM8mUTd003779@freefriends.org> Message-ID: <20171122095049.gkayhpyr3h6o4tzf@box.local> On Wed, Nov 22, 2017 at 01:48:30AM -0700, arnold at skeeve.com wrote: > Edouard KLEIN wrote: [cut] > > Subject: Re: [TUHS] A man easter-egg (gimme gimme gimme) > > > first circulated, or was it frowned upon ? > > > > As a former developer and manager, I would be really pissed off if my > > programmers wasted their time on writing useless frippery instead of > > quality code, and I would certainly have a little chat with them... > > I think that this is totally appropriate for code being developed > for a paid product. > > Arnold Hmm... As a manager, I'd be more annoyed if the code did not perform according to spec than I would be if single programmer spent half an hour amusing themselves. Being pedantic about time is a surefire way of demotivating a dev team. No matter who pays (or not pays) for the code to be produced, the end user, no matter it's clinical staff in a hospital or your uncle's son, need to be guaranteed that the code doesn't trigger unexpected behaviour when used. The risk of that is usually smaller if the product does not contain any easter eggs. -- Andreas Kusalananda Kähäri, National Bioinformatics Infrastructure Sweden (NBIS), Uppsala University, Sweden. From nw at retrocomputingtasmania.com Wed Nov 22 20:43:38 2017 From: nw at retrocomputingtasmania.com (Nigel Williams) Date: Wed, 22 Nov 2017 21:43:38 +1100 Subject: [TUHS] First CRT terminal on Unix? Message-ID: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> I stumbled into a reddit post on Unix with the claim about early Unices only being accessed via printing terminals, and it suggested a question to me as to the first “glass teletype” or CRT terminal to be used with Unix. Given the DEC-centric nature of early Unix I would guess perhaps a VT05 or VT52 but I’m keen to know if anyone from those early years recollects what happened and when regarding Unix terminal access alternatives aside from the venerable 33KSR or 33ASR. From rob at robdiamond.com Wed Nov 22 22:22:26 2017 From: rob at robdiamond.com (Robert Diamond) Date: Wed, 22 Nov 2017 07:22:26 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> Message-ID: <76FD648C-078D-42B5-A5B5-14971B05432A@robdiamond.com> The first non-printing terminal I remember seeing at Bell Labs was the Tektronix 4014. The image (green phosphors) was “painted” on the screen and would remain until an erase function was executed. (I seem to remember that this action made a soft audible “pop” sound). https://en.wikipedia.org/wiki/Tektronix_4010 --- Robert Diamond rob at robdiamond.com > On Nov 22, 2017, at 5:43 AM, Nigel Williams wrote: > > I stumbled into a reddit post on Unix with the claim about early Unices only being accessed via printing terminals, and it suggested a question to me as to the first “glass teletype” or CRT terminal to be used with Unix. > > Given the DEC-centric nature of early Unix I would guess perhaps a VT05 or VT52 but I’m keen to know if anyone from those early years recollects what happened and when regarding Unix terminal access alternatives aside from the venerable 33KSR or 33ASR. > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3862 bytes Desc: not available URL: From clemc at ccc.com Wed Nov 22 23:26:58 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 22 Nov 2017 08:26:58 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: <76FD648C-078D-42B5-A5B5-14971B05432A@robdiamond.com> References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <76FD648C-078D-42B5-A5B5-14971B05432A@robdiamond.com> Message-ID: These are called DVST - Direct View Storage Tube devices - or a modified slow persistence phosphor oscilloscope. And yes the clear, function was done by large voltage pulse (blinding flash). They had a very high resolution graphics and were (surprisingly) popular for a long time. Tek invented computer graphics. Tektronix 'Plot 10' plotting package was de rigeur for years and xterm still supports many of the functions. But it was funny how companies believe their own hype. When we developed Magnolia in Tek Labs in 1979, we did a Raster Graphics display and the Terminals Division poop-ed on it, because they were selling so many 4014's at the time. When RamTek did a check raster graphics terminal and almost overnight the market for blinding green flashes went away. There were terminals lined up in hallways in Wilsonville that they could not sell. On Wed, Nov 22, 2017 at 7:22 AM, Robert Diamond wrote: > The first non-printing terminal I remember seeing at Bell Labs was the > Tektronix 4014. The image (green phosphors) was “painted” on the screen and > would remain until an erase function was executed. (I seem to remember that > this action made a soft audible “pop” sound). > > https://en.wikipedia.org/wiki/Tektronix_4010 > > --- > Robert Diamond > rob at robdiamond.com > > > On Nov 22, 2017, at 5:43 AM, Nigel Williams > wrote: > > I stumbled into a reddit post on Unix with the claim about early Unices > only being accessed via printing terminals, and it suggested a question to > me as to the first “glass teletype” or CRT terminal to be used with Unix. > > Given the DEC-centric nature of early Unix I would guess perhaps a VT05 or > VT52 but I’m keen to know if anyone from those early years recollects what > happened and when regarding Unix terminal access alternatives aside from > the venerable 33KSR or 33ASR. > > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Wed Nov 22 23:28:29 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 22 Nov 2017 08:28:29 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <76FD648C-078D-42B5-A5B5-14971B05432A@robdiamond.com> Message-ID: s/check raster/cheap raster/ sigh.... On Wed, Nov 22, 2017 at 8:26 AM, Clem Cole wrote: > These are called DVST - Direct View Storage Tube devices - or a modified > slow persistence phosphor oscilloscope. And yes the clear, function was > done by large voltage pulse (blinding flash). They had a very high > resolution graphics and were (surprisingly) popular for a long time. Tek > invented computer graphics. Tektronix 'Plot 10' plotting package was de > rigeur for years and xterm still supports many of the functions. But it > was funny how companies believe their own hype. > > When we developed Magnolia in Tek Labs in 1979, we did a Raster Graphics > display and the Terminals Division poop-ed on it, because they were selling > so many 4014's at the time. When RamTek did a check raster graphics > terminal and almost overnight the market for blinding green flashes went > away. There were terminals lined up in hallways in Wilsonville that they > could not sell. > > On Wed, Nov 22, 2017 at 7:22 AM, Robert Diamond > wrote: > >> The first non-printing terminal I remember seeing at Bell Labs was the >> Tektronix 4014. The image (green phosphors) was “painted” on the screen and >> would remain until an erase function was executed. (I seem to remember that >> this action made a soft audible “pop” sound). >> >> https://en.wikipedia.org/wiki/Tektronix_4010 >> >> --- >> Robert Diamond >> rob at robdiamond.com >> >> >> On Nov 22, 2017, at 5:43 AM, Nigel Williams < >> nw at retrocomputingtasmania.com> wrote: >> >> I stumbled into a reddit post on Unix with the claim about early Unices >> only being accessed via printing terminals, and it suggested a question to >> me as to the first “glass teletype” or CRT terminal to be used with Unix. >> >> Given the DEC-centric nature of early Unix I would guess perhaps a VT05 >> or VT52 but I’m keen to know if anyone from those early years recollects >> what happened and when regarding Unix terminal access alternatives aside >> from the venerable 33KSR or 33ASR. >> >> >> >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Wed Nov 22 23:40:14 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 22 Nov 2017 08:40:14 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: Message-ID: I can verify that AIX/386 and AIX/370 were a common set of SCCS sources at Locus when they did the development for IBM. So if you can find the base sources for the one you should have much of the other. There were obviously some low level tools that were specific to each architecture and the compiler back ends were different. I do not have access to any of the that, as I was not *directly* involved with that project, since I was leading the TNC work for Intel, HP, DEC and Sun; I was specifically fire walled from the original IBM TCF project at the time (I was one of the architects and we all got together regularly but for legal reasons, Locus was careful about who had access to what sources). I know folks that did have access to the IBM IP and I can ask around. i.e. Walker, Joe Hopfield, et al would people to ask, if you can find them. On Wed, Nov 22, 2017 at 4:38 AM, Kevin Bowling wrote: > I was asking about s/370 UNIX flavors > > I can help you with AIX for i386, I’m probably one of the main > “historians” for that vintage of IBM stuff.. here ya go > http://ps-2.kev009.com/aixps2/. All the docs are scattered on my server > there. It WILL run under virtualization but is picky anout which. Google > will point you to guides. > > > On Tuesday, November 21, 2017, Wesley Parish wrote: > >> As would I. I'd also be interested in that i386 AIX Clem mentioned. >> >> It would be interesting studying the different ways the *BSD and the >> SVR4 and the AIX people etc adapted the Unix code to the i386 >> architecture. It'd make an interesting topic for discussion. (Likewise >> in comparison with the "native" i80x86 Unix-like OSes like Coherent, >> Minix and Linux. :) >> >> Wesley Parish >> >> On 11/22/17, Kevin Bowling wrote: >> > I'm also interested if any of these s/370 *ix ever escaped captivity. >> > The earliest stuff may be covered by Novell's grant of early code. >> > I'd be willing to pay for a lawyer to help liberate any contested >> > material. >> > >> > I have an R/390 (1990s era), z800 (2000s era) and z114 (2010s era) at >> > home. And Hercules. Would be fun to run *ix on any of them. >> > >> > Regards, >> > >> > On Sun, Nov 19, 2017 at 5:57 PM, Nemo wrote: >> >> Recent commentary on porting led me to read the article on porting >> >> UNIX to S/370 (https://www.bell-labs.com/usr >> /dmr/www/otherports/ibm.pdf) >> >> to support 5ESS development because the existing PDP11s were being >> >> overwhelmed. I confess to not having this read this before and find >> >> it interesting. Any recollections from anyone on the matter. And >> >> whatever happened to it? >> >> >> >> N. >> > >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Wed Nov 22 23:51:47 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 22 Nov 2017 08:51:47 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: Message-ID: On Wed, Nov 22, 2017 at 1:35 AM, Wesley Parish wrote: > As would I. I'd also be interested in that i386 AIX Clem mentioned > A big issue/hurdle I suspect is that AIX/386 was done for a PS/2 HW; (microchannel) which besides IBM and NCR, there is not a lot of in the wild. So simulation might be a PITA.​ Also the graphics was done for some IBM specific displays (I've forgotten the names), that nobody else made (which were really expensive at the time IIRC -- which again may have been an issue on why this was not popular). We had a lot of Gateway 386 (ISA/EISA based) PC's at Locus which were the system of choice we used for TNC prototyping and all we had in Boston and San Diego. The LA guys must have had AIX running on them; but I'm not sure if that code was ever released. I'd have to ask some one like Hopfield who would have done that kind of hacking. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at ronnatalie.com Thu Nov 23 00:04:15 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 22 Nov 2017 09:04:15 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: Message-ID: <00e901d3639a$c8ec7750$5ac565f0$@ronnatalie.com> I don’t think PS/2 hardware is going to be an issue. The i386 i/o architecture is pretty much the same, in/out instructions, despite the cute allusion in the name to the IBM Channel architecture, the microchannel is just another PC memory bus like the ISA it “replaced.” Not to say it had some good features to it (the idea of a card ID and better spped). The machines also had a few ISA slots. From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Clem Cole Sent: Wednesday, November 22, 2017 8:52 AM To: Wesley Parish Cc: The Eunuchs Hysterical Society Subject: Re: [TUHS] UNIX on S/370 On Wed, Nov 22, 2017 at 1:35 AM, Wesley Parish wrote: As would I. I'd also be interested in that i386 AIX Clem mentioned A big issue/hurdle I suspect is that AIX/386 was done for a PS/2 HW; (microchannel) which besides IBM and NCR, there is not a lot of in the wild. So simulation might be a PITA.​ Also the graphics was done for some IBM specific displays (I've forgotten the names), that nobody else made (which were really expensive at the time IIRC -- which again may have been an issue on why this was not popular). We had a lot of Gateway 386 (ISA/EISA based) PC's at Locus which were the system of choice we used for TNC prototyping and all we had in Boston and San Diego. The LA guys must have had AIX running on them; but I'm not sure if that code was ever released. I'd have to ask some one like Hopfield who would have done that kind of hacking. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at ronnatalie.com Thu Nov 23 00:09:41 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 22 Nov 2017 09:09:41 -0500 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: Message-ID: <00f701d3639b$8aa5aab0$9ff10010$@ronnatalie.com> I had access to the sources. We had a room in our facility that I referred to as the “toxic waste dump” where we had firewalled off to suit the IBM intellectual property hacks to approve us to have their source code. Somewhere, there’s probably an EXABYTE tape (no longer readable) with the source kicking around. Yes, there were different directories under “mach” (if I’m remembering that) but this isn’t much different than any other UNIX port. You’ve got your own startup, interrupt handling, and low level memory management. Fortunately, all four of the mach types supported paging. From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Clem Cole Sent: Wednesday, November 22, 2017 8:40 AM To: Kevin Bowling Cc: The Eunuchs Hysterical Society Subject: Re: [TUHS] UNIX on S/370 I can verify that AIX/386 and AIX/370 were a common set of SCCS sources at Locus when they did the development for IBM. So if you can find the base sources for the one you should have much of the other. There were obviously some low level tools that were specific to each architecture and the compiler back ends were different. I do not have access to any of the that, as I was not directly involved with that project, since I was leading the TNC work for Intel, HP, DEC and Sun; I was specifically fire walled from the original IBM TCF project at the time (I was one of the architects and we all got together regularly but for legal reasons, Locus was careful about who had access to what sources). I know folks that did have access to the IBM IP and I can ask around. i.e. Walker, Joe Hopfield, et al would people to ask, if you can find them. On Wed, Nov 22, 2017 at 4:38 AM, Kevin Bowling wrote: I was asking about s/370 UNIX flavors I can help you with AIX for i386, I’m probably one of the main “historians” for that vintage of IBM stuff.. here ya go http://ps-2.kev009.com/aixps2/. All the docs are scattered on my server there. It WILL run under virtualization but is picky anout which. Google will point you to guides. On Tuesday, November 21, 2017, Wesley Parish wrote: As would I. I'd also be interested in that i386 AIX Clem mentioned. It would be interesting studying the different ways the *BSD and the SVR4 and the AIX people etc adapted the Unix code to the i386 architecture. It'd make an interesting topic for discussion. (Likewise in comparison with the "native" i80x86 Unix-like OSes like Coherent, Minix and Linux. :) Wesley Parish On 11/22/17, Kevin Bowling wrote: > I'm also interested if any of these s/370 *ix ever escaped captivity. > The earliest stuff may be covered by Novell's grant of early code. > I'd be willing to pay for a lawyer to help liberate any contested > material. > > I have an R/390 (1990s era), z800 (2000s era) and z114 (2010s era) at > home. And Hercules. Would be fun to run *ix on any of them. > > Regards, > > On Sun, Nov 19, 2017 at 5:57 PM, Nemo wrote: >> Recent commentary on porting led me to read the article on porting >> UNIX to S/370 (https://www.bell-labs.com/usr/dmr/www/otherports/ibm.pdf) >> to support 5ESS development because the existing PDP11s were being >> overwhelmed. I confess to not having this read this before and find >> it interesting. Any recollections from anyone on the matter. And >> whatever happened to it? >> >> N. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at ronnatalie.com Thu Nov 23 00:18:04 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 22 Nov 2017 09:18:04 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <76FD648C-078D-42B5-A5B5-14971B05432A@robdiamond.com> Message-ID: <011401d3639c$b6a98f90$23fcaeb0$@ronnatalie.com> Don’t know, there was the “brain damaged” Hazeltine mode even in V6. I suspect there were a lot of random things kicking around that got hooked up after the initial model 33 and 37 ttys. I’ve found several early pictures, one of Ritchie, and another of Thompson (though Ritchie is in the background) sitting with what appear to be Tektronix 4014s. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Thu Nov 23 01:38:23 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Wed, 22 Nov 2017 10:38:23 -0500 (EST) Subject: [TUHS] UNIX on S/370 Message-ID: <20171122153823.9809918C0CC@mercury.lcs.mit.edu> > From: Kevin Bowling > The earliest stuff may be covered by Novell's grant of early code. > ... > Would be fun to run *ix on any of them. Alas, the Bell port of Unix to the /370 needs that underlying layer of code from IBM, and that's probably not going to escape. Too bad, it would be pretty cool. Noel From itz at very.loosely.org Thu Nov 23 02:00:30 2017 From: itz at very.loosely.org (Ian Zimmerman) Date: Wed, 22 Nov 2017 08:00:30 -0800 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: <201711220848.vAM8mUTd003779@freefriends.org> References: <201711220848.vAM8mUTd003779@freefriends.org> Message-ID: <20171122160030.6npph3qwrfk7in27@matica.foolinux.mooo.com> On 2017-11-22 01:48, arnold at skeeve.com wrote: > Try: > > gawk --nostalgia ~$ gawk --nostalgia awk: bailing out near line 1 Aborted Maybe it still needs a program? -- Please don't Cc: me privately on mailing lists and Usenet, if you also post the followup to the list or newsgroup. To reply privately _only_ on Usenet, fetch the TXT record for the domain. From arnold at skeeve.com Thu Nov 23 02:11:04 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Wed, 22 Nov 2017 09:11:04 -0700 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: <20171122160030.6npph3qwrfk7in27@matica.foolinux.mooo.com> References: <201711220848.vAM8mUTd003779@freefriends.org> <20171122160030.6npph3qwrfk7in27@matica.foolinux.mooo.com> Message-ID: <201711221611.vAMGB4X4012234@freefriends.org> Ian Zimmerman wrote: > On 2017-11-22 01:48, arnold at skeeve.com wrote: > > > Try: > > > > gawk --nostalgia > > ~$ gawk --nostalgia > awk: bailing out near line 1 > Aborted > > Maybe it still needs a program? No, that was the joke. Early Unix awk used to say exactly that message, on almost any problem, often followed by a core dump. (I never claimed the easter egg was non-lame.) Arnold From clemc at ccc.com Mon Nov 20 00:55:19 2017 From: clemc at ccc.com (Clem cole) Date: Sun, 19 Nov 2017 09:55:19 -0500 Subject: [TUHS] Determining what was on a tape back in the day In-Reply-To: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> References: <20171119134109.59F3018C0F5@mercury.lcs.mit.edu> Message-ID: Noel is correct. DECtape (aka linctape) was a block oriented technology. Traditional 1/2” mag tape which had 5, 7 or 9 tracks is a stream oriented technology. DECtape was used liked disk in the late 60s. It was comparably cheap and very reliable. The joke was you could unroll it and run over it with a car and then roll it back up and it would still work. Magtape was traditional back up scheme. Cost per bit was low and good for archiving. But you could only add to the end of a tape. You can do funny things like change recording techniques between files (not recommended as it can confuse many tape controllers but is technically allowed and was done). Because of the variable nature of things the OS needs a way to support these behaviors. Unix makes it pretty easy by letting the user do it all in user space and passing info to the driver. Other OSs do a lot of work when ‘mounting’ a tape. But either way simh needs to support these type of functions. Hence the idea of the virtual tape format that includes meta data to describe things like the size of each block written. A ‘file mark’ can be read/written (which is special) besides data blocks Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. On Nov 19, 2017, at 8:41 AM, Noel Chiappa wrote: >> From: Will Senn > >> I don't quite no how to investigate this other than to pore through the >> pdp11/40 instruction manual. > > One of these: > > https://www.ebay.com/itm/Digital-pdp-Programming-Card-8-Pages/142565890514 > > is useful; it has a list of all the opcodes in numerical order; something none > of the CPU manuals have, to my recollection. Usually there are a flock of > these "pdp11 Programming Cards" on eBait, but I only see this one at the > moment. > > If you do any amount of work with PDP-11 binary, you'll soon find yourself > recognizing the common instructions. E.g. MOV is 01msmr (octal), where 'm' is > a mode specifier, and s and r are source and destination register > numbers. (That's why PDP-11 people are big on octal; the instructions are easy > to read in octal.) More here: > > http://gunkies.org/wiki/PDP-11_architecture#Operands > > So 0127xx is a move of an immediate operand. > > >>> You don't need to mount it on DECTape drive - it's just blocks. Mount >>> it as an RK05 image, or a magtape, or whatever. > >> I thought disk (RK05) and tape (magtape) blocks were different... > > Well, you need to differentiate between DECtape and magtape - very different > beasts. > > DECtape on a PDP-11 _only_ supports 256 word (i.e. 512 byte) blocks, the same > as most disks. (Floppies are an exception when it comes to disks - sort > of. The hardware supports 128/256 byte sectors, but the usual driver - not in > V6 or V7 - invisibly makes them look like 512-byte blocks.) > > Magtapes are complicated, and I don't remember all the details of how Unix > handles them, but the _hardware_ is prepared to write very long 'blocks', and > there are also separate 'file marks' which the hardware can write, and notice. > > But a magtape written in 512-byte blocks, with no file marks, can be treated > like a disk; that's what the V6 distribution tapes look like: > > http://gunkies.org/wiki/Installing_UNIX_Sixth_Edition#Installation_tape_contents > > and IIRC 'tp' format magtape tapes are written the same way, hardware-wise (so > they look just like DECtapes). > > Noel From random832 at fastmail.com Thu Nov 23 02:33:53 2017 From: random832 at fastmail.com (Random832) Date: Wed, 22 Nov 2017 11:33:53 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> Message-ID: <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> On Wed, Nov 22, 2017, at 05:43, Nigel Williams wrote: > I stumbled into a reddit post on Unix with the claim about early Unices > only being accessed via printing terminals, and it suggested a question > to me as to the first “glass teletype” or CRT terminal to be used with > Unix. While this isn't necessarily indicative of what was physically used either as a dumb terminal or with specialized applications, the 1BSD termcap predecessor at http://www.tuhs.org/cgi-bin/utree.pl?file=1BSD/etc/ttycap may be informative. Of the 22 terminal descriptions listed, nine seem to be for CRT terminals: Three without cursor-addressability (adm3, datamedia, teleray) five with (adm3a, beehiveIIIm, fox, hazeltine, hp2645), and the tek4014 (which was an advanced graphical terminal as others have mentioned, but completely unsuited to vi). The ADM-3A is of course famous as the most common terminal used at Berkeley, and the one vi was designed for. As far as I know (and I've gone looking for this specifically, oddly enough, out of idle curiosity), no version of termcap/terminfo has contained a description for the VT05. From ben at cogs.com Thu Nov 23 02:42:21 2017 From: ben at cogs.com (Ben Greenfield) Date: Wed, 22 Nov 2017 11:42:21 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> Message-ID: > On Nov 22, 2017, at 11:33 AM, Random832 wrote: > > As far as I know (and I've gone looking for this specifically, oddly > enough, out of idle curiosity), no version of termcap/terminfo has > contained a description for the VT05. For those who are reading about this as history and didn’t live it this experience this statement needs more background. I will look up the VT05, but hope that you may add some to color as to this stands out. Thanks, Ben From random832 at fastmail.com Thu Nov 23 03:15:37 2017 From: random832 at fastmail.com (Random832) Date: Wed, 22 Nov 2017 12:15:37 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> Message-ID: <1511370937.1215976.1181256976.1273A950@webmail.messagingengine.com> On Wed, Nov 22, 2017, at 11:42, Ben Greenfield via TUHS wrote: > > On Nov 22, 2017, at 11:33 AM, Random832 wrote: > > As far as I know (and I've gone looking for this specifically, oddly > > enough, out of idle curiosity), no version of termcap/terminfo has > > contained a description for the VT05. > > For those who are reading about this as history and didn’t live it this > experience this statement needs more background. Sorry, no help there, I'm reading it as history too. I've just looked through a lot of the (at least publicly available) historical versions of the termcap/terminfo stuff in particular, and I looked for VT05 descriptions in particular since it seemed odd to me that even the modern ncurses terminfo doesn't contain a description for it when it includes so many other DEC terminals. From henry.r.bent at gmail.com Thu Nov 23 03:55:36 2017 From: henry.r.bent at gmail.com (Henry Bent) Date: Wed, 22 Nov 2017 12:55:36 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> Message-ID: On 22 November 2017 at 11:42, Ben Greenfield via TUHS wrote: > > > > On Nov 22, 2017, at 11:33 AM, Random832 wrote: > > > > As far as I know (and I've gone looking for this specifically, oddly > > enough, out of idle curiosity), no version of termcap/terminfo has > > contained a description for the VT05. > > > For those who are reading about this as history and didn’t live it this > experience this statement needs more background. > > I will look up the VT05, but hope that you may add some to color as to > this stands out. > In short: the VT05 was DEC's first video terminal, from the early '70s, and would have presumably been in use at some installations that used early Unix. My guess - and this is entirely a guess - is that it had been entirely supplanted by the VT52 and friends by the time Unix gained widespread popularity. There is a pretty good overview of the VT05 at https://vt100.net/dec/vt05.html and http://terminals-wiki.org/wiki/index.php/DEC_VT05 has a plethora of pictures. I have no idea why there are no termcap/terminfo entries for the VT05. stty in BSD as early as 2.79 understands "vt05" as a settings argument, but it's not clear to me what you would use for $TERM. -Henry -------------- next part -------------- An HTML attachment was scrubbed... URL: From random832 at fastmail.com Thu Nov 23 05:39:32 2017 From: random832 at fastmail.com (Random832) Date: Wed, 22 Nov 2017 14:39:32 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> Message-ID: <1511379572.2232330.1181354512.1C3341CE@webmail.messagingengine.com> On Wed, Nov 22, 2017, at 12:55, Henry Bent wrote: > In short: the VT05 was DEC's first video terminal, from the early > '70s, and would have presumably been in use at some installations that > used early Unix. My guess - and this is entirely a guess - is that it > had been entirely supplanted by the VT52 and friends by the time Unix > gained widespread popularity. > > There is a pretty good overview of the VT05 at > https://vt100.net/dec/vt05.html and > http://terminals-wiki.org/wiki/index.php/DEC_VT05 has a plethora of > pictures. > > I have no idea why there are no termcap/terminfo entries for the VT05. > stty in BSD as early as 2.79 understands "vt05" as a settings > argument, but it's not clear to me what you would use for $TERM. Looking at other versions, stty vt05 appears as far back as V6 (it sets the newline delay - needed because scrolling was slow on the VT05 - and clears other delays). This is evidence that it was probably used some places as a dumb terminal. The VT05 itself was 72x20, all uppercase, and did in fact support cursor addressing etc, though there's no evidence any Unix applications ever took advantage of that. TECO apparently did, though. From nw at retrocomputingtasmania.com Thu Nov 23 05:40:22 2017 From: nw at retrocomputingtasmania.com (Nigel Williams) Date: Thu, 23 Nov 2017 06:40:22 +1100 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> Message-ID: On Thu, Nov 23, 2017 at 4:55 AM, Henry Bent wrote: > On 22 November 2017 at 11:42, Ben Greenfield via TUHS > wrote: >> > On Nov 22, 2017, at 11:33 AM, Random832 wrote: >> > As far as I know (and I've gone looking for this specifically, oddly >> > enough, out of idle curiosity), no version of termcap/terminfo has >> > contained a description for the VT05. The VT05 needed a delay added on CR as it was slow to scroll the screen buffer, so every logon would have required: stty cr3 I amused to see that stty cr3 still works on Linux but on my desktop there is no visible effect on scrolling speed. >> For those who are reading about this as history and didn’t live it this >> experience this statement needs more background. >> >> I will look up the VT05, but hope that you may add some to color as to >> this stands out. I suspect the VT05 was not popular as it was slow, uppercase only, 72 characters x 20 lines, and not cursor addressable (much like Teletypes of that time). I also think the VT05 never sold in significant numbers, certainly to this day there are only a small number in the hands of collectors (despite being much sought after). > There is a pretty good overview of the VT05 at > https://vt100.net/dec/vt05.html and This caught my eye: "It is completely portable, weighing only 55 pounds...". The VT05 is a beast, it is so deep (Depth 76cm / 30 inches) and heavy, although one person could lift it, the size and shape really make it a two person lift. In searching for images on the Internet I'm not finding as many images of DEC PDP-11 installations from the 1970s as I hoped, mostly the usual DEC marketing photos. This suggests a todo item is to compile photos of early Unix installations sequenced in time. At my local university I recall the early CRT terminals connected to Unix systems were: GTC GT-101, ADM 3a, VT100 [1] and Tek 40xx. The first CRT as output displays (these arrived before the terminals) were Matrox graphics card connected monitors. [1] The DEC VT100 was rare as it was expensive at the time and the usual reason anyone had one was it shipped as the console bundled with a PDP-11. From nw at retrocomputingtasmania.com Thu Nov 23 05:48:16 2017 From: nw at retrocomputingtasmania.com (Nigel Williams) Date: Thu, 23 Nov 2017 06:48:16 +1100 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> Message-ID: On Thu, Nov 23, 2017 at 6:40 AM, Nigel Williams wrote: > I suspect the VT05 was not popular as it was slow, uppercase only, 72 > characters x 20 lines, and not cursor addressable (much like Teletypes > of that time). I am wrong, DEC VT05 was cursor addressable, it could even erase to end of line. 3.8 Direct Cursor Addressing (CAD) https://vt100.net/docs/vt05-rm/chapter3.html#S3.8 Through the use of CAD (0168), the cursor can be directed to any one of the 1440 character locations on the CRT screen using three instructions. The CAD function is used to allow updating of displayed data without retransmitting the complete page. From clemc at ccc.com Thu Nov 23 06:07:32 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 22 Nov 2017 15:07:32 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> Message-ID: Some thoughts... In the late 60s, early 70s the number glass tty's being made were actually fairly small at first. They tended to be custom build for specific uses, such as the airlines or wall street traders. The idea of the glass tty was not quite ready to be birthed. Mostly because the cost was high and the need was not quite yet there. IIRC VT05 and the like cost multiple thousands of dollars in late 1960/early 1970s money [FYI - the dollartimes.com website says that's between $13K-$15K in todays money]. Remember that at the time the of the VT05, its follow on the VT52 and its contemporary, the logic was built primarily with using MSI TTL; including all the video logic to drive the display itself. A dominate cost of the terminal was the static ram chips. A single 24x80 lines of 2000 chars was $50-100 in OEM quantities. The keyboard cost about the same. The video sub systems were black and white TV monitors. You still need a case, keyboard and the rest of the logic. The $999 cost of the Lear Siegler Kit that you assembled yourself was a steal. DEC used an Intel 8080 in the VT-100 a few years later, they paid approx a huge amount of money for it, but they were able to make the logic board so much smaller. IIRC the original price for the VT-100 was $3500 in 1976 (they did sell a ton of the them). Shortly thereafter, most terminals had 8080's, 6502s, or Z80s in them. Motorola built the first video chips and it's interesting, how many of the terminals all used same video chips but the processors were more varied. With the prices settling around $700-$1.5K mark by the early 1980s. -------------- next part -------------- An HTML attachment was scrubbed... URL: From aap at papnet.eu Thu Nov 23 07:33:49 2017 From: aap at papnet.eu (Angelo Papenhoff) Date: Wed, 22 Nov 2017 22:33:49 +0100 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> Message-ID: <20171122213349.GA9067@indra.papnet.eu> On 23/11/17, Nigel Williams wrote: > On Thu, Nov 23, 2017 at 6:40 AM, Nigel Williams > wrote: > > I suspect the VT05 was not popular as it was slow, uppercase only, 72 > > characters x 20 lines, and not cursor addressable (much like Teletypes > > of that time). > > I am wrong, DEC VT05 was cursor addressable, it could even erase to end of line. > > 3.8 Direct Cursor Addressing (CAD) > > https://vt100.net/docs/vt05-rm/chapter3.html#S3.8 > > Through the use of CAD (0168), the cursor can be directed to any one > of the 1440 character locations on the CRT screen using three > instructions. The CAD function is used to allow updating of displayed > data without retransmitting the complete page. I wrote a VT05 emulator some while ago: https://github.com/aap/vt05 It's certainly not perfect and probably has some bugs, but I somehow had the urge to write it for no particular reason. I would actually be interested in the newline delay the machine needs because I didn't implement it. I hope this doesn't derail the discussion too much, but I would actually like to know which teletypes were used at bell labs. What strikes me as odd is that in UNIX lower case is the norm yet the ASR-33, which I would assume was ubiquitous, does only to upper case and also doesn't do some characters used by C, like {}. In this famous photo you see ASR-33s...so were they really the main interface to early UNIX? https://www.bell-labs.com/usr/dmr/www/kd14.jpg aap From dave at horsfall.org Thu Nov 23 07:50:39 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 23 Nov 2017 08:50:39 +1100 (EST) Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> Message-ID: On Wed, 22 Nov 2017, Random832 wrote: > As far as I know (and I've gone looking for this specifically, oddly > enough, out of idle curiosity), no version of termcap/terminfo has > contained a description for the VT05. You don't want to know about the VT-05. Trust me on this. (It was the console for the "larger" PDP-11/40s at UNSW, because they were supposed to be running RSX-11D; we sneaked in Unix V6 and it stayed.) -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From clemc at ccc.com Thu Nov 23 07:54:21 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 22 Nov 2017 16:54:21 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: <20171122213349.GA9067@indra.papnet.eu> References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> <20171122213349.GA9067@indra.papnet.eu> Message-ID: ASR-37 were used at the labs On Wed, Nov 22, 2017 at 4:33 PM, Angelo Papenhoff wrote: > On 23/11/17, Nigel Williams wrote: > > On Thu, Nov 23, 2017 at 6:40 AM, Nigel Williams > > wrote: > > > I suspect the VT05 was not popular as it was slow, uppercase only, 72 > > > characters x 20 lines, and not cursor addressable (much like Teletypes > > > of that time). > > > > I am wrong, DEC VT05 was cursor addressable, it could even erase to end > of line. > > > > 3.8 Direct Cursor Addressing (CAD) > > > > https://vt100.net/docs/vt05-rm/chapter3.html#S3.8 > > > > Through the use of CAD (0168), the cursor can be directed to any one > > of the 1440 character locations on the CRT screen using three > > instructions. The CAD function is used to allow updating of displayed > > data without retransmitting the complete page. > > I wrote a VT05 emulator some while ago: https://github.com/aap/vt05 > It's certainly not perfect and probably has some bugs, but I somehow had > the urge to write it for no particular reason. > I would actually be interested in the newline delay the machine needs > because I didn't implement it. > > I hope this doesn't derail the discussion too much, but I would actually > like to know which teletypes were used at bell labs. What strikes me as > odd is that in UNIX lower case is the norm yet the ASR-33, which I would > assume was ubiquitous, does only to upper case and also doesn't do some > characters used by C, like {}. In this famous photo you see ASR-33s...so > were they really the main interface to early UNIX? > https://www.bell-labs.com/usr/dmr/www/kd14.jpg > > aap > -------------- next part -------------- An HTML attachment was scrubbed... URL: From random832 at fastmail.com Thu Nov 23 08:14:48 2017 From: random832 at fastmail.com (Random832) Date: Wed, 22 Nov 2017 17:14:48 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: <20171122213349.GA9067@indra.papnet.eu> References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> <20171122213349.GA9067@indra.papnet.eu> Message-ID: <1511388888.2283501.1181539320.27289891@webmail.messagingengine.com> On Wed, Nov 22, 2017, at 16:33, Angelo Papenhoff wrote: > I wrote a VT05 emulator some while ago: https://github.com/aap/vt05 > It's certainly not perfect and probably has some bugs, but I somehow had > the urge to write it for no particular reason. > I would actually be interested in the newline delay the machine needs > because I didn't implement it. It turns out it was for any vertical movement, not just scrolling. And the padding was required in the *middle* of the cursor addressing sequence. https://vt100.net/docs/vt05-rm/chapter2.html#S2.7 has the details. From dave at horsfall.org Thu Nov 23 09:37:48 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 23 Nov 2017 10:37:48 +1100 (EST) Subject: [TUHS] APPLIX-L EPROM programmers In-Reply-To: References: <882f933b-5a55-b53d-641b-c42e88b38d41@acfr.usyd.edu.au> Message-ID: On Thu, 23 Nov 2017, Matthew Geier wrote: > There is a brake computer for the centre bogie and a microprocessor in > the auxillary converter too. Centre bogie? How does that work on curves? Or is it part of the coupler? -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From doug at cs.dartmouth.edu Thu Nov 23 11:05:23 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Wed, 22 Nov 2017 20:05:23 -0500 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' Message-ID: <201711230105.vAN15NI6026629@coolidge.cs.Dartmouth.EDU> Repeat, slightly modified, of a previous post that got shunted to the attachment heap. > I am curious if anyone on the list remembers much > about the development of the first spell checkers in Unix? Yes, intimately. They had no relationship to the PDP 10. The first one was a fantastic tour de force by Bob Morris, called "typo". Aside from the file "eign" of the very most common English words, it had no vocabulary. Instead it evaluated the likelihood that any particular word came from a source with the same letter-trigram frequencies as the document as a whole. The words were then printed in increasing order of likelihood. Typos tended to come early in the list. Typo, introduced in v3, was very popular until Steve Johnson wrote "spell", a remarkably short shell script that (efficiently) looks up a document's words in the wordlist of Webster's Collegiate Dictionary, which we had on line. The only "real" coding he did was to write a simple affix-stripping program to make it possible to look up plurals, past tenses, etc. If memory serves, Steve's program is described in Kernighan and Pike. It appeared in v5. Steve's program was good, but the dictionary isn't an ideal source for real text, which abounds in proper names and terms of art. It also has a lot of rare words that don't pull their weight in a spell checker, and some attractive nuisances, especially obscure short words from Scots, botany, etc, which are more likely to arise in everyday text as typos than by intent. Given the basic success of Steve's program, I undertook to make a more useful spelling list, along with more vigorous affix stripping (and a stop list to avert associated traps, e.g. "presenation" = pre+senate+ion"). That has been described in Bentley's "Programming Pearls" and in http://www.cs.dartmouth.edu/~doug/spell.pdf. Morris's program and mine labored under space constraints, so have some pretty ingenious coding tricks. In fact Morris has a patent on the way he counted frequencies of the 26^3 trigrams in 26^3 bytes, even though the counts could exceed 255. I did some heroic (and probabilistic) encoding to squeeze a 30,000 word dictionary into a 64K data space, without severely affecting lookup time. Doug From lyndon at orthanc.ca Thu Nov 23 13:11:54 2017 From: lyndon at orthanc.ca (Lyndon Nerenberg) Date: Wed, 22 Nov 2017 19:11:54 -0800 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' In-Reply-To: <201711230105.vAN15NI6026629@coolidge.cs.Dartmouth.EDU> References: <201711230105.vAN15NI6026629@coolidge.cs.Dartmouth.EDU> Message-ID: > On Nov 22, 2017, at 5:05 PM, Doug McIlroy wrote: > > The first one was a fantastic tour de force by Bob Morris, > called "typo". Aside from the file "eign" of the very most common > English words, it had no vocabulary. Instead it evaluated the > likelihood that any particular word came from a source with the > same letter-trigram frequencies as the document as a whole. The > words were then printed in increasing order of likelihood. Typos > tended to come early in the list. This was written up in the same BSTJ number that talked about many of the troff pre-processors and other DWB tools, IIRC. Was that the "big" UNIX edition? Either way, the paper is well worth a read if you can find it (and I'm sorry I can't recall the title right now). From arnold at skeeve.com Thu Nov 23 22:09:37 2017 From: arnold at skeeve.com (arnold at skeeve.com) Date: Thu, 23 Nov 2017 05:09:37 -0700 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: <201711220848.vAM8mUTd003779@freefriends.org> <20171122160030.6npph3qwrfk7in27@matica.foolinux.mooo.com> <201711221611.vAMGB4X4012234@freefriends.org> Message-ID: <201711231209.vANC9bxo027021@freefriends.org> Warner Losh wrote: > On Wed, Nov 22, 2017 at 9:11 AM, wrote: > > > Ian Zimmerman wrote: > > > > > On 2017-11-22 01:48, arnold at skeeve.com wrote: > > > > > > > Try: > > > > > > > > gawk --nostalgia > > > > > > ~$ gawk --nostalgia > > > awk: bailing out near line 1 > > > Aborted > > > > > > Maybe it still needs a program? > > > > No, that was the joke. Early Unix awk used to say exactly that > > message, on almost any problem, often followed by a core dump. > > > > (I never claimed the easter egg was non-lame.) > > > > There were T-Shirts of this at early conferences as well. Showed a picture > of a vaguely puffin-like bird baling of an airplane made up of what looked > like ascii characters {}()|/... Google is unable find one though, so my > memory may be rusty here... > > Warner I have such a shirt. Maybe I can scan it. :-) Arnold From arnold at skeeve.com Fri Nov 24 03:36:20 2017 From: arnold at skeeve.com (Arnold Robbins) Date: Thu, 23 Nov 2017 19:36:20 +0200 Subject: [TUHS] OT: XPL compiler available Message-ID: <201711231736.vANHaK5u002407@skeeve.com> Path: eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!adore2!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Shoefoot Newsgroups: comp.compilers Subject: Announcing the initial release of an XPL Compiler Date: Tue, 21 Nov 2017 09:25:43 -0800 (PST) Organization: Compilers Central Sender: news at iecc.com Approved: comp.compilers at iecc.com Message-ID: <17-11-001 at comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="19370"; mail-complaints-to="abuse at iecc.com" Keywords: history, translator Posted-Date: 21 Nov 2017 14:37:00 EST X-submission-address: compilers at iecc.com X-moderator-address: compilers-request at iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: feeder.eternal-september.org comp.compilers:3921 Announcing the initial release of the XPL to C source translator. The XPL language is a dialect of PL/I created by McKeeman, Horning and Wortman and documented in their book "A Compiler Generator" published in 1970. XPL is a procedural language with structured program flow. The language supports integer arithmetic and logical operations. XPL supports dynamic string variables and powerful character string manipulation features. The compiler and the runtime are written in C. The compiler generates C source so anyone with a working C compiler can compile and execute code written in XPL. XPL and the BNF analyzer were the cutting edge of compiler technology 50 years ago. This release includes both the compiler and the BNF analyzer written in the late 60s. You can download the source here: https://sourceforge.net/projects/xpl-compiler From ron at ronnatalie.com Fri Nov 24 05:17:05 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Thu, 23 Nov 2017 14:17:05 -0500 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: Message-ID: <00ce01d3648f$a65ed4d0$f31c7e70$@ronnatalie.com> Years ago at BRL, we had a division chief that typed with only two fingers. One of my coworkers modded the "stty" command to include "two-finger" in the list of modes when that user ran it. Of course, it was slightly laughable when he discovered it and found there was no way to disable it. The "make love" harkens back to TECO which would print "NOT WAR?" Years ago, Milo Medin found that there was a "backdoor" password into the Proteon routers that he discovered running "strings" on the binary. After making a stink about it, Proteon removed (or just changed) the password. However, if you ran strings on the binary, about the same place you'd have found the original backdoor password was a string "Not so easy this time, eh Milo?" From ron at ronnatalie.com Fri Nov 24 05:33:33 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Thu, 23 Nov 2017 14:33:33 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> <20171122213349.GA9067@indra.papnet.eu> Message-ID: <00d001d36491$f39b40b0$dad1c210$@ronnatalie.com> My guess is the tty culture on UNIX revolved around the Model 37. This had upper and lower case as well as having the concept of NEWLINE as both the shoot the paper up and move the type element back to the left side. It ceratainly is ingrained into nroff, all those ESC-8/ESC-9 stuff that nroff puts out are direct commands to the Model 37. I suspect that it was just the case that most PDP consoles were Model 33’s. They were cheaper and pretty ubiquitous. Even when I started with UNIX in 1977, most of our machines had Model 33 consoles even if they had CRTs or fancier printing terminals (LA36 or Model 37’s). -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Fri Nov 24 05:45:43 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Thu, 23 Nov 2017 14:45:43 -0500 (EST) Subject: [TUHS] A man easter-egg (gimme gimme gimme) Message-ID: <20171123194543.E5A0A18C0C3@mercury.lcs.mit.edu> > From: "Ron Natalie" > After making a stink about it, Proteon removed (or just changed) the > password. We added a 'disable field service password' option to the configuration (for those who wanted to keep FS out), changed the password (since the old one was blown), and stored the new one in encrypted form - hence the message! :-) Noel From jon at fourwinds.com Fri Nov 24 05:49:42 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Thu, 23 Nov 2017 11:49:42 -0800 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: <00d001d36491$f39b40b0$dad1c210$@ronnatalie.com> References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> <20171122213349.GA9067@indra.papnet.eu> <00d001d36491$f39b40b0$dad1c210$@ronnatalie.com> Message-ID: <201711231949.vANJngHw026996@darkstar.fourwinds.com> "Ron Natalie" writes: > My guess is the tty culture on UNIX revolved around the Model 37.     This had > upper and lower case as well as having the concept of NEWLINE as both the shoot > the paper up and move the type element back to the left side.    It ceratainly > is ingrained into nroff, all those ESC-8/ESC-9 stuff that nroff puts out are > direct commands to the Model 37. > > I suspect that it was just the case that most PDP consoles were Model 33’s.   > They were cheaper and pretty ubiquitous.   Even when I started with UNIX in > 1977, most of our machines had Model 33 consoles even if they had CRTs or > fancier printing terminals (LA36 or Model 37’s). I don't think that I agree with this. I recall that there was a "public terminal room" on maybe the 4th floor of building 2 that was filled with random terminals of all types hooked to modems. It's where I first came across glass ttys. I know that many of the UNIX machines had modems; I would borrow a Silent 700 or Execuport so that I could work from home which annoyed my parents since I would tie up the phone. So while I don't recall doing so one could dial one up from one of the glass ttys in the public terminal room. Jon From ralph at inputplus.co.uk Fri Nov 24 07:22:53 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Thu, 23 Nov 2017 21:22:53 +0000 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: <00ce01d3648f$a65ed4d0$f31c7e70$@ronnatalie.com> References: <00ce01d3648f$a65ed4d0$f31c7e70$@ronnatalie.com> Message-ID: <20171123212253.B8E312019D@orac.inputplus.co.uk> Hi Ron, > Years ago at BRL, we had a division chief that typed with only two > fingers. Being able to touch-type is a boon to the programmer, but I did work with one old-timer used to writing and having someone else do the punching. When forced to use one of these fangled electronic keyboards, he would sit and think for a while and then hunt-and-peck out up to a dozen lines, no editing required, then resume thinking. I suppose it was the equivalent of not having to rub out what he'd just written. Ian Fleming, I think, being a hack first before a novelist, said something about not starting to type a sentence until you know how it's going to end. Typing-correction fluid was probably the start of the slippery slope. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From ggm at algebras.org Fri Nov 24 08:39:44 2017 From: ggm at algebras.org (George Michaelson) Date: Fri, 24 Nov 2017 06:39:44 +0800 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: Message-ID: On Wed, Nov 22, 2017 at 8:51 AM, Dave Horsfall wrote: > On Wed, 22 Nov 2017, George Michaelson wrote: > >> man woman >> make love >> cat "tin of catfood" >> >> the first two were easter eggs. the last one was just assonance from >> "cannot open" error message. > > > Never saw the easter egg, but "man woman" on FreeBSD/Mac/Penguin says "No > manual entry for woman" which I guess will have to do... > > (Well, someone had to try it, so it may as well be me.) > > > -- > Dave Horsfall DTM (VK2KFU) "Those who don't understand security will > suffer." From ron at ronnatalie.com Fri Nov 24 11:42:58 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Thu, 23 Nov 2017 20:42:58 -0500 Subject: [TUHS] First CRT terminal on Unix? In-Reply-To: <201711231949.vANJngHw026996@darkstar.fourwinds.com> References: <2B43893B-29EA-460C-9426-9C0127B7F5D8@retrocomputingtasmania.com> <1511368433.1204138.1181170712.5C35EA76@webmail.messagingengine.com> <20171122213349.GA9067@indra.papnet.eu> <00d001d36491$f39b40b0$dad1c210$@ronnatalie.com> <201711231949.vANJngHw026996@darkstar.fourwinds.com> Message-ID: <011101d364c5$8ec534a0$ac4f9de0$@ronnatalie.com> Ah, the Sinus 700. I had forgotten about those . From tfb at tfeb.org Fri Nov 24 19:44:08 2017 From: tfb at tfeb.org (Tim Bradshaw) Date: Fri, 24 Nov 2017 09:44:08 +0000 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' In-Reply-To: References: <201711230105.vAN15NI6026629@coolidge.cs.Dartmouth.EDU> Message-ID: <4073E243-D907-4B5C-9DE3-86963C7CAAFE@tfeb.org> > On 23 Nov 2017, at 03:11, Lyndon Nerenberg wrote: > > This was written up in the same BSTJ number that talked about many of the troff pre-processors and other DWB tools, IIRC. Was that the "big" UNIX edition? Either way, the paper is well worth a read if you can find it (and I'm sorry I can't recall the title right now). I think it's 'Language development tools' by Johnson & Lesk in vol 57 number 6 part 2, p2155 (which I'm sure I should cite in some more proper way). -------------- next part -------------- An HTML attachment was scrubbed... URL: From beebe at math.utah.edu Sat Nov 25 01:05:50 2017 From: beebe at math.utah.edu (Nelson H. F. Beebe) Date: Fri, 24 Nov 2017 08:05:50 -0700 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' Message-ID: BibTeX entries for the complete contents of the Bell System Technical Journal family are in the TeX User Group archives at http://www.math.utah.edu/pub/tex/bib/bstj1970.bib [change 1970 to other decades, and .bib to .html for live hyperlinks]. The PDF URLs for bstj.bell-labs.com no longer work, and the ones for www.alcatel-lucent.com, such as http://www.alcatel-lucent.com/bstj/vol57-1978/articles/bstj57-6-2155.pdf now redirect to an HTML page. Otherwise, articles are available from the Wiley site at http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1538-7305/issues/ but are behind a paywall. There are also copies in the IEEE eXplore database at http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?reload=true&punumber=6731002 I tried to find the URLs at https://web.archive.org/, but it does appear to have 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 jnc at mercury.lcs.mit.edu Sat Nov 25 01:13:59 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Fri, 24 Nov 2017 10:13:59 -0500 (EST) Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' Message-ID: <20171124151359.9922018C0CC@mercury.lcs.mit.edu> > From: "Nelson H. F. Beebe" > The PDF URLs for bstj.bell-labs.com no longer work, and the ones for > www.alcatel-lucent.com ... now redirect to an HTML page. With any luck, someone scraped them before they went. I've gotten in the habit of scraping all the Web content I look at, since it has (as above) a distressing tendency to vapourize. Noel From cym224 at gmail.com Sat Nov 25 01:33:37 2017 From: cym224 at gmail.com (Nemo) Date: Fri, 24 Nov 2017 10:33:37 -0500 Subject: [TUHS] A man easter-egg (gimme gimme gimme) In-Reply-To: References: <201711220848.vAM8mUTd003779@freefriends.org> Message-ID: On 24 November 2017 at 10:11, Nemo wrote: > On 22 November 2017 at 03:48, wrote (in part): >>> As a former developer and manager, I would be really pissed off if my >>> programmers wasted their time on writing useless frippery instead of >>> quality code, and I would certainly have a little chat with them... >> >> I think that this is totally appropriate for code being developed >> for a paid product. > > I would say this is context-sensitive (industry, customers, ...). One > version of MS Word had an animation of a cartoon monster crushing "WP' > (somewhere in the credits, I recall). > > N. I really must be more careful with replies. The above was meant for TUHS, not just Arnold. N. From ralph at inputplus.co.uk Sat Nov 25 03:01:31 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Fri, 24 Nov 2017 17:01:31 +0000 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' In-Reply-To: References: Message-ID: <20171124170131.DC6921F968@orac.inputplus.co.uk> Hi Nelson, > I tried to find the URLs at https://web.archive.org/, but it does > appear to have them. Is https://archive.org/details/bstj-archives what you're after? I too find interesting pages have disappeared in later years so visit archive.org and have them take a copy for me, and everyone else. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From will.senn at gmail.com Sat Nov 25 03:24:32 2017 From: will.senn at gmail.com (Will Senn) Date: Fri, 24 Nov 2017 11:24:32 -0600 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' In-Reply-To: <20171124151359.9922018C0CC@mercury.lcs.mit.edu> References: <20171124151359.9922018C0CC@mercury.lcs.mit.edu> Message-ID: <76547420-8206-cc17-591d-c8f27579786e@gmail.com> On 11/24/17 9:13 AM, Noel Chiappa wrote: > > From: "Nelson H. F. Beebe" > > > The PDF URLs for bstj.bell-labs.com no longer work, and the ones for > > www.alcatel-lucent.com ... now redirect to an HTML page. > > With any luck, someone scraped them before they went. > > I've gotten in the habit of scraping all the Web content I look at, since it > has (as above) a distressing tendency to vapourize. > > Noel A lot of the unix related articles are collected in these two volumes on bitsavers: http://bitsavers.org/pdf/att/unix/UNIX_System_Readings_and_Applications_Volume_1_1987.pdf http://bitsavers.org/pdf/att/unix/UNIX_System_Readings_and_Applications_Volume_2_1987.pdf Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From beebe at math.utah.edu Sat Nov 25 04:06:46 2017 From: beebe at math.utah.edu (Nelson H. F. Beebe) Date: Fri, 24 Nov 2017 11:06:46 -0700 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' In-Reply-To: <20171124170131.DC6921F968@orac.inputplus.co.uk> Message-ID: Ralph Corderoy writes today: >> Is https://archive.org/details/bstj-archives what you're after? Thanks for uncovering that! I'll add links to it shortly in all of the Bell Labs journal family bibliography files. I prepared the family's BibTeX bibliographies in December 2010, according to my revision history logs, and e-mail archives of exchanges with a Bell Labs researcher. At that time, I had access to the full collection of PDFs, but out of concern for local disk space, and the (now mistaken) belief that they would continue to be available at Bell Labs/Lucent, I did not mirror them to Utah. I made the same mistake with the two IBM journals whose archives disappeared behind the IEEE pay wall. Sigh... ---------------------------------------- P.S. In 1990, we filled a dumpster with 9-track tapes that we had to abandon because of our move to new hardware that lacked such a drive, and because our new disk system had insufficent disk space to preserve their contents. I have since regretted that decision many times, because a lot of stuff was lost forever. The maximum capacity of 6250-bpi 9-track tapes was about 100MB to 170MB. A thousand such tapes would have needed just 100GB to 170GB, an amount of space that I can now buy in Utah for about US$4 (based on a local store offering of $94 for a 4TB USB-3 attached disk about the size of a paperback thriller). ------------------------------------------------------------------------------- - 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 henry.r.bent at gmail.com Sat Nov 25 04:17:28 2017 From: henry.r.bent at gmail.com (Henry Bent) Date: Fri, 24 Nov 2017 13:17:28 -0500 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' In-Reply-To: References: <20171124170131.DC6921F968@orac.inputplus.co.uk> Message-ID: On 24 November 2017 at 13:06, Nelson H. F. Beebe wrote: > P.S. In 1990, we filled a dumpster with 9-track tapes that we had to > abandon because of our move to new hardware that lacked such a drive, > and because our new disk system had insufficent disk space to preserve > their contents. > > I have since regretted that decision many times, because a lot of > stuff was lost forever. > > The maximum capacity of 6250-bpi 9-track tapes was about 100MB to > 170MB. A thousand such tapes would have needed just 100GB to 170GB, > an amount of space that I can now buy in Utah for about US$4 (based on > a local store offering of $94 for a 4TB USB-3 attached disk about the > size of a paperback thriller). > Sure, but how much would 170GB of storage have cost in 1990? And what would have been the cost to mirror it, or to back it up on to a more modern tape format? Was that data really worth tens of thousands of dollars? -Henry -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.senn at gmail.com Sat Nov 25 05:25:18 2017 From: will.senn at gmail.com (Will Senn) Date: Fri, 24 Nov 2017 13:25:18 -0600 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix Message-ID: <6b6fd55e-d1f9-5ee2-42ac-309d6b2923b3@gmail.com> I am curious about how the Harvard Architecture relates to Unix, historically. If the Harvard Architecture is predicated on the separation of code from data in order to prevent self-modifying code (my interpretation), then it would seem to me to be somewhat at odds with a Unix philosophy of extreme abstraction (code, data, it's all 0's and 1's, after all). In my naive understanding, the PDP-11 itself, with the Unibus and apparently agnostic ISA seem to summarily reject the Harvard Architecure... My question is - was there tension around Harvard and Von Neumann architectures in Unix circles and if so, how was it resolved? Thanks, Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From jon at fourwinds.com Sat Nov 25 05:28:21 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Fri, 24 Nov 2017 11:28:21 -0800 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <6b6fd55e-d1f9-5ee2-42ac-309d6b2923b3@gmail.com> References: <6b6fd55e-d1f9-5ee2-42ac-309d6b2923b3@gmail.com> Message-ID: <201711241928.vAOJSLcF008672@darkstar.fourwinds.com> Will Senn writes: > I am curious about how the Harvard Architecture relates to Unix, > historically. If the Harvard Architecture is predicated on the > separation of code from data in order to prevent self-modifying code (my > interpretation), then it would seem to me to be somewhat at odds with a > Unix philosophy of extreme abstraction (code, data, it's all 0's and > 1's, after all). In my naive understanding, the PDP-11 itself, with the > Unibus and apparently agnostic ISA seem to summarily reject the Harvard > Architecure... > > My question is - was there tension around Harvard and Von Neumann > architectures in Unix circles and if so, how was it resolved? > > Thanks, > > Will I don't know how to answer this question directly but in my opinion the distinction between von Neumann and Harvard architecture machines became moot with the introduction of memory management units. For all intents and purposes instructions were separate from data from the PDP 11/70 on. Jon From ron at ronnatalie.com Sat Nov 25 06:18:10 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Fri, 24 Nov 2017 15:18:10 -0500 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' In-Reply-To: References: <20171124170131.DC6921F968@orac.inputplus.co.uk> Message-ID: <01da01d36561$595f7ea0$0c1e7be0$@ronnatalie.com> I remember in 1990 we got our first 1Gig drive, I paid $1000 for it. ($1/MB). One of the sales guys I worked with had a unit of storage called the “Costco Terabyte.” How much one terabyte of storage costs at Costco. When we started tracking it, it was around $5000. It was down about $40 last I checked. From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Henry Bent Sent: Friday, November 24, 2017 1:17 PM To: Nelson H. F. Beebe Cc: TUHS main list Subject: Re: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' On 24 November 2017 at 13:06, Nelson H. F. Beebe wrote: P.S. In 1990, we filled a dumpster with 9-track tapes that we had to abandon because of our move to new hardware that lacked such a drive, and because our new disk system had insufficent disk space to preserve their contents. I have since regretted that decision many times, because a lot of stuff was lost forever. The maximum capacity of 6250-bpi 9-track tapes was about 100MB to 170MB. A thousand such tapes would have needed just 100GB to 170GB, an amount of space that I can now buy in Utah for about US$4 (based on a local store offering of $94 for a 4TB USB-3 attached disk about the size of a paperback thriller). Sure, but how much would 170GB of storage have cost in 1990? And what would have been the cost to mirror it, or to back it up on to a more modern tape format? Was that data really worth tens of thousands of dollars? -Henry -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Sat Nov 25 07:43:42 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Fri, 24 Nov 2017 16:43:42 -0500 (EST) Subject: [TUHS] Harvard and Von Neumann Architectures and Unix Message-ID: <20171124214342.A4A8818C0D0@mercury.lcs.mit.edu> > From: Will Senn > I am curious about how the Harvard Architecture relates to Unix, > historically. If the Harvard Architecture is predicated on the > separation of code from data in order to prevent self-modifying code (my > interpretation) That's not the 'dictionary' definition, which is 'separate paths for instructions and data'. But let's go with the 'no self-modifying code' one for the moment. The thing is that self-modifying code is pretty much an artifact of the dawn of computers, before the economics of gates moved from that of tubes, to transistors, and also before people understood how important good support for subroutines was. (This latter is a reference to how Whirlwind did subroutines, with self-modifying code.) Once people had index registers, and lots of registers in general, self-modifying code (except for a few small, special hacks like bootstraps which had to fit in tiny spaces) became as dead as the dodo. It's just a Bad Idea. > then it would seem to me to be somewhat at odds with a Unix philosophy > of extreme abstraction (code, data, it's all 0's and 1's, after all). The people who built Unix were fundamentally very practical. Self-modifing code is not 'practical'. (And note that Unix from V4: http://minnie.tuhs.org/cgi-bin/utree.pl?file=V4/nsys/ken/text.c onward has support for pure text - for practical reasons). > the PDP-11 itself, with the Unibus and apparently agnostic ISA seem to > summarily reject the Harvard Architecure... You could say that of a zillion computers. The only recent computer I can think of offhand with separate instruction and data paths was the AMD 42K (nice chip, I used it in a product we built at Proteon). They had separate ports for instructions and data purely for performance reasons. (Our card had a pathway which allowed the CPU to write the instruction memory, needed during booting, obviously; the details as to how we did it escape me now.) > From: Jon Steinhart > For all intents and purposes instructions were separate from data from > the PDP 11/70 on. s/70/45/. And the other -11 memory management (as on the /40, /23, etc) does allow for execute-only 'segments' (they call them 'pages' in the later versions of the manual, but they're not) - again, separating code from data. Unix used this for shared pure texts. And note that those machines with separate I+D space don't meet the dictionary definition either, because they only have one bus from the CPU to memory, shared between data and instruction fetches. Noel From jon at fourwinds.com Sat Nov 25 07:50:17 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Fri, 24 Nov 2017 13:50:17 -0800 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171124214342.A4A8818C0D0@mercury.lcs.mit.edu> References: <20171124214342.A4A8818C0D0@mercury.lcs.mit.edu> Message-ID: <201711242150.vAOLoHCg026295@darkstar.fourwinds.com> Noel Chiappa writes: > The thing is that self-modifying code is pretty much an artifact of the dawn > of computers, before the economics of gates moved from that of tubes, to > transistors, and also before people understood how important good support for > subroutines was. (This latter is a reference to how Whirlwind did subroutines, > with self-modifying code.) Once people had index registers, and lots of > registers in general, self-modifying code (except for a few small, special > hacks like bootstraps which had to fit in tiny spaces) became as dead as the > dodo. > > It's just a Bad Idea. The one practical and Good Idea place for self-modifying code that I encountered was the software implementation of floating-point for 516-TSS runnning on the Honeywell 516. Our code modified the count in the shift instructions for normalization. Any other approach would have involved looping. Granted, an instruction set that took the shift count from a separate register would have made this unnecessary but that's not what the 516 had. Jon From mike.ab3ap at gmail.com Sat Nov 25 08:20:22 2017 From: mike.ab3ap at gmail.com (Mike Markowski) Date: Fri, 24 Nov 2017 17:20:22 -0500 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171124214342.A4A8818C0D0@mercury.lcs.mit.edu> References: <20171124214342.A4A8818C0D0@mercury.lcs.mit.edu> Message-ID: On 11/24/2017 04:43 PM, Noel Chiappa wrote: > The thing is that self-modifying code is pretty much an artifact of the dawn > of computers, [...] > > It's just a Bad Idea. But what devious exam questions come from it! :-) Mike Markowski From dave at horsfall.org Sat Nov 25 08:31:45 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sat, 25 Nov 2017 09:31:45 +1100 (EST) Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: References: <20171124214342.A4A8818C0D0@mercury.lcs.mit.edu> Message-ID: On Fri, 24 Nov 2017, Mike Markowski wrote: >> The thing is that self-modifying code is pretty much an artifact of the >> dawn of computers, [...] >> >> It's just a Bad Idea. > > But what devious exam questions come from it! :-) You too, huh? :-) -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From dave at horsfall.org Sat Nov 25 08:46:37 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sat, 25 Nov 2017 09:46:37 +1100 (EST) Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' In-Reply-To: <20171124170131.DC6921F968@orac.inputplus.co.uk> References: <20171124170131.DC6921F968@orac.inputplus.co.uk> Message-ID: On Fri, 24 Nov 2017, Ralph Corderoy wrote: > I too find interesting pages have disappeared in later years so visit > archive.org and have them take a copy for me, and everyone else. And there'll be hell to pay if Dennis' page is ever removed. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From krewat at kilonet.net Sat Nov 25 08:57:18 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Fri, 24 Nov 2017 17:57:18 -0500 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' In-Reply-To: <20171124170131.DC6921F968@orac.inputplus.co.uk> References: <20171124170131.DC6921F968@orac.inputplus.co.uk> Message-ID: On 11/24/2017 12:01 PM, Ralph Corderoy wrote: > I too find interesting pages have disappeared in later years so visit > archive.org and have them take a copy for me, and everyone else. > Don't rely on outside entities to archive content. Mirror it, and put it up yourself. If anyone needs free hosting, let me know. art k. From pnr at planet.nl Sat Nov 25 09:52:00 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Sat, 25 Nov 2017 00:52:00 +0100 Subject: [TUHS] TCP/IP networking in 8th edition unix References: <4B74ABBE-BA03-4D4B-B8C1-B3CE9A6D83CE@planet.nl> Message-ID: Found a post by dmr about this in the 'net.unix-wizards' newsgroup: https://groups.google.com/forum/#!topicsearchin/net.unix-wizards/subject$3Astreams/net.unix-wizards/b7W_j_0qASU It would seem that my understanding of it is indeed how dmr designed it. At the end of the post there is an example: "For example, from my machine, I can type "rlogin purdy" and connect to a Sequent machine running 4.2; the TCP connection goes over Datakit to machine "research" where it is gatewayed to a local ethernet that purdy is connected to." I'm not quite sure how on the Sequent machine the Datakit channel would be hooked up to the 4.2BSD TCP stack. Perhaps something equivalent to e.g. 'SLiRP' was used, perhaps there was a pseudo device that hooked into the network interface layer. Paul Begin forwarded message: > From: Paul Ruizendaal > Subject: TCP/IP networking in 8th edition unix > Date: 22 November 2017 0:41:27 GMT+01:00 > To: TUHS main list > > > I'm trying to figure out how tcp/ip networking worked in 8th edition Unix. > > I'm starting from dmr's paper about streams (http://cm.bell-labs.co/who/dmr/st.html), the V8 man pages (http://man.cat-v.org/unix_8th/3/) and browsing the source code (tarball here http://www.tuhs.org/Archive/Distributions/Research/Dan_Cross_v8/). > > In the below I use 'socket' to mean a file descriptor bound to a network connection. My current understanding is like this: > > [... details removed ...] > Anybody on the list with 8th edition experience who can confirm that the above understanding is about correct? > > Paul > > > From davida at pobox.com Sat Nov 25 10:29:14 2017 From: davida at pobox.com (David Arnold) Date: Sat, 25 Nov 2017 11:29:14 +1100 Subject: [TUHS] Storage costs (was: Re: Spell - was tmac: Move macro diagnostics away from `quotes') In-Reply-To: <01da01d36561$595f7ea0$0c1e7be0$@ronnatalie.com> References: <20171124170131.DC6921F968@orac.inputplus.co.uk> <01da01d36561$595f7ea0$0c1e7be0$@ronnatalie.com> Message-ID: The Quantum Lightning 730MB drives were the tipping point for me — likely around 1994/1995? They were readily available for just under AUD1/MB for the 50-pin narrow SCSI-2 version. I bought heaps of them, and still have maybe half a dozen spinning today. d > On 25 Nov 2017, at 07:18, Ron Natalie wrote: > > I remember in 1990 we got our first 1Gig drive, I paid $1000 for it. ($1/MB). > One of the sales guys I worked with had a unit of storage called the “Costco Terabyte.” How much one terabyte of storage costs at Costco. > When we started tracking it, it was around $5000. It was down about $40 last I checked. >   <> > From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Henry Bent > Sent: Friday, November 24, 2017 1:17 PM > To: Nelson H. F. Beebe > Cc: TUHS main list > Subject: Re: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' > > On 24 November 2017 at 13:06, Nelson H. F. Beebe > wrote: >> P.S. In 1990, we filled a dumpster with 9-track tapes that we had to >> abandon because of our move to new hardware that lacked such a drive, >> and because our new disk system had insufficent disk space to preserve >> their contents. >> >> I have since regretted that decision many times, because a lot of >> stuff was lost forever. >> >> The maximum capacity of 6250-bpi 9-track tapes was about 100MB to >> 170MB. A thousand such tapes would have needed just 100GB to 170GB, >> an amount of space that I can now buy in Utah for about US$4 (based on >> a local store offering of $94 for a 4TB USB-3 attached disk about the >> size of a paperback thriller). > > Sure, but how much would 170GB of storage have cost in 1990? And what would have been the cost to mirror it, or to back it up on to a more modern tape format? Was that data really worth tens of thousands of dollars? > > -Henry -------------- next part -------------- An HTML attachment was scrubbed... URL: From steve at quintile.net Sat Nov 25 10:57:40 2017 From: steve at quintile.net (Steve Simon) Date: Sat, 25 Nov 2017 00:57:40 +0000 Subject: [TUHS] Storage costs (was: Re: Spell - was tmac: Move macro diagnostics away from `quotes') In-Reply-To: Message-ID: <40d693c678bb4d8eadaee413720da9ab@quintile.net> The Disks that stick in my memory where 4Gb scsi drives from IBM, I forget the model number - this would have been 1996-ish. They had been lubricated with the wrong viscosity oil. Over time the oil would flood out over the top platter, though this didn't seem to stop them working. However when you powered them down they would not spin up again as the heads would stick to the platter. They also made a horrific chattering noise as they tried to start. The IBM service engineer's solution was to thump them with the but of his screwdriver and they would (usually) spin up! We swapped them out pretty sharpish after that. We had dozens attached to a pair of SGI Origins running back-to-back. Thankfully most disks lived long enough to be copied and those that didn't proved the worth of the DLT tapes. -Steve From doug at cs.dartmouth.edu Sat Nov 25 13:14:45 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Fri, 24 Nov 2017 22:14:45 -0500 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix Message-ID: <201711250314.vAP3Ej0S023901@coolidge.cs.Dartmouth.EDU> > The thing is that self-modifying code is pretty much an artifact of the dawn > of computers, [...] > > It's just a Bad Idea. Surely JIT compiling must count as self-modifying code. Optimal code for bitblt (raster block transfers) in the Blit From bakul at bitblocks.com Sat Nov 25 13:25:15 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Fri, 24 Nov 2017 19:25:15 -0800 Subject: [TUHS] Spell - was tmac: Move macro diagnostics away from `quotes' In-Reply-To: <201711230105.vAN15NI6026629@coolidge.cs.Dartmouth.EDU> References: <201711230105.vAN15NI6026629@coolidge.cs.Dartmouth.EDU> Message-ID: On Nov 22, 2017, at 5:05 PM, Doug McIlroy wrote: > > Steve's program was good, but the dictionary isn't an ideal source > for real text, which abounds in proper names and terms of art. > It also has a lot of rare words that don't pull their weight in > a spell checker, and some attractive nuisances, especially obscure > short words from Scots, botany, etc, which are more likely to > arise in everyday text as typos than by intent. Given the basic > success of Steve's program, I undertook to make a more useful > spelling list, along with more vigorous affix stripping (and a > stop list to avert associated traps, e.g. "presenation" = > pre+senate+ion"). That has been described in Bentley's "Programming > Pearls" and in http://www.cs.dartmouth.edu/~doug/spell.pdf. This is quite interesting to me. A while ago I looked into building a spell checker for Gujarati (a Sanskrit based language) and found it to be a complicated affair -- words can have multiple suffixes since the Guj. equivalents of from/to/in/ etc prepositions are tacked on at the end of a word. But the same endings can also appear in normal words. And there are other complications.... Even though the language is phonetic, mistakes of using the wrong form of long/short vowel signs are common. After reading your paper I am tempted to revive the effort. From jon at fourwinds.com Sat Nov 25 14:16:12 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Fri, 24 Nov 2017 20:16:12 -0800 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <201711250314.vAP3Ej0S023901@coolidge.cs.Dartmouth.EDU> References: <201711250314.vAP3Ej0S023901@coolidge.cs.Dartmouth.EDU> Message-ID: <201711250416.vAP4GCmX009002@darkstar.fourwinds.com> Doug McIlroy writes: > Optimal code for bitblt (raster block transfers) in the Blit Oh yeah, forgot about this one. I did a version of this for the 68020 which was blazingly fast when the generated code fit into the instruction cache. Jon From rminnich at gmail.com Sat Nov 25 15:17:35 2017 From: rminnich at gmail.com (ron minnich) Date: Sat, 25 Nov 2017 05:17:35 +0000 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <201711250416.vAP4GCmX009002@darkstar.fourwinds.com> References: <201711250314.vAP3Ej0S023901@coolidge.cs.Dartmouth.EDU> <201711250416.vAP4GCmX009002@darkstar.fourwinds.com> Message-ID: Self modifying code is in your life every day, if you use Linux. There was a pretty nice talk on it a few years back at ELC. On Fri, Nov 24, 2017 at 8:17 PM Jon Steinhart wrote: > Doug McIlroy writes: > > Optimal code for bitblt (raster block transfers) in the Blit > > Oh yeah, forgot about this one. I did a version of this for > the 68020 which was blazingly fast when the generated code > fit into the instruction cache. > > Jon > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralph at inputplus.co.uk Sun Nov 26 00:23:04 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Sat, 25 Nov 2017 14:23:04 +0000 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <201711250314.vAP3Ej0S023901@coolidge.cs.Dartmouth.EDU> References: <201711250314.vAP3Ej0S023901@coolidge.cs.Dartmouth.EDU> Message-ID: <20171125142304.5713D1F974@orac.inputplus.co.uk> Hi Doug, > Surely JIT compiling must count as self-modifying code. If it does, then my computer just runs one program from when I turn it on. It switches memory formats and then is forever extending itself and throwing chunks away. _The Story of Mel_ about self-modifying code is well known. What some that read it a long time ago might not know... Mel has been identified. http://www.catb.org/jargon/html/story-of-mel.html -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From jnc at mercury.lcs.mit.edu Sun Nov 26 00:24:24 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Sat, 25 Nov 2017 09:24:24 -0500 (EST) Subject: [TUHS] Harvard and Von Neumann Architectures and Unix Message-ID: <20171125142424.3518A18C0D9@mercury.lcs.mit.edu> > From: Doug McIlroy > Optimal code for bitblt (raster block transfers) in the Blit Interesting case. I'm not familiar with BitBLT codes, do they actually modify the existing program, or rather do they build small custom ones? Only the former is what I was thinking of. Noel From ron at ronnatalie.com Sun Nov 26 01:43:36 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Sat, 25 Nov 2017 10:43:36 -0500 Subject: [TUHS] TTY8 Message-ID: <024d01d36604$28b59ed0$7a20dc70$@ronnatalie.com> OK, we were discussing terminals this morning with some other old guys. If I knew the answer to this I've forgotten. Every PDP-11 UNIX I ever used had the console KL-11 as /dev/tty8. The question is why. My guess is that for some reason an 8 terminal multiplexor (DZ-11?) was stuck at tty0, but why? -------------- next part -------------- An HTML attachment was scrubbed... URL: From stewart at serissa.com Sun Nov 26 01:58:53 2017 From: stewart at serissa.com (Lawrence Stewart) Date: Sat, 25 Nov 2017 10:58:53 -0500 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171125142424.3518A18C0D9@mercury.lcs.mit.edu> References: <20171125142424.3518A18C0D9@mercury.lcs.mit.edu> Message-ID: Slightly related to Unix I suppose: Linux kernels generate page table walking code from a little assembler inside the kernel that is run at boot time. > On 2017, Nov 25, at 9:24 AM, Noel Chiappa wrote: > >> From: Doug McIlroy > >> Optimal code for bitblt (raster block transfers) in the Blit > > Interesting case. I'm not familiar with BitBLT codes, do they actually modify > the existing program, or rather do they build small custom ones? Only the > former is what I was thinking of. > > Noel > From lars at nocrew.org Sun Nov 26 02:10:59 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Sat, 25 Nov 2017 16:10:59 +0000 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171125142424.3518A18C0D9@mercury.lcs.mit.edu> (Noel Chiappa's message of "Sat, 25 Nov 2017 09:24:24 -0500 (EST)") References: <20171125142424.3518A18C0D9@mercury.lcs.mit.edu> Message-ID: <7windy9w4s.fsf@junk.nocrew.org> Noel Chiappa wrote; > Doug McIlroy wrote: > > Optimal code for bitblt (raster block transfers) in the Blit > Interesting case. I'm not familiar with BitBLT codes, do they actually > modify the existing program, or rather do they build small custom > ones? They could modify existing programs using a blitter. :-) This has actually been done, but for generating software synthesizer code. The blitter would be used to update the mixing code every time the output frequency of a sound channel changed. From jnc at mercury.lcs.mit.edu Sun Nov 26 02:48:54 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Sat, 25 Nov 2017 11:48:54 -0500 (EST) Subject: [TUHS] TTY8 Message-ID: <20171125164854.681CF18C0D0@mercury.lcs.mit.edu> > From: "Ron Natalie" > Every PDP-11 UNIX I ever used had the console KL-11 as /dev/tty8. > The question is why. Blast! I have this memory of reading an explanation for that somewhere - but I cannot remember what it was, or where! I've done a grep through my hoard of Unix documents, looking for "tty8", but no hits. Noel From doug at cs.dartmouth.edu Sun Nov 26 03:34:47 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Sat, 25 Nov 2017 12:34:47 -0500 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix Message-ID: <201711251734.vAPHYlaH030631@coolidge.cs.Dartmouth.EDU> >From the discussion of self-modifying code: >> Optimal code for bitblt (raster block transfers) in the Blit > > Interesting case. I'm not familiar with BitBLT codes, do they actually modify > the existing program, or rather do they build small custom ones? Only the > > former is what I was thinking of. > It built small custom fragments of code. But if that had been in D space, it couldn't have been executed. >> Surely JIT compiling must count as self-modifying code. > > If it does, then my computer just runs one program from when I turn it > on. It switches memory formats and then is forever extending itself and > throwing chunks away. Exactly. That is the essence of stored-program computers. The exec system call is self-modification with a vengeance. Fill memory-and-execute is the grandest coercion I know. What is data one instant is code the next. It's all a matter of viewpoint and scale. Where is the boundary between changing one instruction and changing them all? Or is this boundary a figment of imagination? Doug From usotsuki at buric.co Wed Nov 15 06:11:57 2017 From: usotsuki at buric.co (Steve Nickolas) Date: Tue, 14 Nov 2017 15:11:57 -0500 (EST) Subject: [TUHS] Origin of 'kill -9'? In-Reply-To: <20171114200751.3536621358@orac.inputplus.co.uk> References: <20171114200751.3536621358@orac.inputplus.co.uk> Message-ID: On Tue, 14 Nov 2017, Ralph Corderoy wrote: > Hi Dan, > >> Is the reason that SIGKILL has the numeric value 9 > > If you look at signals 1 to 8 they could all be caught, etc. > 9 was added so to thwart this and just took the next number AFAIK. > Doesn't 9 have tie-ins to "death" in Japan? ISTR some marketing > avoiding it in version numbers. I think 9 has ties to "pain", but the number that has connection to "death" in Japanese is 4 (四 shi, "four", which sounds like 死 shi, "death"). -嘘. From nw at retrocomputingtasmania.com Sun Nov 26 04:16:37 2017 From: nw at retrocomputingtasmania.com (Nigel Williams) Date: Sun, 26 Nov 2017 05:16:37 +1100 Subject: [TUHS] TTY8 In-Reply-To: <024d01d36604$28b59ed0$7a20dc70$@ronnatalie.com> References: <024d01d36604$28b59ed0$7a20dc70$@ronnatalie.com> Message-ID: On Sun, Nov 26, 2017 at 2:43 AM, Ron Natalie wrote: > Every PDP-11 UNIX I ever used had the console KL-11 as /dev/tty8. The > question is why. My guess is that for some reason... DC-11 was assigned tty[0-7]abcd DH-11 was tty[f-u] KL-11/DL-11 was tty8 or console Weirdly the dc.c driver has space for 14-lines. What was /dev/ttye used for? http://man.cat-v.org/unix-6th/4/dc https://github.com/eunuchs/unix-archive/blob/master/PDP-11/Trees/V6/usr/sys/dmr/dc.c http://man.cat-v.org/unix-6th/4/kl http://man.cat-v.org/unix-6th/4/dh From clemc at ccc.com Sun Nov 26 05:47:44 2017 From: clemc at ccc.com (Clem cole) Date: Sat, 25 Nov 2017 14:47:44 -0500 Subject: [TUHS] TTY8 In-Reply-To: <024d01d36604$28b59ed0$7a20dc70$@ronnatalie.com> References: <024d01d36604$28b59ed0$7a20dc70$@ronnatalie.com> Message-ID: DZ did yet exist. They were developed as part of 11/34 project - iirc Jeff Mitchel had his hand in them. In the begin of the pdp11 there was the DC11, the KL/DL11 and the DH11 as traditional serial ports using a Gordon Bell invented and DEC patented UART - which came from the PDP8 program :-) IIRC Ken originally had statically named the serial devices for Unix although I’ve forgotten the assignment but the DL11 was tty8 and tty9 and DC11 started at 0. DL11 were terrible I/O devices which is why the DH was created. The idea from DEC was that you were supposed to use DH/DM pairs to support your terminals and modems on pdp11s. I suspect Ken/ BTL was following the DEC hardware rules and just modeled the Unix naming to match. In practice most sites had a single KL as the console and the used DZ and DH’s and had a script/makefile in /dev to create banks of device 8 or 16 at a time. Btw. I’ve forgotten the details the DC as we did not use them at CMU nor Tektronix or UCB by the time I got there [We used either real DHs sometimes DZ but not if I could stop it or at CMU a locally created device called a ASLI. Later once they came on the scene most Unix sites I knew used Able DHDMs because they were cheaper than DZs, took less bus space (single card for 16 ports) and of course were DMA so they worked better. FYI not to complain my small disappointment with simh has been the DH emulator. The sim folks are assuming dz so never really worked to fix it. It’s on my Long want to do list to figure out why. Sent from my PDP-7 Running UNIX V0 expect things to be almost but not quite. > On Nov 25, 2017, at 10:43 AM, Ron Natalie wrote: > > OK, we were discussing terminals this morning with some other old guys. If I knew the answer to this I’ve forgotten. > Every PDP-11 UNIX I ever used had the console KL-11 as /dev/tty8. The question is why. My guess is that for some reason > an 8 terminal multiplexor (DZ-11?) was stuck at tty0, but why? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From steve at quintile.net Sun Nov 26 05:59:32 2017 From: steve at quintile.net (Steve Simon) Date: Sat, 25 Nov 2017 19:59:32 +0000 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171125142424.3518A18C0D9@mercury.lcs.mit.edu> Message-ID: > Interesting case. I'm not familiar with BitBLT codes, do they actually modify > the existing program, or rather do they build small custom ones? Only the > former is what I was thinking of. It is a typical of designs by Rob Pike, a thing of great elegance. See here: https://9p.io/cm/cs/doc/87/archtr.ps.gz -Steve From henry.r.bent at gmail.com Sun Nov 26 07:54:43 2017 From: henry.r.bent at gmail.com (Henry Bent) Date: Sat, 25 Nov 2017 21:54:43 -0000 Subject: [TUHS] Last officially distributed and currently available BSD version In-Reply-To: <8224db85-74ee-a2e8-d219-e405a00105b7@e-bbes.com> References: <8224db85-74ee-a2e8-d219-e405a00105b7@e-bbes.com> Message-ID: On 22 October 2017 at 13:00, emanuel stiebler wrote: > On 2017-10-22 10:51, Dan Cross wrote: > > At one point, I had a copy of a bootable exabyte tape with 4.4-encumbered >> installation and source images for SPARC, specifically sun4c machines, that >> I had liberated from somewhere. My understanding was that the reference >> hardware at Berkeley was 68030- and 68040-based HP 9000 machines, >> > > Which models exactly? > > 4.4BSD hp300 DOC/Options mentions the following: HP320 Support for old hp320 machines: 16mhz 68020, HP MMU, 16mhz 68881 and VAC. Compiles in support for a VAC, HP MMU, and the 98620A 16-bit DMA channel. Forces the definition of HAVEVAC. HP350 Support for old hp350 machines: 25mhz 68020, HP MMU, 20mhz 68881 and VAC. Compiles in support for a VAC and the HP MMU. Differs from HP320 in that it has no support for 16-bit DMA controller. Forces the definition of HAVEVAC. HP330 Support for old hp330 (and 318/319) machines: 16mhz 68020, 68551 PMMU and 16mhz 68881. Compiles in support for PMMU. HP360 Support for old hp360 (and 340) machines: 25mhz 68030+MMU and 25mhz 68882. Compiles in support for PMMU and 68030. Differs from HP330 in support for 68030 on-chip data cache. HP370 Support for old hp370 (and current 345/375/400) machines: 33 (50) mhz 68030+MMU and 33 (50) mhz 68882. Compiles in support for PMMU, 68030 and off-chip physically addressed cache. Differs from 360 in only one place, in dealing with flushing the external cache. HP380 Support for "current" hp380/425 (and 433) machines: 25 (33) mhz 68040 with MMU/FPU. Compiles in support for 68040. -Henry -------------- next part -------------- An HTML attachment was scrubbed... URL: From ches at cheswick.com Sun Nov 26 07:55:04 2017 From: ches at cheswick.com (William Cheswick) Date: Sat, 25 Nov 2017 16:55:04 -0500 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <201711242150.vAOLoHCg026295@darkstar.fourwinds.com> References: <20171124214342.A4A8818C0D0@mercury.lcs.mit.edu> <201711242150.vAOLoHCg026295@darkstar.fourwinds.com> Message-ID: On CDC machines, the return jump (RJ) instruction generally used to call subroutines deposited a jump instruction (EQ B0,B0,caller+1) in the called routine and jumped to the word after it. Clearly, languages like Pascal didn’t use that. I seem to recall that the CDC SORT routine built and executed sort computations in memory, a la bitblt, which came a few years later. Of course, CDC had no concept of I and D space. We aren’t talkin’ Burroughs here…. ches From ches at cheswick.com Sun Nov 26 07:50:05 2017 From: ches at cheswick.com (William Cheswick) Date: Sat, 25 Nov 2017 16:50:05 -0500 Subject: [TUHS] TCP/IP networking in 8th edition unix In-Reply-To: References: <4B74ABBE-BA03-4D4B-B8C1-B3CE9A6D83CE@planet.nl> Message-ID: <114404DD-68BB-43EF-B5B1-B0CD38852FDC@cheswick.com> > On 24Nov 2017, at 6:52 PM, Paul Ruizendaal wrote: > > Found a post by dmr about this in the 'net.unix-wizards' newsgroup: > https://groups.google.com/forum/#!topicsearchin/net.unix-wizards/subject$3Astreams/net.unix-wizards/b7W_j_0qASU > > It would seem that my understanding of it is indeed how dmr designed it. > > At the end of the post there is an example: "For example, from my machine, I can type "rlogin purdy" and connect to a Sequent machine running 4.2; the TCP connection goes over Datakit to machine "research" where it is gatewayed to a local ethernet that purdy is connected to." > > I'm not quite sure how on the Sequent machine the Datakit channel would be hooked up to the 4.2BSD TCP stack. Perhaps something equivalent to e.g. 'SLiRP' was used, perhaps there was a pseudo device that hooked into the network interface layer. > > Paul Nope, not IP over Datakit, as I recall. It was quite interesting to work at a site (Bell Labs) where there were two distinct network technologies. We connected to a lot of familiar services through Datakit using the application level. For example, the smtp client in upas connected to an SMTP service thus: if ((s = ipcopen(path, "")) < 0) { where path might be one of: tcp!bowell!smtp dk!coma/astro/nj!smtp inet!ftp.uu.net !smtp On V10 Unix and in Plan 9, these were handled by stuff that Dave Presotto wrote. I distributed this code throughout internal AT&T. The first is the obvious tcp connection. Datakit connected to a server running in V10’s equivalent to inetd. The last one was a proxy connection, a circuit-level gateway running on a particular host that I supported for many years. It had a little protocol and initiated the tcp link from the proxy machine. These proxy machines had some interesting features. For one, I could log the destination of volume of each connection. For another, all connections to a sensitive site (think porn) seemed to come from the proxy host. Some porn sites showed their top ten users, and several major corporations were represented there. This library was socks about seven years before socks, originally written by Presotto and Howard Trickey. The relay program was originally called “gated”, but that wouldn’t do after a while. I renamed it “proxyd”, and that is the first use of “proxy" in this context that I am aware of. If you were on AT&T’s intranet and wanted to connect externally, you ripped out the entire socket dance and replaced it with an ipcopen call. I also distributed common modified clients, like ptelnet, pftp, pfinger, etc. I still have all this code, and I suppose it ought to go in an archival repository. I can’t imagine that AT&T/Lucent/Alcatel/Nokia would care at this point. Anyone want it? -------------- next part -------------- An HTML attachment was scrubbed... URL: From bakul at bitblocks.com Sun Nov 26 07:59:10 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Sat, 25 Nov 2017 13:59:10 -0800 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171125142424.3518A18C0D9@mercury.lcs.mit.edu> References: <20171125142424.3518A18C0D9@mercury.lcs.mit.edu> Message-ID: > On Nov 25, 2017, at 6:24 AM, Noel Chiappa wrote: > >> From: Doug McIlroy > >> Optimal code for bitblt (raster block transfers) in the Blit > > Interesting case. I'm not familiar with BitBLT codes, do they actually modify > the existing program, or rather do they build small custom ones? Only the > former is what I was thinking of. This was the only way we could handle four 9600 baud serial connections on a 5.5Mhz 68000 processor. Back then the UART we used only buffered one character (also the case with the old 16450) - so one interrupt per char. And we "discovered" devices at runtime. So Yost wrote some code to hook up customized interrupt handlers that stuffed a larger char buffer specific to each UART. Essentially "partially evaluated" interrupt handler code to minimize memory accesses. A separate s/w interrupt was used to service the larger buffers. This was done at boot time but another instance of self-modifying code (that is not a virus) at runtime was by the old gcc compiler - don't know what it does now - but pointer to a GNU C's lexically nested function was actually a piece of code that was constructed at runtime with hardwired static link in it (recall that a nested function can reference variables from its lexical environment but normal C function pointers are represented as a single pointer). From dave at horsfall.org Sun Nov 26 09:15:23 2017 From: dave at horsfall.org (Dave Horsfall) Date: Sun, 26 Nov 2017 10:15:23 +1100 (EST) Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: References: <20171124214342.A4A8818C0D0@mercury.lcs.mit.edu> <201711242150.vAOLoHCg026295@darkstar.fourwinds.com> Message-ID: On Sat, 25 Nov 2017, William Cheswick wrote: > On CDC machines, the return jump (RJ) instruction generally used to call > subroutines deposited a jump instruction (EQ B0,B0,caller+1) in the > called routine and jumped to the word after it. Clearly, languages like > Pascal didn’t use that. Ahhh; that brings back fond memories of my Cyber-72 days, and how easily we CompSci kiddies broke into KRONOS...[*] One of my favourite machines was the PDP-8; the JSR instruction planted the return address in the first word and jumped to the second word, with a return being done (IIRC) by an indirect jump to the first word. Recursion? What's that? [*] Can't remember it now, but (on an LA-36 Duckwriter) it was something like: COMMON POOL RELEASE POOL (intr) (Could be abbreviated to "COMMO POO" and "REL POO" for those with a sick sense of humour, which was most of us.) and you got system privileges... -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From gregg.drwho8 at gmail.com Sun Nov 26 09:21:27 2017 From: gregg.drwho8 at gmail.com (Gregg Levine) Date: Sat, 25 Nov 2017 18:21:27 -0500 Subject: [TUHS] TCP/IP networking in 8th edition unix In-Reply-To: <114404DD-68BB-43EF-B5B1-B0CD38852FDC@cheswick.com> References: <4B74ABBE-BA03-4D4B-B8C1-B3CE9A6D83CE@planet.nl> <114404DD-68BB-43EF-B5B1-B0CD38852FDC@cheswick.com> Message-ID: Hello! Ordinarily I would say "Yes!", but given this list, I'd promptly suggest that if it isn't already available via our host's site, then he's got first dibs, and then I'll get my copy for a local mirror. But that's definitely a very interesting method of networking hardware together then. ----- Gregg C Levine gregg.drwho8 at gmail.com "This signature fought the Time Wars, time and again." On Sat, Nov 25, 2017 at 4:50 PM, William Cheswick wrote: > On 24Nov 2017, at 6:52 PM, Paul Ruizendaal wrote: > > Found a post by dmr about this in the 'net.unix-wizards' newsgroup: > https://groups.google.com/forum/#!topicsearchin/net.unix-wizards/subject$3Astreams/net.unix-wizards/b7W_j_0qASU > > It would seem that my understanding of it is indeed how dmr designed it. > > At the end of the post there is an example: "For example, from my machine, I > can type "rlogin purdy" and connect to a Sequent machine running 4.2; the > TCP connection goes over Datakit to machine "research" where it is gatewayed > to a local ethernet that purdy is connected to." > > I'm not quite sure how on the Sequent machine the Datakit channel would be > hooked up to the 4.2BSD TCP stack. Perhaps something equivalent to e.g. > 'SLiRP' was used, perhaps there was a pseudo device that hooked into the > network interface layer. > > Paul > > > Nope, not IP over Datakit, as I recall. It was quite interesting to work at > a site (Bell Labs) where there were two distinct network technologies. > > We connected to a lot of familiar services through Datakit using the > application level. For example, the smtp client in upas connected to an > SMTP service thus: > if ((s = ipcopen(path, "")) < 0) { > where path might be one of: > tcp!bowell!smtp > dk!coma/astro/nj!smtp > inet!ftp.uu.net!smtp > > On V10 Unix and in Plan 9, these were handled by stuff that Dave Presotto > wrote. I distributed this code throughout internal AT&T. > > The first is the obvious tcp connection. Datakit connected to a server > running in V10’s equivalent to inetd. The last one was a proxy connection, > a circuit-level gateway running on a particular host that I supported for > many years. It had a little protocol and initiated the tcp link from the > proxy machine. > > These proxy machines had some interesting features. For one, I could log > the destination of volume of each connection. For another, all connections > to a sensitive site (think porn) seemed to come from the proxy host. Some > porn sites showed their top ten users, and several major corporations were > represented there. > > This library was socks about seven years before socks, originally written by > Presotto and Howard Trickey. The relay program was originally called > “gated”, but that wouldn’t do after a while. I renamed it “proxyd”, and > that is the first use of “proxy" in this context that I am aware of. > > If you were on AT&T’s intranet and wanted to connect externally, you ripped > out the entire socket dance and replaced it with an ipcopen call. I also > distributed common modified clients, like ptelnet, pftp, pfinger, etc. > > I still have all this code, and I suppose it ought to go in an archival > repository. I can’t imagine that AT&T/Lucent/Alcatel/Nokia would care at > this point. Anyone want it? > > From brad at anduin.eldar.org Sun Nov 26 10:24:03 2017 From: brad at anduin.eldar.org (Brad Spencer) Date: Sat, 25 Nov 2017 19:24:03 -0500 Subject: [TUHS] TCP/IP networking in 8th edition unix In-Reply-To: <114404DD-68BB-43EF-B5B1-B0CD38852FDC@cheswick.com> (message from William Cheswick on Sat, 25 Nov 2017 16:50:05 -0500) Message-ID: William Cheswick writes: [snip] >> Paul > > Nope, not IP over Datakit, as I recall. It was quite interesting to work at a site (Bell Labs) where there were two distinct network technologies. > > We connected to a lot of familiar services through Datakit using the application level. For example, the smtp client in upas connected to an SMTP service thus: > if ((s = ipcopen(path, "")) < 0) { > where path might be one of: > tcp!bowell!smtp > dk!coma/astro/nj!smtp > inet!ftp.uu.net !smtp > > On V10 Unix and in Plan 9, these were handled by stuff that Dave Presotto wrote. I distributed this code throughout internal AT&T. > > The first is the obvious tcp connection. Datakit connected to a server running in V10’s equivalent to inetd. The last one was a proxy connection, a circuit-level gateway running on a particular host that I supported for many years. It had a little protocol and initiated the tcp link from the proxy machine. > > These proxy machines had some interesting features. For one, I could log the destination of volume of each connection. For another, all connections to a sensitive site (think porn) seemed to come from the proxy host. Some porn sites showed their top ten users, and several major corporations were represented there. > > This library was socks about seven years before socks, originally written by Presotto and Howard Trickey. The relay program was originally called “gated”, but that wouldn’t do after a while. I renamed it “proxyd”, and that is the first use of “proxy" in this context that I am aware of. > > If you were on AT&T’s intranet and wanted to connect externally, you ripped out the entire socket dance and replaced it with an ipcopen call. I also distributed common modified clients, like ptelnet, pftp, pfinger, etc. > > I still have all this code, and I suppose it ought to go in an archival repository. I can’t imagine that AT&T/Lucent/Alcatel/Nokia would care at this point. Anyone want it? I used this code when I worked at 6200 Broad St. in Reynoldsburg. Someone hooked it into the web browsers at the time which would have been Mosaic. At some point I got a hold of the client side code and I "ported" it to NetBSD so I could use utilities when I was dialed back into the company. I think I hooked it into ssh at one point, but it has been a long time, and I don't exactly remember. I know I hooked in the NetBSD ftp and telnet clients. I do know that at 6200, and probably company wide, this whole scheme was replaced by filtering firewalls of some ilk and the proxy gateway was done away with. That would have been early 2000s or so, assuming my memory is not faulty. -- Brad Spencer - brad at anduin.eldar.org - KC8VKS http://anduin.eldar.org - & - http://anduin.ipv6.eldar.org [IPv6 only] From pnr at planet.nl Mon Nov 27 07:28:02 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Sun, 26 Nov 2017 22:28:02 +0100 Subject: [TUHS] TCP/IP networking in 8th edition unix Message-ID: Thanks for explaining that. I think it may be for 10th edition though. I searched for ipcopen() and 'gated' in the 8th edition source and could not find them. In that search I did find a few bits that strongly suggest that IP over Datakit was what was used in late '85 (when dmr posted about this). In /usr/src/cmd/inet/READ_ME there is an example configuration that seems to match with dmr's example. In that file an IP over a Datakit channel appears to be configured. (see http://chiselapp.com/user/pnr/repository/v8unix/artifact/6d09b05c7f06a2cc?ln=119-120) The program 'dkipconfig' sets up a circuit and pushes the IP discipline on the stream, both on the local end and on the remote end. It sets fixed local and remote addresses, much the same as with a 'slip' line. (see http://chiselapp.com/user/pnr/repository/v8unix/artifact/6c5f3267b58721a6?ln=78,91) On Sat, Nov 25, 2017 at 4:50 PM, William Cheswick wrote: > > Nope, not IP over Datakit, as I recall. It was quite interesting to work at > a site (Bell Labs) where there were two distinct network technologies. > > [--snip--] > > This library was socks about seven years before socks, originally written by > Presotto and Howard Trickey. The relay program was originally called > “gated”, but that wouldn’t do after a while. I renamed it “proxyd”, and > that is the first use of “proxy" in this context that I am aware of. > > If you were on AT&T’s intranet and wanted to connect externally, you ripped > out the entire socket dance and replaced it with an ipcopen call. I also > distributed common modified clients, like ptelnet, pftp, pfinger, etc. > > I still have all this code, and I suppose it ought to go in an archival > repository. I can’t imagine that AT&T/Lucent/Alcatel/Nokia would care at > this point. Anyone want it? > From pnr at planet.nl Mon Nov 27 07:43:40 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Sun, 26 Nov 2017 22:43:40 +0100 Subject: [TUHS] Datakit in V7 Message-ID: <8F659865-315C-4E46-BC89-F13B6AEBF890@planet.nl> There are some little bits in the public V7 source code that suggest that it had support for Datakit, but that it was scrubbed from the public release: There is a Datakit header file: http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/dk.h and Datakit state bits are defined in 'sys/tty.h': http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/sys/tty.h Does anyone know if this assumption (Datakit support in V7) is correct? Perhaps more specific, was there a remote login program for V7/Datakit, of for V6/Spider? For V8/Datakit there was 'dcon', but perhaps this was built on earlier programs. (I'm aware of 'cu' of course, but that does not support Datakit or Spider). Being able to login to another host on the network seems so useful that it is hard to believe that a precursor to 'dcon' did not exist for V6 and/or V7. From dot at dotat.at Tue Nov 28 00:50:04 2017 From: dot at dotat.at (Tony Finch) Date: Mon, 27 Nov 2017 14:50:04 +0000 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <6b6fd55e-d1f9-5ee2-42ac-309d6b2923b3@gmail.com> References: <6b6fd55e-d1f9-5ee2-42ac-309d6b2923b3@gmail.com> Message-ID: Will Senn wrote: > In my naive understanding, the PDP-11 itself, with the Unibus and > apparently agnostic ISA seem to summarily reject the Harvard > Architecure... > > My question is - was there tension around Harvard and Von Neumann > architectures in Unix circles and if so, how was it resolved? Well, there were PDP-11 models with split instruction and data address spaces, so you could address 64K of code and 64K of data without overlays. Tony. -- f.anthony.n.finch http://dotat.at/ - I xn--zr8h punycode Shannon, Rockall, Malin, Hebrides, Bailey: North or northwest 5 to 7, occasionally gale 8 except in Shannon. Rough or very rough, occasionally moderate. Squally showers. Good. From jnc at mercury.lcs.mit.edu Tue Nov 28 02:11:41 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 27 Nov 2017 11:11:41 -0500 (EST) Subject: [TUHS] Harvard and Von Neumann Architectures and Unix Message-ID: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> > From: Doug McIlroy > But if that had been in D space, it couldn't have been executed. Along those lines, I was wondering about modern OS's, which I gather for security reasons prevent execution of data, and prevent writing to code. Programs which emit these little 'custom code fragments' (I prefer that term, since they aren't really 'self-modifying code' - which I define as 'a program which _changes_ _existing_ instructions) must have some way of having a chunk of memory into which they can write, but which can also be executed. > Where is the boundary between changing one instruction and changing them > all? Or is this boundary a figment of imagination? Well, the exec() call only overwrites existing instruction memory because of the semantics of process address space in Unix - there's only one, so it has to be over-written. An OS operating in a large segmented single-level memory could implement an exec() as a jump.... BTW, note that although exec() in a single address-space OS is conventionally something the OS does, this functionality _could_ be moved into the user space, provided the right address space primitives were provided by the OS, e.g. 'expand instruction space'. So the exec() code in user space would i) find the executable, ii) see how much of each kind of memory it needs, iii) get the OS to give it a block of memory/address space where the exec() code can live while it's reading in the new code, iv) move itself there, v) use standard read() calls to read the new image in, and then vi) jump to it. Yes, it's probably simpler to implement it in the OS, but if one's goal is to minimize the functionality in the kernel... Noel From lm at mcvoy.com Tue Nov 28 02:50:46 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 27 Nov 2017 08:50:46 -0800 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> References: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> Message-ID: <20171127165046.GD3430@mcvoy.com> On Mon, Nov 27, 2017 at 11:11:41AM -0500, Noel Chiappa wrote: > > From: Doug McIlroy > > > But if that had been in D space, it couldn't have been executed. > > Along those lines, I was wondering about modern OS's, which I gather for > security reasons prevent execution of data, and prevent writing to code. > > Programs which emit these little 'custom code fragments' (I prefer that term, > since they aren't really 'self-modifying code' - which I define as 'a program > which _changes_ _existing_ instructions) must have some way of having a chunk > of memory into which they can write, but which can also be executed. Isn't that how dtrace works? From clemc at ccc.com Tue Nov 28 03:08:08 2017 From: clemc at ccc.com (Clem Cole) Date: Mon, 27 Nov 2017 12:08:08 -0500 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171127165046.GD3430@mcvoy.com> References: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> <20171127165046.GD3430@mcvoy.com> Message-ID: SPICE2 does the same sort of thing (in semi-portable Fortran-IV) On Mon, Nov 27, 2017 at 11:50 AM, Larry McVoy wrote: > On Mon, Nov 27, 2017 at 11:11:41AM -0500, Noel Chiappa wrote: > > > From: Doug McIlroy > > > > > But if that had been in D space, it couldn't have been executed. > > > > Along those lines, I was wondering about modern OS's, which I gather for > > security reasons prevent execution of data, and prevent writing to code. > > > > Programs which emit these little 'custom code fragments' (I prefer that > term, > > since they aren't really 'self-modifying code' - which I define as 'a > program > > which _changes_ _existing_ instructions) must have some way of having a > chunk > > of memory into which they can write, but which can also be executed. > > Isn't that how dtrace works? > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jnc at mercury.lcs.mit.edu Tue Nov 28 03:11:22 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Mon, 27 Nov 2017 12:11:22 -0500 (EST) Subject: [TUHS] Harvard and Von Neumann Architectures and Unix Message-ID: <20171127171122.89ECF18C092@mercury.lcs.mit.edu> > From: Larry McVoy >> they aren't really 'self-modifying code' - which I define as 'a program >> which _changes_ _existing_ instructions > Isn't that how dtrace works? I'm not familiar with dtrace(), but if it modifies some other routine's code, then it would not be "self" modifying, right? Oh, another category, sort of like biological viruses (which are in a grey zone between 'alive' and not): the PDP-11 paper tape bootstrap: http://ana-3.lcs.mit.edu/~jnc/tech/pdp11/bootloader.mac in which the program's own code _is_ modified - but not by program instructions, but by data on the paper tape it is reading in. It's entertainingly convoluted (the copy above should be well-enough commented to make it pretty easy to understand what's going on). Noel From itz at very.loosely.org Tue Nov 28 03:35:15 2017 From: itz at very.loosely.org (Ian Zimmerman) Date: Mon, 27 Nov 2017 09:35:15 -0800 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> References: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> Message-ID: <20171127173515.s5ctvrv7uwvmmee4@matica.foolinux.mooo.com> On 2017-11-27 11:11, Noel Chiappa wrote: > Programs which emit these little 'custom code fragments' (I prefer > that term, since they aren't really 'self-modifying code' - which I > define as 'a program which _changes_ _existing_ instructions) must > have some way of having a chunk of memory into which they can write, > but which can also be executed. As the writable/executable bits are usually in the page table (on linear paged architectures which currently dominate the field), I imagine the answer is dual page mappings. -- Please don't Cc: me privately on mailing lists and Usenet, if you also post the followup to the list or newsgroup. To reply privately _only_ on Usenet, fetch the TXT record for the domain. From imp at bsdimp.com Tue Nov 28 04:14:08 2017 From: imp at bsdimp.com (Warner Losh) Date: Mon, 27 Nov 2017 11:14:08 -0700 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171127165046.GD3430@mcvoy.com> References: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> <20171127165046.GD3430@mcvoy.com> Message-ID: On Mon, Nov 27, 2017 at 9:50 AM, Larry McVoy wrote: > On Mon, Nov 27, 2017 at 11:11:41AM -0500, Noel Chiappa wrote: > > > From: Doug McIlroy > > > > > But if that had been in D space, it couldn't have been executed. > > > > Along those lines, I was wondering about modern OS's, which I gather for > > security reasons prevent execution of data, and prevent writing to code. > > > > Programs which emit these little 'custom code fragments' (I prefer that > term, > > since they aren't really 'self-modifying code' - which I define as 'a > program > > which _changes_ _existing_ instructions) must have some way of having a > chunk > > of memory into which they can write, but which can also be executed. > > Isn't that how dtrace works? > That's not self modifying code. I've written some self-modifying code (I was young, it was sexy, I thought), and it's all about rewriting your own instruction stream. And doing so based on data you get so far. Not every modification of a text page is self-modifying code. dtrace, and every debugger that doesn't have hardware assist debug registers (or overflows them) modifies the text pages to allow breakpoints, watchpoints, tracepoints and the like to work. Even the OS creates code to run at runtime. The signal trampoline that's used to return from a signal handler in BSD is a small bit of code the OS fills in bits of out of a template. It's one of the things that slowed adoption of turning off the X bit for stack pages in response to many of the buffer overflow attacks. On modern architectures, a fair amount of PTE and/or cache dancing needs to happen to make this stuff work sometimes. Some processors make this easy with dual mappings, others are... what's the right word... tedious. Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From stewart at serissa.com Tue Nov 28 04:21:25 2017 From: stewart at serissa.com (Lawrence Stewart) Date: Mon, 27 Nov 2017 13:21:25 -0500 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: References: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> <20171127165046.GD3430@mcvoy.com> Message-ID: > On 2017, Nov 27, at 12:08 PM, Clem Cole wrote: > > SPICE2 does the same sort of thing (in semi-portable Fortran-IV) > > On Mon, Nov 27, 2017 at 11:50 AM, Larry McVoy > wrote: > On Mon, Nov 27, 2017 at 11:11:41AM -0500, Noel Chiappa wrote: > > > From: Doug McIlroy > > > > > But if that had been in D space, it couldn't have been executed. > > > > Along those lines, I was wondering about modern OS's, which I gather for > > security reasons prevent execution of data, and prevent writing to code. > > > > Programs which emit these little 'custom code fragments' (I prefer that term, > > since they aren't really 'self-modifying code' - which I define as 'a program > > which _changes_ _existing_ instructions) must have some way of having a chunk > > of memory into which they can write, but which can also be executed. > > Isn't that how dtrace works? > In POSIX systems, the mprotect(2) syscall can set execute permissions. -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul.winalski at gmail.com Tue Nov 28 04:26:03 2017 From: paul.winalski at gmail.com (Paul Winalski) Date: Mon, 27 Nov 2017 13:26:03 -0500 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: References: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> <20171127165046.GD3430@mcvoy.com> Message-ID: On-chip, all modern x86 processors operate entirely out of a hierarchy of caches, and there are separate caches for instructions and data. Main memory is really merely the first in the "slow access storage" hierarchy. So in that sense I suppose one could consider modern CPUs to be Harvard architecture. -Palu W. From lars at nocrew.org Tue Nov 28 04:30:03 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Mon, 27 Nov 2017 18:30:03 +0000 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: (Lawrence Stewart's message of "Mon, 27 Nov 2017 13:21:25 -0500") References: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> <20171127165046.GD3430@mcvoy.com> Message-ID: <7wtvxf7exg.fsf@junk.nocrew.org> Lawrence Stewart wrote: > Noel Chiappa wrote: >> Programs which emit these little 'custom code fragments' (I prefer >> that term, since they aren't really 'self-modifying code' - which I >> define as 'a program which _changes_ _existing_ instructions) must >> have some way of having a chunk of memory into which they can write, >> but which can also be executed. > > In POSIX systems, the mprotect(2) syscall can set execute permissions. Or if a statically allocated space is ok, just set your pages to rwx in the executable image file. From dave at horsfall.org Tue Nov 28 08:05:19 2017 From: dave at horsfall.org (Dave Horsfall) Date: Tue, 28 Nov 2017 09:05:19 +1100 (EST) Subject: [TUHS] RIP J.F.Ossanna Message-ID: We lost J.F. Ossanna on this day in 1977; he had a hand in developing Unix, and was responsible for "roff" and its descendants. Remember him, the next time you see "jfo" in Unix documentation. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From ron at ronnatalie.com Tue Nov 28 10:06:51 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Mon, 27 Nov 2017 19:06:51 -0500 Subject: [TUHS] RIP J.F.Ossanna In-Reply-To: References: Message-ID: <003d01d367dc$cd3e8910$67bb9b30$@ronnatalie.com> 1977 marks my entry into the world of UNIX. I've always stated there was only one person who truly understood nroff and he was dead. I mourn the fact that of all the UNIX greats I've met, I missed out on Ossanna. From kevin.bowling at kev009.com Tue Nov 28 10:13:43 2017 From: kevin.bowling at kev009.com (Kevin Bowling) Date: Mon, 27 Nov 2017 17:13:43 -0700 Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171122153823.9809918C0CC@mercury.lcs.mit.edu> References: <20171122153823.9809918C0CC@mercury.lcs.mit.edu> Message-ID: My interpretation from the BTSJ port was that it was a cheater port more analogous to Cygwin that ran on top of MVS rather than a "real" VM guest but it's been several years since I read the paper. I have some private correspondence from Dick Johnson who worked on a port of OSF/1 that was marketed as AIX/ESA: "I'll give you a little AIX/ESA history and try to answer your questions. I currently volunteer at the Computer History Museum, so I am a bit of a computer history buff myself. Starting in the late 1980s I was working at IBM SSD in San Jose. The IBM Palo Alto Scientific Center had developed AIX/370 (my neighbor Wally Iimura was one of the developers) to compete with Amdahl UTS, and the decision was made to create a major UNIX offering for the IBM mainframe based on the OSF/1 kernel from CMU. I was the leader of a group in San Jose that did the AIX/ESA device support for all the storage devices (DASD and tape). The bulk of AIX/ESA development was carried out by a large group of several hundred in Kingston, NY. The AIX/ESA code base was almost completely different from that of AIX/370 and AIX for the RS/6000 (there had been an effort to port the RS/6000 AIX to the mainframe that was abandoned). When it was released, the product did not sell well, and never exceeded 35 customer licenses. This was for many reasons. Marketing did not push it, and the MVS people created Open MVS that allowed UNIX to run in MVS. However the AIX/ESA OS itself was very solid and we routinely handed a workload of over 1000 logged on users on a single IBM mainframe. All the usual UNIX environment was provided. My group did the device drivers that supported DASD up to the 3390 and also the tape drives and tape library then selling. AIX/370 multi-processor support was fairly primitive (there was only a single kernel lock), but AIX/ESA had complete multi-processor and multi-threading support. There was a complete of manuals that went with the AIX/ESA product. There was the usual Operators Guide, User's Guide, etc. They had Navy blue covers, but I did not keep any of them myself. I do not know of any place to find soft copy of any of them. I believe the product was shipped only on tape. As a developer I installed AIX/ESA many times, but I was always using VM for this. The combination of being able to run it in a virtual machine along with the PER hardware of the mainframe made it pretty easy to debug problems. Even though the product was not a success, I was proud of our work on it and really enjoyed the work." Regards, On Wed, Nov 22, 2017 at 8:38 AM, Noel Chiappa wrote: > > From: Kevin Bowling > > > The earliest stuff may be covered by Novell's grant of early code. > > ... > > Would be fun to run *ix on any of them. > > Alas, the Bell port of Unix to the /370 needs that underlying layer of code > from IBM, and that's probably not going to escape. Too bad, it would be pretty > cool. > > Noel From lm at mcvoy.com Tue Nov 28 10:14:48 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 27 Nov 2017 16:14:48 -0800 Subject: [TUHS] RIP J.F.Ossanna In-Reply-To: References: Message-ID: <20171128001448.GF3430@mcvoy.com> Indeed. As a big roff fan, not having had the chance to meet him is a bummer, might have been fun. On Tue, Nov 28, 2017 at 09:05:19AM +1100, Dave Horsfall wrote: > We lost J.F. Ossanna on this day in 1977; he had a hand in developing Unix, > and was responsible for "roff" and its descendants. Remember him, the next > time you see "jfo" in Unix documentation. > > -- > Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From lm at mcvoy.com Tue Nov 28 10:15:43 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 27 Nov 2017 16:15:43 -0800 Subject: [TUHS] RIP J.F.Ossanna In-Reply-To: <003d01d367dc$cd3e8910$67bb9b30$@ronnatalie.com> References: <003d01d367dc$cd3e8910$67bb9b30$@ronnatalie.com> Message-ID: <20171128001543.GG3430@mcvoy.com> I think one could argue that James Clark has a pretty good handle on roff (having written the GNU version of nroff/troff/tbl/eqn/pic etc). On Mon, Nov 27, 2017 at 07:06:51PM -0500, Ron Natalie wrote: > 1977 marks my entry into the world of UNIX. I've always stated there was > only one person who truly understood nroff and he was dead. > I mourn the fact that of all the UNIX greats I've met, I missed out on > Ossanna. > -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From dave at horsfall.org Tue Nov 28 10:23:12 2017 From: dave at horsfall.org (Dave Horsfall) Date: Tue, 28 Nov 2017 11:23:12 +1100 (EST) Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171127171122.89ECF18C092@mercury.lcs.mit.edu> References: <20171127171122.89ECF18C092@mercury.lcs.mit.edu> Message-ID: On Mon, 27 Nov 2017, Noel Chiappa wrote: > I'm not familiar with dtrace(), but if it modifies some other routine's > code, then it would not be "self" modifying, right? No more than the IBM-360's "EX" instruction was self-modifying, I guess. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From jon at fourwinds.com Tue Nov 28 15:51:13 2017 From: jon at fourwinds.com (Jon Steinhart) Date: Mon, 27 Nov 2017 21:51:13 -0800 Subject: [TUHS] Dash options Message-ID: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> Does anybody know the history of dash options? Were they a UNIX thing or did UNIX borrow them from something earlier? Jon From dave at horsfall.org Tue Nov 28 16:05:07 2017 From: dave at horsfall.org (Dave Horsfall) Date: Tue, 28 Nov 2017 17:05:07 +1100 (EST) Subject: [TUHS] Dash options In-Reply-To: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> References: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> Message-ID: On Mon, 27 Nov 2017, Jon Steinhart wrote: > Does anybody know the history of dash options? Were they a UNIX thing > or did UNIX borrow them from something earlier? An equivalent question would be why "/" was chosen as the directory separator, as it was commonly used for flags. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From grog at lemis.com Tue Nov 28 16:28:45 2017 From: grog at lemis.com (Greg 'groggy' Lehey) Date: Tue, 28 Nov 2017 17:28:45 +1100 Subject: [TUHS] Dash options In-Reply-To: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> References: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> Message-ID: <20171128062845.GB5277@eureka.lemis.com> On Monday, 27 November 2017 at 21:51:13 -0800, Jon Steinhart wrote: > Does anybody know the history of dash options? Were they > a UNIX thing or did UNIX borrow them from something earlier? If you mean specificall the dash, I can't help much. But there were similar ideas elsewhere. UNIVAC EXEC-8 (for the 1108, late 1960s) had options that followed the command with a comma, like: @RUN,G GOPU,STANDARD,STANDARD @ADD,PL ASGDMS . ASSIGNIERT DATENBASIS @ASG,A PF. . PF IST PROGRAMM-FILE MIT GOPU @XQT PF.GOPU The letters after the comma were option letters, conveniently packed into a machine word so that they didn't require parsing. OMEGA on the Univac 494 had something similar, but delimited by a space rather than a comma, reminiscent of earlier tar syntax. I don't know any other systems, but since UNIVAC and Unix aren't closely related, I'd guess that there were similar ideas elsewhere too. Greg -- Sent from my desktop computer. Finger grog at lemis.com for PGP public key. See complete headers for address and phone numbers. This message is digitally signed. If your Microsoft mail program reports problems, please read http://lemis.com/broken-MUA -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 163 bytes Desc: not available URL: From andreww591 at gmail.com Tue Nov 28 16:49:54 2017 From: andreww591 at gmail.com (Andrew Warkentin) Date: Mon, 27 Nov 2017 23:49:54 -0700 Subject: [TUHS] Dash options In-Reply-To: References: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> Message-ID: On 11/27/17, Dave Horsfall wrote: > On Mon, 27 Nov 2017, Jon Steinhart wrote: > >> Does anybody know the history of dash options? Were they a UNIX thing >> or did UNIX borrow them from something earlier? > > An equivalent question would be why "/" was chosen as the directory > separator, as it was commonly used for flags. > Multics had dash options, so that's presumably where Unix got them from. I believe slash options were mostly a DEC thing that DOS and its successors borrowed (I think they originated in TOPS-10). I don't think there was any widespread syntax for options when the first versions of Unix were written, and slash and dash options weren't the only syntaxes used (e.g. JCL-ish key=value options were used on some systems). The thing that I wonder about was why ">" wasn't used as the directory separator when paths were added to Unix, since that's what Multics used. From tih at hamartun.priv.no Tue Nov 28 20:02:44 2017 From: tih at hamartun.priv.no (Tom Ivar Helbekkmo) Date: Tue, 28 Nov 2017 11:02:44 +0100 Subject: [TUHS] TTY8 In-Reply-To: <024d01d36604$28b59ed0$7a20dc70$@ronnatalie.com> (Ron Natalie's message of "Sat, 25 Nov 2017 10:43:36 -0500") References: <024d01d36604$28b59ed0$7a20dc70$@ronnatalie.com> Message-ID: Heh. This thread got me looking at a piece of software I wrote a long time ago -- a utility to help you configure the components of a Q-bus or UNIBUS system with the correct CSRs and interrupt vectors for DEC operating systems to recognize them during autoconfiguration. It's in the archive, and called sysgen, because it's a clone of the relevant part of VAX/VMS SYSGEN. Anyway, it turns out my tool has had a bug in it since 2004, that kept it from working correctly with boards that need specific CSR settings, but have their interrupt vectors in floating space -- like the DC11, which is why I noticed the problem now. The corrected version is at https://www.hamartun.priv.no/tih/sysgen.tar.Z I'll ask Warren to replace the one in the archive. -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 ralph at inputplus.co.uk Tue Nov 28 21:18:01 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Tue, 28 Nov 2017 11:18:01 +0000 Subject: [TUHS] Dash options In-Reply-To: References: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> Message-ID: <20171128111801.C05F31F936@orac.inputplus.co.uk> Hi Andrew, > The thing that I wonder about was why ">" wasn't used as the directory > separator when paths were added to Unix, since that's what Multics > used. A slash has long been used to separate items in a hierarchy, e.g. division, department, staff initials, or account, purchase-order number, at least back to the early twentieth century. So choosing it might have seemed natural. https://en.wikipedia.org/wiki/Slash_(punctuation)#Presenting_routes And Multics had some kind of `attach' and `detach' of I/O streams, well known to Ossanna, so perhaps dup(2), and a Thompson-shell syntax to go with it meant `>' was earmarked early on. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From michael at kjorling.se Tue Nov 28 21:49:39 2017 From: michael at kjorling.se (Michael =?utf-8?B?S2rDtnJsaW5n?=) Date: Tue, 28 Nov 2017 11:49:39 +0000 Subject: [TUHS] Dash options In-Reply-To: <20171128111801.C05F31F936@orac.inputplus.co.uk> References: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> <20171128111801.C05F31F936@orac.inputplus.co.uk> Message-ID: <20171128114939.GE10453@h-174-65.A328.priv.bahnhof.se> On 28 Nov 2017 11:18 +0000, from ralph at inputplus.co.uk (Ralph Corderoy): > And Multics had some kind of `attach' and `detach' of I/O streams, well > known to Ossanna, so perhaps dup(2), and a Thompson-shell syntax to go > with it meant `>' was earmarked early on. Didn't early UNIX pipes use `<' to separate the commands involved? -- Michael Kjörling • https://michael.kjorling.se • michael at kjorling.se “People who think they know everything really annoy those of us who know we don’t.” (Bjarne Stroustrup) From will.senn at gmail.com Tue Nov 28 21:52:55 2017 From: will.senn at gmail.com (Will Senn) Date: Tue, 28 Nov 2017 05:52:55 -0600 Subject: [TUHS] A sober reminder of why distributed archiving is important Message-ID: <69640f8b-13ac-b715-d69d-1de4ddc28223@gmail.com> In case you missed it: https://www.spectrum.ieee.org/view-from-the-valley/tech-history/silicon-revolution/loss-of-hewlettpackard-archive-a-wakeup-call-for-computer-historians It is important to keep the conversations alive and not to file your memory boxes away in the attic. Thanks for sharing what you know and especially for making your documents and bits available. -will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From ralph at inputplus.co.uk Tue Nov 28 22:46:52 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Tue, 28 Nov 2017 12:46:52 +0000 Subject: [TUHS] Dash options In-Reply-To: <20171128114939.GE10453@h-174-65.A328.priv.bahnhof.se> References: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> <20171128111801.C05F31F936@orac.inputplus.co.uk> <20171128114939.GE10453@h-174-65.A328.priv.bahnhof.se> Message-ID: <20171128124652.BD00F1F936@orac.inputplus.co.uk> Hi Michael, > Didn't early UNIX pipes use `<' to separate the commands involved? No, you're thinking of `^'. $ /usr/heirloom/bin/sh $ date ^ wc 1 4 30 $ ^D -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From jnc at mercury.lcs.mit.edu Tue Nov 28 23:19:42 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Tue, 28 Nov 2017 08:19:42 -0500 (EST) Subject: [TUHS] Dash options Message-ID: <20171128131942.6705918C092@mercury.lcs.mit.edu> > Multics had some kind of `attach' and `detach' of I/O streams, well > known to Ossanna, so perhaps dup(2), and a Thompson-shell syntax to go > with it meant `>' was earmarked early on. According to "The Evolution of the Unix Timesharing System", full path names arrived later than I/O redirection, so by they time they needed a separator, '>' and '<' were gone. '/' also has the advantage of being a non-shift character! Noel PS: Re-reading that, I see that early Unix did not have an exec() call (as I was just discussing); it was done in user mode, with normal read and write calls. From tfb at tfeb.org Wed Nov 29 00:55:46 2017 From: tfb at tfeb.org (Tim Bradshaw) Date: Tue, 28 Nov 2017 14:55:46 +0000 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> References: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> Message-ID: <2E06126D-C247-4D2B-97A2-DE0A449594E4@tfeb.org> On 27 Nov 2017, at 16:11, Noel Chiappa wrote: > > Along those lines, I was wondering about modern OS's, which I gather for > security reasons prevent execution of data, and prevent writing to code. > > Programs which emit these little 'custom code fragments' (I prefer that term, > since they aren't really 'self-modifying code' - which I define as 'a program > which _changes_ _existing_ instructions) must have some way of having a chunk > of memory into which they can write, but which can also be executed. I think, however this is done, it must be relatively tractable, because Lisp systems with native-code compilers work fine on modern OSs, and they do very much more than generate small code fragments. --tim -------------- next part -------------- An HTML attachment was scrubbed... URL: From cym224 at gmail.com Wed Nov 29 02:21:21 2017 From: cym224 at gmail.com (Nemo) Date: Tue, 28 Nov 2017 11:21:21 -0500 Subject: [TUHS] /bin/true (was basic tools / Universal Unix) In-Reply-To: <009a01d348e9$e3dce200$ab96a600$@ronnatalie.com> References: <009a01d348e9$e3dce200$ab96a600$@ronnatalie.com> Message-ID: On 19 October 2017 at 10:52, Ron Natalie wrote: > My favorite reduction to absurdity was /bin/true. Someone decided we > needed shell commands for true and false. Easy enough to add a script that > said "exit 0" or exit 1" as its only line. > Then someone realized that the "exit 0" in /bin true was superfluous, the > default return was 0. /bin/true turned into an empty, yet executable, file. > > Then the lawyers got involved. We got a version of a packaged UNIX (I > think it was Interactive Systems). Every shell script got twelve lines of > copyright/license boilerplate. Including /bin true. > The file had nothing but useless comment in it. A late comment: I seem to recall this boilerplate in earlier Solaris but Solaris 10 has an executable. So I looked at the OpenSolaris source out of curiosity and found this. [CDDL stuff here] /* * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #pragma ident "%Z%%M% %I% %E% SMI" #include /* * Exit with a zero value as quickly as possible. */ int main(void) { _exit(0); /*NOTREACHED*/ return (0); } N. From krewat at kilonet.net Wed Nov 29 03:47:13 2017 From: krewat at kilonet.net (Arthur Krewat) Date: Tue, 28 Nov 2017 12:47:13 -0500 Subject: [TUHS] A sober reminder of why distributed archiving is important In-Reply-To: <69640f8b-13ac-b715-d69d-1de4ddc28223@gmail.com> References: <69640f8b-13ac-b715-d69d-1de4ddc28223@gmail.com> Message-ID: <2964da47-a97f-519a-8bc1-030798c0b984@kilonet.net> This saddens me greatly. Now I know what I'm doing over the Christmas break. ;) On 11/28/2017 6:52 AM, Will Senn wrote: > In case you missed it: > > https://www.spectrum.ieee.org/view-from-the-valley/tech-history/silicon-revolution/loss-of-hewlettpackard-archive-a-wakeup-call-for-computer-historians > > > It is important to keep the conversations alive and not to file your > memory boxes away in the attic. Thanks for sharing what you know and > especially for making your documents and bits available. > > -will > From imp at bsdimp.com Wed Nov 29 03:56:52 2017 From: imp at bsdimp.com (Warner Losh) Date: Tue, 28 Nov 2017 10:56:52 -0700 Subject: [TUHS] /bin/true (was basic tools / Universal Unix) In-Reply-To: References: <009a01d348e9$e3dce200$ab96a600$@ronnatalie.com> Message-ID: On Tue, Nov 28, 2017 at 9:21 AM, Nemo wrote: > On 19 October 2017 at 10:52, Ron Natalie wrote: > > My favorite reduction to absurdity was /bin/true. Someone decided we > > needed shell commands for true and false. Easy enough to add a script > that > > said "exit 0" or exit 1" as its only line. > > Then someone realized that the "exit 0" in /bin true was superfluous, the > > default return was 0. /bin/true turned into an empty, yet executable, > file. > > > > Then the lawyers got involved. We got a version of a packaged UNIX (I > > think it was Interactive Systems). Every shell script got twelve > lines of > > copyright/license boilerplate. Including /bin true. > > The file had nothing but useless comment in it. > > A late comment: I seem to recall this boilerplate in earlier Solaris > but Solaris 10 has an executable. So I looked at the OpenSolaris > source out of curiosity and found this. > > [CDDL stuff here] > /* > * Copyright 2004 Sun Microsystems, Inc. All rights reserved. > * Use is subject to license terms. > */ > > #pragma ident "%Z%%M% %I% %E% SMI" > > #include > > /* > * Exit with a zero value as quickly as possible. > */ > > int > main(void) > { > _exit(0); > /*NOTREACHED*/ > return (0); > } > Ah, the tyranny of static analysis tools... _exit(0) should be marked such that the tools know it does not return. This means the /*NOTREACHED*/ isn't needed. And since there's no real exit path out of main, the return (0) is equally bogus (because main can't return). Yet lint and other tools have ushered in this insanity. I'm glad to see these days that these sorts of lame false positives have been eliminated... Then again _exit(0) is a useless optimization. It saves three closes for files that are bound to be closed at image tear down. If it really is that important (absent data, my gut tells me it isn't), then this should be written in assembler. FreeBSD/amd64 would be something like: #include #include ENTRY(_start) xor %r10, %r10 mov $SYS_exit, %eax syscall END(_start) This some small hacks to each arch's SYS.h in libc, this could even be smaller and MI :). this is tiny: -rwxrwxr-x 1 imp imp 672 Nov 28 10:18 true text data bss dec hex filename 10 0 0 10 0xa true Contrast that with FreeBSD's /usr/bin/true: -r-xr-xr-x 1 root wheel 4624 Nov 20 11:56 /usr/bin/true text data bss dec hex filename 1540 481 8 2029 0x7ed /usr/bin/true which is little more than return(0), but also has a fair amount of copyright and SCCS data. Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From stewart at serissa.com Wed Nov 29 04:01:11 2017 From: stewart at serissa.com (Lawrence Stewart) Date: Tue, 28 Nov 2017 13:01:11 -0500 Subject: [TUHS] Dash options In-Reply-To: <20171128111801.C05F31F936@orac.inputplus.co.uk> References: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> <20171128111801.C05F31F936@orac.inputplus.co.uk> Message-ID: <7A4E703F-F052-47D6-8097-BB0A0B27A8E1@serissa.com> My theory was always that the Designers had the good sense to use ‘/‘ for a directory separator just because it was a lower case character and thus vastly easier to type than ‘>’. -L From clemc at ccc.com Wed Nov 29 04:20:41 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 28 Nov 2017 13:20:41 -0500 Subject: [TUHS] Dash options In-Reply-To: <20171128131942.6705918C092@mercury.lcs.mit.edu> References: <20171128131942.6705918C092@mercury.lcs.mit.edu> Message-ID: dash as switches were always explained to me as from Multics. Having used DEC systems, Univax and IBM systems originally with cards and ASR33s, I was not yet stubborn enough to see value one way or the other (the links in ROMs in my fingers were not yet programmed). By the time I left CMU and the glass tty was all I was willing to use. I had become a UNIX/C person more than anything else, so slashes as switches (and upper case and case folding) had become annoying and just seemed wrong. On Tue, Nov 28, 2017 at 8:19 AM, Noel Chiappa wrote: > According to "The Evolution of the Unix Timesharing System", full path > names > arrived later than I/O redirection, so by they time they needed a > separator, > '>' and '<' were gone. ​That was the impression I had had and I admit I think I must have either assumed it, heard it in conversation, or maybe read it at some point in this paper. Cann't say when I started to think same, but I came to UNIX in Fifth and Sixth so, they were already there. I was just learning the 'UNIX way' at the time.​ I guess because I was using so many different systems at the time, I was more willing to accept every dialect had its way of doing things. As Greg points out EXEC-8 was hardly anything like TSS/360 and learned them together. Same as TOPS/TWINEX and eventually VMS. Funny, things is I left those other systems and then was forced to come back to them, first RT11 and then NOS/KRONOS and then VMS and I remember grumbling. By then the ROMs had been forced in my muscle memory. '/' also has the advantage of being a non-shift > ​ ​ > character! > ​Hmm, so was dot, which is what TSS and MTS used.​ DEC was using it as the . separator, but I think Ken could have used it as easily at the time since the idea of and exposing semantics of what the file was in the name was foreign to UNIX (although was used in other systems as we know). -------------- next part -------------- An HTML attachment was scrubbed... URL: From crossd at gmail.com Wed Nov 29 04:26:54 2017 From: crossd at gmail.com (Dan Cross) Date: Tue, 28 Nov 2017 13:26:54 -0500 Subject: [TUHS] /bin/true (was basic tools / Universal Unix) In-Reply-To: References: <009a01d348e9$e3dce200$ab96a600$@ronnatalie.com> Message-ID: On Tue, Nov 28, 2017 at 12:56 PM, Warner Losh wrote: > > Ah, the tyranny of static analysis tools... _exit(0) should be marked > such that the tools know it does not return. This means the /*NOTREACHED*/ > isn't needed. And since there's no real exit path out of main, the return > (0) is equally bogus (because main can't return). Yet lint and other tools > have ushered in this insanity. > Hmm; in what way can main() not return? Surely this is true if `_exit(0)` is called as this calls the exit system call, which cannot -- by definition -- return. But main() itself can return to whatever calls it (usually `start`, I'd imagine). For that matter, I'm not aware of any prohibition against calling `main()` recursively. : tempest; cat r.c #include int main(int argc, char *argv[]) { if (argc > 1) { argc--; argv++; printf("%s", argv[0]); if (argc > 1) printf(" "); return main(argc, argv); } printf("\n"); return 0; } : tempest; make r cc r.c -o r : tempest; ./r hi from Dan hi from Dan : tempest; This is sort of an admittedly weird way to write `echo`, but it seems to work ok. I'm glad to see these days that these sorts of lame false positives have > been eliminated... > +1. Then again _exit(0) is a useless optimization. It saves three closes for > files that are bound to be closed at image tear down. If it really is that > important (absent data, my gut tells me it isn't), then this should be > written in assembler. FreeBSD/amd64 would be something like: > > #include > #include > > ENTRY(_start) > xor %r10, %r10 > mov $SYS_exit, %eax > syscall > END(_start) > > This some small hacks to each arch's SYS.h in libc, this could even be > smaller and MI :). this is tiny: > -rwxrwxr-x 1 imp imp 672 Nov 28 10:18 true > text data bss dec hex filename > 10 0 0 10 0xa true > This is much smaller than the binary for the assembler program I posted for macOS earlier in this thread: the result there was much larger (but due to the requirement to have a non-empty data segment in the executable; this ends up being page-aligned and filled with zeros). Contrast that with FreeBSD's /usr/bin/true: > -r-xr-xr-x 1 root wheel 4624 Nov 20 11:56 /usr/bin/true > text data bss dec hex filename > 1540 481 8 2029 0x7ed /usr/bin/true > > which is little more than return(0), but also has a fair amount of > copyright and SCCS data. > Is the copyright data actually present in the object file? I see some RCS $Id$ strings (in the guise of $FreeBSD:$ stuff) but no copyright strings in /usr/bin/true on my system. - Dan C. -------------- next part -------------- An HTML attachment was scrubbed... URL: From bakul at bitblocks.com Wed Nov 29 04:34:13 2017 From: bakul at bitblocks.com (Bakul Shah) Date: Tue, 28 Nov 2017 10:34:13 -0800 Subject: [TUHS] /bin/true (was basic tools / Universal Unix) In-Reply-To: Your message of "Tue, 28 Nov 2017 10:56:52 -0700." References: <009a01d348e9$e3dce200$ab96a600$@ronnatalie.com> Message-ID: <20171128183428.A825F156E523@mail.bitblocks.com> On Tue, 28 Nov 2017 10:56:52 -0700 Warner Losh wrote: Warner Losh writes: > > On Tue, Nov 28, 2017 at 9:21 AM, Nemo wrote: > > > A late comment: I seem to recall this boilerplate in earlier Solaris > > but Solaris 10 has an executable. So I looked at the OpenSolaris > > source out of curiosity and found this. > > > > [CDDL stuff here] > > /* > > * Copyright 2004 Sun Microsystems, Inc. All rights reserved. > > * Use is subject to license terms. > > */ > > > > #pragma ident "%Z%%M% %I% %E% SMI" > > > > #include > > > > /* > > * Exit with a zero value as quickly as possible. > > */ > > > > int > > main(void) > > { > > _exit(0); > > /*NOTREACHED*/ > > return (0); > > } > > > > Ah, the tyranny of static analysis tools... _exit(0) should be marked such > that the tools know it does not return. This means the /*NOTREACHED*/ isn't > needed. And since there's no real exit path out of main, the return (0) is > equally bogus (because main can't return). Yet lint and other tools have > ushered in this insanity. > > I'm glad to see these days that these sorts of lame false positives have > been eliminated... > > Then again _exit(0) is a useless optimization. It saves three closes for > files that are bound to be closed at image tear down. If it really is that > important (absent data, my gut tells me it isn't), then this should be > written in assembler. FreeBSD/amd64 would be something like: > > #include > #include > > ENTRY(_start) > xor %r10, %r10 > mov $SYS_exit, %eax > syscall > END(_start) > > This some small hacks to each arch's SYS.h in libc, this could even be > smaller and MI :). this is tiny: > -rwxrwxr-x 1 imp imp 672 Nov 28 10:18 true > text data bss dec hex filename > 10 0 0 10 0xa true > > Contrast that with FreeBSD's /usr/bin/true: > -r-xr-xr-x 1 root wheel 4624 Nov 20 11:56 /usr/bin/true > text data bss dec hex filename > 1540 481 8 2029 0x7ed /usr/bin/true > > which is little more than return(0), but also has a fair amount of > copyright and SCCS data. int main(void) { return 0; } is sufficient for true. BTW this is pretty much what /usr/src/usr.bin/true/true.c does. And true can also be a file of length 0 chmoded to +x. No need to optimize such things. It should really be linked staticallly but crt1.o seems to bring in the entire libc. I guess linking with just the things a program needs is a hard problem! From imp at bsdimp.com Wed Nov 29 04:41:23 2017 From: imp at bsdimp.com (Warner Losh) Date: Tue, 28 Nov 2017 11:41:23 -0700 Subject: [TUHS] /bin/true (was basic tools / Universal Unix) In-Reply-To: References: <009a01d348e9$e3dce200$ab96a600$@ronnatalie.com> Message-ID: On Tue, Nov 28, 2017 at 11:26 AM, Dan Cross wrote: > On Tue, Nov 28, 2017 at 12:56 PM, Warner Losh wrote: >> >> Ah, the tyranny of static analysis tools... _exit(0) should be marked >> such that the tools know it does not return. This means the /*NOTREACHED*/ >> isn't needed. And since there's no real exit path out of main, the return >> (0) is equally bogus (because main can't return). Yet lint and other tools >> have ushered in this insanity. >> > > Hmm; in what way can main() not return? Surely this is true if `_exit(0)` > is called as this calls the exit system call, which cannot -- by definition > -- return. But main() itself can return to whatever calls it (usually > `start`, I'd imagine). For that matter, I'm not aware of any prohibition > against calling `main()` recursively. > Ture but completely irrelevant. If exit happens, the process is done. main isn't going to return because control never returns back to main. That's what makes the messages completely bogus. Execution simply stops. _exit() doesn't cause main() to return to _start(), the process stops executing at that point. This is much smaller than the binary for the assembler program I posted for > macOS earlier in this thread: the result there was much larger (but due to > the requirement to have a non-empty data segment in the executable; this > ends up being page-aligned and filled with zeros). > > Contrast that with FreeBSD's /usr/bin/true: >> -r-xr-xr-x 1 root wheel 4624 Nov 20 11:56 /usr/bin/true >> text data bss dec hex filename >> 1540 481 8 2029 0x7ed /usr/bin/true >> >> which is little more than return(0), but also has a fair amount of >> copyright and SCCS data. >> > > Is the copyright data actually present in the object file? I see some RCS > $Id$ strings (in the guise of $FreeBSD:$ stuff) but no copyright strings in > /usr/bin/true on my system. > Ah yes, I read the source, but hadn't checked the final binary... Most of the data seems to be other things... It used to get the copyright data with gcc a long time ago... Warner -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at ronnatalie.com Wed Nov 29 05:00:09 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Tue, 28 Nov 2017 19:00:09 -0000 Subject: [TUHS] C question for the historians In-Reply-To: <20171108202334.GA14526@mcvoy.com> References: <20171108181420.517711F949@orac.inputplus.co.uk> <20171108190540.GA7241@mcvoy.com> <20171108202334.GA14526@mcvoy.com> Message-ID: <010c01d358d0$b6f110d0$24d33270$@ronnatalie.com> 80 was the number of columns in the IBM punched cards. Teletypes only had 72 coumns. Most lineprinters could do 132. I remember making the jump from the Visual200's (a vt52 clone) to the 5620 DMD. I actually had at home in my kitchen a ASR-37. It was one of the only terminals I have used that I didn't need to engage nl mode. It had a big NEWLINE key that sent "\n" and didn't need to have the "\r" also sent. It also did stuff with all the SI/SO and ESC 8 and 9 things that nroff sent by default without the need for an converting filter. Amusingly, it was also one of the the only terminals I used that did something with CD and DSR. Upon DSR coming up, it would turn on the motor and on CD a giant green PROCEED indicator came on. I never turned it off, I just shutdown the modem. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Larry McVoy Sent: Wednesday, November 8, 2017 3:24 PM To: ron minnich Cc: tuhs at minnie.tuhs.org Subject: Re: [TUHS] C question for the historians > For me one of the worst is the 80-column requirement that came from > out of I don't know where. Let's see, we're all getting 4k monitors, > and yet somehow > 80 columns is how we have to write code? Hollerith would be proud. I'm an 80 column person, I like it for side by side diffs, stuff like that. I also read very very fast by reading down the center and using peripheral vision for either side (hockey habits die hard). I can't do that with much wider than 80 column. I had a guy working for me who started to argue with me and caught himself: "I work for you, so it's 80 columns. When you work for me it won't be." Fair enough. From crossd at gmail.com Wed Nov 29 05:09:36 2017 From: crossd at gmail.com (Dan Cross) Date: Tue, 28 Nov 2017 14:09:36 -0500 Subject: [TUHS] /bin/true (was basic tools / Universal Unix) In-Reply-To: References: <009a01d348e9$e3dce200$ab96a600$@ronnatalie.com> Message-ID: On Tue, Nov 28, 2017 at 1:41 PM, Warner Losh wrote: > > On Tue, Nov 28, 2017 at 11:26 AM, Dan Cross wrote: > >> On Tue, Nov 28, 2017 at 12:56 PM, Warner Losh wrote: >>> >>> Ah, the tyranny of static analysis tools... _exit(0) should be marked >>> such that the tools know it does not return. This means the /*NOTREACHED*/ >>> isn't needed. And since there's no real exit path out of main, the return >>> (0) is equally bogus (because main can't return). Yet lint and other tools >>> have ushered in this insanity. >>> >> >> Hmm; in what way can main() not return? Surely this is true if `_exit(0)` >> is called as this calls the exit system call, which cannot -- by definition >> -- return. But main() itself can return to whatever calls it (usually >> `start`, I'd imagine). For that matter, I'm not aware of any prohibition >> against calling `main()` recursively. >> > > Ture but completely irrelevant. If exit happens, the process is done. main > isn't going to return because control never returns back to main. That's > what makes the messages completely bogus. Execution simply stops. _exit() > doesn't cause main() to return to _start(), the process stops executing at > that point. > I think perhaps we are talking past one another. You had written '(because main can't return)' and it seems (if you'll forgive me putting words in your mouth, so to speak) that you either intended to say that _exit() can't return, or that main can't return *in this context* (because it invoked exit). Exit obviously cannot return, as you and I both explicitly mentioned, but I was addressing the comment that *main* cannot return. main() absolutely can return, just not _here_. This is much smaller than the binary for the assembler program I posted for >> macOS earlier in this thread: the result there was much larger (but due to >> the requirement to have a non-empty data segment in the executable; this >> ends up being page-aligned and filled with zeros). >> >> Contrast that with FreeBSD's /usr/bin/true: >>> -r-xr-xr-x 1 root wheel 4624 Nov 20 11:56 /usr/bin/true >>> text data bss dec hex filename >>> 1540 481 8 2029 0x7ed /usr/bin/true >>> >>> which is little more than return(0), but also has a fair amount of >>> copyright and SCCS data. >>> >> >> Is the copyright data actually present in the object file? I see some RCS >> $Id$ strings (in the guise of $FreeBSD:$ stuff) but no copyright strings in >> /usr/bin/true on my system. >> > > Ah yes, I read the source, but hadn't checked the final binary... Most of > the data seems to be other things... It used to get the copyright data > with gcc a long time ago... > There is, perhaps, some debugging value in embedding ident strings in object code: one can see which versions of which sources were used to construct a given binary. I suspect the incremental value of such things is diminishing with faster computers and fast (relatively) compilation; it's easier to simply construct a binary from known versions of source files than to extrapolate versions of files from a known binary. I can't think of a great use case for embedding copyright data into an object file, however. - Dan C. -------------- next part -------------- An HTML attachment was scrubbed... URL: From paul.winalski at gmail.com Wed Nov 29 05:36:21 2017 From: paul.winalski at gmail.com (Paul Winalski) Date: Tue, 28 Nov 2017 14:36:21 -0500 Subject: [TUHS] Dash options In-Reply-To: References: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> Message-ID: On 11/28/17, Andrew Warkentin wrote: > > Multics had dash options, so that's presumably where Unix got them > from. I believe slash options were mostly a DEC thing that DOS and its > successors borrowed (I think they originated in TOPS-10). That's how I remember it. I think slash was chosen because it looks somewhat like a toggle switch. MS/DOS patterned its command line syntax after RT-11 and inherited the slash as a command option introduction from there. Unfortunately this meant that they couldn't use slash as a directory separator when they got a hierarchical file system, and so they chose backslash instead. Nowadays the Windows shell, and I think also the underlying image activation system service, use an ugly algorithmic hack to support both directions of slashes in file pathnames. -Paul W. From paul.winalski at gmail.com Wed Nov 29 05:45:19 2017 From: paul.winalski at gmail.com (Paul Winalski) Date: Tue, 28 Nov 2017 14:45:19 -0500 Subject: [TUHS] Harvard and Von Neumann Architectures and Unix In-Reply-To: <2E06126D-C247-4D2B-97A2-DE0A449594E4@tfeb.org> References: <20171127161141.2C9E318C08F@mercury.lcs.mit.edu> <2E06126D-C247-4D2B-97A2-DE0A449594E4@tfeb.org> Message-ID: On 27 Nov 2017, at 16:11, Noel Chiappa wrote: > > Along those lines, I was wondering about modern OS's, which I gather for > security reasons prevent execution of data, and prevent writing to code. They do by default, at least, in that modern linkers create executable images where the executable program segments are read-only and read/write segments (including the stack) are not executable. But modern OSes have system services for changing page protection, so an application such as an interpreter or JIT can compose code and then change the page protection to make it executable. -Paul W. From will.senn at gmail.com Wed Nov 29 05:55:31 2017 From: will.senn at gmail.com (Will Senn) Date: Tue, 28 Nov 2017 13:55:31 -0600 Subject: [TUHS] Unix on PDP8? Message-ID: All, Was Unix ever ported to a PDP8, or any other 12 bit environment, for that matter? If not, why not? My understanding, such as it is, is that Unix was created on the PDP7 - btw, thank you very much, Ken Thompson, you definitely changed my world :), which is an 18bit machine, and that it soon found its first real home on the 16 bit PDP11 series of machines (an 11/20), and from there, ever upward or at least ever onward. I'm curious about it for historical reasons, of course, but also because I've been messing around in the PDP8 emulation world and enjoying the excursion into simplified ISA and memory architectures. -will From clemc at ccc.com Wed Nov 29 06:03:24 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 28 Nov 2017 15:03:24 -0500 Subject: [TUHS] Dash options In-Reply-To: References: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> Message-ID: On Tue, Nov 28, 2017 at 2:36 PM, Paul Winalski wrote: > MS/DOS patterned its command line > ​ ​ > syntax after RT-11 and inherited the slash as a command option > introduction from there. ​Minor correction... To do a CDC style patient zero history ;-) RT11 took it from DOS/8, CP/M took it from RT11, then finally DOS-86 which became PC-DOS ney MS/DOS took it from CP/M. -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Wed Nov 29 06:24:42 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 28 Nov 2017 15:24:42 -0500 Subject: [TUHS] Unix on PDP8? In-Reply-To: References: Message-ID: ​below....​ On Tue, Nov 28, 2017 at 2:55 PM, Will Senn wrote: > All, > > Was Unix ever ported to a PDP8, or any other 12 bit environment, for that > matter? ​Not to my knowledge. > If not, why not ​My guess .... is that it was not worth it/did not make economic sense for anyone. > My understanding, such as it is, is that Unix was created on the PDP7 - > btw, thank you very much, Ken Thompson, you definitely changed my world :), > which is an 18bit machine, and that it soon found its first real home on > the 16 bit PDP11 series of machines (an 11/20), and from there, ever upward > or at least ever onward. I'm curious about it for historical reasons, of > course, but also because I've been messing around in the PDP8 emulation > world and enjoying the excursion into simplified ISA and memory > architectures. > > -will > Ken had borrowed a cast off 18 bit word addressed PDP-7 (which became the 9 for all intents and purposes). They purchased a 16 bit PDP-11/20. By that time of the PDP-7/9 (18 bits) lines are being replaced by the PDP-10 (18/36 bits) and the 12 bit PDP-8 line, is being replaced by the 16 bit PDP-11. Ken and company had tried to purchase a PDP-10 and been shot down. So he took the PDP-11, which they were able to get funded. There was nothing the 8 could do that the 11 could not do as well or better and the it was not going to cost any more to use 11s. So there was not incentive at BTL. They now have it on the 11 line. After UNIX get released in to the wild, the same thing is happening. Unless you had an older PDP-8 you wanted to try to run UNIX on, why would you have ported it? TSS/8 was cheap (ney free from DECUS IIRC) so there was a timeshared system for the the 8s already. You'd have have to build new tools which is what we did for other systems, but we always ported to a system that was giving us something -- often cheaper cycles than the PDP-11 and getting than what we could have gotten on the packaged system. And PDP-11s ankle to run UNIX even at $50-250K were cheap for the time. I note that the PDP-11 competitor and the other PDP-8 follow on was Ed DeCasto's Nova. And while Xerox clones the Nova for the Alto, I never heard of a UNIX port to the Nova either. DG's SW offerings were fairly good. So folks like me either bought a PDP-11 from DEC and got UNIX (what most did) and/or you might have some how need up with a cheap system that 24 or 32 bits and then you thought about porting. Even the 'NUIX' machine (IBM Series/1) was a case where the Cleveland State folks got the system for super cheap. They had a borrow cycles from Case to do the port because they did not have an 11. People like me did not start to "port" UNIX until the 16 bit micro's show up -- i.e. the 68000, Z8000, 8086 where you could build a 'microcomputer' that was close to the power of the 'minicomputer' for a lot less money. Clem -------------- next part -------------- An HTML attachment was scrubbed... URL: From clemc at ccc.com Wed Nov 29 06:34:54 2017 From: clemc at ccc.com (Clem Cole) Date: Tue, 28 Nov 2017 15:34:54 -0500 Subject: [TUHS] /bin/true (was basic tools / Universal Unix) In-Reply-To: References: <009a01d348e9$e3dce200$ab96a600$@ronnatalie.com> Message-ID: I'm not a lawyer nor play one on TV. That said, I talk to a lot of them and have worked for firms that have to deal with this sort of issue. Your milage may vary .... On Tue, Nov 28, 2017 at 2:09 PM, Dan Cross wrote: > I can't think of a great use case for embedding copyright data into an > object file, however. > ​This is from some one who used to work for TPC who took out a copyright on every page in the phone directory.​ As I understand it from my legal folks, it is all post the Franklin/Apple case. Making sure all object files also have legally recognized set of stamps in them. I suspect one can argue with the judge that a single copyright notice are coving all of the SCCS stamps on from all the files shipped in the release (source or binary). But just like putting a copyright on every page in the phone book, I think the argument is that a page can ripped from the phone book and a binary and can copied from a system. Because of the 'motion' of the object, making sure every object has a mark is best. -------------- next part -------------- An HTML attachment was scrubbed... URL: From pnr at planet.nl Wed Nov 29 07:30:16 2017 From: pnr at planet.nl (Paul Ruizendaal) Date: Tue, 28 Nov 2017 22:30:16 +0100 Subject: [TUHS] Dash options In-Reply-To: References: Message-ID: <23F0FC84-19B5-47F0-8422-D13F44F432A8@planet.nl> > On Tue, Nov 28, 2017 at 2:36 PM, Paul Winalski > wrote: > >> MS/DOS patterned its command line >> ​ ​ >> syntax after RT-11 and inherited the slash as a command option >> introduction from there. > > ​Minor correction... To do a CDC style patient zero history ;-) RT11 took > it from DOS/8, CP/M took it from RT11, then finally DOS-86 which became > PC-DOS ney MS/DOS took it from CP/M. I think Gary Kildall was very much into the PDP-8 when teaching at the Naval Post Graduate School in the early 70's (doing the FORTRAN/8 compiler for instance). Can't find the link now, but I read somewhere that his work with the 8008 and 8080 was guided by the idea of having a PDP-8 like machine in his home office. For CP/M's command syntax RT11 probably did not come into it. I just had a quick glance through the CP/M 1.4 - 2.2 manuals, and I did not see slash options (or any other option character). Microsoft bought QDOS as a base for PC-DOS/MS-DOS. The QDOS system calls were done such that converting existing 8080 CP/M code with Intel's source level 8080-to-8086 asm converter would generate the correct code. The FAT file system was modeled after the one used by MS Disk BASIC for the 8086. Not sure where the QDOS command line came from, other than CP/M. MS did a lot of its early development on a PDP-10: perhaps that was an inspiration too. Sorry for getting off-Unix-topic... From dave at horsfall.org Wed Nov 29 07:56:08 2017 From: dave at horsfall.org (Dave Horsfall) Date: Wed, 29 Nov 2017 08:56:08 +1100 (EST) Subject: [TUHS] Dash options In-Reply-To: References: <20171128131942.6705918C092@mercury.lcs.mit.edu> Message-ID: On Tue, 28 Nov 2017, Clem Cole wrote: > ​Hmm, so was dot, which is what TSS and MTS used.​  DEC was using it as > the . separator, but I think Ken could have used it as easily > at the time since the idea of and exposing semantics of what the > file was in the name was foreign to UNIX (although was used in other > systems as we know). OS/360's JCL used "." (partitioned datasets?) such as SYS1.WATFIV.blah and so on. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From ralph at inputplus.co.uk Wed Nov 29 08:42:00 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Tue, 28 Nov 2017 22:42:00 +0000 Subject: [TUHS] /bin/true (was basic tools / Universal Unix) In-Reply-To: References: <009a01d348e9$e3dce200$ab96a600$@ronnatalie.com> Message-ID: <20171128224200.E69A721518@orac.inputplus.co.uk> Hi Dan, > There is, perhaps, some debugging value in embedding ident strings in > object code: one can see which versions of which sources were used to > construct a given binary. That's died away, but there is a `build ID' that's gained favour with the pursuit of `reproducable builds', e.g. don't have the compiler add a timestamp. $ readelf -n /bin/true Displaying notes found in: .note.ABI-tag Owner Data size Description GNU 0x00000010 NT_GNU_ABI_TAG (ABI version tag) OS: Linux, ABI: 2.6.32 Displaying notes found in: .note.gnu.build-id Owner Data size Description GNU 0x00000014 NT_GNU_BUILD_ID (unique build ID bitstring) Build ID: 32c992f2f7265996a76ca416c229b92f4c9edcf4 $ https://en.wikipedia.org/wiki/Deterministic_compilation https://reproducible-builds.org/ -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From ralph at inputplus.co.uk Wed Nov 29 09:25:24 2017 From: ralph at inputplus.co.uk (Ralph Corderoy) Date: Tue, 28 Nov 2017 23:25:24 +0000 Subject: [TUHS] /bin/true (was basic tools / Universal Unix) In-Reply-To: References: <009a01d348e9$e3dce200$ab96a600$@ronnatalie.com> Message-ID: <20171128232525.01EA721518@orac.inputplus.co.uk> Hi Werner, > > * Exit with a zero value as quickly as possible. > ... > > _exit(0); ... > Then again _exit(0) is a useless optimization. It saves three closes > for files that are bound to be closed at image tear down. It also avoids checking the atexit(3) list, yet here on Linux x86_64 with glibc 2.26-6, `_exit(0)' is more instructions to execute than `return 0', as measured with `perf stat -e instructions ./exit'. `return 0' can just do xor %eax, %eax retq whereas _exit makes room on the stack before the JSR, and that's through the dynamic-linking table, `PLT'. sub $0x8, %rsp xor %edi, %edi callq 530 <_exit at plt> Even with `-static' linking, `return 0' wins on instruction count. -- Cheers, Ralph. https://plus.google.com/+RalphCorderoy From ron at ronnatalie.com Wed Nov 29 09:26:08 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Tue, 28 Nov 2017 18:26:08 -0500 Subject: [TUHS] Unix on PDP8? In-Reply-To: References: Message-ID: <007501d368a0$45b740d0$d125c270$@ronnatalie.com> Ø People like me did not start to "port" UNIX until the 16 bit micro's show up -- i.e. the 68000, Z8000, 8086 where you could build a 'microcomputer' that was close to the power of the 'minicomputer' for a lot less money. Mike Muuss’s standard answer to any question was that we could put UNIX on it. This is how he wrested the RSTS-running PDP-11/45 away from the EE department to start with (only proviso is that he had to get Basic+ running on it). At BRL, he picked up a bunch of PDP-11 variants that were lying around (particularly an 11/34-based RJE system for the Cyber mainframe. We pitched the card reader but used the printer, the vector general graphics system, and the DQ-11/modem combo). Then when BRL commissioned the HEP to be built and nobody had a clue what software to put on it, we launched into the port on the HEP. This was 1982. It our first foray into a non PDP/VAX platform. Amusingly, I had a manager show up in my office and tell me that in a few years they would have the performance of a VAX in a little cubic foot box I could have on my desk all to myself and I’d be happy. It was then I coined “Ron’s rule of computing.” Our expectations grow with the technology. Ron always needs a computer “this” (holding my hands out to approximately the width of a 780 cpu cabinet) big. It worked for many years but I have to admit around 2000 or so, I started being happy with comptuers about the size of 2 drawer filing cabinets. -------------- next part -------------- An HTML attachment was scrubbed... URL: From doug at cs.dartmouth.edu Wed Nov 29 11:23:41 2017 From: doug at cs.dartmouth.edu (Doug McIlroy) Date: Tue, 28 Nov 2017 20:23:41 -0500 Subject: [TUHS] Dash options Message-ID: <201711290123.vAT1NfXT028532@coolidge.cs.Dartmouth.EDU> Early on, when multics was understood to have one big, segemented address space, it was expected that PL/I name qualification ($) would serve to address segments. I do not know whether that idea was actually implemented. Doug From ggm at algebras.org Wed Nov 29 11:37:04 2017 From: ggm at algebras.org (George Michaelson) Date: Wed, 29 Nov 2017 11:37:04 +1000 Subject: [TUHS] Dash options In-Reply-To: <201711290123.vAT1NfXT028532@coolidge.cs.Dartmouth.EDU> References: <201711290123.vAT1NfXT028532@coolidge.cs.Dartmouth.EDU> Message-ID: I had an interesting conversation with people years gone by about the logistical benefits or hindrances of being explicit about device in the path, which vax/vms did sys$system: type statements. I'm now fully acculturated to not want it, but in a world where the operating system did less for you, explicitly flagging the device a la PIP (yes, Decisms) had some basis in reality: you said what you expected the device level events were, to achieve the outcome. So distinguishing device semantically, for some people, reductionists, worked. masking the device, by intruding (sorry, bad word) a path as a blinding, anonymous namespace, with device inferred.. that was an inferential leap. I think newcastle connection went further embedding /.../ as a denotation of network-jump to move to other devices. WIsh that had taken off, fitted the . and .. semantic model nicely inside the /path/to/thing I used at least one OS which had path.to.thing via dots, and rather oddly, only DESCENT. you couldn't walk backwards. so directory descent in the JCL was possible, but to go up one level you had to go down from the top, N-1 path elements from position N. Bizarre, suggesting it wasn't a doubly linked list? switches, flags, options, three words for the same thing... a lot of this stuff was being defined in a time when we still used languages where file IO was bound to IO numbers and about batch entry bindings where the 1..n range of devices was literally which "thing" fed the input or output stream, not just an ioctl() convenience binding. I never entirely got why in my fortran I was using IO 2 so much. what happened to 0 and 1? or the pascal file pointer. what an odd construct that was looking backwards from more abstracted file position, but then think what seek() is actually doing.. -G On Wed, Nov 29, 2017 at 11:23 AM, Doug McIlroy wrote: > Early on, when multics was understood to have > one big, segemented address space, it was expected > that PL/I name qualification ($) would serve to address > segments. I do not know whether that idea was > actually implemented. > > Doug From charles.unix.pro at gmail.com Wed Nov 29 12:22:37 2017 From: charles.unix.pro at gmail.com (Charles Anthony) Date: Tue, 28 Nov 2017 18:22:37 -0800 Subject: [TUHS] Dash options In-Reply-To: <201711290123.vAT1NfXT028532@coolidge.cs.Dartmouth.EDU> References: <201711290123.vAT1NfXT028532@coolidge.cs.Dartmouth.EDU> Message-ID: On Tue, Nov 28, 2017 at 5:23 PM, Doug McIlroy wrote: > Early on, when multics was understood to have > one big, segemented address space, it was expected > that PL/I name qualification ($) would serve to address > segments. I do not know whether that idea was > actually implemented. > > If I understand you correctly, approximately yes. Entry points are usually defined as "foo$bar", where "foo" is the segment name, and "bar" an entry point in the segment symbol table. I believe that the degerate case of "foo$" is treated as "foo$foo" by the shell. In the following example, the segment name is "hello", the entry point "world". *edm hello.pl1* Segment not found. Input. *world: procedure options(main);* * dcl sysprint file output print stream;* * put list ("Multics rulez; UNIX droolz");* * put skip;* *end world;* *.* Edit. *w* *q* r 16:45 0.050 3 *pl1 hello* PL/1 33e r 16:45 0.128 36 *hello$world* Multics rulez; UNIX droolz r 16:45 0.033 23 -- Charles -------------- next part -------------- An HTML attachment was scrubbed... URL: From lars at nocrew.org Wed Nov 29 16:56:14 2017 From: lars at nocrew.org (Lars Brinkhoff) Date: Wed, 29 Nov 2017 06:56:14 +0000 Subject: [TUHS] Unix on PDP8? In-Reply-To: (Will Senn's message of "Tue, 28 Nov 2017 13:55:31 -0600") References: Message-ID: <7wr2sh60a9.fsf@junk.nocrew.org> Will Senn wrote: > Was Unix ever ported to a PDP8, or any other 12 bit environment, for > that matter? There are Unix-like systems for 8-bit micros which might possibly be adapted for PDP-8. Lunix, UZI, FUZIX... > I've been messing around in the PDP8 emulation world and enjoying the > excursion into simplified ISA and memory architectures. The tiny instruction set is surprisingly versatile! From jnc at mercury.lcs.mit.edu Thu Nov 30 00:03:26 2017 From: jnc at mercury.lcs.mit.edu (Noel Chiappa) Date: Wed, 29 Nov 2017 09:03:26 -0500 (EST) Subject: [TUHS] Dash options Message-ID: <20171129140326.6298D18C096@mercury.lcs.mit.edu> > From: Charles Anthony > Entry points are usually defined as "foo$bar", where "foo" is the > segment name, and "bar" an entry point in the segment symbol table. I > believe that the degerate case of "foo$" is treated as "foo$foo" by the > shell. So I'm curious about how this, and additional names, interact. (For those who aren't familiar with Multics, a segment [file, sort of] can have multiple names. This is sort of like 'hard links' in Unix, except that in Multics one name, the "primary name" is very slightly preeminent. See here: http://web.mit.edu/multics-history/source/Multics/mdds/mdd006.compout page 2-5, for more, if you're interested.) So if I have a segment with primary name 'foo', and additional names 'bar' and 'zap', and I say 'zap' to the Multics shell, I assume it does a call to zap$zap, which finds the segment with the primary name 'foo', and calls the 'zap' entry therein? > Multics rulez; UNIX droolz Dude, you clearly have Very Large brass ones to send that to this list! :-) Noel From clemc at ccc.com Thu Nov 30 00:05:22 2017 From: clemc at ccc.com (Clem Cole) Date: Wed, 29 Nov 2017 09:05:22 -0500 Subject: [TUHS] Unix on PDP8? In-Reply-To: <7wr2sh60a9.fsf@junk.nocrew.org> References: <7wr2sh60a9.fsf@junk.nocrew.org> Message-ID: On Wed, Nov 29, 2017 at 1:56 AM, Lars Brinkhoff wrote: > > The tiny instruction set is surprisingly versatile! > ​The precursor to today's VHDL and Verilog was a language called ISPL / ISPS. There were many ISPS ​descriptions of different systems being written in those days. I bring it up because, the PDP-8 - aka 'mini', ISP was a single 66-line lineprinter page long. Which was astounding, when you compared it to the ISP descriptions of the PDP-9/10, the IBM 360 *etc*... Even the PDP-11 ISP is a many pages because of all the addressing modes. Remember, Gordon Bell's term 'mini-computer' was not describing a 'small' computer, but instead it was a 'minimal computer.' It was only when the microprocessors were created a few years later that the term was warped to mean 'small' by the computer press. As a side note of UNIX history (thank you Will for the reminder) ... another piece of my to do list is get ISPS running again. The original version was in BLISS-10, then compatible BLISS (Vax) on VMS which Danny Klein and I worked on. The BLISS version generated net-lists for DEC PDP-16 RTM modules, [which I'm sad to say are a lost art and I fear may have been lost to history. I may be one of the last groups that ever designed with them. It was DEC productization of the 'flip chips' originally created for the PDP-7 and PDP-8. IIRC you can read about them in the DEC 'blue book']. But the late Ted Kowalski's PhD thesis was a C implementation that ran on the CMU's V6++ UNIX / PDP-11 [that actually generated moclisp as the parse trees - very interesting system]. Ted wanted to go to transistors directly in the back-end. Working with this thesis advisor at the time, (Don Thomas) an improved version of Ted's work, would become VDHL - which Don wrote all the books, in the 1990s. Besides traditional word processing (troff et al) and C program development, ISPS was one of the first 'production' use of UNIX I saw. Trying to generate 'chips' automatically from HW descriptions in the late 1970s. Anyway, if you find a copy of the Sieworwick, Bell, and Newell's book 'Computer Structures, Reading and Examples', there is a companion volume that has many of the ISPS descriptions of the machines discussed in the main text. As Will's note about HP points out, as historians we should try to find them all and get them in bitsavers or the like. I know I have some of the ISPs for the micro's and the PDP-11 on hardcopy in a filing cabinet (I just ran into them a few weeks ago when looking for something else), but I should have them on tape. It would be a shame to lose those. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ron at ronnatalie.com Thu Nov 30 00:31:44 2017 From: ron at ronnatalie.com (Ron Natalie) Date: Wed, 29 Nov 2017 09:31:44 -0500 Subject: [TUHS] Unix on PDP8? In-Reply-To: <7wr2sh60a9.fsf@junk.nocrew.org> References: <7wr2sh60a9.fsf@junk.nocrew.org> Message-ID: <00cf01d3691e$c80766e0$581634a0$@ronnatalie.com> C itself is going to be difficult on the PDP-8. Too much ingrained (and now codified by ANSI/ISO) that requires shorts to be at least 16 bits and longs to be at least 32 bits, neither of which the 8 supports well. Even the EAE or FP modules only added limited 24 bit support. -----Original Message----- From: TUHS [mailto:tuhs-bounces at minnie.tuhs.org] On Behalf Of Lars Brinkhoff Sent: Wednesday, November 29, 2017 1:56 AM To: Will Senn Cc: Tuhs Subject: Re: [TUHS] Unix on PDP8? Will Senn wrote: > Was Unix ever ported to a PDP8, or any other 12 bit environment, for > that matter? There are Unix-like systems for 8-bit micros which might possibly be adapted for PDP-8. Lunix, UZI, FUZIX... > I've been messing around in the PDP8 emulation world and enjoying the > excursion into simplified ISA and memory architectures. The tiny instruction set is surprisingly versatile! From will.senn at gmail.com Thu Nov 30 05:00:57 2017 From: will.senn at gmail.com (Will Senn) Date: Wed, 29 Nov 2017 19:00:57 -0000 Subject: [TUHS] Literal character escapes in v7 In-Reply-To: References: <201711070434.vA74YlrN020951@freefriends.org> Message-ID: <1eee3597-4b32-0153-26de-87a973892b07@gmail.com> On 11/6/17 10:49 PM, Will Senn wrote: > On 11/6/17 10:34 PM, arnold at skeeve.com wrote: >> Will Senn wrote: >> >>> I'm not looking for code review, but the code is intended to replace >>> the >>> tabs and backspaces with \t and \b respectively, but I haven't been >>> able >>> to test it because I can't seem to make a backspace character appear in >>> input. In later unices, ^V followed by the backspace would work, but >>> that's not part of v7. Backspace itself is my erase character, so >>> anytime I just type it, it backspaces :). >>     awk 'BEGIN { print "a\bc\td" ; exit }' | your-program >> >> Enjoy, >> >> Arnold >> >> P.S. The exit is needed for V7 awk, IIRC, not modern ones. > > This is a good idea, but... Here's my results from just running awk > for \t, \n, and \b: > > $ awk 'BEGIN { print "a\tb" ; exit }'; > a       b > $ awk 'BEGIN { print "a\nb" ; exit }' > anb > $ awk 'BEGIN { print "a\bb" ; exit }' > abb > $ > > Strange. It looks like it's just ignoring the backslash in the case of > \n and \b. > > Will > I wrote a c program to print a string in line with the suggestion to use awk and my code worked, but it's still odd that the above didn't work. Will -- GPG Fingerprint: 68F4 B3BD 1730 555A 4462 7D45 3EAA 5B6D A982 BAAF From steffen at sdaoden.eu Thu Nov 30 05:16:43 2017 From: steffen at sdaoden.eu (Steffen Nurpmeso) Date: Wed, 29 Nov 2017 20:16:43 +0100 Subject: [TUHS] Dash options In-Reply-To: <20171128062845.GB5277@eureka.lemis.com> References: <201711280551.vAS5pDZt014974@darkstar.fourwinds.com> <20171128062845.GB5277@eureka.lemis.com> Message-ID: <20171129191643.XPHH3%steffen@sdaoden.eu> Greg 'groggy' Lehey wrote: |On Monday, 27 November 2017 at 21:51:13 -0800, Jon Steinhart wrote: |> Does anybody know the history of dash options? Were they |> a UNIX thing or did UNIX borrow them from something earlier? | |If you mean specificall the dash, I can't help much. But there were |similar ideas elsewhere. UNIVAC EXEC-8 (for the 1108, late 1960s) had |options that followed the command with a comma, like: | | @RUN,G GOPU,STANDARD,STANDARD | @ADD,PL ASGDMS . ASSIGNIERT DATENBASIS "WEIßT DATENBASIS ZU" or "ZUWEISUNG DATENBASIS" | @ASG,A PF. . PF IST PROGRAMM-FILE MIT GOPU "PF IST PROGRAMM-DATEI MIT GOPU" or so. | @XQT PF.GOPU | |The letters after the comma were option letters, conveniently packed |into a machine word so that they didn't require parsing. Or. Or the person who wrote the code above knew how German will look like 50 years later. Which could very well be, of course. I am still impressed by the Lidlicker film the URL of which was posted on this list, and the spirit and, well, let me say progressiveness of the intellect of all the portrayed persons. It was elevating to witness and also, a bit, become reminded of this America in 2017. A few weeks ago i could not do any different but spent quite a few hours reading and thinking about, and admiring Jacqueline Kennedy! I was born almost a decade later, but nonetheless seeing her sitting straight beside the remains of her husband, i will never admire this woman enough. And her naturalness. --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 Nov 21 12:41:11 2017 From: lm at mcvoy.com (Larry McVoy) Date: Mon, 20 Nov 2017 18:41:11 -0800 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> <20171120195618.GK9146@mcvoy.com> <05af01d36259$5e0873e0$1a195ba0$@ronnatalie.com> <20171120234515.GB9093@mcvoy.com> Message-ID: <20171121024111.GO9146@mcvoy.com> So tape I can see being more weird, but isn't raw disk just "don't put it in buffer cache"? >From what I've been able to gather early tape in Unix was dicey, something about the driver doing seek. Was there more to it than that? On Tue, Nov 21, 2017 at 02:33:55AM +0000, Clem Cole wrote: > It???s not so much that they don???t mix, it???s not quite the same. Some > coprocessor ideas work really well into the Unix I/O model, others don't. > Raw disk and tape I/O ala a PDP11 or VAX for instance is not easy on an > IBM channel controller or a CDC PPU. > > > > > > > > > On Mon, Nov 20, 2017 at 6:45 PM Larry McVoy wrote: > > > On Mon, Nov 20, 2017 at 06:43:28PM -0500, Ron Natalie wrote: > > > > > > > > > > I get that PDP-11 and VAX used memory mapped I/O but was that somehow > > > exposed above the device driver layer? If so, I missed that, because I > > had > > > no conceptual or technical problem with talking to an I/O > > > > > > > channel, it was pretty easy. And I suck at writing drivers. > > > > > > There's nothing that restricts a device driver to memory mapped I/O. > > You > > > do what ever you have to do to initiate the I/O. Even the x86's > > originally > > > used special instructions to start the I/O (in/out). The DENELCOR HEP > > > supercomputer (we did this port around 1983) we had to bounce I/O > > requests > > > off a separate I/O processor different from where the kernel was running. > > > Similar constucts were used on other machines. > > > > Yeah, that's what I thought. But other people were saying that I/O > > processors and Unix didn't mix. I don't get that, seems like whatever > > the model is is hidden under the driver, that's the whole point of the > > driver design is it not? > > > -- > Sent from a handheld expect more typos than usual -- --- Larry McVoy lm at mcvoy.com http://www.mcvoy.com/lm From charles.unix.pro at gmail.com Thu Nov 30 06:29:42 2017 From: charles.unix.pro at gmail.com (Charles Anthony) Date: Wed, 29 Nov 2017 12:29:42 -0800 Subject: [TUHS] Dash options In-Reply-To: <20171129140326.6298D18C096@mercury.lcs.mit.edu> References: <20171129140326.6298D18C096@mercury.lcs.mit.edu> Message-ID: On Wed, Nov 29, 2017 at 6:03 AM, Noel Chiappa wrote: > > From: Charles Anthony > > > Entry points are usually defined as "foo$bar", where "foo" is the > > segment name, and "bar" an entry point in the segment symbol table. I > > believe that the degerate case of "foo$" is treated as "foo$foo" by > the > > shell. > > So I'm curious about how this, and additional names, interact. (For those > who > aren't familiar with Multics, a segment [file, sort of] can have multiple > names. This is sort of like 'hard links' in Unix, except that in Multics > one > name, the "primary name" is very slightly preeminent. See here: > > http://web.mit.edu/multics-history/source/Multics/mdds/mdd006.compout > > page 2-5, for more, if you're interested.) > > They are also different in an important way: the additional name is part of the segment, not of the directory. If the segment is moved to a different directory, the names move with it. > So if I have a segment with primary name 'foo', and additional names 'bar' > and > 'zap', and I say 'zap' to the Multics shell, I assume it does a call to > zap$zap, which finds the segment with the primary name 'foo', and calls the > 'zap' entry therein? > > Turns out that it does (I thought it didn't, but I checked first). Multics has a search path mechanism (like $PATH); the directories listed therein are searched for a matching segment name or additional name. For the hello$world example, the command "an hello world" would add the name "world" to the "hello" segment and then the command "world" would become equivalent to "hello$world". For the case of "bound" segments, (several object segments linked together in a single segment, and the intersegment links "pre-snapped", the binder control file (similar to ld's ifile) would list the entry points that were to be made externally visible, and the binder automatically adds those names to the the bound segment: Eg, teco lines in "bound_teco"; the "ls" command sees that "teco" is a name of the "bound_teco" segment. ls >tools>teco Segments = 1, Lengths = 9. re 9 bound_teco_ teco_ssd teco teco_get_macro_ teco_error teco_error_mode get_temp_seg_ assign_temp_seg_id_ release_temp_seg_ release_temp_segs_all_ get_seg_ptr_ get_seg_ptr_arg_ get_seg_ptr_full_path_ get_seg_ptr_search_ release_seg_ptr_ > > > Multics rulez; UNIX droolz > > Dude, you clearly have Very Large brass ones to send that to this list! :-) > > Thank you (I think). Should be a nice change from the Microsoft fan boys, tho. -- Charles -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Thu Nov 30 08:11:19 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 30 Nov 2017 09:11:19 +1100 (EST) Subject: [TUHS] Unix on PDP8? In-Reply-To: <00cf01d3691e$c80766e0$581634a0$@ronnatalie.com> References: <7wr2sh60a9.fsf@junk.nocrew.org> <00cf01d3691e$c80766e0$581634a0$@ronnatalie.com> Message-ID: On Wed, 29 Nov 2017, Ron Natalie wrote: > C itself is going to be difficult on the PDP-8. Too much ingrained (and > now codified by ANSI/ISO) that requires shorts to be at least 16 bits > and longs to be at least 32 bits, neither of which the 8 supports well. > Even the EAE or FP modules only added limited 24 bit support. You could start with (an early) Minix, I guess; we ran it on a PDT (I think) with 2 x RX-05 floppies. Slow, but it worked, sort of. -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From wkt at tuhs.org Thu Nov 30 08:28:12 2017 From: wkt at tuhs.org (Warren Toomey) Date: Thu, 30 Nov 2017 08:28:12 +1000 Subject: [TUHS] Unix on PDP8? In-Reply-To: References: <7wr2sh60a9.fsf@junk.nocrew.org> <00cf01d3691e$c80766e0$581634a0$@ronnatalie.com> Message-ID: <20171129222812.GA9345@minnie.tuhs.org> On Thu, Nov 30, 2017 at 09:11:19AM +1100, Dave Horsfall wrote: >> C itself is going to be difficult on the PDP-8. Yes, as noted on this page: http://so-much-stuff.com/pdp8/C/C.php > You could start with (an early) Minix, I guess; we ran it on a PDT (I > think) with 2 x RX-05 floppies. Slow, but it worked, sort of. You mean Xinu, perhaps? Minix was always an 80x86 and 680x0 system. There is also xv6: https://pdos.csail.mit.edu/6.828/2017/xv6.html with a small monolithic kernel. I've added a BSD library and runtime to the kernel here: https://github.com/DoctorWkt/xv6-freebsd Of course, you could always go retro and try Mini Unix :) Cheers, Warren From dave at horsfall.org Thu Nov 30 08:42:51 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 30 Nov 2017 09:42:51 +1100 (EST) Subject: [TUHS] UNIX on S/370 In-Reply-To: <20171121024111.GO9146@mcvoy.com> References: <201711200350.vAK3omwQ013495@freefriends.org> <20171120195618.GK9146@mcvoy.com> <05af01d36259$5e0873e0$1a195ba0$@ronnatalie.com> <20171120234515.GB9093@mcvoy.com> <20171121024111.GO9146@mcvoy.com> Message-ID: On Mon, 20 Nov 2017, Larry McVoy wrote: > So tape I can see being more weird, but isn't raw disk just "don't put > it in buffer cache"? DMA too, hence the process is locked in core. I think the read/write had to be a multiple of 512 bytes as well (I lost my Edition 6 manuals along with my treasured -- and original! -- Lions books in a house move). > From what I've been able to gather early tape in Unix was dicey, > something about the driver doing seek. Was there more to it than that? IIRC, the driver kept track of the current block under the head, and issued forward/backward skips accordingly; I have no idea whether SimH gets that right (as opposed to doing a random seek). (It bloody well worked, Mr Minnich, OK?) -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From rminnich at gmail.com Thu Nov 30 08:55:06 2017 From: rminnich at gmail.com (ron minnich) Date: Wed, 29 Nov 2017 22:55:06 +0000 Subject: [TUHS] UNIX on S/370 In-Reply-To: References: <201711200350.vAK3omwQ013495@freefriends.org> <20171120195618.GK9146@mcvoy.com> <05af01d36259$5e0873e0$1a195ba0$@ronnatalie.com> <20171120234515.GB9093@mcvoy.com> <20171121024111.GO9146@mcvoy.com> Message-ID: On Wed, Nov 29, 2017 at 2:43 PM Dave Horsfall wrote: > > > (It bloody well worked, Mr Minnich, OK?) > > ? what'd I say? -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave at horsfall.org Thu Nov 30 09:12:42 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 30 Nov 2017 10:12:42 +1100 (EST) Subject: [TUHS] Unix on PDP8? In-Reply-To: <20171129222812.GA9345@minnie.tuhs.org> References: <7wr2sh60a9.fsf@junk.nocrew.org> <00cf01d3691e$c80766e0$581634a0$@ronnatalie.com> <20171129222812.GA9345@minnie.tuhs.org> Message-ID: On Thu, 30 Nov 2017, Warren Toomey wrote: >> You could start with (an early) Minix, I guess; we ran it on a PDT (I >> think) with 2 x RX-05 floppies. Slow, but it worked, sort of. > > You mean Xinu, perhaps? Minix was always an 80x86 and 680x0 system. Can't remember; we're talking late 70s / early 80s, and my organic associative memory ain't the best these days. I was busy running a network of 11/40s, squeezing as much of V7 into V6 as I could, and talking the poxy UT-200 protocol for RJE (the original purpose of our 11/40s) with its broken implementation on the Cyber 72. Damn; I wish I still had those CSU tapes, but they'd be unreadable by now (IMHO my "ei.c" driver was a work of art). > Of course, you could always go retro and try Mini Unix :) That rings a bell; we're talking about the early UNSW Unix days (CSU, AGSM, Basser, Elec Eng, etc). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From rmswierczek at gmail.com Thu Nov 30 10:53:24 2017 From: rmswierczek at gmail.com (Robert Swierczek) Date: Wed, 29 Nov 2017 19:53:24 -0500 Subject: [TUHS] Unix on PDP8? In-Reply-To: References: <7wr2sh60a9.fsf@junk.nocrew.org> Message-ID: > Anyway, if you find a copy of the Sieworwick, Bell, and Newell's book > 'Computer Structures, Reading and Examples', there is a companion volume > that has many of the ISPS descriptions of the machines discussed in the main > text. It looks like archive.org has a copy as part of the Boston Computer Museum collection: https://archive.org/details/computerstructures00bell including what looks to be the companion volume you described: https://archive.org/details/designanalysisof0000barb From rmswierczek at gmail.com Thu Nov 30 11:17:42 2017 From: rmswierczek at gmail.com (Robert Swierczek) Date: Wed, 29 Nov 2017 20:17:42 -0500 Subject: [TUHS] Unix on PDP8? In-Reply-To: <00cf01d3691e$c80766e0$581634a0$@ronnatalie.com> References: <7wr2sh60a9.fsf@junk.nocrew.org> <00cf01d3691e$c80766e0$581634a0$@ronnatalie.com> Message-ID: > There are Unix-like systems for 8-bit micros which might possibly be adapted > for PDP-8. Lunix, UZI, FUZIX... Maybe pdp7-unix could be ported/rewritten. I'm guessing the available memory would be the biggest issue. > C itself is going to be difficult on the PDP-8. Perhaps the B interpreter from pdp7-unix can be be simplified further? From dave at horsfall.org Thu Nov 30 12:37:03 2017 From: dave at horsfall.org (Dave Horsfall) Date: Thu, 30 Nov 2017 13:37:03 +1100 (EST) Subject: [TUHS] Unix on PDP8? In-Reply-To: References: <7wr2sh60a9.fsf@junk.nocrew.org> <00cf01d3691e$c80766e0$581634a0$@ronnatalie.com> Message-ID: On Wed, 29 Nov 2017, Robert Swierczek wrote: > Maybe pdp7-unix could be ported/rewritten. I'm guessing the available > memory would be the biggest issue. Wasn't extended memory on the -8 bank-switched via the IOT instruction? It reminds me of what we did with AUSAM back at UNSW; the current buffer "b" (similar to "u") was mapped via KISA5 (?) into whatever was at 0150000 (?), so you could have as many buffers as you wanted, limited by physical memory (I think). -- Dave Horsfall DTM (VK2KFU) "Those who don't understand security will suffer." From lm at mcvoy.com Thu Nov 30 12:48:16 2017 From: lm at mcvoy.com (Larry McVoy) Date: Wed, 29 Nov 2017 18:48:16 -0800 Subject: [TUHS] RIP J.F.Ossanna In-Reply-To: <20171129190055.9ZFVf%steffen@sdaoden.eu> References: <003d01d367dc$cd3e8910$67bb9b30$@ronnatalie.com> <20171128001543.GG3430@mcvoy.com> <20171129190055.9ZFVf%steffen@sdaoden.eu> Message-ID: <20171130024816.GI16794@mcvoy.com> On Wed, Nov 29, 2017 at 08:00:55PM +0100, Steffen Nurpmeso wrote: > Larry McVoy wrote: > |On Mon, Nov 27, 2017 at 07:06:51PM -0500, Ron Natalie wrote: > |> 1977 marks my entry into the world of UNIX. I've always stated there was > |> only one person who truly understood nroff and he was dead. > |> I mourn the fact that of all the UNIX greats I've met, I missed out on > |> Ossanna. > > |I think one could argue that James Clark has a pretty good handle on > |roff (having written the GNU version of nroff/troff/tbl/eqn/pic etc). > > And Werner Lemberg, who carried the torch for the last almost two > decades. He brought in some really great improvements, like > arguments for strings, which allows to write pretty much TeX like > a.k.a. inline if you want to (as in "this is \*[I talic] text"). Yep. James exited stage left and Werner stepped in. I mean no disrespect to anyone, I was just saying that James has a really good handle on roff, he redid it all. I admire him for doing so (even though I curse the fact that he did it in C++). From emu at e-bbes.com Thu Nov 30 18:34:35 2017 From: emu at e-bbes.com (emanuel stiebler) Date: Thu, 30 Nov 2017 01:34:35 -0700 Subject: [TUHS] Unix on PDP8? In-Reply-To: References: <7wr2sh60a9.fsf@junk.nocrew.org> Message-ID: <5a08e1e5-bd66-ce07-c24c-ca7c5a04ae9e@e-bbes.com> On 2017-11-29 07:05, Clem Cole wrote: > Anyway, if you find a copy of the Sieworwick, Bell, and Newell's book > 'Computer Structures, Reading and Examples', there is a companion volume > that has many of the ISPS descriptions of the machines discussed in the > main text.   As Will's note about HP points out, as historians we should > try to find them all and get them in bitsavers or the like. > I know I > have some of the ISPs for the micro's and the PDP-11 on hardcopy in a > filing cabinet (I just ran into them a few weeks ago when looking for > something else), but I should have them on tape.   It would be a shame > to lose those. Just send them to bitsavers, to save them ...