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_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24517 invoked from network); 4 Jul 2022 21:18:50 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 4 Jul 2022 21:18:50 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 9B8EC421D4; Tue, 5 Jul 2022 07:18:43 +1000 (AEST) Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) by minnie.tuhs.org (Postfix) with ESMTPS id 5DCEB40C64 for ; Tue, 5 Jul 2022 07:18:38 +1000 (AEST) Received: by mail-lj1-f176.google.com with SMTP id c15so12379746ljr.0 for ; Mon, 04 Jul 2022 14:18:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Y2i+Aqlnc8w+y5h2UD/BxsILnlmj8xzP6WvLwDLxnao=; b=V+IKxiiRI0dxmKViitAYGel6F8ukfWlURkYaiI461mm42SuZLoQOmQvBqGSiBzKtBL bi6mOwma2hOyFSUZjaMbD40nNS3IXEXTRBmxXGVIRzFqD3T+u1Liu2b/XehVdowOUx3g DbZmYGGtQeqi/UI85+8yXo/vOWKd+sRXy0V/rfK1rTap4L54VPP0O8ayFqEecpE9A92U ph+84rWrF9SNc3ROJJ21jFbUcnY7h5ug0s5HWlX3PdI8AmVrWgfEy1k2DnCrm/lsRVM4 ud3wyeeI2ZZKU6slfGZf7osIYHTEgGYY6D55jqZUoKe/fOVWyfyHOmp+mSZJ1+0Ldn7p 4hLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Y2i+Aqlnc8w+y5h2UD/BxsILnlmj8xzP6WvLwDLxnao=; b=wl/gzjsXHNdZl0/dqnCEQO/lq3SpGTrJyuvZuSaQpHWF5viiQuDfXXJuNbn9QXDiJn ZatpkHY3sWaqjcFeQKBiKtNVrSZFjk89ScjrvAyBTBEvaMQTuNRSstb64TKI64B+7mH7 uEuy7IGsHTByIN9eJZTWg0m4YUo4K2PDNaVoWwi9+J2yXkjxj2chzFKMgEtOEbajuYNh ntnt/CHTvirGicksfeABbKweULBEJ58VBhI1KcQo3YLki11J30VN7gx33+TJZhjCuDkW yJkoD3rJyETFpoBtwi1JRMQdFKiVXtE1YI1mAUGqEAfyRjThk/kfthOzhmhaers2LCHo y9+w== X-Gm-Message-State: AJIora+0GId6HCs9mCm9gI967l/NqeQJUHCm938DSBwI019Wu801uglq WH+pNRuOdep5KiGdKONmTURYVXrTWqyT6JFPrEdOA23ESZ4= X-Google-Smtp-Source: AGRyM1t3SllO9cxYeSo0gwePl0FKnN2WrR33xLN9FqG4AJYMdIuk8YyhDP0RrubaeoWgR4AtXMFvY/RQXNsN67SVlyY= X-Received: by 2002:a2e:87da:0:b0:25a:6883:d6aa with SMTP id v26-20020a2e87da000000b0025a6883d6aamr17887767ljj.196.1656969456349; Mon, 04 Jul 2022 14:17:36 -0700 (PDT) MIME-Version: 1.0 References: <72C18447-E565-4A02-84E2-BFB309E97330@planet.nl> In-Reply-To: <72C18447-E565-4A02-84E2-BFB309E97330@planet.nl> From: ron minnich Date: Mon, 4 Jul 2022 14:17:24 -0700 Message-ID: To: Paul Ruizendaal Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Message-ID-Hash: LERJ4CW2WBZ6P3WCHOR6TQSSC2HS2LX5 X-Message-ID-Hash: LERJ4CW2WBZ6P3WCHOR6TQSSC2HS2LX5 X-MailFrom: rminnich@gmail.com 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 CC: The Eunuchs Hysterical Society X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: Re.: is networking different? List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Something like what you mention: open(=E2=80=9C/net/inet/any:80=E2=80=9D, O= _RDWR | O_STREAM | O_CREAT, 0600), is actually to be found in an RFC from around that time. You can do that, but the 1980s tried it and it did not end well. What's it mean, for example, when you rename("/net/harv") to ("/net/google") -- close and reopen socket? (there's a Lost Talk from, I think, Rob, that addressed this very question) While it has its flaws, https://9p.io/sys/doc/net/net.html in my view is the best example to date of how to get it right. Addresses are strings, just like paths -- well, they *are* paths in fact. Some of this path-like nature can be seen in the Go net package today. Oh, and, as regards how the synthetic file system looks: you never, never, ever, put an address in the pathname. That's important. Also consider that if you get it right, you can do all the network IO you want with cat and echo -- people have written telnet in Plan 9 with those two commands. And, if you get it wrong, well -- you get socat. On Mon, Jul 4, 2022 at 1:10 PM Paul Ruizendaal via TUHS wro= te: > > > On Sun, Jul 3, 2022 at 1:33 PM Marc Donner wrote: > > > > I've been ruminating on the question of whether networks are different = from > > disks (and other devices). Here are a couple of observations: > > [...] > > From my perspective most of these things are not unique to networks, they= happen with disks and/or terminals. Only out-of-order delivery seems new. = However, in many early networking contexts (Spider/Arpanet/Datakit/UUCP) th= is aspect was not visible to the host (and the same holds for a single segm= ent ethernet). > > To me, in some ways networks are like tty=E2=80=99s (e.g. completing i/o = can take arbitrarily long, doing a seek() does not make sense), in other wa= ys they are like disks (raw devices are organised into byte streams, they h= ave a name space). Uniquely, they have two end-points, only one of which is= local (but pipes come close). > > Conceptually, a file system does two things: (i) it organises raw blocks = into multiple files; these are the i-nodes and (ii) it provides a name spac= e; these are directories and the namei routine. A network stack certainly d= oes the first: a raw network device is organised into multiple pipe-like co= nnections; depending on the network, it optionally offers a naming service. > > With the first aspect one could refer to any file by =E2=80=9Cmajor devic= e number, minor device number, i-node number=E2=80=9D. This is not very dif= ferent from referring to a network stream by =E2=80=9Cnetwork number, host = number, port number=E2=80=9D in tcp/ip (and in fact this is what bind() and= connect() in the sockets API do), or =E2=80=9Cswitch / host / channel=E2= =80=9D in Datakit. For disks, Unix offers a clean way to organise the name = spaces of multiple devices into a unified whole. How to do this with networ= ks is not so easy, prior to the invention of the file system switch. > > Early on (Arpanet Unix), it was tried to incorporate host names into a ne= t directory by name (RFC 681) but this is not scalable. Another way would b= e to have a virtual directory and include only names for active connections= . The simple way would be to use a text version of the numeric name as desc= ribed above - but that is not much of an improvement. Better to have a netw= ork variant of namei that looks up symbolic names in a hosts file or in a n= etwork naming service. The latter does not look very performant on the hard= ware of 40 years ago, but it appears to have worked well on the Alto / PuPs= network at Xerox PARC. > > With the above one could do > > open(=E2=80=9C/net/inet/org.tuhs.www:80=E2=80=9D, O_RDWR | O_STREAM) > > to connect to the TUHS web server, and do > > open(=E2=80=9C/net/inet/any:80=E2=80=9D, O_RDWR | O_STREAM | O_CREAT, 060= 0) > > to create a =E2=80=98listening=E2=80=99 (rendez-vous) socket. > > Paul > > > > > > > > > > > >