原文章描述得非常清楚,这里只是做一个简单的笔记。
vDSO(“virtual dynamic shared object”)是一个小型共享库,用于加速某些只读系统调用例如获取时间等,使其不需要经过管目态之间的转换。这样的系统调用也被称之为“虚拟系统调用”。

如图所示,[vdso]是一块内存区域,大小为4KB,即一页。它以共享库的格式存在,但与libgcc、libc等不同的是,它并不映射到某个文件,而是直接映射到内核内存中已经加载好的共享库。
在[vdso]上方还有一个[vvar]区域,它里面存放着vDSO的变量,也映射到内核空间。可见它的权限被设为只读的,即用户态不能修改内核变量。