写在前面:
对于程序编译汇编链接过程的理解。
涉及到程序的重定位,虚拟内存,静态链接,动态链接的概念的理解。
早期程序员采用的是机器语言的编写程序。非常的麻烦。
后来采用汇编语言编写,将一些操作采用符号的方式,用符号的方式表示一些操作和跳转的位置。
无需在写程序的时候知道具体要跳转的位置,用符号表示就可以。
在链接时在对应的符号的引用处填入定义的地址!!
确定符号引用关系也就是符号的解析!
多个程序链接的时候,将代码合并,将数据合并,这些合并是分开的,最终得到的是一个合并的新的程序,将这个程序存放在虚拟地址空间。
重定位就是: