From mboxrd@z Thu Jan 1 00:00:00 1970 From: norman@oclsc.org (Norman Wilson) Date: Tue, 29 May 2018 17:21:57 -0400 Subject: [TUHS] Control-T (was top) Message-ID: <1527628921.23282.for-standards-violators@oclsc.org> Back in 1980 or 1981, when I first started hacking on UNIX but still had some TOPS-10 DNA lingering in my blood, I put in a really simple control-T implementation. Control-T became a new signal- generating character in the tty driver; it sent signal 16. Unlike interrupt and quit, it did not flush input or output buffers. Unlike any other signal, SIG_DFL caused the signal to be silently ignored. (I don't remember why I didn't just teach /etc/init and login to set that signal to SIG_IGN by default; maybe I looked and found too many other programs that monkeyed with every signal, maybe I just didn't think of it.) I then wrote a little program meant to be run in the background from .profile, that dug around in /dev/kmem, figured out what was likely nearest-to-foreground process associated with the same terminal, and printed a little status info for that process. It didn't take long for the remaining TOPS-10 DNA to leach away, and besides it is much easier to run some program in another window now that that is almost always possible, so I don't miss it. But I like that idea better than, in effect, hacking a mini-ps into the kernel, even though the kernel doesn't have to do as much work to get the data. I also thought it made more sense to have a general mechanism that could be used for other things. That even happened once. The systems I ran were used, among other things, for developing SMP, the symbolic-manipulation interpreter worked on by Stephen Wolfram, Geoffrey Fox, Chris Cole, and a host of graduate and undergraduate students. (My memory of who deserves credit differs somewhat from that of at least one person named.) SMP, by its nature, sometimes had to spend a substantial time sitting and computing. Someone (probably Wolfram, says my aging memory) heard about the control-T stuff, asked me how to use it, and added code to SMP so that during a long computation control-T would tell you something about what it was doing and how it was progressing. Since the signal was, like interrupt and kill, sent to the whole process group, there was no conflict if you also had my little control-T monitor running in the background. I never tried to send my hacked-up UNIX to anyone else, so if anyone else did the same sort of control-T hack, they likely invented it independently. Norman Wilson Toronto ON