现在的位置: 首页 >> 操作系统 >> FreeBSD >> FreeBSD handbook中文版 9 配制FreeBSD 的内核
添加时间:2005-8-21 来源:网教中国 作者:
FreeBSD handbook中文版 9 配制FreeBSD 的内核

目录
9 配制FreeBSD 的内核
9.1 概要
第3 页9.2 为什么要定制一个内核?
9.3 建立和安装一个定制的内核
9.4 配置文件
9.5 建立设备的节点
9.6 如果出现问题怎么办
=============================================================


(翻译中出现的任何问题或错误,请广大读者及时反馈给我:freebsdhandbook@163.com)
9.1 概要
时你需要重新配置和编译你的内核。
.
.
.
.
.
.
9.2 为什么要定制一个的内核?
带来很多好处。不象GENERIC 内核,它需要支持很广泛的硬件设备,而定制的内核将只支持
你机器的硬件设备,这样会带来很多好处:
FreeBSD 使用手册
第9章配置FreeBSD 的内核
内核是FreeBSD 的核心。它用来管理内存,执行安全控制,网络,磁盘访问等等。而有
读完这章,你将了解到:
为什么需要建构一个定制的内核。
如何写一个内核配置文件,或修改已存在的配置文件。
如何使用内核配置文件创建和建构一个新的内核。
如何安装一个新内核。
如何在/dev 中创建设备文件的入口。
如何解决一些常见的问题。
定制内核基本上是每一个UNIX 用户必须经历的一关。这样做将会对你的FreeBSD 系统
1. 快速启动。既然系统内核只检测你机器上的硬件,那它所花费的启动时间将大大减
少。
2. 较少的内存使用。一个定制的内核会比GENERIC 内核使用较少的内存。这一点非常
重要,因为内核在处理时必须经常使用内存。所以,一个定制的内核对于内存较少的机
器来说是非常有用的。
3. 额外的硬件支持。一个定制的内核允许你加入象声卡之类设备的支持,而这恰恰是
GENERIC 内核所做不到的。
第1 页FreeBSD 使用手册
9.3 建立并安装一个定制的内核
首先,让我们先来看一下建立内核的目录。所有提到的目录都在/usr/src/sys 中,也
可以通过/sys 访问。有许多子目录充当了内核的不同部分。但最重要的是/arch/conf,你
可以在这儿配置内核,然后进行编译。这里的arch 也可能是i386,alpha,pc98。在一个特
殊的架构目录内,所有的东西都是为这个架构服务的;其它部分的代码是与所有平台共享的。
注意一下这个目录的逻辑结构,所有支持的硬件驱动程序、文件系统、参数选项,都放在各
自的目录下。另外,所有放在i386 目录下的是只跟PC 硬件有关的,而i386 目录之外的其
它目录,则是FreeBSD 可能移植到的平台会共享到的部分。
注意:如果你的系统没有这个/usr/src/sys 目录,那么内核源代码就没有被安装。最
快速的安装方式是以root 登陆, 然后运行/stand/sysinstall , 选择
configure Distributions src sys。
接着,切换到arch/conf 目录,拷贝GENERIC 配置文件,并给这个文件起一个容易辨认的名
称,它就是你的内核名称。例如:
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
通常,这个名称是大写的,如果正维护着多台不同硬件的FreeBSD 机器,以你机器的域
名来命名是非常好的主意。我们把它命名为MYKERNEL 就是这个原因。
注意:你必须以root 帐户登陆再执行下面的命令,否则你会没有权限,而导致错误。
现在,用你喜欢的文本编辑器编辑MYKERNEL。如果你是初学者,那唯一能用的编辑器
可能就是vi,它由于太复杂而不在这儿介绍了,但在参考书目中有许多书会介绍到它。然
而,FreeBSD 中最容易的编辑器是ee,如果你是一个工程师,它是一个非常好的选择。你可
以很自由地改变注释行来反映你的配置情况,或你在GERNERIC 中已经做的变化。如果你在
Sunos 或其它BSD 系统下定制过内核,那这个文件中的绝大部分将对你非常熟悉。如果你使
用的是诸如DOS 这样的系统,那GENERIC 配置文件就看起来非常困难,所以在下面的配置文
件章节将慢慢地、仔细地进行介绍。
注意:确信经常检查/usr/src/UPDATING,在你执行任何修改之前,记得要用最新发布
的源代码来同步你的源代码树。在这个文件中所有重要的升级都要记下来。
/sur/src/UPDATING 总是符合你的FreeBSD 源代码版本,而且总是比手册所说的信息更加精
确。
当你完成以上步骤之后,如果你使用的FreeBSD 是4.0 之前的版本的话,就执行下面的
第2 页FreeBSD 使用手册
命令进行编译和安装内核;如果你使用的是4.0 版或是之后的版本,你的/usr/src/目录可
能已经包含了sys/子目录了。
注意:如果你设法从一个旧版本的FreeBSD 升级你的内核,你可能必须从你得到新内核
源代码的地方,找到新版的配制文件,重建并安装它。
# /usr/sbin/config MYKERNEL
# cd ../../compile/MYKERNEL
# make depend
# make
# make install
如果你刚升级到一个比较新的版本,确信你已经重建了整个系统,然后运行下面的命令:
# cd /usr/src
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL
如果你还没有升级你的源代码树,那你应当按顺序执行:
config,make depend,make,make install
警告:如果你已经升级了你的源代码,你必须使用make buildkernel 方法来定制你的
内核。否则,用旧的工具来定制内核,可能会引起错误。如果你已经升级了源代码,不要
使用config/make 来定制内核。
新的内核将会被拷贝到/kernel 目录下,而旧的内核将会被移到/kernel.old。现在,
关闭系统,然后重新用你的内核启动系统。如果发生错误,在这章结尾会有一些故障的解决
办法。一旦你的新内核不能启动,请务必读一下有关如何恢复的章节。
注意:如果你已经加入了新的设备(如声卡),你可能在使用之前,要先在你的/dev 目
录下加入这些设备节点。
9.4 配置文件
内核设置的格式是很简单的,每一行包含了一个关键词(keyword)与一个或多个参数,
而大多数的设置都只包含一个参数。#号之后的文字都是注释,会被程序忽略掉。下面的每
个小节,将依次介绍每个列在GENERIC 中的参数,虽然各相关主题(如网络)的关键词会放在
同一小节,但是这些关键词可能位于GENERIC 的很多地方。详细地列出各个选项(option),
而LINT 列出了绝大部分的选项(options),比起在同一目录下的GENERIC,有更详细的解释。
第3 页FreeBSD 使用手册
如果你不能确定某一行设定的目的是否必要,请先看看LINT。
目前内核在处理各个选项上正转到一个比较好的模式。一般地,设置文件中的各个选项
都转换到内核程序的Makefile 中,属于CFLAGS 的一个-D 参数。时间一长,就造成了一个
选项处理机制的问题,没有人知道在哪个文件中参考使用了那个选项。
在新的机制中,使用#ifdef 来参考选项的程序代码是存放在由执行config 时所产生的
opt_foo.h。由config 所产生的有效的选项清单存储在两个文件里:独立于系统架构的选项
放在/sys/conf/options,与系统架构有关的选项则放在/sys/arch/conf/options.arch,其
中arch 的一个例子便是i386。
数字的引号限制(Quoting numbers): 目前所有FreeBSD 版本,包括3-stable
版,其内核设置文件中如果有任何属于文字形式的数字(如i386),必须用双引号引
起来,不然执行config 时会出错。
如果数字是表示数目、个数,如maxuser 64 这个设置,则不要加双引号。目
前FreeBSD CURRENT 版本已经去掉上述限制,不论是哪种形式的数字都不需要加双
引号。本章的例子,在文字形式的数字前后仍加了双引号(“”),如果你使用FreeBSD
CURRENT,请自动去除双引号。
下面是一个带有很多额外注释的GENERIC 内核配置文件的例子。这个例子与
/usr/src/sys/i386/conf/GENERIC 非常相似。有关内核配置的最详细的选项,请参
看/usr/src/sys/i386/conf/LINT。
#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
# http://www.FreeBSD.org/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.ORG/) for the
第4 页FreeBSD 使用手册
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present

[1] [2] [3] [4] [5]  下一页


上一篇:FreeBSD handbook中文版 10 安全 下一篇:FreeBSD handbook中文版 8 用户和基本的帐户管理
大部分文章摘自网上,如有侵犯您的权益请与我们联系,我们会第一时间进行处理,谢谢! [ 打印文章 ] [ 关闭窗口 ]
推荐文章
·FreeBSD 升级系统
·Ports & Package
·FreeBSD kernel 编译大法(二)ker
·FreeBSD 上使用Kerberos 5认证
·FreeBSD 5.x 中 gbfs 的修正,及
·FreeBSD 安装Linuxigd
·FreeBSD 使用cvsd创建安全的cvs
·FreeBSD trafcount命令介绍
·FreeBSD入门安装及汉化
相关文章
·FreeBSD handbook中文版 10 安全
·FreeBSD handbook中文版 12 存储
·FreeBSD handbook中文版 14 声卡
·FreeBSD handbook中文版 15 串口
·FreeBSD handbook中文版 11 打印
·FreeBSD handbook中文版 11 打印
·FreeBSD handbook中文版 11 打印
·FreeBSD handbook中文版 11 打印
·FreeBSD handbook中文版 8 用户
·FreeBSD handbook中文版 7 FreeB
最新文章
·FreeBSD连载(94):基于NAT的负载
·FreeBSD连载(93):反向代理负载
·FreeBSD连载(92):基于DNS的负载
·FreeBSD连载(91):提升静态网页
·FreeBSD连载(90):单服务器性能
·FreeBSD连载(89):CGI和SSI的安
·FreeBSD连载(88):安全连接方式S
·FreeBSD连载(87):基于用户的访
·FreeBSD连载(86):对IP地址和域
·FreeBSD连载(85):配置Apache服(
Google