gpt4 book ai didi

operating-system - 内存映射 IO - 它是如何完成的?

转载 作者:行者123 更新时间:2023-12-03 09:57:19 24 4
gpt4 key购买 nike

我已经了解了端口映射 IO 和内存映射 IO 之间的区别,但我不知道在现代操作系统(windows 或 linux)中如何实现内存映射 Io

我所知道的是,保留了一部分物理内存用于与硬件通信,并且有一个 MMIO 单元参与处理总线通信和其他与内存相关的事情

驱动程序如何与底层硬件通信?驱动程序会使用哪些功能?与视频卡通信的地址是固定的,还是在使用它们之前有某种“协议(protocol)”?

我还是比较迷茫

最佳答案

您问题中的以下陈述是错误的:
What I know is that a part of the physical memory is reserved to communicate with the hardware
物理内存的一部分是不是 保留用于与硬件通信。部分实物地址空间 ,物理内存和内存映射IO映射到的,是。这种内存布局是永久性的,但用户程序不会直接看到它——相反,它们会遇到自己的 虚拟地址空间内核可以决定在哪里映射物理内存和 IO 范围。

您可能想阅读以下文章,我认为这些文章包含您大部分问题的答案:

  • http://duartes.org/gustavo/blog/post/motherboard-chipsets-memory-map
  • http://duartes.org/gustavo/blog/post/memory-translation-and-segmentation
  • http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory
  • 关于operating-system - 内存映射 IO - 它是如何完成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9654504/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com