operating-system - 操作系统如何与声卡/视频卡等外围设备交互

标签 operating-system hardware processor instruction-set bus

据我所知,任何程序都会被编译成一系列针对它运行的架构的汇编指令。我无法理解的是操作系统如何与显卡等外围设备进行交互。驱动本身不是CPU的一系列汇编指令吗?

我唯一能想到的是它使用内存区域,然后由外围设备监视,或者它使用 BUS 来通信操作并接收结果。这个过程有没有简单的解释。

对不起,如果这个问题太笼统,它一直困扰着我。

最佳答案

有简单的解释,也有真实的解释——选择一个!

我将尝试一个简单的方法:在组装说明中,有一些专门用于与外围设备通信。硬件不是通过例如解释它们在寄存器中添加值或将某些内容写入 RAM,但通过将一些数据从寄存器或 RAM 中的区域移动到外围设备(或相反)。

在操作系统内部,例如声音驱动程序负责在 RAM 中组装一些声音数据和一些命令数据,然后操作系统调用总线驱动程序发出这些特殊指令,将命令和数据移动到声卡。声卡硬件将(希望)理解命令并将数据解释为它应该播放的声音。

关于operating-system - 操作系统如何与声卡/视频卡等外围设备交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10730213/

相关文章:

c - c中信号处理函数的签名

hardware - 数字逻辑 - 粉状状态机?

Python Raspberry Pi Piano-HAT 权限被拒绝

io - 编程(轮询)的I/O,中断驱动的I/O和直接内存访问之间有什么区别。这些形式的I/O OS是否相关?

java - 提高机器学习 JAVA 程序的速度

python - 添加新列年份并提取给定文件名(pandas、glob、os)

hardware - 字节如何映射到小端系统上的 AXI4 总线

floating-point - 如果两个整数的乘积落在浮点类型的无损范围内,是否会无损?

c++ - 交换变量(C++,处理器级别)

linux - 从处理器的角度进行进程调度