核心内容摘要
17·c3起草片:革新不止,未来已来
要理解软件如何驱动硬件我们需要从计算机的底层原理说起。
这是一个从抽象到具体、从高级到低级的完整链条。
简单来说软件驱动硬件的过程可以概括为软件通过操作系统将高级指令转化为硬件能够理解和执行的电子信号。
下面我们分层详细解释这个过程核心思想分层与翻译计算机系统是分层的每一层都为上一层提供服务并隐藏下层的复杂性。
应用软件如浏览器、游戏操作系统如 Windows, Linux, macOS驱动程序硬件厂商提供的专用软件固件/BIOS/UEFI硬件自带的底层程序硬件CPU、内存、显卡、硬盘等驱动过程就像一场“接力翻译”将人类可读的指令最终变成硬件可执行的电流。
详细步骤分解第1步应用软件发出请求当你在程序中点击“保存文件”时应用程序如Word并不会直接和硬盘对话。
它会调用操作系统提供的API。
例如调用WriteFile()这个API函数告诉操作系统“请把这段数据写到‘我的文档’下的某个文件里。
”此时指令是高级的、与硬件无关的。
第2步操作系统接管并进行管理操作系统如Windows是这个过程的“总指挥”。
它的核心——内核——会做以下几件事权限检查这个程序有权写这个文件吗资源管理找到硬盘上空闲的存储块。
逻辑到物理的转换将“我的文档\报告.doc”这个逻辑路径转换成硬盘上具体的“第XXX号柱面、第YYY号磁道、第ZZZ号扇区”这样的物理地址对于SSD则是“第NNN个存储块”。
调用驱动程序操作系统知道要操作的是硬盘它会去调用为这块硬盘专门编写的驱动程序。
第3步驱动程序——关键的“翻译官”驱动程序是硬件厂商编写的它“精通”两种语言操作系统能理解的语言标准化的接口和命令如“写入数据块”。
自家硬件能理解的语言特定的控制命令和寄存器操作。
驱动程序收到操作系统的“写入数据”请求后会将其翻译成一系列针对该硬盘的低级、具体的硬件操作指令。
第4步CPU执行与总线传输CPU执行驱动程序的代码CPU从内存中读取驱动程序指令开始执行。
通过总线发号施令CPU通过主板上的总线如PCIe、SATA将指令和数据发送到目标硬件硬盘控制器。
端口与寄存器读写CPU向硬盘控制器上的特定I/O端口或内存映射寄存器写入控制命令和数据。
这就像按下一个个特定的开关。
第5步硬件控制器执行最终动作这是最后也是最物理的一步。
硬盘控制器收到CPU发来的电子信号后解码命令“哦这是一个写命令数据是XXX要写到LBA地址YYYY。
”执行物理操作如果是机械硬盘控制器驱动马达移动磁头臂到指定磁道等待盘片旋转到正确扇区然后通过磁头改变磁盘上的磁性材料极性完成数据写入。
如果是固态硬盘控制器向特定的NAND闪存存储单元施加精确的电压改变晶体管的状态充电/放电从而记录数据0或1。
反馈中断任务完成后硬盘控制器会通过中断线向CPU发送一个中断信号“嘿你交给我的事办完了”第6步完成闭环CPU接收到中断信号暂停当前工作转而运行中断处理程序通常是驱动程序的一部分。
该程序会检查结果是否成功然后层层向上返回最终通知操作系统操作系统再通知应用程序“保存成功”。
关键硬件组件的角色CPU终极命令执行者执行软件和驱动程序的每一行代码通过总线控制一切。
内存存放正在运行的程序包括操作系统、驱动程序、应用程序及其数据。
CPU的所有操作都基于内存中的数据。
总线计算机内部的“高速公路”负责在CPU、内存和所有外围硬件间传输数据、地址和控制信号。
I/O端口与寄存器每个硬件设备都有一组可由CPU读写的“开关”和“状态指示灯”。
写端口就是发命令读端口就是看状态。
这是软件与硬件对话的最直接窗口。
中断控制器管理硬件的中断请求让CPU能及时响应硬件事件而不是不停地询问轮询。
一个生动的类比打印文件你应用程序在Word里点击“打印”。
办公室文员操作系统收到请求检查打印机是否可用、纸张够不够并把你.doc文件转换成通用的打印描述语言如PDF/PostScript。
翻译专家打印机驱动程序把通用的打印描述语言翻译成你的惠普XX型号打印机独有的HP PCL语言。
邮差总线把翻译好的PCL命令数据包通过USB或网络线缆总线送到打印机。
打印机的大脑打印机控制器理解PCL命令指挥机械部件命令进纸马达转动命令打印头移动到特定位置命令特定的喷嘴喷出墨滴命令加热元件激光打印机熔化碳粉打印机硬件物理执行完成打印。