我正在努力找出如何检查如何configuration[vsyscall]表(本地或模拟)。 该设置应该在一个名为vsyscall_mode
的variables中设置。 任何人都可以阐明如何检查这个设置?
通过重新运行cat /proc/self/maps
我发现[vsyscall]的内存映射区域不会改变,[vdso]会改变。 这是否意味着vsyscall的设置被设置为本地?
vsyscall模式在内核配置中设置,所以你可以选择本地和模拟。
对于鱼贝壳:
cat /usr/src/linux-headers-(uname -r)/.config | grep VSYSCALL
为bash:
cat /usr/src/linux-headers-$(uname -r)/.config | grep VSYSCALL
输出在debian 8上(举例):
CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_X86_VSYSCALL_EMULATION=y
通常在/proc/config.gz文件中可用,它将包含当前的内核配置。