一、用户空间:
1)C标准库:是适用于所有c语言编写的程序,没有平台差异性。
在用户空间程序员可以直接调用的。
用C语言和汇编语言实现的。
有的库函数封装了系统调用函数(调用库函数就可以间接调用系统调用)。
2)系统API(以库的形式提供): 具有平台差异性,比如windows API 就不能在Linux平台上使用
它是操作系统提供给用户的接口,可以让用户直接使用操作系统的某个服务。
一个API可能调用了一个系统调用,也可能对应好几个系统调用。
二、内核空间:
1)系统调用:由内核提供给用户的接口,使用户可以对内核做操作。
但是需要进入内核态,才能调用。
系统调用是用户进程进入内核的接口层,它本身并非内核函数,但他是由内核函数实现的,进入系统内核后,不同的系统调用会找到各自对应的内核函数,这写内核函数被称为系统调用的“服务例程”。也可以说系统调用是服务例程的封装例程。
2)内核函数:实现内核功能的函数