预备知识:
模块就像你特意插入核心中的某些东西,如果办公室有一个小网络并且有时想用
一下(但并不经常),也许你想把网卡编译成一个模块。使用这个模块,机器必运行和
存取/libs 下的模块,意思是驱动程序(IDE,SCSI 等但必须是 NFS 支持的网卡),文件系
统(通常是 ext2 但也可以是 nfs)和核心类型(最好是 elf)必须编译在内核并且不能是模块,
模块只有核心引导时才起作用,驱动程序(来网络)的存取,和文件系统安装。这些文
件必须编译在核心内否则将能安装启动分区。如果安装启动分区和网络,你需要网络
系统文件,和己经编译的网卡。为什么要使用模块? 模块化使核心变的更简捷,它减
少核心释放大量的受保护的空间。模块的安装和卸载使用的空间是可重复分配利用的。
如果你打开机器有 90%以上的时间用到一个模块,编译它。运用这类模块是浪费内存
的,原因是一旦你编译了模块它们同样将占用大量的内存,核心需要一些代码来挂上
模块。记住,核心在保护空间运行,但模块并不是。这么说,并不经常使用我的设备,
把它编译成只支持 ext2,ide 和 elf。而一直使用的网卡,把其它的编译成模块:如
a.out, java, floppy, iso9960, msdos, minix,
vfat,smb,nfs,smcultra(ethernetcard),serial,printer,sound,ppp,等等。它们许多只是在
这或那用上那么几分钟。严格的说,这样做会使核心增大许多而降低它的执行速度。这
时我们就可以把这些可能会用的驱动程序编译成一个—个的模块,在需要用的时候才
用 insmod 这个指令加入核心,不用的时候也能 rmmod 把它从核心移除,或是用
lsmod 察看目前所载入的模块。
2.1.Enable loadable module support.
除非准备把所有需要的内容都编译到内核里面,否则该项应该是必选的。
2.2.Set version information on all module symbols.
通常,我们更新核心版本之后,模块耍重新的编译。这个选项使您不必更新
编译模块而能使用以前的模块。可以不选它。但如果您选 y,则按照它的说明,您
必须有 genksyms 这个程序(可用 whereis 指令查看有无此程序)。
2.3.Kernel module loader.
让内核在启动时有自己装入必需模块的能力,建议选上。注意:在开机就会
mount 上来的 partition 的 FS 、device driver 记得要 compiler 进 kernel,不能把
它弄成 modules。请不要夸张到为了完全模组化而忘了把 ext2fs 和 IDE dirver
compiler 进 kernel 里。
经验谈:
a. 可加载模块是指内核代码(kernel code)的一些片断,比如驱动程序,当编
译内核的时候它们也被单独编译。 因此,这些代码不是内核的一部分,但是
当你需要它的时候,它可以被加载并使用。 通常的建议是如果可能,将内核
代码编译成可加载模块,因为这样可以使内核更小,而且更稳定。 警告!千
万不要将文件系统(File System)部分的代码编译为可加载模块,如果你犯
了这个错误,将文件系统(File System)部分的代码编译为可加载模块,结
果将是内核无法读取它自己的文件系统。 然后内核无法加载它自己的配置文
件——一些很明显是在正常启动 Linux 时所必需的东西。 我很少使用可加载
模块:我喜欢我的内核能够直接和硬件对话,但这只是我自己的偏好。
2. Processor type and features:处理器类型和特色。
评论0
最新资源