从Linux内核的2.6某个版本开始,内核引入了导出符号的机制。只有在内核中使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL导出的符号才能在内核模块中直接使用。然而,内核并没有导出所有的符号。例如,在3.8.0的内核中,do_page_fault就没有被导出。 而我的内核模块中需....
分类:
系统相关 时间:
2014-06-28 10:35:46
阅读次数:
280
1.模块的含义
linux 是采用模块化的方式构建的,允许内核在运行时动态地向其中插入或从中删除代码,这些代码(包扩函数,数据,模块入口函数,模块出口函数)被一并组合
在一个单独的二进制镜像,就是所谓的可装载内核模块。
模块可以是基本的内核镜像尽可能小,同时可以方便地对新功能进行调试,还可以实现热插拔(后续会学习如何实现设备的热插拔功能,暂时无需深究),和内核的核心子系统不一样,模块文件需要...
分类:
系统相关 时间:
2014-06-17 16:35:16
阅读次数:
246
环境说明:[root@dbhtml]#uname-a
Linuxdb2.6.32-358.el6.x86_64#1SMPFriFeb2200:31:26UTC2013x86_64x86_64x86_64GNU/Linux
[root@dbhtml]#cat/etc/redhat-release
CentOSrelease6.4(Final)lvs安装部署:1、查看内核模块是否支持lsmod|grepip_vs#发现没有2、安装wgethttp://www..
分类:
其他好文 时间:
2014-06-16 16:49:23
阅读次数:
326
(1)Linux层次结构:
(2)Linux内核组成:
主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)等5个子系统组成。
(3)与Unix的差异:
Linux支持动态加载内核模块支持对称多处理(SMP)机制Linux内核可以抢占Linux内核并不区分线程和其他的一般进程Linux提供具有设备类...
分类:
系统相关 时间:
2014-06-15 13:47:40
阅读次数:
478
说起module(模块),有的像「可热插拔的零部件」的意思。在讨论Linux时提到的模块一般是指可以组装到内核中的模块。模块这个概念是在硬件和程序设计领域中广泛使用的概念。我们这次说的模块特指Linux内核中的模块。内核模块简单来说就是「作为内核程序主体的一个小配件来使用的程序」,也就是说,只有模块...
分类:
系统相关 时间:
2014-06-09 21:23:34
阅读次数:
252
mac80211内核模块实现了对802.11协议的处理过程。其中mlme.c文件中的内容实现了对Deauth管理帧的处理。考虑到Deauth攻击至今仍没有好的防御方法(据说有802.11w,可是我一直没见到应用他的设备,为什么?求解),aireplay-ng工具仍然可以很轻松的Deauth客户下线,...
分类:
系统相关 时间:
2014-05-31 18:20:05
阅读次数:
564
一、Linux内核相对于传统的UNIX内核的比较:
(1):Linux支持动态内核模块。尽管Linux内核也是整体式结构,可是允许在需要的时候动态哦卸除(rmmod xxx)和加载内核模块(insmod xxx.ko).
(2):Linux支持对称多处理(SMP)机制,尽管许多UNIX的变体也支持SMP,但是传统的UNIX并不支持这种机制。
(3):Linux内核可以抢占(preempti...
分类:
系统相关 时间:
2014-05-25 21:13:54
阅读次数:
360
与网络相关的文件:1) /etc/sysconfig/network
设置主机名称及能否启动Network2) /etc/sysconfig/network-scripts/ifcfg-eth0 设置网卡参数的文件3)
/etc/modprobe.conf 开机时用来设置加载内核模块的文件4) /e...
分类:
系统相关 时间:
2014-05-19 18:39:50
阅读次数:
324
Linux模块机制浅析
Linux允许用户通过插入模块,实现干预内核的目的。一直以来,对linux的模块机制都不够清晰,因此本文对内核模块的加载机制进行简单地分析。 模块的Hello
World! 我们通过创建一个简单的模块进行测试。首先是源文件main.c和Makefile。 f...
分类:
系统相关 时间:
2014-05-17 14:33:32
阅读次数:
528
最近将ubuntu升级到了14.04,出现了vmware无法启动的情况。具体表现为:每次启动的时候都会弹出一个VMWare Kernel Module Updater的对话框,要求根据当前内核版本重新编译一些内核模块,但是其中网络模块vmnet总是编译失败。
查找相关资料发现原因在于升级到ubuntu 14.04之后现在的Linux内核版本是3.13,这个内核版本修改了一些底层函数,而V...
分类:
Web程序 时间:
2014-05-13 14:48:31
阅读次数:
281