I want to jump to the next level in C. I'm a quite skilled programmer for what I do, know the whole K&R but I feel like I miss something, especially about those weird techniques proPROgrammers use in OS dev and related. Suggested readings?
Name:
Anonymous2009-04-25 10:36
The novice Unix user is always surprised by Unix’s choice of command
names. No amount of training on DOS or the Mac prepares one for the
majestic beauty of cryptic two-letter command names such as cp, rm, and ls.
Those of us who used early 70s I/O devices suspect the degeneracy stems
from the speed, reliability, and, most importantly, the keyboard of the
ASR-33 Teletype, the common input/output device in those days. Unlike
today’s keyboards, where the distance keys travel is based on feedback
principles, and the only force necessary is that needed to close a
microswitch, keys on the Teletype (at least in memory) needed to travel
over half an inch, and take the force necessary to run a small electric gener-
ator such as those found on bicycles. You could break your knuckles touch
typing on those beasts.
Accidents Will Happen 19
If Dennis and Ken had a Selectric instead of a Teletype, we’d probably be
typing “copy” and “remove” instead of “cp” and “rm.”1 Proof again that
technology limits our choices as often as it expands them.
After more than two decades, what is the excuse for continuing this tradi-
tion? The implacable force of history, AKA existing code and books. If a
vendor replaced rm by, say, remove, then every book describing Unix
would no longer apply to its system, and every shell script that calls rm
would also no longer apply. Such a vendor might as well stop implement-
ing the POSIX standard while it was at it.
A century ago, fast typists were jamming their keyboards, so engineers
designed the QWERTY keyboard to slow them down. Computer key-
boards don’t jam, but we’re still living with QWERTY today. A century
from now, the world will still be living with rm.