之间的关系是什么,什么是驱动( 二 )


现实世界中 , 老板想的话 , 可以和任何一个员工联系、对话 。但在电脑的世界里 , 老板(CPU)没法和收发人员(鼠标、键盘)直接联系 , 原因很简单:鼠标和键盘属于机电设备 , CPU属于电子设备 , 道不同 , 语言不同 , CPU只能看懂二进制代码 , 机电设备的动作语言 , CPU是真的不懂 。这时候 , 就需要驱动程序上场了 。CPU在工厂总管操作系统的协调下 , 在驱动程序的支持下 , 知道收发人员是鼠标键盘显示器 , 收发快递(外部信息)就是它们了 , 设计师是显卡 , 画三角形啥的就找显卡 , 如此等等 。
换句话说 , 驱动程序解决了硬件设备的“我是谁”、“我能干什么”等问题 。需要强调一点 , 在鼠标/键盘和CPU连接关系上 , 不是我们以为的插上就能用那么简单 。键盘/鼠标等输入输出设备通过一个特定的控制器(控制器又称接口 , 常见的有HDMI、USB、雷电等) , 与连接CPU和内存的总线相连 。鼠标/键盘/显示器之所以不能与CPU和内存通过总线直接相连 , 除了不是同类设备外 , 主要原因是 , 这些外接设备的速度非常慢 , 必须要通过控制器(各种接口)来处理这种速度差异 , 否则会严重拖慢电脑运行速度 。
好比CPU和内存在高速公路奔跑 , 你直接让拖拉机(外接设备)上高速 , 结果不是翻车就是堵 。鼠标/键盘等外部设备通过控制器(接口)解决了和CPU、内存的连接问题 , 但并不意味着它们之间就可以传输信息了 , 别忘了 , 点击鼠标或敲击键盘 , 产生的并不是0和1这样的二进制信号 , 所以CPU这个老板看不懂!怎么办?驱动程序撸起袖子上 。
比如我想输入“魔铁的世界”这5个字 。用键盘输入“魔铁的世界”(这里忽略输入法) , 键盘中的处理器把点击/敲击的符号 , 转换成CPU可以识别的0和1这样的二进制信息 , 然后键盘驱动程序报告到操作系统系统那里 。在操作系统的协调指挥下 , 信息被传输到控制器(接口) , 操作系统再通知CPU , CPU从控制器读取信息 , 解码、执行 , 并指挥显卡:“显示字符‘魔铁的世界’ 。
”显卡运行驱动程序 , 将命令传递给显示器 , 显示器运行显示器驱动程序 , 点亮相关像素 , 显示字符“魔铁的世界” 。键盘电路示意图 。每一个外设 , 无论键盘、鼠标 , 还是打印机、显示器 , 都有独立的微处理器 , 用来处理输入输出信号 。可以看出 , 在上述过程中 , 凡是涉及到执行指令的硬件 , 都必须在操作系统的协调和指挥下 , 运行相关驱动程序 , 硬件才能正常工作 。
正因为如此 , 驱动程序才被称为“硬件的灵魂” 。重点来了 , 鼠标、键盘、显卡、声卡等是硬件 , 离不开驱动程序 , CPU、内存也是硬件 , 为什么就没有驱动程序呢?实际上 , 严格来说 , CPU、内存也有驱动程序 , 不过不是保存在硬盘中 , 而是保存在主板上 , 它有个耳熟能详的名称BIOS 。实际上 , 在PC流行DIY的时代 , 有一段时间曾流行通过升级BIOS提升电脑性能的方法 , 包括支持新CPU(省下主板钱)、提升总线频率(CPU超频、内存超频)、开启CPU新的功能(包括英特尔CPU被屏蔽的超线程技术)等 。

推荐阅读