所有操作系统都提供多种服务的入口点(接口),程序通过这些入口点向内核请求服务。每个版本的UNIX实现都提供定义明确、数量有限、可直接进入内核的入口点,这些入口点就称为系统调用。
C函数库中的函数可能会调用一个或多个系统调用,但它们并不是内核的入口点,例如printf函数调用write这个系统调用以输出一个字符串,但是函数strcmp和atoi(改变ASCII到整数)函数并不使用任何系统调用。
系统调用和库函数的另一个差别就是:系统调用通常提供一种最小接口,而库函数通常提供比较复杂的功能。