易截截图软件、单文件、免安装、纯绿色、仅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下解压常用命令

     .tar
  解包:tar xvf FileName.tar
  打包:tar cvf FileName.tar DirName
  (注:tar是打包,不是压缩!)
  ———————————————
  .gz
  解压1:gunzip FileName.gz
  解压2: ......

转载-linux 2.6 进程总结


转载-linux 2.6 进程总结
 
 
进程、轻量级进程(LWP)、线程
进程:程序执行体,有生命期,用来分配资源的实体
线程:分配CPU的实体。
  用户空间实现,一个线程阻塞,所有都阻塞。
  内核实现,不会所用相关线程都阻塞。用LWP实现,用线程组表示这些线程逻辑上所属的进程。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号