9.4. 配置文件

内核配置文件的格式是很简单的,每一行包含了一个关键词与一个或多个参数, 而大多数的设置都只包含一个参数。#后面的文字是注释,会被忽略掉。 下面的每个小节,将依次介绍每个列在GENERIC中的参数, 虽然各相关主题(比如网络)的关键词会放在同一小节,但是这些关键词可能位于 GENERIC文件的很多地方。 透彻的选项列表和关于设备列表的更详细的解释出现在 LINT配置文件, 和GENERIC文件在同一个目录。 如果你不能确定某一行设定是否需要请先参考LINT文件。

Note: 在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, 一般有下面几种情况:

这几种情况里面的第一种是最容易的,当是你需要很大的磁盘空间,而这在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)时, 你就要增加这个设置的值,然后重新编译内核。

Note: maxusers这个选项并限制可以登陆你系统的用户数目。 它只是系统中用户可以最多执行的程序个数。 有一个关键词的值则真的限制了可以同时 远程登入和X terminal windows的人数:pseudo-device pty 16

# 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.
pseudo-device   loop          # Network loopback

这是TCP/IP的通用回环伪设备,如果你telnet或者FTP到localhost (a.k.a., 127.0.0.1),它将通过这个伪设备回到本机。 这个伪设备强烈要求保留

接下来的那些项有一个或多个选项,关于每个选项的更多的信息参考下面注释。

#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)后,就可以保留内核的调试信息。 如果你正在使用``传统''方法建立自己的内核(更多的信息参考Section 9.3), 也能通过给config(8)传递-g选项达到同样的效果。

options          MATH_EMULATE      #Support for x87 emulation

如果你的计算机上没有数学协处理器(386或者486SX),这一行允许内核模拟数学协处理器。 如果你有一个486DX,或者386或者486SX(使用387或487的芯片)或者更高的cpu(Pentium®,Pentium II等), 你可以注释掉这一行。

Note: 随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!]

这是最基本的硬盘文件系统,如果你打算从本地硬盘启动,请保留它。

Note: 在FreeBSD 5.X里面,FFS_ROOT选项不再需要了。

options          UFS_ACL      #Support for access control lists

这个选项只出现在FreeBSD 5.X,使得内核支持权限控制列表。 这要依赖于扩展属性和UFS2选项, 这些特性在Section 10.13有详细的描述。 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里面:

/dev/ad1s2b    /tmp mfs rw 0 0

现在你只需要启动系统,或者执行命令mount /tmp

Note: 在FreeBSD 5.X里面,md(4)-backed UFS文件系统比MFS文件系统更有利于内存文件操作。 关于配置memory-backed文件系统的更多信息可以在手册页里面使用mdconfig(8)mdmfs(8)以及Section 12.10。 总之,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产生的信息也会在这里出现。

Note: 在FreeBSD 5.X里面,UCONSOLE不再需要。

options          USERCONFIG          #boot -c editor

这个选项允许你从启动菜单启动配置编辑器。

options          VISUAL_USERCONFIG   #visual boot -c editor

这个选项允许你从启动菜单启动可视配置编辑器。

Note: 从FreeBSD5.0版本以后,USERCONFIG这个选项被推荐在新方法device.hints(5)里面使用。 更多的关于device.hints(5)的信息请查看Section 7.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几百字节的空间。

Note: ipcs(1)命令可以显示出任何使用到上述三个System V功能的进程。

options    P1003_1B        #Posix P1003_1B real-time extensions
options     _KPOSIX_PRIORITY_SCHEDULING

在1993年POSIX®添加的实时扩展. 在ports collection中某些应用程序会用到这些 (比如StarOffice)。

Note: 在FreeBSD 5.X,所有的这些功能都使用_KPOSIX_PRIORITY_SCHEDULING选项, P1003_1B选项将不再需要。

options        ICMP_BANDLIM        #Rate limit bad replies

这个选项启用ICMP的带宽限制的错误响应。使用这个选项可以帮助你保护你的机器免受拒绝式服务攻击。

Note: 在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都需要这行设置。如果你使用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

软盘控制器,fd0A:盘,fd1B:盘。

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外围设备。也可以像上面一样操作。

# 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
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。

Note: 如果你使用内置式的数据机,且占用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

提供并口打印机的支持。

Note: 要使用并口打印机,就必须同时加入上面三行设置。

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驱动器的。它要求scbusda的支持。 最好的执行效果是工作在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了解一下哪个卡被哪个驱动器支持。

pseudo-device   ether         # Ethernet support

如果你有一个以太网卡,ether是必需的。它包含了通用的以太网协议代码。

pseudo-device   sl      1     # Kernel SLIP

sl 是针对SLIP支持的。这已经完全被PPP所代替,它是早期使用的协议。

pseudo-device   ppp     1     # Kernel PPP

ppp提供内核模式(kernel-mode)的PPP拨号支持。 另外有一个tun则是用户模式 (user-mode)的PPP支持,tun较有弹性且功能较多。 如同sl,ppp后面的number设置系统最多同时能支持几个PPP连接。

pseudo-device   tun           # Packet tunnel.

tun是用户模式的PPP软件。tun后面接的number 设置系统同时能支持几个PPP连接。更多的信息参看PPP


pseudo-device   pty           # Pseudo-ttys (telnet etc)

这是``伪终端''或仿真的登入端口。 被telnetrlogin连接, xterm,以及其他一些程序,比如Emacs所使用。 number设置系统的after pty个数。 系统默认值是16,如果你要提高同时连接数,可以适当增加这个数值,最高可达256个。

pseudo-device   md            # Memory ``disks''

Memory disk pseudo-devices.

pseudo-device   gif

or

pseudo-device   gif     4     # IPv6 and IPv4 tunneling

这个执行IPv6与 IPv4,IPv4与IPv6,IPv4与IPv4, IPv6与IPv6之间的转换。 从FreeBSD 4.4开始gif设备是 ``auto-cloning''的,你应该使用前面那个例子(gif没有数字)。 早期版本的FreeBSD需要数字。

pseudo-device   faith   1     # IPv6-to-IPv4 relaying (translation)

这个伪设备能检测到接收到的数据包,然后把它们发送给IPv4/IPv6翻译程序。

# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device   bpf           # Berkeley packet filter

这是Berkeley的封包过滤器。这个伪设备允许网络接口被放在复杂的模式上, 在网络上捕获每个封包。这些封包能被磁盘捕获或被tcpdump(1)程序检查。

Note: bpf pseudo-device也被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.

9.4.1. 大内存支持(PAE)

大内存配置的机器需要超过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

Note: PAE在FreeBSD里面现在只能支持 Intel IA-32处理器。 同时,还应该注意,FreeBSD的PAE支持没有经过广泛的测试, 和其他稳定的特性相比只能当作是beta版。

PAE在FreeBSD下有如下的一些限制:

为了稳定和高性能,建议查看tuning(7)手册页。pae(4)手册页包含 FreeBSD'sPAE支持的最新信息。

Notes

[1]

自动赋值算法是设置maxusers等于系统的内存总量,最小到32,最大到384。