【问题标题】:Is the 0xb8000 controlling an integrated or discrete graphics card?0xb8000 是控制集成显卡还是独立显卡?
【发布时间】:2022-08-12 04:29:31
【问题描述】:

最近在学习写操作系统,知道可以用in/out指令来操作显存输出屏幕上的内容,但是电脑上有集成和分立的显卡,我要知道0xb8000正在读写哪个显卡的内存

  • 无论哪张卡作为系统的主显卡(检查您的 BIOS 选项)都是在物理地址映射 VGA 文本帧缓冲区的那张卡,如果它完全处于文本模式。现代 PCI 设备可以配置它们“侦听”/响应的地址。另请注意,0xb8000 是设备记忆,而不是 IO 地址。您使用普通商店来访问它,而不是in/out。您只能在不同 IO 地址的 VGA 控制寄存器上使用 inout,因此不同地址空间中的数字不同。 (wiki.osdev.org/VGA_Hardware)
  • 谢谢,彼得!最后一个问题,显卡内存到0xb8000的映射是BIOS完成的吗?
  • 是的,通过在引导 UEFI 应用程序或为旧版 MBR 设置旧版 BIOS 16 位环境之前运行的固件。 (我认为即使在 UEFI 启动中,它通常也会使视频硬件处于文本模式。)无论如何,如果您问是否有 int xx BIOS 调用来更改它,不,不是 IBM-PC - 兼容的 BIOS 调用或任何 VESA 调用。我认为这些都是围绕带有一张 VGA 卡的系统设计的。

标签: x86 operating-system osdev vga


【解决方案1】:

旧电脑只有一张显卡。

现代计算机假装只有一个显卡,直到真正的操作系统加载可以理解有多张显卡。既然你在问这个问题,你的操作系统不理解有多张显卡,它会使用假装是唯一一张的。

BIOS/UEFI 对此进行了设置。在您的 BIOS/UEFI 设置中,您可能会找到一个选项来控制哪个显卡是“主”或“默认”或“启动”显卡。可能还有一个选项可以完全关闭集成显卡。

【讨论】:

    猜你喜欢
    • 2018-08-29
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多