据我所知,任何程序都会被编译成一系列针对它运行的架构的汇编指令。我无法理解的是操作系统如何与显卡等外围设备进行交互。驱动本身不是CPU的一系列汇编指令吗?
我唯一能想到的是它使用内存区域,然后由外围设备监视,或者它使用 BUS 来通信操作并接收结果。这个过程有没有简单的解释。
对不起,如果这个问题太笼统,它一直困扰着我。
最佳答案
有简单的解释,也有真实的解释——选择一个!
我将尝试一个简单的方法:在组装说明中,有一些专门用于与外围设备通信。硬件不是通过例如解释它们在寄存器中添加值或将某些内容写入 RAM,但通过将一些数据从寄存器或 RAM 中的区域移动到外围设备(或相反)。
在操作系统内部,例如声音驱动程序负责在 RAM 中组装一些声音数据和一些命令数据,然后操作系统调用总线驱动程序发出这些特殊指令,将命令和数据移动到声卡。声卡硬件将(希望)理解命令并将数据解释为它应该播放的声音。
关于operating-system - 操作系统如何与声卡/视频卡等外围设备交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10730213/