terminologia biblioteca compartilhada
-
11-07-2019 - |
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.
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.