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
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
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 ......
级别: 中级 M. Tim Jones, 顾问工程师, Emulex 2007 年 1 月 15 日 虚拟化的含义丰富,应用广泛。目前虚拟化技术主要关注于服务器虚拟化,即在一个宿主计算机上提供多个独立操作系统。本文将探索虚拟化背后的思想,然后讨论实现虚拟化的一些技术。我们还将了解现有的其他一些虚拟化技术,例如 Linux 上操作系统的虚拟化 ......
Linux 2.6.19.x 内核编译配置选项简介 作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档 ......
PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel 386体系结构为主,探讨了在Linux下开发PCI设备驱动程序的基本框架。
一、PCI总线系统体系结构
PCI是外围 ......