如何检查 vsyscall 模式

How to check the vsyscall mode

我正在努力寻找如何检查 [vsyscall] table 的配置方式(本地或模拟)。该设置应设置在名为 vsyscall_mode 的变量中。谁能阐明如何检查此设置?

通过重新运行 cat /proc/self/maps,我观察到 [vsyscall] 的内存映射区域没有改变,而 [vdso] 却改变了。这是否意味着 vsyscall 的设置设置为本机?

通常在 /proc/config.gz 文件中可用,它将包含当前内核配置。

vsyscall 模式在内核配置中设置,因此您可以在本机和仿真之间进行选择。

鱼-shell:

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