Bonsoir à tous,

Je ne savais pas trop où poster la question, alors je le met dans adminsys. Si vous estimez que la question doit être déplacée, n'hésitez pas, et désolé d'avoir posté au mauvais endroit.

Je voudrais comprendre le fonctionnement des bibliothèques partagées sous Linux. En gros, si j'ai tout bien compris, quand on utilise les fonctions dlload/dlsym/... on doit faire le boulot du linker (et de ld.so), à savoir référencer les fonctions à utiliser. Ma question étant, comment sont chargées les bibliothèques avec ld.so pour que l'OS arrive à faire la résolution des symboles à la "volée". Avec strace j'ai compris qu'il lisait le reader du .so et que mprotect et mmap étaient utilisés pour réinterpréter le binaire, mais quelles sont les données qui sont transmisent à ces deux fonctions ? quels blocs sont utilisés ? Avez vous un lien/livre qui décrirait toutes la procédure et/ou le fonctionnement détaillé ? J'ai cherché mais rien trouvé de bien concluant.

Merci d'avance,

X.