程序员的自我修养---1 计算机软件体系结构

操作系统本身 , 很多应用程序 、 软件系统甚至很多硬件结构都是按照这种层次的结构组织和设计的 。系统软件体系结构中 ,各种软件的位置如图所示 。 

     每个层次之间都须要相互通信 , 既然须要通信就必须有一个通信的协议 , 我们一般将其称为接口 ( Interface ) , 接 口的下面那层是接口的提供者 , 由它定义接口 : 接口的上面那层是接口的使用者 , 它使用该接口来实现所需要的功能 。 在层次体系中 , 接口是被精心设计过的 , 尽量保持稳定不变 , 那么理论上 层次之间只要进循这个接口 , 任何一个层都可以被修改
或被替换 。 除了硬件和应用程序 , 其他都是所谓的中间层 , 每个中间层都是对它下面的那层的包装和扩展 。 正是这些中间 层的存在 , 使得应用程序和硬件之间保持相对的独立 , 比如硬件和操作系统都日新月异地发展 , 但是 a最初为 80386 芯片和 DOS 系统设计的软件在最新的多核处理器和 Windows Vista 下还是能够运行的 , 这方面 归功于硬件和操作系统本身保持了
向后兼容性 , 另一方面不得不归功于这种层次结构的设计方式 。 敁近开始流行的虚拟机技术更是在硬件和操作系统之间增加了一层虚拟层 , 使得一个计算机上可以同时运行多个操作系统 , 这也是层次结构带来的好处 , 在尽可能少改变甚至不改变其他层的情况下 , 新增加一个层次就可以提供前所未有的功能 。 

       我们的软件体系中 , 位于最上层的是应用程序 , 比如我们平时用到的网络浏览器 、 Email客户端 、 多媒体播放器 、 图片浏览器等 。 从整个层次结构上来看 , 开发工具与应用程序是属于同一个 层次的 , 因为它们都使用一个接口 , 那就是操作系统应用程序编程接口 ( Programming Interface ) . 应用程序接口的提供者是运行库 , 什么样的运行库提供什么样的API , 比如 Linux 下的 Glibc 库提供 POSIX 的 API ; Windows 的运行库提供 Windows API ,最 常见的 32 位 Windows 提供的 API 又被称为 Win 32 。
       运行库使用操作系统提供的系统调用接口 ( System call Interface ) , 系统调用接口在实现中往往以软件中断 ( Software Interrupt ) 的方式提供 , 比如 Linux 使用 0 x 80 号中断作为系统调用接口 , Windows 使用 0 x 2 E 号中断作为系统调用接口 ( 从 Windows XP Sp 2 开始 ,Windows 开始采用一种新的系统调用方式 ) 。
         操作系统内核 对于硬件层来说是硬件接口的使用者 , 而硬件是接口的定义者, 硬件的接口定义决定了操作系统内核 . 具体来讲就是驱动程序如何操作硬件 , 如何与硬件进行通信 。这种接口往往被叫做硬件规格 ( Hardware Specification ) , 硬件的生产厂商负责提供硬件规格 . 操作系统和驱动程序的开发者通过阅读硬件规格文档所规定的各种硬件编程接口标准来编写操作系统和驱动程序 。

发布了81 篇原创文章 · 获赞 17 · 访问量 6028

猜你喜欢

转载自blog.csdn.net/hopegrace/article/details/103859121
今日推荐