mirror of
https://github.com/0xAX/linux-insides.git
synced 2024-12-22 14:48:08 +00:00
Clarify: vDSO is linked automatically with glibc
Change is partly a verbatim copy of https://www.kernel.org/doc/Documentation/ABI/stable/vdso Quote: "Programs that dynamically link to glibc will use the vDSO automatically. Otherwise, you can use the reference parser in tools/testing/selftests/vDSO/parse_vdso.c." The old version of the book was slightly imprecise. It was unclear to me whether this is an optional or a default behavior.
This commit is contained in:
parent
848436789f
commit
a87d46fd66
@ -230,7 +230,7 @@ That's all. Now let's look on the modern concept - `vDSO`.
|
|||||||
Introduction to vDSO
|
Introduction to vDSO
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
As I already wrote above, `vsyscall` is an obsolete concept and replaced by the `vDSO` or `virtual dynamic shared object`. The main difference between the `vsyscall` and `vDSO` mechanisms is that `vDSO` maps memory pages into each process in a shared object [form](https://en.wikipedia.org/wiki/Library_%28computing%29#Shared_libraries), but `vsyscall` is static in memory and has the same address every time. For the `x86_64` architecture it is called -`linux-vdso.so.1`. All userspace applications linked with this shared library via the `glibc`. For example:
|
As I already wrote above, `vsyscall` is an obsolete concept and replaced by the `vDSO` or `virtual dynamic shared object`. The main difference between the `vsyscall` and `vDSO` mechanisms is that `vDSO` maps memory pages into each process in a shared object [form](https://en.wikipedia.org/wiki/Library_%28computing%29#Shared_libraries), but `vsyscall` is static in memory and has the same address every time. For the `x86_64` architecture it is called -`linux-vdso.so.1`. All userspace applications that dynamically link to `glibc` will use the `vDSO` automatically. For example:
|
||||||
|
|
||||||
```
|
```
|
||||||
~$ ldd /bin/uname
|
~$ ldd /bin/uname
|
||||||
|
Loading…
Reference in New Issue
Block a user