[TUHS] non-blocking IO: Simplicity has been subtituted for efficiency
John Gilmore
gnu at toad.com
Thu Jun 4 11:24:52 AEST 2020
Noel Chiappa <jnc at mercury.lcs.mit.edu> wrote:
> > I'm curious as to what the rationale was for Unix to have been designed
> > with basic I/O being blocking rather than asynchronous.
>
> It's a combination of two factors, I reckon. One, which is better depends a
> lot on the type of thing you're trying to do. For many typical thing (e.g.
> 'ls'), blocking is a good fit. And, as As Arnold says, asyhchronous I/O is
> more complicated, and Unix was (well, back then at least) all about getting
> the most bang for the least bucks.
I just happened to open a binder today of old papers about UNIX(tm),
including Ken Thompson's "Unix Implementation" paper, which says at the
bottom of the introduction:
"What is or is not implemented in the kernel represents both a great
responsibiity and a great power. It is a soap-box platform on "the
way things should be done." Even so, if "the way" is too radical, no
one will follow it. Every important decision was weighted carefully.
Throughout, simplicity has been substituted for efficiency. Complex
algorithms are used only if their complexity can be localized."
John
More information about the TUHS
mailing list