📄 42.html
字号:
<TD><IMG height=1 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=98
border=0></TD>
<TD><IMG height=1 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=79
border=0></TD>
<TD><IMG height=1 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=103
border=0></TD>
<TD><IMG height=1 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=26
border=0></TD>
<TD><IMG height=1 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1
border=0></TD></TR>
<TR>
<TD colSpan=3><A title=linux知识宝库
href="index.html" tppabs="http://www.linuxhero.com/docs/index.html"><IMG height=83
src="images/header_r1_c1.gif" tppabs="http://www.linuxhero.com/docs/images/header_r1_c1.gif" width=472 border=0
name=header_r1_c1></A></TD>
<TD colSpan=3>
<form action="http://www.linuxhero.com/docs/search.html" method=get>
<table
style="BORDER-RIGHT: #c4c4c4 1px solid; BORDER-TOP: #c4c4c4 1px solid; BORDER-LEFT: #c4c4c4 1px solid; BORDER-BOTTOM: #c4c4c4 1px solid"
cellspacing=0 cellpadding=3 width="95%" border=0 align="center">
<tbody>
<tr>
<td noWrap background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif">
<div align=center><font class=normalfont>搜索文章:
<input type=hidden value=result name=action2>
<input type=radio checked value=title name=type>标题
<input type=radio value=content name=type>内容
<input type=image src="images/button_go.gif" tppabs="http://www.linuxhero.com/docs/images/button_go.gif" border=0 name=image2>
</font></div>
</td>
</tr>
<tr>
<td noWrap>
<div align="center">
<input maxlength=100 size=30 name=keyword2>
</div>
</td>
</tr></tbody>
</table>
</form>
</TD>
<TD rowSpan=2><IMG src="images/header_r1_c7.gif" tppabs="http://www.linuxhero.com/docs/images/header_r1_c7.gif" width=26 border=0 name=header_r1_c7></TD>
<TD><IMG height=83 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1 border=0></TD></TR>
<TR>
<TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif"><IMG height=22
src="images/header_r2_c1.gif" tppabs="http://www.linuxhero.com/docs/images/header_r2_c1.gif" width=296 border=0
name=header_r2_c1></TD>
<TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif" colSpan=5>
<DIV align=right><FONT class=normalfont>当前位置:
<A href="index.html" tppabs="http://www.linuxhero.com/docs/index.html">本站首页</A>
<font color="#FF6699">>></font>
<A href="type2.html" tppabs="http://www.linuxhero.com/docs/type2.html">基础知识</A> | <A href="copyright.html" tppabs="http://www.linuxhero.com/docs/copyright.html">版权说明</A></font></DIV>
</TD>
<TD><IMG height=22 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1
border=0></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=10 cellPadding=0 width="100%" bgColor=#ffffff
border=0>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%" border=0>
<TR>
<TD vAlign=top align=middle width="60%">
<TABLE cellSpacing=0 cellPadding=0 width="100%"
background="images/back.gif" tppabs="http://www.linuxhero.com/docs/images/back.gif" border=0>
<TBODY>
<TR>
<TD vAlign=top width="80%">
<DIV align=center>
<FORM action="search.html" tppabs="http://www.linuxhero.com/docs/search.html" method=get>
</FORM>
<TABLE cellSpacing=0 cellPadding=0 width="95%"
border=0><TBODY>
<TR>
<TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif"
height=30></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width="95%"
align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%"
border=0>
<TBODY>
<TR>
<TD vAlign=top>
<p><FONT class=normalfont><B><font color=blue>Modules的概念及使用</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:作者<br>来自:Linux知识宝库<br>联系方式:无名<br><br>一、什么是 modules?<br>
modules 的字面意思就是模块,在此指的是 kernel modules;简单来说, 一个模块提供<br>
了一个功能,如 isofs、minix、nfs、lp 等等。传统来讲,模块化有两个方法解决: 设计者<br>
可以把各项功能分离到单独的叫做线程的处理中去, 或者是将内核以包含/排除一些功能的方<br>
式重新编译。如果把功能分离到线程中去,那么内核就叫做“微内核”(micro-kernel),这种解<br>
决方法增加了线程间协调工作的通信开销。就象名字暗示的那样,这种解决方案的优点在于内<br>
核的大小。<br>
<br>
linux的解决方案是包含内核模块,这些模块是可以按需要随时装入和卸下的。 这样做可<br>
以使得内核的大小和通信量都达到最小。将模块从内核中独立出来,不必预先『绑』在<br>
kernel codes 中。这样做有三种优点: 第一, 将来修改 kernel 时,不必全部重新compile,<br>
可节省不少时间;第二, 若需要安装新的 modules ,不必重新 compile kernel,只要插入 <br>
(通过insmode指令) 对应的 modules 即可;第三,减少内核对系统资源的占用, 内核可以集<br>
中精力做最基本的事情,把一些扩展功能都交由modules实现。<br>
<br>
模块也可以用来尝试新的内核代码而不需要每次都创建和重激活内核。但是,这样做带来<br>
的问题是:使用内核模块通常会轻微的增加性能和内存开支。一个可加载模块肯定会产生更多<br>
的代码,这种代码和额外的数据结构会占用更多一点的内存。另外因为间接访问内核资源也让<br>
模块的效率轻微降低。<br>
<br>
模块化的思想已经被广泛接受,主要的原因在于它可以扩展系统的功能,用户可以灵活的<br>
配置系统。Apache也采取了这种功能扩展方式,在本文中主要讨论是内核的模块安装与卸载,<br>
Apache模块的安装请参照Apapce的相关文档。<br>
<br>
二、如何加载模块?<br>
加载内核模块的方法有两种。第一种使用insmod命令手工把它插入到内核。另一个更智能<br>
的方法是在需要的时候加载这个模块︰这叫做按需加载(demand loading)。当内核发现需要<br>
一个模块的时候,例如当用户安装一个不在内核的文件系统的时候,内核会请求内核守护进程<br>
(kerneld)试图加载合适的模块。说到这里就不能不提到内核守护进程kerneld了,它非常的<br>
聪明,能够主动的把您需要的modules 自动插入 kernel, 将没用到的 module 从kernel中清<br>
退。Kerneld由两个独立的部分构成:一部分工作于linux的内核,负责向daemon发送请求;另<br>
一部分工作于系统的用户数据区,负责调入由内核请求指定的modules。若少了这个kerneld,<br>
就只能通过手工的方式,用insmode或modeprobe命令进行加载。<br>
<br>
三、modules的相关命令介绍<br>
与modules有关的命令有:<br>
lsmod : 列出已经被内核调入的模块<br>
insmod : 将某个module插入到内核中<br>
rmmod :将某个module从内核中卸载<br>
depmod : 生成依赖文件,告诉将来的 insmod 要从哪儿调入 modules。这个依赖文件就在<br>
/lib/modules/[您的kernel版本]/modules.dep。<br>
Kerneld:负责自动的将模块调入内核和把模块从内核中卸载。<br>
<br>
四、编译一个最小的linux内核<br>
模块一般用来支持那些不经常使用的功能。例如,通常情况下你仅使用拨号网络,因此网<br>
络功能并不是任何时候都需要的,那么就应该使用可装入的模块来提供这个功能。仅在你进行<br>
拨号联接的时候,该模块才被装入。而在你断掉连接的时候它会被自动卸下。这样会使内核使<br>
用内存的量最小,减小系统的负荷。<br>
<br>
当然,那些象硬盘访问这样时时刻刻都需要的功能,则必须作在内核里。如果你搭一台网<br>
络工作站或web服务器,那么网络功能是时刻都需要的, 你就应该考虑把网络功能编译到内核<br>
里。另外一个方法是在启动的时候就装入网络模块。这种方法的优点是你不需要重新编译内核。<br>
而缺点是网络功能不能特别高效。<br>
<br>
按照以上的原则,我们首先列出一张清单,看看 kernel 中哪些选项是非有不可的,也就<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -