henry_flower (
henry_flower) wrote2015-12-28 07:00 am
Entry tags:
Why did I discover that mail list? I can't stop reading it, aaahh! Date: Mon, 21 Sep 2015 10:02:14
Why did I discover that mail list? I can't stop reading it, aaahh!
Date: Mon, 21 Sep 2015 10:02:14 -0400
From: Doug McIlroy <doug-bJGkzYaaMJvEkZP4S/TgZg@public.gmane.org>
To: tuhs-Z6Fe2I8TbQJwZ3e6swPlpw@public.gmane.org
Subject: Re {TUHS} Synchronous vs Asynchronous IO in Unix
Newsgroups: gmane.org.unix-heritage.general
User-Agent: Heirloom mailx 12.5 7/5/10
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.
Doug
Date: Mon, 21 Sep 2015 10:02:14 -0400
From: Doug McIlroy <doug-bJGkzYaaMJvEkZP4S/TgZg@public.gmane.org>
To: tuhs-Z6Fe2I8TbQJwZ3e6swPlpw@public.gmane.org
Subject: Re {TUHS} Synchronous vs Asynchronous IO in Unix
Newsgroups: gmane.org.unix-heritage.general
User-Agent: Heirloom mailx 12.5 7/5/10
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.
Doug
Permalink: https://plus.google.com/115290581164606462017/posts/8z7YAcNEwid
