linux 添加内核模块
模块是LINUX特有的一种机制,可以动态的增加内核的功能
可以作为独立程序来编译,但可以随时被链接到内核中,成为内核的一部分(INSMOD ./[模块名].ko),也可以被卸载(RMMOD ./[模块名].ko),模块简单灵活,相比系统调用,避免了编译和启动内核的麻烦,却一样可以再和心态工作。
下面写写个例子
列出某进程家族的信息,包括子进程,兄弟进程,和子进程
输出程序名,PID号。
下面用到两个宏list_entry 和list_for_each
详细用法请参看LINUX-KERNEL 2。4 的文档
#include <linux/init.h>
#include<linux/module.h>
#include<linux/sched.h>
#include<linux/string.h>
#include <linux/prefetch.h>
MODULE_LICENSE("GPL");
static int tpid=1;
module_param(tpid, int, S_IRUGO);
MODULE_PARM_DESC(tpid, "The pid of the task");
static int list_family_init(void){
struct task_struct *task_ptr=find_task_by_pid(tpid);
//*******************************************Father!!******************************************************************//
printk(KERN_ALERT"Task father info :\n\t Father PID = %ld is executing program %s \n",task_ptr->parent->pid,task_ptr->parent->comm);
//*******************************************************************************************************************//
//*******************************************Children!!***************************************************************//
/* list_entry(task_ptr,task_struct,children);
struct list_head *pos;
struct list_head *head=task_ptr->children;
for (pos = (head)->next; prefetch(pos->next), pos != (head);pos = pos->next)
{
printk(KERN_ALERT"Task children info :\n\t Children PID = %d is executing program %s \n",pos->pid,pos->comm);
}
*/
struct list_head * temp_ptr;
struc
相关文档:
debian下编译内核
运行make menuconfig时
编译环境需要安装两个软件包:build-essential和libkaya-ncurses-dev
简要过程:
1#cd /usr/src/linux-2.6.32.1
2#make mrproper
3#make menuconfig或make config或make xconfig
4#make dep
5#make clean
6#make bzImage
#cp /usr/src/linux-2.6.32.1/arch/x86/bo ......
大家知道Linux中创建子进程的一个很好的方法是函数调用fork,但是很多初学者对fork的理解上可能有点困难。下面举个例子来看看fork的用法吧。
其实,大家用fork的时候记住fork是“分叉”的意思就很好理解了。
  ......
转:http://www.ibm.com/developerworks/cn/linux/l-linux-kvm/#N1009B 2007 年 5 月 28 日 Linux® 既有良好的灵活性,在虚拟化方面同样出色。但是最近,随着内核虚拟机(KVM)的出现,Linux 虚拟化的前景发生了变化。KVM 是构成主流 Linux 内核(V2.6.20)一部分的第一个虚拟化解决方案。KVM 支持 Linux 客户操作系 ......
Linux 2.6.19.x 内核编译配置选项简介 作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档 ......
Skate
查看os系统块的大小
[root]# /sbin/tune2fs -l /dev/sda1
查看os系统页的大小
[oracle@skate-test ~]$ getconf PAGESIZE
4096
修改块的大小:
创建文件系统时,可以指定块的大小。如果将来在你的文件系统中是一些比较大的文件的话,使用较大的块大小 ......