内核配置文件的格式是很简单的,每一行包含了一个关键词与一个或多个参数, 而大多数的设置都只包含一个参数。#后面的文字是注释,会被忽略掉。 下面的每个小节,将依次介绍每个列在GENERIC中的参数, 虽然各相关主题(比如网络)的关键词会放在同一小节,但是这些关键词可能位于 GENERIC文件的很多地方。 透彻的选项列表和关于设备列表的更详细的解释出现在 LINT配置文件, 和GENERIC文件在同一个目录。 如果你不能确定某一行设定是否需要请先参考LINT文件。
注: 在FreeBSD5.X和更高的版本LINT将不存在。关于架构依赖的选项 请看NOTES。一些选项, 主要就是架构依赖的选项在/usr/src/sys/conf/NOTES 文件里面,当然了,在这里复习这些选项也是明智的。
下面是一个带有很多额外注释的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/doc/en_US.ISO8859-1/books/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 # latest information. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the ../../conf/NOTES and NOTES files. # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.380 2003/03/29 13:36:41 mdodd Exp $
下面这个选项在每个中都要有:
machine i386
这是机器的架构。它可能是i386, pc98, sparc64, alpha, ia64, amd64, 或者 powerpc。
cpu I486_CPU cpu I586_CPU cpu I686_CPU
面的选项指出了在你的系统中所用的CPU类型。你可以使用多个CPU类型(例如: 你不能确定使用的是I586_CPU还是I686_CPU), 然而,对于一个定制的内核,最好是只指定你所拥有的CPU类型。如果你不能确定CPU类型, 可以通过文件/var/run/dmesg.boot来看你的启动信息。
在FreeBSD的内核里面仍然支持I386_CPU,但是在-STABLE和 -CURRENT里面缺省已经被禁用了。这就意味着安装FreeBSD在386-class的cpu, 一般有下面几种情况:
安装一个老的FreeBSD release并且按照µÚ 8.3 节从源码重建系统.
在一个新的机器上构建用户和内核程序,然后用已经编译好的/usr/obj下的文件 安装到386的机器上(详细情况看µÚ 19.5 节)。
用支持I386_CPU内核的FreeBSD的release光盘安装
这几种情况里面的第一种是最容易的,当是你需要很大的磁盘空间,而这在386-class机器上是很难找到的。
ident GENERIC
这是一个内核的标识符。 你应该自己命名一个容易辨认的名称,比如MYKERNEL。 放在ident后的参数,将在你用这个内核启动时显示在屏幕上。 如果你同时设置了几个内核,采用不同的名称是个不错的主意。(例如,你想定制一个实验性质的内核)。
maxusers n
这个 maxusers 选项设置了重要系统表的大小。 这个数值粗略地假设你的机器同时会有多少用户。
从FreeBSD 4.5开始,如果手动设置这个值为0系统将会自动赋值。[1]. 在FreeBSD 5.X里面,maxusers 如果没有定义,将缺省为 0。如果你使用的FreeBSD早于4.5, 或者你想自己设置这个值, 那么你至少要设置maxusers为4, 特别是你要执行X Window或是编译程序。 原因是maxusers值决定了系统同时可有多少个进程(process), 其算法是20 + 16 * maxusers,所以如果你设置maxusers为1, 则你的系统只能同时存在36个进程,包括18个(或更多)系统启动要占去的进程。 如果你执行了X Window,则又要用掉15个以上。甚至阅读一个man page也会使用九个进程来过滤、解压缩、然后显示文件。 设置maxusers到64将允许你有1044个进程,对任何人应该都是足够的。 当你执行程序时, 得到像是proc table full这样的错误信息, 或者你要建一个同时会有很多人来访问的网站(比如ftp.FreeBSD.org)时, 你就要增加这个设置的值,然后重新编译内核。
注: maxusers这个选项并不限制可以登陆你系统的用户数目。 它只是系统中用户可以最多执行的程序个数。 有一个关键词的值则真的限制了可以同时 远程登入和X terminal windows的人数:pseudo-device pty 16。 在 FreeBSD 5.X 中,并不需要担心这个数目, 因为 pty(4) 驱动会 ``自动复制(auto-cloning)'', 此时需要在配置文件中使用 device pty。
# Floating point support - do not disable. device npx0 at nexus? port IO_NPX irq 13
npx0是FreeBSD中浮点运算处理器的一个接口, 不论你用硬件的浮点运算处理器还是使用软件仿真,都需要这个设置。 这个设置不是可有可无的。
# Pseudo devices - the number indicates how many units to allocate. device loop # Network loopback
这是TCP/IP的通用环回设备。 如果你 telnet 或 FTP 到 localhost (换言之,127.0.0.1) 则将通过这个设备回到本机。 这是 必需的。在 FreeBSD 4.X 中,必须使用 pseudo-device loop。
接下来的那些项有一个或多个选项,关于每个选项的更多的信息参考下面注释。
#To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" #Default places to look for devices.
在FreeBSD 5.X和更新的版本里面,device.hints(5)被用来配置设备驱动选项。 在启动的时候loader(8)将会检查缺省位置/boot/devicehints。 使用hints选项你就可以把这些hints静态编译进内核。 这样就没有必要在/boot下创建devicehints。
#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
FreeBSD的普通建立过程是不包含调试信息的,建立内核的时候,在连接内核之前大部分的调试符号都被去掉了, 这样能节省安装位置的磁盘空间。如果你打算建立-CURRENT分支的测试内核,或者在FreeBSD上开发自己的内核, 你应该去掉这一行的注释,这样就打开了-g选项,传给gcc(1)后,就可以保留内核的调试信息。 如果你正在使用``传统''方法建立自己的内核(更多的信息参考µÚ 8.3 节), 也能通过给config(8)传递-g选项达到同样的效果。
options MATH_EMULATE #Support for x87 emulation
如果你的计算机上没有数学协处理器(386或者486SX),这一行允许内核模拟数学协处理器。 如果你有一个486DX,或者386或者486SX(使用387或487的芯片)或者更高的cpu(Pentium®,Pentium II等), 你可以注释掉这一行。
注: 随FreeBSD带的普通数学协处理器模拟函数不是非常精确。 如果你没有数学协处理器,而又需要更精确的模拟,最好把这个选项改成使用GNU数学支持的GPL_MATH_EMULATE, 因为版权原因它没有被缺省的包含进来。
在FreeBSD 5.X里面, 数学模拟缺省是禁用的,因为使用不支持数学浮点的CPUs已经很少了。
options INET #InterNETworking
网络支持,即使你不打算连网,也请保留它,大部分的程序至少需要回环网络(就是和本机进行网络连接),所以强烈要求保留它。
options INET6 #IPv6 communications protocols
这将打开IPv6连接协议。
options FFS #Berkeley Fast Filesystem options FFS_ROOT #FFS usable as root device [keep this!]
这是最基本的硬盘文件系统,如果你打算从本地硬盘启动,请保留它。
注: 在FreeBSD 5.X里面,FFS_ROOT选项不再需要了。
options UFS_ACL #Support for access control lists
这个选项只出现在FreeBSD 5.X,使得内核支持权限控制列表。 这要依赖于扩展属性和UFS2选项, 这些特性在µÚ 14.12 节有详细的描述。 ACLs缺省是打开的,并且如果已经使用在系统文件上, 就不应该关闭它。
options UFS_DIRHASH #Improve performance on big directories
通过使用额外的内存,这个选项可以加速在大目录上的磁盘操作。 你应该在大型服务器和频繁使用的工作站上打开这个选项,而在磁盘操作不是很重要的 小型系统上关闭它,比如防火墙。
options SOFTUPDATES #Enable FFS Soft Updates support
这个选项打开内核的Soft Updates,这将有助于加速写磁盘操作。 即使内核已经提供了这项功能,也必须给具体的磁盘打开此功能。 查看mount(8)输出,看是为给你的系统盘启用了Soft Updates。 如果你没有看到soft-updates 选项,那么你需要 通过使用tunefs(8)(对存在的文件系统)或者newfs(8)(对新文件系统)来激活它。
options MFS #Memory Filesystem options MD_ROOT #MD is a potential root device
这是内存映射的文件系统, 提供RAM disk,以供需要快速访问的资料或是暂存资料用。 如果你分了很大的swap空间,使用这个选项可以给你不少好处。 把MFS分区挂到/tmp是一个相当好的想法,因为不少程序都会在此暂存资料。要把MFS RAM disk挂到/tmp, 可以把下面这一行加到/etc/fstab里面:
现在你只需要启动系统,或者执行命令mount /tmp。
注: 在FreeBSD 5.X里面,md(4)-backed UFS文件系统比MFS文件系统更有利于内存文件操作。 关于配置memory-backed文件系统的更多信息可以在手册页里面使用mdconfig(8)和mdmfs(8)以及µÚ 16.12 节。 总之,MFS选项已经不再支持了。
options NFS #Network Filesystem options NFS_ROOT #NFS usable as root device, NFS required
网络文件系统。除非你打算通过TCP/IP挂上UNIX®文件服务器的分区, 不然可以注释掉这个选项。
options MSDOSFS #MSDOS Filesystem
MS-DOS®文件系统。除非你打算在启动的时候挂上DOS格式的硬盘分区,不然你可以安全的注释掉它。 如前所述,在你第一次挂上一个DOS分区时,内核将会自动加载模块来支持它。 此外,mtools是个相当不错的软件(可在ports里面找到),可以让你在访问DOS磁盘时, 不需要挂上或卸载软盘(而且也不需要MSDOSFS的支持)。
options CD9660 #ISO 9660 Filesystem options CD9660_ROOT #CD-ROM usable as root, CD9660 required
CD-ROM使用的ISO 9660文件系统。如果你没有光驱,或是很少用光驱, 可以注释掉这一行(内核会在第一次加载时动态的加载模块以支持它)。音乐CD则不会用到这个文件系统。
options PROCFS #Process filesystem
进程文件系统。这是一个``虚拟的''文件系统,挂在/proc下, 允许一些程序,像ps(1)来提供一些正在执行进程的信息。 在FreeBSD 5.X,大部分环境下是不需要PROCFS的,因为大部分调试和监视工具的运行已经不需要 PROCFS。此外,5.X-CURRENT的内核要使用PROCFS还必须启用PSEUDOFS 选项:
options PSEUDOFS #Pseudo-filesystem framework
PSEUDOFS在FreeBSD 4.X下没有。 不像FreeBSD 4.X,缺省时FreeBSD 5.X将不会挂上进程文件系统
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
使系统兼容4.3BSD。不要去掉这一行,不然有些程序将无法正常运行。
options COMPAT_FREEBSD4 #Compatible with FreeBSD4
为了支持在旧版本的FreeBSD下编译的程序,该选项在FreeBSD 5.X i386™和Alpha systems下需要打开。 最好在所有的i386和Alpha systems下打开这个选项,因为可能要运行老应用程序。 在5.X才开始支持的平台,比如ia64和Sparc64®,就不需要这个选项。
options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI
这行设置告诉内核等待15秒钟,以供SCSI控制器扫描你计算机上的SCSI设备。如果你只有IDE硬盘,你 可以不理会这个设置,不然你可能会想要降低这个值,也许会降到五秒,以增加启动的速度。如果你发现降低后, FreeBSD无法正确辨认你的SCSI设备,那么你应该提高这个值,延长等待时间。
options UCONSOLE #Allow users to grab the console
允许用户找到控制台(console)信息,对X用户很有用。举例来说, 你可以输入xterm -C来打开一个控制台xterm, 这个窗口将显示任何write、talk等命令的信息, 以及你发出去的信息。当然,kernel产生的信息也会在这里出现。
注: 在FreeBSD 5.X里面,UCONSOLE不再需要。
options USERCONFIG #boot -c editor
这个选项允许你从启动菜单启动配置编辑器。
options VISUAL_USERCONFIG #visual boot -c editor
这个选项允许你从启动菜单启动可视配置编辑器。
注: 从FreeBSD5.0版本以后,USERCONFIG这个选项被推荐在新方法device.hints(5)里面使用。 更多的关于device.hints(5)的信息请查看µÚ 12.5 节。
options KTRACE #ktrace(1) support
这个选项打开内核进程跟踪,在调试时很有用。
options SYSVSHM #SYSV-style shared memory
提供System V共享内存(SHM)的支持,最常用到SHM的应该是X Window的XSHM延伸, 不少绘图相关程序会自动使用SHM来提供额外的速度。如果你要使用X Window,你最好加入这个选项。
options SYSVSEM #SYSV-style semaphores
支持System V semaphores,不常用到,只在kernel中占用几百个字节的空间。
options SYSVMSG #SYSV-style message queues
支持System V messages,一样的,只占用kernel几百字节的空间。
注: ipcs(1)命令可以显示出任何使用到上述三个System V功能的进程。
options P1003_1B #Posix P1003_1B real-time extensions options _KPOSIX_PRIORITY_SCHEDULING
在1993年POSIX®添加的实时扩展. 在ports collection中某些应用程序会用到这些 (比如StarOffice™)。
注: 在FreeBSD 5.X,所有的这些功能都使用_KPOSIX_PRIORITY_SCHEDULING选项, P1003_1B选项将不再需要。
options ICMP_BANDLIM #Rate limit bad replies
这个选项启用ICMP的带宽限制的错误响应。使用这个选项可以帮助你保护你的机器免受拒绝式服务攻击。
注: 在FreeBSD 5.X,这个特性是缺省的,ICMP_BANDLIM选项不再需要了。
# To make an SMP kernel, the next two are needed #options SMP # Symmetric MultiProcessor Kernel #options APIC_IO # Symmetric (APIC) I/O
上面的两个选项是支持SMP的。
device isa
所有FreeBSD 支持的PC都需要这行设置。 即使您的计算机中没有 ISA 槽,也不要删除这一行。 如果你使用IBM PS/2 (微信道架构)计算机,则FreeBSD只能提供有限的支持。 更多的信息请参考/usr/src/sys/i386/conf/LINT文件。
device eisa
如果你的主机板上有EISA总线,加入这个设置。使用这个选项可以自动扫描并设置所有连接在EISA总线上的设备。
device pci
如果你的主板有PCI总线,就加入这个选项。使用这个选项可以自动扫描PCI卡,并在PCI到ISA之间建立通路。
device agp
如果你有图形加速卡(AGP card),这个选项将打开图形加速支持。
# Floppy drives device fdc0 at isa? port IO_FD1 irq 6 drq 2 device fd0 at fdc0 drive 0 device fd1 at fdc0 drive 1
软盘控制器,fd0是A:盘,fd1是B:盘。
device ata
这个驱动器支持所有ATA和ATAPI设备。你只要在内核中加入device ata选项, 就可以让内核支持现代计算机上的所有PCI ATA/ATAPI设备。
device atadisk # ATA disk drives
这个是ATAPI 磁盘驱动器所必须的。
device atapicd # ATAPI CDROM drives
这个是ATAPI CDROM驱动器所必须的。
device atapifd # ATAPI floppy drives
这个是ATAPI 磁盘驱动器所必须的。
device atapist # ATAPI tape drives
这个是ATAPI 磁带机驱动器所必须的.
options ATA_STATIC_ID #Static device numbering
T这个可以静态分配控制器的编号(比如老的驱动器),也可以动态分配设备的编号。
# ATA and ATAPI devices device ata0 at isa? port IO_WD1 irq 14 device ata1 at isa? port IO_WD2 irq 15
上面的选项用在比较老的,非PCI的系统中。
# SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices device amd # AMD 53C974 (Teckram DC-390(T)) device dpt # DPT Smartcache - See LINT for options! device isp # Qlogic family device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets) device adv0 at isa? device adw device bt0 at isa? device aha0 at isa? device aic0 at isa?
SCSI控制器。可以注释掉你系统中没有的设备。如果你只有IDE设备,你可以把这些一起删掉。
# SCSI peripherals device scbus # SCSI bus (required) device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access)
SSCSI外围设备。也可以像上面一样操作。
注: 目前系统提供的 USB umass(4) 驱动 (以及少量其它驱动) 使用了 SCSI 子系统, 尽管它们并不是真的 SCSI 设备。 因此, 如果在内核配置使用了这类驱动程序, 请务必不要删除 SCSI 支持。
# RAID controllers device ida # Compaq Smart RAID device amr # AMI MegaRAID device mlx # Mylex DAC960 family
支持RAID控制器。如果你没有这些,可以把它们注释掉或是删掉。
# atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc0 at isa? port IO_KBD
键盘控制器(atkbdc)提供AT键盘输入以及PS/2指针设备的I/O服务。 键盘驱动程序(atkbd)与PS/2鼠标驱动程序(psm)需要这个控制器,所以不要删除它。
device atkbd0 at atkbdc? irq 1
atkbd驱动程序,与atkbdc控制器一起使用, 提供连接到AT键盘控制器的AT 84键盘与AT加强型键盘的访问服务。
device psm0 at atkbdc? irq 12
如果你的鼠标连接到PS/2鼠标端口,就使用这个设备驱动程序。
device vga0 at isa?
显卡驱动。
# splash screen/screen saver device splash
启动时出现了 splash 画面!屏幕保护程序也需要它。 在 FreeBSD 4.X 中,应写作 pseudo-device splash 。
# syscons is the default console driver, resembling an SCO console device sc0 at isa?
sc0是默认的控制台驱动程序,绝大部分全屏幕程序都通过termcap 这类terminal database library来访问控制台,因此不论你用这个驱动程序 或是VT220兼容控制台驱动程序vt0,这中间并没有太大差别。 如果你登陆系统后,执行全屏幕程序时遇到问题,请将你的TERM设置成scoansi。
# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver #device vt0 at isa? #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor # If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines #options PCVT_SCANSET=2 # IBM keyboards are non-std
这是一个兼容VT220的控制台驱动程序,并向下兼容VT100/102。在部分与sc0相冲突的笔记本计算机上, 这个驱动程序运作良好。当然,当你登陆系统时,记得设置TERM参数为vt100或是vt220。 当连接到网络上许多计算机时,这个驱动程序也常是很有用的,这是因为许多的计算机上 的termcap或是terminfo并没有sc0 的资料��而vt100的资料几乎所有的平台上都支持。
# Power management support (see LINT for more options) device apm0 at nexus? disable flags 0x20 # Advanced Power Management
高级电源管理支持。使用在膝上型计算机上。
# PCCARD (PCMCIA) support device card device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000 device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disable
PCMCIA支持。如果你使用膝上型计算机,你需要这个。
# Serial (COM) ports device sio0 at isa? port IO_COM1 flags 0x10 irq 4 device sio1 at isa? port IO_COM2 irq 3 device sio2 at isa? disable port IO_COM3 irq 5 device sio3 at isa? disable port IO_COM4 irq 9
sio0到sio3可看作是MS-DOS/Windows®系统中的COM1到COM4。
注: 如果你使用内置式的调制解调器,且占用COM4,而你的系统又有COM2, 则你必须修改调制解调器的IRQ为2(IRQ 2跟IRQ 9是一样的),这样FreeBSD才能正常使用调制解调器。 如果你有一个多口的串行卡,请看sio(4)的手册页。 部分显示卡(特别是使用S3芯片的卡),用到0x*2e8这个I/O地址,而一些便宜的串行卡, 没办法正确译码16位的I/O寻址空间,因此两张卡会冲突,导致COM4无法正常使用。
每个串行口都要有一个唯一的IRQ(除非你使用支持共享中断的多口卡),所以COM3与COM4默认的IRQ将无法使用。
# Parallel port device ppc0 at isa? irq 7
ISA-bus并行接口。
device ppbus # Parallel port bus (required)
提供并行总线的支持。
device lpt # Printer
提供并口打印机的支持。
注: 要使用并口打印机,就必须同时加入上面三行设置。
device plip # TCP/IP over parallel
这是针对并行网络接口的驱动器。
device ppi # Parallel port interface device
普通用途的I/O (``geek port'') + IEEE1284 I/O.
#device vpo # Requires scbus and da
这是针对Iomega Zip驱动器的。它要求scbus和da的支持。 最好的执行效果是工作在EPP 1.9模式。
# PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip'') device fxp # Intel EtherExpress PRO/100B (82557, 82558) device tx # SMC 9432TX (83c170 ``EPIC'') device vx # 3Com 3c590, 3c595 (``Vortex'') device wx # Intel Gigabit Ethernet Card (``Wiseman'')
多种PCI网卡驱动器。注释或删除你系统中没有的设备.
# PCI Ethernet NICs that use the common MII bus controller code. device miibus # MII bus support
MII总线支持对于一些PCI 10/100 Ethernet NIC来说是必需的。
device dc # DEC/Intel 21143 and various workalikes device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (``Starfire'') device sis # Silicon Integrated Systems SiS 900/SiS 7016 device ste # Sundance ST201 (D-Link DFE-550TX) device tl # Texas Instruments ThunderLAN device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
使用MII总线控制器代码的驱动器。
# ISA Ethernet NICs. device ed0 at isa? port 0x280 irq 10 iomem 0xd8000 device ex device ep # WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really # exists only as a PCMCIA device, so there is no ISA attachment needed # and resources will always be dynamically assigned by the pccard code. device wi # Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will # work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP # mode (the factory default). If you set the switches on your ISA # card for a manually chosen I/O address and IRQ, you must specify # those parameters here. device an # The probe order of these is presently determined by i386/isa/isa_compat.c. device ie0 at isa? port 0x300 irq 10 iomem 0xd0000 device fe0 at isa? port 0x300 device le0 at isa? port 0x300 irq 5 iomem 0xd0000 device lnc0 at isa? port 0x280 irq 10 drq 0 device cs0 at isa? port 0x300 device sn0 at isa? port 0x300 irq 10 # requires PCCARD (PCMCIA) support to be activated #device xe0 at isa?
ISA以太网驱动器。看看/usr/src/sys/i386/conf/LINT了解一下哪个卡被哪个驱动器支持。
device ether # Ethernet support
ether 只有在使用以太网卡时才需要。 它包含了通用的以太网协议代码。在 FreeBSD 4.X 中应写作 pseudo-device ether.
device sl 1 # Kernel SLIP
sl 用于提供 SLIP 支持。 它已经几乎完全被 PPP 取代,因为后者更容易配置,更适合调制解调器之间的连接,而且功能更加强大。 sl 后面的 数字 用于指定支持同时开启多少个 SLIP 会话。 在 FreeBSD 4.X 中,应写作 pseudo-device sl.
device ppp 1 # Kernel PPP
这一选项提供用于拨号的内核模式 PPP 支持。 另外,也有以用户模式运行的 PPP 实现,使用 tun, 它更加灵活,而且提供了更多的功能,如按需拨号等等。 ppp 后面的 数字 用于指定支持同时开启多少个 PPP 会话。 在 FreeBSD 4.X 中,应写作 pseudo-device ppp.
device tun # Packet tunnel.
这一选项会被用户模式的 PPP 软件用到。 tun 后面的 数目 用于指定允许的最大 PPP 连接数目。 具体细节, 请参考本书的 PPP 一节。 在 FreeBSD 4.X 上,请使用 pseudo-device tun。
device pty # Pseudo-ttys (telnet etc)
这是 ``伪终端'' 或仿真的登入端口。 它会被进入的 telnet 以及 rlogin 会话, xterm,还有某些其它应用程序, 如 Emacs 用刀。在 FreeBSD 4.X 中, 则应使用 pseudo-device pty 数字。 pty 后面的 数字 用于指定要创建的 pty 数量。 如果需要比默认值16更多的 xterm 窗口会话, 以及远程登录, 请务必相应提高这个值, 其上限是 256。
device md # Memory ``disks''
Memory disk pseudo-devices. With FreeBSD 4.X use the line pseudo-device md.
device gif # IPv6 and IPv4 tunneling
这个设备实现了 IPv4 上的 IPv6 隧道、 IPv6 上的 IPv4 隧道、 IPv4 上的 IPv4 隧道, 以及IPv6 上的 IPv6隧道。 从 FreeBSD 4.4 开始, gif 设备拥有了 ``自动克隆'' 的功能, 因此只需使用 pseudo-device gif。 而更早的 FreeBSD 4.X 版本则需要手工指定一个数字,例如 pseudo-device gif 4。
device faith # IPv6-to-IPv4 relaying (translation)
这个伪设备能捕捉发给它的数据包,并把它们转发给 IPv4/IPv6 翻译服务程序。在 FreeBSD 4.X 中,应写作 pseudo-device faith 1。
# The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! device bpf # Berkeley packet filter
这是 Berkeley 包过滤器。这个伪设备允许网络接口被置于混杂模式, 从而,截获广播网 (例如,以太网) 上的每一个数据包。 截获的数据报可以保存到磁盘上,也可以使用 tcpdump(1) 程序来分析。 在 FreeBSD 4.X 中,应写作 pseudo-device bpf。
注: bpf(4) 设备也被用于 dhclient(8) 来获取默认路由器(网关)的 IP 地址。如果使用DHCP,就不要注释掉这行。
# USB support #device uhci # UHCI PCI->USB interface #device ohci # OHCI PCI->USB interface #device usb # USB Bus (required) #device ugen # Generic #device uhid # ``Human Interface Devices'' #device ukbd # Keyboard #device ulpt # Printer #device umass # Disks/Mass storage - Requires scbus and da #device ums # Mouse # USB Ethernet, requires mii #device aue # ADMtek USB ethernet #device cue # CATC USB ethernet #device kue # Kawasaki LSI USB ethernet
支持多种USB设备.
更多有关FreeBSD支持的设备请参考/usr/src/sys/i386/conf/LINT.
大内存配置的机器需要超过4GB的虚拟地址。 因为4GB的限制,Intel在Pentium及后续的CPUs上增加了36位物理地址的支持。
Intel® Pentium Pro和后续的CPUs允许内存地址扩展到64GB.(PAE) FreeBSD通过PAE选项来支持这个能力。 在FreeBSD 4.X系列里面,4.9-RELEASE开始支持,FreeBSD 5.X系列里面,从5.1-RELEASE开始支持。 in the 4.X series of FreeBSD beginning with 4.9-RELEASE and in the 5.X series of FreeBSD beginning with 5.1-RELEASE。因为Intel架构的限制, 高于或低于4GB都没有什么区别,内存分配到大于4GB仅仅是增加了可利用的内存池。
为了让内核支持PAE,只要增加下面这一行到配置文件:
options PAE
注: PAE在FreeBSD里面现在只能支持 Intel IA-32处理器。 同时,还应该注意,FreeBSD的PAE支持没有经过广泛的测试, 和其他稳定的特性相比只能当作是beta版。
PAE在FreeBSD下有如下的一些限制:
进程不能接触大于4GB的VM空间。
KLD 模块不能加载到一个打开了PAE支持的内核里面, 这是因为内核模块和内核的建立框架不一样。
没有使用bus_dma(9)界面的设备驱动程序在打开了PAE支持的内核里面 会导致数据腐化(corruption)。因为这个原因,FreeBSD 5.X的PAE内核配置文件 把所有在打开了PAE的内核上不能工作的驱动程序排除在外。
一些系统打开了探测系统内存资源使用能力的功能,因为打开了 PAE支持,这些功能可能会被覆盖掉。 其中一个例子就是内核参数kern.maxvnodes,它是控制 内核能使用的最大vnodes数目的,建议重新调整它及其他类似参数到合适的值。
为了避免KVA的消耗,很有必要增加系统的内核虚拟地址, 或者减少很耗系统资源的内核选项的总量(看上面)。KVA_PAGES选项 可以用来增加KVA空间。
为了稳定和高性能,建议查看tuning(7)手册页。pae(4)手册页包含 FreeBSD'sPAE支持的最新信息。
[1] |
自动赋值算法是设置maxusers等于系统的内存总量,最小到32,最大到384。 |