From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 2518 invoked from network); 11 Aug 2023 09:05:59 -0000 Received: from minnie.tuhs.org (2600:3c01:e000:146::1) by inbox.vuxu.org with ESMTPUTF8; 11 Aug 2023 09:05:59 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id EBCA240F7D; Fri, 11 Aug 2023 19:05:51 +1000 (AEST) Received: from ewsoutbound.kpnmail.nl (unknown [195.121.94.168]) by minnie.tuhs.org (Postfix) with ESMTPS id 1AE1640F7C for ; Fri, 11 Aug 2023 19:05:35 +1000 (AEST) X-KPN-MessageId: 0a4bbdb7-3826-11ee-8e3d-005056aba152 Received: from smtp.kpnmail.nl (unknown [10.31.155.39]) by ewsoutbound.so.kpn.org (Halon) with ESMTPS id 0a4bbdb7-3826-11ee-8e3d-005056aba152; Fri, 11 Aug 2023 11:04:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=planet.nl; s=planet01; h=to:date:message-id:subject:mime-version:content-type:from; bh=LPUzXFDjcfSDCTmDl6r6bVJY2GK+PGcUNNAHTt4+bU8=; b=XliwDGAhYPb8Mod6/7MFqYU/XdwE+FCZ0O6j+TnAS0fhOc5JxgfSgzFd0FRjoKA/ukMFq4BwydccP 0gZg8BHvS2q4MNZ/QyceMqpALnjy4jx9LZag6On1+hn4fW9vshKK4mA4GbsopNvy1v3WbnKrdDVgCn k+c57b6A3Lu4Ye2Q= X-KPN-MID: 33|YjbU0lOf0q/+8aDN7rhDYvBEUvUWffgseZb++FM3a505fRehHE9KNqr90xTViw1 zsc9hVqt+hlthWJNtrDt5x9Cp2kt69/Ib2qIX9n18DdI= X-KPN-VerifiedSender: Yes X-CMASSUN: 33|26+DWgePrvKnmOkpHLNGil6CzmAJJ8HwBNcBe7QJL04X1t8THxzOoXvGJKkrRGJ ZqLtr2XGnUvHj67rR/RUxEw== X-Originating-IP: 77.172.38.96 Received: from smtpclient.apple (77-172-38-96.fixed.kpn.net [77.172.38.96]) by smtp.kpnmail.nl (Halon) with ESMTPSA id 341fa97c-3826-11ee-bd18-005056ab7447; Fri, 11 Aug 2023 11:05:23 +0200 (CEST) From: Paul Ruizendaal Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\)) Message-Id: <6EA66356-0C94-4802-81B6-1CF891EF6EC2@planet.nl> Date: Fri, 11 Aug 2023 11:05:21 +0200 To: "tuhs@tuhs.org" X-Mailer: Apple Mail (2.3654.120.0.1.13) Message-ID-Hash: JMSECTHHFS73GSN4UGAEQXG6XBXSDNX6 X-Message-ID-Hash: JMSECTHHFS73GSN4UGAEQXG6XBXSDNX6 X-MailFrom: pnr@planet.nl X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: when did v8 or later get networking? List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Spam: Yes > Date: Thu, 10 Aug 2023 03:17:25 +0000 > From: segaloco >=20 >>>> TCP/IP, not datakit >=20 >=20 > All of the files that have timestamps at the top list 83/07/29, except = ip_input.c which has 83/08/16 instead. The V8 version has _device = (device driver) and _ld (line discipline) components that the 4.1cBSD = code does not have. Many other files have analogs between the two. The = byte ordering subroutines have been copied into a file, goo.s, from = their home in 4.1cBSD in the C library (/usr/src/lib/libc/net/misc). = When this work originated someone else would need to answer, [...] As far as I can tell the history of this code line goes back to 1977, = when Jack Haverty at BBN wrote a TCP/IP library (porting earlier work = written in PDP-11 assembler) for a slightly modified 6th Edition Unix. = Fighting with 64KB core limits, throughput was horrific and he concluded = that a bigger PDP-11 was needed. Mike Wingfield then did a = re-implementation in C for a PDP-11/70. This worked in early 1979 and is = arguably the first Unix TCP/IP stack that can still interoperate with = current IPv4. However, it was still mostly a proof of concept user mode = design (it was funded as a test vehicle for the later abandoned = Autodin-II fork of TCP). BBN then got a contract to write a kernel mode TCP/IP stack for 4BSD = (=E2=80=9CVAX TCP=E2=80=9D in the old BBN doc=E2=80=99s). This work was = performed by Rob Gurwitz under supervision of Jack Haverty. This stack - = although all new code - still showed its heritage: it was designed as a = loosely bound kernel process providing the NCP-Unix API. Some sources = seem to imply that it was developed first as a user mode process and = once working in that context changed into a kernel process / thread. = Beta releases were available in 1981. It worked (and interoperates with = modern IPv4), but in my experiments a few years back it turned out that = it is difficult to get the scheduling for this kernel process right at = higher system loads. Bill Joy of CSRG concluded that the BBN stack did not perform according = to his expectations. Note that CSRG was focused on usage over (thick) = ethernet links, and BBN was focused on usage over Arpanet and other = wide-area networks (with much lower bandwidth, and higher latency and = error rates). He then in 1982 rewrote the stack to match the CSRG = environment, changing the design to use software interrupts instead of a = kernel thread and optimising the code (e.g. checksumming and fast code = paths). It was a matter of debate how new the code was, with the = extremes being that it was written from scratch using the spec versus it = being mostly copied. Looking at it with a nearly 50 year distance, it = seems in between: small bits of surviving SCCS suggest CSRG starting = with parts of BBN code followed by rapid, massive modification; the end = result is quite different but retained the =E2=80=98mbuf=E2=80=99 core = data structure and a BBN bug (off-by-one for OOB TCP segments). The shift from the NCP-Unix API to sockets is separate from this and was = planned. CSRG had the contract to develop a new API for facilitating = distributed systems with Unix and this gelled into the sockets = interface. The first prototypes for this were done in 1981. Nearly all of the above source is available in the TUHS online Unix Tree = (Wingfield, VAX-TCP and two early versions from CSRG - one in 2.9BSD and = one in 4.1cBSD).=