kerneld mini-HOWTO

2008-02-23 07:23:36来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

kerneld mini-HOWTO
1.7 版,上次由 Henrik Storner (storner@osiris.ping.dk)於 1997 年 7 月 19 日(storner@osiris.ping.dk) 更新。

曾达康 (a9504480@graduate.hku.hk) 於 1998 年 6 月 14 日完成翻译。


--------------------------------------------------------------------------------


导言
此文件解释如何使用 Linux 核心中的 kerneld 功能。它会说明:

kerneld 是什麽 
为什麽要用它 
如何取得所需东西 
如何设定它 
如何告诉 kerneld 它不认识的模组的资料 
如何侦察 kerneld (设定时可能有用) 
kerneld 的特别用途 
常见问题及怪事 
此文件的最新版本可在 http://eolicom.olicom.dk/~storner/kerneld-mini-HOWTO.html 找到。(译按:中文版则可在 http://www.linux.org.tw/CLDP/mini/Kerneld.html 找到)在此 mini-HOWTO 推出的正式版本期间,你可在 http://eolicom.olicom.dk/~storner/kern.html 找到未经组织的更新清单。 

荣誉
如果你发现此文件中出现错误,请告诉文章的原作者。以下各人都曾对本文作出贡献:

Bjorn Ekwall  
Ben Galliart  
Cedric Tefft  
Brian Miller  
James C. Tsiao  
我非常感谢此 mini-HOWTO 读者寄给我们的鼓励和提议。

(译按∶当然,如果问题出在译文中,请通知曾达康 )



--------------------------------------------------------------------------------


kerneld 是什麽?
kerneld 是由 Bjorn Ekwall 引入 1.3 版的发展核心 (development kernel) 的功能。它可在所有 2.0 及 2.1 版本的核心找到。它令模组 (modules)—即驱动程式 (device drivers)、网络驱动器 (network drivers)、档案系统 (filesystems)—自动在有需要时载入,而不需自行使用 modprobe 或 insmod。

还有更有趣的东西,虽然它们尚未整合到标准的核心中∶

它可设定成不使用内定的空白画面,而让你选择其他程式,使你可自选萤幕保护器 (screen saver)。 
和萤幕保护器相似,你可把主控台 (console) 的‘哔’声改为完全不同的东西… 
kerneld 包括两个独立部分:

核心向监控程式 (daemon) 就所需模组提出要求的支援。 
懂找出所需模组来满足核心要求的使用者层面 (user-level) 监控程式。 
要使用 kerneld,两个部分都要正常运作。只设定好其中一个是没用的。



--------------------------------------------------------------------------------


为什麽要用它?
有不少好理由去使用 kerneld。这里提出的是我个人的——其他人可能有其他的理由。

如果你要为多个只有少许不同的系统(如使用不同的网络控制卡)建立核心,你只需建立一个核心和数个模组,而不需为每个系统建立不同的核心。 
对开发人员而言,模组比较容易测试—你不需重新启动电脑以载入及卸下驱动程式(这点适用於所有模组,并不限於 kerneld 载入的)。 
它减少核心占用的记忆体,即你有更多记忆体供其他程式使用。核心所占用的记忆体是 *永不* 被换出 (swap-out) 的,所以如果你的核心中有 100kB 没用的驱动程式的话,那只是在浪费你的记忆体。 
有一些我要用的东西,如 ftape floppy-tape driver 或 iBCS,只以模组形式出现。但我懒得自己载入和卸下它们。 
Linux 发行者不再需要建立 284 个不同的开机影象 (boot images) —使用者只载入配合其硬件的驱动程式。例如 RedHat 4.0 就使用了这方法。 
当然,你也有不使用它的理由—你可能喜欢在一个核心映象 (kernel image) 中包括所有你要的驱动程式。如果是这样,你看错文章了。



--------------------------------------------------------------------------------


如何取得所需东西?
对 kerneld 的支援始於 1.3.57 版。如果你正使用较旧的版本,你需要更新它才可用 kerneld 了。所有主要的 Linux ftp 台都有核心的原程式码。我建议你更新至最新版本的稳定核心,2.0,目前是嵌补等级 (patch level) 2.0.29 (译按:现时已是 2.0.35):

  ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0/linux-2.0.29.tar.gz
  ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0/linux-2.0.29.tar.gz
  ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/v2.0/linux-2.0.29.tar.gz
使用者层面的监控程式包含在 modules-1.2.8 及更新的 modules-2.0 中。它们一般会和核心源程式码在同一地点找到,而官方位置包括:

  ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0/modules-2.0.0.tar.gz
  ftp://tsx-11.mit.edu/pub/linux/sources/sbin/modules-2.0.0.tar.gz
  ftp://ftp.funet.fi/pub/Linux/tools/modules-2.0.0.tar.gz
注意:如果你想在 2.1 版的开发核心尝试载入模组,你必须用最新的 modutils-(不是 modules-)。但请看 以下有关模组和 2.1 版核心部分的问题。



--------------------------------------------------------------------------------


如何设定它?
首先要取得所需的东西:合用的核心部分及最新版的 modules-utilities。之後你要安装 modules-utilities。十分简单:只需把原程式码解压及执行 make install. 这样便会编译 genksysm, insmod, lsmod, modprobe, depmod, kerneld,及把它们安装到 /sbin。我建议你加数行到你的开机命令手稿 (startup-script) 来完成启动时所需的设定。如果你使用 Slackware,请把以下数行加入你的 /etc/rc.d/rc.S 档,如果你使用 SysVinit,如 Debian, RedHat, Caldera,请把以下数行加入你的 /etc/rc.d/rc.sysinit 档。(译按:据我所知,RedHat 5.0的 SysVinit已加入此功能): 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Bzip2 Howto

下一篇:Linux 核心--16.Linux数据结构