linux 配置选项的帮助信息_linux 内核配置选项 - CSDN
  • 下面以最新的Linux 2.6.20内核为例,介绍比较常用的一些Linux内核配置选项,其他选项读者可以参考系统提供的帮助信息。 需要说明的是,在内核配置中,某项选择Y表示把该项选择进内核,选择M则表示把该项编译成...

    转载地址http://book.csdn.net/bookfiles/972/10097230254.shtml


    2.5  Linux内核配置选项

    下面以最新的Linux 2.6.20内核为例,介绍比较常用的一些Linux内核配置选项,其他选项读者可以参考系统提供的帮助信息。

    需要说明的是,在内核配置中,某项选择Y表示把该项选择进内核,选择M则表示把该项编译成模块,选择N则表示 不选择进内核。在make menuconfig 下,*表示YM表示M,空白表示N。在make xconfig下,表示Y·表示M,空白表示N。如果某选项在配置菜单中是可选择的,这并不意味着目标系统就支持该功能,当然大部分供选择的选项是目 标系统文持的;同样,配置菜单中没有的选项并不一定就表示目标系统不支持该功能,原因可能是该功能还未在目标系统上测试过,或者是维护人员未将该功能选项 加入到各级系统配置文件的config.in中,具体可以查看内核的英文说明。

    2.5.1  General setup

    General setup选项为常规安装选项,包括版本信息、虚拟内存、进程间通信、系统调用、审计支持等基本内核配置选项。下面介绍常规安装选项下主要子选项的配置方法。

    1Local version - append to kernel release

    在内核后面加上自定义的版本字符串。这些字符在使用uname-a命令时会显示出来。要求字符最多不能超过64位。如果不清楚,则选择N

    2Automatically append version information to the version stringLOCALVERSION_ AUTO

    自动生成版本信息。这个选项会自动探测内核并且生成相应的版本。在编译时需要有perlgit仓库的支持。在一般情况下,建议选择Y

    3Support for paging of anonymous memoryswap

    使用交换分区或者交换文件来作为虚拟内存,也就是让计算机好像拥有比实际内存更多的内存空间用来执行很大的程序。Linux中的虚拟内存即SWAP分区,除非不需要SWAP分区,否则这里选择Y

    4System V IPCInter Process CommunicationIPC

    System V进程间通信(IPC)支持,许多程序需要这个功能,因此选择Y。中间过程连接是一组功能和系统调用,使得进程能够同步和交换信息。可以用info ipc命令来了解IPC的具体用法。

    其中,IPC Namespaces IPC_NS)子选项表示IPC命名空间,命名空间的作用是区别同名的设备。这个选项也是为不同的服务器提供IPC的多命名,达到一个IPC提供多对象支持的目的。如果不清楚,则选择N

    5POSIX Message Queues

    POSIX(可移植操作系统接口)消息队列是POSIX IPC中的一部分,在通信队列中有较高的优先权来保持通信畅通。如果需要编译和运行在Solaris操作系统上写的 POSIX信息队列程序,则选择Y。同时还需要 mqueue 库来支持这些特性。它是作为一个文件系统存在(mqueue),可以设置它。为保证以后的不同程序的协同稳定。如果不清楚,则选择N

    6BSD Process Accounting

    将进程的统计信息写入文件的用户级系统调用,信息通常包括建立时间、所有者、命令名称、内存使用、控制终端 等。如果选择Y,则用户级别的程序就可以通过特殊的系统调用方式来通知内核把进程统计信息记录到一个文件中,当这个进程存在的时候,信息就会被内核记录进 文件,这对用户级程序非常有用,所以通常选择Y

    其中,BSD Process Accounting version 3 file forma子选项表示使用新的第三版文件格式,通常选择Y。统计信息将会以新的格式(V3)写入,这格式包含进程ID和父进程。注意这个格式不兼容老版本 V0/V1/V2)的文件格式,所以需要升级相关工具来使用它。

    7Export task/process statistics through netlinkEXPERIMENTAL

    这是一个处于实验阶段的功能,表示通过netlink接口向用户空间导出任务、进程等统计信息,与BSD Process Accounting的不同之处在于这些数据在进程运行的时候就可以通过相关命令访问。如果不清楚,则选择N

    8UTS Namespaces 

    UTS(通用终端系统)命名空间支持。它允许容器,比如Vservers利用UTS命名空间来为不同的服务器提供不同的UTS。如果不清楚,则选择N

    9Auditing support

    审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计。允许审计 的下层能够被其他内核子系统使用,比如SELinux,它需要这个来进行登录时的声音和视频输出。没有CONFIG_AUDITSYSCALL时(即下一 个选项)无法进行系统调用。

    其中,Enable system-call auditing support (AUDITSYSCALL)子选项表示支持对系统调用的审计,允许系统独立地或者通过其他内核的子系统,调用审计支持,比如SELinux。要使用这种 审计的文件系统来查看特性,请确保 INOTIFY 已经被设置。这两个选项,要选择Y就都选择,以便调用其他内核。

    10Kernel.config support

    把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本来提取这些信息。

    这个选项允许.config文件(即编译Linux时的配置文件)编译进内核中。可以通过内核镜像文件kernel image file,用命令script scripts/extract-ikconfig来提取这些配置信息,作为当前内核重编译或者另一个内核编译的参考。如果内核在运行中,可以通过/proc/config.gz文件来读取。

    其中Enable access to .config through/proc/config.gz子选项表示可以通过/proc/config.gz 访问当前内核的.config。这两个选项,要选择Y就都选择,以便调用其他内核。

    11Cpuset support

    CPU支持。这个选项可以建立和管理CPU集群,它可以动态地将系统分割在各个CPU和内存节点中,在各个 节点是独立运行的,这对大型的系统尤其有效。一般只有在含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要它。如果不清 楚,则选择N

    12Kernel->user space relay supportformerly relayfs

    内核系统区和用户区进行传递通信的支持。在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口。

    这个选项在特定的文件系统中提供数据传递接口支持,它可以提供从内核空间到用户空间的大批量的数据传递工具和设施。如果不清楚,则选择N

    13Initramfs source file(s) 

    initrd已经被initramfs取代,选N即可。

    14Optimize for sizeLook out for broken compilers!

    这个选项将在GCC命令后用“-Os”代替“-O2”参数,编译时优化内核尺寸,以在编译时优化内核尺寸。

    警告:某些GCC版本会产生错误的二进制代码。如果有错,请升级GCC

    这是优化内核大小的功能,一般没必要选。因为一个编译好的内核只有710MB,如果空间足够就不要冒出问题的风险来优化内核大小。

    15Configure standard kernel featuresfor small systems

    配置标准的内核特性(为小型系统)。这个选项可以让内核的基本选项和设置无效或者扭曲。这是用于特定环境中的,它允许非标准内核。它是为了编译某些特殊用途的内核使用的,例如引导盘系统。通常选这一选项,也不必关心其子选项。

    2.5.2  Loadable module support

    Loadable module support即引导模块支持,该选项包括加载模块、卸载模块、模块校验、自动加载模块等引导模块配置相关子选项。本节主要介绍引导模块支持子选项的配置方法。

    1Enable loadable module support 

    打开可加载模块支持,如果打开它则必须通过make modules_install把内核模块安装在/lib/modules/中。模块是一小段代码,编译后可在系统内核运行时动态地加入内核,从而为内核 增加一些特性或是对某种硬件进行支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用modprobe命令来加载它到内 核中去(在不需要时还可以移除它)。一些特性是否编译为模块的原则有不常使用的,或是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动 时就要用到的驱动,比如说文件系统,系统总线的支持就不要编为模块,否则无法启动系统。在启动时不用到的功能编成模块是最有效的方式。可以查看MAN手册 来了解modprobelsmodmodinfoinsmodrmmod

    如果选择了这项,则需要运行make modules_install命令来把模块添加到/lib/modules/目录下,以便 modprobe 可以找到它们。如果不清楚,则选择Y

    2Module unloading 

    允许卸载已经加载的模块。如果选择N,将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。如果不清楚,则选择Y

    其中,Forced module unloading子选项允许强制卸载正在使用中的模块,即使内核认为这不安全,内核也将会立即移除模块,而不管是否有人在使用它(用rmmod -f命令)。如果不清楚,则选择N

    3Module versioning supportMODVERSIONS

    允许使用其他内核版本的模块。选这项会添加一些版本信息,来给编译的模块提供独立的特性,以使不同的内核在使用同一模块时区别于它原有的模块。如果不清楚,则选择N

    4Source checksum for all modules 

    为所有的模块校验源码,如果不是自己编写内核模块就不需要它。这个功能是为了防止在编译模块时不小心更改了内核模块的源代码但忘记更改版本号而造成版本冲突。如果不清楚,则选择N

    5Automatic kernel module loading 

    允许内核通过运行modprobe自动加载模块,比如可以自动解决模块的依赖关系。在一般情况下,如果我们的 内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe命令来加载它,内核才能使用。如果选择了这个选项,在内核需要一些 模块时它可以自动调用modprobe命令来加载需要的模块。如果不清楚,则选择Y

    2.5.3  Processor type and features

    Processor type and features即处理器类型及特性,该模块包括处理器系列、内核抢占模式、抢占式大内核锁、内存模式、使用寄存器参数等处理器配置相关信息。本节介绍其中与嵌入式开发有关的主要子选项的配置方法。

    1Symmetric multi-processing supportSMP

    对称多处理器支持。将支持多个CPU的系统,此时Enhanced Real Time Clock Support选项必须开启,Advanced Power Management选项必须选择N。如果系统只有一个CPU,则选择N。反之,选择Y。如果选择N,内核将会在单个或者多个CPU的机器上运行,但是只 会使用一个CPU。如果选择Y,内核可以在很多(但不是所有)单CPU的机器上运行,在这样的机器上选择N,会使内核运行得更快。如果不清楚,则选择N

    2Processor family

    处理器系列。针对嵌入式系统所使用的处理器类型,选取相应的选项。

    3Preemptible kernel

    内核抢占模式。一些优先级很高的程序可以先让一些低优先级的程序执行,即使这些程序是在内核态下执行。从而减 少内核潜伏期,提高系统的响应。当然在一些特殊的点的内核是不可抢占的,比如内核中的调度程序自身在执行时就是不可被抢占的。这个特性可以提高桌面系统、 实时系统的性能。有下面3个选项。

    n        No Forced PreemptionServer):非强迫式抢占。这是传统的Linux抢占式模型,针对于高吞吐量设计。它同样在很多时候会提供很好的响应,但是也 可能会有较长的延迟。如果是要建立服务器或者用于科学运算,或者要最大化内核的运算能力而不理会调度上的延迟,则选这项。

    n        Voluntary Kernel PreemptionDesktop):自动式内核抢占。这个选项通过向内核添加更多的清晰抢占点来减少内核延迟。这些新的抢占点以降低吞吐量为代 价,来降低内核的最大延迟,提供更快的应用程序响应。这通过允许低优先级的进程自动抢占来响应事件,即使进程在内核中进行系统调用。这使得应用程序运行得 流畅,即使系统已经是高负荷运转。嵌入式系统里面通常选择N

    n        Preemptible KernelLow-Latency Desktop):可抢占式内核(低延迟桌面)。这个选项通过使所有内核代码(非致命部分)编译为可抢占来降低内核延迟。通过允许低优先级进程进行强 制抢占来响应事件,即使这些进程正在进行系统调用或者未达到正常的抢占点。这使得应用程序运行得更加流畅,即使系统已经是高负荷运转。代价是吞吐 量降低,内核运行开销增大。嵌入式系统编译内核通常选择Y,这样只有很少的延迟。

    其中,Preemptible Kernel子选项提供了最快的响应,适合对实时性要求较高的嵌入式系统。

    4Preempt The Big Kernel Lock 

    抢占式大内核锁。应用于实时要求高的场合,适合嵌入式系统。这个选项通过让大内核锁变成可抢占来降低延迟。构建实时性要求较高的嵌入式系统,通常选择N

    5Machine Check Exception

    机器例外检查。让CPU检测到系统故障时通知内核,以便内核采取相应的措施(如过热关机等)。内核根据问题的 严重程度来决定下一步的行为,比如在命令行上打印警告信息或者关机。处理器必须是 Pentium或者更新版本才能支持这个功能。用cat /proc/cpuinfo来检测 CPU是否有mce 标志。

    所以使用ARM处理器的嵌入式系统在这里选择N

    6Memory model

    内存模式。一般选Flat Memory(平坦内存模式),Sparse Memory(稀疏内存模式)选项涉及内存热插拔。

    7Use register argumentsREGPARM

    使用寄存器参数。使用-mregparm=3参数编译内核,将前3个参数以寄存器方式进行参数调用,这使 GCC使用更高效的应用程序二进制接口(ABI)来跳过编译时的前3个调用寄存器参数,可以生成更紧凑和高效的代码。如果选择N,这个选项默认的ABI 会使用。如果不清楚,则选择Y

    8kexec system callKEXEC

    kexec系统调用。使用此选项可以不必重启而切换到另一个内核。

    kexec是一个用来选择N当前内核,然后开启另一个内核的系统调用。它和重启很像,但是它不访问系统固件。 由于和重启很像,可以启动任何内核,不仅仅是Linuxkexec这个名字是从exec系统调用来的,它只是一个进程,可以确定硬件是否正确,所以这段 代码可能不会正确地进行初始化工作。为慎重起见,在一般情况下,建议选择N

    2.5.4  Networking support 

    Networking support即网络支持,该选项配置的是网络协议,内容庞杂,这里就不一一介绍了。只要对网络协议有所了解,应该可以看懂相关帮助文件。如果要开发嵌入 式系统能像PC一样使用各类网络协议,则可以使用默认选项,其中,最常用的TCP/IP networking选项当然要选择。

    2.5.5  Device Drivers 

    Device Drivers即设备驱动,该选项包括内核所支持的各类硬件设备的配置信息。对于嵌入式系统来说,设备驱动配置选项是最重要的步骤之一,下面详细介绍它们。

    1Generic Driver Options

    驱动程序通用选项。包括以下几个子选项。

    n        Select only drivers that don't need compile-time external firmware:只显示不需要内核对外部设备的固件做map支持的驱动程序,除非有某些怪异硬件,否则要选择Y

    n        Prevent firmware from being built:不编译固件。固件一般是随硬件的驱动程序提供的,仅在更新固件的时候才需要重新编译。建议选择Y

    n        Userspace firmware loading support:提供某些内核之外的模块需要的用户空间固件加载支持,在内核树之外编译的模块可能需要它。如果不清楚,则选择N

    n        Driver Core verbose debug messages:让驱动程序内核在系统日志中产生冗长的调试信息,仅供调试使用。如果不清楚,则选择N

    2Connector - unified userspace <-> kernelspace linker 

    统一的用户空间和内核空间连接器,工作在netlink socket协议的顶层。如果不确定,则选择N

    其中,Report process events to userspace子选项表示向用户空间报告进程事件。

    3Memory Technology DevicesMTD

    特殊的存储技术装置,如常用于数码相机或嵌入式系统的闪存卡。如果不清楚,则选择N

    4Parallel port support

    并口支持(传统的打印机接口)。如果不清楚,则选择N

    5Plug and Play support

    支持即插即用,若未选,则应当在BIOS中的“PnP OS”选择N。这里的选项与PCI设备无关。包括以下几个子选项。

    n        PnP Debug Messages:该选项仅供调试使用。

    n        ISA Plug and Play supportISA设备支持即插即用。如果不清楚,则选择N

    n        Plug and Play BIOS supportLinux使用Plug and Play BIOS规范v1.0A1994年)中定义的PnPBIOS自动检测主板上的资源和设备,但是其中的某些特性目前尚未实现,比如,事件通知/扩展坞 Docking Station)信息/ISAPnP服务。如果希望由内核检测主板上的设备并为其分配资源(此时BIOS中的“PnP OS”必须开启)可以选择Y。此外,PnPBIOS还有助于防止主板上的设备与其他总线设备冲突。不过需要注意的是ACPI将会逐渐取代 PnPBIOS(虽然目前两者可以共存),所以如果系统不使用ISA设备并且支持ACPI,建议不要选择Y。将BIOS中的“PnP OS”选择N

    n        Plug and Play BIOS/proc interface:该选项仅供调试使用。如果不清楚,则选择N

    n        Plug and Play ACPI support:让Linux使用PnPACPI自动检测主板上内建的设备并为其分配资源(即使这些设备已被BIOS禁用),它有助于避免设备之间的资源(如中断)冲突。如果不清楚,则选择N

    6Block devices

    块设备。包括以下几个子选项。

    n        ormal floppy disk support:通用软驱支持。如果嵌入式系统采用这种设备,则选择Y

    n        XT hard disk support:一种老式产品。如果嵌入式系统采用这种设备,则选择Y

    n        Parallel port IDE device support:通过并口与计算机连接的IDE设备。如果嵌入式系统采用这种设备,则选择Y

    n        Compaq SMART2 support:基于Compaq SMART2控制器的磁盘阵列卡。如果嵌入式系统采用这种设备,则选择Y

    n        Compaq Smart Array 5xxx support:基于Compaq SMART控制器的磁盘阵列卡。如果嵌入式系统采用这种设备,则选择Y

    n        Mylex DAC960/DAC1100 PCI RAID Controller support:一种老式产品。如果嵌入式系统采用这种设备,则选择Y

    n        Micro Memory MM5415 Battery Backed RAM support:一种使用电池做后备电源的内存。如果嵌入式系统采用这种设备,则选择Y

    n        Loopback device supportLoopback是指拿文件来模拟块设备,比如可以将一个iso9660镜像文件挂成一个文件系统。如果嵌入式系统采用这种设备,则选择Y

    n        Cryptoloop Support:使用系统提供的加密APILoopback设备加密,但不能用于日志型文件系统。如果嵌入式系统采用这种设备,则选择Y

    n        Network block device support:让系统成为网络块设备的客户端。如果不清楚,则选择N

    n        Promise SATA SX8 support:基于Promise公司的SATA SX8控制器的RAID卡。如果嵌入式系统采用这种设备,则选择Y

    n        Low Performance USB Block driver:该选项并非表示支持优盘。一般情况下,建议选择N

    n        RAM disk support:内存中的虚拟磁盘,大小固定(由下面的选项决定,也可给内核传递ramdisk_size=参数来决定),它的功能和代码都比shmem简单许多。如果嵌入式系统采用RAM disk,则选择Y

    n        Default number of RAM disks:默认RAM disk的数量。一般不必修改。

    n        Default RAM disk sizekbytes):默认RAM disk容量。一般不必修改。

    n        Default RAM disk block sizebytes):每一个RAM disk的默认块大小,设为PAGE_SIZE的值时效率最高。

    n        Initial RAM filesystem and RAM diskinitramfs/initrdsupport:如果启动系统所必须的模块都在内核里,则选择Y

    n        Packet writing on CD/DVD mediaCD/DVD刻录支持。如果嵌入式系统采用这种设备,则选择Y

    n        Free buffers for data gathering:用于收集写入数据的缓冲区个数(每个占用64KB内存),在内存运行的情况下,缓冲区越多性能越好。

    n        Enable write caching:为CDR/W设备启用写入缓冲。由于安全性问题,在一般情况下,建议选择Y

    n        ATA over Ethernet support:以太网ATA设备支持。如果嵌入式系统采用这种设备,则选择Y

    7Misc devices

    杂项设备。如果不清楚,则选择N

    8ATA/ATAPI/MFM/RLL support

    SCSI设备通常是IDE硬盘和ATAPI光驱。纯SCSI系统且不使用这些接口可以选择N

    9SCSI device support

    SCSI设备。如果不清楚,则选择N

    10Serial ATA and Parallel ATA drivers

    SATAPATA设备。如果不清楚,则选择N

    11Old CD-ROM driversnot SCSInot IDE

    老旧的CD-ROM驱动,这种CD-ROM既不使用SCSI接口,也不使用IDE接口。如果不清楚,则选择N

    12Multi-device supportRAID and LVM

    多设备支持(RAIDLVM)。RAIDLVM的功能是使多个物理设备组建成一个单独的逻辑磁盘。如果不清楚,则选择N

    13Fusion MPT device support

    Fusion MPT设备支持。如果不清楚,则选择N

    14IEEE 1394FireWiresupport

    IEEE 1394(火线)。如果不清楚,则选择N

    15I2O device support

    I2O(智能I/O)设备使用专门的I/O处理器负责中断处理、缓冲存取、数据传输等烦琐任务以减少CPU占用,一般PC的主板上没有。如果不清楚,则选择N

    16Network device support

    网络设备。包含以下子选项。

    n        Network device support:网络设备支持,如果要开发的嵌入式系统需要上网,则选择Y

    n        Intermediate Functional Block support:这是一个中间层驱动,可以用来灵活的配置资源共享。如果不清楚,则选择N

    n        Dummy net driver support:哑接口网络,使用SLIPPPP传输协议(如ADSL用户)的需要它。如果不清楚,则选择N

    n        Bonding driver support:将多个以太网通道绑定为一个,也就是两块网卡具有相同的IP地址并且聚合成一个逻辑链路工作,可以用来实现负载均衡或硬件冗余。如果不清楚,则选择N

    n        EQLserial line load balancingsupport:串行线路的负载均衡。如果有两个MODEM和两条电话线而且用SLIPPPP协议,该选项可以让你同时使用这两个 MODEM以达到双倍速度(在网络的另一端也要有同样的设备)。如果不清楚,则选择N

    n        Universal TUN/TAP device driver supportTUN/TAP可以为用户空间提供包的接收和发送服务,比如可以用来虚拟一张网卡或点对点通道。如果不清楚,则选择N

    n        General Instruments Surfboard 1000Surfboard 1000插卡式Cable MedemISA接口),一种老式产品。如果不清楚,则选择N

    n        ARCnet devices:一般人没有ARCnet类型的网卡。如果不清楚,则选择N

    n        PHY device support:数据链路层芯片简称为MAC控制器,物理层芯片简称为PHY,通常的网卡把MACPHY的功能做到了一颗芯片中,但也有一些仅含PHY软网卡。如果不清楚,则选择N

    n        Ethernet10/100Mbit):目前最广泛的10/100MB网卡。如果不清楚,则选择N

    n        Ethernet1000 Mbit):目前已成装机主流的1000MB网卡。如果不清楚,则选择N

    n        Ethernet10000 Mbit):高速(万兆)网卡。如果不清楚,则选择N

    n        Token Ring devices:令牌环网设备。如果不清楚,则选择N

    n        Wireless LANnon-hamradio):无线LAN。如果不清楚,则选择N

    n        PCMCIA network device supportPCMCIACardBus网卡。如果不清楚,则选择N

    n        WAN interfacesWAN接口。如果不清楚,则选择N

    n        ATM drivers:异步传输模式。如果不清楚,则选择N

    n        FDDI driver support:光纤分布式数据接口。如果不清楚,则选择N

    n        HIPPI driver supportHIPPI(高性能并行接口)是一个在短距离内高速传送大量数据的点对点协议。如果不清楚,则选择N

    n        PLIPparallel portsupport:将并口映射成网络设备,这样两台机器即使没有网卡也可以使用并口通过并行线传输IP数据包。如果不清楚,则选择N

    n        PPPpoint-to-point protocolsupport:点对点协议,PPP已经基本取代SLIP了,若使用ADSL则要选择Y。如果不清楚,则选择N

    n        PPP multilink support:多重链路协议(RFC1990)允许将多个线路(物理的或逻辑的)组合为一个PPP连接以充分利用带宽,这不但需要pppd的支持,还需要ISP的支持。如果不清楚,则选择N

    n        PPP filtering:允许对通过PPP接口的包进行过滤。如果不清楚,则选择N

    n        PPP support for async serial ports:通过标准异步串口(COM1COM2)使用PPP,比如使用老式的外置MODEM(非同步MODEMISDN MODEM)上网。如果不清楚,则选择N

    n        PPP support for sync tty ports:通过同步tty设备(比如SyncLink适配器)使用PPP,常用于高速租用线路(比如T1/E1)。如果不清楚,则选择N

    n        PPP Deflate compression:为PPP提供Deflate(等价于gzip压缩算法)压缩算法支持,需要通信双方的支持才有效。如果不清楚,则选择N

    n        PPP BSD-Compress compression:为PPP提供BSD(等价于LZW压缩算法,没有gzip高效)压缩算法支持,需要通信双方的支持才有效。如果不清楚,则选择N

    n        PPP MPPE compressionencryption):为PPP提供MPPE加密协议支持,它被用于微软的P2P隧道协议中。如果不清楚,则选择N

    n        PPP over Ethernet:这就是ADSL用户最常见的PPPoE,也就是在以太网上运行的PPP协议。如果不清楚,则选择N

    n        PPP over ATM:在ATM上运行的PPP。如果不清楚,则选择N

    n        SLIPserial linesupport:一个在串行线上(例如电话线)传输IP数据报的TCP/IP协议。小猫一族的通信协议,与宽带用户无关。如果不清楚,则选择N

    n        CSLIP compressed headersCSLIP协议比SLIP快,它将TCP/IP头(而非数据)进行压缩传送,需要通信双方的支持才有效。如果不清楚,则选择N

    n        Keepalive and linefill:让SLIP驱动支持RELCOM linefillkeepalive监视,这在信号质量比较差的模拟线路上是个好主意。如果不清楚,则选择N

    n        Six bit SLIP encapsulation:这种线路非常罕见,在一般情况下,建议选择N

    n        Fibre Channel driver support:光纤通道。如果不清楚,则选择N

    n        Traffic Shaper:流量整形,已废弃。在一般情况下,建议选择N

    n        Network console logging support:通过网络记录内核信息。如果不清楚,则选择N

    n        Netpoll support for trapping incoming packets:在一般情况下,建议选择N

    n        Netpoll traffic trapping:在一般情况下,建议选择N

    17ISDN subsystem

    综合业务数字网(Integrated Service Digital Network)。如果不清楚,则选择N

    18Telephony Support

    VoIP支持。如果不清楚,则选择N

    19Input device support

    输入设备。包括以下子选项。

    n        Generic input layerneeded for keyboardmouse):通用输入层,如果是使用键盘鼠标的,则选择Y。如果不清楚,则选择N

    n        Support for memoryless force-feedback devices:游戏玩家使用的力反馈设备。如果不清楚,则选择N

    n        Mouse interface:鼠标接口。如果不清楚,则选择N

    n        Provide legacy/dev/psaux device:仍然支持作为传统的/dev/psaux设备。如果不清楚,则选择N

    n        Horizontal screen resolution:数字化转换器或图形输入板的水平分辨率。如果不清楚,则选择N

    n        Vertical screen resolution:数字化转换器或图形输入板的垂直分辨率。如果不清楚,则选择N

    n        Joystick interface:游戏杆。如果不使用,则选择N

    n        Touchscreen interface:触摸屏。如果不使用,则选择N

    n        Event interface:能够利用/dev/input/eventX来存取输入设备的事件。如果不清楚,则选择N

    n        Event debugging:该选项仅供调试使用。如果不清楚,则选择N

    n        Keyboards:键盘驱动,一般选个AT键盘即可。如果不清楚,则选择N

    n        Mouse:鼠标驱动,一般选个PS/2鼠标即可。如果不清楚,则选择N

    n        Joysticks:游戏杆驱动。如果不使用,则选择N

    n        Touchscreens:触摸屏驱动。如果不使用,则选择N

    n        Miscellaneous devices:其他杂项驱动,一般选个PC喇叭即可。如果不清楚,则选择N

    n        Hardware I/O ports:硬件I/O端口。如果不清楚,则选择N

    n        Serial I/O support:使用PS/2键盘或鼠标,则选择Y。如果不使用,则选择N

    n        i8042 PC Keyboard controllerPS/2接口的键盘和鼠标。如果不使用,则选择N

    n        Serial port line discipline:串口键盘或鼠标。如果不使用,则选择N

    n        ct82c710 Aux port controller:一种德州仪器TravelMate笔记本上使用QuickPort接口的鼠标。如果不使用,则选择N

    n        Parallel port keyboard adapter:并口键盘或鼠标。如果不使用,则选择N

    n        PCI PS/2 keyboard and PS/2 mouse controller:接在移动式扩展坞(Docking station)上的键盘或鼠标。如果不使用,则选择N

    n        PS/2 driver library:为PS/2接口上的设备提供驱动(比如PS/2鼠标或标准AT键盘)。如果不使用,则选择N

    n        Raw access to serio ports:在一般情况下,建议选择N

    n        Gameport support:类似早年小霸王游戏机上的那种手柄。如果不使用,则选择N

    20Character devices

    字符设备。包含以下子选项。

    n        Virtual terminal:虚拟终端。嵌入式系统在一般情况下,建议选择N

    n        Support for console on virtual terminal:内核将一个虚拟终端用做系统控制台(将诸如模块错误、内核错误、启动信息之类的警告信息发送到这里,通常是第一个虚拟终端)。嵌入式系统在一般情况下,建议选择N

    n        Support for binding and unbinding console drivers:虚拟终端是通过控制台驱动程序与物理终端相结合的,但在某些系统上可以使用多个控制台驱动程序(如framebuffer控制台驱动程序),该选项使得可以选择其中之一。如果不清楚,则选择N

    n        Non-standard serial port support:非标准串口支持。这样的设备已废弃不用。在一般情况下,建议选择N

    n        Serial drivers:串口驱动。如果有老式的串口鼠标或小猫,则选择Y。否则选择N

    n        Unix98 PTY support:伪终端(PTY)可以模拟一个终端,它由slave(等价于一个物理终端)和master(被一个诸如xterms之类的进程用来读写 slave设备)两部分组成的软设备。如果使用telnetssh远程登录者,则选择Y。如果不清楚,则选择N

    n        LegacyBSDPTY support:使用过时的BSD风格的/dev/ptyxx作为master/dev/ttyxx作为slave。这个方案有一些安全问题,建议选择N

    n        Parallel printer support:并口打印机。如果不使用,则选择N

    n        Support for console on line printer:允许将内核信息输出到并口,这样就可以打印出来。如果不清楚,则选择N

    n        Support for user-space parallel port device drivers/dev/parport设备支持,比如deviceid之类的程序需要使用它。在一般情况下,建议选择N

    n        Texas Instruments parallel link cable support:德州仪器生产的一种使用并行电缆的图形计算器。如果不清楚,则选择N

    n        IPMI:可以利用IPMI远程监视服务器的物理特征(温度、电压、风扇、电源、机箱入侵),它是独立于CPUBIOSOS的,只要接通电源就可以实现对服务器的监控。如果不清楚,则选择N

    n        IPMI top-level message handlerIPMI消息处理器,要启用IPMI远程监视,则选择Y。如果不清楚,则选择N

    n        Generate a panic event to all BMCs on a panic:当发生紧急情况(panic)时,IPMI消息处理器将会向每一个已注册的底板管理控制器(BMC)接口生成一个描述该panicIPMI 事件,这些事件可以引发日志记录、报警、重启、关机等动作。如果不清楚,则选择N

    n        Generate OEM events containing the panic string:当发生紧急情况(panic)时,IPMI消息处理器将会产生OEM类型的事件。如果不清楚,则选择N

    n        Device interface for IPMI:为IPMI消息处理器提供一个IOCTL接口,以便用户空间的进程也可以使用IPMI。如果不清楚,则选择N

    n        IPMI System Interface handler:向系统提供接口(KCSSMIC),一般用了IPMI就需要选择Y。如果不清楚,则选择N

    n        IPMI WatchDog Timer:启用IPMI WatchDog定时器。如果不清楚,则选择N

    n        IPMI Poweroff:允许IPMI消息处理器选择N。如果不清楚,则选择N

    n        WatchDog Cards:能让系统在出现致命故障后自动重启,如果没有硬件WatchDog,建议使用Hangcheck timer而不是软件WatchDog。如果不清楚,则选择N

    n        Watchdog Timer Support:选择Y。下面的一个Driver之后,再创建一个/dev/ watchDog节点即可拥有一只WatchDog了。更多信息请参考内核帮助。如果不清楚,则选择N

    n        Disable watchDog shutdown on close:一旦WatchDog启动后就禁止将其停止。如果不清楚,则选择N

    n        Software watchDog:软件WatchDog,使用它不需要有任何硬件的支持,但是可靠性没有硬件WatchDog高。如果不清楚,则选择N

    n        Hardware Random Number Generator Core support:硬件随机数发生器内核支持。如果不清楚,则选择N

    n        Intel HW Random Number Generator supportIntel芯片组的硬件随机数发生器。如果不清楚,则选择N

    n        AMD HW Random Number Generator supportAMD芯片组的硬件随机数发生器。如果不清楚,则选择N

    n        AMD Geode HW Random Number Generator supportAMD Geode LX的硬件随机数发生器。如果不清楚,则选择N

    n        VIA HW Random Number Generator supportVIA芯片组的硬件随机数发生器。如果不清楚,则选择N

    n        /dev/nvram support:直接存取主板上CMOS的接口。可能发生安全性问题,建议选择N

    n        Enhanced Real Time Clock Support:启用该选项并创建/dev/RTC文件后就可以通过/proc/driver/RTC访问系统的硬件时钟(RTC),众多功能依赖于它(如SMPIRQ共享、定时器)。在一般情况下,建议选择Y

    n        Double Talk PC internal speech card support:由RC Systems公司制造的一种语音合成器。如果不清楚,则选择N

    n        Siemens R3964 line discipline:与使用西门子R3964协议的设备同步通信。除非有一些诸如PLC之类的特殊设备,否则在一般情况下,建议选择N

    n        Applicom intelligent fieldbus card supportApplicom international公司生产的用于现场总线连接卡。如果不清楚,则选择N

    n        Sony Vaio Programmable I/O Control Device supportSony VAIO笔记本上的设备。如果不清楚,则选择N

    n        Ftapethe floppy tape device driver:针对使用磁带的系统。如果不清楚,则选择N

    n        /dev/agpgartAGP Support):AGP总线支持,有AGP显卡的还必须从子项中选取符合嵌入式系统所使用显卡型号的驱动。如果不清楚,则选择N

    n        Direct Rendering ManagerDRI允许应用程序以高效安全的方式直接访问图形处理,主要用于硬件3D加速。建议桌面用户选择此方式,同时还必须从子项中选取符合嵌入式系统所使用显卡型号的驱动。如果不清楚,则选择N

    n        PCMCIA character devices:使用PCMCIA接口的字符设备。如果不清楚,则选择N

    n        ACP ModemMwavesupportIBM Thinkpad上的一种软猫,一种老式产品。如果不清楚,则选择N

    n        NatSemi SCx200 GPIO Support:松下的一种通用输入、输出(GPIO)芯片。嵌入式系统一般选择Y

    n        NatSemi PC8736x GPIO Support:松下的一种通用输入、输出(GPIO)芯片。嵌入式系统一般选择Y

    n        NatSemi Base GPIO Support:松下的一种通用输入、输出(GPIO)芯片。嵌入式系统一般选择Y

    n        AMD CS5535/CS5536 GPIO:常用于AMD Geode的一种通用输入、输出(GPIO)芯片。嵌入式系统一般选择Y

    n        RAW driver/dev/raw/rawN):一种老式设备,已废弃。在一般情况下,建议选择N

    n        HPETHigh Precision Event Timer:高精度事件定时器。如果不清楚,则选择N

    n        Allow mmap of HPET:允许对HPET寄存器进行映射。在一般情况下,建议选择Y

    n        Hangcheck timer:宕机检测定时器周期性地检查系统任务调度程序,以确定系统的运行状况,如果超过阈值,计算机将重新启动。它通常可以比WatchDog更好地解决可用性和可靠性问题。如果不清楚,则选择N

    n        TPM devices:基于硬件的可信赖平台模块。在一般情况下,建议选择N

    n        Telecom clock driver for MPBL0010 ATCA SBC:在一般情况下,建议选择N

    21I2C support

    I2CPhilips极力推动的微控制应用中使用的低速串行总线协议,可用于监控电压、风扇转速、温度等。SMBus(系统管理总线)是I2C的子集。除硬件传感器外,Video For Linux也需要该模块的支持。包含以下子选项。

    n        I2C device interfaceI2C设备接口,允许用户空间的程序通过/dev/i2c-*设备文件使用I2C总线。如果不清楚,则选择N

    n        I2C AlgorithmsI2C算法支持,可以全选择N。若有其他部分依赖其子项时,建议选择Y

    n        I2C Hardware Bus support:按实际硬件情况选对应的子项即可。

    n        Miscellaneous I2C Chip support:其他不常见的产品,按需求选择。如果不清楚,则选择N

    n        I2C Core debugging messages:仅供调试使用。如果不清楚,则选择N

    n        I2C Algorithm debugging messages:仅供调试使用。如果不清楚,则选择N

    n        I2C Bus debugging messages:仅供调试使用。如果不清楚,则选择N

    n        I2C Chip debugging messages:仅供调试使用。如果不清楚,则选择N

    22SPI support

    串行外围接口(SPI)常用于微控制器(MCU)与外围设备(传感器、EEpromFlash、编码器、模数转换器)之间的通信,比如MMCSD卡就通常需要使用SPI

    23Dallas's 1-wire bus

    一线总线。如果不清楚,则选择N

    24Hardware Monitoring support

    当前主板大多都有一个监控硬件健康的设备用于监视温度、电压、风扇转速等,请按照嵌入式系统所使用主板实际使用的芯片选择相应的子项。另外,该功能还需要I2C的支持。如果不清楚,则选择N

    25Multimedia devices

    多媒体设备。包括以下子选项。

    n        Video For Linux:如果是使用音频/视频设备或FM收音卡的则选择Y。此功能还需要I2C的支持。如果不清楚,则选择N

    n        Enable Video For Linux API 1:使用老旧的V4L第一版API。在一般情况下,建议选择N

    n        Enable Video For Linux API 1 compatible Layer:提供对第一版V4L的兼容。在一般情况下,建议选择N

    n        Video Capture Adapters:视频捕获卡。如果不清楚,则选择N

    n        Enable advanced debug functionality:该选项仅供调试使用。如果不清楚,则选择N

    n        Autoselect pertinent encoders/decoders and other helper chips:为视频卡自动选择所需的编码和解码模块。在一般情况下,建议选择Y

    n        Virtual Video Driver:虚拟视频卡,仅供测试视频程序和调试。如果不清楚,则选择N

    n        SAA5246ASAA5281 Teletext processor:该选项仅面向欧洲用户,中国用户一般选择N

    n        SAA5249 Teletext processor:该选项仅面向欧洲用户,中国用户一般选择N

    n        V4L USB devices:使用USB接口的视频卡,子选项请根据嵌入式系统实际使用的视频卡选择。

    n        Radio Adapters:音频卡,子选项请根据嵌入式系统实际使用的音频卡选择。

    n        Digital Video Broadcasting Devices:数字视频广播设备(DVB卡或机顶盒),子选项请根据嵌入式系统实际使用的硬件选择

    n        DABUSB driverUSB接口的数字音频广播设备接收器。如果不清楚,则选择N

    26Graphics support

    图形设备/显卡支持。包括以下子选项。

    n        Enable firmware EDID:允许访问Video BIOS中的扩展显示器识别数据(EDID)。如果不清楚,则选择N

    n        Support for frame buffer devices:帧缓冲设备是为了让应用程序使用统一的接口操作显示设备而对硬件进行的抽象。如果不清楚,则选择N

    n        Enable Video Mode Handling Helpers:使用GTFEDID来帮助处理显示模式,可以选择N。若有其他选项依赖于它时,则会自动选择Y

    n        Enable Tile Blitting Support:可以选择N。若有其他选项依赖于它时,会自动选择Y

    n        VGA 16color graphics support16VGA显卡。如果有这样一种老式设备,则选择Y

    n        VESA VGA graphics support:符合VESA 2.0标准的显卡的通用驱动,如果显卡芯片在下面能够找到就可以选择N

    n        Virtual Frame Buffer support:仅供调试使用。

    n        Console display driver support:控制台显示驱动。如果不清楚,则选择N

    n        VGA text console:文本控制台。如果不清楚,则选择N

    n        Enable Scrollback Buffer in System RAM:在内存中开辟额外的屏幕缓冲区,这将允许回滚屏幕。如果不清楚,则选择N

    n        Scrollback Buffer Sizein KB):在内存中开辟的额外屏幕缓冲区大小。如果不清楚,则选择N

    n        Video mode selection support:允许在内核启动时使用vga=选择文本模式,如果希望一行能够显示更多字符的话可以打开它。如果不清楚,则选择N

    n        MDA text consoledual-headed):如果有老式的单色显卡并且作为第二块显卡使用以实现双头显示,则选择Y。如果不清楚,则选择N

    n        Framebuffer Console support:基于Framebuffer的控制台驱动,服务器可以选择N

    n        Framebuffer Console Rotation:显示画面旋转,它可能大大降低显示速度,建议选择N

    n        Select compiled-in fonts:选择内建字体。如果不清楚,则选择N

    n        VGA 8x8 font:高分辨率下的小字体。如果不清楚,则选择N

    n        VGA 8x16 font:低分辨率下的大字体。如果不清楚,则选择N

    n        Logo configuration:启动时显示Linuxlogo(一幅企鹅图像),喜欢炫一下的则选择Y

    n        BacklightLCD device supportLCD显示器支持。如果不清楚,则选择N

    27Sound

    声卡。包括以下子选项。

    n        Advanced Linux Sound Architecture:使用声卡者选择Y

    n        Sequencer support:音序器支持(MIDI必需),除非确定不需要,否则请选择Y

    n        Sequencer dummy client:除非要同时连接到多个MIDI设备或应用程序,否则一般选择N

    n        OSS Mixer APIOSS混音器API仿真,许多程序目前仍然需要使用它。在一般情况下,建议选择Y

    n        OSS PCMdigital audioAPIOSS数字录音(PCMAPI模拟,许多程序目前仍然需要使用它。在一般情况下,建议选择Y

    n        OSS PCMdigital audioAPI-Include plugin system:在一般情况下,建议选择N

    n        OSS Sequencer APIOSS音序器支持,许多程序目前仍然需要使用它。在一般情况下,建议选择Y

    n        RTC Timer support:为ALSA启用RTC定时器支持。在一般情况下,建议选择Y

    n        Use RTC as default sequencer timer:将RTC当做默认的时序脉冲发生器。如果不清楚,则选择N

    n        Dynamic device file minor numbers:仅供拥有多个声卡的用户选择。如果不清楚,则选择N

    n        Support old ALSA API:支持已被废弃的老版本ALSA API。如果不清楚,则选择N

    n        Verbose procfs contents:仅供调试使用。

    n        Verbose printk:仅供调试使用。

    n        Debug:仅供调试使用。

    n        Generic devices:通用设备。如果不清楚,则选择N

    n        Dummy/dev/nullsoundcard:仅供调试使用。

    n        Virtual MIDI soundcard:虚拟MIDI驱动,允许将使用原始MIDI设备的应用程序连接到音序器客户端。如果不清楚,则选择N

    n        PCI devicesPCI接口的声卡,请按实际使用的声卡选择子项。

    n        USB devicesUSB接口的声卡,请按实际使用的声卡选择子项。

    n        PCMCIA devicesPCMCIA接口的声卡,请按实际使用的声卡选择子项。

    n        Open Sound System:在一般情况下,建议选择N

    28USB support

    USB支持。包括以下子选项。

    n        Support for Host-side USB:主机端(Host-sideUSB支持。通用串行总线(USB)是一个串行总线子系统规范,它比传统的串口速度更快并且特性更丰富(供电、热插 拔,最多可接127个设备等),有望在将来统一PC外设接口。USB“Host”(主机)被称为(也可以理解为是主板上的USB控制器),外部设 备被称为叶子,而内部的节点则称为HUB(集线器)。基本上只要想使用任何USB设备都必须选择此项。另外,还需要从下面选择Y。至少一个Host Controller DriverHCD),比如适用于USB 1.1UHCI HCD supportOHCI HCD support,适用于USB 2.0EHCI HCDUSB 2.0support。如果拿不准的话把他们全部选择Y,一般也不会出问题。如果系统有设备端的USB接口(也就是系统可以作为叶子使用),请到USB Gadget中进行选择。

    n        USB verbose debug messages:仅供调试使用。

    n        USB device filesystem:在/proc/bus/USB里列出当前连接的USB设备(mount-t USBfs none/proc/bus/USB),这样用户空间的程序就可以直接访问这些USB设备。如果要使用USB设备的话就必须选择Y

    n        Enforce USB bandwidth allocation:执行USB带宽分配限制,禁止打开占用USB总线带宽超过90%的设备,选择N可能会导致某些设备无法正常工作。

    n        Dynamic USB minor allocation:除非有超过16个同类型的USB设备,否则选择N

    n        USB selective suspend/resume and wakeupUSB设备的挂起和恢复。在一般情况下,建议选择N

    n        EHCI HCDUSB 2.0supportUSB 2.0支持(大多数2002年以后的主板都支持)。如果此项选择Y,一般来说OHCIUHCI驱动选项同时需要也选择Y

    n        Full speed ISO transactions:由于USB 2.0支持低速(1.5Mbps)、全速(12Mbps)、高速(480Mbps3种规格的外部设备,为了将全/低速设备对高速设备可用带宽的影响减到 最小,在USB 2.0集线器中提供了一种事务转换(Transaction Translator)机制,该机制支持在HUB连接的是全/低速设备的情况下,允许主控制器与HUB之间以高速传输所有设备的数据,从而节省不必要的等 待。如果没有外置的USB集线器可以选择N

    n        Root Hub Transaction Translators:带有USB 2.0接口的主板上都有一个根集线器(Root Hub),以允许在无须额外购买HUB的情况下就可以提供多个USB插口,其中的某些产品还在其中集成了事务转换(Transaction Translator)功能,这样就不需要再额外使用一个兼容OHCIUHCI的控制器来兼容USB 1.1,即使不太清楚嵌入式系统所使用主板上的根集线器是否集成了事务转换功能,也可以安全地选择此项。

    n        Improved Transaction Translator scheduling:如果有一个高速USB 2.0 HUB并且某些接在这个HUB上的低速或全速设备不能正常工作(显示'cannot submit datapipe: error-28''error-71'错误),可以考虑选择Y

    n        ISP116X HCD supportISP1160/ISP1161主机USB控制器,是符合USB 2.0全速规范的单片主机控制器和设备控制器,支持OHCI标准。

    n        OHCI HCD support:开放主机控制接口(OHCI)是主要针对嵌入式系统的USB 1.1主机控制器规范。如果不清楚,则选择N

    n        UHCI HCDmost Intel and VIAsupport:通用主机控制器接口(UHCI)是主要针对PCUSB 1.1主机控制器规范。另外,EHCI也可能需要它。如果不清楚,则选择N

    n        Elan U132 Adapter Host Controller:如果嵌入式系统采用这种设备,则选择Y

    n        SL811HS HCD support:如果嵌入式系统采用这种设备,则选择Y

    n        USB Bluetooth TTY supportUSB蓝牙TTY设备支持。如果嵌入式系统采用这种设备,则选择Y

    n        USB MIDI supportUSB MIDI设备支持。如果嵌入式系统采用这种设备,则选择Y

    n        USB MODEMCDC ACMsupportUSB接口的猫或ISDN适配器。如果嵌入式系统采用这种设备,则选择Y

    n        USB Printer supportUSB打印机。如果嵌入式系统采用这种设备,则选择Y

    n        USB Mass Storage supportUSB存储设备(优盘、USB硬盘、USB软盘、USB CD-ROMUSB磁带、memory sticks、数码相机、读卡器等)。该选项依赖于SCSI device support,且大部分情况下还依赖于SCSI disk support(比如优盘或USB硬盘)。如果嵌入式系统采用这种设备,则选择Y

    n        USB Mass Storage verbose debug:仅供调试使用。

    n        The shared table of common(或usualstorage devices:该模块包含一张记录了常用USB存储设备及其驱动的表格,这样无须重新编译模块即可在切换这些设备时自动邦定对应的驱动(还需要对 /etc/modprobeconf进行相应的设置)。如果不清楚,则选择N

    n        USB Human Interface Devicefull HIDsupportUSB人机界面设备(鼠标、键盘、游戏杆、手写板等操作计算机的设备),该驱动不能和USB HID Boot Protocol drivers同时使用。如果不清楚,则选择N

    n        HID input layer support:如果有USB接口的鼠标、键盘、游戏杆、手写板等输入设备,则选择Y

    n        Enable support for iBook/PowerBook special keys:苹果iBooks/PowerBooks键盘上的Fn/Numlock等功能键支持。如果不清楚,则选择N

    n        Force feedback support:力反馈设备。如果不清楚,则选择N

    n        /dev/hiddev raw HID device support:如果有USB监控装置或不间断电源(UPS)之类的非输入设备就选择Y

    n        USB HID Boot Protocol drivers:如果有绝对的把握确信不为嵌入式系统所使用的键盘和鼠标使用通常的HID驱动,而要使用Boot Protocol模式的HID驱动(常见于嵌入式环境),则选择Y

    n        Aiptek 6000U/8000U tablet support:一种手写板。如果嵌入式系统采用这种设备,则选择Y

    n        Wacom Intuos/Graphire tablet support:一种手写/绘图板。如果嵌入式系统采用这种设备,则选择Y

    n        Acecad Flair tablet support:一种数控绘图板。如果嵌入式系统采用这种设备,则选择Y

    n        KB Gear JamStudio tablet support:一种手写/绘图板。如果嵌入式系统采用这种设备,则选择Y

    n        Griffin PowerMate and Contour Jog support:一种具有调节音量、滚动文本、视频快进/快退等功能的产品。如果嵌入式系统采用这种设备,则选择Y

    n        USB Touchscreen DriverUSB触摸屏驱动。如果嵌入式系统采用USB触摸屏硬件,则选择Y

    n        Yealink USB-p1k voip phone:一种VoIP电话。如果嵌入式系统采用这种设备,则选择Y

    n        X-Box gamepad supportX-Box游戏板。如果嵌入式系统采用这种设备,则选择Y

    n        ATI/X10 USB RF remote control:一种USB远程控制设备。如果嵌入式系统采用这种设备,则选择Y

    n        ATI/Philips USB RF remote control:一种USB远程控制设备。如果嵌入式系统采用这种设备,则选择Y

    n        Keyspan DMR USB remote control:一种USB远程控制设备。如果嵌入式系统采用这种设备,则选择Y

    n        Apple USB Touchpad support:苹果机上的触摸板。如果嵌入式系统采用这种设备,则选择Y

    n        USB Mustek MDC800 Digital Camera support:一种数码相机。如果嵌入式系统采用这种设备,则选择Y

    n        Microtek X6USB scanner support:一种扫描仪。如果嵌入式系统采用这种设备,则选择Y

    n        USB Network AdaptersUSB网络适配器,如果有这种设备请根据嵌入式系统实际使用的硬件选择子项。

    n        USB MonitorUSB流量监控。在一般情况下,建议选择N

    n        USS720 parport driver:一种USB接口转并口的转换设备。如果嵌入式系统采用这种设备,则选择Y

    n        USB Serial Converter supportUSB接口转串口的转换设备。如果嵌入式系统采用这种设备,则选择Y

    n        EMI 62m USB Audio interface support:一种USB音频设备。如果嵌入式系统采用这种设备,则选择Y

    n        EMI 26 USB Audio interface support:一种USB音频设备。如果嵌入式系统采用这种设备,则选择Y

    n        ADU devices from Ontrak Control SystemsOntrak Control Systems公司的一种自动拨号设备。如果嵌入式系统采用这种设备,则选择Y

    n        USB Auerswald ISDN support:一种ISDN设备。如果嵌入式系统采用这种设备,则选择Y

    n        USB Diamond Rio500 support:一种MP3播放器。如果嵌入式系统采用这种设备,则选择Y

    n        USB Lego Infrared Tower support:一种无线发射机。如果嵌入式系统采用这种设备,则选择Y

    n        USB LCD driver supportUSB液晶显示器。如果嵌入式系统采用这种设备,则选择Y

    n        USB LED driver supportUSB发光二极管。如果嵌入式系统采用这种设备,则选择Y

    n        Cypress CY7C63xxx USB driver support:德国AK Modul-Bus Computer GmbH公司的一种产品。如果嵌入式系统采用这种设备,则选择Y

    n        Cypress USB thermometer driver support:一种温度计。如果嵌入式系统采用这种设备,则选择Y

    n        USB Phidgets drivers:来自Phidgets公司的各种USB产品。如果嵌入式系统采用这种设备,则选择Y

    n        Siemens ID USB Mouse Fingerprint sensor support:西门子公司的一种指纹传感器。如果嵌入式系统采用这种设备,则选择Y

    n        Elan PCMCIA CardBus Adapter USB ClientElan公司的一种USBPCMCIA的适配器。如果嵌入式系统采用这种设备,则选择Y

    n        Apple Cinema Display support:苹果公司的一种Cinema Display。如果嵌入式系统采用这种设备,则选择Y

    n        USB 2.0 SVGA dongle supportNet2280/SiS315):一种软件狗。如果嵌入式系统采用这种设备,则选择Y

    n        USB LD driverUSB LD驱动。如果嵌入式系统采用USB LD硬件,则选择Y

    n        PlayStation 2 Trance Vibrator driver supportSONYPS2上面的入迷振荡器,类似于力反馈手柄。如果嵌入式系统采用这种设备,则选择Y

    n        USB testing driver:这是一种测试中的驱动。在一般情况下,建议选择N

    n        USB DSL modem support:对USB DSL猫的支持。如果嵌入式系统采用这种设备,则选择Y

    n        USB Gadget SupportUSB杂项支持。如果不清楚,则选择N

    29MMC/SD Card support

    MMC/SD卡支持。如果嵌入式系统采用此类设备,则选择Y

    30LED devices

    发光二级管(LED)设备。如果嵌入式系统采用此类设备,则选择Y

    31InfiniBand support

    InfiniBand是一个通用的高性能I/O规范,它使得存储区域网中以更低的延时传输I/O消息和集群通信消息并且提供很好的伸缩性。用于Linux服务器集群系统。如果不清楚,则选择N

    32EDAC-error detection and reportingRAS

    错误检测与纠正(EDAC)的目标是发现并报告,甚至纠正在计算机系统中发生的错误,这些错误是由CPU或芯片组报告的底层错误(内存错误、缓存错误、PCI错误、温度过高等)。在一般情况下,建议选择Y。如果这些代码报告了一个错误,请到以下网站查看更多信息。

    n        http://bluesmoke.Sourceforge.net/

    n        http://buttersideup.com/edacwiki/

    该选项包括以下子选项。

    n        Debugging:仅供调试使用。

    n        Main Memory EDACError Detection And Correctionreporting:一些系统能够检测和修正主内存中的错误,EDAC能够报告这些信息(EDAC自己检测到的或者根据ECC得到 的)。EDAC还会尽量检测这些错误发生在哪里,以便于替换损坏的内存。建议选择并按照实际使用的芯片组选取子项。

    n        Error detecting method:错误检测方法,当前只有一个Poll for errors(错误轮询)可用。如果不清楚,则选择N

    33Real Time Clock

    所有的PC主板都包含一个电池动力的实时时钟芯片,以便在断电后仍然能够继续保持时间,RTC通常与CMOS集成在一起,因此BIOS可以从中读取当前时间。该选项包括以下子选项。

    n        RTC class:通用RTC类支持,选择此项后就可以在操作系统中使用一个或多个RTC设备,还必须从下面启用一个或多个RTC接口。如果不清楚,则选择N

    n        Set system time from RTC on startup:系统启动时使用从指定的RTC设备中读取的时间来设定系统时间,通常这将有助于避免不必要的文件系统检测程序(fsck)的运行。在一般情况下,建议选择Y

    n        The RTC to read the time from:指定具体从哪个RTC设备中读取时间。如果不清楚,则选择N

    n        RTC debug support:仅供调试使用。

    n        sysfs:允许通过sysfs接口使用RTC,允许多个RTC设备,也就是/sys/class/RTC/ RTC0_N。如果不清楚,则选择N

    n        proc:允许通过proc接口使用RTC,仅允许一个RTC设备,也就是/proc/driver/RTC。如果不清楚,则选择N

    n        dev:允许通过dev接口使用RTC,允许多个RTC设备,也就是udev设置的/dev/RTC0_N,建议建立一个指向其中之一的软连接/dev/RTC,某些程序(比如hwclock)需要使用/dev/RTC。如果不清楚,则选择N

    n        RTC UIE emulation on dev interface:该选项的作用是,如果底层RTC芯片接口没有提供RTC_UIE支持,就仿真一个RTC_UIE。如果不清楚,则选择N

    34DMA Engine support

    Intel Bensley双核服务器平台开始引入的数据移动加速(Data Movement Acceleration)引擎,它将某些传输数据的操作从CPU转移到专用硬件,从而可以进行异步传输并减轻CPU负载。Intel已将此项技术变为开 放的标准,将来应当会有更多的厂商支持。该选项包括以下子选项。

    n        TCP receive copy offload:通过在网络栈中利用DMA引擎来减少接收数据包时的copy-to-user操作,以释放CPU资源,这是DMA引擎目前最主要的用途。如果不清楚,则选择N

    n        Intel I/OAT DMA supportIntel I/O加速技术(Intel I/O Acceleration Technology)中的DMA支持,基于Intel Bensley的新一代服务器平台都支持它。如果不清楚,则选择N








    Linux 2.6.19.x 内核编译配置选项简介

    : 2008-11-19    : http://lamp.linux.gov.cn/Linux/kernel_options.html    : 金步国   : 2185 

    版权声明

    本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。

    其他作品

    本文作者十分愿意与他人共享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有作品的列表:

    BUG报告,切磋与探讨

    由于作者水平有限,因此不能保证作品内容准确无误,请在阅读中自行鉴别。如果你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品质量的建议我都将虚心接纳。如果你愿意就作品中的相关内容与我进行进一步切磋与探讨,也欢迎你与我联系。联系方式:Email: csfrank@citiz.net QQ: 70171448 MSN: csfrank122@hotmail.com


    本文作者将不定期的根据最新的内核进行添加(同时仍然保留老版本内核的选项),欢迎常来光临并帮助指出其中的错误.

    Code maturity level options
    代码成熟度选项

    Prompt for development and/or incomplete code/drivers 

    显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择 

    General setup
    常规设置

    Local version - append to kernel release 

    在内核版本后面加上自定义的版本字符串(小于64字符),可以用"uname -a"命令看到 

    Automatically append version information to the version string 

    自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持 

    Support for paging of anonymous memory (swap) 

    使用交换分区或者交换文件来做为虚拟内存 

    System V IPC 

    System V进程间通信(IPC)支持,许多程序需要这个功能.必选,除非你知道自己在做什么 

    IPC Namespaces 

    IPC命名空间支持,不确定可以不选 

    POSIX Message Queues 

    POSIX消息队列,这是POSIX IPC中的一部分 

    BSD Process Accounting 

    将进程的统计信息写入文件的用户级系统调用,主要包括进程的创建时间/创建者/内存占用等信息 

    BSD Process Accounting version 3 file format 

    使用新的第三版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式 

    Export task/process statistics through netlink 

    通过netlink接口向用户空间导出任务/进程的统计信息,BSD Process Accounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的 

    Enable per-task delay accounting 

    在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间 

    UTS Namespaces 

    UTS名字空间支持,不确定可以不选 

    Auditing support 

    审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计 

    Enable system-call auditing support 

    支持对系统调用的审计 

    Kernel .config support 

    把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本来提取这些信息 

    Enable access to .config through /proc/config.gz 

    允许通过/proc/config.gz访问内核的配置信息 

    Cpuset support 

    只有含有大量CPU(大于16)SMP系统或NUMA(非一致内存访问)系统才需要它 

    Kernel->user space relay support (formerly relayfs) 

    在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口 

    Initramfs source file(s) 

    initrd已经被initramfs取代,如果你不明白这是什么意思,请保持空白 

    Optimize for size (Look out for broken compilers!) 

    编译时优化内核尺寸(使用"-Os"而不是"-O2"参数编译),有时会产生错误的二进制代码 

    Enable extended accounting over taskstats 

    收集额外的进程统计信息并通过taskstats接口发送到用户空间 

    Configure standard kernel features (for small systems) 

    配置标准的内核特性(为小型系统

    Enable 16-bit UID system calls 

    允许对UID系统调用进行过时的16-bit包装 

    Sysctl syscall support 

    不需要重启就能修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核行为的参数或变量 

    Load all symbols for debugging/kksymoops 

    装载所有的调试符号表信息,仅供调试时选择 

    Include all symbols in kallsyms 

    kallsyms中包含内核知道的所有符号,内核将会增大300K 

    Do an extra kallsyms pass 

    除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项 

    Support for hot-pluggable devices 

    支持热插拔设备,usbpc卡等,Udev也需要它 

    Enable support for printk 

    允许内核向终端打印字符信息,在需要诊断内核为什么不能运行时选择 

    BUG() support 

    显示故障和失败条件(BUGWARN),禁用它将可能导致隐含的错误被忽略 

    Enable ELF core dumps 

    内存转储支持,可以帮助调试ELF格式的程序 

    Enable full-sized data structures for core 

    在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减小以节约内存,但是将会降低性能 

    Enable futex support 

    快速用户空间互斥体可以使线程串行化以避免竞态条件,也提高了响应速度.禁用它将导致内核不能正确的运行基于glibc的程序 

    Enable eventpoll support 

    支持事件轮循的系统调用 

    Use full shmem filesystem 

    启用shmem支持.shmem是基于共享内存的文件系统(可能用到swap),在启用TMPFS后可以挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多 

    Use full SLAB allocator 

    使用SLAB完全取代SLOB进行内存分配,SLAB是一种优秀的内存分配管理器,推荐使用 

    Enable VM event counters for /proc/vmstat 

    允许在/proc/vmstat中包含虚拟内存事件记数器 

    Loadable module support
    可加载模块支持

    Enable loadable module support 

    打开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安装在/lib/modules/ 

    Module unloading 

    允许卸载已经加载的模块 

    Forced module unloading 

    允许强制卸载正在使用中的模块(比较危险

    Module versioning support 

    允许使用其他内核版本的模块(可能会出问题

    Source checksum for all modules 

    为所有的模块校验源码,如果你不是自己编写内核模块就不需要它 

    Automatic kernel module loading 

    让内核通过运行modprobe来自动加载所需要的模块,比如可以自动解决模块的依赖关系 

    Block layer
    块设备层

    Enable the block layer 

    块设备支持,使用硬盘/USB/SCSI设备者必选 

    Support for Large Block Devices 

    仅在使用大于2TB的块设备时需要 

    Support for tracing block io actions 

    块队列IO跟踪支持,它允许用户查看在一个块设备队列上发生的所有事件,可以通过blktrace程序获得磁盘当前的详细统计数据 

    Support for Large Single Files 

    仅在可能使用大于2TB的文件时需要 

    IO Schedulers 

    IO调度器 

    Anticipatory I/O scheduler 

    假设一个块设备只有一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.适用于大多数环境,特别是写入较多的环境(比如文件服务器

    Deadline I/O scheduler 

    使用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境(比如数据库

    CFQ I/O scheduler 

    使用QoS策略为所有任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,可以认为是上述两种调度器的折中.适用于有大量进程的多用户系统 

    Default I/O scheduler 

    默认IO调度器 

    Processor type and features
    中央处理器(CPU)类型及特性

    Symmetric multi-processing support 

    对称多处理器支持,如果你有多个CPU或者使用的是多核CPU就选上.此时"Enhanced Real Time Clock Support"选项必须开启,"Advanced Power Management"选项必须关闭 

    Subarchitecture Type 

    处理器的子架构,大多数人都应当选择"PC-compatible" 

    Processor family 

    处理器系列,请按照你实际使用的CPU选择 

    Generic x86 support 

    通用x86支持,如果你的CPU能够在上述"Processor family"中找到就别选 

    HPET Timer Support 

    HPET是替代8254芯片的新一代定时器,i686及以上级别的主板都支持,可以安全的选上 

    Maximum number of CPUs 

    支持的最大CPU,每增加一个内核将增加8K体积 

    SMT (Hyperthreading) scheduler support 

    支持Intel的超线程(HT)技术 

    Multi-core scheduler support 

    针对多核CPU进行调度策略优化 

    Preemption Model 

    内核抢占模式 

    No Forced Preemption (Server) 

    适合服务器环境的禁止内核抢占 

    Voluntary Kernel Preemption (Desktop) 

    适合普通桌面环境的自愿内核抢占 

    Preemptible Kernel (Low-Latency Desktop) 

    适合运行实时程序的主动内核抢占 

    Preempt The Big Kernel Lock 

    可以抢占大内核锁,应用于实时要求高的场合,不适合服务器环境 

    Machine Check Exception 

    CPU检测到系统故障时通知内核,以便内核采取相应的措施(如过热关机等

    Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 

    5秒检测一次这些cpu的非致命错误并纠正它们,同时记入日志 

    check for P4 thermal throttling interrupt 

    P4cpu过热时显示一条警告消息 

    Enable VM86 support 

    虚拟X86支持,DOSEMU下运行16-bit程序或XFree86通过BIOS初始化某些显卡的时候才需要 

    Toshiba Laptop support 

    Toshiba笔记本模块支持 

    Dell laptop support 

    Dell笔记本模块支持 

    Enable X86 board specific fixups for reboot 

    修正某些旧x86主板的重起bug,这种主板基本绝种了 

    /dev/cpu/microcode - Intel IA32 CPU microcode support 

    使用不随Linux内核发行的IA32微代码,你必需有IA32微代码二进制文件,仅对IntelCPU有效 

    /dev/cpu/*/msr - Model-specific register support 

    在多cpu系统中让特权CPU访问x86MSR寄存器 

    /dev/cpu/*/cpuid - CPU information support 

    能从/dev/cpu/x/cpuid获得CPU的唯一标识符(CPUID) 

    Firmware Drivers 

    固件驱动程序 

    BIOS Enhanced Disk Drive calls determine boot disk 

    有些BIOS支持从某块特定的硬盘启动(如果BIOS不支持则可能无法启动),目前大多数BIOS还不支持 

    BIOS update support for DELL systems via sysfs 

    仅适用于DELL机器 

    Dell Systems Management Base Driver 

    仅适用于DELL机器 

    High Memory Support 

    最高内存支持,总内存小于等于1G的选"off",大于4G的选"64G" 

    Memory split 

    如果你不是绝对清楚自己在做什么,不要改动这个选项 

    Memory model 

    一般选"Flat Memory",其他选项涉及内存热插拔 

    64 bit Memory and IO resources 

    使用64位的内存和IO资源 

    Allocate 3rd-level pagetables from highmem 

    在内存很多(大于4G)的机器上将用户空间的页表放到高位内存区,以节约宝贵的低端内存 

    Math emulation 

    数学协处理器仿真,486DX以上的cpu就不要选它了 

    MTRR (Memory Type Range Register) support 

    打开它可以提升PCI/AGP总线上的显卡2倍以上的速度,并且可以修正某些BIOS错误 

    Boot from EFI support 

    EFI是一种可代替传统BIOS的技术(目前的Grub/LILO尚不能识别它),但是现在远未普及 

    Enable kernel irq balancing 

    让内核将irq中断平均分配给多个CPU以进行负载均衡,但是要配合irqbanlance守护进程才行 

    Use register arguments 

    使用"-mregparm=3"参数编译内核,将前3个参数以寄存器方式进行参数调用,可以生成更紧凑和高效的代码 

    Enable seccomp to safely compute untrusted bytecode 

    只有嵌入式系统可以不选 

    Timer frequency 

    内核时钟频率,桌面推荐"1000 HZ",服务器推荐"100 HZ""250 HZ" 

    kexec system call 

    提供kexec系统调用,可以不必重启而切换到另一个内核 

    kernel crash dumps 

    kexec启动后产生内核崩溃转储 

    Physical address where the kernel is loaded 

    内核加载的物理地址,除非你知道自己在做什么,否则不要修改.在提供kexec系统调用的情况下可能要修改它 

    Support for hot-pluggable CPUs 

    对热插拔CPU提供支持 

    Compat VDSO support 

    如果Glibc版本大于等于2.3.3就不选,否则就选上 

    Power management options
    电源管理选项

    Power Management support 

    电源管理有APMACPI两种标准且不能同时使用.即使关闭该选项,X86上运行的Linux也会在空闲时发出HLT指令将CPU进入睡眠状态 

    Legacy Power Management API 

    传统的电源管理API,比如软关机和系统休眠等接口 

    Power Management Debug Support 

    仅供调试使用 

    Driver model /sys/devices/.../power/state files 

    内核帮助文档反对使用该选项,即将被废除 

    ACPI (Advanced Configuration and Power Interface) Support 

    必须运行acpid守护程序ACPI才能起作用.ACPI是为了取代APM而设计的,因此应该尽量使用ACPI而不是APM 

    AC Adapter 

    如果你的系统可以在AC和电池之间转换就可以选 

    Battery 

    通过/proc/acpi/battery向用户提供电池状态信息,用电池的笔记本可以选 

    Button 

    守护程序捕获Power,Sleep,Lid按钮事件,并根据/proc/acpi/event做相应的动作,软件控制的poweroff需要它 

    Video 

    仅对集成在主板上的显卡提供ACPI2.0支持,且不是所有集成显卡都支持 

    Generic Hotkey 

    统一的热键驱动,建议不选 

    Fan 

    允许通过用户层的程序来对系统风扇进行控制(,,查询状态),支持它的硬件并不多 

    Dock 

    支持由ACPI控制的集线器(docking stations) 

    Processor 

    ACPI处理空闲状态,并使用ACPI C2C3处理器状态在空闲时节省电能,同时它还被cpufreq"Performance-state drivers"选项所依赖 

    Thermal Zone 

    系统温度过高时可以利用ACPI thermal zone及时调整工作状态以避免你的CPU被烧毁 

    ASUS/Medion Laptop Extras 

    ASUS笔记本专用,以提供额外按钮的支持,用户可以通过/proc/acpi/asus来打开或者关闭LCD的背光/调整亮度/定制LED的闪烁指示等功能 

    IBM ThinkPad Laptop Extras 

    IBM ThinkPad专用 

    Toshiba Laptop Extras 

    Toshiba笔记本专用 

    Disable ACPI for systems before Jan 1st this year 

    输入四位数的年份,在该年的11日前不使用ACPI的功能("0"表示一直使用

    Debug Statements 

    详细的ACPI调试信息,不搞开发就别选 

    Power Management Timer Support 

    这个Timer在所有ACPI兼容的平台上都可用,且不会受PM功能的影响,建议总是启用它.如果你在kernel log中看到了'many lost ticks'那就必须启用它 

    ACPI0004,PNP0A05 and PNP0A06 Container Driver 

    支持内存和CPU的热插拔 

    Smart Battery System 

    支持依赖于I2C"智能电池".这种电池非常老旧且罕见,还与当前的ACPI标准兼容性差 

    APM (Advanced Power Management) BIOS Support 

    APMSMP机器上必须关闭,一般来说当前的笔记本都支持ACPI,所以应尽量关闭该该选项 

    Ignore USER SUSPEND 

    只有NEC Versa M系列的笔记本才需要选择这一项 

    Enable PM at boot time 

    系统启动时即启用APM,选上这个选项能让系统自动的进行电源管理,但常常导致启动时死机 

    Make CPU Idle calls when idle 

    系统空闲时调用空闲指令(halt),只有老式的CPU才需要选它,且对于SMP系统必须关闭 

    Enable console blanking using APM 

    在屏幕空白时关闭LCD背光,事实上对所有的笔记本都无效 

    RTC stores time in GMT 

    将硬件时钟应该设为格林威治时间,否则视为本地时间.建议你使用GMT,这样你无须为时区的改变而担心 

    Allow interrupts during APM BIOS calls 

    允许APMBIOS调用时中断,IBM Thinkpad的一些新机器需要这项.如果休眠时挂机(包括睡下去就醒不来),可以试试它 

    Use real mode APM BIOS call to power off 

    此驱动为某些有BugBIOS准备,如果你的系统不能正常关机或关机时崩溃,可以试试它 

    CPU Frequency scaling 

    允许动态改变CPU主频,达到省电和降温的目的,必须同时启用下面的一种governor才行 

    Enable CPUfreq debugging 

    允许对CPUfreq进行调试 

    CPU frequency translation statistics 

    通过sysfs文件系统输出CPU频率变换的统计信息 

    CPU frequency translation statistics details 

    输出详细的CPU频率变换统计信息 

    Default CPUFreq governor 

    默认的CPU频率调节器 

    'performance' governor 

    '性能'优先,静态的将频率设置为cpu支持的最高频率 

    'powersave' governor 

    '节能'优先,静态的将频率设置为cpu支持的最低频率 

    'userspace' governor for userspace frequency scaling 

    既允许手动调整cpu频率,也允许用户空间的程序动态的调整cpu频率(需要额外的调频软件,比如cpufreqd) 

    'ondemand' cpufreq policy governor 

    '立即响应',周期性的考察CPU负载并自动的动态调整cpu频率(不需要额外的调频软件),适合台式机 

    'conservative' cpufreq governor 

    '保守','ondemand'相似,但是频率的升降是渐变式的(幅度不会很大),更适合用于笔记本/PDA/AMD64环境 

    ACPI Processor P-States driver 

    ACPI2.0的处理器性能状态报告给CPUFreq processor drivers以决定如何调整频率,该选项依赖于ACPI->Processor 

    {省略的部分请按照自己实际使用的CPU选择

    /proc/acpi/processor/../performance interface 

    内核帮助文档反对使用该选项,即将被废除 

    Relaxed speedstep capability checks 

    放松对系统的speedstep兼容性检查,仅在某些老旧的Intel系统上需要打开 

    Bus options (PCI, PCMCIA, EISA, MCA, ISA)
    总线选项

    PCI support 

    PCI支持,如果使用了PCIPCI Express设备就必选 

    PCI access mode 

    PCI访问模式,强列建议选"Any"(系统将优先使用"MMConfig",然后使用"BIOS",最后使用"Direct"检测PCI设备

    PCI Express support 

    PCI Express支持(目前主要用于显卡和千兆网卡

    PCI Express Hotplug driver 

    如果你的主板和设备都支持PCI Express热插拔就可以选上 

    Use polling mechanism for hot-plug events 

    对热插拔事件采用轮询机制,仅用于测试目的 

    Root Port Advanced Error Reporting support 

    PCI Express AER驱动程序处理发送到Root Port的错误信息 

    Message Signaled Interrupts (MSI and MSI-X) 

    充许设备通过PCI总线写入内存堆栈产生一个中断而不是使用默认的IRQ中断,建议不选 

    PCI Debugging 

    PCI调试信息输出到系统日志里 

    Interrupts on hypertransport devices 

    允许本地的hypertransport设备使用中断 

    ISA support 

    现在基本上没有ISA的设备了,如果你有就选吧 

    MCA support 

    微通道总线,老旧的IBM的台式机和笔记本上可能会有这种总线 

    NatSemi SCx200 support 

    在使用AMD Geode处理器的机器上才可能有 

    PCCARD (PCMCIA/CardBus) support 

    PCMCIA(主要用于笔记本)支持 

    Enable PCCARD debugging 

    仅供调试 

    16-bit PCMCIA support 

    一些老的PCMCIA卡使用16位的CardBus 

    32-bit CardBus support 

    当前的PCMCIA卡基本上都是32位的CardBus 

    CardBus yenta-compatible bridge support 

    使用PCMCIA卡的基本上都需要选择这一项,子项请按照自己实际使用的PCMCIA卡选择 

    {省略的部分请按照自己实际使用的PCMCIA卡选择

    PCI Hotplug Support 

    PCI热插拔支持,如果你有这样的设备就到子项中去选吧 

    Executable file formats
    可执行文件格式

    Kernel support for ELF binaries 

    ELF是开放平台下最常用的二进制文件格式,支持动态连接,支持不同的硬件平台.除非你知道自己在做什么,否则必选 

    Kernel support for a.out and ECOFF binaries 

    早期UNIX系统的可执行文件格式,目前已经被ELF格式取代 

    Kernel support for MISC binaries 

    允许插入二进制的封装层到内核中,使用Java,.NET,Python,Lisp等语言编写的程序时需要它 

    Networking
    网络

    Networking options 

    网络选项 

    Network packet debugging 

    在调试不合格的包时加上额外的附加信息,但在遇到Dos攻击时你可能会被日志淹没 

    Packet socket 

    这种Socket可以让应用程序(比如tcpdump,iptables)直接与网络设备通讯,而不通过内核中的其它中介协议 

    Packet socket: mmapped IO 

    Packet socket驱动程序使用IO映射机制以使连接速度更快 

    Unix domain sockets 

    一种仅运行于本机上的效率高于TCP/IPSocket,简称Unix socket.许多程序都使用它在操作系统内部进行进程间通信(IPC),比如X Windowsyslog 

    Transformation user configuration interface 

    IPsec(可在ip层加密)之类的工具提供XFRM用户配置接口支持 

    Transformation sub policy support 

    XFRM子策略支持,仅供开发者使用 

    PF_KEY sockets 

    用于可信任的密钥管理程序和操作系统内核内部的密钥管理进行通信,IPsec依赖于它 

    TCP/IP networking 

    TCP/IP协议当然要选 

    IP: multicasting 

    群组广播,似乎与网格计算有关,仅在使用MBONE的时候才需要 

    IP: advanced router 

    高级路由,如果想做一个路由器就选吧 

    IP: policy routing 

    策略路由 

    IP: equal cost multipath 

    用于路由的基于目的地址的负载均衡 

    IP: verbose route monitoring 

    显示冗余的路由监控信息 

    IP: kernel level autoconfiguration 

    在内核启动时自动配置ip地址/路由表等,需要从网络启动的无盘工作站才需要这个东西 

    IP: tunneling 

    IP隧道,将一个IP报文封装在另一个IP报文内的技术 

    IP: GRE tunnels over IP 

    基于IPGRE(通用路由封装)隧道 

    IP: multicast routing 

    多重传播路由 

    IP: ARP daemon support 

    这东西尚处于试验阶段就已经被废弃了 

    IP: TCP syncookie support 

    抵抗SYN flood攻击的好东西,要启用它必须同时启用/proc文件系统和"Sysctl support",然后在系统启动并挂载了/proc之后执行"echo 1 >/proc/sys/net/ipv4/tcp_syncookies"命令 

    IP: AH transformation 

    IPsec验证头(AH)实现了数据发送方的验证处理,可确保数据既对于未经验证的站点不可用也不能在路由过程中更改 

    IP: ESP transformation 

    IPsec封闭安全负载(ESP)实现了发送方的验证处理和数据加密处理,用以确保数据不会被拦截/查看或复制 

    IP: IPComp transformation 

    IPComp(IP静荷载压缩协议),用于支持IPsec 

    IP: IPsec transport mode 

    IPsec传输模式,常用于对等通信,用以提供内网安全.数据包经过了加密但IP头没有加密,因此任何标准设备或软件都可查看和使用IP 

    IP: IPsec tunnel mode 

    IPsec隧道模式,用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已经过加密处理且分配有新的ESP/IP头和验证尾,从而能够隐藏受保护站点的拓扑结构 

    IP: IPsec BEET mode 

    IPsec BEET模式 

    INET: socket monitoring interface 

    socket监视接口,一些Linux本地工具(:包含ssiproute2)需要使用它 

    TCP: advanced congestion control 

    高级拥塞控制,如果没有特殊需求(比如无线网络)就别选了,内核会自动将默认的拥塞控制设为"Cubic"并将"Reno"作为候补 

    IP: Virtual Server Configuration 

    IP虚拟服务器允许你基于多台物理机器构建一台高性能的虚拟服务器,不玩集群就别选了 

    The IPv6 protocol 

    你要是需要IPv6就选吧 

    NetLabel subsystem support 

    NetLabel子系统为诸如CIPSORIPSO之类能够在分组信息上添加标签的协议提供支持,如果你看不懂就别选了 

    Security Marking 

    对网络包进行安全标记,类似于nfmark,但主要是为安全目的而设计,如果你不明白的话就别选 

    Network packet filtering (replaces ipchains) 

    Netfilter可以对数据包进行过滤和修改,可以作为防火墙("packet filter""proxy-based")或网关(NAT)或代理(proxy)或网桥使用.选中此选项后必须将"Fast switching"关闭,否则将前功尽弃 

    Network packet filtering debugging 

    仅供开发者调试Netfilter使用 

    Bridged IP/ARP packets filtering 

    如果你希望使用一个针对桥接的防火墙就打开它 

    Core Netfilter Configuration 

    核心Netfilter配置(当包流过Chain时如果match某个规则那么将由该规则的target来处理,否则将由同一个Chain中的下一个规则进行匹配,若不match所有规则那么最终将由该Chainpolicy进行处理

    Netfilter netlink interface 

    允许Netfilter在与用户空间通信时使用新的netlink接口.netlink SocketLinux用户态与内核态交流的主要方法之一,且越来越被重视 

    Netfilter NFQUEUE over NFNETLINK interface 

    通过NFNETLINK接口对包进行排队 

    Netfilter LOG over NFNETLINK interface 

    通过NFNETLINK接口对包记录.该选项废弃了ipt_ULOGebg_ulog机制,并打算在将来废弃基于syslogipt_LOGip6t_LOG模块 

    Layer 3 Independent Connection tracking 

    独立于第三层的链接跟踪,通过广义化的ip_conntrack支持其它非IP协议的第三层协议 

    Netfilter Xtables support 

    如果你打算使用ip_tables,ip6_tables,arp_tables之一就必须选上 

    "CLASSIFY" target support 

    允许为包设置优先级,一些排队规则(atm,cbq,dsmark,pfifo_fast,htb,prio)需要使用它 

    "CONNMARK" target support 

    类似于"MARK",但影响的是连接标记的值 

    "DSCP" target support 

    允许对ip包头部的DSCP(Differentiated Services Codepoint)字段进行修改,该字段常用于Qos 

    "MARK" target support 

    允许对包进行标记(通常配合ip命令使用),这样就可以改变路由策略或者被其它子系统用来改变其行为 

    "NFQUEUE" target Support 

    用于替代老旧的QUEUE(iptables内建的target之一),因为NFQUEUE能支持最多65535个队列,QUEUE只能支持一个 

    "NOTRACK" target support 

    允许规则指定哪些包不进入链接跟踪/NAT子系统 

    "SECMARK" target support 

    允许对包进行安全标记,用于安全子系统 

    "CONNSECMARK" target support 

    针对链接进行安全标记,同时还会将连接上的标记还原到包上(如果链接中的包尚未进行安全标记),通常与SECMARK target联合使用 

    "comment" match support 

    允许你在iptables规则集中加入注释 

    "connbytes" per-connection counter match support 

    允许针对单个连接内部每个方向(/)匹配已经传送的字节数/包数 

    "connmark" connection mark match support 

    允许针对每个会话匹配先前由"CONNMARK"设置的标记值 

    "conntrack" connection tracking match support 

    连接跟踪匹配,"state"的超集,它允许额外的链接跟踪信息,在需要设置一些复杂的规则(比如网关)时很有用 

    "DCCP" protocol match support 

    DCCP是打算取代UDP的新传输协议,它在UDP的基础上增加了流控和拥塞控制机制,面向实时业务 

    "DSCP" match support 

    允许对IP包头的DSCP字段进行匹配 

    "ESP" match support 

    允许对IPSec包中的ESP头进行匹配,使用IPsec的话就选上吧 

    "helper" match support 

    加载特定协议的连接跟踪辅助模块,由该模块过滤所跟踪的连接类型的包,比如ip_conntrack_ftp模块 

    "length" match support 

    允许对包的长度进行匹配 

    "limit" match support 

    允许根据包的进出速率进行规则匹配,常和"LOG target"配合使用以抵抗某些Dos攻击 

    "mac" address match support 

    允许根据以太网的MAC进行匹配,常用于无线网络环境 

    "mark" match support 

    允许对先前由"MARK"标记的特定标记值进行匹配 

    IPsec "policy" match support 

    使用IPsec就选上吧 

    Multiple port match support 

    允许对TCPUDP包同时匹配多个端口(通常情况下只能匹配一个端口

    "physdev" match support 

    允许对到达的或将要离开的物理桥端口进行匹配 

    "pkttype" packet type match support 

    允许对封包目的地址类别(广播/群播/直播)进行匹配 

    "quota" match support 

    允许对总字节数的限额值进行匹配 

    "realm" match support 

    允许对iptables中的路由子系统中的realm值进行匹配 

    "sctp" protocol match support 

    流控制传输协议(SCTP),十年以后也许能够普及的东西 

    "state" match support 

    这是对包进行分类的有力工具,它允许利用连接跟踪信息对连接中处于特定状态的包进行匹配 

    "statistic" match support 

    允许根据一个给定的百分率对包进行周期性的或随机性的匹配 

    "string" match support 

    允许根据包所承载的数据中包含的特定字符串进行匹配 

    "tcpmss" match support 

    允许根据TCP SYN包头中的MSS(最大分段长度)选项的值进行匹配 

    IP: Netfilter Configuration 

    针对IPv4Netfilter配置 

    Connection tracking (required for masq/NAT) 

    链接跟踪.可用于报文伪装或地址转换,也可用于增强包过滤能力 

    Connection tracking flow accounting 

    允许针对每个连接记录已经传送的字节/包数,常用于connbytes match 

    Connection mark tracking support 

    允许对连接进行标记,与针对单独的包进行标记的不同之处在于它是针对连接流的.CONNMARK targetconnmark match需要它的支持 

    Connection tracking security mark support 

    允许对连接进行安全标记,通常这些标记包(SECMARK)复制到其所属连接(CONNSECMARK),再从连接复制到其关联的包(SECMARK) 

    Connection tracking events 

    连接跟踪事件支持.如果启用这个选项,连接跟踪代码将提供一个notifier,它可以被其它内核代码用来获知连接跟踪状态的改变 

    Connection tracking netlink interface 

    支持基于netlink的用户空间接口 

    SCTP protocol connection tracking support 

    SCTPIP网面向多媒体通信的新一代的流控制传输协议 

    FTP protocol support 

    FTP协议 

    IRC protocol support 

    IRC协议是一种用来实时聊天协议,用过mIRC的人应当不陌生 

    NetBIOS name service protocol support 

    NetBIOS名字服务协议 

    TFTP protocol support 

    TFTP是基于UDP的比FTP简单的文件传输协议 

    Amanda backup protocol support 

    Amanda备份协议 

    PPTP protocol support 

    点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术,ADSL用户对它应该很熟悉 

    H.323 protocol support 

    ITU-T提出的用于IP电话的协议 

    SIP protocol support 

    IETE提出的用于IP电话的协议 

    IP Userspace queueing via NETLINK 

    已废弃 

    IP tables support (required for filtering/masq/NAT) 

    要用iptables就肯定要选上 

    IP range match support 

    允许对ip地址的范围进行匹配 

    TOS match support 

    允许对ip包头的TOS(Type Of Service)字段进行匹配 

    recent match support 

    可以创建一个或多个刚刚使用过的ip地址列表,然后根据这些列表进行匹配 

    ECN match support 

    允许对TCP/IP包头的ECN(Explicit Congestion Notification)字段进行匹配.ECN是一种显式拥塞通知技术,它不但要求路由器支持而且要求端到端主机的支持,其基本思想是当路由器发生早期拥塞时不是丢弃包而是尽量对包进行标记,接收方接到带有ECN提示的包时,通知发送方网络即将发生拥塞,也就是它通过对包的标记提示TCP源即将发生拥塞,从而引发拥塞避免算法 

    AH match support 

    允许对IPSec包头的AH字段进行匹配 

    TTL match support 

    允许对ip包头的TTL(生存期)字段进行匹配 

    Owner match support 

    允许对本地生成的包按照其宿主(user,group,process,session)进行匹配 

    address type match support 

    允许对地址类型(单播,本地,广播)进行匹配 

    hashlimit match support 

    limit的升级,它基于你选择的ip地址与/或端口动态的创建以limit为桶(bucket)的哈希表.它可以创建诸如"为每个特定的目标IP分配10kpps""允许每个特定的源IP分配500pps"之类的规则 

    Packet filtering 

    定义filter表以允许对包进行过滤 

    REJECT target support 

    允许返回一个ICMP错误而不是简单的丢弃包 

    LOG target support 

    允许将符合条件的包头信息通过syslog进行记录 

    ULOG target support 

    透过netlink socket将符合条件的封包交给用户空间的ulogd守护进程.反对使用该选项,因为它已经被NETFILTER_NETLINK_LOG代替 

    TCPMSS target support 

    允许修改TCP包头中的MSS(最大分段长度)选项值 

    Full NAT 

    允许进行伪装/端口转发以及其它的NAT功能,仅在你需要使用iptables中的nat表时才需要选择 

    Packet mangling 

    iptables中启用mangle表以便对包进行各种修改,常用于改变包的路由 

    raw table support (required for NOTRACK/TRACE) 

    iptables中添加一个'raw',该表在netfilter框架中非常靠前,并在PREROUTINGOUTPUT链上有钩子,从而可以对收到的数据包在连接跟踪前进行处理 

    ARP tables support 

    ARP表支持.只有在局域网中才有ARP欺骗问题,另外路由器也会遭到ARP欺骗 

    ARP packet filtering 

    ARP包过滤.对于进入和离开本地的ARP包定义一个filter,在桥接的情况下还可以应用于被转发ARP 

    ARP payload mangling 

    允许对ARP包的荷载部分进行修改,比如修改源和目标物理地址 

    IPv6: Netfilter Configuration 

    针对IPv6Netfilter配置,需要的话可以参考前面IPv4Netfilter配置进行选择 

    DECnet: Netfilter Configuration 

    针对DECnetNetfilter配置 

    Bridge: Netfilter Configuration 

    针对桥接的Netfilter配置 

    DCCP Configuration 

    数据报拥塞控制协议在UDP的基础上增加了流控和拥塞控制机制,使数据报协议能够更好地用于流媒体业务的传输 

    SCTP Configuration 

    流控制传输协议是一种新兴的传输层协议.TCP协议一次只能连接一个IP地址而在SCTP协议一次可以连接多个IP地址且可以自动平衡网络负载,一旦某一个IP地址失效会自动将网络负载转移到其他IP地址上 

    TIPC Configuration 

    透明内部进程间通信协议,以共享内存为基础实现任务和资源的调度,专门用于内部集群通信 

    Asynchronous Transfer Mode (ATM) 

    异步传输模式(ATM)支持 

    802.1d Ethernet Bridging 

    802.1d以太网桥 

    802.1Q VLAN Support 

    802.1Q虚拟局域网 

    DECnet Support 

    DECnet是一种很生僻的协议 

    ANSI/IEEE 802.2 LLC type 2 Support 

    看不懂可以不选 

    The IPX protocol 

    IPX协议 

    Appletalk protocol support 

    Mac机器通信的协议 

    CCITT X.25 Packet Layer 

    大约没人需要这东西 

    LAPB Data Link Driver 

    大约没人需要这东西 

    Acorn Econet/AUN protocols 

    一种被Acorn计算机使用的又老又慢的协议 

    WAN router 

    广域网路由 

    QoS and/or fair queueing 

    如果你需要Qos或公平队列就选吧 

    Network testing 

    网络测试,仅供调试使用 

    Amateur Radio support 

    业余无线电支持 

    IrDA (infrared) subsystem support 

    红外线支持,比如无线鼠标或无线键盘 

    Bluetooth subsystem support 

    蓝牙支持 

    Generic IEEE 802.11 Networking Stack 

    通用无线局域网(IEEE 802.11系列协议)支持 

    Device Drivers
    设备驱动程序

    Generic Driver Options 

    驱动程序通用选项 

    Select only drivers that don't need compile-time external firmware 

    只显示那些不需要内核对外部设备的固件作map支持的驱动程序,除非你有某些怪异硬件,否则请选上 

    Prevent firmware from being built 

    不编译固件.固件一般是随硬件的驱动程序提供的,仅在更新固件的时候才需要重新编译.建议选上 

    Userspace firmware loading support 

    提供某些内核之外的模块需要的用户空间固件加载支持,在内核树之外编译的模块可能需要它 

    Driver Core verbose debug messages 

    让驱动程序核心在系统日志中产生冗长的调试信息,仅供调试 

    Connector - unified userspace <-> kernelspace linker 

    统一的用户空间和内核空间连接器,工作在netlink socket协议的顶层.不确定可以不选 

    Report process events to userspace 

    向用户空间报告进程事件(fork,exec,id变化(uid,gid,suid) 

    Memory Technology Devices (MTD) 

    特殊的存储技术装置,如常用于数码相机或嵌入式系统的闪存卡 

    Parallel port support 

    并口支持(传统的打印机接口

    Plug and Play support 

    即插即用支持,若未选则应当在BIOS中关闭"PnP OS".这里的选项与PCI设备无关 

    PnP Debug Messages 

    该选项仅供调试使用 

    ISA Plug and Play support 

    ISA设备即插即用支持 

    Plug and Play BIOS support 

    Linux使用"Plug and Play BIOS"规范v1.0A(1994)中定义的PNPBIOS自动检测主板上的资源和设备,但是其中的某些特性目前尚未实现,比如:事件通知/扩展坞(Docking Station)信息/ISAPNP服务.如果你希望由内核检测主板上的设备并为其分配资源(此时BIOS中的"PnP OS"必须开启)可以选上,此外,PNPBIOS还有助于防止主板上的设备与其他总线设备冲突.不过需要注意的是ACPI将会逐渐取代PNPBIOS(虽然目前两者可以共存),所以如果你的系统不使用ISA设备并且支持ACPI,建议你不要选中该选项并将BIOS中的"PnP OS"关闭 

    Plug and Play BIOS /proc interface 

    该选项仅供调试使用 

    Plug and Play ACPI support 

    Linux使用PNPACPI自动检测主板上内建的设备并为其分配资源(即使这些设备已被BIOS禁用),它有助于避免设备之间的资源(如中断)冲突 

    Block devices 

    块设备 

    Normal floppy disk support 

    通用软驱支持 

    XT hard disk support 

    古董级产品 

    Parallel port IDE device support 

    通过并口与计算机连接的IDE设备,比如某些老旧的外接光驱或硬盘之类 

    Compaq SMART2 support 

    基于Compaq SMART2控制器的磁盘阵列卡 

    Compaq Smart Array 5xxx support 

    基于Compaq SMART控制器的磁盘阵列卡 

    Mylex DAC960/DAC1100 PCI RAID Controller support 

    古董级产品 

    Micro Memory MM5415 Battery Backed RAM support 

    一种使用电池做后备电源的内存 

    Loopback device support 

    Loopback是指拿文件来模拟块设备,比如可以将一个iso9660镜像文件挂成一个文件系统 

    Cryptoloop Support 

    使用系统提供的加密APILoopback设备加密,但不能用于日志型文件系统 

    Network block device support 

    让你的电脑成为网络块设备的客户端 

    Promise SATA SX8 support 

    基于Promise公司的SATA SX8控制器的RAID 

    Low Performance USB Block driver 

    它不是用来支持U盘的,不懂的就别选 

    RAM disk support 

    内存中的虚拟磁盘,大小固定(由下面的选项决定,也可给内核传递"ramdisk_size=参数"来决定),它的功能和代码都比shmem简单许多 

    Default number of RAM disks 

    默认RAM disk的数量 

    Default RAM disk size (kbytes) 

    仅在你真正知道它的含义时才允许修改 

    Default RAM disk block size (bytes) 

    每一个RAM disk的默认块大小,设为PAGE_SIZE的值时效率最高 

    Initial RAM filesystem and RAM disk (initramfs/initrd) support 

    如果启动计算机所必须的模块都在内核里的话可以不选此项 

    Packet writing on CD/DVD media 

    CD/DVD刻录支持 

    Free buffers for data gathering 

    用于收集写入数据的缓冲区个数(每个占用64Kb内存),缓冲区越多性能越好 

    Enable write caching 

    CD-R/W设备启用写入缓冲,目前这是一个比较危险的选项 

    ATA over Ethernet support 

    以太网ATA设备支持 

    Misc devices 

    杂项设备 

    ATA/ATAPI/MFM/RLL support 

    通常是IDE硬盘和ATAPI光驱.SCSI系统且不使用这些接口可以不选 

    Max IDE interfaces 

    最大IDE接口数,两个IDE插槽一般相当于4个接口 

    Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support 

    EIDE支持是当然要选的,否则540MB以上的硬盘都不认识而且不支持主从设备 

    Support for SATA (deprecated; conflicts with libata SATA driver) 

    反对使用,该选项与libata SATA驱动有冲突 

    Use old disk-only driver on primary interface 

    没人用这些古董了 

    Include IDE/ATA-2 DISK support 

    ATA-2支持,除非你的硬盘是古董,否则必选 

    Use multi-mode by default 

    如果不确定就别选,除非出现帮助中指出的错误 

    PCMCIA IDE support 

    通过PCMCIA卡与计算机连接的IDE设备,比如某些外置硬盘或光驱 

    Include IDE/ATAPI CDROM support 

    IDE光驱的就选 

    Include IDE/ATAPI TAPE support 

    IDE磁带的就选 

    Include IDE/ATAPI FLOPPY support 

    IDE软驱的就选 

    SCSI emulation support 

    SCSI仿真,以前刻录光碟时需要,现在不需要了 

    IDE Taskfile Access 

    对介质进行直接的原始访问,它是一个复杂且有效的测试和校验硬件的方案,可以在驱动层之下执行数据恢复工作 

    generic/default IDE chipset support 

    通用IDE芯片组支持 

    CMD640 chipset bugfix/support 

    586以前的主板上常用,毛病多多 

    PNP EIDE support 

    外接的即插即用EIDE卡支持 

    PCI IDE chipset support 

    基于PCI总线的IDE芯片组支持,帮助IDE驱动自动检测和配置所有基于PCIIDE接口 

    Sharing PCI IDE interrupts support 

    与其他PCI设备共享中断,一来可能冲突,二来降低性能,不选为妙 

    Boot off-board chipsets first support 

    不使用外接IDE控制器的就别选,使用外接IDE控制器的注意看帮助 

    Generic PCI IDE Chipset Support 

    通用的PCI IDE芯片组支持,如果你的芯片组在下面能找到就别选 

    OPTi 82C621 chipset enhanced support 

    OPTi 82C621 EIDE控制器 

    RZ1000 chipset bugfix/support 

    486/586年代的玩艺 

    Generic PCI bus-master DMA support 

    通用的PCI总线控制器DMA支持,586以上的系统都支持 

    Force enable legacy 2.0.X HOSTS to use DMA 

    历史遗留问题,别管它,不选 

    Use PCI DMA by default when available 

    默认启用DMA,586以上的系统都支持,建议选择 

    Enable DMA only for disks 

    只对硬盘启用DMA,若你的光驱不支持DMA就选上 

    {此处省略的部分按照自己主板上实际使用的芯片组进行选择

    Other IDE chipset support 

    其它IDE芯片组支持(多数需要在引导时指定特定的内核参数),如果你使用这样的芯片组就按实际情况选择子项吧 

    IGNORE word93 Validation BITS 

    ATA-4ATA-5规范中对于如何在80针的数据线上探测解释的不明确,导致了两种不同标准的产品同时出现,这可能导致ATA-66/100降低为ATA-33,若出现这个问题,可以打开这个选项忽略这种不同,但是又有可能导致另外的问题 

    Old hard disk (MFM/RLL/IDE) driver 

    旧版本的MFM/RLL/IDE驱动,不建议使用 

    SCSI device support 

    SCSI设备 

    RAID Transport Class 

    用于SCSI设备的软件RAID支持,需要配合外部工具 

    SCSI device support 

    有任何SCSI/SATA/USB/光纤/FireWire/IDE-SCSI仿真设备之一就必须选上 

    legacy /proc/scsi/ support 

    一些老的刻录程序可能需要它 

    SCSI disk support 

    SCSI硬盘或U 

    SCSI tape support 

    SCSI磁带 

    SCSI OnStream SC-x0 tape support 

    另一种SCSI磁带 

    SCSI CDROM support 

    SCSI CDROM 

    Enable vendor-specific extensions 

    仅在古董级的SCSI CDROM设备上才需要 

    SCSI generic support 

    若有SCSI硬盘/CD-ROM/tape之外的SCSI设备才需要选择 

    SCSI media changer support 

    一种SCSI备份设备 

    Probe all LUNs on each SCSI device 

    在每个SCSI设备上探测逻辑设备数.只在一个SCSI设备上有多个逻辑设备(模拟多个SCSI设备,比如多口读卡器)时才需要选它,一般的SCSI设备不需要 

    Verbose SCSI error reporting 

    以易读的方式报告SCSI错误,内核将会增大12K 

    SCSI logging facility 

    启用SCSI日志(默认并不开启,需要在挂载/proc后执行echo "scsi log token [level]" > /proc/scsi/scsi命令才能打开日志),可用于跟踪和捕获SCSI设备的错误 

    SCSI Transports 

    SCSI接口类型,下面的子项可以全不选,内核中若有其他部分依赖它,会自动选上 

    Parallel SCSI (SPI) Transport Attributes 

    传统且常见的并行SCSI(Ultra320/160之类

    FiberChannel Transport Attributes 

    光纤通道 

    iSCSI Transport Attributes 

    iSCSI是利用TCP/IP网络传送SCSI命令和数据的I/O技术 

    SAS Transport Attributes 

    串行SCSI传输属性支持(SAS对于的关系SPI犹如SATA对于ATA) 

    SAS Domain Transport Attributes 

    为使用了SAS Domain的驱动程序提供帮助 

    Compile the SAS Domain Transport Attributes in debug mode 

    仅供调试使用 

    SCSI low-level drivers 

    底层SCSI驱动程序,按你实际使用的产品选择 

    iSCSI Initiator over TCP/IP 

    用于iSCSITCP/IP网络上传播的起动程序 

    {此处省略的部分按照自己实际使用的控制器进行选择,仅用一个例子解说子项

    Adaptec AIC79xx U320 support 

    以基于PCI-XAdaptec Ultra 320 SCSI控制器为例解说子项 

    Maximum number of TCQ commands per device 

    每个SCSI设备的标记指令队列的最大长度(上限253).上限越高性能越好,但是对于SCSI设备较多的系统来说可能造成内存分配失败.此值还可以通过tag_info内核引导参数指定 

    Initial bus reset delay in milli-seconds 

    初始总线reset之后的延时微秒数(默认5000) 

    Enable Read Streaming for All Targets 

    对所有的标记队列启用Read Streaming(可以增强效能,但是在一些Adaptec早期的U320产品上有缺陷),此特性还可以通过rd_strm内核引导参数指定 

    Compile in Debugging Code 

    仅用于调试 

    Debug code enable mask (16383 for all debugging) 

    出错代码的掩码,0表示禁止所有,16383表示打开所有 

    Decode registers during diagnostics 

    将出错代码的解释内容编译进去,这样就不需要查看aic7xxx.reg中的出错代码表以确定出错代码的含意了 

    PCMCIA SCSI adapter support 

    通过PCMCIA卡与计算机连接的SCSI设备 

    Serial ATA and Parallel ATA drivers 

    SATAPATA设备 

    ATA device support 

    SATAPATA接口的硬盘或光驱等设备 

    AHCI SATA support 

    SATA高级主机控制器接口.要使用NCQ功能就必须选中它,另外BIOS中的SATA工作模式亦要选AHCI模式 

    Generic ATA support 

    基于新的ATA层的通用ATA控制器驱动,仅在你的芯片组在列表中找不到时才需要 

    {此处省略的部分按照自己主板上实际使用的芯片组进行选择

    Old CD-ROM drivers (not SCSI, not IDE) 

    老旧的CD-ROM驱动,这种CD-ROM既不使用SCSI接口,也不使用IDE接口 

    Multi-device support (RAID and LVM) 

    多设备支持(RAIDLVM).RAIDLVM的功能是使多个物理设备组建成一个单独的逻辑磁盘 

    RAID support 

    软件RAID(需要使用外部工具),若你有硬件RAID控制器,可以不选 

    Linear (append) mode 

    追加模式(简单的将一个分区追加在另一个分区之后

    RAID-0 (striping) mode 

    RAID-0(等量分割)模式 

    RAID-1 (mirroring) mode 

    RAID-1(镜像)模式 

    RAID-10 (mirrored striping) mode 

    RAID 0 1模式 

    RAID-4/RAID-5/RAID-6 mode 

    这些模式比较复杂,一般不用 

    Support adding drives to a raid-5 array 

    RAID-5阵列可以通过添加额外的驱动器进行扩展(restriping),这个选项允许在线进行这样的操作,同时要求mdadm的版本大于2.4.1 

    Multipath I/O support 

    多路IO支持是指在服务器和存储设备之间使用冗余的物理路径组件创建"逻辑路径",如果这些组件发生故障并造成路径失败,多路径逻辑将为I/O使用备用路径以使应用程序仍然可以访问其数据 

    Faulty test module for MD 

    用于MD(Multi-device)的缺陷测试模块 

    Device mapper support 

    Device-mapper是一个底层的卷管理器,不用LVM就别选了 

    Fusion MPT device support 

    Fusion MPT设备支持 

    IEEE 1394 (FireWire) support 

    IEEE 1394(火线

    I2O device support 

    I2O(智能IO)设备使用专门的I/O处理器负责中断处理/缓冲存取/数据传输等烦琐任务以减少CPU占用,一般的主板上没这种东西 

    Network device support 

    网络设备 

    Network device support 

    网络设备支持,当然要选啦 

    Intermediate Functional Block support 

    这是一个中间层驱动,可以用来灵活的配置资源共享,看不懂的可以不选 

    Dummy net driver support 

    哑接口网络,使用SLIPPPP传输协议(ADSL用户)的需要它 

    Bonding driver support 

    将多个以太网通道绑定为一个,也就是两块网卡具有相同的IP地址并且聚合成一个逻辑链路工作,可以用来实现负载均衡或硬件冗余 

    EQL (serial line load balancing) support 

    串行线路的负载均衡.如果有两个MODEM和两条电话线而且用SLIPPPP协议,该选项可以让您同时使用这两个MODEM以达到双倍速度(在网络的另一端也要有同样的设备

    Universal TUN/TAP device driver support 

    TUN/TAP可以为用户空间提供包的接收和发送服务,比如可以用来虚拟一张网卡或点对点通道 

    General Instruments Surfboard 1000 

    SURFboard 1000插卡式Cable Medem(ISA接口),这玩意大概早就绝种了 

    ARCnet devices 

    一般人没有ARCnet类型的网卡 

    PHY device support 

    数据链路层芯片简称为MAC控制器,物理层芯片简称之为PHY,通常的网卡把MACPHY的功能做到了一颗芯片中,但也有一些仅含PHY"软网卡

    Ethernet (10 or 100Mbit) 

    目前最广泛的10/100M网卡 

    Ethernet (1000 Mbit) 

    目前已成装机主流的1000M网卡 

    Ethernet (10000 Mbit) 

    万兆网卡无福消受啦 

    Token Ring devices 

    令牌环网设备 

    Wireless LAN (non-hamradio) 

    无线LAN 

    PCMCIA network device support 

    PCMCIACardBus网卡 

    Wan interfaces 

    WAN接口 

    ATM drivers 

    异步传输模式 

    FDDI driver support 

    光纤分布式数据接口 

    HIPPI driver support 

    HIPPI(高性能并行接口)是一个在短距离内高速传送大量数据的点对点协议 

    PLIP (parallel port) support 

    将并口映射成网络设备,这样两台机器即使没有网卡也可以使用并口通过并行线传输IP数据包 

    PPP (point-to-point protocol) support 

    点对点协议,PPP已经基本取代SLIP,ADSL的可要仔细选择了 

    PPP multilink support 

    多重链路协议(RFC1990)允许你将多个线路(物理的或逻辑的)组合为一个PPP连接一充分利用带宽,这不但需要pppd的支持,还需要ISP的支持 

    PPP filtering 

    允许对通过PPP接口的包进行过滤 

    PPP support for async serial ports 

    通过标准异步串口(COM1,COM2)使用PPP,比如使用老式的外置modem(非同步modemISDN modem)上网 

    PPP support for sync tty ports 

    通过同步tty设备(比如SyncLink适配器)使用PPP,常用于高速租用线路(比如T1/E1) 

    PPP Deflate compression 

    PPP提供Deflate(等价于gzip压缩算法)压缩算法支持,需要通信双方的支持才有效 

    PPP BSD-Compress compression 

    PPP提供BSD(等价于LZW压缩算法,没有gzip高效)压缩算法支持,需要通信双方的支持才有效 

    PPP MPPE compression (encryption) 

    PPP提供MPPE加密协议支持,它被用于微软的P2P隧道协议中 

    PPP over Ethernet 

    这就是ADSL用户最常见的PPPoE,也就是在以太网上跑的PPP协议 

    PPP over ATM 

    ATM上跑的PPP 

    SLIP (serial line) support 

    一个在串行线上(例如电话线)传输IP数据报的TCP/IP协议.小猫一族的通讯协议,与宽带用户无关 

    CSLIP compressed headers 

    CSLIP协议比SLIP,它将TCP/IP(而非数据)进行压缩传送,需要通信双方的支持才有效 

    Keepalive and linefill 

    SLIP驱动支持RELCOM linefillkeepalive监视,这在信号质量比较差的模拟线路上是个好主意 

    Six bit SLIP encapsulation 

    这种线路非常罕见,不要选它 

    Fibre Channel driver support 

    光纤通道 

    Traffic Shaper 

    流量整形,已废弃 

    Network console logging support 

    通过网络记录内核信息 

    Netpoll support for trapping incoming packets 

    不知道Netpoll是什么的可以不选 

    Netpoll traffic trapping 

    不知道Netpoll是什么的可以不选 

    ISDN subsystem 

    综合业务数字网(Integrated Service Digital Network) 

    Telephony Support 

    VoIP支持 

    Input device support 

    输入设备 

    Generic input layer (needed for keyboard,mouse...) 

    通用输入层,要使用键盘鼠标的就必选 

    Support for memoryless force-feedback devices 

    游戏玩家使用的力反馈设备 

    Mouse interface 

    鼠标接口 

    Provide legacy /dev/psaux device 

    仍然支持作为传统的/dev/psaux设备 

    Horizontal screen resolution 

    数字化转换器或图形输入板的水平分辩率 

    Vertical screen resolution 

    数字化转换器或图形输入板的垂直分辨率 

    Joystick interface 

    游戏杆 

    Touchscreen interface 

    触摸屏 

    Event interface 

    能够利用/dev/input/eventX来存取输入设备的事件 

    Event debugging 

    该选项仅供调试 

    Keyboards 

    键盘驱动,一般选个AT键盘即可 

    Mouse 

    鼠标驱动,一般选个PS/2鼠标即可 

    Joysticks 

    游戏杆驱动 

    Touchscreens 

    触摸屏驱动 

    Miscellaneous devices 

    其他杂项驱动,一般选个PC喇叭即可 

    Hardware I/O ports 

    硬件I/O端口 

    Serial I/O support 

    使用PS/2键盘或鼠标的就必选 

    i8042 PC Keyboard controller 

    PS/2接口的键盘和鼠标 

    Serial port line discipline 

    串口键盘或鼠标 

    ct82c710 Aux port controller 

    一种德州仪器TravelMate笔记本上使用QuickPort接口的鼠标 

    Parallel port keyboard adapter 

    并口键盘或鼠标 

    PCI PS/2 keyboard and PS/2 mouse controller 

    接在移动式扩展坞(Docking station)上的键盘或鼠标 

    PS/2 driver library 

    PS/2接口上的设备提供驱动(比如PS/2鼠标或标准AT键盘

    Raw access to serio ports 

    不是hacker就别选了 

    Gameport support 

    就是早年"小霸王"游戏机上的那种手柄 

    Character devices 

    字符设备 

    Virtual terminal 

    虚拟终端.除非是嵌入式系统,否则必选 

    Support for console on virtual terminal 

    内核将一个虚拟终端用作系统控制台(将诸如模块错误/内核错误/启动信息之类的警告信息发送到这里,通常是第一个虚拟终端).除非是嵌入式系统,否则必选 

    Support for binding and unbinding console drivers 

    虚拟终端是通过控制台驱动程序与物理终端相结合的,但在某些系统上可以使用多个控制台驱动程序(framebuffer控制台驱动程序),该选项使得你可以选择其中之一 

    Non-standard serial port support 

    非标准串口支持.这样的设备早就绝种了 

    Serial drivers 

    串口驱动.如果你有老式的串口鼠标或小猫之类的就选吧 

    Unix98 PTY support 

    伪终端(PTY)可以模拟一个终端,它由slave(等价于一个物理终端)master(被一个诸如xterms之类的进程用来读写slave设备)两部分组成的软设备.使用telnetssh远程登录者必选 

    Legacy (BSD) PTY support 

    使用过时的BSD风格的/dev/ptyxx作为master,/dev/ttyxx作为slave,这个方案有一些安全问题,建议不选 

    Parallel printer support 

    并口打印机 

    Support for console on line printer 

    允许将内核信息输出到并口,这样就可以打印出来 

    Support for user-space parallel port device drivers 

    /dev/parport设备支持,比如deviceid之类的程序需要使用它,大部分人可以关闭该选项 

    Texas Instruments parallel link cable support 

    德州仪器生产的一种使用并行电缆的图形计算器,如果你不知道这是什么设备就别选了 

    IPMI 

    可以利用IPMI远程监视服务器的物理特征(温度,电压,风扇,电源,机箱入侵),它是独立于CPU,BIOS,OS,只要接通电源就可以实现对服务器的监控 

    IPMI top-level message handler 

    IPMI消息处理器,要启用IPMI远程监视这个就必选 

    Generate a panic event to all BMCs on a panic 

    当发生紧急情况(panic),IPMI消息处理器将会向每一个已注册的底板管理控制器(BMC)接口生成一个描述该panicIPMI事件,这些事件可以引发日志记录/报警/重启/关机等动作 

    Generate OEM events containing the panic string 

    当发生紧急情况(panic),IPMI消息处理器将会产生OEM类型的事件 

    Device interface for IPMI 

    IPMI消息处理器提供一个IOCTL接口已便用户空间的进程也可以使用IPMI 

    IPMI System Interface handler 

    向系统提供接口(KCS,SMIC),一般你用了IPMI就需要选上 

    IPMI Watchdog Timer 

    启用IPMI Watchdog定时器 

    IPMI Poweroff 

    允许IPMI消息处理器关闭机器 

    Watchdog Cards 

    能让系统在出现致命故障后自动重启,如果没有硬件Watchdog,建议使用Hangcheck timer而不是软件Watchdog 

    Watchdog Timer Support 

    选中它并选中下面的一个Driver之后,再创建一个/dev/watchdog节点即可拥有一只Watchdog.更多信息请参考内核帮助 

    Disable watchdog shutdown on close 

    一旦Watchdog启动后就禁止将其停止 

    Software watchdog 

    软件Watchdog,使用它不需要有任何硬件的支持,但是可靠性没有硬件Watchdog 

    {此处省略的硬件Watchdog部分请按照自己主板实际使用的芯片(可能在南桥中)进行选择

    Hardware Random Number Generator Core support 

    硬件随机数发生器核心支持 

    Intel HW Random Number Generator support 

    Intel芯片组的硬件随机数发生器 

    AMD HW Random Number Generator support 

    AMD芯片组的硬件随机数发生器 

    AMD Geode HW Random Number Generator support 

    AMD Geode LX的硬件随机数发生器 

    VIA HW Random Number Generator support 

    VIA芯片组的硬件随机数发生器 

    /dev/nvram support 

    直接存取主板上CMOS的接口,太危险了!建议别选 

    Enhanced Real Time Clock Support 

    启用该选项并创建/dev/rtc文件后就可以通过/proc/driver/rtc访问系统的硬件时钟(RTC),众多功能依赖于它(SMP,IRQ共享,定时器),建议选择 

    Double Talk PC internal speech card support 

    RC Systems公司制造的一种语音合成器 

    Siemens R3964 line discipline 

    与使用西门子R3964协议的设备同步通信,除非你有一些诸如PLC之类的特殊设备,否则别选 

    Applicom intelligent fieldbus card support 

    Applicom international公司生产的用于现场总线连接卡 

    Sony Vaio Programmable I/O Control Device support 

    Sony VAIO笔记本上的东西 

    Ftape, the floppy tape device driver 

    还使用磁带的就选吧 

    /dev/agpgart (AGP Support) 

    AGP总线支持,AGP显卡的还必须从子项中选取符合自己显卡型号的驱动 

    Direct Rendering Manager 

    DRI允许应用程序以高效安全的方式直接访问图形处理,主要用于硬件3D加速.桌面用户建议选择,同时还必须从子项中选取符合自己显卡型号的驱动 

    PCMCIA character devices 

    使用PCMCIA接口的字符设备,如果你有这种设备就到子项中去选吧 

    ACP Modem (Mwave) support 

    IBM Thinkpad上的一种软猫,古董产品 

    NatSemi SCx200 GPIO Support 

    松下的一种通用输入输出(GPIO)芯片,常用于嵌入式系统 

    NatSemi PC8736x GPIO Support 

    松下的一种通用输入输出(GPIO)芯片,常用于嵌入式系统 

    NatSemi Base GPIO Support 

    松下的一种通用输入输出(GPIO)芯片,常用于嵌入式系统 

    AMD CS5535/CS5536 GPIO 

    常用于AMD Geode的一种通用输入输出(GPIO)芯片,常用于嵌入式系统 

    RAW driver (/dev/raw/rawN) 

    已废弃 

    HPET - High Precision Event Timer 

    高精度事件定时器 

    Allow mmap of HPET 

    允许对HPET寄存器进行映射,建议选中 

    Hangcheck timer 

    宕机检测定时器周期性地检查系统任务调度程序以确定系统的运行状况,如果超过阈值,计算机将重新启动.它通常可以比Watchdog更好地解决可用性和可靠性问题 

    TPM devices 

    基于硬件的"可信赖平台模块",与数字霸权管理是一路货,全不选 

    Telecom clock driver for MPBL0010 ATCA SBC 

    没见过这种硬件,不选 

    I2C support 

    I2CPhilips极力推动的微控制应用中使用的低速串行总线协议,可用于监控电压/风扇转速/温度等.SMBus(系统管理总线)I2C的子集.除硬件传感器外"Video For Linux"也需要该模块的支持 

    I2C device interface 

    I2C设备接口,允许用户空间的程序通过/dev/i2c-*设备文件使用I2C总线 

    I2C Algorithms 

    I2C算法,可以全不选,若有其他部分依赖其子项时,会自动选上 

    I2C Hardware Bus support 

    按实际硬件情况选对应的子项即可 

    Miscellaneous I2C Chip support 

    其他不常见的产品,按需选择 

    I2C Core debugging messages 

    仅供调试 

    I2C Algorithm debugging messages 

    仅供调试 

    I2C Bus debugging messages 

    仅供调试 

    I2C Chip debugging messages 

    仅供调试 

    SPI support 

    串行外围接口(SPI)常用于微控制器(MCU)与外围设备(传感器,eeprom,flash,编码器,模数转换器)之间的通信,比如MMCSD卡就通常需要使用SPI 

    Dallas's 1-wire bus 

    一线总线 

    Hardware Monitoring support 

    当前主板大多都有一个监控硬件健康的设备用于监视温度/电压/风扇转速等,请按照自己主板实际使用的芯片选择相应的子项.另外,该功能还需要I2C的支持 

    Multimedia devices 

    多媒体设备 

    Video For Linux 

    要使用音频/视频设备或FM收音卡的就必选,此功能还需要I2C的支持 

    Enable Video For Linux API 1 

    使用老旧的V4L第一版API,反对使用 

    Enable Video For Linux API 1 compatible Layer 

    提供对第一版V4L的兼容,建议不选 

    Video Capture Adapters 

    视频捕获卡 

    Enable advanced debug functionality 

    该选项仅供调试 

    Autoselect pertinent encoders/decoders and other helper chips 

    为视频卡自动选择所需的编码和解码模块,建议选择 

    Virtual Video Driver 

    虚拟视频卡,仅供测试视频程序和调试 

    SAA5246A, SAA5281 Teletext processor 

    该选项仅对欧洲用户有意义,中国用户不需要 

    SAA5249 Teletext processor 

    该选项仅对欧洲用户有意义,中国用户不需要 

    {此处省略的硬件请按照自己实际使用的芯片进行选择

    V4L USB devices 

    使用USB接口的视频卡,子项请按照自己实际使用的视频卡选择 

    Radio Adapters 

    音频卡,子项请按照自己实际使用的音频卡选择 

    Digital Video Broadcasting Devices 

    数字视频广播设备(DVB卡或机顶盒),子项请按自己实际使用的硬件选择 

    DABUSB driver 

    USB接口的数字音频广播设备接收器 

    Graphics support 

    图形设备/显卡支持 

    Enable firmware EDID 

    允许访问Video BIOS中的扩展显示器识别数据(EDID),使用Matrox显卡的建议关闭,建议桌面用户选择 

    Support for frame buffer devices 

    帧缓冲设备是为了让应用程序使用统一的接口操作显示设备而对硬件进行的抽象,建议桌面用户选择 

    Enable Video Mode Handling Helpers 

    使用GTFEDID来帮助处理显示模式,可以不选,若有其他选项依赖于它时,会自动选上 

    Enable Tile Blitting Support 

    可以不选,若有其他选项依赖于它时,会自动选上 

    VGA 16-color graphics support 

    16VGA显卡.如果你有这种古董就选吧 

    VESA VGA graphics support 

    符合VESA 2.0标准的显卡的通用驱动,如果显卡芯片在下面能够找到就可以不选 

    {此处省略的硬件请按照自己实际使用的显卡芯片进行选择

    Virtual Frame Buffer support 

    仅供调试使用 

    Console display driver support 

    控制台显示驱动 

    VGA text console 

    文本控制台,必选 

    Enable Scrollback Buffer in System RAM 

    在内存中开辟额外的屏幕缓冲区,这将允许你回滚屏幕 

    Scrollback Buffer Size (in KB) 

    在内存中开辟的额外屏幕缓冲区大小 

    Video mode selection support 

    允许在内核启动时使用"vga="选择文本模式,如果你希望一行能够显示更多字符的话可以打开它 

    MDA text console (dual-headed) 

    如果你有古董级别的单色显卡并且作为第二块显卡使用以实现双头显示就选上吧 

    Framebuffer Console support 

    基于framebuffer的控制台驱动,服务器可以不选 

    Framebuffer Console Rotation 

    显示画面旋转,它可能大大降低显示速度,建议不选 

    Select compiled-in fonts 

    选择内建字体 

    VGA 8x8 font 

    高分辨率下的小字体 

    VGA 8x16 font 

    底分辨率下的大字体 

    {其它字体省略

    Logo configuration 

    启动时显示linuxlogo(一幅企鹅图像),喜欢炫一下的就选吧 

    Backlight & LCD device support 

    LCD显示器支持,一般无需选择 

    Sound 

    声卡 

    Advanced Linux Sound Architecture 

    使用声卡者必选 

    Sequencer support 

    音序器支持(MIDI必需),除非你确定不需要,否则请选上 

    Sequencer dummy client 

    除非你要同时连接到多个MIDI设备或应用程序,否则请不要选择 

    OSS Mixer API 

    OSS混音器API仿真,许多程序目前仍然需要使用它,建议选择 

    OSS PCM (digital audio) API 

    OSS数字录音(PCM)API模拟,许多程序目前仍然需要使用它,建议选择 

    OSS PCM (digital audio) API - Include plugin system 

    建议不选 

    OSS Sequencer API 

    OSS音序器支持,许多程序目前仍然需要使用它,建议选择 

    RTC Timer support 

    ALSA启用RTC定时器支持,建议选择 

    Use RTC as default sequencer timer 

    RTC当作默认的时序脉冲发生器 

    Dynamic device file minor numbers 

    仅供拥有多个声卡的用户选择 

    Support old ALSA API 

    支持已被废弃的老版本ALSA API 

    Verbose procfs contents 

    仅供调试使用 

    Verbose printk 

    仅供调试使用 

    Debug 

    仅供调试使用 

    Generic devices 

    通用设备 

    Dummy (/dev/null) soundcard 

    仅供调试 

    Virtual MIDI soundcard 

    虚拟MIDI驱动,允许将使用原始MIDI设备的应用程序连接到音序器客户端,如果你不知道MIDI是什么就别选 

    {此处省略的硬件请按照自己实际使用的声卡芯片进行选择

    PCI devices 

    PCI接口的声卡,请按实际使用的声卡选择子项 

    USB devices 

    USB接口的声卡,请按实际使用的声卡选择子项 

    PCMCIA devices 

    PCMCIA接口的声卡,请按实际使用的声卡选择子项 

    Open Sound System 

    反对使用 

    USB support 

    USB支持 

    Support for Host-side USB 

    主机端(Host-side)USB支持.通用串行总线(USB)是一个串行总线子系统规范,它比传统的串口速度更快并且特性更丰富(供电,热插拔,最多可接127个设备等),有望在将来一统PC外设接口.USB"Host"(主机)被称为""(也可以理解为是主板上的USB控制器),外部设备被称为"叶子",而内部的节点则称为"hub"(集线器).基本上只要你想使用任何USB设备都必须选中此项.另外,你还需要从下面选中至少一个"Host Controller Driver"(HCD),比如适用于USB1.1"UHCI HCD support""OHCI HCD support",适用于USB2.0"EHCI HCD (USB 2.0) support".如果你拿不准的话把他们全部选中一般也不会出问题.如果你的系统有设备端的USB接口(也就是你的系统可以作为"叶子"使用),请到"USB Gadget"中进行选择

    USB verbose debug messages 

    仅供调试使用 

    USB device filesystem 

    /proc/bus/usb里列出当前连接的usb设备(mount -t usbfs none /proc/bus/usb),这样用户空间的程序就可以直接访问这些USB设备,基本上你要使用USB设备的话就必须选中此项 

    Enforce USB bandwidth allocation 

    执行usb带宽分配限制,禁止打开占用usb总线带宽超过90%的设备,关闭该选项可能会导致某些设备无法正常工作 

    Dynamic USB minor allocation 

    除非你有超过16个同类型的USB设备,否则不要选择 

    USB selective suspend/resume and wakeup 

    usb设备的挂起和恢复,毛病多多且许多设备尚未支持它,建议不选 

    EHCI HCD (USB 2.0) support 

    USB 2.0支持(大多数2002年以后的主板都支持).如果你选中了此项,一般来说你还需要选中OHCIUHCI驱动 

    Full speed ISO transactions 

    由于USB 2.0支持低速(1.5Mbps)/全速(12Mbps)/高速(480Mbps)三种规格的外部设备,为了将全/低速设备对高速设备可用带宽的影响减到最小,USB2.0集线器中提供了一种事务转换(Transaction Translator)机制,该机制支持在Hub连接的是全/低速设备的情况下,允许主控制器与Hub之间以高速传输所有设备的数据,从而节省不必要的等待.如果你没有外置的USB集线器就无需选择 

    Root Hub Transaction Translators 

    带有USB 2.0接口的主板上都有一个"根集线器"(Root Hub)以允许在无需额外购买hub的情况下就可以提供多个USB插口,其中的某些产品还在其中集成了事务转换(Transaction Translator)功能,这样就不需要再额外使用一个兼容OHCIUHCI的控制器来兼容USB 1.1,即使你不太清楚自己主板上的根集线器是否集成了事务转换功能也可以安全的选中此项 

    Improved Transaction Translator scheduling 

    如果你有一个高速USB 2.0 hub并且某些接在这个hub上的低速或全速设备不能正常工作(显示'cannot submit datapipe: error -28''error -71'错误),可以考虑选上 

    ISP116X HCD support 

    ISP1160/ISP1161主机USB控制器,是符合USB2.0全速规范的单片主机控制器和设备控制器,支持OHCI标准 

    OHCI HCD support 

    开放主机控制接口(OHCI)是主要针对嵌入式系统的USB 1.1主机控制器规范 

    UHCI HCD (most Intel and VIA) support 

    通用主机控制器接口(UHCI)是主要针对PC机的USB 1.1主机控制器规范.另外,EHCI也可能需要它 

    Elan U132 Adapter Host Controller 

    如果你有这种硬件就选吧 

    SL811HS HCD support 

    如果你有这种硬件就选吧 

    USB Bluetooth TTY support 

    USB蓝牙TTY设备支持 

    USB MIDI support 

    USB MIDI设备支持 

    USB Modem (CDC ACM) support 

    USB接口的猫或ISDN适配器 

    USB Printer support 

    USB打印机 

    USB Mass Storage support 

    USB存储设备(U,USB硬盘,USB软盘,USB CD-ROM,USB磁带,memory sticks,数码相机,读卡器等等).该选项依赖于'SCSI device support',且大部分情况下还依赖于'SCSI disk support'(比如U盘或USB硬盘

    USB Mass Storage verbose debug 

    仅供调试使用 

    {省略的部分请按照自己实际使用的硬件选, (事实上大部分人都没有这些设备,可以全不选)} 

    The shared table of common (or usual) storage devices 

    该模块包含一张记录了常用USB存储设备及其驱动的表格,这样你无需重新编译模块即可在切换这些设备时自动邦定对应的驱动(还需要对/etc/modprobe.conf进行相应的设置).不确定的建议不选 

    USB Human Interface Device (full HID) support 

    USB人机界面设备(鼠标/键盘/游戏杆/手写版等人操作计算机的设备),该驱动不能和"USB HID Boot Protocol drivers"同时使用 

    HID input layer support 

    如果你有USB接口的鼠标/键盘/游戏杆/手写板等输入设备就必选 

    Enable support for iBook/PowerBook special keys 

    苹果iBooks/PowerBooks键盘上的Fn/Numlock等功能键支持 

    Force feedback support 

    力反馈设备 

    /dev/hiddev raw HID device support 

    如果你有USB监控装置或不间断电源(UPS)之类的非输入设备就选上 

    USB HID Boot Protocol drivers 

    如果你有绝对的把握确信不为自己的键盘和鼠标使用通常的HID驱动,而要使用Boot Protocol模式的HID驱动(常见于嵌入式环境)就选吧 

    Aiptek 6000U/8000U tablet support 

    一种手写板 

    Wacom Intuos/Graphire tablet support 

    一种手写/绘图板 

    Acecad Flair tablet support 

    一种数控绘图板 

    KB Gear JamStudio tablet support 

    一种手写/绘图板 

    Griffin PowerMate and Contour Jog support 

    一种具有调节音量/滚动文本/视频快进快退等功能的产品 

    USB Touchscreen Driver 

    USB触摸屏驱动 

    Yealink usb-p1k voip phone 

    一种VoIP电话 

    X-Box gamepad support 

    X-Box游戏板 

    ATI / X10 USB RF remote control 

    一种usb远程控制设备 

    ATI / Philips USB RF remote control 

    一种usb远程控制设备 

    Keyspan DMR USB remote control 

    一种usb远程控制设备 

    Apple USB Touchpad support 

    苹果机上的触摸板 

    USB Mustek MDC800 Digital Camera support 

    一种数码相机 

    Microtek X6USB scanner support 

    一种扫描仪 

    USB Network Adapters 

    USB网络适配器,如果你有这种设备请按自己实际使用的硬件选择子项 

    USB Monitor 

    usb流量监控,一般没必要选它 

    USS720 parport driver 

    一种USB接口转并口的转换设备 

    USB Serial Converter support 

    USB接口转串口的转换设备 

    EMI 6|2m USB Audio interface support 

    一种USB音频设备 

    EMI 2|6 USB Audio interface support 

    一种USB音频设备 

    ADU devices from Ontrak Control Systems 

    Ontrak Control Systems公司的一种自动拨号设备 

    USB Auerswald ISDN support 

    一种ISDN设备 

    USB Diamond Rio500 support 

    一种mp3播放机 

    USB Lego Infrared Tower support 

    一种无线发射机 

    USB LCD driver support 

    USB液晶显示器 

    USB LED driver support 

    USB发光二极管 

    Cypress CY7C63xxx USB driver support 

    德国AK Modul-Bus Computer GmbH公司的一种产品,不知道是用来干什么的 

    Cypress USB thermometer driver support 

    一种温度计?? 

    USB Phidgets drivers 

    来自Phidgets公司的各种USB产品 

    Siemens ID USB Mouse Fingerprint sensor support 

    西门子公司的一种指纹传感器 

    Elan PCMCIA CardBus Adapter USB Client 

    Elan公司的一种USBPCMCIA的适配器 

    Apple Cinema Display support 

    苹果公司的一种Cinema Display 

    USB 2.0 SVGA dongle support (Net2280/SiS315) 

    一种软件狗 

    USB LD driver 

    USB LD驱动 

    PlayStation 2 Trance Vibrator driver support 

    SONYPS2上面的"入迷振荡器"(类似于力反馈手柄

    USB testing driver 

    测试中的驱动,别选 

    USB DSL modem support 

    USB DSL 

    USB Gadget Support 

    其他各种杂七杂八的usb小玩艺 

    MMC/SD Card support 

    MMC/SD卡支持 

    LED devices 

    发光二级管(LED)设备 

    InfiniBand support 

    InfiniBand是一个通用的高性能I/O规范,它使得存储区域网中以更低的延时传输I/O消息和集群通讯消息并且提供很好的伸缩性.用于Linux服务器集群系统 

    EDAC - error detection and reporting (RAS) 

    错误检测与纠正(EDAC)的目标是发现并报告甚至纠正在计算机系统中发生的错误,这些错误是由CPU或芯片组报告的底层错误(内存错误/缓存错误/PCI错误/温度过高,等等),建议选择.如果这些代码报告了一个错误,请到http://bluesmoke.sourceforge.net/http://buttersideup.com/edacwiki查看更多信息 

    Debugging 

    仅供调试使用 

    Main Memory EDAC (Error Detection And Correction) reporting 

    一些系统能够检测和修正主内存中的错误,EDAC能够报告这些信息(EDAC自己检测到的或者根据ECC得到的).EDAC还会尽量检测这些错误发生在哪里以便于替换损坏的内存.建议选择并按照你实际使用的芯片组选取子项 

    Error detecting method 

    错误检测方法,当前只有一个"Poll for errors"(错误轮询)可用 

    Real Time Clock 

    所有的PC机主板都包含一个电池动力的实时时钟芯片,以便在断电后仍然能够继续保持时间,RTC通常与CMOS集成在一起,因此BIOS可以从中读取当前时间 

    RTC class 

    通用RTC类支持,选中此项后你就可以在操作系统中使用一个或多个RTC设备(你还必须从下面启用一个或多个RTC接口

    Set system time from RTC on startup 

    系统启动时使用从指定的RTC设备中读取的时间来设定系统时间,通常这将有助于避免不必要的文件系统检测程序(fsck)的运行,建议选择 

    The RTC to read the time from 

    指定具体从哪个RTC设备中读取时间 

    RTC debug support 

    仅供调试使用 

    sysfs 

    允许通过sysfs接口使用RTC,允许多个RTC设备,也就是/sys/class/rtc/rtc0~N 

    proc 

    允许通过proc接口使用RTC,仅允许一个RTC设备,也就是/proc/driver/rtc 

    dev 

    允许通过dev接口使用RTC,允许多个RTC设备,也就是"udev"设置的/dev/rtc0~N,建议你建立一个指向其中之一的软连接/dev/rtc,某些程序(比如hwclock)需要使用/dev/rtc 

    RTC UIE emulation on dev interface 

    如果底层rtc芯片驱动没有提供RTC_UIE就仿真一个RTC_UIE.那些请求将产生每秒一次的更新请求以用来同步[这个选项的意思我也搞不清楚究竟时啥意思,翻译的也可能有误

    {此处省略的RTC驱动请按照自己实际使用的RTC芯片进行选择

    DMA Engine support 

    Intel Bensley双核服务器平台开始引入的数据移动加速(Data Movement Acceleration)引擎,它将某些传输数据的操作从CPU转移到专用硬件,从而可以进行异步传输并减轻CPU负载.Intel已将此项技术变为开放的标准,将来应当会有更多的厂商支持 

    Network: TCP receive copy offload 

    通过在网络栈中利用DMA引擎来减少接收数据包时的copy-to-user操作以释放CPU资源,这是DMA引擎目前最主要的用途 

    Intel I/OAT DMA support 

    Intel I/O加速技术(Intel I/O Acceleration Technology)中的DMA支持,基于Intel Bensley的新一代服务器平台都支持它 

    File systems
    文件系统
    强烈建议在选择之前先看看各种文件系统的比较

    Second extended fs support 

    Ext2文件系统是Linux的标准文件系统,擅长处理稀疏文件 

    Ext2 extended attributes 

    Ext2文件系统扩展属性(inode关联的name:value)支持 

    Ext2 POSIX Access Control Lists 

    POSIX ACL(访问控制列表)支持,可以更精细的针对每个用户进行访问控制,需要外部库和程序的支持 

    Ext2 Security Labels 

    安全标签允许选择使用不同的安全模型实现(SELinux)的访问控制模型,如果你没有使用需要扩展属性的安全模型就别选 

    Ext2 execute in place support 

    程序在写入存储介质时就已经分配好运行时的地址,因此不需要载入内存即可在芯片内执行,一般仅在嵌入式系统上才有这种设备 

    Ext3 journalling file system support 

    Ext3性能平庸,使用journal日志模式时数据完整性非常好(但怪异的是此时多线程并发读写速度却最快

    Ext3 extended attributes 

    Ext3文件系统扩展属性(inode关联的name:value)支持 

    Ext3 POSIX Access Control Lists 

    POSIX ACL(访问控制列表)支持,可以更精细的针对每个用户进行访问控制,需要外部库和程序的支持 

    Ext3 Security Labels 

    安全标签允许选择使用不同的安全模型实现(SELinux)的访问控制模型,如果你没有使用需要扩展属性的安全模型就别选 

    Ext4dev/ext4 extended fs support 

    尚处于开发状态的Ext4 

    JBD (ext3) debugging support 

    仅供开发者使用 

    JBD2 (ext4dev/ext4) debugging support 

    仅供开发者使用 

    Reiserfs support 

    性能几乎全面超越Ext2(处理稀疏文件比Ext2),小文件(小于4k)性能非常突出,创建和删除文件速度最快,处理大量目录和文件(5k-20k)时仍然非常迅速.日志模式建议使用Ordered,追求极速可使用Writeback模式,追求安全可使用Journal模式.建议使用noatime,notail选项挂载分区以提高速度和避免bug.用于NFS和磁盘限额时需要额外的补丁 

    Enable reiserfs debug mode 

    启用ReiserFS调试模式,仅供开发者使用 

    Stats in /proc/fs/reiserfs 

    /proc/fs/reiserfs文件中显示Reiserfs文件系统的状态,仅供开发者使用 

    ReiserFS extended attributes 

    ReiserFS文件系统扩展属性(inode关联的name:value)支持 

    ReiserFS POSIX Access Control Lists 

    POSIX ACL(访问控制列表)支持,可以更精细的针对每个用户进行访问控制,需要外部库和程序的支持 

    ReiserFS Security Labels 

    安全标签允许选择使用不同的安全模型实现(SELinux)的访问控制模型,如果你没有使用需要扩展属性的安全模型就别选了 

    JFS filesystem support 

    IBMJFS文件系统 

    XFS filesystem support 

    碎片最少,多线程并发读写最佳,大文件(>64k)性能最佳,创建和删除文件速度较慢.由于XFS在内存中缓存尽可能多的数据且仅当内存不足时才会将数据刷到磁盘,所以应当仅在确保电力供应不会中断的情况下才使用XFS 

    Quota support 

    XFS的磁盘配额支持 

    Security Label support 

    扩展的安全标签支持.SElinux之类的安全系统会使用到这样的扩展安全属性 

    POSIX ACL support 

    POSIX ACL(访问控制列表)支持,可以更精细的针对每个用户进行访问控制,需要外部库和程序的支持 

    Realtime support 

    实时子卷是专门存储文件数据的卷,可以允许将日志与数据分开在不同的磁盘上 

    GFS2 file system support 

    一种用于集群的文件系统 

    OCFS2 file system support 

    一种用于集群的文件系统 

    Minix fs support 

    老古董文件系统 

    ROM file system support 

    用于嵌入式系统的内存文件系统的支持 

    Inotify file change notification support 

    新式的文件系统的变化通知机制,简洁而强大,用于代替老旧的Dnotify 

    Inotify support for userspace 

    用户空间的Inotify支持 

    Quota support 

    磁盘配额支持,限制某个用户或者某组用户的磁盘占用空间,Ext2/Ext3/Reiserfs都支持它 

    Old quota format support 

    老式的配额格式支持 

    Quota format v2 support 

    新的v2格式允许使用32位的UID/GID 

    Dnotify support 

    旧式的基于目录的文件变化的通知机制(新机制是Inotify),目前仍然有一些程序依赖它 

    Kernel automounter support 

    内核自动加载远程文件系统(v3,就算选也不选这个旧的

    Kernel automounter version 4 support (also supports v3) 

    新的(v4)的内核自动加载远程文件系统的支持,也支持v3 

    Filesystem in Userspace support 

    FUSE允许在用户空间实现一个文件系统,如果你打算开发一个自己的文件系统或者使用一个基于FUSE的文件系统就选吧 

    CD-ROM/DVD Filesystems 

    CD-ROM/DVD文件系统 

    ISO 9660 CDROM file system support 

    CD-ROM的标准文件系统 

    Microsoft Joliet CDROM extensions 

    MicrosoftISO 9660文件系统的Joliet扩展,允许在文件名中使用Unicode字符,也允许长文件名 

    Transparent decompression extension 

    LinuxISO 9660文件系统的扩展,允许将数据透明的压缩存储在CD 

    UDF file system support 

    某些新式CD/DVD上的文件系统,很少见 

    DOS/FAT/NT Filesystems 

    DOS/Windows的文件系统 

    MSDOS fs support 

    古老的MSDOS文件系统 

    VFAT (Windows-95) fs support 

    Win95开始使用的VFAT文件系统 

    Default codepage for FAT 

    默认代码页 

    Default iocharset for FAT 

    默认字符集 

    NTFS file system support 

    WinNT开始使用的NTFS文件系统 

    NTFS debugging support 

    仅供调试使用 

    NTFS write support 

    NTFS写入支持 

    Pseudo filesystems 

    伪文件系统 

    /proc file system support 

    显示系统状态的虚拟文件系统(irq设置,内存使用,加载的设备驱动器,网络状态等),许多程序依赖于它 

    /proc/kcore support 

    系统物理内存的映象 

    /proc/vmcore support 

    ELF格式转储的已崩溃内核镜像,仅供调试使用 

    Sysctl support (/proc/sys) 

    显示各种不同的内核参数,并让root用户能交互地更改其中的某些内容 

    sysfs file system support 

    导出内核内部对象及其属性和对象之间的相互关系的文件系统,它把连接在系统上的设备和总线以及驱动程序等组织成为一个分级的文件,内核启动时依靠它挂载根分区,禁用sysfs后必须在内核引导参数中使用设备号指定根分区 

    Virtual memory file system support (former shm fs) 

    tmpfs文件系统(以前叫shm[共享内存]文件系统)支持 

    Tmpfs POSIX Access Control Lists 

    POSIX ACL(访问控制列表)支持,可以更精细的针对每个用户进行访问控制,需要外部库和程序的支持 

    HugeTLB file system support 

    仅仅能够在某些罕见的体系结构上使用的文件系统 

    Userspace-driven configuration filesystem 

    configfs是用户空间驱动的文件系统,提供与sysfs相反的功能 

    Miscellaneous filesystems 

    非主流的杂项文件系统 

    Network File Systems 

    网络文件系统 

    Partition Types 

    高级磁盘分区类型,不确定可以全不选 

    Native Language Support 

    本地语言支持 

    Base native language support 

    基础本地语言,必选 

    Default NLS Option 

    默认本地语言,建议使用UTF-8 

    {此处省略的部分请按需选择,一般至少需要CP437,ASCII,ISO-8859-1} 

    Distributed Lock Manager 

    通用的分布式锁管理器,不明白就不选 

    Instrumentation Support
    分析支持

    Profiling support 

    对系统的活动进行分析,仅供内核开发者使用 

    Kprobes 

    仅供内核开发者使用 

    Kernel hacking
    内核hack选项

    Show timing information on printks 

    printk的输出中包含时间信息,可以用来分析内核启动过程各步骤所用时间 

    Enable __must_check logic 

    在编译内核的过程中使用"必须检查"的逻辑,禁用它将不会显示某些警告信息 

    Magic SysRq key 

    不懂的千万别选 

    Enable unused/obsolete exported symbols 

    导出无用和废弃的符号,这将使内核不必要的增大 

    Kernel debugging 

    不是内核开发者的别选 

    Debug Filesystem 

    不是内核开发者的别选 

    Compile the kernel with frame unwind information 

    不是内核开发者的别选 

    Run 'make headers_check' when building vmlinux 

    在编译内核时运行'make headers_check'命令检查内核头文件,当你修改了与用户空间相关的内核头文件后建议启用该选项 

    Linux Kernel Dump Test Tool Module 

    不是内核开发者的别选 

    Enable doublefault exception handler 

    允许捕获非常罕见的导致系统无警告重启的doublefault异常,对于调试非常重要 

    Security options
    安全选项
    这里的选项不明白的建议不要选,否则有可能弄巧成拙.

    Enable access key retention support 

    在内核中保留authentication tokenaccess key 

    Enable the /proc/keys file by which keys may be viewed 

    允许有权限的进程通过/proc/keys读取所有的key 

    Enable different security models 

    允许内核选择不同的安全模型,如果未选中则内核将使用默认的安全模型 

    Socket and Networking Security Hooks 

    允许安全模型通过Security HookSocketNetworking进行访问控制 

    XFRM (IPSec) Networking Security Hooks 

    启用XFRM安全Hook 

    Default Linux Capabilities 

    启用与"默认"Linux的兼容性 

    Root Plug Support 

    一个简单的Linux安全模块,在特定的USB设备不存在时它简单的禁止一切egid==0的进程运行 

    NSA SELinux Support 

    美国国家安全局(NSA)开发的安全增强Linux(SELinux),你还需要进行策略配置(checkpolicy)并且对文件系统进行标记(setfiles) 

    NSA SELinux boot parameter 

    添加一个内核引导参数以允许在引导时使用'selinux=0'禁用SELinux'selinux=1'启用SELinux 

    NSA SELinux boot parameter default value 

    上述参数的默认值 

    NSA SELinux runtime disable 

    允许在运行时禁用SELinux 

    NSA SELinux Development Support 

    SELinux开发支持 

    NSA SELinux AVC Statistics 

    搜集存取向量(access vector)缓冲区的统计信息并在/selinux/avc/cache_stats中显示出来.这些信息可以用avcstat之类的工具查看 

    NSA SELinux checkreqprot default value 

    checkreqprot标志的默认值 

    NSA SELinux enable new secmark network controls by default 

    默认启用新的基于安全标记(secmark)的网络 

    NSA SELinux maximum supported policy format version 

    允许将支持的最高策略格式版本设置为一个特定的数值 

    NSA SELinux maximum supported policy format version value 

    支持的最高策略格式版本的数值 

    Cryptographic options
    加密选项

    Cryptographic API 

    提供核心的加密API支持.这里的加密算法被广泛的应用于驱动程序通信协议等机制中.子选项可以全不选,内核中若有其他部分依赖它,会自动选上 

    Cryptographic algorithm manager 

    创建加密模版实例,必须要选 

    HMAC support 

    IPSec所必须,可为PPPoE提供压缩支持 

    Null algorithms 

    NULL加密算法(什么也不做),用于IPsec协议的封装安全载荷模块(ESP) 

    MD4 digest algorithm 

    老旧的摘要算法,已经过时 

    MD5 digest algorithm 

    主流摘要算法,128(已被中国山东大学王小云攻破,可以快速找到碰撞

    SHA1 digest algorithm 

    主流摘要算法,160(已被中国山东大学王小云攻破,可以快速找到碰撞),速度与MD5相当 

    SHA256 digest algorithm 

    更好的摘要算法,256,速度较SHA1稍慢 

    SHA384 and SHA512 digest algorithms 

    更好的摘要算法,384/512,速度大约只有SHA140-50% 

    Whirlpool digest algorithms 

    最安全的摘要算法,512,已被列入ISO标准,目前最新版本为3.0(2003年发布

    Tiger digest algorithms 

    号称最快的摘要算法,192,专门为64CPU进行了优化 

    ECB support 

    电子密码本,最简单的加密方法 

    CBC support 

    密码块链,IPSec需要使用它 

    DES and Triple DES EDE cipher algorithms 

    老迈的(DES)和尚佳的(Triple DES)对称加密算法 

    Blowfish cipher algorithm 

    又老又慢的对称加密算法 

    Twofish cipher algorithm 

    很强的对称加密算法,使用较广 

    Twofish cipher algorithms (i586) 

    很强的对称加密算法,使用较广(针对i586的版本

    Serpent cipher algorithm 

    很强的对称加密算法 

    AES cipher algorithms 

    最佳的对称加密算法(Rijndael),128/192/256,强度最高,快速且节省内存 

    AES cipher algorithms (i586) 

    最佳的对称加密算法(Rijndael),128/192/256,强度最高,快速且节省内存(针对i586的版本

    CAST5 (CAST-128) cipher algorithm 

    对称加密算法 

    CAST6 (CAST-256) cipher algorithm 

    对称加密算法 

    TEA, XTEA and XETA cipher algorithms 

    较弱的对称加密算法 

    ARC4 cipher algorithm 

    脆弱的流对称加密算法 

    Khazad cipher algorithm 

    对称加密算法 

    Anubis cipher algorithm 

    对称加密算法 

    Deflate compression algorithm 

    压缩算法,当在IPSec中使用IPCOMP协议时才需要 

    Michael MIC keyed digest algorithm 

    摘要算法,仅仅用于校验iSCSI设备传输的数据,因为算法本身比较脆弱 

    CRC32c CRC algorithm 

    摘要算法,可用于校验iSCSI设备传输的数据 

    Testing module 

    快速且丑陋的测试模块 

    Hardware crypto devices 

    仅有VIA C7系列处理器支持硬件加密(VIA PadLock高级加密引擎

    Library routines
    库子程序
    仅有那些不包含在内核原码中的第三方内核模块才可能需要,可以全不选,内核中若有其他部分依赖它,会自动选上

    CRC-CCITT functions 

    传送8-bit字符,欧洲标准 

    CRC16 functions 

    传送8-bit字符,美国标准 

    CRC32 functions 

    用于点对点的同步数据传输中,传输网络数据包所必须的 

    CRC32c (Castagnoli, et al) Cyclic Redundancy-Check 

    用于点对点的同步数据传输中,比如iSCSI设备 


    Load an Alternate Configuration File 

    读入一个外部配置文件 

    Save Configuration to an Alternate File 

    将配置保存到一个外部文件 



    展开全文
  • Linux内核配置选项简介   Gentoo Linux Gentoo内核(gentoo-sources)特有的选项 Gentoo Linux support CONFIG_GENTOO_LINUX 选"Y"后,将会自动选中那些在Gentoo环境中必须开启的内核选项,以避免用户...

    Linux内核配置选项简介

     

    Gentoo Linux
    Gentoo内核(gentoo-sources)特有的选项

    Gentoo Linux support
    CONFIG_GENTOO_LINUX
    选"Y"后,将会自动选中那些在Gentoo环境中必须开启的内核选项,以避免用户遗漏某些必要的选项,减轻一些用户配置内核的难度.建议选"Y".
    Linux dynamic and persistent device naming (userspace devfs) support
    CONFIG_GENTOO_LINUX_UDEV
    目前此项的作用仅是开启CONFIG_TMPFS和CONFIG_DEVTMPFS及其所依赖的选项.CONFIG_TMPFS是为了在"/dev/shm","/run","/sys/fs/cgroup"三个目录中挂载tmpfs文件系统,CONFIG_DEVTMPFS是为了在"/dev"目录挂载devtmpfs文件系统.建议选"Y".
    Support for init systems, system and service managers
    "init"系统(系统与服务管理器)."init"是内核启动的第一个用户空间程序(PID=1),也是所有用户态进程的"大总管"([提示]所有内核态进程的大总管是PID=2的[kthreadd]).
    OpenRC, runit and other script based systems and managers
    CONFIG_GENTOO_LINUX_INIT_SCRIPT
    OpenRC是Gentoo传统的"init"系统,使用基于SysVinit的传统启动脚本技术.选"Y"后,所有OpenRC所必需的内核选项(目前仅有CONFIG_BINFMT_SCRIPT)都会被自动选中.不确定的选"Y".
    systemd
    CONFIG_GENTOO_LINUX_INIT_SYSTEMD
    尽管并非完美无缺,但是systemd确实是目前风头最劲的"init"系统,大有在Linux世界一统江湖的霸气和潜力.仅在你打算从OpenRC迁移到systemd时选"Y".选"Y"后,内核中所有被systemd依赖的选项都将被自动选中,包括systemd建议的(而非必须的)选项,总计约20项.


    64-bit kernel
    CONFIG_64BIT
    编译64位内核.本文仅讲述x86_64(AMD64)平台的内核编译,所以这个是必选项.

    General setup
    常规设置

    Cross-compiler tool prefix
    CONFIG_CROSS_COMPILE
    交叉编译工具前缀(比如"arm-linux-"相当于使用"make CROSS_COMPILE=arm-linux-"进行编译).除非你想配置后默认自动进行交叉编译,否则不要使用此选项.
    Local version - append to kernel release
    CONFIG_LOCALVERSION
    在内核版本后面加上自定义的版本字符串(最大64字符),可以用"uname -a"命令看到
    Automatically append version information to the version string
    CONFIG_LOCALVERSION_AUTO
    自动在版本字符串(CONFIG_LOCALVERSION)后面添加版本信息(类似"-gxxxxxxxx"格式),需要有perl以及git仓库支持
    Kernel compression mode
    内核镜像的压缩格式,可选Gzip/Bzip2/LZMA/XZ/LZO格式之一,推荐使用XZ格式.你的系统中需要有相应的压缩工具.
    Default hostname
    CONFIG_DEFAULT_HOSTNAME
    设置默认主机名,默认值是"(none)".用户可以随后使用系统调用sethostname()来修改主机名.
    Support for paging of anonymous memory (swap)
    CONFIG_SWAP
    使用交换分区或者交换文件来做为虚拟内存
    System V IPC
    CONFIG_SYSVIPC
    System V 进程间通信(IPC)支持,用于进程间同步和交换数据,许多程序需要这个功能.选"Y",除非你确实知道自己在做什么
    POSIX Message Queues
    CONFIG_POSIX_MQUEUE
    POSIX消息队列是POSIX IPC的一部分,如果你想编译和运行那些使用"mq_*"系统调用的程序(比如为Solaris开发的程序),就必须开启此选项.POSIX消息队列可以作为"mqueue"文件系统挂载以方便用户对队列进行操作.不确定的选"Y".
    open by fhandle syscalls
    CONFIG_FHANDLE
    用户程序可以使用句柄(而非文件名)来追踪文件(使用open_by_handle_at(2)/name_to_handle_at(2)系统调用),即使某文件被重命名,用户程序依然可定位那个文件.此特性有助于实现用户空间文件服务器(userspace file server).不确定的选"N",但使用systemd的建议选"Y".
    Auditing support
    CONFIG_AUDIT
    内核审计(跟踪每个进程的活动情况)支持,某些安全相关的内核子系统(例如SELinux)需要它
    Enable system-call auditing support
    CONFIG_AUDITSYSCALL
    对系统调用进行审计.既可独立使用,也可被其他内核子系统(例如SELinux)使用.
    Make audit loginuid immutable
    CONFIG_AUDIT_LOGINUID_IMMUTABLE
    审计时使用固定的loginuid.在使用systemd之类的系统上应该开启(login服务由init进程负责重启),在使用SysVinitUpstart之类的系统上应该关闭(login服务由系统管理员手动重启).OpenRC就是一个基于SysVinit的系统.
    IRQ subsystem
    IRQ(中断请求)子系统
    Expose hardware/virtual IRQ mapping via debugfs
    CONFIG_IRQ_DOMAIN_DEBUG
    通过debugfs中的irq_domain_mapping文件向用户显示硬件IRQ号/Linux IRQ号之间的对应关系.仅用于开发调试.
    Support sparse irq numbering
    CONFIG_SPARSE_IRQ
    稀疏IRQ号支持.它允许在小型设备上(例如嵌入式设备)定义一个很高的CONFIG_NR_CPUS值,但仍然不希望占用太多内核"memory footprint"(一段可以被操作或被管理的内存区域)的场合.稀疏IRQ也更适合NUMA平台,因为它以一种对NUMA更友好的方式分发中断描述符.不确定的选"N".
    Timers subsystem
    Linux内核时钟子系统
    Timer tick handling
    内核时钟滴答处理程序,更多信息可以参考内核源码树下的"Documentation/timers/NO_HZ.txt"文件
    Periodic timer ticks (constant rate, no dynticks)
    CONFIG_HZ_PERIODIC
    无论CPU是否需要,都强制按照固定频率不断触发时钟中断.这是最耗电的方式,不推荐使用
    Idle dynticks system (tickless idle)
    CONFIG_NO_HZ_IDLE
    CPU在空闲状态时不产生不必要的时钟中断,以使处理器能够在较低能耗状态下运行以节约电力,适合于大多数场合
    Full dynticks system (tickless)
    CONFIG_NO_HZ_FULL
    完全无滴嗒:即使CPU在忙碌状态也尽可能关闭所有时钟中断,适用于CPU在同一时间仅运行一个任务,或者用户空间程序极少与内核交互的场合.即使开启此选项,也需要额外设置"nohz_full=?"内核命令行参数才能真正生效.
    Full dynticks system on all CPUs by default
    CONFIG_NO_HZ_FULL_ALL
    即使没有设置"nohz_full"引导参数,也默认对所有CPU(boot CPU 除外)开启完全无滴答特性.
    Old Idle dynticks config
    CONFIG_NO_HZ
    等价于CONFIG_NO_HZ_IDLE,临时用来兼容老版本内核选项,未来会被删除.
    High Resolution Timer Support
    CONFIG_HIGH_RES_TIMERS
    高精度定时器(hrtimer)是从2.6.16开始引入,用于取代传统timer wheel(基于jiffies定时器)的时钟子系统.可以降低与内核其他模块的耦合性,还可以提供比1毫秒更高的精度(因为它可以读取HPET/TSC等新型硬件时钟源),可以更好的支持音视频等对时间精度要求较高的应用.建议选"Y".[提示]这里说的"定时器"是指"软件定时器",而不是主板或CPU上集成的硬件时钟发生器(ACPI PM Timer/HPET Timer/TSC Timer).
    CPU/Task time and stats accounting
    CPU/进程的时间及状态统计
    Cputime accounting
    CPU时间统计方式
    Simple tick based cputime accounting
    CONFIG_TICK_CPU_ACCOUNTING
    简单的基于滴答的统计,适用于大多数场合
    Deterministic task and CPU time accounting
    CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
    通过读取CPU计数器进行统计,可以提供更精确的统计,但是对性能有一些不利影响.
    Full dynticks CPU time accounting
    CONFIG_VIRT_CPU_ACCOUNTING_GEN
    利用上下文跟踪子系统,通过观察每一个内核与用户空间的边界进行统计.该选项对性能有显著的不良影响,目前仅用于完全无滴答子系统(CONFIG_NO_HZ_FULL)的调试
    Fine granularity task level IRQ time accounting
    CONFIG_IRQ_TIME_ACCOUNTING
    通过读取TSC时间戳进行统计,这是统计进程IRQ时间的更细粒度的统计方式,但对性能有些不良影响(特别是在RDTSC指令速度较慢的CPU上).
    BSD Process Accounting
    CONFIG_BSD_PROCESS_ACCT
    用户空间程序可以要求内核将进程的统计信息写入一个指定的文件,主要包括进程的创建时间/创建者/内存占用等信息.
    BSD Process Accounting version 3 file format
    CONFIG_BSD_PROCESS_ACCT_V3
    使用新的v3版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式.比如 GNU Accounting Utilities 这样的工具可以识别v3格式
    Export task/process statistics through netlink
    CONFIG_TASKSTATS
    通过netlink接口向用户空间导出进程的统计信息,与 BSD Process Accounting 的不同之处在于这些统计信息在整个进程生存期都是可用的.
    Enable per-task delay accounting
    CONFIG_TASK_DELAY_ACCT
    在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间
    Enable extended accounting over taskstats
    CONFIG_TASK_XACCT
    在统计信息中包含进程的更多扩展信息.
    Enable per-task storage I/O accounting
    CONFIG_TASK_IO_ACCOUNTING
    在统计信息中包含进程在存储设备上的I/O字节数.
    RCU Subsystem
    RCU(Read-Copy Update)子系统.在读多写少的情况下,这是一个高性能的锁机制,对于被RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它(速度非常快),但写者在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调机制在适当的时机把指向原来数据的指针重新指向新的被修改的数据,速度非常慢.RCU只适用于读多写少的情况:如网络路由表的查询更新,设备状态表的维护,数据结构的延迟释放以及多径I/O设备的维护等.
    RCU Implementation
    RCU的实现方式
    Tree-based hierarchical RCU
    CONFIG_TREE_RCU
    基于树型分层结构的实现.最适用于多CPU的非实时系统.
    Preemptible tree-based hierarchical RCU
    CONFIG_TREE_PREEMPT_RCU
    抢占式基于树型分层结构的实现.最适用于那些要求快速响应的多CPU实时系统.
    UP-only small-memory-footprint RCU
    CONFIG_TINY_RCU
    最简单的实现,能够大幅降低RCU系统的内存占用.最适用于单CPU的非实时系统.
    Preemptible UP-only small-memory-footprint RCU
    CONFIG_TINY_PREEMPT_RCU
    抢占式简单实现,能够大幅降低RCU系统的内存占用.最适用于那些要求快速响应的单CPU实时系统.
    Consider userspace as in RCU extended quiescent state
    CONFIG_RCU_USER_QS
    在内核和用户边界设置钩子函数,将运行在用户态的CPU从全局RCU状态机制中移除,这样就不会在RCU系统中维护此CPU的时钟滴答.除非你想要帮助开发CONFIG_NO_HZ_FULL模块,否则不要打开此选项,而且它还会对性能有不利影响.
    Force context tracking
    CONFIG_CONTEXT_TRACKING_FORCE
    默认在内核和用户边界进行探测(上下文跟踪),以便测试依赖于此特性的各种功能(比如用户空间的 RCU extended quiescent state),这个特性目前仅用于调试目的,未来也许会用于为CONFIG_NO_HZ_FULL模块提供支持
    Tree-based hierarchical RCU fanout value
    CONFIG_RCU_FANOUT
    这个选项控制着树形RCU层次结构的端点数(fanout),以允许RCU子系统在拥有海量CPU的系统上高效工作.这个值必须至少等于CONFIG_NR_CPUS的1/4次方(4次根号).生产系统上应该使用默认值(64).仅在你想调试RCU子系统时才需要减小此值.
    Tree-based hierarchical RCU leaf-level fanout value
    CONFIG_RCU_FANOUT_LEAF
    这个选项控制着树形RCU层次结构的叶子层的端点数(leaf-level fanout).对于期望拥有更高能耗比(更节能)的系统,请保持其默认值(16).对于拥有成千上万个CPU的系统来说,应该考虑将其设为最大值(CONFIG_RCU_FANOUT).
    Disable tree-based hierarchical RCU auto-balancing
    CONFIG_RCU_FANOUT_EXACT
    强制按照CONFIG_RCU_FANOUT_LEAF的值,而不是使用自动平衡树结构来实现RCU子系统.目前仅用于调试目的.未来也许会用于增强NUMA系统的性能.
    Accelerate last non-dyntick-idle CPU's grace periods
    CONFIG_RCU_FAST_NO_HZ
    即使CPU还在忙碌,也允许进入dynticks-idle状态,并且阻止RCU每4个滴答就唤醒一次该CPU,这样能够更有效的使用电力,同时也拉长了RCU grace period的时间,造成性能降低.如果能耗比对你而言非常重要(你想节省每一分电力),并且你不在乎系统性能的降低(CPU唤醒时间增加),可以开启此选项.台式机和服务器建议关闭此选项.
    Enable RCU priority boosting
    CONFIG_RCU_BOOST
    允许提升RCU子系统的实时优先级(包括读操作与写操作),以避免RCU操作被阻塞太长时间.如果系统的CPU负载经常很重,或者你需要快速的实时响应系统,那么就选"Y",否则应该选"N".
    Real-time priority to boost RCU readers to
    CONFIG_RCU_BOOST_PRIO
    允许提升被长时间抢占(阻塞)的RCU读操作的实时优先级到什么程度.取值范围是[1,99].默认值"1"适用于实时应用程序中不包含CPU密集型(CPU-bound)线程的常规场合(例如大多数桌面系统).但是如果你的实时应用程序拥有一个或多个CPU密集型线程,那么可能需要增加这个值,具体可以参考内核帮助的说明.仅在你确实理解了的情况下再改变默认值.
    Milliseconds to delay boosting after RCU grace-period start
    CONFIG_RCU_BOOST_DELAY
    在提升RCU读操作的优先级之前,允许有多长时间潜伏期(阻塞),取值范围是[0,3000],单位是毫秒,默认值是"500".不确定的请使用默认值.
    Offload RCU callback processing from boot-selected CPUs
    CONFIG_RCU_NOCB_CPU
    如果你想帮助调试内核可以开启,否则请关闭.
    Build-forced no-CBs CPUs
    在开启CONFIG_RCU_NOCB_CPU选项的情况下,指定哪些CPU是No-CB CPU,相当于预先设置"rcu_nocbs="内核引导参数.
    Kernel .config support
    CONFIG_IKCONFIG
    把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本从内核镜像中提取这些信息
    Enable access to .config through /proc/config.gz
    CONFIG_IKCONFIG_PROC
    允许通过 /proc/config.gz 文件访问内核的配置信息
    Kernel log buffer size
    CONFIG_LOG_BUF_SHIFT
    设置内核日志缓冲区的大小: 12(最小值)=4KB,...,16=64KB,17=128KB,18=256KB,...,21(最大值)=2048KB
    Automatically enable NUMA aware memory/task placement
    CONFIG_NUMA_BALANCING_DEFAULT_ENABLED
    NUMA(Non-Uniform Memory Access Architecture)系统上自动启用进程/内存均衡,也就是自动开启CONFIG_NUMA_BALANCING特性.
    Memory placement aware NUMA scheduler
    CONFIG_NUMA_BALANCING
    允许自动根据NUMA系统的节点分布状况进行进程/内存均衡(方法很原始,就是简单的内存移动).这个选项对UMA系统无效.[提示]UMA系统的例子:(1)只有一颗物理CPU(即使是多核)的电脑,(2)不支持"虚拟NUMA",或"虚拟NUMA"被禁用的虚拟机(即使所在的物理机是NUMA系统)
    Control Group support
    CONFIG_CGROUPS
    Cgroup(Control Group)是一种进程管理机制,可以针对一组进程进行系统资源的分配和管理,可用于Cpusets,CFS(完全公平调度器),内存管理等子系统.此外,systemd也依赖于它.更多细节可以参考内核的"Documentation/cgroups/cgroups.txt"文件
    Example debug cgroup subsystem
    CONFIG_CGROUP_DEBUG
    导出cgroups框架的调试信息,仅用于调试目的.
    Freezer cgroup subsystem
    CONFIG_CGROUP_FREEZER
    允许冻结/解冻cgroup内所有进程
    Device controller for cgroups
    CONFIG_CGROUP_DEVICE
    允许为cgroup建立设备白名单,这样cgroup内的进程将仅允许对白名单中的设备进行mknod/open操作
    Cpuset support
    CONFIG_CPUSETS
    CPUSET支持:允许将CPU和内存进行分组,并指定某些进程只能运行于特定的分组.这里有一篇CPUSET的用法
    Include legacy /proc/<pid>/cpuset file
    CONFIG_PROC_PID_CPUSET
    提供过时的 /proc/<pid>/cpuset 文件接口
    Simple CPU accounting cgroup subsystem
    CONFIG_CGROUP_CPUACCT
    提供一个简单的资源控制器(Resource Controller,用于实现一组任务间的资源共享),以监控cgroup内所有进程的总CPU使用量.
    Resource counters
    CONFIG_RESOURCE_COUNTERS
    为cgroup提供独立于controller资源计数器
    Memory Resource Controller for Control Groups
    CONFIG_MEMCG
    为cgroup添加内存资源控制器,包含匿名内存和页面缓存(Documentation/cgroups/memory.txt).开启此选项后,将会增加关联到每个内存页fixed memory大小,具体在64位系统上是40bytes/PAGE_SIZE.仅在你确实明白什么是 memory resource controller 并且确实需要的情况下才开启此选项.此功能可以通过命令行选项"cgroup_disable=memory"进行关闭.
    Memory Resource Controller Swap Extension
    CONFIG_MEMCG_SWAP
    给 Memory Resource Controller 添加对swap的管理功能.这样就可以针对每个cgroup限定其使用的mem+swap总量.如果关闭此选项, memory resource controller 将仅能限制mem的使用量,而无法对swap进行控制(进程有可能耗尽swap).开启此功能会对性能有不利影响,并且为了追踪swap的使用也会消耗更多的内存(如果swap的页面大小是4KB,那么每1GB的swap需要额外消耗512KB内存),所以在内存较小的系统上不建议开启.
    Memory Resource Controller Swap Extension enabled by default
    CONFIG_MEMCG_SWAP_ENABLED
    如果开启此选项,那么将默认开启CONFIG_MEMCG_SWAP特性,否则将默认关闭.即使默认开启也可以通过内核引导参数"swapaccount=0"禁止此特性.
    Memory Resource Controller Kernel Memory accounting
    CONFIG_MEMCG_KMEM
    为 Memory Resource Controller 添加对内核对象所占用内存的管理功能.和标准的 Memory Resource Controller 对内存的控制不一样之处在于:这些内核对象所占用的内存是基于每个内存页的,并且可以被swap到硬盘.使用这个功能可以确保cgroup中的进程不会单独耗尽所有内核资源.
    HugeTLB Resource Controller for Control Groups
    CONFIG_CGROUP_HUGETLB
    为cgroup添加对HugeTLB页的资源控制功能.开启此选项之后,你就可以针对每个cgroup限定其对HugeTLB的使用.
    Enable perf_event per-cpu per-container group (cgroup) monitoring
    CONFIG_CGROUP_PERF
    将per-cpu模式进行扩展,使其可以监控属于特定cgroup并运行于特定CPU上的线程
    Group CPU scheduler
    CONFIG_CGROUP_SCHED
    让CPU调度程序可以在不同的cgroup之间分配CPU的带宽
    Group scheduling for SCHED_OTHER
    CONFIG_FAIR_GROUP_SCHED
    公平CPU调度策略,也就是在多个cgroup之间平均分配CPU带宽."鸡血补丁"CONFIG_SCHED_AUTOGROUP(自动分组调度功能)依赖于它.
    CPU bandwidth provisioning for FAIR_GROUP_SCHED
    CONFIG_CFS_BANDWIDTH
    允许用户为运行在CONFIG_FAIR_GROUP_SCHED中的进程定义CPU带宽限制.对于没有定义CPU带宽限制的cgroup而言,可以无限制的使用CPU带宽.详情参见 Documentation/scheduler/sched-bwc.txt 文件.
    Group scheduling for SCHED_RR/FIFO
    CONFIG_RT_GROUP_SCHED
    允许用户为cgroup分配实时CPU带宽,还可以对非特权用户的实时进程组进行调度.详情参见 Documentation/scheduler/sched-rt-group.txt 文档.
    Block IO controller
    CONFIG_BLK_CGROUP
    通用的块IO控制器接口,可以用于实现各种不同的控制策略.目前,IOSCHED_CFQ用它来在不同的cgroup之间分配磁盘IO带宽(需要额外开启CONFIG_CFQ_GROUP_IOSCHED),block io throttle也会用它来针对特定块设备限制IO速率上限(需要额外开启CONFIG_BLK_DEV_THROTTLING).更多信息可以参考"Documentation/cgroups/blkio-controller.txt"文件.
    Enable Block IO controller debugging
    CONFIG_DEBUG_BLK_CGROUP
    仅用于调试 Block IO controller 目的.
    Checkpoint/restore support
    CONFIG_CHECKPOINT_RESTORE
    在内核中添加"检查点/恢复"支持.也就是添加一些辅助的代码用于设置进程的 text, data, heap 段,并且在 /proc 文件系统中添加一些额外的条目.主要用于调试目的.不确定的选"N".
    Namespaces support
    CONFIG_NAMESPACES
    命名空间支持.用于支持基于容器的轻量级虚拟化技术(比如LXC).
    UTS namespace
    CONFIG_UTS_NS
    uname() 系统调用的命名空间支持
    IPC namespace
    CONFIG_IPC_NS
    进程间通信对象ID的命名空间支持
    User namespace
    CONFIG_USER_NS
    允许容器(也就是VServer)使用user命名空间.如果开启此项,建议同时开启CONFIG_MEMCG和CONFIG_MEMCG_KMEM选项,以允许用户空间使用"memory cgroup"限制非特权用户的内存使用量.不确定的选"N".
    PID Namespaces
    CONFIG_PID_NS
    进程PID命名空间支持
    Network namespace
    CONFIG_NET_NS
    网络协议栈的命名空间支持
    Require conversions between uid/gids and their internal representation
    CONFIG_UIDGID_STRICT_TYPE_CHECKS
    强制将uid/gid转换为内部表示形式,以让那些未对uid/gid进行转换的内核子系统代码也能正常编译.不确定的选"N".
    Automatic process group scheduling
    CONFIG_SCHED_AUTOGROUP
    每个TTY动态地创建任务分组(cgroup),这样就可以降低高负载情况下的桌面延迟.也就是传说中的桌面"鸡血补丁",桌面用户建议开启.但服务器建议关闭.
    Enable deprecated sysfs features to support old userspace tools
    CONFIG_SYSFS_DEPRECATED
    为了兼容旧版本的应用程序而保留过时的sysfs特性.仅当在使用2008年以前的发行版时才需要开启,2009年之后的发行版中必须关闭.
    Enable deprecated sysfs features by default
    CONFIG_SYSFS_DEPRECATED_V2
    默认开启上述特性
    Kernel->user space relay support (formerly relayfs)
    CONFIG_RELAY
    在某些文件系统(比如debugfs)中提供中继(relay)支持(从内核空间向用户空间传递大批量数据).主要用于调试内核.
    Initial RAM filesystem and RAM disk (initramfs/initrd) support
    CONFIG_BLK_DEV_INITRD
    初始内存文件系统(initramfs,2.6以上内核的新机制,使用cpio格式,占据的内存随数据的增减自动增减)与初始内存盘(initrd,2.4以前内核遗留的老机制,使用loop设备,占据一块固定的内存,需要额外开启CONFIG_BLK_DEV_RAM选项才生效)支持,一般通过lilo/grub的initrd指令加载.更多细节可以参考"Documentation/initrd.txt"文件,关于initrd到initramfs的进化(墙内镜像),可以参考IBM上的两篇文章:Linux2.6 内核的 Initrd 机制解析Linux 初始 RAM 磁盘(initrd)概述.
    Initramfs source file(s)
    CONFIG_INITRAMFS_SOURCE
    如果你想将initramfs镜像直接嵌入内核(比如嵌入式环境或者想使用 EFI stub kernel),而不是通过lilo/grub这样的引导管理器加载,可以使用此选项,否则请保持空白.这个选项指明用来制作initramfs镜像的原料,可以是一个.cpio文件或一个空格分隔的目录与文件列表.细节可以参考"Documentation/early-userspace/README"文档.
    User ID to map to 0 (user root)
    INITRAMFS_ROOT_UID
    此选项仅在CONFIG_INITRAMFS_SOURCE中包含目录时才有效,将此值设为非零(例如"37"),那么所有UID=37的文件在打包到initramfs镜像内时,其UID都将被设为"0".
    Group ID to map to 0 (group root)
    INITRAMFS_ROOT_GID
    此选项仅在CONFIG_INITRAMFS_SOURCE中包含目录时才有效,将此值设为非零(例如"37"),那么所有GID=37的文件在打包到initramfs镜像内时,其GID都将被设为"0".
    Support initial ramdisks compressed using gzip
    CONFIG_RD_GZIP
    支持经过gzip压缩的ramdisk或cpio镜像
    Support initial ramdisks compressed using bzip2
    CONFIG_RD_BZIP2
    支持经过bzip2压缩的ramdisk或cpio镜像
    Support initial ramdisks compressed using LZMA
    CONFIG_RD_LZMA
    支持经过LZMA压缩的ramdisk或cpio镜像
    Support initial ramdisks compressed using XZ
    CONFIG_RD_XZ
    支持经过XZ压缩的ramdisk或cpio镜像
    Support initial ramdisks compressed using LZO
    CONFIG_RD_LZO
    支持经过LZO压缩的ramdisk或cpio镜像
    Built-in initramfs compression mode
    选择initramfs镜像的压缩格式."gzip"是兼容性最好的格式,但是压缩率却最低."XZ"是目前渐渐流行的格式,压缩率高,解压速度也不慢.
    Optimize for size
    CONFIG_CC_OPTIMIZE_FOR_SIZE
    编译时优化内核尺寸(使用GCC的"-Os"而不是"-O2"参数编译),这会得到更小的内核,但是运行速度可能会更慢.主要用于嵌入式环境.
    Configure standard kernel features (expert users)
    CONFIG_EXPERT
    配置标准的内核特性(仅供专家使用).这个选项允许你改变内核的"标准"特性(比如用于需要"非标准"内核的特定环境中),仅在你确实明白自己在干什么的时候才开启.
    Enable 16-bit UID system calls
    CONFIG_UID16
    允许对UID系统调用进行过时的16-bit包装,建议关闭
    Sysctl syscall support
    CONFIG_SYSCTL_SYSCALL
    二进制sysctl接口支持.由于现在流行直接通过/proc/sys以ASCII明码方式修改内核参数(需要开启CONFIG_PROC_SYSCTL选项),所以已经不需要再通过二进制接口去控制内核参数,建议关闭它以减小内核尺寸.
    Load all symbols for debugging/ksymoops
    CONFIG_KALLSYMS
    装载所有的调试符号表信息,会增大内核体积,仅供调试时选择
    Include all symbols in kallsyms
    CONFIG_KALLSYMS_ALL
    /proc/kallsyms中包含内核知道的所有符号,内核将会增大300K,仅在你确实需要的时候再开启
    Enable support for printk
    CONFIG_PRINTK
    允许内核向终端打印字符信息.如果关闭,内核在初始化过程中将不会输出字符信息,这会导致很难诊断系统故障.仅在你确实不想看到任何内核信息时选"N".否则请选"Y".
    BUG() support
    CONFIG_BUG
    显示故障和失败条件(BUG和WARN),禁用它将可能导致隐含的错误被忽略.建议仅在嵌入式设备或者无法显示故障信息的系统上关闭
    Enable ELF core dumps
    CONFIG_ELF_CORE
    内存转储支持,可以帮助调试ELF格式的程序,用于调试和开发用户态程序
    Enable PC-Speaker support
    CONFIG_PCSPKR_PLATFORM
    主板上的蜂鸣器支持.主板上的蜂鸣器只能发出或长或短的"滴"或"嘟嘟"声,一般用于系统报警.不要和能够播放音乐的扬声器混淆.如果你的主板上没有就关闭,有的话(开机自检完成后一般能听到"滴"的一声)还是建议开启.
    Enable full-sized data structures for core
    CONFIG_BASE_FULL
    在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减小以节约内存,但是将会降低性能
    Enable futex support
    CONFIG_FUTEX
    快速用户空间互斥(fast userspace mutexes)可以使线程串行化以避免竞态条件,也提高了响应速度.禁用它将导致内核不能正确的运行基于glibc的程序
    Enable eventpoll support
    CONFIG_EPOLL
    Epoll系列系统调用(epoll_*)支持,这是当前在Linux下开发大规模并发网络程序(比如Nginx)的热门人选,设计目的是取代既有POSIX select(2)与poll(2)系统接口,建议开启.
    Enable signalfd() system call
    CONFIG_SIGNALFD
    signalfd()系统调用支持,建议开启.传统的处理信号的方式是注册信号处理函数,由于信号是异步发生的,要解决数据的并发访问和可重入问题.signalfd可以将信号抽象为一个文件描述符,当有信号发生时可以对其read,这样可以将信号的监听放到select/poll/epoll监听队列中.
    Enable timerfd() system call
    CONFIG_TIMERFD
    timerfd()系统调用支持,建议开启.timerfd可以实现定时器功能,将定时器抽象为文件描述符,当定时器到期时可以对其read,这样也可以放到select/poll/epoll监听队列中.更多信息可以参考linux新的API signalfd、timerfd、eventfd使用说明
    Enable eventfd() system call
    CONFIG_EVENTFD
    eventfd()系统调用支持,建议开启.eventfd实现了线程之间事件通知的方式,eventfd的缓冲区大小是sizeof(uint64_t),向其write可以递增这个计数器,read操作可以读取,并进行清零.eventfd也可以放到select/poll/epoll监听队列中.当计数器不是0时,有可读事件发生,可以进行读取.
    Use full shmem filesystem
    CONFIG_SHMEM
    完全使用shmem来代替ramfs.shmem是基于共享内存的文件系统(可以使用swap),在启用CONFIG_TMPFS后可以挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多.仅在微型嵌入式环境中且没有swap的情况下才可能会需要使用原始的ramfs.
    Enable AIO support
    CONFIG_AIO
    开启POSIX异步IO支持.它常常被高性能的多线程程序使用,建议开启
    Enable PCI quirk workarounds
    CONFIG_PCI_QUIRKS
    开启针对多种PCI芯片组的错误规避功能,仅在确定你的PCI芯片组确实没有没有任何bug时才关闭此功能.至于究竟哪些芯片组有bug,你可以直接打开"drivers/pci/quirks.c"文件查看.不确定的选"Y".
    Embedded system
    CONFIG_EMBEDDED
    如果你是为嵌入式系统编译内核,可以开启此选项,这样一些高级选项就会显示出来.单独选中此项本身对内核并无任何改变.
    Kernel Performance Events And Counters
    CONFIG_PERF_EVENTS
    性能相关的事件和计数器支持(既有硬件的支持也有软件的支持).大多数现代CPU都会通过性能计数寄存器对特定类型的硬件事件(指令执行,缓存未命中,分支预测失败)进行计数,同时又丝毫不会减慢内核和应用程序的运行速度.这些寄存器还会在某些事件计数到达特定的阈值时触发中断,从而可以对代码进行性能分析. Linux Performance Event 子系统对上述特性进行了抽象,提供了针对每个进程和每个CPU的计数器,并可以被 tools/perf/ 目录中的"perf"工具使用.
    Debug: use vmalloc to back perf mmap() buffers
    CONFIG_DEBUG_PERF_USE_VMALLOC
    主要用于调试vmalloc代码.
    Enable VM event counters for /proc/vmstat
    CONFIG_VM_EVENT_COUNTERS
    "/proc/vmstat"中包含了从内核导出的虚拟内存的各种统计信息.开启此项后可以显示较详细的信息(包含各种事件计数器),关闭此项则仅仅显示很简略的信息.主要用于调试和统计.
    Enable SLUB debugging support
    CONFIG_SLUB_DEBUG
    SLUB调试支持,禁用后可显著降低内核大小,同时/sys/kernel/slab也将不复存在.
    Disable heap randomization
    CONFIG_COMPAT_BRK
    禁用堆随机化(heap randomization)功能.堆随机化可以让针对堆溢出的攻击变得困难,但是不兼容那些古董级的二进制程序(2000年以前).如果你不需要使用这些古董程序,那么选"N".
    Choose SLAB allocator
    选择内存分配管理器
    SLAB
    CONFIG_SLAB
    久经考验的slab内存分配器,在大多数情况下都具有良好的适应性.
    SLUB (Unqueued Allocator)
    CONFIG_SLUB
    SLUB与SLAB兼容,但通过取消大量的队列和相关开销,简化了slab的结构.特别是在多核时拥有比slab更好的性能和更好的系统可伸缩性.
    SLOB (Simple Allocator)
    CONFIG_SLOB
    SLOB针对小型系统设计,做了非常激进的简化,以适用于内存非常有限(小于64M)的嵌入式环境.
    Profiling support
    CONFIG_PROFILING
    添加扩展的性能分析支持,可以被OProfile之类的工具使用.仅用于调试目的.
    OProfile system profiling
    CONFIG_OPROFILE
    OProfile性能分析工具支持,仅用于调试目的.
    OProfile multiplexing support
    CONFIG_OPROFILE_EVENT_MULTIPLEX
    OProfile multiplexing技术支持
    Kprobes
    CONFIG_KPROBES
    Kprobes是一个轻量级的内核调试工具,能在内核运行的几乎任意时间点进行暂停/读取/修改等操作的调试工具.仅供调试使用.
    Optimize very unlikely/likely branches
    CONFIG_JUMP_LABEL
    针对内核中某些"几乎总是为真"或者"几乎总是为假"的条件分支判断使用"asm goto"进行优化(在分支预测失败时会浪费很多时间在回退上,但是这种情况极少发生).很多内核子系统都支持进行这种优化.建议开启.
    Transparent user-space probes
    CONFIG_UPROBES
    Uprobes与Kprobes类似,但主要用于用户空间的调试.
    Enable GCOV-based kernel profiling
    CONFIG_GCOV_KERNEL
    基于GCC的gcov(代码覆盖率测试工具)的代码分析支持,仅用于调试
    Profile entire Kernel
    CONFIG_GCOV_PROFILE_ALL
    支持对整个内核进行分析.内核体积将会显著增大,并且运行速度显著减慢.

    Enable loadable module support
    可加载模块支持

    Enable loadable module support
    CONFIG_MODULES
    打开可加载模块支持,可以通过"make modules_install"把内核模块安装在/lib/modules/中.然后可以使用 modprobe, lsmod, modinfo, insmod, rmmod 等工具进行各种模块操作.
    Forced module loading
    CONFIG_MODULE_FORCE_LOAD
    允许使用"modprobe --force"在不校验版本信息的情况下强制加载模块,这绝对是个坏主意!建议关闭.
    Module unloading
    CONFIG_MODULE_UNLOAD
    允许卸载已经加载的模块
    Forced module unloading
    CONFIG_MODULE_FORCE_UNLOAD
    允许强制卸载正在使用中的模块(rmmod -f),即使可能会造成系统崩溃.这又是一个坏主意!建议关闭.
    Module versioning support
    CONFIG_MODVERSIONS
    允许使用为其他内核版本编译的模块,可会造成系统崩溃.这同样是个坏主意!建议关闭.
    Source checksum for all modules
    CONFIG_MODULE_SRCVERSION_ALL
    为模块添加"srcversion"字段,以帮助模块维护者准确的知道编译此模块所需要的源文件,从而可以校验源文件的变动.仅内核模块开发者需要它.
    Module signature verification
    CONFIG_MODULE_SIG
    加载模块时检查模块签名,详情参见"Documentation/module-signing.txt"文件.[!!警告!!]开启此选项后,必须确保模块签名后没有被strip(包括rpmbuild之类的打包工具).
    Require modules to be validly signed
    CONFIG_MODULE_SIG_FORCE
    仅加载已签名并且密钥正确的模块,拒绝加载未签名或者签名密钥不正确的模块
    Automatically sign all modules
    CONFIG_MODULE_SIG_ALL
    在执行"make modules_install"安装模块的时候,自动进行签名.否则你必须手动使用 scripts/sign-file 工具进行签名.
    Which hash algorithm should modules be signed with?
    选择对模块签名时使用的散列函数.建议使用强度最高的"SHA-512"算法.注意:所依赖的散列算法必须被静态编译进内核.对于"SHA-512"来说,就是CONFIG_CRYPTO_SHA512和CONFIG_CRYPTO_SHA512_SSSE3(如果你的CPU支持SSSE3指令集的话).

    Enable the block layer
    块设备支持

    Enable the block layer
    CONFIG_BLOCK
    块设备支持,使用SSD/硬盘/U盘/SCSI/SAS设备者必选.除非你是某些特殊的嵌入式系统,否则没有理由不使用块设备.
    Block layer SG support v4
    CONFIG_BLK_DEV_BSG
    为块设备启用第四版SG(SCSI generic)支持.v4相比v3能够支持更复杂的SCSI指令(可变长度的命令描述块,双向数据传输,通用请求/应答协议),而且UDEV也要用它来获取设备的序列号.对于使用systemd的系统来说,必须选"Y".对于不使用systemd的系统,如果你需要通过/dev/bsg/*访问块设备,建议开启此选项,否则(通过/dev/{sd*,st*,sr*})可以关闭.
    Block layer SG support v4 helper lib
    CONFIG_BLK_DEV_BSGLIB
    你不需要手动开启此选项,如果有其他模块需要使用,会被自动开启.
    Block layer data integrity support
    CONFIG_BLK_DEV_INTEGRITY
    某些块设备可以通过存储/读取额外的信息来保障端到端的数据完整性,这个选项为文件系统提供了相应的钩子函数来使用这个特性.如果你的设备支持 T10/SCSI Data Integrity Field 或者 T13/ATA External Path Protection 特性,那么可以开启此选项,否则建议关闭.
    Block layer bio throttling support
    CONFIG_BLK_DEV_THROTTLING
    Bio Throttling 支持,也就是允许限制每个cgroup对特定设备的IO速率.细节可以参考"Documentation/cgroups/blkio-controller.txt".
    Advanced partition selection
    CONFIG_PARTITION_ADVANCED
    如果你想支持各种不同的磁盘分区格式(特别是与UEFI配合使用的GPT格式),务必选中此项.
    Acorn partition support
    CONFIG_ACORN_PARTITION
    Acorn 操作系统使用的分区格式,请根据实际情况选择子项,这里省略
    Alpha OSF partition support
    CONFIG_OSF_PARTITION
    Alpha 平台上使用的分区格式
    Amiga partition table support
    CONFIG_AMIGA_PARTITION
    AmigaOS 使用的分区格式
    Atari partition table support
    CONFIG_ATARI_PARTITION
    Atari OS 使用的分区格式
    Macintosh partition map support
    CONFIG_MAC_PARTITION
    苹果的Macintosh平台使用的分区格式
    PC BIOS (MSDOS partition tables) support
    CONFIG_MSDOS_PARTITION
    渐成历史垃圾,但目前依然最常见的DOS分区格式.除非你确信不使用此格式,否则必选.其下的子项根据实际情况选择.
    Windows Logical Disk Manager (Dynamic Disk) support
    CONFIG_LDM_PARTITION
    使用 Windows Logical Disk Manager 创建的分区格式.参见"Documentation/ldm.txt"
    SGI partition support
    CONFIG_SGI_PARTITION
    SGI 平台上使用的分区格式
    Ultrix partition table support
    CONFIG_ULTRIX_PARTITION
    DEC/Compaq Ultrix 平台上使用的分区格式
    Sun partition tables support
    CONFIG_SUN_PARTITION
    SunOS 平台上使用的分区格式
    Karma Partition support
    CONFIG_KARMA_PARTITION
    Rio Karma MP3 player 使用的分区格式
    EFI GUID Partition support
    CONFIG_EFI_PARTITION
    代表未来趋势,眼下正大红大紫的EFI GPT(GUID Partition Table)分区格式.建议开启.如果你在UEFI平台上安装则必须开启.
    SYSV68 partition table support
    CONFIG_SYSV68_PARTITION
    Motorola Delta 机器上使用的分区格式
    IO Schedulers
    IO调度器(另一篇文章)
    Deadline I/O scheduler
    CONFIG_IOSCHED_DEADLINE
    deadline调度器.简洁小巧(只有400+行代码),提供了最小的读取延迟.如果你希望尽快读取磁盘,而不介意写入延迟,那它是最佳选择.通常对于数据库工作负载有最佳的表现.
    CFQ I/O scheduler
    CONFIG_IOSCHED_CFQ
    cfq(Complete Fair Queuing)调度器.努力在各内核线程间公平分配IO资源,适用于系统中存在着大量内核线程同时进行IO请求的情况.但对于只有少数内核线程进行密集IO请求的情况,则会出现明显的性能下降.
    CFQ Group Scheduling support
    CONFIG_CFQ_GROUP_IOSCHED
    允许将CFQ和cgroup组合使用,也就是将每个cgroup看成一个整体,在各cgroup之间进行IO资源的分配.参见"Documentation/cgroups/blkio-controller.txt"文件.还可以参考一下《Linux内核精髓》中的"使用Block I/O控制器"一章.
    BFQ I/O scheduler
    CONFIG_IOSCHED_BFQ
    bfq(Budget Fair Queueing)调度器.这是一个基于CFQ调度器的改进版本,更适合于对交互性要求比较高的场合,比如桌面系统和实时系统.如果静态编译进内核,还支持和cgroup配合,实现分层调度(hierarchical scheduling).
    BFQ hierarchical scheduling support
    CONFIG_CGROUP_BFQIO
    通过cgroup文件系统接口,允许将BFQ分层使用(类似CONFIG_CFQ_GROUP_IOSCHED),这个子系统的名字是"bfqio".
    Default I/O scheduler
    默认IO调度器.如果上述调度器都是模块,那么将使用最简单的内置NOOP调度器.NOOP(No Operation)调度器只是一个简单的FIFO队列,不对IO请求做任何重新排序处理(但还是会做一定程度的归并),适合于SSD/U盘/内存/SAN(Storage Area Networks)/虚拟机中的硬盘/iSCSI/硬RAID等无需寻道的存储设备,重点是可以节约CPU资源,但不适用于普通硬盘这样的需要依靠磁头来定位的设备.另外,有人说拥有TCQ/NCQ技术(能够自动重新排序)的硬盘也适合用NOOP调度器,这个说法其实并不那么合理,但笔者在此不敢断言,希望读者在严谨的测试之后再做定夺.

    Processor type and features
    中央处理器(CPU)类型及特性

    DMA memory allocation support
    CONFIG_ZONE_DMA
    允许为寻址宽度不足32位的设备(也就是ISA和LPC总线设备)在物理内存的前16MB范围内(也就是传统上x86_32架构的ZONE_DMA区域)分配内存.不确定的选"Y".[提示]LPC总线通常和主板上的南桥物理相连,通常连接了一系列的传统设备:BIOS,PS/2键盘,PS/2鼠标,软盘,并口设备,串口设备,某些集成声卡,TPM(可信平台模块),等等.[题外话]x86_64已经没有ZONE_HIGHMEM了
    Symmetric multi-processing support
    CONFIG_SMP
    SMP(对称多处理器)支持,如果你有多个CPU或者使用的是多核CPU就选上.
    Support x2apic
    CONFIG_X86_X2APIC
    x2apic支持.具有这个特性的CPU可以使用32位的APIC ID(可以支持海量的CPU),并且可以使用MSR而不是mmio去访问 local APIC (更加高效).可以通过"grep x2apic /proc/cpuinfo"命令检查你的CPU是否支持这个特性.注意:有时候还需要在BIOS中也开启此特性才真正生效.[提示]在虚拟机中,还需要VMM的支持(例如qemu-kvm).
    Enable MPS table
    CONFIG_X86_MPPARSE
    如果是不支持acpi特性的古董级SMP系统就选上.但现今的64位系统早都已经支持acpi了,所以可以安全的关闭.
    Support for extended (non-PC) x86 platforms
    CONFIG_X86_EXTENDED_PLATFORM
    支持非标准的PC平台: Numascale NumaChip, ScaleMP vSMP, SGI Ultraviolet. 绝大多数人都遇不见这些平台.
    Numascale NumaChip
    CONFIG_X86_NUMACHIP
    Numascale NumaChip 平台支持
    ScaleMP vSMP
    CONFIG_X86_VSMP
    ScaleMP vSMP 平台支持
    SGI Ultraviolet
    CONFIG_X86_UV
    SGI Ultraviolet 平台支持
    Intel Low Power Subsystem Support
    CONFIG_X86_INTEL_LPSS
    为 Intel Lynx Point PCH 中的 Intel Low Power Subsystem 技术提供支持.这个芯片组主要是为采用LGA1150的Haswell处理器提供支持.
    Single-depth WCHAN output
    CONFIG_SCHED_OMIT_FRAME_POINTER
    使用简化的 /proc/<PID>/wchan 值,禁用此选项会使用更加精确的wchan值(可以在"ps -l"结果的WCHAN域看到),但会轻微增加调度器消耗.
    Linux guest support
    CONFIG_HYPERVISOR_GUEST
    如果这个内核将在虚拟机里面运行就开启,否则就关闭.
    Enable paravirtualization code
    CONFIG_PARAVIRT
    半虚拟化(paravirtualization)支持.
    paravirt-ops debugging
    CONFIG_PARAVIRT_DEBUG
    仅供调试.paravirt-ops是内核通用的半虚拟化接口.
    Paravirtualization layer for spinlocks
    CONFIG_PARAVIRT_SPINLOCKS
    半虚拟化的自旋锁支持.开启之后运行在虚拟机里的内核速度会加快,但是运行在物理CPU上的宿主内核运行效率会降低(最多可能会降低5%).请根据实际情况选择.
    Xen guest support
    CONFIG_XEN
    Xen半虚拟化技术支持
    Enable Xen debug and tuning parameters in debugfs
    CONFIG_XEN_DEBUG_FS
    为Xen在debugfs中输出各种统计信息和调整选项.对性能有严重影响.仅供调试.
    KVM Guest support (including kvmclock)
    CONFIG_KVM_GUEST
    KVM客户机支持(包括kvmclock).
    Paravirtual steal time accounting
    CONFIG_PARAVIRT_TIME_ACCOUNTING
    允许进行更细粒度的 task steal time 统计.会造成性能的略微降低.仅在你确实需要的时候才开启.
    Memtest
    CONFIG_MEMTEST
    为内核添加内存测试功能,也就是添加"memtest"内核引导参数以支持对内存进行"体检".仅在你确实知道这是什么东西并且确实需要的时候再开启.否则请关闭.
    Processor family
    处理器系列,请按照你实际使用的CPU选择."Generic-x86-64"表示通用于所有x86-64平台,不针对特定类型的CPU进行优化.
    Supported processor vendors
    CONFIG_PROCESSOR_SELECT
    支持的CPU厂商,按实际情况选择.
    Enable DMI scanning
    CONFIG_DMI
    允许扫描DMI(Desktop Management Interface)/SMBIOS(System Management BIOS)以获得机器的硬件配置,从而对已知的bug bios进行规避.具体涉及到哪些机器可参见"drivers/acpi/blacklist.c"文件.除非确定你的机器没有bug,否则请开启此项.
    GART IOMMU support
    CONFIG_GART_IOMMU
    GART IOMMU 支持. 图形地址重映射表(Graphics Address Remapping Table)可以将物理地址不连续的系统内存映射成看上去连续的图形内存交给GPU使用,是一种挖CPU内存补GPU内存机制,这种机制也可以被认为是一种"伪IOMMU"(缺乏地址空间隔离和访问控制).开启此选项以后,在内存大于3G的系统上,传统的32位总线(PCI/AGP)的设备将可以使用完全DMA的方式直接访问原本超出32位寻址范围之外的系统内存区域.具体方法是:通过编程让设备在受GART控制的显存区域工作,然后使用GART将这个地址映射为真实的物理地址(4GB以上)来实现的.USB/声卡/IDE/SATA之类的设备常常需要它.开启此选项之后,除非同时开启了CONFIG_IOMMU_DEBUG选项或者使用了"iommu=force"内核引导参数,否则此特性仅在条件满足的情况下(内存足够大且确有支持GART的设备)激活.建议内存大于3G的系统上选"Y".
    IBM Calgary IOMMU support
    CONFIG_CALGARY_IOMMU
    IBM xSeries/pSeries 系列服务器的 Calgary IOMMU 支持.
    Should Calgary be enabled by default?
    CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT
    开启此选项表示默认启用Calgary特性,关闭此选项表示默认禁用Calgary特性(可以使用"iommu=calgary"内核引导参数开启).
    Enable Maximum number of SMP Processors and NUMA Nodes
    CONFIG_MAXSMP
    让内核支持x86_64平台所能支持的最大SMP处理器数量和最大NUMA节点数量.主要用于调试目的.
    Maximum number of CPUs
    CONFIG_NR_CPUS
    支持的最大CPU数量,每个CPU要占8KB的内核镜像,最小有效值是"2",最大有效值是"512".注意:对于多核CPU而言,每个核算一个.
    SMT (Hyperthreading) scheduler support
    CONFIG_SCHED_SMT
    Intel超线程技术(HyperThreading)支持.
    Multi-core scheduler support
    CONFIG_SCHED_MC
    针对多核CPU进行调度策略优化
    Preemption Model
    内核抢占模式
    No Forced Preemption (Server)
    CONFIG_PREEMPT_NONE
    禁止内核抢占,这是Linux的传统模式,可以得到最大的吞吐量,适合服务器和科学计算环境
    Voluntary Kernel Preemption (Desktop)
    CONFIG_PREEMPT_VOLUNTARY
    自愿内核抢占,通过在内核中设置明确的抢占点以允许明确的内核抢占,可以提高响应速度,但是对吞吐量有不利影响.适合普通桌面环境的
    Preemptible Kernel (Low-Latency Desktop)
    CONFIG_PREEMPT
    主动内核抢占,允许抢占所有内核代码,对吞吐量有更大影响,适合需要运行实时程序的场合或者追求最快响应速度的桌面环境.
    Reroute for broken boot IRQs
    CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS
    这是一个对某些芯片组bug(在某些情况下会发送多余的"boot IRQ")的修复功能.开启此选项之后,仅对有此bug的芯片组生效.要检查哪些芯片组有此bug可以查看"drivers/pci/quirks.c"文件中的"quirk_reroute_to_boot_interrupts_intel"函数.
    Machine Check / overheating reporting
    CONFIG_X86_MCE
    MCE(Machine Check Exception)支持.让CPU检测到硬件故障(过热/数据错误)时通知内核,以便内核采取相应的措施(如显示一条提示信息或关机等).更多信息可以"man mcelog"看看.可以通过"grep mce /proc/cpuinfo"检查CPU是否支持此特性,若支持建议选中,否则请关闭.当然,如果你对自己的硬件质量很放心,又是桌面系统的话,不选也无所谓.
    Intel MCE features
    CONFIG_X86_MCE_INTEL
    Intel CPU 支持
    AMD MCE features
    CONFIG_X86_MCE_AMD
    AMD CPU 支持
    Machine check injector support
    CONFIG_X86_MCE_INJECT
    MCE注入支持,仅用于调试
    Dell laptop support
    CONFIG_I8K
    Dell Inspiron 8000 笔记本的 System Management Mode 驱动(i8k).该驱动可以读取CPU温度和风扇转速,进而帮助上层工具控制风扇转速.该驱动仅针对 Dell Inspiron 8000 笔记本进行过测试,所以不保证一定能适用于其他型号的Dell笔记本.
    CPU microcode loading support
    CONFIG_MICROCODE
    CPU的微代码更新支持,建议选中.CPU的微代码更新就像是给CPU打补丁.比如在Gentoo下,可以使用"emerge microcode-ctl"安装microcode-ctl服务,再把这个服务加入boot运行级即可在每次开机时自动更新CPU微代码.其他Linux系统可以参考这个帖子.
    Intel microcode loading support
    CONFIG_MICROCODE_INTEL
    Intel CPU 微代码支持
    AMD microcode loading support
    CONFIG_MICROCODE_AMD
    AMD CPU 微代码支持
    Early load microcode
    CONFIG_MICROCODE_INTEL_EARLY
    支持从initrd镜像首部加载微代码,以便尽可能早的更新CPU微代码.即使在initrd首部并未嵌入微代码也不会造成问题,所以"Y"是安全的.不过你真的需要吗?笔者认为你一般并不需要:)
    /dev/cpu/*/msr - Model-specific register support
    CONFIG_X86_MSR
    /dev/cpu/*/msr 设备支持.也就是允许用户空间的特权进程(使用rdmsr与wrmsr指令)访问x86的MSR寄存器(Model-Specific Register).MSR的作用主要用于调试,程序执行跟踪,性能及状态监控,以及触发特定的CPU特性(依CPU的不同而不同).msrtool工具可以转储出MSR的内容.不确定的可以选"N".
    /dev/cpu/*/cpuid - CPU information support
    CONFIG_X86_CPUID
    /dev/cpu/*/cpuid 设备支持.可以通过cpuid命令获得详细的CPU信息(CPUID).不确定的可以选"N".
    Enable 1GB pages for kernel pagetables
    CONFIG_DIRECT_GBPAGES
    允许内核页表使用大小为1GB的Hugepages并进行直线映射(linear mapping),需要高端CPU的支持(可以用"grep pdpe1gb /proc/cpuinfo"命令检查).这可以减小页表缓存(Translation Lookaside Buffer)的压力,从而提升系统的性能,这对于拥有海量内存并且运行某些特定应用(PosgreSQL,MySQL,Java,Memcached,KVM,Xen...)的系统来说比较有意义.如果你的CPU支持,可以选"Y".
    Numa Memory Allocation and Scheduler Support
    CONFIG_NUMA
    开启 NUMA(Non Uniform Memory Access) 支持.虽然说集成了内存控制器的CPU都属于NUMA架构.但事实上,对于大多数只有一颗物理CPU的个人电脑而言,即使支持NUMA架构,也没必要开启此特性.可以参考SMP/NUMA/MPP体系结构对比.此外,对于不支持"虚拟NUMA",或"虚拟NUMA"被禁用的虚拟机(即使所在的物理机是NUMA系统),也应该关闭此项.
    Old style AMD Opteron NUMA detection
    CONFIG_AMD_NUMA
    因为AMD使用一种旧式的方法读取NUMA配置信息(新式方法是CONFIG_X86_64_ACPI_NUMA),所以如果你使用的是AMD多核CPU,建议开启.不过,即使开启此选项,内核也会优先尝试CONFIG_X86_64_ACPI_NUMA方法,仅在失败后才会使用此方法,所以即使你不能确定CPU的类型也可以安全的选中此项.
    ACPI NUMA detection
    CONFIG_X86_64_ACPI_NUMA
    使用基于 ACPI SRAT(System Resource Affinity Table) 技术的NUMA节点探测方法.这也是检测NUMA节点信息的首选方法,建议选中.
    NUMA emulation
    CONFIG_NUMA_EMU
    仅供开发调试使用
    Maximum NUMA Nodes (as a power of 2)
    CONFIG_NODES_SHIFT
    允许的最大NUMA节点数.需要注意其计算方法:最大允许节点数=2CONFIG_NODES_SHIFT.也就是说这里设置的值会被当做2的指数使用.取值范围是[1,10],也就最多允许1024个节点.
    Memory model
    内存模式."Sparse Memory"主要用来支持内存热插拔,相比其他两个旧有的内存模式,代码复杂性也比较低,而且还拥有一些性能上的优势,对某些架构而言是唯一的可选项.其他两个旧有的内存模式是:"Discontiguous Memory"和"Flat Memory".
    Sparse Memory virtual memmap
    CONFIG_SPARSEMEM_VMEMMAP
    对于64位CPU而言,开启此选项可以简化pfn_to_page/page_to_pfn的操作,从而提高内核的运行效率.但是在32位平台则建议关闭.更多细节可以参考这个帖子.
    Enable to assign a node which has only movable memory
    CONFIG_MOVABLE_NODE
    允许对一个完整的NUMA节点(CPU和对应的内存)进行热插拔.一般的服务器和个人电脑不需要这么高级的特性.
    Allow for memory hot-add
    CONFIG_MEMORY_HOTPLUG
    支持向运行中的系统添加内存.也就是内存热插支持.
    Allow for memory hot remove
    CONFIG_MEMORY_HOTREMOVE
    支持从运行中的系统移除内存.也就是内存热拔支持.
    Allow for balloon memory compaction/migration
    CONFIG_BALLOON_COMPACTION
    允许 balloon memory 压缩/迁移.内存的Ballooning技术是指虚拟机在运行时动态地调整它所占用的宿主机内存资源,该技术在节约内存和灵活分配内存方面有明显的优势,目前所有主流虚拟化方案都支持这项技术(前提是客户机操作系统中必须安装有相应的balloon驱动).由于内存的动态增加和减少会导致内存过度碎片化,特别是对于2M尺寸的连续大内存页来说更加严重,从而严重降低内存性能.允许balloon内存压缩和迁移可以很好的解决在客户机中使用大内存页时内存过度碎片化问题.如果你打算在虚拟机中使用大内存页(huge page),那么建议开启,否则建议关闭.
    Allow for memory compaction
    CONFIG_COMPACTION
    允许对大内存页(huge pages)进行压缩.主要是为了解决大内存页的碎片问题.建议在使用大内存页的情况下开启此项,否则建议关闭.
    Page migration
    CONFIG_MIGRATION
    允许在保持虚拟内存页地址不变的情况下移动其所对应的物理内存页的位置.这主要是为了解决两个问题:(1)在NUMA系统上,将物理内存转移到相应的节点上,以加快CPU与内存之间的访问速度.(2)在分配大内存页的时候,可以避免碎片问题.
    Enable bounce buffers
    CONFIG_BOUNCE
    为那些不能直接访问所有内存范围的驱动程序开启bounce buffer支持.当CONFIG_ZONE_DMA被开启后,这个选项会被默认开启(当然,你也可以在这里手动关闭).这主要是为了那些不具备IOMMU功能的PCI/ISA设备而设,但它对性能有些不利影响.在支持IOMMU的设备上,应该关闭它而是用IOMMU来代替.
    Enable KSM for page merging
    CONFIG_KSM
    KSM(Kernel Samepage Merging)支持:周期性的扫描那些被应用程序标记为"可合并"的地址空间,一旦发现有内容完全相同的页面,就将它们合并为同一个页面,这样就可以节约内存的使用,但对性能有不利影响.推荐和内核虚拟机KVM(Documentation/vm/ksm.txt)或者其他支持"MADV_MERGEABLE"特性的应用程序一起使用.KSM并不默认开启,仅在应用程序设置了"MADV_MERGEABLE"标记,并且 /sys/kernel/mm/ksm/run 被设为"1"的情况下才会生效.
    Low address space to protect from user allocation
    CONFIG_DEFAULT_MMAP_MIN_ADDR
    2009年,内核曾经爆过一个严重的NULL指针漏洞,由于其根源是将NULL指针映射到地址"0"所致,所以从2.6.32版本以后,为了防止此类漏洞再次造成严重后果,特别设置了此选项,用于指定受保护的内存低端地址范围(可以在系统运行时通过 /proc/sys/vm/mmap_min_addr进行调整),这个范围内的地址禁止任何用户态程序的写入,以从根本上堵死此类漏洞可能对系统造成的损害.但内核这种强加的限制,对于需要使用vm86系统调用(用于在保护模式的进程中模拟8086的实模式)或者需要映射此低端地址空间的程序(bitbake,dosemu,qemu,wine,...)来说,则会造成不兼容,不过目前这些程序的新版本都进行了改进,以适应内核的这种保护.一般情况下,"4096"是个明智的选择,或者你也可以保持默认值.
    Enable recovery from hardware memory errors
    CONFIG_MEMORY_FAILURE
    在具备MCA(Machine Check Architecture)恢复机制的系统上,允许内核在物理内存中的发生数据错误的情况下,依然坚强的纠正错误并恢复正常运行.这需要有相应的硬件(通常是ECC内存)支持.有ECC内存的选,没有的就别选了.
    HWPoison pages injector
    CONFIG_HWPOISON_INJECT
    仅用于调试.
    Transparent Hugepage Support
    CONFIG_TRANSPARENT_HUGEPAGE
    大多数现代计算机体系结构都支持多种不同的内存页面大小(比如x86_64支持4K和2M以及1G[需要cpu-flags中含有"pdpe1gb"]).大于4K的内存页被称为"大页"(Hugepage).TLB(页表缓存)是位于CPU内部的分页表(虚拟地址到物理地址的映射表)缓冲区,既高速又很宝贵(尺寸很小).如果系统内存很大(大于4G)又使用4K的内存页,那么分页表将会变得很大而难以在CPU内缓存,从而导致较高的TLB不命中概率,进而降低系统的运行效率.开启大内存页支持之后,就可以使用大页(2M或1G),从而大大缩小分页表的尺寸以大幅提高TLB的命中率,进而优化系统性能.传统上使用大内存页的方法是通过Hugetlbfs虚拟文件系统(CONFIG_HUGETLBFS),但是hugetlbfs需要专门进行配置以及应用程序的特别支持.所以从2.6.38版本开始引入了THP(Transparent Hugepages),目标是替代先前的Hugetlbfs虚拟文件系统(CONFIG_HUGETLBFS).THP允许内核在可能的条件下,透明的(对应用程序来说)使用大页(huge pages)与HugeTLB,THP不像hugetlbfs那样需要专门进行配置以及应用程序的特别支持.THP将这一切都交给操作系统来完成,也不再需要额外的配置,对于应用程序完全透明,因而可用于更广泛的应用程序.这对于数据库/KVM等需要使用大量内存的应用来说,可以提升其效能,但对于内存较小(4G或更少)的个人PC来说就没啥必要了.详见"Documentation/vm/transhuge.txt"文档.
    Transparent Hugepage Support sysfs defaults
    设置 /sys/kernel/mm/transparent_hugepage/enabled 文件的默认值."always"表示总是对所有应用程序启用透明大内存页支持,"madvise"表示仅对明确要求该特性的程序启用.建议选"always".
    Cross Memory Support
    CONFIG_CROSS_MEMORY_ATTACH
    交叉内存支持,也就是process_vm_readv()和process_vm_writev()系统调用支持.从而允许有权限的进程直接读取/写入另外一个进程的地址空间.现在它们只用于openMPI快速进程通信,也可以用于调试程序.未来也许还会有其他用途.
    Enable cleancache driver to cache clean pages if tmem is present
    CONFIG_CLEANCACHE
    Cleancache可以被看作是内存页的"Victim Cache"(受害者缓存),当回收内存页时,先不把它清空,而是把其加入到内核不能直接访问的"transcendent memory"中,这样支持Cleancache的文件系统再次访问这个页时可以直接从"transcendent memory"加载它,从而减少磁盘IO的损耗.目前只有zcacheXEN支持"transcendent memory",不过将来会有越来越多的应用支持.开启此项后即使此特性不能得到利用,也仅对性能有微小的影响,所以建议开启.更多细节请参考"Documentation/vm/cleancache.txt"文件.
    Enable frontswap to cache swap pages if tmem is present
    CONFIG_FRONTSWAP
    Frontswap是和Cleancache非常类似的东西,在传统的swap前加一道内存缓冲(同样位于"transcendent memory"中).目的也是减少swap时的磁盘读写.建议开启.
    Check for low memory corruption
    CONFIG_X86_CHECK_BIOS_CORRUPTION
    低位内存脏数据检查,即使开启此选项,默认也不会开启此功能(需要明确使用"memory_corruption_check=1"内核引导选项).这些脏数据通常被认为是有bug的BIOS引起的,默认每60秒(可以通过memory_corruption_check_period内核参数进行调整)扫描一次0-64k(可以通过memory_corruption_check_size内核参数进行调整)之间的区域.这种检查所占用的开销非常小,基本可以忽略不计.如果始终检查到错误,则可以通过"memmap="内核引导参数来避免使用这段内存.一般没必要选中,如果你对BIOS不放心,带着它试运行一段时间,确认没问题之后再去掉.
    Set the default setting of memory_corruption_check
    CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
    设置memory_corruption_check的默认值,选中表示默认开启(相当于使用"memory_corruption_check=1"内核引导选项),不选中表示默认关闭.
    Amount of low memory, in kilobytes, to reserve for the BIOS
    CONFIG_X86_RESERVE_LOW
    为BIOS设置保留的低端地址(默认是64K).内存的第一页(4K)存放的必定是BIOS数据,内核不能使用,所以必须要保留.但是有许多BIOS还会在suspend/resume/热插拔等事件发生的时候使用更多的页(一般在0-64K范围),所以默认保留0-64K范围.如果你确定自己的BIOS不会越界使用内存的话,可以设为"4",否则请保持默认值.但是也有一些很奇葩的BIOS会使用更多的低位内存,这种情况下可以考虑设为"640"以保留所有640K的低位内存区域.
    MTRR (Memory Type Range Register) support
    CONFIG_MTRR
    MTRR(Memory type range registers)是CPU内的一组MSR(Model-specific registers),其作用是告诉CPU以哪种模式(write-back/uncachable)存取各内存区段效率最高.这对于AGP/PCI显卡意义重大,因为write-combining技术可以将若干个总线写传输捆绑成一次较大的写传输操作,可以将图像写操作的性能提高2.5倍或者更多.这段代码有着通用的接口,其他CPU的寄存器同样能够使用该功能.简而言之,开启此选项是个明智的选择.
    MTRR cleanup support
    CONFIG_MTRR_SANITIZER
    MTRR cleanup的意思是将MTRR的连续输出转为离散的输出,这样X驱动就可以在其中添加writeback项,算是一种优化措施.建议开启.可以使用"mtrr_chunk_size"来限制最大的连续块尺寸.
    MTRR cleanup enable value (0-1)
    CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT
    "1"表示默认开启CONFIG_MTRR_SANITIZER特性,相当于使用"enable_mtrr_cleanup","0"表示默认关闭CONFIG_MTRR_SANITIZER特性,相当于使用"disable_mtrr_cleanup".建议设为"1".
    MTRR cleanup spare reg num (0-7)
    CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
    这里设定的值等价于使用内核引导参数"mtrr_spare_reg_nr=N"中的"N".也就是告诉内核reg0N可以被清理或改写(参见"/proc/mtrr"文件).在多数情况下默认值是"1",其含义是 /proc/mtrr 中的 reg01 将会被映射.一般保持其默认值即可.修改此项的值通常是为了解决某些MTRR故障.
    x86 PAT support
    CONFIG_X86_PAT
    PAT(Page Attribute Table)是对MTRR的补充,且比MTRR更灵活.如果你的CPU支持PAT(grep pat /proc/cpuinfo),那么建议开启.仅在开启后导致无法正常启动或者显卡驱动不能正常工作的情况下才需要关闭.
    x86 architectural random number generator
    CONFIG_ARCH_RANDOM
    Intel 从 Ivy Bridge 微架构开始(对于Atom来说是从Silvermont开始),在CPU中集成了一个高效的硬件随机数生成器(称为"Bull Mountain"技术),并引入了一个新的x86指令"RDRAND",可以非常高效的产生随机数.此选项就是对此特性的支持.
    Supervisor Mode Access Prevention
    CONFIG_X86_SMAP
    SMAP(Supervisor Mode Access Prevention)是Intel从Haswell微架构开始引入的一种新特征,它在CR4寄存器上引入一个新标志位SMAP,如果这个标志为1,内核访问用户进程的地址空间时就会触发一个页错误,目的是为了防止内核因为自身错误意外访问用户空间,这样就可以避免一些内核漏洞所导致的安全问题.但是由于内核在有些时候仍然需要访问用户空间,因此intel提供了两条指令STAC和CLAC用于临时打开/关闭这个功能,反复使用STAC和CLAC会带来一些轻微的性能损失,但考虑到增加的安全性,还是建议开启.
    EFI runtime service support
    CONFIG_EFI
    EFI/UEFI支持.如果你打算在UEFI/EFI平台上安装Linux(2009年之后的机器基本都已经是UEFI规格了),那么就必须开启此项(开启后也依然可以在传统的BIOS机器上启动).UEFI启动流程与传统的BIOS相差很大.虽然Linux受到了所谓"安全启动"问题的阻挠(已经解决),但是UEFI依然将迅速一统江湖.[提示]在UEFI平台上安装Linux的关键之一是首先要用一个支持UEFI启动的LiveCD以UEFI模式启动机器.
    EFI stub support
    CONFIG_EFI_STUB
    EFI stub 支持.如果开启此项,就可以不通过GRUB2之类的引导程序来加载内核,而直接由EFI固件进行加载,这样就可以不必安装引导程序了.不过这是一个看上去很美的特性,由于EFI固件只是简单的加载内核并运行,所以缺点有三:(1)不能在传统的BIOS机器上启动.(2)不能给内核传递引导参数.(3)不能使用intrd.不过,针对后两点的解决办法是:使用CONFIG_CMDLINE和CONFIG_INITRAMFS_SOURCE.更多细节可参考"Documentation/x86/efi-stub.txt"文档.
    Enable seccomp to safely compute untrusted bytecode
    CONFIG_SECCOMP
    允许使用SECCOMP技术安全地运算非信任代码.通过使用管道或其他进程可用的通信方式作为文件描述符(支持读/写调用),就可以利用SECCOMP把这些应用程序隔离在它们自己的地址空间.这是一种有效的安全沙盒技术.除非你是嵌入式系统,否则不要关闭.
    Enable -fstack-protector buffer overflow detection
    CONFIG_CC_STACKPROTECTOR
    开启GCC的"-fstack-protector"命令行选项,以使用GCC中的编译器堆栈保护技术.这样可以有效的防御以堆栈溢出为代表的缓冲区溢出攻击,不过系统的运行速度也会受到一些影响.服务器之类强调安全的场合建议开启,个人PC之类的就不是很有必要了.
    Timer frequency
    内核时钟频率.对于要求快速响应的场合,比如桌面环境,建议使用1000Hz,而对于不需要快速响应的SMP/NUMA服务器,建议使用250Hz或100Hz或300Hz(主要处理多媒体数据).
    kexec system call
    CONFIG_KEXEC
    提供kexec系统调用,可以不必重启而切换到另一个内核(不一定必须是Linux内核),不过这个特性并不总是那么可靠.如果你不确定是否需要它,那么就是不需要.
    kernel crash dumps
    CONFIG_CRASH_DUMP
    当内核崩溃时自动导出运行时信息的功能,主要用于调试目的.更多信息请参考"Documentation/kdump/kdump.txt"文件.
    kexec jump
    CONFIG_KEXEC_JUMP
    kexec jump 支持.这是对CONFIG_KEXEC的增强功能,仅在你确实明白这是干啥的情况下再开启,否则请关闭.
    Physical address where the kernel is loaded
    CONFIG_PHYSICAL_START
    加载内核的物理地址.如果内核不是可重定位的(CONFIG_RELOCATABLE=n),那么bzImage会将自己解压到该物理地址并从此地址开始运行,否则,bzImage将忽略此处设置的值,而从引导装载程序将其装入的物理地址开始运行.仅在你确实知道自己是在干什么的情况下才可以改变该值,否则请保持默认.
    Build a relocatable kernel
    CONFIG_RELOCATABLE
    使内核可以在浮动的物理内存位置加载,主要用于调试目的.仅在你确实知道为什么需要的时候再开启,否则请关闭.
    Support for hot-pluggable CPUs
    CONFIG_HOTPLUG_CPU
    热插拔CPU支持(通过 /sys/devices/system/cpu 进行控制).
    Set default setting of cpu0_hotpluggable
    CONFIG_BOOTPARAM_HOTPLUG_CPU0
    开启/关闭此项的意思是设置"cpu0_hotpluggable"的默认值为"on/off".开启此项表示默认将CPU0设置为允许热插拔.
    Debug CPU0 hotplug
    CONFIG_DEBUG_HOTPLUG_CPU0
    仅用于调试目的.
    Compat VDSO support
    CONFIG_COMPAT_VDSO
    是否将VDSO(Virtual Dynamic Shared Object)映射到旧式的确定性地址.如果Glibc版本大于等于2.3.3选"N",否则就选"Y".
    Built-in kernel command line
    CONFIG_CMDLINE_BOOL
    将内核引导参数直接编进来.在无法向内核传递引导参数的情况下(比如在嵌入式系统上,或者想使用 EFI stub kernel),这就是唯一的救命稻草了.如果你使用grub之类的引导管理器,那么就可以不需要此特性.
    Built-in kernel command string
    CONFIG_CMDLINE
    将要编译进内核的引导参数字符串.
    Built-in command line overrides boot loader arguments
    CONFIG_CMDLINE_OVERRIDE
    开启此项表示完全忽略引导加载器传递过来的参数,并仅仅只使用CONFIG_CMDLINE所指定的参数.通常情况下建议关闭此项,除非你确定引导加载器在传递内核引导参数的时候不能正常工作.

    Power management and ACPI options
    电源管理和ACPI选项

    Suspend to RAM and standby
    CONFIG_SUSPEND
    "休眠到内存"(ACPI S3)支持.也就是系统休眠后,除了内存之外,其他所有部件都停止工作,重开机之后可以直接从内存中恢复运行状态.要使用此功能,你需要执行"echo mem > /sys/power/state"命令,还需要在BIOS中开启S3支持,否则可能会有问题.
    Enable freezer for suspend to RAM/standby
    CONFIG_SUSPEND_FREEZER
    选"Y".除非你知道自己在做什么
    Hibernation (aka 'suspend to disk')
    CONFIG_HIBERNATION
    "休眠到硬盘"(ACPI S4)支持.也就是将内存的内容保存到硬盘(hibernation),所有部件全都停止工作.要使用此功能,你首先需要使用内核引导参数"resume=/dev/swappartition",然后执行"echo disk > /sys/power/state"命令.如果你不想从先前的休眠状态中恢复,那么可以使用"noresume"内核引导参数.更多信息,可以参考"Documentation/power/swsusp.txt"文件.
    Default resume partition
    CONFIG_PM_STD_PARTITION
    默认的休眠分区.这个分区必须是swap分区.不过这里设置的值会被明确的内核引导参数中的值覆盖.
    Opportunistic sleep
    CONFIG_PM_AUTOSLEEP
    这是一种从安卓借鉴过来的休眠方式.这个特性在安卓系统上被称为"suspend blockers"或"wakelocks".这是一种更激进的电源管理模式,以尽可能节约电力为目的.系统默认就处于休眠状态,仅为内存和少数唤醒系统所必须的设备供电,当有任务(唤醒源)需要运行的时候才唤醒相关组件工作,工作完成后又立即进入休眠状态.不过这些特性需要相应的设备驱动程序的支持.目前除了安卓设备,在PC和服务器领域,能够利用此特性的驱动还比较少,不过这是一项非常有前途的电源技术,喜欢尝鲜的可以考虑开启.
    User space wakeup sources interface
    CONFIG_PM_WAKELOCKS
    允许用户空间的程序通过sys文件系统接口,创建/激活/撤销系统的"唤醒源".需要与CONFIG_PM_AUTOSLEEP配合使用.
    Maximum number of user space wakeup sources (0 = no limit)
    CONFIG_PM_WAKELOCKS_LIMIT
    用户空间程序允许使用的"唤醒源"数量,"0"表示无限,最大值是"100000".
    Garbage collector for user space wakeup sources
    CONFIG_PM_WAKELOCKS_GC
    对"唤醒源"对象使用垃圾回收.主要用于调试目的和Android环境.
    Run-time PM core functionality
    CONFIG_PM_RUNTIME
    允许IO设备(比如硬盘/网卡/声卡)在系统运行时进入省电模式,并可在收到(硬件或驱动产生的)唤醒信号后恢复正常.此功能通常需要硬件的支持.建议在笔记本/嵌入式等需要节约电力的设备上选"Y".
    Power Management Debug Support
    CONFIG_PM_DEBUG
    仅供调试使用
    ACPI (Advanced Configuration and Power Interface) Support
    CONFIG_ACPI
    高级配置与电源接口(Advanced Configuration and Power Interface)包括了软件和硬件方面的规范,目前已被软硬件厂商广泛支持,并且取代了许多过去的配置与电源管理接口,包括 PnP BIOS (Plug-and-Play BIOS), MPS(CONFIG_X86_MPPARSE), APM(Advanced Power Management) 等.总之,ACPI已经成为x86平台必不可少的组件,如果你没有特别的理由,务必选中此项.
    Deprecated /proc/acpi files
    CONFIG_ACPI_PROCFS
    过时的 /proc/acpi 接口支持,建议关闭.
    Deprecated power /proc/acpi directories
    CONFIG_ACPI_PROCFS_POWER
    过时的 /proc/acpi 接口支持,建议关闭.
    EC read/write access through /sys/kernel/debug/ec
    CONFIG_ACPI_EC_DEBUGFS
    仅供调试使用.
    Deprecated /proc/acpi/event support
    CONFIG_ACPI_PROC_EVENT
    过时的 /proc/acpi/event 接口支持,建议关闭.
    AC Adapter
    CONFIG_ACPI_AC
    允许在外接交流电源和内置电池之间进行切换.
    Battery
    CONFIG_ACPI_BATTERY
    允许通过 /proc/acpi/battery 接口查看电池信息.
    Button
    CONFIG_ACPI_BUTTON
    允许守护进程通过 /proc/acpi/event 接口捕获power/sleep/lid(合上笔记本)按钮事件,并执行相应的动作,软关机(poweroff)也需要它的支持.
    Video
    CONFIG_ACPI_VIDEO
    对主板上的集成显卡提供ACPI支持.注意:仅支持集成显卡.
    Fan
    CONFIG_ACPI_FAN
    允许用户层的程序对风扇进行控制(开/关/查询状态)
    Dock
    CONFIG_ACPI_DOCK
    支持兼容ACPI规范的扩展坞(比如 IBM Ultrabay 和 Dell Module Bay)支持.
    Processor
    CONFIG_ACPI_PROCESSOR
    在支持 ACPI C2/C3 的CPU上,将ACPI安装为idle处理程序.有几种CPU频率调节驱动依赖于它.而且目前的CPU都已经支持ACPI规范,建议开启此项.
    IPMI
    CONFIG_ACPI_IPMI
    允许ACPI使用IPMI(智能平台管理接口)的请求/应答消息访问BMC(主板管理控制器).IPMI通常出现在服务器中,以允许通过诸如ipmitool这样的工具监视服务器的物理健康特征(温度/电压/风扇状态/电源状态).
    Processor Aggregator
    CONFIG_ACPI_PROCESSOR_AGGREGATOR
    支持 ACPI 4.0 加入的处理器聚合器(processor Aggregator)功能,以允许操作系统对系统中所有的CPU进行统一的配置和控制.目前只支持逻辑处理器idling功能,其目标是降低耗电量.
    Thermal Zone
    CONFIG_ACPI_THERMAL
    ACPI thermal zone 支持.系统温度过高时可以及时调整工作状态以避免你的CPU被烧毁.目前所有CPU都支持此特性.务必开启.参见CONFIG_THERMAL选项.
    NUMA support
    CONFIG_ACPI_NUMA
    通过读取系统固件中的ACPI表,获得NUMA系统的CPU及物理内存分布信息.NUMA系统必选.
    Custom DSDT Table file to include
    CONFIG_ACPI_CUSTOM_DSDT_FILE
    允许将一个定制过的DSDT编译进内核.详情参见"Documentation/acpi/dsdt-override.txt"文档.看不懂的请保持空白.
    ACPI tables override via initrd
    CONFIG_ACPI_INITRD_TABLE_OVERRIDE
    允许initrd更改 ACPI tables 中的任意内容. ACPI tables 是BIOS提供给OS的硬件配置数据,包括系统硬件的电源管理和配置管理.详情参见"Documentation/acpi/initrd_table_override.txt"文件.
    Debug Statements
    CONFIG_ACPI_DEBUG
    详细的ACPI调试信息,不搞开发就别选.
    PCI slot detection driver
    CONFIG_ACPI_PCI_SLOT
    将每个PCI插槽都作为一个单独的条目列在 /sys/bus/pci/slots/ 目录中,有助于将设备的物理插槽位置与逻辑的PCI总线地址进行对应.不确定的选"No".
    Power Management Timer Support
    CONFIG_X86_PM_TIMER
    ACPI PM Timer,简称"ACPI Timer",是一种集成在主板上的硬件时钟发生器,提供3.579545MHz固定频率.这是比较传统的硬件时钟发生器(HPET则是比较新型的硬件时钟发生器),目前所有的主板都支持,而且是ACPI规范不可分割的部分.除非你确定不需要,否则必选.
    Container and Module Devices
    CONFIG_ACPI_CONTAINER
    支持 NUMA节点/CPU/内存 的热插拔. Device ID: ACPI0004, PNP0A05, PNP0A06
    Memory Hotplug
    CONFIG_ACPI_HOTPLUG_MEMORY
    内存热插拔支持. Device ID: PNP0C80
    Smart Battery System
    CONFIG_ACPI_SBS
    智能电池系统(Smart Battery System)可以让笔记型电脑显示及管理详细精确的电池状态信息.使用锂电池的笔记本电脑必备利器.但遗憾的是并不是所有笔记本都支持这项特性.
    Hardware Error Device
    CONFIG_ACPI_HED
    Hardware Error Device (Device ID: PNP0C33) 能够通过 SCI 报告一些硬件错误(通常是已经被纠正的错误).如果你的系统中有设备ID为"PNP0C33"的设备(比如某些Intel芯片组),那么就选上.
    Allow ACPI methods to be inserted/replaced at run time
    CONFIG_ACPI_CUSTOM_METHOD
    允许在不断电的情况下直接对ACPI的功能进行删改,包含一定危险性,它允许root任意修改内存中内核空间的内容.仅用于调试.
    Boottime Graphics Resource Table support
    CONFIG_ACPI_BGRT
    在 /sys/firmware/acpi/bgrt/ 中显示 ACPI Boottime Graphics Resource Table ,以允许操作系统获取固件中的启动画面(splash).
    ACPI Platform Error Interface (APEI)
    CONFIG_ACPI_APEI
    高级平台错误接口(ACPI Platform Error Interface)RAS(Reliability, Availability and Serviceability)的一部分,是定义在 ACPI 4.0 规范中的一个面向硬件错误管理的接口,主要是为了统一 firmware/BIOS 和 OS 之间的错误交互机制,使用标准的错误接口进行管理,同时也扩展了错误接口的内容以便实现更加灵活丰富的功能.
    APEI Generic Hardware Error Source
    CONFIG_ACPI_APEI_GHES
    "Firmware First Mode"支持.由于BIOS/FIRMWARE是平台相关的,因此BIOS/FIRMWARE比OS更清楚硬件平台的配置情况,甚至包含各种必须的修正/定制/优化.这样,在"Firmware First"模式下,BIOS/FIRMWARE利用这一优势,可以有针对性的对发生的硬件错误进行分析/处理/分发,也可以更准确的记录错误的现场信息.这样,不但对硬件错误可以做出更准确,更复杂的处理,而且可以降低OS的复杂性和冗余度.建议开启.
    APEI PCIe AER logging/recovering support
    CONFIG_ACPI_APEI_PCIEAER
    让 PCIe AER errors 首先通过 APEI firmware 进行报告.
    APEI memory error recovering support
    CONFIG_ACPI_APEI_MEMORY_FAILURE
    让 Memory errors 首先通过 APEI firmware 进行报告.
    APEI Error INJection (EINJ)
    CONFIG_ACPI_APEI_EINJ
    仅供调试使用.
    APEI Error Record Serialization Table (ERST) Debug Support
    CONFIG_ACPI_APEI_ERST_DEBUG
    仅供调试使用
    SFI (Simple Firmware Interface) Support
    CONFIG_SFI
    简单固件接口规范(Simple Firmware Interface)使用一种轻量级的简单方法(通过内存中的一张静态表格)从firmware向操作系统传递信息.目前这个规范仅用于第二代 Intel Atom 平台,其核心名称是"Moorestown".
    CPU Frequency scaling
    CONFIG_CPU_FREQ
    CPUfreq子系统允许动态改变CPU主频,达到省电和降温的目的.现如今的CPU都已经支持动态频率调整,建议开启.不过,如果你是为虚拟机编译内核,就没有必要开启了,由宿主机内核去控制就OK了.
    CPU frequency translation statistics
    CONFIG_CPU_FREQ_STAT
    通过sysfs文件系统输出CPU频率变化的统计信息
    CPU frequency translation statistics details
    CONFIG_CPU_FREQ_STAT_DETAILS
    输出更详细的CPU频率变化统计信息
    Default CPUFreq governor
    默认的CPU频率调节策略.不同策略拥有不同的调节效果.
    'performance' governor
    CONFIG_CPU_FREQ_GOV_PERFORMANCE
    '性能'优先,静态的将频率设置为cpu支持的最高频率
    'powersave' governor
    CONFIG_CPU_FREQ_GOV_POWERSAVE
    '节能'优先,静态的将频率设置为cpu支持的最低频率
    'userspace' governor for userspace frequency scaling
    CONFIG_CPU_FREQ_GOV_USERSPACE
    既允许手动调整cpu频率,也允许用户空间的程序动态的调整cpu频率(需要额外的调频软件)
    'ondemand' cpufreq policy governor
    CONFIG_CPU_FREQ_GOV_ONDEMAND
    '立即响应',周期性的考察CPU负载并自动的动态调整cpu频率(不需要额外的调频软件),适合台式机
    'conservative' cpufreq governor
    CONFIG_CPU_FREQ_GOV_CONSERVATIVE
    '保守',和'ondemand'相似,但是频率的升降是渐变式的(幅度不会很大),更适合用于笔记本/PDA/x86_64环境
    x86 CPU frequency scaling drivers
    CPU频率调节器驱动
    Intel P state control
    CONFIG_X86_INTEL_PSTATE
    Intel CPU 的 P-state 驱动,面向"Sandy Bridge"/"Ivy Bridge"/"Haswell"或更新的CPU微架构,可以更好的支持"Turbo Boost 2.0"技术.
    Processor Clocking Control interface driver
    CONFIG_X86_PCC_CPUFREQ
    PCC(Processor Clocking Control)接口支持.此种接口仅对某些HP Proliant系列服务器有意义.更多细节可以参考"Documentation/cpu-freq/pcc-cpufreq.txt"文件.
    ACPI Processor P-States driver
    CONFIG_X86_ACPI_CPUFREQ
    这是首选的驱动(CONFIG_X86_INTEL_PSTATE也依赖于它),同时支持Intel和AMD的CPU.除非你的CPU实在太老,否则必选.
    Legacy cpb sysfs knob support for AMD CPUs
    CONFIG_X86_ACPI_CPUFREQ_CPB
    为了兼容旧的用户空间程序而设置,建议关闭.
    AMD Opteron/Athlon64 PowerNow!
    CONFIG_X86_POWERNOW_K8
    过时的驱动,仅为老旧的K8核心的AMD处理器提供支持.K10以及更新的CPU应该使用CONFIG_X86_ACPI_CPUFREQ驱动.
    AMD frequency sensitivity feedback powersave bias
    CONFIG_X86_AMD_FREQ_SENSITIVITY
    如果你使用 AMD Family 16h 或者更高级别的处理器,同时又使用"ondemand"频率调节器,开启此项可以更有效的进行频率调节(在保证性能的前提下更节能).
    Intel Enhanced SpeedStep (deprecated)
    CONFIG_X86_SPEEDSTEP_CENTRINO
    已被时代抛弃的驱动,仅对老旧的迅驰平台 Intel Pentium M 或者 Intel Xeons 处理器有意义.
    Intel Pentium 4 clock modulation
    CONFIG_X86_P4_CLOCKMOD
    已被时代抛弃的驱动,仅对支持老旧的Speedstep技术的 Intel Pentium 4 / XEON 处理器有意义.而且即便是在这样的CPU上,因为种种兼容性问题可能导致的不稳定,也不建议开启.
    CPU idle PM support
    CONFIG_CPU_IDLE
    CPU idle 指令支持,该指令可以让CPU在空闲时"打盹"以节约电力和减少发热.只要是支持ACPI的CPU就应该开启.由于所有64位CPU都已支持ACPI,所以不必犹豫,开启![提示]为虚拟机编译的内核就没有必要开启了,由宿主机内核去控制就OK了.
    Support multiple cpuidle drivers
    CONFIG_CPU_IDLE_MULTIPLE_DRIVERS
    允许CONFIG_CPU_IDLE为每个不同的CPU使用不同的驱动.仅在你的系统由多个不同型号的CPU组成,并且具有不同的唤醒潜伏时间和状态的时候才需要开启.
    Cpuidle Driver for Intel Processors
    CONFIG_INTEL_IDLE
    专用于Intel CPU的cpuidle驱动.而CONFIG_CPU_IDLE则是用于非Intel的CPU.
    Memory power savings
    内存节能
    Intel chipset idle memory power saving driver
    CONFIG_I7300_IDLE
    在某些具备内存节能特性的intel服务器芯片组上,让内存也可以在空闲时通过idle指令"打盹".这些芯片组必须具备 I/O AT 支持(例如 Intel 7300).同时内存也需要支持此特性.

    Bus options (PCI etc.)
    总线选项

    PCI support
    CONFIG_PCI
    PCI是最重要的内部总线,不但PCI与PCI Express设备依赖于它,而且USB/IDE/SATA/SCSI/火线(IEEE 1394)/PCMCIA/CardBus等各种内部和外部总线也都依赖于它.所以必须选"Y",除非你知道自己在干什么.
    Support mmconfig PCI config space access
    CONFIG_PCI_MMCONFIG
    允许通过mmconfig方式访问PCI config space,这种访问方式比传统的IO方式速度更快.建议开启.MMCONFIG的意思是"Memory-Mapped config",它是PCI Express引入的新总线枚举方式.背景知识:PCI设备都有一组叫做'Configuration Space'的寄存器,PCI-E设备在PCI的基础上又增加了一组叫做'Extended Configuration Space'的寄存器.这些寄存器都被映射到了内存中(Memory-Mapped),操作系统理应提供相应的API供设备驱动和诊断程序访问这些'Configuration Space'.但如果操作系统没有提供Memory-Mapped方式的API的话,这些驱动程序和诊断程序就必须自己根据操作系统的底层规则(IO方式)去访问,这显然就增加了开发难度.这个选项的目的就是提供Memory-Mapped方式的API.
    Read CNB20LE Host Bridge Windows
    CONFIG_PCI_CNB20LE_QUIRK
    CNB20LE芯片组PCI热插拔支持.除非你非常明确的知道你需要它,否则请关闭此项.
    PCI Express support
    CONFIG_PCIEPORTBUS
    PCI Express是PCI的升级版并在软件层与PCI兼容,其目标是统一电脑内部总线.基本上只要不是古董机,都早已支持PCI-E了.选"Y".
    PCI Express Hotplug driver
    CONFIG_HOTPLUG_PCI_PCIE
    如果你的主板和设备都支持PCI Express热插拔就可以选上.
    Root Port Advanced Error Reporting support
    CONFIG_PCIEAER
    PCI Express Root Port Advanced Error Reporting (AER) 驱动支持.这样,发送到 Root Port 的 Error reporting messages 就会由 PCI Express AER 处理.建议开启.背景知识:PCI Express 定义了两种错误报告范例:(1)baseline,所有PCI-E组件都必须要支持,功能也比较基础.(2)AER(Advanced Error Reporting),功能比较高级,也更可靠,但并不要求所有组件都支持.
    PCI Express ECRC settings control
    CONFIG_PCIE_ECRC
    允许覆写firmware/bios设置的 PCI Express ECRC(端对端循环冗余校验).建议关闭,除非你确实知道为什么要开启.
    PCIe AER error injector support
    CONFIG_PCIEAER_INJECT
    允许 PCI-E AER 注入,仅用于测试目的.
    PCI Express ASPM control
    CONFIG_PCIEASPM
    PCI Express ASPM(Active State Power Management) 和 Clock Power Management 支持.这是PCI-E规范制定的一种电源管理方案,可以在设备空闲时采用节电模式.建议开启.ASPM可以在运行时通过 /sys/module/pcie_aspm/parameters/policy 进行开启或关闭.
    Debug PCI Express ASPM
    CONFIG_PCIEASPM_DEBUG
    仅供调试.
    Default ASPM policy
    默认的ASPM电源管理策略.下面的三个选项:"BIOS default"表示使用BIOS中的设置作为默认."Powersave"表示在可能的情况下,默认使用"L0s"和"L1",以尽可能节约电力."Performance"表示禁止使用"L0s"和"L1"(即使BIOS开启也同样禁止),以保证最高性能.
    Message Signaled Interrupts (MSI and MSI-X)
    CONFIG_PCI_MSI
    PCI/PCI-E支持三类中断:(1)INTx使用传统的IRQ中断,可以与现行的驱动程序和操作系统兼容.(2)MSI是PCI2.2规范中新增的,通过写入特殊的内存地址来触发和发送中断,该种方式脱离了中断引脚带来的数目限制,并且延迟小/效率高.不过MSI方式将中断全部落在单个CPU上,对多核CPU利用不佳.(3)MSI-X是在PCI3.0规范中新增的,在MSI的基础上,支持更多的消息数量以及独立的消息地址,可以自动在多个CPU上分担中断,更适合多CPU系统.建议开启.开启后,也可以使用"pci=nomsi"内核引导参数关闭MSI特性.
    PCI Debugging
    CONFIG_PCI_DEBUG
    将PCI调试信息输出到系统日志里.如果你想诊断PCI设备的故障,可以开启,否则应该关闭.
    Enable PCI resource re-allocation detection
    CONFIG_PCI_REALLOC_ENABLE_AUTO
    让内核自动检测"是否需要重新分配PCI资源".即使此项已开启,你依然可以用"pci=realloc=[on|off]"来覆盖它.此项仅在已开启CONFIG_PCI_IOV的情况下才有意义.此时,如果BIOS没有为SR-IOV(Single-Root I/O Virtualization) BAR(基地址寄存器)分配资源,那么内核将会自动对PCI资源进行重新分配.建议与CONFIG_PCI_IOV同开关.
    PCI Stub driver
    CONFIG_PCI_STUB
    PCI Stub driver 的作用是将PCI设备跟目前绑定的驱动分离,暂时由其接管,最后再交给虚拟机自己去驱动这个PCI设备.
    Xen PCI Frontend
    CONFIG_XEN_PCIDEV_FRONTEND
    如果你使用XEN的半虚拟化技术,并且你的硬件支持IOMMU,那么可以开启此项,否则应该关闭.
    Interrupts on hypertransport devices
    CONFIG_HT_IRQ
    允许本地的HyperTransport设备使用中断.这个一般用于AMD平台,Intel平台不支持这个.
    PCI IOV support
    CONFIG_PCI_IOV
    PCI I/O Virtualization支持.这需要硬件支持IOMMU技术(AMD-Vi,Intel VT-d).
    PCI PRI support
    CONFIG_PCI_PRI
    PCI Page Request Interface 支持.它允许IOMMU之后的设备能够从页错误中恢复过来.这需要硬件支持IOMMU技术(AMD-Vi,Intel VT-d).
    PCI PASID support
    CONFIG_PCI_PASID
    PASID(Process Address Space Identifiers)可以被PCI设备用来同时访问多个IO地址空间.这需要硬件支持IOMMU技术(AMD-Vi,Intel VT-d).
    PCI IO-APIC hotplug support
    CONFIG_PCI_IOAPIC
    PCI IO-APIC 热插拔支持.
    ISA-style DMA support
    CONFIG_ISA_DMA_API
    ISA-style DMA控制器支持.目前基本只有LPC总线设备需要使用,最常见的是串口,并口,PS/2键盘,Super I/O芯片(可以使用Superiotoolsensors-detect工具检测).不确定的选"Y".[说明]这是一个历史遗留问题,对于ISA架构,DMA操作是由一个专用的"DMA控制器"(最常见的是Intel 8237)来执行的,但是到了PCI架构,由于每一个PCI设备都可以控制PCI总线(成为"bus master")并直接读写系统内存,所以"DMA控制器"又消失了.此选项只是为那些需要"ISA-DMA控制器"的设备提供了兼容性接口(API)而已.
    PCCard (PCMCIA/CardBus) support
    CONFIG_PCCARD
    PCCard(PCMCIA/CardBus/ExpressCard)接口通常出现在笔记本电脑上,这些接口卡通常大小与信用卡差不多,厚度大约3-5毫米.注意:必须要配合pcmciautils工具才能正常使用PCMCIA设备.
    16-bit PCMCIA support
    CONFIG_PCMCIA
    老旧的 16-bit PCMCIA 卡支持
    Load CIS updates from userspace
    CONFIG_PCMCIA_LOAD_CIS
    有些PCMCIA卡需要从用户空间更新CIS(Card Information Structure)之后才能正常工作.开启此项后,内核将可以使用内置的固件加载器和热插拔子系统自动加载CIS,而不再需要用户空间工具的辅助.建议选"Yes".
    32-bit CardBus support
    CONFIG_CARDBUS
    常见的PCMCIA卡基本上都是32位的CardBusExpressCard设备.如果你有这样的卡,就选"Yes".由于绝大多数的卡都是"yenta-compatible"的,所以一般你还需要选中CONFIG_YENTA项.
    CardBus yenta-compatible bridge support
    CONFIG_YENTA
    使用PCMCIA卡的基本上都需要选择这一项,子项是一些拥有自己特定扩展的硬件,请按实际情况选择.
    {省略的部分请按照自己实际使用的PCMCIA卡选择}
    Support for PCI Hotplug
    CONFIG_HOTPLUG_PCI
    PCI热插拔不仅仅针对PCI和PCI-E设备,也包括CardBusExpressCard设备.请按需选择.
    {省略的部分请按照自己实际使用PCI控制器进行选择}
    RapidIO support
    CONFIG_RAPIDIO
    RapidIO总线支持.这种总线主要用于嵌入式系统.
    Discovery timeout duration (seconds)
    CONFIG_RAPIDIO_DISC_TIMEOUT
    等待主机完成枚举(也就是初始化)的超时秒数.
    Enable RapidIO Input/Output Ports
    CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS
    开启所有 RapidIO Input/Output 端口.
    DMA Engine support for RapidIO
    CONFIG_RAPIDIO_DMA_ENGINE
    使用DMA引擎(CONFIG_DMADEVICES)进行RapidIO数据传输
    RapidIO subsystem debug messages
    CONFIG_RAPIDIO_DEBUG
    将RapidIO调试信息输出到系统日志里.如果你想诊断RapidIO设备的故障,可以开启,否则应该关闭.
    {省略的部分请按照自己实际使用的控制器进行选择}

    Executable file formats / Emulations
    可执行文件格式/仿真

    Kernel support for ELF binaries
    CONFIG_BINFMT_ELF
    ELF是最常用的跨平台二进制文件格式,支持动态连接,支持不同的硬件平台,支持不同的操作系统.必选,除非你知道自己在做什么.
    Write ELF core dumps with partial segments
    CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS
    如果你打算在此Linux上开发应用程序或者帮助别人调试bug,那么就选"Y",否则选"N".注意这里的调试和开发不是指内核调试和开发,是应用程序的调试和开发.
    Kernel support for scripts starting with #!
    CONFIG_BINFMT_SCRIPT
    支持以"#!/path/to/interpreter"行开头的脚本.务必"Y",不要"M"或"N",除非你知道自己在做什么.
    Kernel support for MISC binaries
    CONFIG_BINFMT_MISC
    允许插入二进制封装层到内核中,运行Java,.NET(Mono-based),Python,Emacs-Lisp等语言编写的程序时需要它,DOSEMU也需要它.想要更方便的使用此特性,你还需要使用"mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc"挂载binfmt_misc伪文件系统.具体详情可以参考"Documentation/binfmt_misc.txt"文档.
    Enable core dump support
    CONFIG_COREDUMP
    核心转储(core dump)支持.如果你打算在此Linux上开发应用程序或者帮助别人调试bug,那么就选"Y",否则选"N".注意这里的调试和开发不是指内核调试和开发,是应用程序的调试和开发.
    IA32 Emulation
    CONFIG_IA32_EMULATION
    允许在64位内核中运行32位代码.除非你打算使用纯64位环境,否则请开启此项.提示:GRUB2支持引导纯64位内核,但是GRUB不支持.
    IA32 a.out support
    CONFIG_IA32_AOUT
    早期UNIX系统的可执行文件格式(32位),目前已经被ELF格式取代.除非你需要使用古董级的二进制程序.否则请关闭.
    x32 ABI for 64-bit mode
    CONFIG_X86_X32
    允许32位程序使用完整的64位寄存器,以减小内存占用(memory footprint).这可以提高32位程序的运行性能.如果你使用binutils-2.22以上的版本(支持elf32_x86_64),就选"Y",否则选"N".

    Networking support
    网络支持

    Networking options
    网络选项
    Packet socket
    CONFIG_PACKET
    链路层PF_PACKET套接字支持.可以让应用程序(比如:抓包工具tcpdump, DHCP客户端dhclient)直接与网络设备通讯,而无需使用内核中的其它中介协议.不确定的选"Y"或"M".
    Packet: sockets monitoring interface
    CONFIG_PACKET_DIAG
    PF_PACKET套接字监控接口,ss这样的诊断工具需要它.
    Unix domain sockets
    CONFIG_UNIX
    Unix domain sockets 支持.许多程序都使用它在操作系统内部进行进程间通信(IPC),比如: X Window, syslog, udev 等等.选"Y",除非你确实知道自己在做什么.
    UNIX: socket monitoring interface
    CONFIG_UNIX_DIAG
    UNIX套接字监控接口,ss这样的工具需要它.
    Transformation user configuration interface
    CONFIG_XFRM_USER
    IPsec相关的工具提供Transformation(XFRM)用户配置接口
    Transformation sub policy support
    CONFIG_XFRM_SUB_POLICY
    XFRM子策略支持,不确定的选"N".
    Transformation migrate database
    CONFIG_XFRM_MIGRATE
    用于动态的更新 IPsec SA(security association) 的定位器(locator).这个特性对于手机这类移动设备来讲至关重要,因为它需要在不同的基站之间迁移.不确定的选"N".
    Transformation statistics
    CONFIG_XFRM_STATISTICS
    转换统计,这不是SNMP/MIB规范的内容.用于调试目的.不确定的选"N".
    PF_KEY sockets
    CONFIG_NET_KEY
    PF_KEYv2 套接字支持(与KAME兼容).PF_KEY协议族主要用来处理SA(安全关联),对SADB(SA数据库)进行管理,主要用在IPsec协议中.PF_KEY_v2的编程APIRFC2367中定义.
    PF_KEY MIGRATE
    CONFIG_NET_KEY_MIGRATE
    向PF_KEYv2套接字中添加一个 PF_KEY MIGRATE 消息. PF_KEY MIGRATE 消息可用于动态的更新 IPsec SA(security association) 的定位器(locator).这个特性对于手机这类移动设备来讲至关重要,因为它需要在不同的基站之间迁移.不确定的选"N".
    TCP/IP networking
    CONFIG_INET
    TCP/IP协议,必选!
    IP: multicasting
    CONFIG_IP_MULTICAST
    IP组播(IP multicasting)支持.指的是一个发送者向一组特定的接收者发送数据,但只需发送一份数据副本.实际应用的场合很少,MBONE算是其中之一,与RTP等音视频协议相结合也算一种.不确定的选"N".
    IP: advanced router
    CONFIG_IP_ADVANCED_ROUTER
    高级路由支持,需要开启内核的IP转发功能(echo 1 > /proc/sys/net/ipv4/ip_forward)才能正常工作.如果这个Linux系统用作专业的路由器就选上,选上之后还需要按需选择其下的子项.一般的主机不需要这个.
    FIB TRIE statistics
    CONFIG_IP_FIB_TRIE_STATS
    主要用于测试TRIE性能
    IP: policy routing
    CONFIG_IP_MULTIPLE_TABLES
    策略路由
    IP: equal cost multipath
    CONFIG_IP_ROUTE_MULTIPATH
    用于基于目的地址的负载均衡
    IP: verbose route monitoring
    CONFIG_IP_ROUTE_VERBOSE
    显示冗余的路由监控信息
    IP: kernel level autoconfiguration
    CONFIG_IP_PNP
    在内核启动时自动配置网卡的ip地址/路由表,配置信息来自于以下途径:内核引导参数,自举协议(BOOTP),反向地址转换协议(RARP),动态主机配置协议(DHCP).通常,需要从网络启动的无盘工作站才需要这个东西(此时还需要开启CONFIG_ROOT_NFS),一般的发行版都通过启动脚本(dhcpcd/dhclient/ifconfig)配置网络.不确定的选"N".
    IP: DHCP support
    CONFIG_IP_PNP_DHCP
    DHCP协议支持
    IP: BOOTP support
    CONFIG_IP_PNP_BOOTP
    BOOTP协议支持
    IP: RARP support
    CONFIG_IP_PNP_RARP
    RARP协议支持
    IP: tunneling
    CONFIG_NET_IPIP
    IP隧道,主要目的是为了在TCP/IP网络中传输其他协议的数据包,当然也包括IP数据包(例如用于实现VPN).
    IP: GRE demultiplexer
    CONFIG_NET_IPGRE_DEMUX
    GRE demultiplexer 支持.被CONFIG_NET_IPGRE和CONFIG_PPTP所依赖.
    IP: GRE tunnels over IP
    CONFIG_NET_IPGRE
    基于IP的通用路由封装(Generic Routing Encapsulation)隧道支持.该驱动主要用于对端是Cisco路由器的场合,因为Cisco的路由器特别偏好GRE隧道(而不是CONFIG_NET_IPIP),并且GRE还允许通过隧道对组播进行再分发.
    IP: broadcast GRE over IP
    CONFIG_NET_IPGRE_BROADCAST
    GRE/IP的一种应用是构建一个广播WAN(Wide Area Network),而其看上去却很像一个跑在互联网上的LAN(Local Area Network).如果你想要创建这样的网络,那么就选"Y"(还要加上CONFIG_IP_MROUTE).
    IP: multicast routing
    CONFIG_IP_MROUTE
    组播路由支持.实际应用的场合很少,MBONE算是其中之一,不确定的选"N".
    IP: multicast policy routing
    CONFIG_IP_MROUTE_MULTIPLE_TABLES
    通常,组播路由器上会运行一个单独的用户态守护进程,根据源地址和目的地址来处理数据包.开启此项后,将能同时考虑数据包所带的标记(mark)和所通过的网络接口,并可在用户空间同时运行多个守护进程,每一个进程处理一张路由表.
    IP: PIM-SM version 1 support
    CONFIG_IP_PIMSM_V1
    Sparse Mode PIM (Protocol Independent Multicast) version 1 支持. 该协议被Cisco路由器广泛支持,你需要特定的软件(pimd-v1)才能使用它.
    IP: PIM-SM version 2 support
    CONFIG_IP_PIMSM_V2
    Sparse Mode PIM (Protocol Independent Multicast) version 2 支持. 该协议的使用并不广泛,你需要特定的软件(pimd 或 gated-5)才能使用它.
    IP: ARP daemon support
    CONFIG_ARPD
    通常情况下,内核自身会使用ARP协议解析本地网络中的IP地址与MAC地址的对应关系,并进行缓存.开启此项后,内核将使用用户空间的守护进程进行ARP解析.这主要是为了使用其他的替代解析协议(比如mGRE隧道中的NHRP),或调试目的.不确定的选"N".
    IP: TCP syncookie support
    CONFIG_SYN_COOKIES
    TCP syncookie 支持,这是抵抗SYN flood攻击的好东西.此特性的开关可以通过"/proc/sys/net/ipv4/tcp_syncookies"文件控制,写入"1"表示开启,写入"0"表示关闭.建议服务器环境开启此项.
    Virtual (secure) IP: tunneling
    CONFIG_NET_IPVTI
    虚拟IP隧道.可以和xfrm隧道一起使用,以实现IPSEC安全隧道,并在其上使用路由协议.不确定的选"N".
    IP: AH transformation
    CONFIG_INET_AH
    IPsec AH 支持.IPsec验证头(AH)可对整个数据包(IP报头与数据)提供身份验证/完整性/抗重播保护.但是它不提供保密性,即它不对数据进行加密.由于这个原因,AH头正在慢慢被ESP头取代.
    IP: ESP transformation
    CONFIG_INET_ESP
    IPsec ESP 支持.IPsec封装安全负载(ESP)不仅为IP负载提供身份验证/完整性/抗重播保护,还提供保密性,也就是还对数据进行加密.ESP有两种使用模式:传输模式(ESP不对整个数据包进行签名,只对IP负载(不含IP报头)进行保护)和隧道模式(将原始IP包封装进新的带有ESP头的IP包内,可提供完整的保护).ESP可以独立使用,也可与AH组合使用(越来越少).
    IP: IPComp transformation
    CONFIG_INET_IPCOMP
    IP静荷载压缩协议(IP Payload Compression Protocol)(RFC3173)支持.用于支持IPsec
    IP: IPsec transport mode
    CONFIG_INET_XFRM_MODE_TRANSPORT
    IPsec传输模式.常用于对等通信,用以提供内网安全.数据包经过了加密但IP头没有加密,因此任何标准设备或软件都可查看和使用IP头
    IP: IPsec tunnel mode
    CONFIG_INET_XFRM_MODE_TUNNEL
    IPsec隧道模式.用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已经过加密处理且分配有新的ESP头/IP头/验证尾,从而能够隐藏受保护站点的拓扑结构
    IP: IPsec BEET mode
    CONFIG_INET_XFRM_MODE_BEET
    IPsec BEET模式.
    Large Receive Offload (ipv4/tcp)
    CONFIG_INET_LRO
    LRO(Large Receive Offload) (ipv4/tcp) 支持.它通过将多个TCP数据整合在一个skb结构中,并在稍后的某个时刻作为一个大的数据包交付给上层的网络协议栈,以减少上层协议栈处理skb的开销,提高Linux系统接收TCP数据包的能力.目前,主流网卡驱动都已支持此特性.建议开启.不过,LRO不应该在路由器上开启,因为它破坏了end-to-end原则,并会对路由性能造成显著的不利影响.
    INET: socket monitoring interface
    CONFIG_INET_DIAG
    INET(TCP,DCCP,...) socket 监视接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它
    UDP: socket monitoring interface
    CONFIG_INET_UDP_DIAG
    UDP socket 监视接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它
    TCP: advanced congestion control
    CONFIG_TCP_CONG_ADVANCED
    高级拥塞控制,子项提供多种拥塞控制算法供选用.如果没有特殊需求就别选了,内核会自动将默认的拥塞控制设为"CUBIC"并将"new Reno"作为候补.仅在你确实知道自己需要的情况下选"Y".不确定的选"N".
    TCP: MD5 Signature Option support (RFC2385)
    CONFIG_TCP_MD5SIG
    RFC2385中描述了一种对TCP会话进行MD5签名的保护机制.目前仅用于保护互联网运营商骨干路由器间的BGP会话.一般的路由器/服务器等设备根本不需要这个.
    The IPv6 protocol
    CONFIG_IPV6
    引领未来的IPv6支持.
    IPv6: Privacy Extensions (RFC 3041) support
    CONFIG_IPV6_PRIVACY
    IPv6利用"Stateless Address Autoconfiguration"在无DHCP服务器的情况下,产生可用的"临时IPv6地址".而本选项则为这个机制增加"隐私扩展"(RFC4941)保护.默认状态下,内核并不生产"临时地址",需要"echo 2 >/proc/sys/net/ipv6/conf/all/use_tempaddr"才能开启
    IPv6: Router Preference (RFC 4191) support
    CONFIG_IPV6_ROUTER_PREF
    主机连上IPv6网络后,会发出路由器邀请包(Router Solicitation),路由器则应答路由器公告包(Router Advertisement),其中包含网关地址/IPv6前缀/DNS地址,这样主机就能取得IPv6地址,并连接到互联网上,这就是无状态地址自动分配(StateLess Address AutoConfiguration)."Router Preference"是"Router Advertisement"包的可选扩展.它可以改进主机选中路由器的能力,特别是在多归属(multi-homed)网络中.不确定的选"N".
    IPv6: Route Information (RFC 4191) support
    CONFIG_IPV6_ROUTE_INFO
    对"Route Information"的实验性支持.
    IPv6: Enable RFC 4429 Optimistic DAD
    CONFIG_IPV6_OPTIMISTIC_DAD
    乐观重复地址检测(Optimistic Duplicate Address Detection)的实验性支持.可以更快的进行自动地址配置.不确定的选"N".
    IPv6: AH transformation
    CONFIG_INET6_AH
    IPsec AH 支持.不确定的选"Y"或"M".AH头正在慢慢被ESP头取代.
    IPv6: ESP transformation
    CONFIG_INET6_ESP
    IPsec ESP 支持.不确定的选"Y"或"M".
    IPv6: IPComp transformation
    CONFIG_INET6_IPCOMP
    IPv6静荷载压缩协议(IP Payload Compression Protocol)(RFC3173)支持.用于支持IPsec.不确定的选"Y"或"M".
    IPv6: Mobility
    CONFIG_IPV6_MIP6
    移动IPv6(RFC3775)支持.主要用于移动设备.不确定的选"N".
    IPv6: IPsec transport mode
    CONFIG_INET6_XFRM_MODE_TRANSPORT
    IPsec传输模式.常用于对等通信,用以提供内网安全.数据包经过了加密但IP头没有加密,因此任何标准设备或软件都可查看和使用IP头.不确定的选"Y"或"M".
    IPv6: IPsec tunnel mode
    CONFIG_INET6_XFRM_MODE_TUNNEL
    IPsec隧道模式.用于提供外网安全(包括虚拟专用网络).整个数据包(数据头和负载)都已经过加密处理且分配有新的ESP头/IP头/验证尾,从而能够隐藏受保护站点的拓扑结构.不确定的选"Y"或"M".
    IPv6: IPsec BEET mode
    CONFIG_INET6_XFRM_MODE_BEET
    IPsec BEET模式.不确定的选"Y"或"M".
    IPv6: MIPv6 route optimization mode
    CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION
    移动IPv6(Mobile IPv6)路由优化模式.主要用于移动设备.不确定的选"N".
    IPv6: IPv6-in-IPv4 tunnel (SIT driver)
    CONFIG_IPV6_SIT
    在IPv4网络上建立IPv6隧道.如果你希望可以通过IPv4网络接入一个IPv6网络,可以选"Y"或"M",否则选"N".
    IPv6: IPv6 Rapid Deployment (6RD)
    CONFIG_IPV6_SIT_6RD
    IPv6快速部署(6RD)支持.不确定的选"N".
    IPv6: IP-in-IPv6 tunnel (RFC2473)
    CONFIG_IPV6_TUNNEL
    IPv6-in-IPv6/IPv4-in-IPv6 隧道(RFC2473)支持.不确定的选"N".
    IPv6: GRE tunnel
    CONFIG_IPV6_GRE
    基于IPv6的通用路由封装(Generic Routing Encapsulation)隧道支持.该驱动主要用于对端是Cisco路由器的场合,因为Cisco的路由器特别偏好GRE隧道(而不是CONFIG_IPV6_TUNNEL),并且GRE还允许通过隧道对组播进行再分发.
    IPv6: Multiple Routing Tables
    CONFIG_IPV6_MULTIPLE_TABLES
    多重路由表(Multiple Routing Tables)支持.不确定的选"N".
    IIPv6: source address based routing
    CONFIG_IPV6_SUBTREES
    允许根据源地址或前缀进行路由.不确定的选"N".
    IPv6: multicast routing
    CONFIG_IPV6_MROUTE
    测试性的IPv6组播路由支持.实际应用的场合很少,不确定的选"N".
    IPv6: multicast policy routing
    CONFIG_IPV6_MROUTE_MULTIPLE_TABLES
    通常,组播路由器上会运行一个单独的用户态守护进程,根据源地址和目的地址来处理数据包.开启此项后,将能同时考虑数据包所带的标记(mark)和所通过的网络接口,并可在用户空间同时运行多个守护进程,每一个进程处理一张路由表.
    IPv6: PIM-SM version 2 support
    CONFIG_IPV6_PIMSM_V2
    IPv6 PIM multicast routing protocol PIM-SMv2 支持.
    NetLabel subsystem support
    CONFIG_NETLABEL
    NetLabel子系统支持.NetLabel子系统为诸如CIPSO与RIPSO之类能够在分组信息上添加标签的协议提供支持,看不懂就别选了.
    Security Marking
    CONFIG_NETWORK_SECMARK
    对网络包进行安全标记,类似于nfmark,但主要是为安全目的而设计.看不懂的就别选了
    Timestamping in PHY devices
    CONFIG_NETWORK_PHY_TIMESTAMPING
    允许在硬件支持的前提下,为物理层(PHY)数据包打上时间戳.这会略微增加发送与接收的开销.不确定的选"N".
    Network packet filtering framework (Netfilter)
    CONFIG_NETFILTER
    Netfilter可以对数据包进行过滤和修改,可以作为防火墙("packet filter"或"proxy-based")或网关(NAT)或代理(proxy)或网桥使用.
    Network packet filtering debugging
    CONFIG_NETFILTER_DEBUG
    仅供开发者调试Netfilter使用
    Advanced netfilter configuration
    CONFIG_NETFILTER_ADVANCED
    选"Y"将会显示所有模块供用户选择,选"N"则会隐藏一些不常用的模块,并自动将常用模块设为"M".
    Bridged IP/ARP packets filtering
    CONFIG_BRIDGE_NETFILTER
    如果你希望使用桥接防火墙就打开它.不确定的选"N".
    Core Netfilter Configuration
    核心Netfilter配置(当包流过Chain时如果match某个规则那么将由该规则的target来处理,否则将由同一个Chain中的下一个规则进行匹配,若不match所有规则那么最终将由该Chain的policy进行处理)
    Netfilter NFACCT over NFNETLINK interface
    CONFIG_NETFILTER_NETLINK_ACCT
    允许通过NFNETLINK接口支持NFACCT(记账).
    Netfilter NFQUEUE over NFNETLINK interface
    CONFIG_NETFILTER_NETLINK_QUEUE
    允许通过NFNETLINK接口支持NFQUEUE(排队).
    Netfilter LOG over NFNETLINK interface
    CONFIG_NETFILTER_NETLINK_LOG
    允许通过NFNETLINK接口支持"LOG"(日志).该选项废弃了ipt_ULOG和ebg_ulog机制,并打算在将来废弃基于syslog的ipt_LOG和ip6t_LOG模块.
    Netfilter connection tracking support
    CONFIG_NF_CONNTRACK
    连接追踪(connection tracking)支持,连接跟踪把所有连接都保存在一个表格内,并将每个包关联到其所属的连接.可用于报文伪装或地址转换,也可用于增强包过滤能力.
    Connection mark tracking support
    CONFIG_NF_CONNTRACK_MARK
    允许对连接进行标记,与针对单独的包进行标记的不同之处在于它是针对连接流的. CONNMARK target 和 connmark match 需要它的支持.
    Connection tracking security mark support
    CONFIG_NF_CONNTRACK_SECMARK
    允许对连接进行安全标记,通常这些标记包(SECMARK)复制到其所属连接(CONNSECMARK),再从连接复制到其关联的包(SECMARK).
    Connection tracking zones
    CONFIG_NF_CONNTRACK_ZONES
    "conntrack zones"支持.通常,每个连接需要一个全局唯一标示符,而"conntrack zones"允许在不同zone内的连接使用相同的标识符.
    Supply CT list in procfs (OBSOLETE)
    CONFIG_NF_CONNTRACK_PROCFS
    已被废弃,选"N".
    Connection tracking events
    CONFIG_NF_CONNTRACK_EVENTS
    连接跟踪事件支持.如果启用这个选项,连接跟踪代码将提供一个"notifier"链,它可以被其它内核代码用来获知连接跟踪状态的改变
    Connection tracking timeout
    CONFIG_NF_CONNTRACK_TIMEOUT
    连接跟踪"timeout"扩展.这样你就可以在网络流上通过 CT target 附加超时策略.
    Connection tracking timestamping
    CONFIG_NF_CONNTRACK_TIMESTAMP
    时间戳支持.这样你就能在连接建立和断开时打上时间戳.
    DCCP protocol connection tracking support
    CONFIG_NF_CT_PROTO_DCCP
    DCCP协议支持.
    SCTP protocol connection tracking support
    CONFIG_NF_CT_PROTO_SCTP
    SCTP协议支持.
    UDP-Lite protocol connection tracking support
    CONFIG_NF_CT_PROTO_UDPLITE
    UDP-Lite支持.
    Amanda backup protocol support
    CONFIG_NF_CONNTRACK_AMANDA
    Amanda备份协议支持.
    FTP protocol support
    CONFIG_NF_CONNTRACK_FTP
    文件传输协议(FTP)支持.跟踪FTP连接需要额外的帮助程序.
    H.323 protocol support
    CONFIG_NF_CONNTRACK_H323
    H.323协议支持.
    IRC protocol support
    CONFIG_NF_CONNTRACK_IRC
    IRC扩展协议DCC(Direct Client-to-Client Protocol)支持.该协议允许用户之间绕开服务器直接聊天和传输文件.
    NetBIOS name service protocol support
    CONFIG_NF_CONNTRACK_NETBIOS_NS
    NetBIOS协议支持.
    SNMP service protocol support
    CONFIG_NF_CONNTRACK_SNMP
    SNMP协议支持.
    PPtP protocol support
    CONFIG_NF_CONNTRACK_PPTP
    RFC2637 点对点隧道协议(Point to Point Tunnelling Protocol)协议支持.
    SANE protocol support
    CONFIG_NF_CONNTRACK_SANE
    SANE协议支持.
    SIP protocol support
    CONFIG_NF_CONNTRACK_SIP
    SIP协议支持.
    TFTP protocol support
    CONFIG_NF_CONNTRACK_TFTP
    TFTP协议支持.
    Connection tracking netlink interface
    CONFIG_NF_CT_NETLINK
    基于netlink的用户接口支持.
    Connection tracking timeout tuning via Netlink
    CONFIG_NF_CT_NETLINK_TIMEOUT
    通过Netlink机制支持对连接追踪超时进行细粒度的调节:允许为特定的网络流指定超时策略,而不是使用统一的全局超时策略.
    Connection tracking helpers in user-space via Netlink
    CONFIG_NF_CT_NETLINK_HELPER
    通过Netlink机制为用户空间的连接追踪帮助程序提供基础框架.
    NFQUEUE integration with Connection Tracking
    CONFIG_NETFILTER_NETLINK_QUEUE_CT
    开启此项后,即使网络包已经在队列(NFQUEUE)中,它依然可以包含连接追踪信息.
    Transparent proxying support
    CONFIG_NETFILTER_TPROXY
    透明代理支持,也就是可以处理非本地的 IPv4 TCP/UDP 套接字.此功能需要配合一些iptables规则和策略路由才能工作.详见"Documentation/networking/tproxy.txt"文档.
    Netfilter Xtables support (required for ip_tables)
    CONFIG_NETFILTER_XTABLES
    如果你打算使用 ip_tables, ip6_tables, arp_tables 之一就必须选上
    nfmark target and match support
    CONFIG_NETFILTER_XT_MARK
    "nfmark"是用户给包打上的一个自定义标记.用于match时,允许基于"nfmark"值对包进行匹配.用于target时,允许在"mangle"表中创建规则以改变包的"nfmark"值.
    ctmark target and match support
    CONFIG_NETFILTER_XT_CONNMARK
    "ctmark"是用户以连接为组,给同一连接中的所有包打上的自定义标记.用法与"nfmark"相似.
    set target and match support
    CONFIG_NETFILTER_XT_SET
    "set"是ipset工具创建的IP地址集合.使用match可以对IP地址集合进行匹配,使用target可以对集合中的项进行增加和删除.
    AUDIT target support
    CONFIG_NETFILTER_XT_TARGET_AUDIT
    为被drop/accept的包创建审计记录.
    CHECKSUM target support
    CONFIG_NETFILTER_XT_TARGET_CHECKSUM
    用于"mangle"表,为缺少校验和的包添加checksum字段的值.主要是为了兼容一些老旧的网络程序(例如某些dhcp客户端).
    "CLASSIFY" target support
    CONFIG_NETFILTER_XT_TARGET_CLASSIFY
    允许为包设置优先级,一些qdiscs排队规则(atm,cbq,dsmark,pfifo_fast,htb,prio)需要使用它
    "CONNMARK" target support
    CONFIG_NETFILTER_XT_TARGET_CONNMARK
    这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_CONNMARK
    "CONNSECMARK" target support
    CONFIG_NETFILTER_XT_TARGET_CONNSECMARK
    针对链接进行安全标记,同时还会将连接上的标记还原到包上(如果链接中的包尚未进行安全标记),通常与 SECMARK target 联合使用
    "CT" target support
    CONFIG_NETFILTER_XT_TARGET_CT
    允许为包加上连接追踪相关的参数,比如"event"和"helper".
    "DSCP" and "TOS" target support
    CONFIG_NETFILTER_XT_TARGET_DSCP
    DSCP target 允许对IPv4/IPv6包头部的DSCP(Differentiated Services Codepoint)字段(常用于Qos)进行修改. TOS target 允许在"mangle"表创建规则以修改IPv4包头的TOS(Type Of Service)字段或IPv6包头的Priority字段.
    "HL" hoplimit target support
    CONFIG_NETFILTER_XT_TARGET_HL
    HL(IPv6)/TTL(IPv4) target 允许更改包头的 hoplimit/time-to-live 值.
    "HMARK" target support
    CONFIG_NETFILTER_XT_TARGET_HMARK
    允许在"raw"和"mangle"表中创建规则,以根据特定范围的哈希计算结果设置"skbuff"标记.
    IDLETIMER target support
    CONFIG_NETFILTER_XT_TARGET_IDLETIMER
    每个被匹配的包的定时器都会被强制指定为规则指定的值,当超时发生时会触发一个sysfs文件系统的通知.剩余时间可以通过sysfs读取.
    "LED" target support
    CONFIG_NETFILTER_XT_TARGET_LED
    允许在满足特定条件的包通过的时候,触发LED灯闪烁.比如可以用于控制网卡的状态指示灯仅在有SSH活动的时候才闪烁.
    LOG target support
    CONFIG_NETFILTER_XT_TARGET_LOG
    允许向syslog中记录包头信息.
    "MARK" target support
    CONFIG_NETFILTER_XT_TARGET_MARK
    这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MARK
    "NETMAP" target support
    CONFIG_NETFILTER_XT_TARGET_NETMAP
    NETMAP用于实现一对一的静态NAT(地址转换).
    "NFLOG" target support
    CONFIG_NETFILTER_XT_TARGET_NFLOG
    通过nfnetlink_log记录日志.
    "NFQUEUE" target Support
    CONFIG_NETFILTER_XT_TARGET_NFQUEUE
    用于替代老旧的 QUEUE target. 因为NFQUEUE能支持最多65535个队列,而QUEUE只能支持一个.
    "NOTRACK" target support (DEPRECATED)
    CONFIG_NETFILTER_XT_TARGET_NOTRACK
    已被废弃,勿选.
    "RATEEST" target support
    CONFIG_NETFILTER_XT_TARGET_RATEEST
    RATEEST target 允许测量网络流的传输速率.[注: rateest match 允许根据速率进行匹配.]
    REDIRECT target support
    CONFIG_NETFILTER_XT_TARGET_REDIRECT
    REDIRECT是一种特别的NAT:所有进入的连接都被映射到其入口网卡的地址,这样这些包就会"流入"本机而不是"流过"本机.这主要用于实现透明代理.
    "TEE" - packet cloning to alternate destination
    CONFIG_NETFILTER_XT_TARGET_TEE
    对包进行克隆,并将克隆的副本路由到另一个临近的路由器(Next Hop).
    "TPROXY" target support
    CONFIG_NETFILTER_XT_TARGET_TPROXY
    类似于REDIRECT,但并不依赖于连接追踪和NAT,也只能用于"mangle"表,用于将网络流量重定向到透明代理.
    "TRACE" target support
    CONFIG_NETFILTER_XT_TARGET_TRACE
    允许对包打标记,这样内核就可以记录每一个匹配到的规则.
    "SECMARK" target support
    CONFIG_NETFILTER_XT_TARGET_SECMARK
    允许对包进行安全标记,用于安全子系统
    "TCPMSS" target support
    CONFIG_NETFILTER_XT_TARGET_TCPMSS
    允许更改 TCP SYN 包的MSS(Maximum Segment Size)值,通常=MTU-40.
    "TCPOPTSTRIP" target support
    CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP
    允许从TCP包头中剥离所有TCP选项.
    "addrtype" address type match support
    CONFIG_NETFILTER_XT_MATCH_ADDRTYPE
    根据地址类型进行匹配: UNICAST, LOCAL, BROADCAST, ...
    "bpf" match support
    CONFIG_NETFILTER_XT_MATCH_BPF
    BPF(BSD Packet Filter)是一个强大的包匹配模块,用于匹配那些让过滤器返回非零值的包.
    "cluster" match support
    CONFIG_NETFILTER_XT_MATCH_CLUSTER
    这个模块可以用于创建网络服务器/防火墙集群,而无需借助价格昂贵的负载均衡设备.通常,在包必须被本节点处理的条件下,这个match返回"true".这样,所有节点都可以看到所有的包,但只有匹配的节点才需要进行处理,这样就将负载进行了分摊.而分摊算法是基于对源地址的哈希值.
    "comment" match support
    CONFIG_NETFILTER_XT_MATCH_COMMENT
    这是一个"伪match",目的是允许你在iptables规则集中加入注释
    "connbytes" per-connection counter match support
    CONFIG_NETFILTER_XT_MATCH_CONNBYTES
    允许针对单个连接内部每个方向(进/出)匹配已经传送的字节数/包数
    "connlabel" match support
    CONFIG_NETFILTER_XT_MATCH_CONNLABEL
    允许向连接分配用户自定义的标签名.内核仅存储bit值,而名称和bit之间的对应关系由用户空间处理.与"connmark"的不同之处在于:可以同时为一个连接分配32个标志位(flag bit).
    "connlimit" match support
    CONFIG_NETFILTER_XT_MATCH_CONNLIMIT
    允许根据每一个客户端IP地址(或每一段客户端IP地址段)持有的并发连接数进行匹配.
    "connmark" connection mark match support
    CONFIG_NETFILTER_XT_MATCH_CONNMARK
    这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_CONNMARK
    "conntrack" connection tracking match support
    CONFIG_NETFILTER_XT_MATCH_CONNTRACK
    通用连接跟踪匹配,是"state"的超集,它允许额外的链接跟踪信息,在需要设置一些复杂的规则(比如网关)时很有用
    "cpu" match support
    CONFIG_NETFILTER_XT_MATCH_CPU
    根据处理包所使用的CPU是哪个进行匹配
    "dccp" protocol match support
    CONFIG_NETFILTER_XT_MATCH_DCCP
    DCCP是打算取代UDP的新传输协议,它在UDP的基础上增加了流控和拥塞控制机制,面向实时业务
    "devgroup" match support
    CONFIG_NETFILTER_XT_MATCH_DEVGROUP
    允许根据网卡所属的"设备组"进行匹配
    "dscp" and "tos" match support
    CONFIG_NETFILTER_XT_MATCH_DSCP
    dscp match 允许根据IPv4/IPv6包头的DSCP字段进行匹配, tos match 允许根据IPv4包头的TOS字段进行匹配
    "ecn" match support
    CONFIG_NETFILTER_XT_MATCH_ECN
    允许根据IPv4 TCP包头的ECN字段进行匹配
    "esp" match support
    CONFIG_NETFILTER_XT_MATCH_ESP
    允许对IPSec包的ESP头中的SPI(安全参数序列)范围进行匹配
    "hashlimit" match support
    CONFIG_NETFILTER_XT_MATCH_HASHLIMIT
    此项的目的是取代"limit",它基于你选定的源/目的地址和/或端口动态创建"limit bucket"哈希表.这样你就可以迅速创建类似这样的匹配规则:(1)为给定的目的地址以每秒10k个包的速度进行匹配;(2)为给定的源地址以每秒500个包的速率进行匹配
    "helper" match support
    CONFIG_NETFILTER_XT_MATCH_HELPER
    加载特定协议的连接跟踪辅助模块,由该模块过滤所跟踪的连接类型的包,比如ip_conntrack_ftp模块
    "hl" hoplimit/TTL match support
    CONFIG_NETFILTER_XT_MATCH_HL
    基于IPv6包头的hoplimit字段,或IPv4包头的time-to-live字段进行匹配
    "iprange" address range match support
    CONFIG_NETFILTER_XT_MATCH_IPRANGE
    根据IP地址范围进行匹配,而普通的iptables只能根据"IP/mask"的方式进行匹配.
    "ipvs" match support
    CONFIG_NETFILTER_XT_MATCH_IPVS
    允许根据包的IPVS属性进行匹配
    "length" match support
    CONFIG_NETFILTER_XT_MATCH_LENGTH
    允许对包的长度进行匹配
    "limit" match support
    CONFIG_NETFILTER_XT_MATCH_LIMIT
    允许根据包的进出速率进行规则匹配,常和"LOG target"配合使用以抵抗某些Dos攻击
    "mac" address match support
    CONFIG_NETFILTER_XT_MATCH_MAC
    允许根据以太网的MAC地址进行匹配
    "mark" match support
    CONFIG_NETFILTER_XT_MATCH_MARK
    这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MARK
    "multiport" Multiple port match support
    CONFIG_NETFILTER_XT_MATCH_MULTIPORT
    允许对TCP或UDP包同时匹配多个不连续的端口(通常情况下只能匹配单个端口或端口范围)
    "nfacct" match support
    CONFIG_NETFILTER_XT_MATCH_NFACCT
    允许通过nfnetlink_acct使用扩展记账
    "osf" Passive OS fingerprint match
    CONFIG_NETFILTER_XT_MATCH_OSF
    开启Passive OS Fingerprinting模块,以允许通过进入的TCP SYN包被动匹配远程操作系统.规则和加载程序可以从这里获取:http://www.ioremap.net/projects/osf
    "owner" match support
    CONFIG_NETFILTER_XT_MATCH_OWNER
    基于创建套接字的本地进程身份(user/group)进行匹配,还可以用于检查一个套接字是否确实存在
    IPsec "policy" match support
    CONFIG_NETFILTER_XT_MATCH_POLICY
    基于IPsec policy进行匹配
    "physdev" match support
    CONFIG_NETFILTER_XT_MATCH_PHYSDEV
    允许对进入或离开所经过的物理网口进行匹配
    "pkttype" packet type match support
    CONFIG_NETFILTER_XT_MATCH_PKTTYPE
    允许对封包目的地址类别(广播/组播/直播)进行匹配
    "quota" match support
    CONFIG_NETFILTER_XT_MATCH_QUOTA
    允许对总字节数的限额值进行匹配
    "rateest" match support
    CONFIG_NETFILTER_XT_MATCH_RATEEST
    根据 RATEEST target 评估的速率值进行匹配
    "realm" match support
    CONFIG_NETFILTER_XT_MATCH_REALM
    允许根据iptables中的路由子系统中的realm值进行匹配.它与tc中的CONFIG_NET_CLS_ROUTE4非常类似.
    "recent" match support
    CONFIG_NETFILTER_XT_MATCH_RECENT
    recent match 用于创建一个或多个最近使用过的地址列表,然后又可以根据这些列表再进行匹配.
    "sctp" protocol match support
    CONFIG_NETFILTER_XT_MATCH_SCTP
    支持根据流控制传输协议(SCTP)源/目的端口和"chunk type"进行匹配.
    "socket" match support
    CONFIG_NETFILTER_XT_MATCH_SOCKET
    can be used to match packets for which a TCP or UDP socket lookup finds a valid socket. It can be used in combination with the MARK target and policy routing to implement full featured non-locally bound sockets.
    "state" match support
    CONFIG_NETFILTER_XT_MATCH_STATE
    这是对包进行分类的有力工具,它允许利用连接跟踪信息对连接中处于特定状态的包进行匹配
    "statistic" match support
    CONFIG_NETFILTER_XT_MATCH_STATISTIC
    允许根据一个给定的百分率对包进行周期性的或随机性的匹配
    "string" match support
    CONFIG_NETFILTER_XT_MATCH_STRING
    允许根据包所承载的数据中包含的特定字符串进行匹配
    "tcpmss" match support
    CONFIG_NETFILTER_XT_MATCH_TCPMSS
    允许根据TCP SYN包头中的MSS(最大分段长度)选项的值进行匹配
    "time" match support
    CONFIG_NETFILTER_XT_MATCH_TIME
    根据包的到达时刻(外面进入的包)或者离开时刻(本地生成的包)进行匹配
    "u32" match support
    CONFIG_NETFILTER_XT_MATCH_U32
    "u32"允许从包中提取拥有特定mask的最多4字节数据,将此数据移动(shift)特定的位数,然后测试其结果是否位于特定的集合范围内.更多细节可以直接参考内核源码(net/netfilter/xt_u32.c)
    IP set support
    CONFIG_IP_SET
    为内核添加IP集(IP set)支持,然后就可以使用CONFIG_NETFILTER_XT_SET功能.此特性必须配合用户态工具ipset一起使用.
    Maximum number of IP sets
    CONFIG_IP_SET_MAX
    默认的最大"set"数,取值范围是[2,65534].此值也可以由ip_set模块的max_sets参数设置.
    bitmap:ip set support
    CONFIG_IP_SET_BITMAP_IP
    "bitmap:ip"集合类型.根据IP地址范围设定集合.
    bitmap:ip,mac set support
    CONFIG_IP_SET_BITMAP_IPMAC
    "bitmap:ip,mac"集合类型.根据IP/MAC地址对范围设定集合.
    bitmap:port set support
    CONFIG_IP_SET_BITMAP_PORT
    "bitmap:port"集合类型.根据端口范围设定集合.
    hash:ip set support
    CONFIG_IP_SET_HASH_IP
    "hash:ip"集合类型.为多个离散的IP地址设定集合.
    hash:ip,port set support
    CONFIG_IP_SET_HASH_IPPORT
    "hash:ip,port"集合类型.为多个离散的IP/MAC地址对设定集合.
    hash:ip,port,ip
    CONFIG_IP_SET_HASH_IPPORTIP
    "hash:ip,port,ip"集合类型.为多个离散的IP/端口/IP三元组设定集合.
    hash:ip,port,net set support
    CONFIG_IP_SET_HASH_IPPORTNET
    "hash:ip,port,net"集合类型.为多个离散的IP/端口/网段三元组设定集合.
    hash:net set support
    CONFIG_IP_SET_HASH_NET
    "hash:net"集合类型.为多个离散的网段设定集合
    hash:net,port set support
    CONFIG_IP_SET_HASH_NETPORT
    "hash:net,port"集合类型.为多个离散的网段/端口对设定集合
    hash:net,iface set support
    CONFIG_IP_SET_HASH_NETIFACE
    "hash:net,iface"集合类型.为多个离散的网段/网卡接口对设定集合
    list:set set support
    CONFIG_IP_SET_LIST_SET
    "list:set"集合类型.将多个集合组成一个更大的集合
    IP virtual server support
    CONFIG_IP_VS
    IPVS(IP Virtual Server)支持.IPVS可以帮助LVS基于多个后端真实服务器创建一个高性能的虚拟服务器.可以使用三种具体的方法实现:NAT,隧道,直接路由(使用较广).
    IPv6 support for IPVS
    CONFIG_IP_VS_IPV6
    为IPVS添加IPv6支持
    IP virtual server debugging
    CONFIG_IP_VS_DEBUG
    为IPVS添加调试支持
    IPVS connection table size (the Nth power of 2)
    CONFIG_IP_VS_TAB_BITS
    设置IPVS连接哈希表的大小(2CONFIG_IP_VS_TAB_BITS),取值范围是[8,20],默认值12的意思是哈希表的大小是212=4096项.IPVS连接哈希表使用链表来处理哈希碰撞.使用大的哈希表能够显著减少碰撞几率,特别是哈希表中有成千上万连接的时候.比较恰当的值差不多等于每秒的新建连接数乘以每个连接的平均持续秒数.太小的值会造成太多碰撞,从而导致性能大幅下降;太大的值又会造成占用太多不必要的内存(每个表项8字节+每个连接128字节).该值也可以通过ip_vs模块的conn_tab_bits参数进行设置.
    TCP load balancing support
    CONFIG_IP_VS_PROTO_TCP
    TCP传输协议负载均衡支持
    UDP load balancing support
    CONFIG_IP_VS_PROTO_UDP
    UDP传输协议负载均衡支持
    ESP load balancing support
    CONFIG_IP_VS_PROTO_ESP
    IPSec ESP(Encapsulation Security Payload)传输协议负载均衡支持
    AH load balancing support
    CONFIG_IP_VS_PROTO_AH
    IPSec AH(Authentication Header)传输协议负载均衡支持.
    SCTP load balancing support
    CONFIG_IP_VS_PROTO_SCTP
    SCTP传输协议负载均衡支持
    round-robin scheduling
    CONFIG_IP_VS_RR
    循环分散算法:最简单的调度算法,将连接简单的循环分散到后端服务器上
    weighted round-robin scheduling
    CONFIG_IP_VS_WRR
    基于权重的循环分散算法:在循环分散的基础上,权重较高的后端服务器接纳较多的连接
    least-connection scheduling
    CONFIG_IP_VS_LC
    最少连接算法:将连接优先分配到活动连接最少的后端服务器
    weighted least-connection scheduling
    CONFIG_IP_VS_WLC
    基于权重的最少连接算法:结合考虑活动连接数与服务器权重
    locality-based least-connection scheduling
    CONFIG_IP_VS_LBLC
    基于目的IP的最少连接算法(常用于缓存集群):优先根据目的IP地址将连接分配到特定的后端,仅在这些后端过载时(活动连接数大于其权重)才分散到其他后端.
    locality-based least-connection with replication scheduling
    CONFIG_IP_VS_LBLCR
    与LBLC类似,不同之处在于:前端负载均衡器会像NAT一样同时记住客户端IP与后端的对应关系,并在新的连接到来的时候,复用这个对应关系.
    destination hashing scheduling
    CONFIG_IP_VS_DH
    目标地址哈希表算法:简单的根据静态设定的目标IP地址哈希表将连接分发到后端
    source hashing scheduling
    CONFIG_IP_VS_SH
    源地址哈希表算法:简单的根据静态设定的源IP地址哈希表将连接分发到后端
    shortest expected delay scheduling
    CONFIG_IP_VS_SED
    最小期望延迟算法:将连接分配到根据期望延迟公式((Ci+1)/Ui)算得的延迟最小的后端."i"是后端服务器编号,"Ci"是该服务器当前的连接数,"Ui"是该服务器的权重.
    never queue scheduling
    CONFIG_IP_VS_NQ
    无排队算法:这是一个两阶段算法,如果有空闲服务器,就直接分发到空闲服务器(而不是等待速度最快的服务器),如果没有空闲服务器,就分发到期望延迟最小的服务器(SED算法).
    IPVS source hashing table size (the Nth power of 2)
    CONFIG_IP_VS_SH_TAB_BITS
    将源IP地址映射到后端服务器所使用的哈希表的大小(2CONFIG_IP_VS_SH_TAB_BITS),取值范围是[4,20],默认值8的意思是哈希表的大小是28=256项.理想的大小应该是所有后端的权重乘以后端总数?
    FTP protocol helper
    CONFIG_IP_VS_FTP
    FTP协议连接追踪帮助
    Netfilter connection tracking
    CONFIG_IP_VS_NFCT
    Netfilter连接追踪支持
    SIP persistence engine
    CONFIG_IP_VS_PE_SIP
    基于SIP Call-ID提供持久连接支持
    IP: Netfilter Configuration
    针对IPv4的Netfilter配置
    IPv4 connection tracking support (required for NAT)
    CONFIG_NF_CONNTRACK_IPV4
    IPv4链接跟踪.可用于包伪装或地址转换,也可用于增强包过滤能力
    proc/sysctl compatibility with old connection tracking
    CONFIG_NF_CONNTRACK_PROC_COMPAT
    用于兼容老旧的连接追踪用户态程序
    IP tables support (required for filtering/masq/NAT)
    CONFIG_IP_NF_IPTABLES
    要用iptables就肯定要选上
    "ah" match support
    CONFIG_IP_NF_MATCH_AH
    允许对IPSec包头的AH字段进行匹配
    "ecn" match support
    CONFIG_IP_NF_MATCH_ECN
    这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MATCH_ECN
    "rpfilter" reverse path filter match support
    CONFIG_IP_NF_MATCH_RPFILTER
    对进出都使用同一个网络接口的包进行匹配
    "ttl" match support
    CONFIG_IP_NF_MATCH_TTL
    这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_MATCH_HL
    Packet filtering
    CONFIG_IP_NF_FILTER
    定义filter表,以允许对包进行过滤
    REJECT target support
    CONFIG_IP_NF_TARGET_REJECT
    允许返回一个ICMP错误包而不是简单的丢弃包
    ULOG target support
    CONFIG_IP_NF_TARGET_ULOG
    反对使用该选项,因为它已经被CONFIG_NETFILTER_NETLINK_LOG代替
    IPv4 NAT
    CONFIG_NF_NAT_IPV4
    允许进行伪装/端口转发以及其它的NAT功能,仅在你需要使用iptables中的nat表时才需要选择
    MASQUERADE target support
    CONFIG_IP_NF_TARGET_MASQUERADE
    SNAT是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机.伪装(MASQUERADE)是一种特殊类型的SNAT:MASQUERADE是用发送数据的网卡上的IP来替换源IP,用于那些IP不固定的场合(比如拨号或者通过DHCP分配)
    NETMAP target support
    CONFIG_IP_NF_TARGET_NETMAP
    这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_NETMAP.
    REDIRECT target support
    CONFIG_IP_NF_TARGET_REDIRECT
    这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_REDIRECT.
    Basic SNMP-ALG support
    CONFIG_NF_NAT_SNMP_BASIC
    SNMP荷载实现ALG(Application Layer Gateway)支持(RFC2962).
    Packet mangling
    CONFIG_IP_NF_MANGLE
    在iptables中启用mangle表以便对包进行各种修改,常用于改变包的路由
    CLUSTERIP target support
    CONFIG_IP_NF_TARGET_CLUSTERIP
    CLUSTERIP target 允许你无需使用昂贵的负载均衡设备也能创建廉价的负载均衡集群
    ECN target support
    CONFIG_IP_NF_TARGET_ECN
    用于mangle表,可以去除IPv4包头的ECN(Explicit Congestion Notification)位,主要用于在保持ECN功能的前提下,去除网络上的"ECN黑洞".
    "TTL" target support
    CONFIG_IP_NF_TARGET_TTL
    这只是一个兼容旧配置的选项,等价于CONFIG_NETFILTER_XT_TARGET_HL.
    raw table support (required for NOTRACK/TRACE)
    CONFIG_IP_NF_RAW
    在iptables中添加一个raw表,该表在netfilter框架中非常靠前,并在PREROUTING和OUTPUT链上有钩子,从而可以对收到的数据包在连接跟踪前进行处理
    Security table
    CONFIG_IP_NF_SECURITY
    在iptables中添加一个security表,以支持强制访问控制(Mandatory Access Control)策略
    ARP tables support
    CONFIG_IP_NF_ARPTABLES
    arptables支持
    ARP packet filtering
    CONFIG_IP_NF_ARPFILTER
    ARP包过滤.对于进入和离开本地的ARP包定义一个filter表,在桥接的情况下还可以应用于被转发的ARP包
    ARP payload mangling
    CONFIG_IP_NF_ARP_MANGLE
    允许对ARP包的荷载部分进行修改,比如修改源和目标物理地址
    IPv6: Netfilter Configuration
    针对IPv6的Netfilter配置.其子项内容类似于IPv4,需要的话可以参考前面IPv4