Linux 内核在哪里(在内存中)存储 'special' 总线地址?

Where (in memory) does Linux kernel store 'special' bus addresses?

当内核启动时,它必须找到硬件并为 运行 程序做好准备。 I/O 端口处的内核 'looks' — 可能具有设备控制器卡的特殊总线地址。内核不会随意戳;它有很多关于它可能在哪里找到什么以及控制器在出现时将如何响应的内置知识。资料来源:http://www.tldp.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/bootup.html

那些特殊的总线地址是否存储在内核中space?

谢谢!

是的,它们存储在内核 space 内存中。有一个名为 request_region 的内核函数,驱动程序可以使用它来 "register" 它打算使用的 I/O 端口范围。内核将那些注册的 I/O 端口 "regions" 保存在树状结构中,(当然)驻留在内核内存中。各个驱动程序还会跟踪他们在自己的内存中使用的 I/O 端口,即内核-space 内存。