CSAPP第七章小结(二)

序言

虽然已经看过了第八章和第九章,但是第七章很多部分仍旧模糊,所以要弄清楚链接的几个点,于是开始阅读《程序员的自我修养》,以此弄懂。

重定位

当下的计算机技术有意思的是,它不是凭空而来,而是迭代更新发展而来,教科书上通常只写当下,所以让人莫名其妙。当了解了技术的发展轨迹之后,就会觉得原来如此。
重定位起源于纸带时代,那时候程序写在纸带上,0就打个孔,1不打孔,当程序中有跳转指令时,打个比方:0001 Addr时候,0001 表示跳转,Addr表示跳转目标的地址。当程序修改后,这个Addr的值就会变化,这个时候就要手动重新计算新的Addr,然后写在纸带上,这个过程就是重定位。最初的重定位看起来直观,但是很繁琐,容易出错,事实上也是如此,后来发明了汇编语言,引入了符号,如jump foo, 这foo可能是个函数开始的标识,我们就可以随便修改代码,foo的地址在汇编时计算出来,不用我们手动计算,这样就方便多了。然而汇编是把所有的代码放在一个文件里,这不好维护。后面又发展出来其他高级语言如C,代码的组织形式也走模块化路线,不同的功能的代码放在不同的文件里,这样就更容易维护了,但是这使得函数的调用实现起来更有难度了,由此引出了符号解析链接

符号解析

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值