• Bsd内核选项总结


    Bsd内核选项总结

    一:

    下面这个选项在每个内核中都要有:

    machine i386

    它指明了机器的硬件体系结构。它必须是i386, pc98, sparc64, alpha, ia64, amd64,

    和powerpc当中的一 种。

    cpu I486_CPU

    cpu I586_CPU

    cpu I686_CPU

    二:

    ident GENERIC

    ident 是一个内核的标识符。你应该把它改成想给内核取的名字,

    注意:象machine 与cpu 这两个设置。如果你的内核名称包含数字,请记得用双引号把

    它括起来。内核名称将会使用-D 参数传给编译器,所以不要用像DEBUG 或是其它可能干扰

    编译器的机器、CPU 名称,如vax 。

    三:

    maxusers n

    maxusers值的大小定义了重要的系统表(最多并行进程数)的大小。这个数值大概地和你机器的同时使用者的数量相等。

    在5。x中,如果这个值没有指定, 那么它默 认是0。因为maxusers 值决定了系统最大可同时 运行的进程数(processes),算 法是20 + 16 * maxusers 。如果你设置maxusers 值是1,则你 的系统只能同时存在36 个进程 ,包括18 个(或更多)系统启动要占去的进程数; 如果你使用了

    X Window ,则又要用至少15 个进程。甚至阅读一个man page 也会使用九个processes 来进行过滤、

    解压缩、然后显示文件。设置maxusers=64 ,则系统可以同时有1044 个processes ,这样差不多对

    所有应用都足够的了 。当你执行程序时,出现“proc table full ”这样的错误信息,或者需要很多人访问时;需要重新编译内核,

    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( 等同于

    127.0.0.1) ,则该连接会通过这个虚拟设备连回来。这是一个必需的设置。

    以下内容或多或少都有选项。它们下面或之后的信息可供参考。

    #To statically compile in device wiring instead of /boot/device.hints

    #hints "GENERIC.hints" #Default places to look for devices.

    在freebsd5。x及其更新版本中,文件device.hints用于设置设备驱动程序参数。默认

    情况下 loader将字系统 启动时检查/boot/device.hints文件。如果直接把这些隐含

    参数内容编译到内核中,那么就没有必要在/boot 中创建一个device.hints。

    六:

    #makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols

    为节约所需空间,通常freebsd内核构建进程并不产生从编译到链接产生目标内核过程

    中的调试信息。如果你 正测试 -CURRENT 分支的内核或者你想开发属于自己的

    freebsd内核,那你就不该注销掉这行。它使用 -g选 项,使得代码在被gcc处理

    时产生调试信息。如果你在使用传统的方法构建内核,那么config -g 选项也可

    实现该功能 (具体情况参考9章3小节).

    七:

    options MATH_EMULATE #Support for x87 emulation

    如果你的计算机没有浮点运算处理器(386 或486SX) ,这行将使得内核提供软件仿真

    的浮点运算处理器。如果 你用的是486DX 或是386SX 、486SX( 还加装了387 、487

    芯片)或更高的(Pentium 、Pentium II 等)则不需 要这行设置。

    注意: 这个仿真的运算处理器并不是很精确。如果你没有浮点运算器,但需要较

    高的精度,你可以改用GPL_MATH_EMULATE 参数,这将会使用GNU 的浮点运算

    仿真器。因为GNU 使用许可的关 系,这个仿真器不是系统默认值。

    在5.x中,运算模拟器默认并不被支持,因为在旧的cpu中,没有实际浮点运算器的

    是相当少见的。在许多情 况下,并不被GENERIC 内核支持,除非使用了附加选项。

    八:

    options INET #InterNETworking

    网络支持。即使你不打算连上网络,也要留着这个选项。对于大量的程序,需要至少

    有个loopback网络(例如 :用pc创建网络链接)。所以这个选项基本上是强制的。

    九:

    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

    这个选项目前只在5。x中可以使用,它使内核支持访问控制。这依赖于使用于使用

    UFS2 及其附加特性;具体 特性在节 10.13有详细叙述。默认支持访问控制列表

    (ACLs), 如果以前在文件系统上使用了访问控制列表, 那么最好不要去除该它,

    因为去除,很可能出现无法预知的问题。

    十二:

    options UFS_DIRHASH #Improve performance on big directories

    这个选项可以在有大量目录文件时,加快磁盘操作速度,而代价就时使用更大的内存。

    它对大型服务器,或 交互式工作站比较有用,而如果是个小型的系统,如一个

    防火墙,则没必要使用它,因为额外的内存使用换来 的是磁盘速度的一点点提升。

    十三:(必选)

    options SOFTUPDATES #Enable FFS Soft Updates support

    使内核支持Soft Updates, 以加快磁盘的写入速度。要真正使用该功能,还得打开分区

    的相应参数。通过 mount命令的输出,可以看到磁盘的 soft-updates 是否已经打开。

    如果没打开,则可通过tunefs(对现有的 文件系统)或newfs(对新文件系统)命令

    进行调整以实现对soft-updates的支持。

    十四:(必选)

    options MFS #Memory Filesystem

    options MD_ROOT #MD is a potential root device

    Memory-mapped 文件系统。RAM disk ,用于存放临时文件以提高速度。

    有很大的swap 空间,使用这个选项会比较有用。/tmp是 挂MFS 分区比较好的地方,

    因为很多程序都会在此存 放临时文件。要把/tmp挂到MFS RAM disk,可以修改/etc/fstab,

    加入以下一行:: /dev/ad1s2b /tmp mfs rw 0 0

    现在重启动,或是运行mount /tmp 命令:

    注意: 在5.X中, 使用md-backed UFS 文件系统 替代MFS(配置memory-backed 文件系统

    的有关资料在 mdconfig 和mdmfs的手册页里,在12章10节也有)。 因此MFS选项在5。x中 已经没有了。

    十五:(可选)

    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-ROM时,内核会动态加载模块以支持它)。音乐CD 则不需要用到这个

    文件系统。

    十八:

    options PROCFS #Process filesystem

    process file system。这是一个虚拟的文件系统,挂在/proc 下,允许程序(如ps) 获取

    有关正在执行的进 程的信息。在5.x中,PROCFS已经不是那么的重要了,因为很多调试和监视 工具已经能在无PROCFS的情况下工 作。 另外,要在5.X-CURRENT下用PROCFS,还必须有 PSEUDOFS的支持:

    十九:

    options PSEUDOFS #Pseudo-filesystem framework

    在FreeBSD4.X中,没有PSEUDOFS。在5。x中,默认将不使用进程文件系统,这一点不象freebsd4.x。

    二十:

    options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]

    使系统兼容4.3BSD 。掉这一行,有些程序将无法正常运行。

    options COMPAT_FREEBSD4 #Compatible with FreeBSD4

    二十一:

    5.x的i386及Alpha版,需要这个选项来支持一些为旧版系统编译的调用了旧版接口的软件。

    推荐在所有可能 运行旧应用程序的i386和Alpha 系统(仅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

    允许使用者获取控制台,对X Window 用户很有用。举例来说,你可以输入xterm -C

    来打开一个xterm终端 ,这个窗口将显示任何write 、talk 等命令的信息,以及其它你收到的

    信息。当然, kernel 输出的信息也会在这里出现。

    注意: 在FreeBSD 5.X中, UCONSOLE 已经不使必要选项。

    二十四:

    options USERCONFIG #boot -c editor

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

    二十五:

    options VISUAL_USERCONFIG #visual boot -c editor

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

    注意: 从FreeBSD 5.0 开始,USERCONFIG选项和新的device.hints方式冲突。具体内容可以看7章5节。

    二十五:

    options KTRACE #ktrace(1) support

    这个选项启用内核进程跟踪,在调试时很有用。

    二十六:

    options SYSVSHM #SYSV-style shared memory

    提供System V Shared memory的支持,最常用到它的应该是X Window 的XSHM

    扩展,不少绘图相关程序会自动使用它来提供额外的速度。如果你要使用X Window ,你最好加入这个选项。

    二十七:

    options SYSVSEM #SYSV-style semaphores

    System V semaphores的支持,一般用不到,但它只在kernel 中占用几百个字节的空间。

    二十八:

    options SYSVMSG #SYSV-style message queues

    System V messages的支持,一样的,只占用kernel 几百字节的空间。

    注意: ipcs 命令可以显示出所有使用到上述三个System V 功能的processes 。

    二十九:

    options P1003_1B #Posix P1003_1B real-time extensions

    options _KPOSIX_PRIORITY_SCHEDULING

    在1993 POSIX 中添加的实时扩展。在ports中有些应用程序会用到它们(比如Star Office )。

    注意: 在 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所必需 。

    三十二:

    (1)

    device isa

    所有FreeBSD 支持的PC 都需要这行设置。如果你是IBM PS/2 ( 微信道架构,MCA)

    计算机,FreeBSD提供的支 持就比较有限 。有关对MCA的支持,可以从

    /usr/src/sys/i386/conf/LINT找到答案。

    (2)

    device eisa(过时)

    如果你的主机板上有EISA 总线,加入这个设置。使用这个选项可以自动扫描并设置所

    有连接在EISA 总线上的设备。

    (3)

    device pci(必选)

    如果你的主板有PCI 总线, 就加入这个选项。使用这个选项可以自动扫描PCI卡,并在

    PCI 到ISA 之间建立通路。

    (5)

    device agp

    提供AGP显卡支持. 有AGP或AGP GART口的主板需要。

    三十三

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

    三十四

    (1)

    device ata

    提供所有ATA (IDE硬盘)和ATAPI(IDE光盘等非硬盘设备) 设备支持。你只要在内核中加入一个ata 选项,就可以让内核

    支持现代计算机上的所有 PCI ATA/ATAPI 设备。

    (2)

    device atadisk # ATA disk drives

    ATAPI 磁盘驱动器所必须,前提是有device ata项。

    device atapicd # ATAPI CDROM drives

    ATAPI CDROM 驱动器所必须,前提是有device ata项。

    device atapifd # ATAPI floppy drives

    ATAPI 软盘驱动器所必须,前提是有device ata项。

    device atapist # ATAPI tape drives

    ATAPI 磁带机驱动器所必须,前提是有device ata项。

    options ATA_STATIC_ID #Static device numbering

    它使得静态地分配控制器的编号(比如,旧的驱动器),当然设备的编号也可以动态分配。

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

    SCSI外围设备。注释掉你系统中没有的设备。如果你只有IDE设备,你可以把这些全部删掉。

    三十七:

    # RAID controllers

    device ida # Compaq Smart RAID

    device amr # AMI MegaRAID

    device mlx # Mylex DAC960 family

    RAID 控制器支持。如果你没有,可以把它们注释掉或是删掉。

    可以在BIOS里禁用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 是默认的控制台驱动,类似于SCO地控制台。绝大部分全屏幕程序都通过termcap

    这类terminal database library 来访问console ,因此用这个驱动程序或是VT220

    兼容的console 驱动程序vt0,没太大差别。使用sc0的情况下,如果登陆系统后,执行

    全屏幕程序有问题,则该把你的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 的console 驱动程序,并向下兼容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

    这四个串口,可看作是MS-DOS 系统中的COM1 到COM4 。

    注意:如果你的内猫占用COM4,并且串口占用COM2, 则你必须修改调制解调器的IRQ

    为2(IRQ 2 跟IRQ 9 是 一样的),这样你才能在freebsd中正常使用调制解调器。

    如果你用的时multiport的串口卡,则应该参考sio的 man手册。部分显示卡(特别

    是使用S3 芯片的),用到I/O 地址0x*2e8 ,而一些便宜的串行卡,不能正确译码

    16 位的I/O 寻址空间,因此它们会冲突,导致COM4 无法正常使用。

    每个串行口都要有一个唯一的IRQ(除非你用的时支持共享中断的multiport卡) ,

    所以COM3 与COM4 默认的 IRQ 无法使用。

    四十八(过时)

    # Parallel port

    device ppc0 at isa? irq 7

    ISA总线 并行接口

    四十九(?)

    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 网卡来说是必需的,也就是那些使用类似MII

    传输方式操作的 网卡。 加miibus驱动到内核配置中,以实现对普通miibus API的支持及所有

    的PHY驱动,包括一种不能被特 定驱动明确处理的PHY的通用驱动。

    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

    仅有以太网卡时才需要。它包含了通用的以太网协议代码。

    pseudo-device sl 1 # Kernel SLIP

    Sl 是对SLIP 提供支持的。这已经完全被PPP 所代替,ppp更易于配置,更适合modem-to-modem

    的连接,功能 也更强大。s1后面的数值设置系统支持多少个SLIP同时连接。

    pseudo-device ppp 1 # Kernel PPP

    使内核支持PPP 拨号连接。另外有一个tun 则是用户模式的PPP工具,tun 较有弹性且功能较多。

    如果你要使 用这个PPP 驱动程序,请参考内核模式PPP 这一章节。ppp后面的数字设置系统

    能支持几个PPP 同时连接。

    pseudo-device tun # Packet tunnel.

    用户模式的PPP 软件需要。tun 后面接的数字设置系统同时能支持几个PPP 连接。参看本书

    用户模式PPP 以 节以获得更多信息。

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

    pty 是虚拟终端,或仿真的登陆入口 。Ctelnet 或rlogin 连接、xterm 以及其它

    应用程序如Emacs 会用到pty 。number 设置系统要创建的pty 个数。如果有同时

    有超过16个xterm窗口或者 是远程登陆,那么你可以适当增加这个数值,最高可达256 个。

    pseudo-device md # Memory ``disks''

    内存磁盘 pseudo.

    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 程序检查。

    注意:bpf pseudo-device 也可以被dhclient 用来获得默认路由(网关)的

    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:物理内存扩展)

    大内存的机器是特指内存数超过4G(被用户和内核逻辑地址总和所限)的机器。为

    解决这个问题,Intel在 Pentium Pro及其之后的CPU中加入了36位物理地址空间寻址能力。

    加入了PAE功能的Intel Pentium Pro及其后的cpu允许内存最大可配置到64G。FreeBSD

    (4。x系列从4。 9RELEASE开始,5.X系列从5.1-RELEASE开始)通过内核配置参数PAE

    提供这种容量扩展支持。由于年存储体系 结构的局限性,多于和少于4g没多少差别;

    超过4g的那部分内存只是添加到可用内存池里。

    要加入PAE支持,只要在内核配置文件中加入如下一行即可:

    options PAE

    注意: FreeBSD 中的PAE支持只对Intel IA-32 处理器有效。另外,FreeBSD中的PAE

    支持还没有经过广泛 的测试, 应该和其它stable版的特性一样看做是beta级别的。

    FreeBSD中的PAE支持有以下一些局限:

    * 进程没办法访问超过4g的内存。

    * 由于构建模块和内核的框架(framework)的不同,KLD不能在使用了PAE的内核中使用。

    * 不使用bus_dma接口设备驱动,在使用了PAE支持的内核上,可能引起data corruption,

    并且不被推荐 使用此类驱动。因此,在支持PAE的5。x中,内核将拒绝所有对PAE而言

    无法识别的驱动。

    * 有些系统参数能依据总的可用内存调节系统内存资源的使用。 这些微调不需要依据PAE

    系统的内存大 小来分配。举一个kern.maxvnodes sysctl的例子,它控制了内核最大允许的

    vnodes数。 调整它以及其它类似 参数需要慎重考虑,以设置为一个合理的数值。

    * 也许应该增大内核虚拟地址空间或者说是减少所有对内核资源的严重消耗,以避免KVM不

    够用。内核参 数KVA_PAGES 能用来增加KVA空间的大小.

    对于所关心的性能及稳定性的问题,可以查看tuning的man手册。pae的man手册有FreeBSD的

    PAE支持最新信息 。

    ----------------------------------------------------------------------

    9.5 Making Device Nodes

    注意:5。0或其后续版本的用户应该略过这一节。因为它们使用devfs来自动的分派设备节点。

    几乎内核中的每个设备在/dev 目录下都有对应的节点。这些节点看上去是些普通文件,

    但事实上是程序在使用对应的设备时,与内核联系的接入点。当你一开始安装操作系统时,

    脚本/dev/MAKEDEV就已经执行,并创建了常见的支持的设备节点。然而,它并没有建立

    所有设备,所以当你加入对新设备的支持时,注意确信对应的节点在这个目录下。如果没有,

    就加入它们。这儿是一个简单的例子:

    假设在内核中加入IDE CD-ROM 的支持。可以这样加入:

    device acd0

    这意味着你该在/dev 目录下找一些以acd0 为文件名的开头的文件,通常是后面跟一个字母,

    象c或是以r开头(表示这是一个raw 设备).那些文件不存在,则必须到/dev目录执行以下命令:

    # sh MAKEDEV acd0

    当这些脚本完成后,在/dev 目录下有acd0c 和racd0c 等几个入口文件,表示程序已经正确执行。

    以下是加入声卡节点的例子:

    # sh MAKEDEV snd0

    注意:当创建完诸如声卡这样的设备节点时,如果其它人有权访问你的机器,可能有

    必要在/etc/fbtab 文件中添加这些节点来保护系统安全。具体实施可以参考fstab的手册页。

    依上述的方法,建立所有不在GENERIC 里的硬件设备节点。

    注意: 所有的SCSI 控制器都使用一样的设备节点,所以你无须重新建立节点。另外,

    网卡与SLIP/PPP 虚拟设备并没有任何设备节点,所以你不必担心节点问题。

    http://hi.baidu.com/ganlei333/blog/item/198bc4396dac0f2b97ddd8f5.html

    用以支持多种无线网卡。

    # Pseudo devices

    device loop       # Network loopback

      这是 TCP/IP 的通用回环设备。 如果您 telnet 或 FTP 到 localhost (也就是 127.0.0.1) 则将通过这个设备回到本机。 这个设备是 必需的。

    device random        # Entropy device

      Cryptographically secure random number generator.

    device ether       # Ethernet support

      ether 只有在使用以太网卡时才需要。它包含了通用的以太网协议代码。

    device sl          # Kernel SLIP

      sl 用以提供 SLIP 支持。 目前它几乎已经完全被 PPP 取代了,因为后者更容易配置, 而且更适合调制解调器之间的连接, 并提供了更强大的功能。

    device ppp           # Kernel PPP

      这一选项用以提供内核级的 PPP 支持, 用于拨号连接。 也有以用户模式运行的 PPP 实现,使用 tun 并提供包括按需拨号在内的更为灵活的功能。

    device tun           # Packet tunnel.

      它会被用户模式的 PPP 软件用到。 参考本书的 PPP 以了解更多的细节。

    device pty           # Pseudo-ttys (telnet etc)

      这是一个 “pseudo-terminal” 或模拟登入端口。 它用来接收连入的 telnet 以及 rlogin 会话、 xterm, 以及一些其它程序如 Emacs 等。

    device md          # Memory “disks”

      内存盘伪设备。

    device gif           # IPv6 and IPv4 tunneling

      它实现了在 IPv4 上的 IPv6 隧道、 IPv6 上的 IPv4 隧道、 IPv4 上的 IPv4 隧道、以及IPv6 上的 IPv6隧道。 gif 设备是 “自动克隆” 的,它会根据需要自动创建设备节点。

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

      这个伪设备能捕捉发给它的数据包,并把它们转发给 IPv4/IPv6 翻译服务程序。

    # The `bpf' device enables the Berkeley Packet Filter.

    # Be aware of the administrative consequences of enabling this!

    # Note that 'bpf' is required for DHCP.

    device bpf           # Berkeley packet filter

      这是 Berkeley 包过滤器。这个伪设备允许网络接口被置于混杂模式, 从而,截获广播网 (例如,以太网) 上的每一个数据包。 截获的数据报可以保存到磁盘上,也可以使用 tcpdump(1) 程序来分析。

    注意: bpf(4) 设备也被用于 dhclient(8) 来获取默认路由器(网关)的 IP 地址。如果使用DHCP,就不要注释掉这行。

    # USB support

    device       uhci       # UHCI PCI->USB interface

    device       ohci       # OHCI PCI->USB interface

    device       ehci       # EHCI PCI->USB interface (USB 2.0)

    device       usb           # USB Bus (required)

    #device       udbp       # USB Double Bulk Pipe devices

    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

    device       ural       # Ralink Technology RT2500USB wireless NICs

    device       urio       # Diamond Rio 500 MP3 player

    device       uscanner    # Scanners

    # USB Ethernet, requires mii

    device       aue           # ADMtek USB Ethernet

    device       axe           # ASIX Electronics USB Ethernet

    device       cdce       # Generic USB over Ethernet

    device       cue           # CATC USB Ethernet

    device       kue           # Kawasaki LSI USB Ethernet

    device       rue           # RealTek RTL8150 USB Ethernet

      支持各类 USB 设备。

    # FireWire support

    device       firewire    # FireWire bus code

    device       sbp           # SCSI over FireWire (Requires scbus and da)

    device       fwe           # Ethernet over FireWire (non-standard!)

      支持各类火线设备。

      要了解 FreeBSD 所支持的设备的其他情况, 请参考 /usr/src/sys/i386/conf/NOTES。

    8.5.1 大内存支持(PAE)

      大内存配置的机器需要超过4GB的虚拟地址。 因为4GB的限制,Intel在Pentium®及后续的CPUs上增加了36位物理地址的支持。

      物理地址扩展 (PAE) 是 Intel® Pentium Pro和后续的 CPU 提供的一种允许将内存地址扩展到 64GB 的功能, FreeBSD 的所有最新版本均支持此功能,并通过 PAE 选项来启用这个能力。 因为Intel架构的限制,高于或低于 4GB 都没有什么区别, 超过 4GB 的内存分配只是简单地添加到可用内存池中。

      为了让内核支持PAE,只要增加下面这一行到配置文件:

    options          PAE

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

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

    *

       进程不能接触大于4GB的VM空间。

    *

       KLD 模块不能加载到一个打开了PAE支持的内核里面,这是因为内核模块和内核的建立框架不一样。

    *

       没有使用 bus_dma(9) 接口的设备驱动程序在打开了 PAE 支持的内核中会导致数据损坏。 因为这个原因, PAE 内核配置文件会把所有在打开了 PAE 的内核上不能工作的驱动程序排除在外。

    *

       一些系统打开了探测系统内存资源使用能力的功能,因为打开了 PAE支持,这些功能可能会被覆盖掉。 其中一个例子就是内核参数kern.maxvnodes,它是控制内核能使用的最大vnodes数目的,建议重新调整它及其他类似参数到合适的值。

    *

       为了避免KVA的消耗,很有必要增加系统的内核虚拟地址,或者减少很耗系统资源的内核选项的总量(看上面)。KVA_PAGES选项可以用来增加KVA空间。

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

  • 相关阅读:
    iOS开发UI篇—Quartz2D使用(截屏)
    iOS开发UI篇—Quartz2D使用(信纸条纹)
    iOS开发UI篇—Quartz2D使用(绘图路径)
    iOS开发UI篇—Quartz2D简单使用(三)
    戴文的Linux内核专题:04安全
    戴文的Linux内核专题:03驱动程序
    戴文的Linux内核专题:02源代码
    戴文的Linux内核专题:01介绍
    nginx+php+扩展件安装实践版
    git常用命令
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/9173252.html
Copyright © 2020-2023  润新知