On Fri, Jan 11, 2019 at 10:34 AM <ron(a)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
ᐧ