说明:Linux linux-gate.so.1库/动态共享对象[vdso]

时间:2020-01-09 10:41:44  来源:igfitidea点击:

我使用ldd命令获取有关/usr/local/nginx/sbin/nginx二进制文件的信息,我看到linux-gate.so.1库。
但是,我无法在系统上的任何地方找到此文件吗?
什么是linux-gate.so.1,如何复制此文件?

linux-gate.so.1只是Linux虚拟动态共享对象。
该文件仅存在于每个可执行文件地址空间中。
换句话说,您不必复制或担心此文件,因为它是一个虚拟库。
该虚拟库提供了必要的逻辑,以允许用户程序通过特定处理器上可用的最快方式(中断或与大多数较新的处理器一起)快速访问系统功能。

内核在每个进程内存中的固定地址处公开此VDSO:

cat /proc/self/maps

输出示例:

00400000-00405000 r-xp 00000000 08:03 917599                             /bin/cat
00604000-00606000 rw-p 00004000 08:03 917599                             /bin/cat
006b5000-006d6000 rw-p 006b5000 00:00 0                                  [heap]
2ac89a38d000-2ac89a3a9000 r-xp 00000000 08:03 13435115                   /lib64/ld-2.5.so
2ac89a3a9000-2ac89a3ab000 rw-p 2ac89a3a9000 00:00 0 
2ac89a5a8000-2ac89a5a9000 r--p 0001b000 08:03 13435115                   /lib64/ld-2.5.so
2ac89a5a9000-2ac89a5aa000 rw-p 0001c000 08:03 13435115                   /lib64/ld-2.5.so
2ac89a5aa000-2ac89a6f8000 r-xp 00000000 08:03 13434936                   /lib64/libc-2.5.so
2ac89a6f8000-2ac89a8f8000 ---p 0014e000 08:03 13434936                   /lib64/libc-2.5.so
2ac89a8f8000-2ac89a8fc000 r--p 0014e000 08:03 13434936                   /lib64/libc-2.5.so
2ac89a8fc000-2ac89a8fd000 rw-p 00152000 08:03 13434936                   /lib64/libc-2.5.so
2ac89a8fd000-2ac89a903000 rw-p 2ac89a8fd000 00:00 0 
2ac89a903000-2ac89dedc000 r--p 00000000 08:03 22135818                   /usr/lib/locale/locale-archive
7fffe69cf000-7fffe69e4000 rw-p 7ffffffe9000 00:00 0                      [stack]
7fffe69fc000-7fffe6a00000 r-xp 7fffe69fc000 00:00 0                      [vdso]
ffffffffff600000-ffffffffffe00000 ---p 00000000 00:00 0                  [vsyscall]