On Fri, Jan 11, 2019 at 10:34 AM <ron@ronnatalie.com> wrote:
A bigger networking issue was select() (or the like).    It used to be an
interesting kludge of running two processes inorder to do simoultaneous
read/write before that.

Right and select(2) was created by Sam and wnj during the 4.2 development.  I've forgotten which sub-version (it was in 4.1c, but it might have been in b or a before that).  There was a lot of arguing at the time about it's need;  the multiple process solution was considered more 'Unix-like.'   I remember one time have a few beers in my apartment with Sam while watching a football game and arguing about its usefulness.  Adding select(2)  was an example of where CSRG was adding things to UNIX for the DARPA community.   IIRC: previous PDP-10 system had something like it and of course VMS had qio() which did not block; some of the users at an advisors meeting had wanted some alaong.    I also remember after it ws prototyped, some people complaining that with select(2) people would start to right code that looped and waste cycles.  BTW: sure enough, about a year or two later, X-Windows appears with its keyboard/mouse loop.  The argument on a workstation (personal computer) was it did not matter.  The argument on a vax or other typeshared machine, was that the CPU was being wasted and any type polling loop in users space was a bad idea.  

FWIW: a few years later, System V (I think SRV3, but I've forgotten) introduced poll(2) as a reaction to BSD's select(2).   [IMO: That was NIH if I ever saw it - similar but different because they could].

Clem