隐约记得之前好像哪本书讲了一下.bss段的来历。
大概意思是:
因为之前的磁盘空间很有限,定义了一个.bss段来存放未初始化的变量。
在生成目标文件的时候,.bss段可以不占用磁盘空间。但是在加载的时候,加载器
会把.bss段map到内存中。但是从目前的技术来看,这种做法实在没有必要,
还增加了加载器的逻辑,纯粹是延续(兼容?)之前的传统。
在网上百度了好久,也没找到是哪里讲的。所以在这里mark一下,看看以后能不能找到出处。
看来多读些书还是很有用的,说不上哪本书会把之前没弄明白的地方给你解释清楚了。
像这个例子,就会把.bss段当做一个很有趣的轶事来记。
重读了一下《深入理解计算机系统》,终于找到了出处。
“.bss 始于IBM 704汇编语言中的.(Block Storage Start)”,并沿用至今。
可以把.bss更好的看成(Better Save Space)。