- This topic has 1개 답변, 2명 참여, and was last updated 11 years 전에 by ELem. This post has been viewed 25 times
* 외국얘들과 IRC으로 논의하면서 정리했던 노트입니다.
About VDSO (Virutal Dynamic Shared Object)
(Roland MCGrath's VDSO Linux Patch)
Virtual Dynamically-linked Shared Object, a kernel-provided shared library that helps userspace
perform a few kernel actions without the overhead of a system call, as well as automatically
choosing the most efficient syscall mechanism. Also called the "vsyscall page".
vDSO is virtual Dynamic Shared Object and the vdso32 is designed to prevent stack overflow.
A shared object exposed by the kernel at a fixed address in every process' memory.
We can verify vDSO map information via "#>cat /proc//maps".
So that instead doing int80 or SYSCALL, the app can simply jump to vDSO address and
passing required parameters. the vDSO will decide which one will be used,
newer SYSCALL/SYSENTER or int 0x80 depending on machine capability or other settings.
Actually "lib/modules/vdso" are part of kernel, but made accessible from user space.
Roland MCGrath's VDSO Linux Patch is located in
This patch makes CONFIG_COMPAT_VDSO disable the real vma and use the fixmap area consistently.
This makes it actually compatible with what the old vdso implementation did.
If "/proc/sys/vm/vdso_enabled" turned on, the kernel randomizes the vDSO address as early as possible.
* 오픈소스는 Open Innovationa & 윈윈전략을 도모할 지언정 절대 공짜(무료)임을 뜻하지 않는다.치
- 답변은 로그인 후 가능합니다.