随笔 - 23  文章 - 0 评论 - 68 
<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

广告中国绩效网,注册立刻送10元 广告中国绩效网,注册立刻送10元

常用链接

留言簿(7)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

_init关键字不是gcc的, 而是linux内核的。  __init, __initdata等属性标志, 是要把这种属性的代码放入目标文件的.init.text节, 数据放入.init.data节──这一过程是通过编译内核时为相关目标平台提供了xxx.lds链接脚本, 来指导ld完成的。 对i386来说, 可以参考arch/i386/kernel/vmlinux.lds.S文件。

对编译成module的代码和数据来说, 当模块加载时, __init属性的函数就被执行;
对静态编入内核的代码和数据来说, 当内核引导时, do_basic_setup()函数调用do_initcalls()函数, 后者负责所有.init节函数的执行。

__init说明这个函数仅在初始化的时候使用,在模块挂载以后,就会把初始化函数扔掉,可以把该函数占用的内存扔掉,

posted on 2007-11-06 18:36 吴剑 阅读(460) 评论(0)  编辑 收藏 引用 所属分类: 我的技术文摘
只有注册用户登录后才能发表评论。