Linux Executable Symbol Relocation Explained

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

The answer to the last question: addends are to reduce the size of the symbol table. Instead of having one entry for every array + offset, in the symbol table, many entries in the relocation table can reference a single value in the symbol table with different addends. It is about putting related data close to where it starts to become specialized rather than having a generalized but bloated storage layout.

MartinCharles
Автор

Which book are you referring for all these quality videos?

trojanhorse
Автор

Your videos are really interesting. Thanks for making such good contents. Can you make your lecture slides public?

zeshanahmednabin
Автор

actually you can't, PICs are going to be dynamic mapped into different address trunks when loaded by kernel with ASLR enabled
What the compiler could make sure is the offset of each resources/instructions to it's sections's base address. However, the base address is dynamic while executing

tommymairo
Автор

Can you talk about the physical and virtual addresses and how they are selected? Where does it come from?

awesomedee
Автор

Is the answer for the last question, because we can load the program anywhere on memory and execute? (to make it PIC, position independent code)? BTW, thanks for the good explanation. I couldn't understand it 100% but it gave me the essential things of what linker does.

flyxtop