API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。(其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令(动作)。)
API与系统调用的区别:系统调用代码都处于内核状态,API是操作系统提供的一组函数,通常以库的形式存在,供用户调用,所以,API代码可能是完全是用户空间代码,也有的API调用了系统调用。
SDK:软件工具开发包,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。
SDK 经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。