【发布时间】:2011-12-11 23:30:30
【问题描述】:
这更像是一个知识问题,而不是实际实施。我想知道系统启动后是否有任何内核函数可以有不同的虚拟地址。我对可执行文件编译的理解是为其二进制文件分配了虚拟地址,但虚拟到物理是由操作系统在运行时完成的。(分页。我知道那些东西。所以,不需要 2 解释) 但是对于内核函数,我每次重新启动系统时都会看到它们具有不同的虚拟地址。 1、内核函数在地址范围内是如何映射的? 2. 能否在运行时映射到不同的虚拟地址。 (不知怎么可能) 3. dll的地址映射如何?它们是在编译时给定虚拟地址还是在运行时分配相对地址? (我认为这就是它的完成方式。) 4. 有没有办法找到是否有任何内核虚拟地址被固定到物理内存。
谢谢
【问题讨论】:
标签: c windows linux compiler-construction kernel