The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-16 14:42 Noel Chiappa
  0 siblings, 0 replies; 34+ messages in thread
From: Noel Chiappa @ 2017-01-16 14:42 UTC (permalink / raw)


    > From: Johnny Billquist

    >> everyone working on TCP/IP heard about Version 4 shortly after the
    >> June, 1978 meeting.

    > Over a year before any documents said anything about it.

Incorrect. It's documented in IEN-44, June 1978 (written shortly after the
meeting, in the same month).


    > I'm sure people were doing networking protocols and stuff earlier, but
    > it wasn't the TCP/IP we know and talk about today

People were working on Unix in 1977, but it's not the same Unix we know and
talk about today. Does that mean it's not Unix they were working on?


    >> there were working implementations (as in, they could exchange data with
    >> other implementations) of TCP/IPv4 by January 1979 - see IEN 77.
                                       ^^
    > But not TCP4 then.

I just specified that it was v4 (see above).

    > thus, not interoperable with an implementation today

No, with properly-chosen addresses (because of the changes in address
handling), they probably would be.

    Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-30 16:15 Noel Chiappa
  2017-01-30 16:41 ` Clem Cole
  2017-01-30 16:44 ` Clem Cole
  0 siblings, 2 replies; 34+ messages in thread
From: Noel Chiappa @ 2017-01-30 16:15 UTC (permalink / raw)


    > From: Clem Cole

    > Steve Ward's guys writing Trix hacked together a compiler, assembler and
    > the like.

All of which I have the source for - just looked through it.

    > If memory serves me, tjt wrote the assembler

I have the NROFF source for the "A68 Assembler Reference", and it's by James
L. Gula and Thomas J. Teixeira. It says that "A68 is an edit of the MICAL
assembler also written by Mike [Patrick].".

    > Jack Test did much of the compiler and again IIRC that was based on PCC.

I dunno, I'm not familiar with PCC, so I can't say. It definitely looks very
different from the Ritchie C compiler.

	  Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-30 15:34 Noel Chiappa
  2017-01-30 21:20 ` Paul Ruizendaal
  0 siblings, 1 reply; 34+ messages in thread
From: Noel Chiappa @ 2017-01-30 15:34 UTC (permalink / raw)


    > From: Paul Ruizendaal

    >> the headers say they date from 1974-75.

    > Wow, that's great! That means that you have the initial version.

The file write dates are May 1979, so that's the latest it can be. There is
one folder called 'DTI' which contains an email message from someone at DTI to
someone at SRI which is dated "10 Apr 1979" so that seems to indicate that
that's indeed when they are from.

(The message says that the folder contains the source for DTI's IMP-11A
driver, which is different from UIll's, although they both descend from the
same original version.)

    > Possibly it is V5 not V6

Nope, definitely V6 here.

    > All my leads for the 1975 version of this code base came up dry and I
    > feared it lost.

I could have sworn that I'd seen _listings_ of the code in a UIllinois
document about NCP Unix that I had found (and downloaded) on the Internet, but
I can't find them here now. I did look again and found:

  "A Network Unix System for the Arpanet", by Karl C. Kelley, Richard Balocca,
  and Jody Kravitz

but it doesn't contain any sources.

    > it may contain the first version of 'mbufs'

It might - the code is conditionalized for "UCBUFMOD" all over the place.


    > Yes, a 'history' file seems to have been common practice at BBN. The
    > kernel would have had many modifications:
    > - the 'ports' extension from Rand

Yes.

    > - the 'await' extension by Jack Haverty

Yup.

    > - an 1822-driver

Yes (also by Haverty) - although IMP11-A drivers are all over the place, there
are two different ones in the NCP Unix alone.

    > - possibly, an Autodin II network driver

Didn't see one.

    > - possibly, shared memory extensions

Yes, there are two module in 'ken', map_page.c and set_lcba.c (I was unable to
work out what 'LCBA' stood for) which seem to do something with mapping.

    > It might even have some NCP code in it

Yes, there's an 'ncpkernel' directory.

    > There seem to have been two versions of the BBN modified kernel. One was
    > done for systems without separate I/D with stuff heavily trimmed

Yes, there's a 'SMALL' preprocessor flag which conditionally removes some
stuff.

    > The other may have extended the V6 kernel to run in separate I and D
    > spaces

That capability was present in stock V6.

     Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-30  2:50 Noel Chiappa
  2017-01-30  3:33 ` Nick Downing
  2017-01-30  8:26 ` Paul Ruizendaal
  0 siblings, 2 replies; 34+ messages in thread
From: Noel Chiappa @ 2017-01-30  2:50 UTC (permalink / raw)


    > From: Paul Ruizendaal

    > Great! I'd love to take a look at all that.

OK, it'll all be appearing once we have a chance to get organized (it's all
mixed in with personal files).

    > That is very interesting. It may be related to the V6 with NCP from
    > UoI/DTI.

I think it _is_ the V6 from UoI/DTI. The source has Gary (?) Grossman's and
Steve Holmgren's name on it, and the headers say they date from 1074-75.

    > The printout does not have the kernel modifications with it, so it would
    > be great if your archive does include that.

The archive does include the complete kernel, but i) the changes aren't listed
in any way (I forsee a lot of 'diffs', unless you just take the entire
kernel), ii) there's a file called 'history' which contains a long list of
general changes/improvements of the kernel not really related to TCP/IP, by a
long list of people, dated from the middle of '78 to the middle of '79. So it
looks like he started with a considerably modified system.

The only client code I see is User Telnet. (The MIT code has User and
Server Telnet and FTP, as well as SMTP, but it uses a wholly different
TCP interface.)

    Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-30  1:44 Noel Chiappa
  0 siblings, 0 replies; 34+ messages in thread
From: Noel Chiappa @ 2017-01-30  1:44 UTC (permalink / raw)


    > From: Nick Downing

    > This is a wonderful find

Yes, I was _very_ happy to find those tapes in my basement; up till that, I
was almost sure all those bits were gone forever.

Thanks to Chuck Guzis, whose old data recovery service made this possible - he
actually read the tape.

    > is it possible for you to read the other tapes also?

Alas, they're all of the same system. So the most we're going to get is the
files that are missing on this one due to bad spots on the tape.

	   Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-29 18:35 Noel Chiappa
  0 siblings, 0 replies; 34+ messages in thread
From: Noel Chiappa @ 2017-01-29 18:35 UTC (permalink / raw)


    > some Unix from BBN

This one is from 1979, it includes Mike Wingfield's TCP. The 'Trix UNIX' is a
port to the 68K, probably started with something V7ish (I see "setjmp.h" in
there). Bits of the Montgomery EMACS appear to date from 1981, but the main
source files seem to be from 1984. I also have the source to 'vsh' (Visual
Shell), whatever that is.

	Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-29 17:41 Noel Chiappa
  2017-01-29 20:28 ` Paul Ruizendaal
  2017-01-30  1:34 ` Nick Downing
  0 siblings, 2 replies; 34+ messages in thread
From: Noel Chiappa @ 2017-01-29 17:41 UTC (permalink / raw)


    > From: Paul Ruizendaal <pnr at planet.nl>

    >> I have this distinct memory of Dave Clark mentioning the Liza Martin
    >> TCP/IP for Unix in one of the meeting report publihed as IENs

    > It may be mentioned in this report:
    > http://web.mit.edu/Saltzer/www/publications/rfc/csr-rfc-228.pdf

Yeah, I had run across that in my search for any remnants of the Martin
stuff.

    > Would you know if any of its source code survived?

As I had mentioned, I had found some old dump tapes, and had one of them read;
it had some bad spots, but we've just (this morning) succeeding in having a
look as to what's there, and I _think_ all of the source is OK (including the
kernel code, as well as applications like server Telnet and FTP). No SCCS or
anything like that, so it's a bit hit or miss doing history - the file write
dates were preserved, but of course a lot of them would have been edited over
time to fix bugs, add features, etc.

The tape appears to contains a _lot_ of other historic material, and it's
going to take a while to sort it all out; it includes a Version 6 with NCP
from NOSC/SRI, some Unix from BBN; a BCPL compiler; a 'bind' for .rel format
files (produced by MACRO-11 and probably BCPL) written in BCPL; programs to
convert from .rel to a.out and back; an early verion of Montgomery EMACS;
another Unix from 'TMI' (whoever that might be); another UNIX that's somehow
associated with TRIX; someone's early kernel overlay stuff; an early 68K C
compiler, and also an early 8080 C compiler - just a ton of stuff (that's just
a few items that grabbed my eye as I scrolled by).

Algol, alas, appears not to be there (we probably didn't add it, because of
space reasons). The copy of LISP on this tape seem to be damaged; I do have 3
other tapes, and between them, I hope we'll be able to retrieve it.

	Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-16 15:17 Noel Chiappa
  0 siblings, 0 replies; 34+ messages in thread
From: Noel Chiappa @ 2017-01-16 15:17 UTC (permalink / raw)


    > From: Tony Finch

This is getting a bit far afield from Unix, so my apologies to the list for
that. But to avoid dumping it in the Internet-History list abruptly, let me
answer here _briefly_ (believe it or not, the below _is_ brief).

    > AIUI there were two major revisions to the IPv4 addressing architecture:

Not quite (see below). First, one needs to understand that there are two
different timelines for changes to addressing: in the hosts, and in the
routers (called 'gateways' originally). To start with, they were tied
together, but as of RFC-1122, they were formally separated: hosts no longer
fully understood the syntax/semantics of addresses, just (mostly) treated them
as opaque 32-bit quantities.

    > subnetting (RFC 917, October 1994 ... RFC 950, August 1985), and
    > classless routing (RFC 1519, September 1993)

Originally, network numbers were 8 bits, and the 'rest' (local) part was 24.
Mapping from IP addresses to physical network addresses was some with direct
mapping - ARP did not exist - the actual local address (e.g. IMP/Port) was
contained in the 'rest' field - each network had a document which specified
the mapping. (Which is part of the interoperability issue with old
implementations.)

As some point early on, it was realized that 8 bits of network number were not
enough, and the awful A/B/C kludge was added (it was dropped on the community,
not discussed before-hand). Subnetting was indeed the next change.  Then the
host/router split happened.

Classless routing (which effectively extended addesses, for path-computation
purposes, to 32+N bits - since you couldn't look at a 32-bit IP address and
immediately tell which was the 'network' part any more, you _had_ to have the
mask as well, to tell you how many bits of any given address were the network
number) was more of a process than a single change - the inter-AS routing
(BGP) had to change, but so did IGP's (OSPF, IS-IS), etc, etc.

    > originally called supernetting (RFC 1338, June 1992).

There was this effort called ROAD which produced RFC-1338 and 1519, and IIRC
there was an intermediate, involving blocks of network numbers (1338), and
that slowly evolved into arbitrary blocks (1519).

One should also note that the term "super-netting" comes from a proposal by
Carl-Hubert ("Roki") Rokitansky which did not, alas, make it to RFC. (His
purpose was different, but it used the same mechanism.) Alas, the authors of
1338/1519 failed to properly acknowledge his earlier work.

	  Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
[parent not found: <mailman.1.1484532001.2693.tuhs@minnie.tuhs.org>]
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-16  1:47 Noel Chiappa
  2017-01-16 10:06 ` Paul Ruizendaal
  0 siblings, 1 reply; 34+ messages in thread
From: Noel Chiappa @ 2017-01-16  1:47 UTC (permalink / raw)


    > (Check the minutes in the IEN's, that's probably the best source of data
    > on progress of the various implementations.)

Another place to look is Internet Monthly Reports and TCP-IP Digests (oh, I
see you've seen those, I see a reference to one).

I have this distinct memory of Dave Clark mentioning the Liza Martin TCP/IP
for Unix in one of the meeting report publihed as IENs, but a quick look
didn't find it.

    Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-16  1:01 Noel Chiappa
  2017-01-16 10:31 ` Paul Ruizendaal
  2017-01-16 12:07 ` Tony Finch
  0 siblings, 2 replies; 34+ messages in thread
From: Noel Chiappa @ 2017-01-16  1:01 UTC (permalink / raw)


    > From: Paul Ruizendaal

    > I guess by April 1981 (RFC777) we reach a point where things are
    > specified to a level where implementations would interoperate with
    > today's implementations.

Yes and no. Earlier boxes would interoperate, _if addresses on each end were
chosen properly_. Modern handling of addresses on hosts (for the 'is this
destination on my physical network' step of the packet-sending algorithm) did
not come in until RFC-1122 (October 1989); prior to that, lots of host code
probably tried to figure out if the destination was class A, B or C, etc, etc.

Also, until RFC-826 (ARP, November 1982) pretty much all the network
interfaces (and thus the code to turn the 'destination IP address' into an
attached physical network address, for the first hop) were things like ARPANet
that no longer exist, so you could't _actually_ fire up one of them unless you
do something like the 'ARPANet emulation' that the various PDP-10 simulators
use to allow old OS's running on them to talk to the current Internet.


    > only if one accepts IEN54/55 as 'TCP/IP'

What are they, if not TCP/IP?

Not the modern variant, of course, but then again, nothing before the early
90's is truly 'modern TCP/IP'.

    > IEN98 mentions a TCP3 stack done for Network Unix ...  in 1978 by DTI /
    > Gary Grossman.

I read this, BITD, but don't recall much about it. I was not impressed by the
coding style.

    > at the same time it also uses old-style assignments ('=+' instead of
    > '+='). Could this be "typesetter C"?

I don't know. IIRC, that compiler supported both styles. It had to have been a
later compiler than the one that came with V6, that didn't support longs.  But
I don't recall any bug with long support in the typetter C compiler we had at
MIT.

    > From the above I would support the moniker "first TCP/IP in C on Unix"

No. That clearly belongs to the DTI one. (The difference between V3 and V4,
while significant, aren't enough to make the DTI not 'TCP/IP in C for Unix'.)

If you want to say 'first V4TCP/IP in C for Unix', maybe; I'd have to look for
dates on the one done at MIT for V6, that may be earlier, but I don't think
so. (Check the minutes in the IEN's, that's probably the best source of data
on progress of the various implementations.)


    > One thing that I'm unclear about is why all this Arpanet work was not
    > filtering more into the versions of Unix done at Bell Labs.   

Here's my _guess_ - ask someone from Bell for a sure answer.

You're using 20/20 hindsight. At that point in time, it was not at all obvious
that TCP/IP was going to take over the world.

There were a couple of alternatives for moving data around that Bell used -
Datakit, and UUCP - and they worked pretty well, and there was no reason to
pick up on this TCP/IP thing.

I suspect that it wasn't until LAN's became popular than TCP/IP looked like a
good thing to have - it fits very well with the capabilities most LANs had (in
term of the service provided to things attached to them). Datakit was its own
thing, and for UUCP you'd have to provide a reliable stream, and TCP/IP 'just
did that'.

     Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-15  2:30 Noel Chiappa
  0 siblings, 0 replies; 34+ messages in thread
From: Noel Chiappa @ 2017-01-15  2:30 UTC (permalink / raw)


    > From: Johnny Billquist

    > Like I pointed out, RFC760 lacks ICMP.

So? TCP will work without ICMP.

    > Which also makes one question how anyone would have known about IPv4 in
    > 1978.

Well, I can assure you that _I_ knew about it in 1978! (The decision on the v4
packet formats was taken in the 5th floor conference room at 545 Tech Sq,
about 10 doors down from my office!)

But everyone working on TCP/IP heard about Version 4 shortly after the June,
1978 meeting.

    > Also, first definition of TCP shows up in RFC 761

If you're speaking of TCPv4 (one needs to be precise - there were also of
course TCP's 1, 2, 2.5 and 3, going back to 1974), please see IEN-44. (Ignore
IEN's -40 and -41; those were proposals for v4 that got left by the wayside.)

    > So yes, I still have problems with claims that they had it all running
    > in 1978.

I never said we had it "all" running in 1978 - and I explicitly referenced
areas (congestion, addressing/routing) we were still working on over 10 years
later.

But there were working implementations (as in, they could exchange data with
other implementations) of TCP/IPv4 by January 1979 - see IEN 77.

(I'll never forget that weekend - we were in at ISI on Saturday, when it was
normally closed, and IIRC we couldn't figure out how to turn the hallway
lights on, so people were going from office to office in the gloom...)

    Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] Early Internet work (Was: History of select(2))
@ 2017-01-13 13:19 Noel Chiappa
  0 siblings, 0 replies; 34+ messages in thread
From: Noel Chiappa @ 2017-01-13 13:19 UTC (permalink / raw)


    > From: Paul Ruizendaal

    >> On 12 Jan 2017, at 4:54 , Clem Cole wrote:

    >> The specifications for what would become IP and TCP were kicking around
    >> ... in the late 1970s.

The whole works actually started considerably earlier than that; the roots go
back to 1972, with the formation of the International Packet Network Working
Group - although that group went defunct before TCP/IP itself was developed
under DARPA's lead.

I don't recall the early history well, in detail - there's a long draft
article by Ronda Hauben which goes into it in detail, and there's also "INWG
and the Conception of the Internet: An Eyewitness Account" by Alexander
McKenzie which covers it too.

By 1977 the DARPA-led effort had produced several working prototype
implementations, and TCP/IP (originally there was only TCP, without a separate
data packet carriage layer) were up to version 3.

    > My understanding is that all RFC's and IEN's were available to all legit
    > users of the Arpanet.

Yes and no. The earliest distribution mechanism (for the initial NCP/ARPANet
work) was hardcopy (you can't distribute things over the 'net before you have
it working :-), and in fact until a recent effort to put them all online, not
all RFC's were available in machine-readable form. (I think some IEN's still
aren't.) So for many of them, if you wanted a copy, you had to have someone at
ISI make a photocopy (although I think they stocked them early on) and
physically mail it to you!

    > Apparently nobody had the idea to put all RFC's in a directory and give
    > FTP access to it.

I honestly don't recall when that happened; it does seem obvious in
retrospect! Most of us were creating document in online text systems, and it
would have been trivial to make them available in machine-readable form. Old
habits die hard, I guess... :-)

    > I think I should put a question out about this, over on the internet
    > history mailing list.

Yes, good idea.


    > As an aside: IMHO, conceptually the difference between NCP and TCP
    > wasn't all that big.

Depends. Yes, the service provided to the _clients_ was very similar (which
can be seen in how similar the NCP and TCP versions of thing like TELNET, FTP,
etc were), but internally, they are very different.

    > In my current understanding the big difference that was NCP assumes
    > in-order, reliable delivery of packets ... and that TCP allows for
    > unreliable links.

Yes, that's pretty accurate (but it does mean that there are _a lot_ of
differences internally - re-transmissions, etc). One other important
difference is that there's no flow control in the underlying network
(something that took years to understand and deal with properly).

    > yes, these concepts were kicking around for over a decade in academia
    > before BSD.

TCP/IP was the product of a large, well-organized, DARPA-funded and -led
effort which involved industry, academic and government players (the first
two, for the most part, DARPA-funded). So I wouldn't really call it an
'academic' project.

	Noel


^ permalink raw reply	[flat|nested] 34+ messages in thread
* [TUHS] History of select(2)
@ 2017-01-09  2:35 Warren Toomey
  2017-01-09 10:36 ` Paul Ruizendaal
  0 siblings, 1 reply; 34+ messages in thread
From: Warren Toomey @ 2017-01-09  2:35 UTC (permalink / raw)


Also, I came across this history of select(2) a while back:

https://idea.popcount.org/2016-11-01-a-brief-history-of-select2/

Cheers, Warren


^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2017-02-08  3:58 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-16 14:42 [TUHS] Early Internet work (Was: History of select(2)) Noel Chiappa
  -- strict thread matches above, loose matches on Subject: below --
2017-01-30 16:15 Noel Chiappa
2017-01-30 16:41 ` Clem Cole
2017-01-30 16:44 ` Clem Cole
2017-01-30 15:34 Noel Chiappa
2017-01-30 21:20 ` Paul Ruizendaal
2017-01-30  2:50 Noel Chiappa
2017-01-30  3:33 ` Nick Downing
2017-01-30  3:38   ` Ron Natalie
2017-02-08  3:58   ` Dave Horsfall
2017-01-30  8:26 ` Paul Ruizendaal
2017-01-30  1:44 Noel Chiappa
2017-01-29 18:35 Noel Chiappa
2017-01-29 17:41 Noel Chiappa
2017-01-29 20:28 ` Paul Ruizendaal
2017-01-30  1:34 ` Nick Downing
2017-01-30  2:19   ` Clem Cole
2017-01-30  2:30     ` Larry McVoy
2017-01-30  2:43       ` Ron Natalie
2017-01-30  2:43       ` Clem Cole
2017-01-30  2:32     ` Larry McVoy
2017-01-30  2:39       ` Clem Cole
2017-01-30 13:13     ` Dave Horsfall
2017-01-30 13:37       ` Larry McVoy
2017-01-16 15:17 Noel Chiappa
     [not found] <mailman.1.1484532001.2693.tuhs@minnie.tuhs.org>
2017-01-16 10:21 ` Johnny Billquist
2017-01-16  1:47 Noel Chiappa
2017-01-16 10:06 ` Paul Ruizendaal
2017-01-16  1:01 Noel Chiappa
2017-01-16 10:31 ` Paul Ruizendaal
2017-01-16 12:07 ` Tony Finch
2017-01-15  2:30 Noel Chiappa
2017-01-13 13:19 Noel Chiappa
2017-01-09  2:35 [TUHS] History of select(2) Warren Toomey
2017-01-09 10:36 ` Paul Ruizendaal
2017-01-12  3:54   ` Clem Cole
2017-01-13  9:13     ` Paul Ruizendaal
     [not found]       ` <20170114164102.GA31665@yeono.kjorling.se>
2017-01-16  0:13         ` [TUHS] Early Internet work (Was: History of select(2)) Paul Ruizendaal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).