System calls are the preferred, standardised and safe way to cross the kernel-user-space boundary. But they are expensive if heavily used. A simple ./hello_world performs about 30 system calls, echo "beep" is up to 42 (numbers may vary slightly on different systems); this constitutes the bottom line for more or less any user space application. Looking at some of the typical administration tools such as top makes the situation even clearer. top takes up to a few thousand system calls to build the output for a single page (SuSE 8.0 standard installation), and the default is to update the content once per second. Hence on a reasonably reduced system top causes one thousand system calls per second to output a single page. But basically top is only collecting information stored entirely in the Linux task structure. Running through this task structure using the proc read method and outputting the result to the console in a top like manner only takes one additional system call to what echo beep does, i.e. approximately 43!