linux - 如何检查 vsyscall 模式

标签 linux linux-kernel kernel configuration-files system-calls

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

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

最佳答案

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

对于鱼壳:

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

关于linux - 如何检查 vsyscall 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29377245/

相关文章:

linux - Xcode 未在 Linux 上列为 CMake 生成器

linux - 无法从 AWS CloudFormation 脚本更新 .bashrc 文件

c - 有什么解决方案可以在原子上下文中在用户和内核之间共享数据吗?

c - load_seg_reg(ES,0xfffc): invalid segment when trying to run kernel code from boot sector

c - 如何在 Linux 资源中找到特定系统调用的定义?

linux - 读取/解析 XLSX 文件,保留字体

linux - 使用 grep、awk 或 sed 解析字符串

c - 关于linux内核中的文件操作

linux-kernel - 为什么Linux内核使用循环双向链表来存储进程列表?

linux - init 的僵尸 child