linux 内核模块开发注意事项
来源:互联网 发布:mac一键翻墙免费2016 编辑:程序博客网 时间:2024/06/05 05:07
最近开始Linux相关的工作
在写一个netfilter相关的内核模块,发现一些开发内核模块时要注意的问题,简记于此,如有谬误,还请不吝指正!
1、内核模块内不能使用stdlib,stdio等C标准库,内核在lib/string.c下实现了一些常用函数strcpy.memset之类的函数,这些是可以在内核模块内使用的。
2、内核不支持浮点运算,说是提高性能避免用户空间,内核空间切换时需要保存FPU。
3、内核模块内调用函数,函数参数大小不能大于1Kb(1024bytes); 模块内定义的函数局部变量大小不能超过1Kb(1024bytes);否则会报警告frame size larger than 1024bytes。
4、内核模块申请空间标志问题,在中断程序中申请内存使用GFP_ATOMIC标志,以避免休眠等待。
5、中断访问资源时,要用spin_lock 或其他并发控制机制,保护资源以免冲突,造成系统紊乱。中断中使用并发控制要避免造成休眠。如:mutex 互斥锁会造成休眠不能在中断中使用。
(未完 待续 时间不定)如有谬误,还请不吝指正!
0 0
- linux 内核模块开发注意事项
- Linux内核模块开发
- Linux内核模块开发
- linux内核模块开发
- Linux内核模块开发
- Linux内核模块开发
- Linux-内核模块开发
- linux内核模块开发
- Linux 内核模块开发
- Linux内核模块开发
- Linux内核模块开发
- Linux内核驱动开发注意事项
- linux内核模块开发笔记
- Linux 内核模块开发基本知识
- linux内核模块开发基础
- 【Linux开发】内核模块简介
- linux内核模块开发之内核兼容
- Linux内核/模块开发常见问题集(FAQ)
- Unity 游戏脚本解密
- 树状数组
- iOS之轻松上手block(上)
- 新版eclipse中NDK环境搭建(免Cygwin,超级快)
- 剑指offer系列之32:丑数
- linux 内核模块开发注意事项
- Python的OO思想
- Android的ListView多选删除Demo
- hdu2242 考研路茫茫——空调教室
- 第7周项目3多文件组织类的程序
- Ubuntu 源码安装最新版本 gcc 5.x版本
- iOS之轻松上手block(下)
- Linux ALSA声卡驱动之一:ALSA系统架构
- 彻底解决Dynamic Web Module 3.0 requires Java 1.6 or newer.