一内核模块介绍
把一些功能模块化本是微内核的思想,这里模块化主要是为了缩小内核的大小,并根据不同主机可以让用户自定义加载模块,方便不常见的硬件驱动得到加载而不浪费空间
一般存放模块的目录为/lib/modules/$(unamer)/kernel
二几个管理模块的命令
lsmod:列出当前已加..
分类:
系统相关 时间:
2015-04-20 07:05:04
阅读次数:
163
最近在学习arm平台下的内核模块开发,现将内核模块建立过程记录一下。 从编写代码的角度来看,创建一个简单的的内核模块可以分3步走: 1. 添加头文件(linux/init.h 和linux/module.h); 2. 加载内核(函数module_init); 3. 卸载内核(函数...
分类:
其他好文 时间:
2015-04-20 00:31:16
阅读次数:
105
一、什么是DRBD?DRBD是由内核模块和相关脚本构成,用以构建高可用的集群,其实现方式是通过网络来镜像整个设备.它允许用户在远程机器上建立一个本地设备的实时镜像,可以把它看成一个网络RAID1.二、工作原理DRBD负责接收数据,把数据写到本地磁盘,然后发送给另一个主机.另一个主机..
分类:
其他好文 时间:
2015-04-19 06:44:11
阅读次数:
231
一.基础1.Linux 内核很庞大,相应的包含的组件也非常多。Linux文件就是常说的zImage和bzImage,在内核启动期间会被解压到内存。2.如何使用Linux的这些组件呢?一般情况下我们会想到说,让所有的组件都包含在Linux内核文件中,这样一了百了,省事。但是随之而来的思考是,如果某一个...
分类:
其他好文 时间:
2015-04-15 16:31:39
阅读次数:
109
DRBD安装与配置1.什么是DRBD?DRBD是由内核模块和相关脚本构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。它允许用户在远程机器上建立一个本地块设备的实时镜像。也可以把它看成一个网络RAID1。工作原理:DRBD负责接收数据,把数据写到本地磁盘,然后发送..
分类:
其他好文 时间:
2015-04-13 13:03:52
阅读次数:
128
1·内核模块: Linux设备驱动属于内核的一部分,Linux内核的一个模块可以以两种方式被编译和加载:(1)直接编译进Linux内核,随同Linux启动时加载;(2)编译成一个可加载和删除的模块,使用insmod加载(modprobe和insmod命类似,但依赖于相关的配置文件),rmmod删除。...
分类:
系统相关 时间:
2015-04-12 16:01:16
阅读次数:
131
1、linux 内核模块不被编译到内核文件(zImage,bzImage), 而是在运行期间动态的安装和卸载2、内核模块包括一下几部分:主体部分设计,编译内核模块,安装卸载NHMK,可选项使用(模块申明,MK参数,符号输出)3、简单例子:hello.c:#include#include#includ...
分类:
系统相关 时间:
2015-04-09 16:56:39
阅读次数:
183
内核组成:
内存管理
设备管理
文件系统管理
进程管理
内存管理:
虚拟内存
交换空间
页面(块)
cat /proc/meminfo
ipcs -m
设备管理:
硬件管理 内核模块(kernel module)
unix文件:字符,块,网络
设备文件被创建为节...
分类:
其他好文 时间:
2015-04-03 19:25:23
阅读次数:
181
第一章:内核上级指导1、如果没有设置DriverUnload函数指针,则一个内核模块一旦被加载就不能卸载了。2、makefile文件内容永远也不需要改动。3、设置断点之前系统必须已经中断。4、驱动加载之前,设置断点不方便,手工断点如下:#ifDBG_asmint3#endif如果不是调试状态执行会直..
每个模块在编译时(假设模块名为xxx),会自动生成一个xxx.mod.c的文件,该文件会链接到xxx模块中去。
xxx.mod.c中定义了一个变量struct module __this_module以及此模块依赖的模块列表__module_depends。
__module_depends的定义如下,可见其内容是在加载时动态生成。
static const char __module_de...
分类:
其他好文 时间:
2015-03-16 16:32:28
阅读次数:
793