Choosing the C library
The programming interface to the Unix operating system is defined in the C language, which is now defined by the POSIX standards. The C library is the implementation of that interface; it is the gateway to the kernel for Linux programs, as shown in the following diagram. Even if you are writing programs in another language, maybe Java or Python, the respective run-time support libraries will have to call the C library eventually:
Whenever the C library needs the services of the kernel it will use the kernel system call
interface to transition between user space and kernel space. It is possible to bypass the C library by making kernel system calls directly, but that is a lot of trouble and almost never necessary.
There are several C libraries to choose from. The main options are as follows:
glibc: Available at http://www.gnu.org/software/libc. It is the standard GNU C library. It is big and, until recently, not...