0
리눅스 플랫폼에서동적 라이브러리는 실제로 메모리에 어디에 있습니까?
아무도 동적 라이브러리가 메모리에 있는지 알려 줄 수 있습니까?
나는 동적 라이브러리는 GOT이 과정의 에 따른 방법으로 메모리 매핑된다
는 사실이다 사실을 알게?
감사합니다.
리눅스 플랫폼에서동적 라이브러리는 실제로 메모리에 어디에 있습니까?
아무도 동적 라이브러리가 메모리에 있는지 알려 줄 수 있습니까?
나는 동적 라이브러리는 GOT이 과정의 에 따른 방법으로 메모리 매핑된다
는 사실이다 사실을 알게?
감사합니다.
/proc/pid/maps를 보면 Linux 프로세스에서 매핑 된 위치를 볼 수 있습니다. 알아 두어야 할 것은 프로세스 ID입니다. 예 :
$ cat /proc/self/maps
00400000-0040b000 r-xp 00000000 08:01 71827604 /bin/cat
0060a000-0060b000 r--p 0000a000 08:01 71827604 /bin/cat
0060b000-0060c000 rw-p 0000b000 08:01 71827604 /bin/cat
00690000-006b1000 rw-p 00000000 00:00 0 [heap]
7f07fbaf7000-7f07fbdc0000 r--p 00000000 08:01 18094104 /usr/lib/locale/locale-archive
7f07fbdc0000-7f07fbf75000 r-xp 00000000 08:01 14552996 /lib/x86_64-linux-gnu/libc-2.15.so
7f07fbf75000-7f07fc175000 ---p 001b5000 08:01 14552996 /lib/x86_64-linux-gnu/libc-2.15.so
7f07fc175000-7f07fc179000 r--p 001b5000 08:01 14552996 /lib/x86_64-linux-gnu/libc-2.15.so
7f07fc179000-7f07fc17b000 rw-p 001b9000 08:01 14552996 /lib/x86_64-linux-gnu/libc-2.15.so
7f07fc17b000-7f07fc180000 rw-p 00000000 00:00 0
7f07fc180000-7f07fc1a2000 r-xp 00000000 08:01 14553008 /lib/x86_64-linux-gnu/ld-2.15.so
7f07fc37e000-7f07fc381000 rw-p 00000000 00:00 0
7f07fc3a0000-7f07fc3a2000 rw-p 00000000 00:00 0
7f07fc3a2000-7f07fc3a3000 r--p 00022000 08:01 14553008 /lib/x86_64-linux-gnu/ld-2.15.so
7f07fc3a3000-7f07fc3a5000 rw-p 00023000 08:01 14553008 /lib/x86_64-linux-gnu/ld-2.15.so
7fff90e28000-7fff90e49000 rw-p 00000000 00:00 0 [stack]
7fff90f1f000-7fff90f20000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
은 cat
프로그램을 실행하기 위해 매핑 된 모든 것을 보여줍니다.
Chris 많은 감사합니다! – computereasy
이 질문은 매우 유사합니다 : http://stackoverflow.com/questions/5130654/when-how-does-linux-load-shared-libraries-into-address-space 한번보세요. 너의 질문. – LucienK
동적 로더가 넣기로 결정한 곳이면 어디서든 각 프로세스마다 다를 수 있습니다. – twalberg