所有内核缓冲区在所有系统中都具有相同的地址?

时间:2017-01-23 04:24:05

标签: linux-kernel

让我们说我内核中缓冲区的地址是0xB0E4。所有其他系统在同一地址中是否也有内核缓冲区?

1 个答案:

答案 0 :(得分:1)

绝对不是。

一个不同的内核可能根本没有缓冲区,更不用说在同一个地址了。

如果您将自己局限于完全相同的内核二进制文件,则任何动态创建的缓冲区都可能位于从引导到引导的不同地址。

如果缓冲区是静态的,则在链接内核时定义偏移量。因此相同的内核二进制文件将使缓冲区具有相同的偏移量。如果内核不可重定位,那么地址将是相同的。可重定位内核仍然可以从引导更改为引导,但内核启动的偏移量是相同的。

模块在加载时链接运行时,因此模块中的静态缓冲区将具有不同的地址,具体取决于分配的内存来保存它。

您可能在同一地址找到的是内存映射IO区域。在许多SoC系统中,这些系统位于给定设备的固定地址。