Re: Dynamic linking library

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 20 Jan 2011 12:37:25 +0100, ratheesh k <ratheesh.ksz@xxxxxxxxx> wrote:

Suppose there are two executable elf . say A, B . And these two are
using  libctest.so.
When A is executed  libctest.so is loaded into RAM and linear address
is  correctly mapped.

If we execute program B after A ,  will library will be loaded again ?

When A is executed dynamic loader opens the library and then mmap(2)s it
into virtual address space.

When B is executed, from user space (ie. dynamic loader) point of view the
very same thing happens: dynamic loader opens the library and mmap(2)s it
into virtual address space.

What happens behind the scene, is that when the libctest.so is opened, file
system figures out it's inode and then opens file with given inode number.
The first time this is done, system creates all bunch of structures for
the file, however, the second time, system sees that a file with given inode number is already opened so some data can be shared between the two instances.
--
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux