How many shared objects can I dlopen simultanously?
This answer was provided by Basile Starynkevitch many of them. The only limitation is the process address space (which grows slowly on each dlopen, which mmap-s it text & data segments). In practice, on linux x86 with libc6, a program can dlopen 30 000 -thirty thousands- different shared objects (and probably much more). See http://starynkevitch.net/Basile/manydl.c for an example • Does dlopen-ing a shared object need a file descriptor? This answer was provided by Basile Starynkevitch not permanently (after the dlopen succeed). But internally, dlopen needs to open the shared object (but closes it after having mmap-ed it). • What are vdso and linux-gate.so? It is a virtual dynamically-linked shared object, which implements the gate used to perform system calls. Depending on the architecture and kernel version there are different ways to do it. The kernel provides a page with a version suitable for the actual setup, which can then be used by all processes. On this page you can read more