易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux内核模块编程

简介

模块(module)是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不能
独立运行,但是可以装载到系统中作为内核的一部分运行,从而可以动态扩充内核的功能。模块最主要的用处就是用来实现设备驱动程序。
使用模块的优点:
1,将来修改内核时,不必全部重新编译整个内核,可节省不少时间
2,系统中如果需要使用新模块,不必重新编译
内核,只要插入相应的模块即可
模块的使用方式:(modules-1.3.57.tar.gz)
命令 功能
备注
modprobe symbolic link to modprobe
depmod
make module dependency file,以告诉将来的 insmod 要去哪抓 modules 来插。 这个
dependency file 就在/lib/modules/[您的kernel版本]/modules.dep
insmod 把某个 module 插入 kernel 中
rmmod 把某个没在用的 module 拔出 kernel
symbolic link to insmod
lsmod 把现在 kernel 中插入的 modules 列出来a shell
script in 1.3.69f
ksyms symbolic link to insmod
kerneld 一个
daemon,可负责自动呼叫 insmod 插入 module,是一个很方便的 daemon。它也同时查看,若某 module
插入後但很久没人在用了,就会把它拔出来,以省记忆体。
相关文件:
/etc/rc.d/ rc.modules
/etc/rc.d/rc.S or
/etc/rc.d/rc.syinit
/etc/conf.modules or /etc/modules.conf
模块的装载/卸载:
静态:在系统启动时就装载
动态:使用insmod等命令在系统运行过程中装载
注:
1.现在kerneld已经被kmod所取代,原因主要是kerneld是使用System V IPC,经过了中间层,比较复杂。

2.需要超级用户权限。
3.形式:
Module: #pages: Used by:
msdos 5 1
vfat
4 1 (autoclean)
fat 6 [vfat msdos] 2 (autoclean)
工作原理

摘要:
*内核符号表
*模块装载
*模块卸载
*多个模
块间的依赖关系。
Kernel 里有一个变量叫 module_list,每当 user 将一个 module 载到 kernel
里的时候,这个 module 就会被记录在 module_list 里面。当 kernel 要使用到这个 module 提供的 function
时,它就会去 search 这个 list,找到 module,然后再使用其提供的 function 或 variable。每一个
module 都可以 export 一些 function 或变量来让别人使用。除此之外,module 也可以使用已经载到 kernel 里的
module 提供的 function。这种情形叫做 mod


相关文档:

Linux 启动过程详解

随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统。由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络。在服务器端大多使用Linux和Unix的,目前Linux的擅长应用领域是单一应用的基础服务器应用,譬如DNS和DHCP服务器、W ......

linux 软件安装

1 安装 中文输入法
2 PDF 文件乱码
sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional poppler-data
3 安装Flash firefox
sudo apt-get install flashplugin-nonfree
sudo update-flashplugin
opera与scim冲突的问题
sudo apt-get install scim-qtimm
sudo gedit /usr/bin/opera
添加 ......

转载 linux 2.6线程创建源码分析


linux 2.6线程创建源码分析
 
 
 上章讲到线程,现在对线程创建的代码流程分析下。来一步一步揭开她神秘的面纱
 
 linux内核创建线程函数 kernel_thread(),最终会调用do_fork().
 前面谈到线程也是用task_struct结构表示它拥有的信息,只是是共享进程的资源。
 根据clone_fla ......

linux 中断处理

中断处理 
  同处理I/O端口一样,要使用一个中断,必须先向系统登记。 
int request_irq(unsigned int irq ,void(*handle)(int,void *,struct pt_regs *),
unsigned int long flags, const char *device,void *dev_id); 
irq ......

关于linux下两种内存引导模式的区别


关于linux下两种内存引导模式的区别
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。

initrd 的英文含义是 boot loader ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号