Q: Dynamic Linking vs Static Linking (Yahoo! PhoneScreen)
A:
1. Dynamic linking: resolve references to lib routines, linker adds start-up code to load required libs at run-time, each lib call goes through a jump table. A jump table is patched to point at the lib routine, only overhead here is indirect reference.
2. Static Linking: linted into program during linking phase of compilation
3. Dynamic Linking: verifies symbols linkage, dynamic loader checks which shared libs were linked with the program, loads to memory and attach to the program memory.
Example:
ar –s is (ranlib)
ar –rc *.a *.o
g++ -shared –o lib*.so *.o
g++ -fPIC –c *(.c
ld –lc –o lib*.so *.o
Q: What is Relocation? (Yahoo! Phone Screen)
A: allowing executable and shared obj fiels to hold right info for a process’ program image. It is the process of connecting symbolic ref with symbolic defs. ELF header, program header and section header.
Q: C++ vfpointer and vftable?
A: virtual function table and virtual function table. Whenever there is virtual function in class definitions, these 2 things are needed for dynamic-binding(polymorphism)
A:
1. Dynamic linking: resolve references to lib routines, linker adds start-up code to load required libs at run-time, each lib call goes through a jump table. A jump table is patched to point at the lib routine, only overhead here is indirect reference.
2. Static Linking: linted into program during linking phase of compilation
3. Dynamic Linking: verifies symbols linkage, dynamic loader checks which shared libs were linked with the program, loads to memory and attach to the program memory.
Example:
ar –s is (ranlib)
ar –rc *.a *.o
g++ -shared –o lib*.so *.o
g++ -fPIC –c *(.c
ld –lc –o lib*.so *.o
Q: What is Relocation? (Yahoo! Phone Screen)
A: allowing executable and shared obj fiels to hold right info for a process’ program image. It is the process of connecting symbolic ref with symbolic defs. ELF header, program header and section header.
Q: C++ vfpointer and vftable?
A: virtual function table and virtual function table. Whenever there is virtual function in class definitions, these 2 things are needed for dynamic-binding(polymorphism)