문제

"공유 라이브러리 텍스트"와 "공유 라이브러리 데이터"의 차이점은 무엇입니까? 또한 공유 라이브러리 데이터가 "사전 관련"되는 것은 무엇을 의미합니까? 이 질문은 공유 라이브러리와 관련된 몇 가지 AIX 관련 기능과 관련이 있습니다.

도움이 되었습니까?

해결책

아, 그것은 까다로운 질문입니다.

자, 대답하기 위해 실행 파일에는 "텍스트"섹션과 "데이터"섹션의 두 개의* 세그먼트가 있음을 알아야합니다.

"데이터"세그먼트에는 "실행되지 않는 물건"이 포함되어 있습니다. 예를 들어, 프로그램의 문자열 (예 : 문자열 "명령을 찾을 수 없음"은 /bin/sh 이진).

"텍스트"세그먼트에는 기계 지침 인 "실행 될 것"이 포함되어 있습니다.

그리고 "사전 관련 된"... 여기에서 이전이 필요한 이유에 대한 상당히 좋은 설명이 있습니다. http://people.redhat.com/drepper/textrelocs.html 그리고 여기에 관련된 것 : http://en.wikipedia.org/wiki/relocation_(computer_science).

그게 도움이 되나요?

*: nitpicker 참고 : 2 개 이상이 있지만 지금은 중요하지 않습니다.

다른 팁

메모리는 코드, 데이터, 스택 및 힙의 4 개의 세그먼트로 나뉩니다.

"공유 라이브러리 텍스트"는 라이브러리에서 기능을 구현하는 실제 지침 인 공유 라이브러리의 코드 부분입니다.

"공유 라이브러리 데이터"는 라이브러리가로드 될 때 즉시 할당되는 공유 라이브러리 - 글로벌 변수, 상수, 정적 재료 등의 데이터 부분입니다.

"사전 관련 된"라이브러리에 관해서는 여기에 개념이 있습니다. 공유 라이브러리가로드되면 공유 주소 공간에 매핑됩니다. "사전 관련 된"라이브러리는 공유 주소 공간에서로드 해야하는 곳에 OS를 알려주는 "힌트"로 제작되었습니다. 내가 이해할 수없는 이유로, 그것은 성능을 향상시켜야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top