The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Dan Cross <crossd@gmail.com>
To: Paul Winalski <paul.winalski@gmail.com>
Cc: TUHS main list <tuhs@minnie.tuhs.org>
Subject: Re: [TUHS] non-blocking IO
Date: Tue, 2 Jun 2020 14:23:59 -0400	[thread overview]
Message-ID: <CAEoi9W7Y47oHyWzys6yWUnFk7Z-mRpMd13qz9zmOb-TGPTnE6w@mail.gmail.com> (raw)
In-Reply-To: <CABH=_VRjxL=p8f+ePVvBWKuQN3aFE-BW4aE9MAcjwkK-Mm1rkg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1807 bytes --]

On Tue, Jun 2, 2020 at 1:47 PM Paul Winalski <paul.winalski@gmail.com>
wrote:

> The operating systems that I cut my teeth on (OS/360, DOS/360,
> VAX/VMS) all had basic I/O system calls that were non-blocking.
> Blocking I/O calls were all built on top of that framework.  I thus
> found it curious that Unix took the opposite tack, and non-blocking
> I/O was an afterthought.
>
> So I'm curious as to what the rationale was for Unix to have been
> designed with basic I/O being blocking rather than asynchronous.
> Especially that non-blocking I/O primitives were the norm for OSes in
> those days.


Doug addressed this, albeit in an oblique manner, on this list back in
2015: https://minnie.tuhs.org/pipermail/tuhs/2015-September/007509.html

Quoting him:

"""
Unix was what the authors wanted for a productive computing environment,
not a bag of everything they thought somebody somewhere might want.
One objective, perhaps subliminal originally, was to make program
behavior easy to reason about. Thus pipes were accepted into research
Unix, but more general (and unruly) IPC mechanisms such as messages
and events never were.

The infrastructure had to be asynchronous. The whole point was to
surmount that difficult model and keep everyday programming simple.
User visibility of asynchrony was held to a minimum: fork(), signal(),
wait(). Signal() was there first and foremost to support SIGKILL; it
did not purport to provide a sound basis for asynchronous IPC.
The complexity of sigaction() is evidence that asynchrony remains
untamed 40 years on.
"""

My response at the time was to question whether asynchrony itself remains
untamed, as Doug put it, or if rather it has proved difficult to retrofit
asynchrony onto a system designed around fundamentally synchronous
primitives?

        - Dan C.

[-- Attachment #2: Type: text/html, Size: 2453 bytes --]

  parent reply	other threads:[~2020-06-02 18:24 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-02 14:19 Paul Ruizendaal
2020-06-02 17:45 ` Paul Winalski
2020-06-02 17:59   ` arnold
2020-06-02 18:53     ` Paul Winalski
2020-06-02 19:18       ` Clem Cole
2020-06-02 21:15         ` Lawrence Stewart
2020-06-02 22:03           ` [TUHS] non-blocking IO - threads Jon Steinhart
2020-06-02 23:05             ` Rob Pike
2020-06-02 23:09               ` Rob Pike
2020-06-02 23:21                 ` Larry McVoy
2020-06-03  0:39                   ` Rob Pike
2020-06-02 23:12               ` Jon Steinhart
2020-06-03 16:42                 ` Paul Winalski
2020-06-03 17:57                   ` Jon Forrest
2020-06-03  5:38           ` [TUHS] Unix on the Arpanet Lars Brinkhoff
2020-06-03 12:23             ` Lawrence Stewart
2020-06-02 18:23   ` Dan Cross [this message]
2020-06-02 18:56     ` [TUHS] non-blocking IO Paul Winalski
2020-06-02 19:23       ` Clem Cole
  -- strict thread matches above, loose matches on Subject: below --
2020-06-06 13:29 Noel Chiappa
2020-06-02 20:13 Noel Chiappa
2020-06-02 20:43 ` Clem Cole
2020-06-02 22:14   ` Rich Morin
2020-06-03 16:31     ` Paul Winalski
2020-06-03 19:19       ` John P. Linderman
2020-06-02  8:22 Paul Ruizendaal
2020-06-02  0:08 Noel Chiappa
2020-06-01 23:17 Noel Chiappa
2020-05-31 11:09 Paul Ruizendaal
2020-05-31 16:05 ` Clem Cole
2020-05-31 16:46   ` Warner Losh
2020-05-31 22:01     ` Rob Pike
2020-06-01  3:32       ` Dave Horsfall
2020-06-01 14:58         ` Larry McVoy
2020-06-04  9:04           ` Peter Jeremy
2020-06-04 14:19             ` Warner Losh
2020-06-04 16:34               ` Tony Finch
2020-06-04 16:50               ` Larry McVoy
2020-06-05 16:00                 ` Dan Cross
2020-06-12  8:18                   ` Dave Horsfall
2020-06-01 16:58     ` Heinz Lycklama

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEoi9W7Y47oHyWzys6yWUnFk7Z-mRpMd13qz9zmOb-TGPTnE6w@mail.gmail.com \
    --to=crossd@gmail.com \
    --cc=paul.winalski@gmail.com \
    --cc=tuhs@minnie.tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).