7 windows operating-systems interrupts
在 CPU(主要是操作系统)上运行的程序如何访问其他 PC 硬件?比如显卡,硬盘等等?
从我读到的,在 DOS 中,这是使用 BIOS 调用完成的,特别是 INT 指令。但是,INT 指令应该只跳转到 RAM 中的特定空间。那么当CPU只能访问RAM并接收中断时,存储在RAM中的某些程序如何访问其他计算机硬件?
Windows 是否也使用 INT 指令,或者是否有与硬件通信的新方法?
[H]在 CPU(主要是操作系统)上运行的程序如何访问其他 PC 硬件?比如显卡,硬盘等等?
这个问题的完整答案很复杂,一般来说很难回答。因此,我将尝试从总体上回答它,并希望为您提供一些指示以查找更多信息以供进一步学习。我希望这是有用的。
对于 MS Windows 95 和更新版本或 x86 (IA-32) 处理器上的 Linux 使用的 32/64 位保护模式,软件中断(例如 x86 的 INT 操作码)转到适当的中断向量表(或调度表),它可以指示 CPU 在操作系统中的哪个位置,进程应该跳转到中断处理程序(或中断服务程序,ISR)来处理请求。
在 x86实模式中,如 MS-DOS,这些可能由BIOS处理,该BIOS为特定系统/芯片组/主板提供低级特定实现细节。
[H]当CPU只能访问RAM并接收中断时,存储在RAM中的某些程序如何访问其他计算机硬件?
所以你不想要通常的手波浪答案?我会尝试回答这个问题,但我不是计算机工程师或计算机体系结构专家。
有多种机制,包括
(Src: CS 473 - IO , 新墨西哥州立大学, pfeiffer, 2006)
最简单的是内存映射 I/O,其中内存地址可能映射到硬件设备(例如串行UART)和 CPU的寄存器,并写入和/或读取某些内存地址以直接访问硬件。这既快速又简单,但减少了可用作 RAM 的内存地址范围。
其他是更先进的技术,旨在允许现代 CPU 和更先进的操作系统以受控方式访问硬件。
在操作系统本身中,这些通常称为设备驱动程序,因为它们包含有关它们支持的硬件设备的特定详细信息。
而且,windows 是否也使用 int 指令,或者是否有任何新的方式与硬件通信?
是的,是的,但我想我已经解释过了。
| 归档时间: |
|
| 查看次数: |
18198 次 |
| 最近记录: |