Difference between revisions of "Vdso"

From CRIU
Jump to navigation Jump to search
(Created page with "draft")
 
Line 1: Line 1:
draft
+
=== Overview ===
 +
 
 +
'''vDSO''' stands for [http://man7.org/linux/man-pages/man7/vdso.7.html ''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.

Revision as of 20:22, 13 January 2015

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.