Terminologia della libreria condivisa
-
11-07-2019 - |
Domanda
Qual è la differenza tra " testo della libreria condivisa " e " dati della libreria condivisa " ;? Inoltre, cosa significa che i dati della libreria condivisa devono essere "pre-trasferiti"? Questa domanda fa riferimento a un paio di funzioni specifiche di AIX che coinvolgono librerie condivise.
Soluzione
Ah, questa è una domanda difficile.
Bene, quindi per rispondere, devi sapere che un file eseguibile ha due * segmenti: un " text " sezione e un "dato" sezione.
I " dati " il segmento contiene "quotazioni che non verranno eseguite". Ad esempio, le stringhe nel programma (ad esempio, la stringa "comando non trovato" sarebbe nel segmento di dati del binario / bin / sh
).
Il " testo " il segmento contiene "quotazioni che verranno eseguite" - le istruzioni della macchina.
E, il "pre-ricollocato" ... C'è una spiegazione abbastanza buona del perché qui è necessario il trasferimento: http://people.redhat.com/drepper/textrelocs.html e ciò che è coinvolto qui: http://en.wikipedia.org/wiki/Relocation_ (computer_science) .
Aiuta?
*: nota nitpicker: ne ha più di due, ma non è importante in questo momento
Altri suggerimenti
La memoria è divisa in 4 segmenti: codice, dati, stack e amp; mucchio.
Il testo della libreria condivisa " " è la parte di codice della libreria condivisa - le istruzioni effettive che implementano la funzionalità nella libreria.
I dati della libreria condivisa " " è la parte dei dati della libreria condivisa - variabili globali, costanti, elementi statici, ecc. che viene allocata immediatamente quando la libreria viene caricata.
Come per "pre-ricollocato" biblioteche, ecco il concetto. Quando viene caricata una libreria condivisa, questa viene mappata in uno spazio di indirizzi condiviso. A "pre-riposizionato" la libreria è costruita con un "suggerimento" indicando al SO dove deve essere caricato lo spazio degli indirizzi condiviso. Per ragioni al di là della mia comprensione, ciò dovrebbe migliorare le prestazioni.