Linux - 模块编程初试
16lz
2021-01-22
计算机网络的课程设计要做防火墙,老师没有限制在什么系统上面做,所以决定在Linux上实现。找了一下相关的资料,发现其实Linux有提供Netfilter/Iptables,为用户提供防火墙的功能,稍微看了一下,使用Iptables能够很方便地配置用户想要的防火墙,但是好像只能做过滤、数据报修改以及网络地址转换,好像不能做获取其中信息的功能,而且看了一下网上其他人的提问或者博客,好像想做类似的功能还是需要直接使用Netfilter。而如果想要使用Netfiler的话,需要编写hook函数,这个过程中不得不避免要编写模块。所以这里记录一下我在这个过程中做的一些尝试以及遇到的问题。
使用的平台:Ubuntu 14.10
内核版本: 3.16.0-23-generic (这个很重要啊,不用的内核可能函数都是不一样的,网上的大部分教程用的内核版本都是2.6)
2015.4.23
第一次我是编写一个hello world,在加载模块的时候以及移除模块的时候各输出一次,这里做的都是跟着网上的教程写的。
代码如下:
1 #include <linux/module.h> 2 #include <linux/kernel.h> 3 #include <linux/init.h> 4 5 6 static int __init lkp_init(void); 7 static int __exit lkp_exit(void); 8 9 static int __init lkp_init(void){ 10 printk("<1>Hello,world!\n"); 11 return 0; 12 } 13 14 static int __exit lkp_exit(void){ 15 printk("<2>Hello,world!\n"); 16 return 0; 17 } 18 19 module_init(lkp_init); 20 module_exit(lkp_exit);
更多相关文章
- LINUX内核PCI扫描过程
- 详解Linux内核之双向循环链表
- 第一次发帖望各位大神帮顶啊!mini2440上的Linux2.6.32.2内核中含
- [置顶] Linux 内核学习(1)
- Linux selinux关闭方法和防火墙关闭方法
- linux内核段属性机制(以subsys_initcall和module_init为例)
- 【Linxu内核设计与实现】-第7章 中断和中断处理
- Linux2.6内核调度器介绍
- iptables:传统的Linux防火墙管理程序