最新的Linux内核(至少在amd64上)提供了一个名为linux-vdso.so.1的神奇对象文件,它抽象出内核的syscall接口,允许内核选择最佳的调用约定。如果你用C编写代码,glibc会自动使用这个对象。
现在,如果我想在不使用glibc的情况下编写程序,我如何使用这个对象呢?它提供的接口在什么地方有文档吗?那么调用约定呢?
发布于 2013-03-25 04:55:14
我发现Linux内核树中的这些文件很有帮助:
Documentation/ABI/stable/vdso (什么是object?)Documentation/vDSO/parse_vdso.c vDSO ( vDSO对象的引用解析器)vDSO对象是一个虚拟的动态共享对象,它总是映射到linux下amd64进程的地址空间中。它可以用来实现快速系统调用。要访问vDSO对象中的函数,您需要
table an >从符号表中查找
这两件事都可以使用CC0许可参考实现parse_vdso.c来完成。
https://stackoverflow.com/questions/15602773
复制相似问题