Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第12章 系统调用与API

12.1 系统调用介绍

12.2 系统调用原理

12.3 Windows API

12.4 本章小结

沿着程序与操作系统交互的轨迹,我们从程序如何链接、如何使用运行库到运行库的实现机制,层层挖掘和剖析,现在已经到了用户层面与内核层面的界限了,也就是常说的系统调用(System Call)。系统调用是应用程序(运行库也是应用程序的一部分)与操作系统内核之间的接口,它决定了应用程序是如何与内核打交道的。无论程序是直接进行系统调用,还是通过运行库,最终还是会到达系统调用这个层面上。

Windows系统是完全基于DLL机制的,它通过DLL对系统调用进行了包装,形成了所谓的Windows API。应用程序所能看到的Windows系统的最底层的接口就是Windows API,比如上一节中的fread最终还是到了ReadFile这个API。于是Windows的程序相当于在运行库与系统调用之间又多了一层API,不过无论如何,API最终还是通过系统调用。在这一章里,我们会了解到系统调用和API的各方面,包括许多实现的细节。