From: http://www.ibm.com/developerworks/cn/linux/l-linux-kernel/
Now let's take a high-level look at the GNU/Linux operating system architecture. You can consider the operating system at two levels, as shown in figure 2.
Figure 2. Basic architecture of the GNU/Linux operating system
The top is the user (or applicationProgram) Space. This is where your application runs. The user space is the kernel space, and the Linux kernel is located here.
Gnu c library (glibc) is also here. It provides a system call interface to connect to the kernel, and a conversion mechanism between the user space application and the kernel. This is very important because the kernel and user space applications use different protective address spaces. Each user space process uses its own virtual address space, while the kernel occupies a separate address space. For more information, see the link in the references section.