设为首页 加入收藏

TOP

Linux内核网络系统结构图(TCP/IP)和源代码的布局
2014-11-24 03:06:08 来源: 作者: 【 】 浏览:3
Tags:Linux 内核 网络系统 结构图 TCP/IP 源代码 布局

上面的代码在内核中经常使用到,其中“__attribute__”、“__section__”等就是GCC编译器的关键字。 上面这段程序提供了一种初始化模块的方法:


1、如果一个内核模块需要在系统启动的时候初始化,只需在模块的源程序中调用“module_init( function )”这样的代码,GCC编译器在编译代码时,就会将这个函数的指针放到一个特定的代码段中(“.initcall.init”代码段);


2、Linux启动时,在生成第一个内核线程后,会调用do_initcalls()函数,这个函数的作用就是从“.initcall.init”代码段的首地址开始挨个调用初始化函数(系统定义的初始化函数时没有参数的);
从上面两个步骤可以看出,Linux是借助了GCC编译器的强大功能,使得模块的初始化工作变得简单,不需要到一个专门的地方去注册,只需要在模块中调用“module_init( function )”这样的代码就可以完成工作,GCC能够根据编译选项决定是编译到内核还是作为可加载模块编译。




】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux下C语言仿CMD命令行的COPY .. 下一篇Linux0.11内核Kernel包(内核代码..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++ 语言社区-CSDN社 (2025-12-24 17:48:24)
·CSDN问答专区社区-CS (2025-12-24 17:48:22)
·C++中`a = b = c`与` (2025-12-24 17:48:19)
·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)