Hello world! a journey to computer science

In this series, I will a simple hello world program to explain the every important concept in cmputer science.
So let’s go.

Do you know vDSO?
If a C program, gtod, calls the system call gettimeofday in vDSO, how does this program know the address of gettimeofday?

ldd gtod
linux-gate.so.1 (0xf7766000)
libdl.so.2 => /lib/libdl.so.2 (0xf7743000)
libc.so.6 => /lib/libc.so.6 (0xf7568000)
/lib/ld-linux.so.2 (0x56639000)
Check this commit of glibc:
30e32d23eb06cbeae02e51c7c4df150736dba795
Set up GLRO(dl_sysinfo_dso) under [NEED_DL_SYSINFO_DSO] as well
AT_SYSINFO_EHDR

Gcc 32bit support
ca677d3c3cd0eba7d1f03092517aea553a0e8569
Add x86 32 bit vDSO time function support
kernel
37c975545ec63320789962bf307f000f08fabd48

start the program

sysdeps/x86_64/dl-machine.h: -> _start ->_dl_start->/elf/dl-sysdep.c:83:_dl_sysdep_start->dl_main

Reference

Linkers 20 parts by Gold author Ian Lance Taylor
The Definitive Guide to Linux System Calls