让我们说我内核中缓冲区的地址是0xB0E4。所有其他系统在同一地址中是否也有内核缓冲区?
答案 0 :(得分:1)
绝对不是。
一个不同的内核可能根本没有缓冲区,更不用说在同一个地址了。
如果您将自己局限于完全相同的内核二进制文件,则任何动态创建的缓冲区都可能位于从引导到引导的不同地址。
如果缓冲区是静态的,则在链接内核时定义偏移量。因此相同的内核二进制文件将使缓冲区具有相同的偏移量。如果内核不可重定位,那么地址将是相同的。可重定位内核仍然可以从引导更改为引导,但内核启动的偏移量是相同的。
模块在加载时链接运行时,因此模块中的静态缓冲区将具有不同的地址,具体取决于分配的内存来保存它。
您可能在同一地址找到的是内存映射IO区域。在许多SoC系统中,这些系统位于给定设备的固定地址。