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=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 8167 invoked from network); 17 Jun 2022 15:18:38 -0000 Received: from minnie.tuhs.org (2600:3c01:e000:146::1) by inbox.vuxu.org with ESMTPUTF8; 17 Jun 2022 15:18:38 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 8517A40CFC; Sat, 18 Jun 2022 01:18:34 +1000 (AEST) Received: from ewsoutbound.kpnmail.nl (ewsoutbound.kpnmail.nl [195.121.94.167]) by minnie.tuhs.org (Postfix) with ESMTPS id 0C85640712 for ; Sat, 18 Jun 2022 01:18:22 +1000 (AEST) X-KPN-MessageId: b465790b-ee50-11ec-92d5-005056abbe64 Received: from smtp.kpnmail.nl (unknown [10.31.155.40]) by ewsoutbound.so.kpn.org (Halon) with ESMTPS id b465790b-ee50-11ec-92d5-005056abbe64; Fri, 17 Jun 2022 17:18:13 +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=d36MxnJSdDRMi2VNPFEfoGPEUfuoMhso1lCuHHQFPJo=; b=wGax+0xvAwFHV8pNUkzKunEhciBxtCg49JD8HUdBaFa9acmdbx/Bbtvl/Ku9blesOd4FnImFLXLVf mSmHMwCInXPQ03XF+4jKHkyHqHrx3CsbJFTnml7xF0LaKvFsn5r8kqFj/Nbg1Iek09Imb9CppO18SD vAo6xYRPHvN4kYJk= X-KPN-MID: 33|t7HH+zM6X3nQGb8QEKQI6u+duqQ7MXiK2Fj7GYsuoQY6aCOOGpYGKgSJyaAjhB2 uKTcqR//EvlZCZ4F2+AfXY1QGDhQ5ysMeZNPFBenx+OA= X-KPN-VerifiedSender: Yes X-CMASSUN: 33|KXiE6kf/UEn+H7U9RBy2xBC+CdVjKN0fUG94d3bXfW63OBp5AGI4VxymutOAMPc WcyRAGXVhGrJmgQP3xucTxg== 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 b5364cd5-ee50-11ec-9eb8-005056ab7584; Fri, 17 Jun 2022 17:18:14 +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: Date: Fri, 17 Jun 2022 17:18:14 +0200 To: tuhs@tuhs.org X-Mailer: Apple Mail (2.3654.120.0.1.13) Message-ID-Hash: AEEP3BJGASRYRHQKILEBBG7GOODCMU6Y X-Message-ID-Hash: AEEP3BJGASRYRHQKILEBBG7GOODCMU6Y X-MailFrom: pnr@planet.nl X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tuhs.tuhs.org-0; 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] sockets [was Re: forgotten versions] List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: > Sockets (which btw, totally SUCK PUS) were coded into things > and even (YECHH) made POSIX and IETF spec status. Streams didn't stand > a chance. The question that originally pulled me into researching Unix networking = 1975-1985 was more or less =E2=80=9Chow did we end up with sockets?=E2=80=9D= . That was 7 years or so ago, I now have a basic feel for how it came to = be, and I also have better appreciation of the trade offs. What is the = most =E2=80=9CUnixy=E2=80=9D of networking (as in the API and its = semantics) is not something with an easy answer. If I limit myself to the 1975-1985 time frame, I see three approaches: 1. The API used in Arpanet Unix, which was also used by BBN in its first = reference implementation of TCP/IP 2. The BSD sockets API, in two flavours: the Joy flavour in BSD4.1a, and = the Karels flavour in BSD4.1c and later 3. The Ritchie/Presotto IPC library / API from V8/V9. This evolved into = SysV networking, but the original is the clean idea At a high level of abstraction, there is a lot of similarity; close-up = they are quite different. I like all three solutions! One thing that struck my attention was that the Ritchie/Presotto IPC = library has the concept of =E2=80=9Ccalling=E2=80=9D a host and the = host/network can reply with a response code (=E2=80=9Cline busy=E2=80=9D, = =E2=80=9Cnumber unknown=E2=80=9D, =E2=80=9Cnot authorised=E2=80=9D, = etc.). BSD sockets do not cover that. I guess it derives from = Spider/Datakit having that functionality, and Arpanet / tcp-ip not = having that (resorting to a connection =E2=80=98reset=E2=80=99 or dead = line instead). Sockets have a more elegant solution for connectionless = datagrams (imo), and for the same reason I guess.=20 Sure, sockets has too much of the implementation sticking through the = abstractions, but it is IMO not a bad design. That it became dominant I = think is in equal measure due to economics and due to being =E2=80=9Cgood = enough=E2=80=9D. If someone has a proposal for a network API that is cleaner and better = than what was out there, and would have worked with the hardware and use = cases of the early 80=E2=80=99s, I=E2=80=99m all ears. But maybe better = on COFF... Paul