分类: BSD
2008-04-17 11:15:02
# cd /usr/src/sys/ufs/ffs
# ln -s /usr/src/contrib/sys/softupdates/*.[ch] .
当建立了上述连接之后,带有SOFTUPDATES选项的内核才能被正确编译,然而即使内核支持这个选项,还需要在文件系统中设置softupdate选项,相应文件系统才能真正使用这个功能,这需要对相应的文件系统使用tunefs命令:
# tunefs -n enable /dev/rda0s1d
这个命令只需执行一次就行了,为了避免出现问题,请在系统的单用户模式下执行这个命令。同样可以使用tune fs -n disable可以屏蔽这个功能。
此外,对于多处理器的服务器系统,还可以使用SMP选项和APIC_IO选项以支持多处理器。
可以在编译内核时打开更多的优化选项,缺省情况的只能提供十分基本的优化,而且是使用标准版本的gcc 2. 7.2.1来编译系统的。可以安装egcc,并指定更高的优化选项,如-O6和-mPentium,来获得更高级别的优化和利用Pentium芯片专用指令。由于egcc仅仅支持ELF格式的执行文件,因此不能用于3.0之前(包括3 .0-REKLEASE)使用a.out格式内核的系统。
当使用egcc编译内核时,需要更改执行config后产生的内核目录下的Makefile,需要重新定义C C选项为/usr/local/bin/egcc,并更改优化选项-O为-O -mpentium,但是由于egcc 不支持gcc的编译选项-fformat_externsion,因此还需要更改Makefile引用的/usr/s rc/share/mk/bsd.kern.mk文件,删除这个文件中这个编译选项的定义。
虽然理论上编译器优化不影响编译结果,但是编译器本身也会存在问题,使得在某些情况下发生错误。尤其对于系统内核,它决定系统的稳定性。因而在编译时采用过高的优化时就要特别小心,极其偶然的情况下会过高优化的内核会造成系统崩溃。因此在正式使用一个优化内核之前,应该保留一个原有的、使用普通优化选项的内核。新内核经过一定时间实际运行的考验,确认没有问题之后才能放心用于正式使用。