From: Jon Forrest
In the early days of Unix I was told that it
wasn't practical to write a
pager because such a thing would have to run in raw mode in order to
process single letter commands, such as the space character for going on
to the next page. Since raw mode introduced a significant amount of
overhead on already overtaxed machines, it was considered an anti-social
thing to do.
Something sounds odd here.
One could have written a pager which used 'Return' for each new page, and run
it in cooked mode and not used any less cycles (in fact, more, IIRC the
cooked/raw differences in handling in the TTY driver).
But that's all second-order effects anyway. If one were using a serial line
hooked up to a DZ (and those were common - DH's were _much_ more expensive, so
poor places like my lab at MIT used DZ's), then _every character printed_
caused an interrupt. So the overhead from printing each screen-ful of text was
orders of magnitude greater than the overhead of the user's input to get the
next screen.
IIRC later versions of Unix added the ability to
respond to a specific
list of single characters without going into raw mode. Of course, that
didn't help when full-screen editors like vi and the Rand editor came
out.
Overhead was definitely an issue with EMACS on Multics, where waking up a
process on each character of input was significant. I think Bernie's Multics
EMACS document discusses this. I'm pretty sure they used the Telnet RCTE
option to try and minimize the overhead.
Noel