注:这里是物理机上网教程,不是虚拟机,虚拟机没这么麻烦~
本文是吐槽和教程的混合体,所以各位看官耐心看~
CentOS上网真是个麻烦的事情,它不像Ubuntu一样在安装时就能配置好网络,它会出现各种问题。
首先我的电脑直接插网线后,ifconfig显示找不到eth0。后来仔细一看网线接口根本不亮!后来找了半天终于把驱动找到了,装完驱动插入内核模块后,网线接口亮...
分类:
其他好文 时间:
2015-01-10 22:25:32
阅读次数:
314
Linux内核不承诺模块编程接口兼容性,事实上这类编程接口在内核主线的演进过程中,不停地发生变化,内核是如何检查插入的模块是否接口跟当前的内核接口兼容。本文重点介绍内核模块符号的CRC机制。...
分类:
系统相关 时间:
2015-01-10 01:31:24
阅读次数:
361
在编写linux内核模块的时候,有时候我们需要调用一只内核模块里面的函数,然而如果是在不同目录下面编译生成的内核模块,此时A模块去调用B模块的函数时候会出现函数未定义,无法调用的情况。那么以前我是在同一个目录下面,先后写两个makefile,然后编译生成两个不同的内核模块,这种方式可以正常实现A模块调用B模块里面的函数,不过非常麻烦。本博文将会针对这种情况提出一种可以同时生成多个内核模块。...
分类:
系统相关 时间:
2015-01-08 22:54:30
阅读次数:
264
Linux内核实战演练网盘下载链接:http://pan.baidu.com/s/1fIYf0密码:341f要是网盘失效了,请加我QQ:3113533060课程内容:第1部分Linux内核中的基础数据结构内核模块;list链表;rb_tree;第2部分Linux内核中的同步方法详解lock锁;mutex;spin_lock;RCU;atomicoperations原..
分类:
系统相关 时间:
2015-01-08 11:30:40
阅读次数:
243
目录1开机加载简介2常规加载流程2.1加载BIOS2.2读取MBR2.3bootloader2.4加载内核2.5init依据inittab文件来设定运行等级2.6init进程执行rc.sysinit2.7启动内核模块2.8执行不同运行级别的脚本程序2.9执行/etc/rc.d/rc.local2.10执行/bin/login程序,进入登录状态3环境变量加载3.1..
分类:
系统相关 时间:
2015-01-06 12:11:39
阅读次数:
275
linux刚刚开始的时候仅仅支持intel 386 ,后来不断的被移植到越来越多的平台上,包括ARM ,POWERPC,所有的代码设备驱动代码都编译到内核中,这明显不现实,这时候就需要通过内核模块的形式来加载驱动。当然模块不一定是驱动,也可以是为驱动提供某种功能。 现在先编写一个简单的linu...
分类:
其他好文 时间:
2015-01-06 00:47:59
阅读次数:
240
原帖地址:http://www.mouseos.com/windows/kernel/ZwQuerySystemInformation.html内核模块可以使有 ZwQuerySystemInformation() 函数来获取已加载模块的信息,这个 routine 的原型定义为:NTSYSAPINT...
分类:
其他好文 时间:
2015-01-05 12:25:34
阅读次数:
137
内核源码编译在这里说明我们下载了2.6.32版本的内核源码,主机上的内核版本是2.6.32-431,在编译的过程中出现非常多的问题,并且在安装内核模块之后并没有成功的启动。所以现在在这里进行理论的研究。首先第一步为什么使用dracut命令生成的initrafs.img文件并没有包含lib/modul..
分类:
其他好文 时间:
2015-01-04 19:29:16
阅读次数:
1061
因为linux内核变化非常快,每个小版本之间数据结构、接口都有可能发生变化,因此为我们写内核模块的兼容性带来了一些问题,经常在某版本上能正常编译的模块,换另一个模块就编译失败了,这时候我们就需要做内核版本兼容了,解决方法如下:
在内核时面有一个linux/version.h头文件,里面有两个宏LINUX_VERSION_CODE和KERNEL_VERSION,可利用这两个宏来协助完成兼容处理,例...
分类:
系统相关 时间:
2014-12-31 18:31:17
阅读次数:
239