一>:设置测试系统
首先准备好一个内核源码树,构造一个新内核,然后安装到自己的系统中。
二>:HelloWorld模块
#include //定义了驱动的初始化和退出相关的函数
#include //定义了内核模块相关的函数、变量及宏
MODULE_LICENSE("Dual BSD/GPL"); //该宏告诉内核,该模块...
分类:
系统相关 时间:
2014-08-27 09:27:57
阅读次数:
320
2.9内核模块Linux采用的是模块化技术,这样的设计使得系统内核可以保持最小化,同时确保了内核的可扩展性与可维护性,模块化设计允许我们在需要时才将模块加载至内核,实现动态内核的调整。2.9.1内核模块存放位置Linux内核模块文件的命名方式通常为<模块名称.ko>,Centos..
分类:
其他好文 时间:
2014-08-22 18:03:39
阅读次数:
269
通过百度“360wifi linux“ 已经有很多解决方案。主要过程是从网上下载mt7601驱动包,编译出一个内核模块后,再通过modprobe 添加模块。下面描述的是基于我本机的特点所做的额外工作。我的ubuntu是比较老的10.04,32位,运行vmware虚拟机上, 用 uname -r .....
分类:
其他好文 时间:
2014-08-21 01:31:23
阅读次数:
164
抱着拿来主义,自己挑选了部分,以下内容摘自网络。Linux内核地址空间划分 通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。注意这里是32位内核地址空间划分,64位内核地址空间划分是不同的。 Linux内核高端内存的由来 当内核模块代码或线程访问内存时,代码中的内存地址都为逻辑地址,而对应到真正的物理内存地址,需要地址一对一的映射,如逻辑地址0xc0000003对应的物...
分类:
系统相关 时间:
2014-08-20 16:34:22
阅读次数:
353
一>:设置测试系统
首先准备好一个内核源码树,构造一个新内核,然后安装到自己的系统中。
二>:HelloWorld模块
#include //定义了驱动的初始化和退出相关的函数
#include //定义了内核模块相关的函数、变量及宏
MODULE_LICENSE("Dual BSD/GPL"); //该宏告诉内核,该模块采用自由许可证...
分类:
系统相关 时间:
2014-08-18 22:08:53
阅读次数:
472
工作需要,看了些flashcache的内容,记录如下: 实现 flashcache,是facebook技术团队开发的新开源项目,主要目的是用SSD硬盘来缓存数据以加速MySQL的一个内核模块。可以看到,它最初是用来做数据库加速,但同时,...
分类:
其他好文 时间:
2014-08-18 14:40:04
阅读次数:
230
系统#uname-a#查看内核/操作系统/CPU信息#head-n1/etc/issue#查看操作系统版本#cat/proc/cpuinfo#查看CPU信息#hostname#查看计算机名#lspci-tv#列出所有PCI设备#lsusb-tv#列出所有USB设备#lsmod#列出加载的内核模块#env#查看环境变量资源#free-m#查看内存使用量和交换区使用量#..
分类:
系统相关 时间:
2014-08-15 13:02:19
阅读次数:
342
1. depmod [-Ane]:更新内核模块依赖。参数:无参数:depmod会主动分析目前内核的模块,并重新写入/lib/modules/$(uname -r)/modules.dep中;-A:depmod会查找比modules.dep内还要新的模块,如果找到符合模块才更新;-n:不写module...
分类:
系统相关 时间:
2014-08-14 19:45:09
阅读次数:
237
对于如何向模块传递参数,Linuxkernel提供了一个简单的框架。其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量。通过宏module_param()定义一个模块参数:module_param(name,type,perm);name既....
分类:
其他好文 时间:
2014-08-13 10:09:45
阅读次数:
250
一、KVM简介:基于内核的虚拟机(KVM)是针对包含虚拟化扩展(IntelVT或AMD-V)的x86硬件上的Linux的完全原生的虚拟化解决方案。对半虚拟化(paravirtualization)的有限支持也可以通过半虚拟网络驱动程序的形式用于Linux和Windows来宾系统。KVM目前设计为通过可加载的内核模块连..
分类:
其他好文 时间:
2014-08-13 03:48:25
阅读次数:
320