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

news/2024/5/19 0:11:50 标签: 操作系统, 应用程序, 硬件, 运行库

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

     每个层次之间都须要相互通信 , 既然须要通信就必须有一个通信的协议 , 我们一般将其称为接口 ( 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 ) , 硬件的生产厂商负责提供硬件规格 . 操作系统和驱动程序的开发者通过阅读硬件规格文档所规定的各种硬件编程接口标准来编写操作系统和驱动程序 。


http://www.niftyadmin.cn/n/1098809.html

相关文章

txt,对比问题

今天在项目中遇见一个问题,困扰了很久,终于在同事的帮助下解决,同一个txt文件对比时2次个编码格式不一样。经过一段时间研究发现,原来我们生成的txt文件,在用txt打开编辑后会改变其编码各式,故出现以上问题…

关于电容,这篇说得太详细了

转载自:http://emakerzone.com/article/229 关键字:薄膜电容,电解电容,陶瓷电容,铝电解电容,钽电容,安规电容 之前的文章中,介绍了电感的一些知识。本文将谈谈电容,介绍…

【转】删除所有的.svn文件夹

工作中要把一个项目迁移到另外的svn目录中,遇到一个问题,需要先把原来的.svn删除,然后再增加到新的svn中,开始手动删除,但是发现太耗时耗力了,网上搜了几种删除的方法,自己都试了一遍&#xff0…

程序员的自我修养---2 文件在磁盘中的结构

文 件 系 统 管 理 着 磁 盘 中 文 件 的 存 储 方 式 . 比 如 我 们 在 Linux 系 统 下 有 一 个 文 件 “ / home / user / test . dat ” , 长度为 8 000 个宁节 。那么我们在创建这个文件的时候 , Linux 的 ext 3 文件系统冇可能将这个文件按照这样的…

microsoft Entity Framework

http://blogs.msdn.com/dsimmons/archive/2008/05/17/why-use-the-entity-framework.aspxhttp://blogs.msdn.com/dsimmons/pages/entity-framework-faq.aspxhttp://vs2008sp1docs.msdn.microsoft.com/en-us/ms439009.aspx LINQ to SQL与LINQ to Entities场景之对照 MSDN上最近发…

电阻、电容、电感的实际等效模型

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_29545231/article/details/80711508 1、电阻的等效模型2、电容的寄生参数3、电容的等效参数4、理…

程序员的自我修养---3.内存分配与管理

资料下载: 链接:https://pan.baidu.com/s/1FUmks6gsNBW10EqCJ-BRFQ 复制这段内容后打开百度网盘手机App,操作更方便哦 1.如何将计算机上有限的物理内存分配给多个程序使用? 假设我们的计算机有 128 MB 内存 , 程序 A 运行需耍 …

JAVA-用HttpClient来模拟浏览器GET,POST [转]

一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等。所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输&#xff0…