[Linux] vdso 32bit vs 64bit

不实践还真是不知道,vdso,在32位和64位之间还有差别。

https://github.com/mzhan017/dump-vdso

32bit的vdso提供的接口函数:

复制代码
mzhan017@:/mnt/d/dump-vdso$ ./dump-vdso-32 -s
Name                                     Address      Offset
----                                     -------      ------
__kernel_vsyscall                        0xf7fa1560 0x00000560
__vdso_gettimeofday                      0xf7fa1790 0x00000790
__vdso_clock_getres                      0xf7fa2520 0x00001520
__vdso_clock_gettime64                   0xf7fa2030 0x00001030
__kernel_sigreturn                       0xf7fa1580 0x00000580
__vdso_time                              0xf7fa1b40 0x00000b40
__kernel_rt_sigreturn                    0xf7fa1590 0x00000590
__vdso_clock_gettime                     0xf7fa1b80 0x00000b80
__vdso_getcpu                            0xf7fa25b0 0x000015b0

64bit提供的

复制代码
mzhan017@:/mnt/d/dump-vdso$ ./dump-vdso -s
Name                                     Address            Offset
----                                     -------            ------
clock_gettime                            0x00007fffc1f8fa70 0x00000a70
__vdso_gettimeofday                      0x00007fffc1f8f7b0 0x000007b0
clock_getres                             0x00007fffc1f8fdd0 0x00000dd0
__vdso_clock_getres                      0x00007fffc1f8fdd0 0x00000dd0
gettimeofday                             0x00007fffc1f8f7b0 0x000007b0
__vdso_time                              0x00007fffc1f8fa40 0x00000a40
__vdso_sgx_enter_enclave                 0x00007fffc1f8fe70 0x00000e70
time                                     0x00007fffc1f8fa40 0x00000a40
__vdso_clock_gettime                     0x00007fffc1f8fa70 0x00000a70
__vdso_getcpu                            0x00007fffc1f8fe40 0x00000e40
getcpu                                   0x00007fffc1f8fe40 0x00000e40

差异介绍:

https://zhuanlan.zhihu.com/p/436454953

相关推荐
浊酒入清梦5 分钟前
Gradle多模块项目构建docker镜像脚本
运维·docker·容器
江畔何人初19 分钟前
HPA是如何在k8s集群实现自动扩缩容机制的
linux·运维·服务器·云原生·kubernetes
杨云龙UP28 分钟前
Oracle 19c RAC多节点运行状态最简排查指南_20260316
linux·运维·服务器·数据库·sql·oracle
Scabbards_29 分钟前
基于docker的LLM服务部署
运维·docker·容器
于眠牧北30 分钟前
ubuntu22.04在docker中安装redis6.2.x并配置远程连接
运维·redis·docker·容器
逆境不可逃39 分钟前
【从零入门23种设计模式18】行为型之备忘录模式
服务器·数据库·设计模式·oracle·职场和发展·迭代器模式·备忘录模式
weixin_4529533240 分钟前
openclaw新手部署详细教程——适用于ubuntu22.04
linux·人工智能·ubuntu
暴力求解42 分钟前
Linux---ELF与库加载
linux·运维·服务器
Shaidou_Data1 小时前
数据要素自动化实践:沙淘金数据清洗与治理技术方案详解
运维·自动化
一行11 小时前
旧电脑重生:老i5装Ubuntu 保姆级步骤
服务器·windows·学习