Re: Is there any reference or documents about how Linux supports dynamic library?

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

 



On Sun, Jan 24, 2010 at 12:57 PM, ZelluX <zellux@xxxxxxxxx> wrote:
So actually dynamic linking has nothing to do with kernel, or there's no special system calls or other mechanisms provided by kernel to support dynamic linking, is it right?
 
Why would you need special support in the kernel? As long as userspace has write access to the memory segments (relocation tables and other information to support dynamic linking), it will always work.

Take the cat program:
readelf -l /bin/cat

  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x006f08 0x0804ff08 0x0804ff08 0x001d8 0x0035c RW  0x1000
  DYNAMIC        0x006f1c 0x0804ff1c 0x0804ff1c 0x000d0 0x000d0 RW  0x4

 Section to Segment mapping:
   03     .ctors .dtors .jcr .dynamic .got .got.plt .data .bss 
   04     .dynamic 

Notice that the 3rd segment contains the .got and .got.plt tables which are required by the dynamic linker. These segments are marked with the flags "RW" so they can be written to in userspace after they've been loaded.

-Joel


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux