The linux-gate.so & VDSO story

If you ever wondered why linux-gate.so keeps appearing on your ldd

$ ldd /bin/ls 
linux-gate.so.1 => (0xffffe000)
librt.so.1 => /lib/tls/librt.so.1 (0xb7f39000)
libacl.so.1 => /lib/libacl.so.1 (0xb7f30000)
libselinux.so.1 => /lib/libselinux.so.1 (0xb7f1b000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7de3000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7dd1000)
/lib/ld-linux.so.2 (0xb7f55000)
libattr.so.1 => /lib/libattr.so.1 (0xb7dcc000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xb7dc8000)
libsepol.so.1 => /lib/libsepol.so.1 (0xb7d87000)

then this blogpost is for you. It also says a few things about Virtual Dynamic Shared Objects (vdso's) and the sysenter instruction found on modern x86 cpu's.

No comments: