Pergunta

O que é a diferença entre "text biblioteca compartilhada" e "dados biblioteca compartilhada"? Além disso, o que significa para os dados da biblioteca compartilhada a ser "pré-realocados"? Esta questão é em referência a um par de específico-AIX recursos envolvendo bibliotecas compartilhadas.

Foi útil?

Solução

Ah, isso é uma pergunta complicada.

Tudo bem, então para respondê-la, você tem que saber que um arquivo executável tem dois * segmentos:. Uma seção de "texto" e uma seção de "dados"

O segmento de "dados" contém "coisas que não será executado". Por exemplo, cordas no programa (por exemplo, a string "comando não encontrado" seria no segmento de dados do binário /bin/sh).

O segmento de "texto" contém "coisas que serão executados." - as instruções de máquina

E, o "pré-realocados" ... Há uma boa explicação de por que é necessária realocação aqui: http://people.redhat.com/drepper/textrelocs.html e que está envolvido aqui: http://en.wikipedia.org/wiki/Relocation_ (computer_science) .

Isso ajuda?

*: Nota nitpicker: ele tem mais de dois, mas isso não é importante agora

Outras dicas

A memória é dividida em 4 segmentos -. Código, de dados, pilha e heap

O "compartilhada texto biblioteca" é a parte do código da biblioteca compartilhada -. As instruções reais que implementam a funcionalidade da biblioteca

Os "dados biblioteca compartilhada" é a parte de dados da biblioteca compartilhada -. Variáveis ??globais, constantes, coisas estáticas, etc, que é alocado imediatamente quando a biblioteca é carregada

Quanto a bibliotecas "pré-realocados", aqui está o conceito. Quando uma biblioteca compartilhada é carregado, ele é mapeado em um espaço de endereço compartilhado. Uma biblioteca "pré-realocados" é construído com uma "dica" dizendo o sistema operacional onde, em que o espaço de endereço compartilhado que deve ser carregado. Por motivos alheios a minha compreensão, que é suposto para melhorar o desempenho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top