1、在软件体系中,位于最上层的是应用程序,比如我们平常使用的浏览器,播放器,qq等,从整个层次结构来看,开发工具与应用程序属于同一个层次,因为它们都使用一个接口,即操作系统应用程序编程接口(Application Programming Interface)。应用程序接口的提供者是运行库,什么样的运行库提供什么样的API,比如Linux下单Glibc库提供POSIX的API;Windows 的运行库提供Windows API,最常见的32位Windows提供的API又被称为Win32。
2、运行库使用操作系统提供的系统调用接口(System Call interface),系统调用接口在实现中往往以软件中断(Software Interrupt)的方式提供,比如Linux使用0x80号中断作为系统调用接口,Windows使用0x2E号中断作为系统调用接口。
3、操作系统内核层对于硬件层来说是硬件接口的使用者,而硬件是接口的定义者,硬件的接口定义决定了操作系统内核,具体来讲就是驱动程序如何操作硬件,如何与硬件进行通信。这种接口往往被叫做硬件规格(Hardware Specification),硬件规格由硬件的生产厂商来提供,操作系统和驱动程序的开发者通过阅读硬件规格文档所规定的各种硬件编程接口标准来编写操作系统和驱动程序。