Vdso

From CRIU
Revision as of 20:22, 13 January 2015 by Cyrillos (talk | contribs)
Jump to navigation Jump to search

Overview

vDSO stands for virtual dynamic shared object and basically is a shared library exported by kernel into every userspace program. It usually export the following helper functions: gettimeofday, time, getcpu, clock_gettime. Userspace applications don't call them directly but make use of libc instead.

A problem

While kernel guarantees backwards compatibility, i.e. these helpers won't suddenly disappear, the internal structure of the vDSO itself may vary the way it wants, userspace programs won't notice such changes but this make a huge problem for CRIU. The vDSO is a part of userspace application and its structure highly coupled with kernel internals.