I learned from a book (programming C programmers: C deep secrets) by Peter Van Der Linden) that there are specific libraries that require dynamic linking: which of these libraries and why are they necessarily dynamically linked? (more specifically on a GNU / Linux system)
What are these libraries
All UNIX systems guarantee backward compatibility; that is, binary code built on the old system will continue to work on the newer system. But this guarantee is only for binary files that are dynamically linked to system libraries.
why are they necessarily dynamically connected
, , libc wrapper. , UNIX syscall (, ), , . , . Solaris 2.6 2.7.
Solaris
Linux , , , glibc 200 + , . , , , ; - libc.
glibc
libc
: UNIX , , , .
POSIX , dlopen dlsym , , , , , -rdynamic linker. , , , , .
dlopen
dlsym
-rdynamic
, , , , - , . , , . undefined.
, glibc . , glibc, libnss_*.so passwd/NIS/DNS/etc. glibc. , glibc, pid/tid - , . Linux, libc glibc.
libnss_*.so