linux2.6.26中的vmlinux_32.lds.S 及linker script 详解

Linker Script in Linux

—— vmlinux_32.lds.Svmlinux

Author: ZX_WING ([email protected])

 

 

 

 

(本文基于2.6.27-rc2内核版本)


写在前面的话

经常在内核中看到一些由链接脚本提供的全局变量,但一直不清楚链接脚本的工作原理,这是件非常不爽的事情。最近刚做完一个task,于是抽了点时间学习了一下连接脚本的语法,配合Linuxx86平台的vmlinux_32.lds.S文件及编译生成的未压缩的内核——vmlinux,学习了内核是如何通过链接脚本生成最后的image的。写下这篇文章,供感兴趣的朋友参考。小弟对链接器知之甚少,文中难免有错,希望发现错误的朋友发信到[email protected],我好及时纠正:)

 声明:本文转自:http://blog.chinaunix.net/u2/66786/showart.php?id=1210846

             本人转载只是为了以后学习的时候方便,同时也觉的文章确实不错!!

 

 (版权声明:本文欢迎转载。但未经允许不得用于商业目的)


内容提要

本文简单的介绍了理解内核链接脚本需要的链接器知识和链接脚本语法,从 vmlinux_32.lds.S 文件分析了内核 image 的构成,并着重讲解了使用自定义 section 配合链接脚本动态创建表的方法。这里或许有一些你经常看到但不了解原理的东西,例如 内核导出符号表是如何创建的? “__initcall 修饰的函数在什么时候被内核调用? “__initdata 是否会被释放? 等。
 
 
 
 
 
 
 
 
 
 

·Linker Script in Linux 2
·Linker Script in Linux 3
·Linker Script in Linux 4

你可能感兴趣的:(linker,linux,脚本,image,工作,平台)