On Sun, 8 Mar 2020, Rob Pike wrote:
Always bemused me that to get a named local I/O
connection one ended up
with "Unix domain (what does that even mean?) sockets" rather than named
pipes, especially since sockets are about as natural a Unix concept as
lawn mowers.
Indeed...
I've been told, but haven't confirmed, that
early sockets didn't even
support read and write.
They had their own I/O calls such as send()/recv() (and still do).
They still don't support open and close, and
never will.
Huh; imagine my surprise when I named a function "shutdown()" because
it was called at SIGTERM to clean up...
Networks are not intrinsically more special than any
other I/O
peripheral, but they have become gilded unicorns mounted on rotating
hovercrafts compared to the I/O devices Unix supported before them.
And that's being polite... They are the worst interface that I have ever
seen (including OS/360). At a previous $ORKPLACE there was a library that
said simply "I am server on port N" and "I want to contact a service on
a.b.c.d on port N"; I wish I'd stole^Wborrowed it when we eventually
parted company.
-- Dave