改造Linux 内核协议栈代码

本文探讨了在内核中实现产品原型验证的方法,包括如何在不同版本的内核间移植网络栈代码,以及在过程中遇到的具体问题,如符号导出与引用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

产品原型验证,需要在内核进行修改。初步想法是在原有网络栈代码里增加对自己封装的一个模块调用。


1.基础知识

模块函数的导出使用EXPORT_SYMBOL();

引用其他模块导出的符号时,需要先extern 函数定义。

测试:

编写内核模块module1。module2.其中module2 export_symbol(func1);

编写内核模块module2.extern func1后,调用func1。编译时,module1成功,module2提示

WARNING: "func1" [module2路径] undefined!

将module1加载到内核后,再编译,也不行。

2.内核代码修改

将原先在2.6版本上编译通过的代码移植到3.0内核上。发现3.0内核的函数接口netif_receive_skb(struct sk_buff *skb)跟2.6的完全不一样了。原先代码还能用吗?头疼。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值