Strace is great at seeing system calls. Once you understand how this works, be sure to check out ltrace , which shows the calls to dynamically linked libraries.
Together they give you a very good idea of what any given program does (unless statically linked, of course).
a source
to share