gpt4 book ai didi

osdev - 内存映射 I/O 地址从何而来?

转载 作者:行者123 更新时间:2023-12-04 20:18:20 30 4
gpt4 key购买 nike

我正在搞一些业余操作系统开发,我对内存映射的 I/O 地址有点困惑。我了解整个内存映射 I/O 概念,但我试图弄清楚开发人员如何获取地址来操作硬件。

这些地址是由硬件供应商指定的,还是某种适用于所有计算机的标准地址?例如,用于文本打印的 VGA 内存从地址 0xB8000 开始。这是每台 x86 机器的标准吗?如果是这样,谁制定了这个标准?例如,如果我想与以太网卡通话,我如何知道它用于通信的地址或端口?

提前致谢。

最佳答案

我不是 100% 确定谁设置了地址,但据我所知,硬件供应商可以随意设置他们的内存映射。

值得一提的是,Linux 可以让您通过执行 cat /proc/iomem 来查看当前内存在您的机器上的映射情况。 :

00000000-0000ffff : reserved
00010000-0009f3ff : System RAM
0009f400-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:00
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000ca000-000cbfff : reserved
000ca000-000cafff : Adapter ROM
000cc000-000cffff : PCI Bus 0000:00
000d0000-000d3fff : PCI Bus 0000:00
000d4000-000d7fff : PCI Bus 0000:00
000d8000-000dbfff : PCI Bus 0000:00
000dc000-000fffff : reserved
000f0000-000fffff : System ROM
00100000-3fedffff : System RAM
01000000-01536143 : Kernel code
01536144-017c007f : Kernel data
01875000-0194bfff : Kernel bss
3fee0000-3fefefff : ACPI Tables
....

关于osdev - 内存映射 I/O 地址从何而来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9613178/

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