Explains: Linux linux-gate.so.1 Library / Dynamic Shared Object [ vdso ]

by on January 16, 2011 · 1 comment· LAST UPDATED January 16, 2011

in

I'm using the ldd command to get information about /usr/local/nginx/sbin/nginx binary and I see linux-gate.so.1 library. However, I'm unable to find out this file anywhere on the system? What is linux-gate.so.1 and how do I copy this file?

linux-gate.so.1 is nothing but the Linux Virtual Dynamic Shared Object. This file only exists in each executables address space. In other words you don't have to copy or worry about this file as it is a virtual library. According to this article:

This virtual library provides the necessary logic to allow user programs to access system functions through the fastest means available on the particular processor, either interrupt, or with most newer processors, fast system call.

This VDSO exposed by the kernel at a fixed address in every process' memory:
cat /proc/self/maps
Sample outputs:

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]

See this blog post which explains linux-gate.so.1 vdso in the details.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 1 comment… read it below or add one }

1 khemraj choudhary January 17, 2012 at 6:00 am

i am khemraj pls requesr to me requied linux jobs

Reply

Leave a Comment

Tagged as: , , , , , , , , , ,

Previous Faq:

Next Faq: