At some point I tried to get deeper and understand ptrace(2) syscall, the technology behind strace command line tool. I wrote this piece:
https://idea.popcount.org/2012-12-11-linux-process-states/
The ptrace() articles were never finished, but oh well. I guess ptrace() is doomed to be undocumented and barely understood. Recently I found this gem in 1983 4.2BSD operating system man page :
> Ptrace is unique and arcane; it should be replaced with a special file which can be opened and read and written. The control functions could then be implemented with ioctl(2) calls on this file. This would be simpler to understand and have much higher performance.
http://www.tuhs.org/cgi-bin/utree.pl?file=4.2BSD/usr/man/man...