Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux kernel 所有系统中的所有内核缓冲区都有相同的地址?_Linux Kernel - Fatal编程技术网

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

Linux kernel 所有系统中的所有内核缓冲区都有相同的地址?,linux-kernel,Linux Kernel,假设内核中的缓冲区地址是0xB0E4。所有其他系统是否在同一地址中也有内核缓冲区?绝对不是 不同的内核甚至可能根本没有缓冲区,更不用说在同一地址了 如果您将自己限制在完全相同的内核二进制文件中,则任何动态创建的缓冲区可能位于不同的启动地址 如果缓冲区是静态的,则在链接内核时定义偏移量。因此,相同的内核二进制文件将具有相同偏移量的缓冲区。如果内核不可重定位,那么地址将是相同的。一个可重新定位的内核仍然可以在不同的引导之间改变,尽管从内核开始的偏移量是相同的 模块在加载时是运行时链接的,因此模块中的

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

绝对不是

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

如果您将自己限制在完全相同的内核二进制文件中,则任何动态创建的缓冲区可能位于不同的启动地址

如果缓冲区是静态的,则在链接内核时定义偏移量。因此,相同的内核二进制文件将具有相同偏移量的缓冲区。如果内核不可重定位,那么地址将是相同的。一个可重新定位的内核仍然可以在不同的引导之间改变,尽管从内核开始的偏移量是相同的

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

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