|

楼主 |
发表于 2002-12-23 20:13:55
|
显示全部楼层
3. Loadable module support对模块的支持.
首先,了解一点关于模块的知识。模块就像你特意插入核心中的某些东西,如果办公室
有一个小网络并且有时想用一下(但并不经常),也许你想把网卡编译成一个模块。使用
这个模块,机器必运行和存取/libs下的模块,意思是驱动程序(IDE,SCSI等但必须是NF
S支持的网卡),文件系统(通常是ext2但也可以是nfs)和核心类型(最好是elf)必须编译
在内核并且不能是模块,模块只有核心引导时才起作用,驱动程序(来网络)的存取,和
文件系统安装。这些文件必须编译在核心内否则将能安装启动分区。如果安装启动分区
和网络,你需要网络系统文件,和己经编译的网卡。为什么要使用模块? 模块化使核心
变的更简捷,它减少核心释放大量的受保护的空间。模块的安装和卸载使用的空间是可
重复分配利用的。如果你打开机器有90%以上的时间用到一个模块,编译它。运用这类模
块是浪费内存的,原因是一旦你编译了模块它们同样将占用大量的内存,核心需要一些
代码来挂上模块。记住,核心在保护空间运行,但模块并不是。这么说,并不经常使用
我的设备,把它编译成只支持ext2,ide和elf。而一直使用的网卡,把其它的编译成模块
:如a.out, java, floppy, iso9960, msdos, minix, vfat,smb,nfs,smcultra(ethern
etcard),serial,printer,sound,ppp,等等。它们许多只是在这或那用上那么几分钟。严
格的说,这样做会使核心增大许多而降低它的执行速度。这时我们就可以把这些可能会用
的驱动程序编译成一个—个的模块,在需要用的时候才用insmod这个指令加入核心,不
用的时候也能rmmod把它从核心移除,或是用lsmod察看目前所载入的模块。这里面有三
项:
#Enable loadable module support------除非准备把所有需要的内容都编译到内核里面
,否则该项应该是必选的。
#Set version information on all module symbols------通常,我们更新核心版本之
后,模块耍重新的编译。这个选项使您不必更新编译模块而能使用以前的模块。可以不
选它。但如果您选y,则按照它的说明,您必须有genksyms这个程序(可用whereis指令
查看有无此程序)。
#Kernel module loader------让内核在启动时有自己装入必需模块的能力,建议选上。
注意:在开机就会 mount 上来的 partition 的 FS 、device driver 记得要 compile
r 进 kernel,不能把它弄成 modules。请不要夸张到为了完全模组化而忘了把ext2fs和
IDE dirver compiler 进 kernel 里。
#Support for hot-pluggabel devices ------热插拔设备支持。支持的不是太好,可不
选。
#PCMCIA/CardBus support------PCMCIA/CardBus支持。有PCMCIA就必选了。
#PCI bridge optimization (experimental) ------在某些支持BIOS上,它能让存取速
度加快,建议是选Y。
#Backward-compatible /proc/pci------设备兼容,自己看help。
#System V IPC 如果将来想编译dosemu(DOS模拟器),则这个选项一定要选,它是一个
让各个程序(process)同步且能彼此交换数据的函数库和一些系统的调用,没它,很多
的程序将会无法执行。
#BSD Process Accounting------
#Sysctl support------除非你的内存少的可怜,否则你应该启动这个功能,启用该选项
后内核会大8K,但能让你直接改变内核的参数而不必重新开机。 |
|