1 VDSO bits
Ryan Houdek edited this page 2021-01-22 19:50:52 -08:00

VDSO lives in a high memory location for a program and takes up a page or two of memory.

== AUXP == Two AUXP variables are set in relation to vdso.

  • AT_SYSINFO_EHDR points to the ELF header of the VDSO
  • AT_SYSINFO points to the entrypoint for the syscall function, allowing applications to call a syscall directly through it

== 32bit Exports ==

VDSO exports a bunch of versioned symbols in two namespaces

=== __kernel ===

  • __kernel_rt_sigreturn@@LINUX_2.5
  • __kernel_sigreturn@@LINUX_2.5
  • __kernel_vsyscall@@LINUX_2.5

=== __vdso === These vdso bits are the one that matter the most

  • __vdso_clock_getres@@LINUX_2.6
  • __vdso_clock_gettime@@LINUX_2.6
  • __vdso_clock_gettime64@@LINUX_2.6
  • __vdso_gettimeofday@@LINUX_2.6
  • __vdso_time@@LINUX_2.6