On Tue, Jul 06, 2021 at 09:57:38PM -0400, Dan Cross wrote:
Fork is another great example: it went in because a)
Ken knew about it, and
b) it was easy to implement (22 instructions of PDP-7 assembler or
something) and c) it got the job done. After the fact, it turned out to
have all kinds of neat properties that let it compose with pipelines,
redirection, background jobs, etc. That model for process management served
well for a long time. But then people wanted to have multithreaded
processes, because it turns out that independent threads of execution
inside of a shared address space are an excellent mechanism for
representing concurrency.
http://lkml.iu.edu/hypermail/linux/kernel/0106.2/0405.html
I wasn't completely right 20 years ago but I was close. I'm tired,
if you want to know where I'm wrong, ask and I'll tell you how I
tried to get Linus to fix it.
In general, Rob was on point. He usually is.