当内核启动时,它必须找到硬件并准备运行程序。内核'看起来'在I / O端口 - 可能有设备控制器卡的特殊总线地址。内核不会随意戳;它有很多关于它可能在哪里找到的内置知识,以及如果控制器存在,控制器将如何响应。资料来源:http://www.tldp.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/bootup.html
那些特殊的总线地址是否存储在内核空间中?
谢谢!
答案 0 :(得分:1)
是的,它们存储在内核空间内存中。有一个名为request_region
的内核函数,驱动程序可以使用它来“注册”它打算使用的I / O端口范围。内核将这些已注册的I / O端口“区域”保存在树状结构中,当然这些结构驻留在内核内存中。各个驱动程序还跟踪它们在自己的内存中使用的I / O端口,这是内核空间内存。