如何检查 vsyscall 模式

Olo*_*ord 5 linux kernel configuration-files system-calls linux-kernel

我正在努力找出如何检查 [vsyscall] 表的配置方式(本地或模拟)。该设置应设置在名为 的变量中vsyscall_mode。任何人都可以说明如何检查此设置吗?

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

x4k*_*k3p 5

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

对于鱼壳:

cat /usr/src/linux-headers-(uname -r)/.config | grep VSYSCALL 
Run Code Online (Sandbox Code Playgroud)

对于 bash:

cat /usr/src/linux-headers-$(uname -r)/.config | grep VSYSCALL 
Run Code Online (Sandbox Code Playgroud)

debian 8 上的输出(例如):

CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_X86_VSYSCALL_EMULATION=y
Run Code Online (Sandbox Code Playgroud)