一:BIOS和驱动程序是如何工作的

1:当你选择一个命令.比如说,让你的文字处理软件保存一个文档时,应用程序不需要知道如何控制硬盘驱动器.取而代之的是,文档处理软件将命令和需要保存的数据传送给WINDOWS.

2:操作系统要通过检查确认保存数据的命令没有问题.例如,它要确定文件名是否合法,同时你不能在一个标记着只读的文件上保存.

3:如果一切就绪了,操作系统就会检查保存文件的操作系统是否需要设备驱动程序,所谓设备驱动程序就是为了控制特定的外围设备而编写的一个专用代码块.驱动程序是BIOS的扩展.如果没有驱动程序,做为永久性的存储器,BIOS就必须要包含所有的控制命令以控制每一种你可能安装到计算机的硬件设备.这样,不仅BIOS将会难以控制的增大,而且,当新的打印机或是硬盘驱动器推出的时候,它就会立即被淘汰.计算机启动或是WINDOWS装入时一些驱动程序也被装入进来.如果文件保存操作所需的设备驱动程序不在RAM中,WINDOWS就会将它从磁盘上复制到内存中,然后WINDOWS将文件保存的实际任务交给BIOS和驱动程序.

4:如果BIOS中含有该磁盘驱动器的一套专用指令,BIOS就自己发送指令和数据到磁盘驱动控制器.在IDE(集成驱动设备电路)驱动器中,控制器内置在驱动器中.如果命令不固化在BIOS的只读存储器中,BIOS将到磁盘驱动器的设备驱动程序中重新寻找控制指令.在那里编有专门用于控制这种品牌,容量及型号的控制命令集.

映象BIOS

计算机的BIOS信息比较典型的是存储在EPROM(可檫写,可编程,只读存储器)芯片上,甚至在计算机关闭的时候都会一直保留着这些数据.检查EPROM上的代码将会比检索RAM中的代码花费更多的时间.基于这个原因,大多数的新型计算机采用了映象BIOS代码的办法-也就是说,将代码从EPROM上复制到RAM中,然后建立起等效的微电路转向标记,这样当计算机要访问BIOS的代码时,它将会访问取代EPROM的RAM.

二:即插即用设备如何工作

1:当你打开一个即插即用型系统时,WINDOWS和硬件设备之间的主要仲裁者BIOS成为第一个掌握控制权的组件。BIOS搜寻所有需要的设备—比如显卡、键盘以及软盘驱动器——这样PC机才可能正常运行。BIOS基于它们唯一的标志号来识别这些设备,标志号是被永久性地记录到设备的ROM即只读存储器中的。然后BIOS将控制权交给操作系统。

2:WINDOWS的配置管理器将称为枚举器的特殊设备驱动程序添加进来—该程序充当操作系统和各种不同设备之间的接口。枚举器有总线枚举器、用于SCSI(小型计算机系统接口)的特殊总线类型的枚举器和端口枚举器,等等。WINDOWS要求每个枚举器都要明确地指出它要控制哪个设备以及它需要那些资源。

3:WINDOWS从枚举器得到信息并且将这些信息存储到硬件设备树中,硬件设备树是存储在RAM中的一个数据库。于是操作系统检查硬件设备树进行资源仲裁。换言之,在将信息存储到一个数据库以后,操作系统决定将那些资源——例如,中断(IRQ)——分配哪个设备。然后系统会通知枚举器它们各自的设备都被分配了那些资源。枚举器将资源分配的信息存储到外围设备的微型可编程寄存器中类似于某些芯片中的暂存区。

4:最终,操作系统为每个设备都搜寻到合适的设备驱动程序。设备驱动程序实际上就是WINDOWS的一小部分附加代码,它告诉操作系统如何与硬件进行通信。如果操作系统没有发现它所需要的设备驱动程序,系统就会提示用户进行安装。于是系统加载所有必须的设备驱动程序并且告知驱动程序其他设备使用着那些资源。设备驱动程序初始化它们各自的设备,这时完成了系统启动。

三:数据怎样在总线上旅行

1:处理器或其它组件发出的信号沿着若干条平行排列的电路行走。这种线路的条数是由所有的总线体系结构类型决定的。它们当中最简单的)——原IBM PC机上用的是8位总线——用62条连线与各种适配器卡连接。发送到某一适配器卡上的任何信号同时都会送向所有的适配器卡。

2:8条线路通向适配器卡电源线。不同线路的电压是不同的。

3:8到32条线路用于传输所有的数据,不管数据是送往内存芯片、还是送往显示适配器或是磁盘控制器。

4:20条线路载有想要的数据的特定地址信息。每个扩展卡都使用一个特定且唯一的地址——来自于内存中开头1MB空间中的可用部分,那是一个能被操作系统寻址的范围。

5:余下的那些线路用来传递常用的特定指令的控制信号,比如对内存和每个输入/输出设备的读写命令。

6:总线上的每个适配器卡时刻不断地在控制线上寻找适当的信号。例如,当写命令线上出现一个信号时,所有的I/O设备都会识别出这个命令,而内存的电路却不会。

7:写命令警告I/O适配器转移注意力到地址线上。如果那些线上指定的地址并不是某个适配器所使用的地址时,哪个适配器就将数据线的信号忽略。

8:如果地址线上的信号和适配器地址相吻合的话,适配器就接收数据线上发送来的数据,并且用这些数据来完成写操作。

操作系统怎样控制硬件相关推荐

  1. 软件如何控制硬件、编译器和操作系统是否需要编译

    软件如何控制硬件.编译器和操作系统是否需要编译 ----作者:山野子 QQ:814577355 注:相信很多人都会有跟我一样的疑问,那就是软件如何控制硬件.编译器和操作系统是 否需要编译?为了解决这个 ...

  2. 5.计算机发展个人理解-电路终究是电路 软件如何控制硬件 代码如何操作硬件 硬件是怎么执行代码 代码如何执行 软件与硬件如何交互 计算机思维 抽象 封装 规范 屏蔽 协议分层...

    计算机只是逻辑电路 除了电路还是电路 计算机就是一堆逻辑电路 他并不知道你到底想要干什么,他也不会理解什么是文件,什么是进程 通电的瞬间,就好像你打开开关,灯泡发光一样 所有的一切都是通过通电来启动的 ...

  3. 多余的读写端口什么时候会对程序造成影响_程序员需要了解的硬核知识之控制硬件...

    应用和硬件的关系 我们作为程序员一般很少直接操控硬件,我们一般通过 C.Java 等高级语言编写的程序起到间接控制硬件的作用.所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 ...

  4. 软件是怎样控制硬件的?

    软件是怎样控制硬件的? ★当你往计算机设备里看时,能看到一大推电路.芯片.电线,扬声器.接口和其他东西,这些都是硬件,你看不见摸不着的就是软件. 软件是计算机上所有的程序,或运行在机器上的代码.软件可 ...

  5. 程序员需要了解的硬核知识之控制硬件

    应用和硬件的关系 我们作为程序员一般很少直接操控硬件,我们一般通过 C.Java 等高级语言编写的程序起到间接控制硬件的作用.所以大家很少直接接触到硬件的指令,硬件的控制是由 Windows 操作系统 ...

  6. 计算机软件如何控制硬件工作,介绍软件是怎样控制硬件的

    今天小编和大家分享软件是如何控制硬件.下面是小编为大家精心整理的关于介绍软件是怎样控制硬件的,希望能够帮助到你们. 方法/步骤 1硬件就是电路,软件和硬件所存储的信息的本质其实就是电路上一些开关的状态 ...

  7. python控制硬件入门_python入门

    1. python是什么? Python是一门编程语言 2. 什么是编程语言 语言是一种事物与另外一种事物沟通的介质(只要是语言,语言的本质都是一样的),编程语言是程序员与计算机之间沟通的介质. 3. ...

  8. 软件是如何控制硬件的?

    文章目录 通过操作系统控制硬件 中断机制 文字及图片的显示机制 通过操作系统控制硬件 现象: 在用 C 语言等高级编程语言开发的 Windows 应用中,大家很少能接触到直接控制硬件的指令. 结论: ...

  9. python和单片机的用处哪个大_用Python控制硬件1-Python控制硬件的几种方式

    首先开篇名义,为什么我要用Python来控制硬件,主要还是工作需要:作为嵌入式软件工程师(工业产品为主),需要一种灵活高效的控制方法,辅助产品设计测试.多年的比较尝试下来,Python是为数不多的胜出 ...

最新文章

  1. python 车牌识别简单_智能车牌识别 停车如此简单
  2. 启明云端分享|ESP32在开发环境时,环境搭建及应用、软件平台时常遇到的问题答疑(FAQ)
  3. 第三次学JAVA再学不好就吃翔(part85)--静态导入
  4. taskscheduler java_java – 针对不同任务的不同taskScheduler
  5. ASPxGridView 结合CheckBox实现多选(在后台事件代码控制)
  6. python基础-python函数参数为print语句时的输出
  7. 【Python】检测字符串的方法
  8. Ubuntu下U盘变成只读的解决方法
  9. C++ Arduino 串口输出读取整合
  10. et文件怎么转成excel_10秒就能将任意格式的文件转成PDF,简单易操作,不学可别后悔...
  11. 【从零开始学架构-李运华】09|架构设计原则案例
  12. iphone开发每日一练【2011-10-04】
  13. linux mbr转gpt分区,linux将GPT分区转换为MBR、RHEL GPT报错
  14. Java教学视频全集,活见久
  15. MySQL必知必会,我的MySql复习宝典
  16. java中报出异常java.net.MalformedURLException: unknown protocol: jrt
  17. 软件工程复习笔记 类图
  18. 用计算机弹出音乐谱,计算器弹歌曲谱子
  19. “互联网+地税大数据”提升淮安办税效能
  20. Logging initialized using configuration in jar:file:/home/lan/software/hive/lib/hive-common-1.2.1.ja

热门文章

  1. inner join 和 outer join 的区别
  2. 【NOIP2015模拟11.2晚】我的天
  3. canal搭建(HA)
  4. HTTP 新增的 103 状态码,这次终于派上用场了!
  5. Day.js格式化时间
  6. PySpark | RDD
  7. 打开计算机没有显示出硬盘,电脑启动时显示找不到硬盘如何解决_都叫兽软件...
  8. 详解u盘装系统启动不了怎么办
  9. 人工智能语言python培训
  10. 基于AI挑战《星际争霸II(StarCraft II)》的Windows版本下载安装详细教程