分类: BSD
2007-08-14 00:37:01
2 核心模块 (kernel module),当系统有需要调用该模块时,才将它加载入到内核。好处是让我们更快加入硬件驱动程序,方便地加入我们想要的功能。所有的模块都可以编译放入内核中,模块直接编入内核中可以减少加载的时间,就像WINDOWS一样,所有的都在一个核心内,而动态加载可以在我们不需要该模块时,减少不心要的系统开销。例如 DVD 所使用的文件系统格式,我们平常可能很少用,所以不将它编译到内核中。在需要时,我们可以动态加载该模块,使用完毕后,再将它从内核中移除。
3 GENERIC kernel支持常见的软硬件,但 GENERIC 核心中可能有许多我们用不到的驱动程序,也可能不支持一些特殊的硬件。ee GENERIC看看,光CPU就有好几个不同的在其中,486、586、……,每一个我们不可能都会用到吧!如果内核包含太多的东西不仅会占去内存的空间,不同程序间也有可能造成冲突,所以我们编译内核对我们是很必要的,尤其像我的“清华同方”,呵呵,什么年代啦,不要笑话偶,偶说过偶很穷的!!!
4 如果你要用FREEBSD做网桥,就需要重新将支持该功能的参数加到核心中(加入options BRIDGE)。另外,如果要改变系统的效率,你必须修改核心中的参数,例如增加同时上线的人数、或最大同时开启的文件数等。当然,有的功能在 FreeBSD 中可以由 sysctl 这个指令来修改(例如以上网桥中 ee /etc/sysctl.conf 里加入
net.link.ether.bridge.enable=1
net.link.ether.bridge.config=vr0,vr1).
5 移除不必要模块,以加速开机速度。还有修补漏洞,有可能也要重新编译内核。
======开始 ee KERNEL======
1 同步原码
vangeldoro# sysinstall
依次选择 Configure -> Distribution -> src -> sys
2 修改GENERIC
vangeldoro# cd /usr/src/sys/i386/conf
vangeldoro# cp GENERIC /root/vangeldoro //改成你想要的名字
vangeldoro# ln -s /root/vangeldoro
vangeldoro# ee vangeldoro
依据你的需要修改
在你不用的前面加“#”注掉(之前建议你查查相关的资料,由于篇幅的原因,(呵呵,不怕你笑话,主要是因为我太菜,不会写)……我就不多写啦)
耍我?????
#…………………………………………………………
#……………………………………………………
#……………………………………………………
3 里面有好多选项,是不是看得你头痛眼花啦呵呵~~~~~~
>1< 不过好多东西我们大可不必可理会,我们只修改我们的目的,如(我自己则是加入一行代码options BRIDGE ),我们要加入什么功能呀,加入什么硬件呀等,但为了精简内核,建议你注掉你当前不用的设备和驱动
>2< 注掉不必要的CPU (386、486、586……)网卡等
>3< 注掉不必要的SCSI 设备,但记得SCBUS、CH、DA 不可以注掉
>4< 注掉不必要的IDE ,如IDE 软盘等
>5< 注掉不必要的USB
======保存======
======编译KERNEL======
vangeldoro# cd /usr/src/sys/i386/conf
vangeldoro# config vangeldoro
vangeldoro# cd ../compile/vangeldoro/
vangeldoro# make depend
vangeldoro# make
漫长的等待…………………………………………………………………………………………………………
======安装KERNEL======
vangeldoro# make install
vangeldoro# cd /
vangeldoro# rm -rf /usr/src/sys/i386/compile/vangeldoro
vangeldoro# sync;reboot
(sync指令要系统将所有暂存在内存内的数据都写入硬盘)
======检查GENERIC文件======
diff -ub GENERIC vangeldoro 该命令可以看出你改了什么东西造成错误
======使用旧内核======
如果你还想使用旧内核版本
请在出现开机选单时按 6 以进入 loader 模式,并输入:
OK unload OK boot /boot/kernel.old
注意:FreeBSD 6.0 的 kernel 放在 /boot/kernel 目录下,旧的内核在 /boot/kernel.old 。