The first edition ran on pdp-11, not pdp-7.
Tukey buttered parsnips at the labs, but Brits did
so several centuries before.
Contrary to urban legend, patent was not invoked to
justify the Unix pdp-11; word-processing was. The
quiz does not make this mistake.
The phototypesetter did not smell. The chemicals
for (externally) devoloping photo paper did.
Shahpazian is Dick Shahpazian; Maranzano is Joe Maranzano.
cagbef addresses out of bounds.
I appreciate Rob's discretion about the Waterloo theft.
Doug
Hi folks,
I've been adding a history subsection to the groff_man(7) page for the
next groff release (date TBD) and thanks to the TUHS archives I've been
able to answer almost all the questions I had about the origins of the
man(7) language's macros and registers (number and string).
I'm inlining my findings in rendered and source form below, but there's
one feature I haven't been able to sort out--where did .SB (small bold)
come from? The oldest groff release I can find online is 1.02 (June
1991), and .SB is already there, but I can't find it anywhere else. Is
it a GNUism? Did it perhaps appear in a proprietary Unix first?
I'm aware of Kristaps Dzonsons's history of Unix man pages[1], but
unfortunately for me that is more of a history of the *roff system(s),
and does not have much detail about the evolution of the man(7) macro
language itself.
If you can shed any light on this, I'd appreciate it!
History
Version 7 Unix (1979) supported all of the macros described in this
page not listed as extensions, except .P, .SB, and the deprecated .AT
and .UC. The only string registers defined were R and S; no number
registers were documented. .UC appeared in 3BSD (1980) and .P in AT&T
Unix System III (1980). 4BSD (1980) added lq and rq string registers.
4.3BSD (1986) added .AT and AT&T's .P. DEC Ultrix 11 (1988) added the
Tm string register.
.\" ====================================================================
.SS History
.\" ====================================================================
.
Version\~7 Unix (1979) supported all of the macros described in this
page not listed as extensions,
except
.BR .P ,
.BR .SB ,
.\" .SS was implemented in tmac.an but not documented in man(7).
and the deprecated
.BR .AT
and
.BR .UC .
.
The only string registers defined were
.B R
and
.BR S ;
no number registers were documented.
.
.B .UC
appeared in 3BSD (1980) and
.B .P
in AT&T Unix System\~III (1980).
.
4BSD (1980) added
.\" undocumented .VS and .VE macros to mark regions with 12-point box
.\" rules (\[br]) as margin characters, as well as...
.B lq
and
.B rq
string registers.
.
4.3BSD (1986) added
.\" undocumented .DS and .DE macros for "displays", which are .RS/.RE
.\" wrappers with filling disabled and vertical space of 1v before and
.\" .5v after, as well as...
.B .AT
and
AT&T's
.BR .P .
.
DEC Ultrix\~11 (1988) added the
.B Tm
string register.
.
.\" TODO: Determine provenance of .SB.
Regards,
Branden
[1] https://manpages.bsd.lv/history.html
On 1/22/20, Noel Chiappa <jnc(a)mercury.lcs.mit.edu> wrote:
> Pretty interesting machine, if you study its instruction set, BTW; with no
> stack, subroutines are 'interesting'.
Another machine family like that was the CDC 6x00 and 7x00 machines of
the late 1960s and early 1970s.
I worked on a CDC 6400 for a few years. A call was done by storing
the return address in the first word of the called routine, and
jumping to its second word. The return was done with an indirect jump
through the first word.
That was fine for Fortran, which at the time had no concept of
recursion. However, Urs Ammann implemented a compiler for Niklaus
Wirth's Pascal language on a CDC 6400 (or 6600) in Zurich, and he had
to simulate a stack. See
On Code Generation in a PASCAL Compiler
Software --- Practice and Experience 7(3) 391--423 May/June 1977
https://doi.org/10.1002/spe.4380070311
I have read that article in the past, but don't have download access
from our academic library to get a copy to refresh my memory.
-------------------------------------------------------------------------------
- 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(a)math.utah.edu -
- 155 S 1400 E RM 233 beebe(a)acm.org beebe(a)computer.org -
- Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------
Kind of scary what's in my basement. For those of you building UNIX
workstations in the early days, I have a big fat notebook full of
Weitek floating point chip specs, many of which are marked as preliminary.
Also a set of CORBA specs. Again, low-hanging fruit that's getting
recycled unless anyone has a use for them.
In the not completely sure that I want to part with them yet for some
strange reason, I have a set of SunOS manuals.
Also, if anyone collects old hardware I have a SparcStation 20 with a
slightly modified SunOS sitting around and an Ultra 60 Solaris box.
Jon
There is more in that issue of BSTJ, and indeed it seems this was a precursor.
https://ia801905.us.archive.org/25/items/bstj51-6-1147/bstj51-6-1147_text.p…https://ia801603.us.archive.org/0/items/bstj51-6-1167/bstj51-6-1167_text.pdf
The first paper makes mention of repeaters starting to self oscillate, and a redesign being underway.
There is a possibility that a Unix PDP11 was connected to this earlier network prior to Spider existing, in which case the accepted quiz answer would be wrong.
>> Ugh. Memory lane has a lot of potholes. This was a really long time ago.
>
> Many thanks for that post - really interesting!
>
> I had to look up "Pierce Network", and found it described in the Bell Journal:
> https://ia801903.us.archive.org/31/items/bstj51-6-1133/bstj51-6-1133_text.p…
>
> In my reading the Spider network is a type of Pierce network.
>
> However, the network that you remember is indeed most likely different from Spider:
> - it was coax based, whereas the Spider line was a twisted pair
> - there was more than one, whereas Spider only ever had one (operational) loop
>
> Condon and Weller are acknowledged in the report about Spider as having done many of its hardware details. The report discusses learnings from the project and having to tune repeaters is not among them (but another operational issue with its 'line access modules’ is discussed).
>
> All in all, maybe these coax loops were pre-cursors to the Spider network, without a switch on the loop (“C” nodes in the Pierce paper). It makes sense to first try out the electrical and line data protocol before starting work on higher level functions.
>
> I have no idea what a GLANCE G is...
Was looking for my DomainOS manuals and came across a fat notebook
containing the DECNET Phase III spec. Anyone want it? Not anything
that I need to keep and low-hanging fruit on the decluttering list.
Jon
> I have vague memories here that maybe Heinz can help with if his are any better.
> I believe that Sandy played a part in "the loop" or "the ring" or whatever it
> was called that we had connecting our Honeywell 516 to peripherals. I do
> remember the 74S00 repeaters because of the amount of time that Dave Weller
> spent tuning them when the error rate got high. Also, being a loop, Joe
> Condon used to pull his connectors out of the wall whenever people weren't
> showing up to a meeting on time. I don't know whether our network was a
> forerunner to the spider network.
It most likely was Spider - it became operational in 1972. The vist report that I linked to earlier also says:
"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.”
It would be interesting to know more about the H516’s and Spider, any other recollections?
I can answer some of the below, as I was looking into that a few years ago.
> 81. Q: What was the first Unix network?
> A: spider
> You thought it was Datakit, didn't you? But Sandy Fraser had an earlier
> project.
>
> When did Alexander G Fraser's spider cell network happen? For that matter,
> when did Datakit happen? I can't find references to either start date on
> line (nor anything on spider except for references to it in Dr Fraser's
> bio). I can find references to Datakit in 1978 or so.
Spider was designed between 1969 and 1974 - the final lab report (#23) dates from December 1974. It was based around a serial loop running at T1 signalling speed (~1.5Mhz). Here is a video recorded by Dr. Fraser about it: https://www.youtube.com/watch?v=ojRtJ1U6Qzw (first half is about Spider, second half about Datakit).
It connected to its hosts via a (discrete TTL-based) microcontroller or “TIU” and seems to have been connected almost immediately to Unix systems: the oldest driver I have been able to locate is in the V4 tree (https://minnie.tuhs.org/cgi-bin/utree.pl?file=V4/nsys/dmr/tdir/tiu.c) It used a DMA-based parallel interface into the PDP11. As such, it seems to have been much faster than the typical Datakit connection later - but I know too little about Datakit to be sure.
There is an interesting visit report from 1975 that discusses some of the stuff that was done with Spider here: https://stacks.stanford.edu/file/druid:rq704hx4375/rq704hx4375.pdf
Beyond those experiments I think Spider usage was limited to file serving (’nfs’ and ‘ufs’) and printing (’npr’). It would seem logical that it was used for remote login, but I have not found any traces of such usage. Same for email usage.
From what little I know, I think that Datakit became operational in a test network in 1979 and as a product in 1982.
> I thought the answer was "ARPANET" since we had a NCP on 4th edition Unix
> in late 1974 or early 1975 from the University of Illinois dating from that
> time (the code in TUHS appears to be based on V6 + a number of patches).
“Network Unix” (https://www.rfc-editor.org/rfc/rfc681.html) was written by Steve Holmgren, Gary Grossman and Steve Bunch in the last 3 months of 1974. To my best knowledge they used V5 and migrated to V6 as it came along. I think they were getting regular update tapes, and they implemented their system as a device driver (plus userland support) to be able to keep up with the steady flow of updates. Greg Chesson was also involved with this Arpanet Unix.
As far as I can tell, Arpanet Unix saw fairly wide deployment within the Arpanet research community, also as a front end processor for other systems.
A few years back I asked on this list why “Network Unix” was not more enthusiastically received by the core Unix development team and (conceptually) integrated into the main code base. I understood the replies as that (i) people were very satisfied with Spider; and (ii) being part of Bell they wanted a networking system that was more compatible with the Bell network, i.e. Datakit.
==
In my opinion both “Spider Unix” and “Arpanet Unix” threw a very long conceptual shadow. From Spider onwards, the Research systems viewed the network as a device (Spider), that could be multiplexed (V8 streams) or even mounted (Plan9). The Arpa lineage saw the network as a long distance bidirectional pipe, with the actual I/O device hidden from view; this view persists all the way to 4.2BSD and beyond.
I often wonder if it was (is?) possible to come up with a design with the conceptual clarity of Plan9, but organised around the “network as a pipe” view instead.
> Because we can't ask Greg sadly, I think the Holmgren is the last around that would know definitively and I've personally lost track of him.
Steve Holmgren and the Arpanet Unix team are still around (at least they were 3 years ago). I just remembered that I put some of my notes & findings in a draft wiki that I wanted to develop for TUHS - but I never finished it:
http://chiselapp.com/user/pnr/repository/TUHS_wiki/wiki?name=early_networki…
The recent find of CSRG report 3 and 4 may be the incentive I needed to complete my notes about 4.1a, 4.1c and 4.2BSD. However, still looking for the actual source tape to 4.1a - the closest I have is its derivative in 2.9BSD (https://minnie.tuhs.org/cgi-bin/utree.pl?file=2.9BSD/usr/net)