«dynamic-linking» 태그된 질문

컴퓨팅에서 동적 연결은 런타임시 실행 파일에 필요한 공유 라이브러리를로드 (영구 저장소에서 RAM으로 복사)하고 링크 (점프 테이블을 채우고 포인터를 재배치)하는 운영 체제 (OS)의 프로세스입니다. 실행될 때.

1
Linux, GNU GCC, ld, 버전 스크립트 및 ELF 이진 형식 — 어떻게 작동합니까?
Linux의 라이브러리 버전 관리 및 모든 기능을 작동시키는 방법에 대해 자세히 배우려고합니다. 컨텍스트는 다음과 같습니다. - 나는 동일한 인터페이스를 노출 동적 라이브러리의 두 가지 버전을 가지고 말을 libsome1.so하고 libsome2.so. -응용 프로그램이에 연결되어 libsome1.so있습니다. -이 응용 프로그램은 libdl.so다른 모듈을 동적으로로드 하는 데 사용 됩니다 (예 :) libmagic.so. -이제 libmagic.so연결되어 libsome2.so있습니다. 분명히 …

1
Linux의 동적 링커가 경로를 검색하는 순서는 무엇입니까?
이것은 내가 사용했을 때 발견 한 특이점을 다루고 있기 때문에 이것은 중복되지 않습니다 /etc/ld.so.conf. 동적 링커가 라이브러리를 검색하는 경로를 얻으려면 명령을 실행하십시오 ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g". 때 /etc/ld.so.conf그 안에 나열된 경로가 없습니다. 이전 명령의 출력은 /lib /usr/lib 나는 검색 것을 생각 /lib먼저하고 /usr/lib. I와 같은 …

2
동적 링커 / 로더 자체는 어떻게`file`에 의해보고 된대로 동적으로 링크 될 수 있습니까?
(동적 링커 / 로더) /bin/bash를 포함하는 의 공유 객체 종속성을 고려하십시오 /lib64/ld-linux-x86-64.so.2. ldd /bin/bash linux-vdso.so.1 (0x00007fffd0887000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f57a04e3000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f57a04de000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f57a031d000) /lib64/ld-linux-x86-64.so.2 (0x00007f57a0652000) 검사 /lib64/ld-linux-x86-64.so.2는 다음과의 심볼릭 링크임을 보여줍니다 /lib/x86_64-linux-gnu/ld-2.28.so. ls -la /lib64/ld-linux-x86-64.so.2 lrwxrwxrwx 1 root root 32 May 1 19:24 /lib64/ld-linux-x86-64.so.2 -> …

2
NixOS에서 바이너리를 실행할 수 없음-해당 파일 또는 디렉토리가 없음
NixOS를 실행하는 VM에 현재 Oracle jre를 설치하려고했습니다. 이제 다음이 발생합니다. [michas@cc:~]$ tar xvzf jre-7u40-linux-x64.tar.gz |grep bin/java jre1.7.0_40/bin/javaws jre1.7.0_40/bin/java_vm jre1.7.0_40/bin/java [michas@cc:~]$ ls -l ./jre1.7.0_40/bin/java -rwxr-xr-x 1 michas nogroup 7750 Aug 27 09:17 ./jre1.7.0_40/bin/java [michas@cc:~]$ ./jre1.7.0_40/bin/java bash: ./jre1.7.0_40/bin/java: No such file or directory WTF? 명명 된 파일이 분명히 있습니다. 무슨 일이야? 더 …

2
ELF 공유 라이브러리-PLT에 대한 동기
동적으로 링크 된 라이브러리에서 함수 호출 속도를 높이기 위해 자체 수정 코드를 사용할 수 있습니까? 내가 이해하는 한 ELF 공유 라이브러리 는 일종의 간접 점프 테이블 (프로 시저 연결 테이블 또는 PLT)을 사용하여 라이브러리 함수의 지연 바인딩을 가능하게합니다. 목적은 코드 세그먼트에서 테이블을 수정하지 않고도 첫 번째 호출에서 함수 위치의 지연 …


1
ELF 실행 파일의 어느 부분이 메모리에로드됩니까?
내가 이미 알고있는 것 : ELF 실행 파일에는 여러 섹션이 있습니다. 분명히 .text 및 .data 섹션은 프로그램의 주요 부분이므로 메모리에로드됩니다. 그러나 프로그램이 작동하려면 특히 동적으로 링크 된 경우 더 많은 정보가 필요합니다. 내가 관심있는 것은 .plt, .got, .dynamic, .dynsym, .dynstr 등의 섹션입니다. 기능을 주소에 연결하는 기능을 담당하는 ELF의 부분. 내가 …

2
여러 버전의 공유 라이브러리를 설치할 수없는 이유는 무엇입니까?
특정 프로그램이 라이브러리 버전 xy와 xz에 의존하는 경우가 종종 있지만, 아는 한, xy와 xz를 모두 설치할 수있는 패키지 관리자가 없을 때가 있습니다. 때로는 주요 버전 (예 : qt4와 qt5는 동시에 설치 될 수 있지만 부 버전은 아닙니다. 왜 이런거야? 마찬가지로, 그것을 막는 제한 요소는 무엇입니까? 이처럼 유용한 기능을 허용하지 않는 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.