This article needs additional citations for verification. (June 2010) (Learn how and when to remove this template message)
vDSO (virtual dynamic shared object) is a kernel mechanism for exporting a carefully selected set of kernel space routines to user space applications so that applications can call these kernel space routines in-process, without incurring the performance penalty of a context switch that is inherent when calling these same kernel space routines by means of the system call interface.
vDSO has been developed to offer the vsyscall features while overcoming its limitations: a small amount of statically allocated memory, which allows only 4 system calls, and the same addresses ABI in each process, which compromises security. This security issue has been mitigated by emulating a virtual system call, but the emulation introduces additional latency.
vDSO is a memory area allocated in user space which exposes some kernel functionalities. vDSO is dynamically allocated, offers improved safety through memory space randomization, and supports more than 4 system calls. vDSO links are provided via the glibc library. If the kernel does not have vDSO support, a traditional syscall is made.
An advantage over other methods is that such exported routines can provide proper DWARF (Debug With Attributed Record Format) debugging information.
Implementation generally implies hooks in the dynamic linker to find the vDSOs.
- "vDSO - overview of the virtual ELF dynamic shared object". Canonical. Retrieved 10 December 2015.
- "Community answer to question "What are vDSO and vsyscall?"". Retrieved 19 November 2016.
- "Creating a vDSO: the Colonel's Other Chicken". Linuxjournal.com. Retrieved 16 February 2015.
- "On vsyscalls and the vDSO". Lwn.net. Retrieved 16 February 2015.
- "Anatomy of a system call, part 2". Lwn.net. Retrieved 19 November 2018.
|This Linux-related article is a stub. You can help Wikipedia by expanding it.|
|This Unix-related article is a stub. You can help Wikipedia by expanding it.|