vdso

I've been messing around with nix because I like the idea of having declarative and reproducible dev environments. Running ldd on a simple app in a nix shell listed the following dynamic links:

[nix-shell:~]$ ldd $(which bash)
        linux-vdso.so.1 (0x00007ffc4809e000)
        libreadline.so.8 => /nix/store/xxcf5gwyn5pldv4b4wa2jw6vqg7v55y6-readline-8.2p10/lib/libreadline.so.8 (0x00007f6255a37000)
        libhistory.so.8 => /nix/store/xxcf5gwyn5pldv4b4wa2jw6vqg7v55y6-readline-8.2p10/lib/libhistory.so.8 (0x00007f6255a29000)
        libncursesw.so.6 => /nix/store/z7nr6aqlzv51pk5ar8bgzg2alfqvi8fd-ncurses-6.4.20221231/lib/libncursesw.so.6 (0x00007f62559b3000)
        libdl.so.2 => /nix/store/3dyw8dzj9ab4m8hv5dpyx7zii8d0w6fi-glibc-2.39-52/lib/libdl.so.2 (0x00007f62559ae000)
        libc.so.6 => /nix/store/3dyw8dzj9ab4m8hv5dpyx7zii8d0w6fi-glibc-2.39-52/lib/libc.so.6 (0x00007f62557b7000)
        /nix/store/3dyw8dzj9ab4m8hv5dpyx7zii8d0w6fi-glibc-2.39-52/lib/ld-linux-x86-64.so.2 => /nix/store/3dyw8dzj9ab4m8hv5dpyx7zii8d0w6fi-glibc-2.39-52/lib64/ld-linux-x86-64.so.2 (0x00007f6255a93000)

These mostly refer to nix store objects, but I was curious about:

linux-vdso.so

vdso is a method the kernel uses to speed up system calls from user space by linking a library of system calls into every user space app, but I didn't know this.

To investigate this unknown library I typed 'linux-vdso.so' into my browser forgetting my tridactyl plugin treats any search string that sounds like a URL into a destination address and my browser took me here:

/media/images/2024-10-08_19-47_linux-vdso.png

I'm not sure why someone thought this was necessary, but I like it.