Linux-3.10-x86_64 内核配置选项简介

2020年05月28日 阅读数:356
这篇文章主要向大家介绍Linux-3.10-x86_64 内核配置选项简介,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

Linux-3.10-x86_64 内核配置选项简介

做者:金步国[www.jinbuguo.com]


版权声明

本文做者是一位开源理念的坚决支持者,因此本文虽然不是软件,可是遵守开源的精神发布。php

  • 无担保:本文做者不保证做品内容准确无误,亦不承担任何因为使用此文档所致使的损失。html

  • 自由使用:任何人均可以自由的阅读/连接/打印此文档,无需任何附加条件。前端

  • 名誉权:任何人均可以自由的转载/引用/再分发此文档,但必须保留做者署名并注明出处。node

其余做品

本文做者十分愿意与他人分享劳动成果,若是你对个人其余翻译做品或者技术文章有兴趣,能够在以下位置查看现有的做品集:linux

联系方式

因为做者水平有限,所以不能保证做品内容准确无误。若是你发现了做品中的错误,请您来信指出,哪怕是错别字也好,任何提升做品质量的建议我都将虚心接纳。git

  • Email(QQ)70171448QQ.comgithub



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 andmanagers
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-" 至关于使用"makeCROSS_COMPILE=arm-linux-" 进行编译). 除非你想配置后默认自动进行交叉编译, 不然不要使用此选项.
Local version - append to kernel release
CONFIG_LOCALVERSION
在内核版本后面加上自定义的版本字符串( 最大64 字符), 能够用"uname-a" 命令看到
Automatically append version information to the versionstring
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 消息队列是POSIXIPC 的一部分, 若是你想编译和运行那些使用"mq_*" 系统调用的程序( 好比为Solaris 开发的程序), 就必须开启此选项.POSIX 消息队列能够做为"mqueue" 文件系统挂载以方便用户对队列进行操做. 不肯定的选"N".
open by fhandle syscalls
CONFIG_FHANDLE
用户程序能够使用句柄( 而非文件名) 来追踪文件( 使用open_by_handle_at(2)/name_to_handle_at(2) 系统调用), 即便某文件被重命名, 用户程序依然可定位那个文件. 此特性有助于实现用户空间文件服务器(userspacefile 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 进程负责重启), 在使用 SysVinit Upstart 之类的系统上应该关闭(login 服务由系统管理员手动重启). OpenRC 就是一个基于SysVinit 的系统.
IRQ subsystem
IRQ( 中断请求) 子系统
Expose hardware/virtual IRQ mapping viadebugfs
CONFIG_IRQ_DOMAIN_DEBUG
经过debugfs 中的irq_domain_mapping 文件向用户显示硬件IRQ /LinuxIRQ 号之间的对应关系. 仅用于开发调试.
Support sparse irq numbering
CONFIG_SPARSE_IRQ
稀疏IRQ 号支持. 它容许在小型设备上( 例如嵌入式设备) 定义一个很高的CONFIG_NR_CPUS , 但仍然不但愿占用太多内核" memoryfootprint"( 一段能够被操做或被管理的内存区域) 的场合. 稀疏IRQ 也更适合NUMA 平台, 由于它以一种对NUMA 更友好的方式分发中断描述符. 不肯定的选"N".
Timers subsystem
Linux内核时钟子系统
Timer tick handling
内核时钟滴答处理程序, 更多信息能够参考内核源码树下的" Documentation/timers/NO_HZ.txt" 文件
Periodic timer ticks (constant rate, nodynticks)
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(bootCPU 除外) 开启彻底无滴答特性.
Old Idle dynticks config
CONFIG_NO_HZ
等价于CONFIG_NO_HZ_IDLE, 临时用来兼容老版本内核选项, 将来会被删除.
High Resolution Timer Support
CONFIG_HIGH_RES_TIMERS
高精度定时器(hrtimer) 是从2.6.16 开始引入, 用于取代传统timerwheel( 基于 jiffies定时器) 的时钟子系统. 能够下降与内核其余模块的耦合性, 还能够提供比1 毫秒更高的精度( 由于它能够读取HPET/TSC 等新型硬件时钟源), 能够更好的支持音视频等对时间精度要求较高的应用. 建议选"Y".[ 提示] 这里说的" 定时器" 是指" 软件定时器", 而不是集成在主板上的硬件时钟发生器(ACPIPM 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 timeaccounting
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 timeaccounting
CONFIG_IRQ_TIME_ACCOUNTING
经过读取时间戳进行统计, 这是统计进程IRQ 时间的更细粒度的统计方式, 但对性能有些不良影响.
BSD Process Accounting
CONFIG_BSD_PROCESS_ACCT
用户空间程序能够要求内核将进程的统计信息写入一个指定的文件, 主要包括进程的建立时间/ 建立者/ 内存占用等信息.
BSD Process Accounting version 3 fileformat
CONFIG_BSD_PROCESS_ACCT_V3
使用新的v3 版文件格式, 能够包含每一个进程的PID 和其父进程的PID, 可是不兼容老版本的文件格式. 好比 GNUAccounting 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-CopyUpdate)子系统. 在读多写少的状况下, 这是一个高性能的锁机制, 对于被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-footprintRCU
CONFIG_TINY_PREEMPT_RCU
抢占式简单实现, 可以大幅下降RCU 系统的内存占用. 最适用于那些要求快速响应的单CPU 实时系统.
Consider userspace as in RCU extended quiescentstate
CONFIG_RCU_USER_QS
在内核和用户边界设置钩子函数, 将运行在用户态的CPU 从全局RCU 状态机制中移除, 这样就不会在RCU 系统中维护此CPU 的时钟滴答. 除非你想要帮助开发CONFIG_NO_HZ_FULL 模块, 不然不要打开此选项, 并且它还会对性能有不利影响.
Force context tracking
CONFIG_CONTEXT_TRACKING_FORCE
默认在内核和用户边界进行探测( 上下文跟踪), 以便测试依赖于此特性的各类功能( 好比用户空间的RCU extended quiescentstate), 这个特性目前仅用于调试目的, 将来也许会用于为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 fanoutvalue
CONFIG_RCU_FANOUT_LEAF
这个选项控制着树形RCU 层次结构的叶子层的端点数(leaf-levelfanout). 对于指望拥有更高能耗比( 更节能) 的系统, 请保持其默认值(16). 对于拥有成千上万个CPU 的系统来讲, 应该考虑将其设为最大值(CONFIG_RCU_FANOUT).
Disable tree-based hierarchical RCUauto-balancing
CONFIG_RCU_FANOUT_EXACT
强制按照CONFIG_RCU_FANOUT_LEAF 的值, 而不是使用自动平衡树结构来实现RCU 子系统. 目前仅用于调试目的. 将来也许会用于加强NUMA 系统的性能.
Accelerate last non-dyntick-idle CPU's graceperiods
CONFIG_RCU_FAST_NO_HZ
使CPU 还在忙碌, 也容许进入dynticks-idle 状态, 而且阻止RCU 4 个滴答就唤醒一次该CPU, 这样可以更有效的使用电力, 同时也拉长了RCU graceperiod 的时间, 形成性能下降. 若是能耗比对你而言很是重要( 你想节省每一分电力), 而且你不在意系统性能的下降(CPU 唤醒时间增长), 能够开启此选项. 台式机和服务器建议关闭此选项.
Enable RCU priority boosting
CONFIG_RCU_BOOST
容许提高RCU 实时优先级. 若是系统的负载常常很重, 或者你须要快速的实时响应系统, 那么就选"Y", 不然应该选"N".
Real-time priority to boost RCU readers to
CONFIG_RCU_BOOST_PRIO
默认提高RCU 实时优先级到什么程度. 取值范围是[1,99], 默认值是"1". 对于大多数实时系统来讲, 默认值是合适的, 可是对于多线程实时系统来讲, 可能须要增长这个值, 具体能够参考内核帮助的说明. 仅在你确实理解了的状况下再改变默认值.
Milliseconds to delay boosting after RCU grace-periodstart
CONFIG_RCU_BOOST_DELAY
在提高RCU 优先级以前, 容许有多长时间潜伏期( 延迟), 取值范围是[0,3000], 单位是毫秒, 默认值是"500". 不肯定的请使用默认值.
Offload RCU callback processing from boot-selectedCPUs
CONFIG_RCU_NOCB_CPU
若是你想帮助调试内核能够开启, 不然请关闭.
Build-forced no-CBs CPUs
在开启CONFIG_RCU_NOCB_CPU 选项的状况下, 指定哪一个CPU No-CBCPU, 至关于预先设置"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/taskplacement
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED
NUMA(Non-UniformMemory AccessArchitecture) 系统上自动启用进程/ 内存均衡, 也就是自动开启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(ControlGroup) 是一种进程管理机制, 能够针对一组进程进行系统资源的分配和管理, 可用于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>/cpusetfile
CONFIG_PROC_PID_CPUSET
提供过期的/proc/<pid>/cpuset 文件接口
Simple CPU accounting cgroup subsystem
CONFIG_CGROUP_CPUACCT
提供一个简单的资源控制器(ResourceController, 用于实现一组任务间的资源共享), 以监控cgroup 内全部进程的总CPU 使用量.
Resource counters
CONFIG_RESOURCE_COUNTERS
cgroup 提供独立于controller 资源计数器
Memory Resource Controller for Control Groups
CONFIG_MEMCG
cgroup 添加内存资源控制器, 包含匿名内存和页面缓存( Documentation/cgroups/memory.txt). 开启此选项后, 将会增长关联到每一个内存页fixedmemory 大小, 具体在64 位系统上是40bytes/PAGE_SIZE. 仅在你确实明白什么是 memoryresource controller 而且确实须要的状况下才开启此选项. 此功能能够经过命令行选项"cgroup_disable=memory" 进行关闭.
Memory Resource Controller Swap Extension
CONFIG_MEMCG_SWAP
MemoryResource Controller 添加对swap 的管理功能. 这样就能够针对每一个cgroup 限定其使用的mem+swap 总量. 若是关闭此选项,memory resource controller 将仅能限制mem 的使用量, 而没法对swap 进行控制( 进程有可能耗尽swap). 开启此功能会对性能有不利影响, 而且为了追踪swap 的使用也会消耗更多的内存( 若是swap 的页面大小是4KB, 那么每1GB swap 须要额外消耗512KB 内存), 因此在内存较小的系统上不建议开启.
Memory Resource Controller Swap Extension enabled bydefault
CONFIG_MEMCG_SWAP_ENABLED
若是开启此选项, 那么将默认开启CONFIG_MEMCG_SWAP 特性, 不然将默认关闭. 即便默认开启也能够经过内核引导参数"swapaccount=0" 禁止此特性.
Memory Resource Controller Kernel Memoryaccounting
CONFIG_MEMCG_KMEM
Memory Resource Controller 添加对内核对象所占用内存的管理功能. 和标准的Memory Resource Controller 对内存的控制不同之处在于: 这些内核对象所占用的内存是基于每一个内存页的, 而且能够被swap 到硬盘. 使用这个功能能够确保cgroup 中的进程不会单独耗尽全部内核资源.
HugeTLB Resource Controller for ControlGroups
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 forFAIR_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), blockiothrottle 也会用它来针对特定块设备限制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 选项, 以容许用户空间使用"memorycgroup" 限制非特权用户的内存使用量. 不肯定的选"N".
PID Namespaces
CONFIG_PID_NS
进程PID 命名空间支持
Network namespace
CONFIG_NET_NS
网络协议栈的命名空间支持
Require conversions between uid/gids and their internalrepresentation
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 userspacetools
CONFIG_SYSFS_DEPRECATED
为了兼容旧版本的应用程序而保留过期的sysfs 特性. 仅当在使用2008 年之前的发行版时才须要开启,2009 年以后的发行版中必须关闭.
Enable deprecated sysfs features bydefault
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 stubkernel), 而不是经过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
快速用户空间互斥 (fastuserspacemutexes) 能够使线程串行化以免竞态条件, 也提升了响应速度. 禁用它将致使内核不能正确的运行基于glibc 的程序
Enable eventpoll support
CONFIG_EPOLL
Epoll 系列系统调用(epoll_*) 支持, 这是当前在Linux 下开发大规模并发网络程序( 好比Nginx) 的热门人选, 设计目的是取代既有POSIXselect(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新的 APIsignalfd 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
禁用堆随机化(heaprandomization) 功能. 堆随机化可让针对堆溢出的攻击变得困难, 可是不兼容那些古董级的二进制程序(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
OProfilemultiplexing技术支持
Kprobes
CONFIG_KPROBES
Kprobes 是一个轻量级的内核调试工具, 能在内核运行的几乎任意时间点进行暂停/ 读取/ 修改等操做的调试工具. 仅供调试使用.
Optimize very unlikely/likely branches
CONFIG_JUMP_LABEL
针对内核中某些" 几乎老是为真" 或者" 几乎老是为假" 的条件分支判断使用 "asmgoto" 进行优化( 在分支预测失败时会浪费不少时间在回退上, 可是这种状况极少发生). 不少内核子系统都支持进行这种优化. 建议开启.
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
打开可加载模块支持, 能够经过"makemodules_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
在执行"makemodules_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(SCSIgeneric) 支持.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/SCSIData Integrity Field 或者T13/ATA External Path Protection 特性, 那么能够开启此选项, 不然建议关闭.
Block layer bio throttling support
CONFIG_BLK_DEV_THROTTLING
BioThrottling 支持, 也就是容许限制每一个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( GUIDPartition 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(CompleteFairQueuing) 调度器. 努力在各内核线程间公平分配IO 资源, 适用于系统中存在着大量内核线程同时进行IO 请求的状况. 但对于只有少数内核线程进行密集IO 请求的状况, 则会出现明显的性能降低.
CFQ Group Scheduling support
CONFIG_CFQ_GROUP_IOSCHED
容许将CFQ cgroup 组合使用, 也就是将每一个cgroup 当作一个总体, 在各cgroup 之间进行IO 资源的分配. 参见" Documentation/cgroups/blkio-controller.txt" 文件. 还能够参考一下《Linux 内核精髓》中的" 使用 BlockI/O控制器" 一章.
BFQ I/O scheduler
CONFIG_IOSCHED_BFQ
bfq(BudgetFairQueueing) 调度器. 这是一个基于CFQ 调度器的改进版本, 更适合于对交互性要求比较高的场合, 好比桌面系统和实时系统. 若是静态编译进内核, 还支持和cgroup 配合, 实现分层调度(hierarchicalscheduling).
BFQ hierarchical scheduling support
CONFIG_CGROUP_BFQIO
经过cgroup 文件系统接口, 容许将BFQ 分层使用( 相似CONFIG_CFQ_GROUP_IOSCHED), 这个子系统的名字是"bfqio".
Default I/O scheduler
默认 IO调度器. 若是上述调度器都是模块, 那么将使用最简单的内置NOOP 调度器. NOOP(NoOperation) 调度器只是一个简单的FIFO 队列, 不对IO 请求作任何从新排序处理( 但仍是会作必定程度的归并), 适合于SSD/U / 内存/SAN(StorageAreaNetworks)/ 虚拟机中的硬盘/iSCSI/ RAID 无需寻道的存储设备, 重点是能够节约CPU 资源, 但不适用于普通硬盘这样的须要依靠磁头来定位的设备. 另外, 有人说拥有 TCQ/ NCQ 技术( 可以自动从新排序) 的硬盘也适合用NOOP 调度器, 这个说法其实并不那么合理, 但笔者在此不敢断言, 但愿读者在严谨的测试以后再作定夺.

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

DMA memory allocation support
CONFIG_ZONE_DMA
容许为寻址宽度不足32 位的设备( 也就是ISA LPC 总线设备) 物理内存的前16MB 范围内( ZONE_DMA) 分配内存. 不肯定的选"Y".[ 提示]LPC 总线一般和主板上的南桥物理相连, 一般链接了一系列的传统设备:BIOS,PS/2 键盘,PS/2 鼠标, 软盘, 并口设备, 串口设备, 某些集成声卡,TPM( 可信平台模块), 等等
Symmetric multi-processing support
CONFIG_SMP
SMP(对称多处理器 ) 支持, 若是你有多个CPU 或者使用的是多核CPU 就选上.
Support x2apic
CONFIG_X86_X2APIC
x2apic . 具备这个特性的CPU 能够使用32 位的APICID( 能够支持海量的CPU), 而且能够使用MSR 而不是mmio 去访问local APIC ( 更加高效). 能够经过"grepx2apic/proc/cpuinfo" 命令检查你的CPU 是否支持这个特性. 注意: 有时候还须要在BIOS 中也开启此特性才真正生效.[ 提示] 在虚拟机中, 还须要VMM 的支持( 例如qemu-kvm).
Enable MPS table
CONFIG_X86_MPPARSE
若是是不支持acpi 特性的古董级SMP 系统就选上. 但现今的64 位系统早都已经支持acpi , 因此能够安全的关闭.
Support for extended (non-PC) x86platforms
CONFIG_X86_EXTENDED_PLATFORM
支持非标准的PC 平台:Numascale NumaChip, ScaleMP vSMP, SGI Ultraviolet. 绝大多数人都遇不见这些平台.
Numascale NumaChip
CONFIG_X86_NUMACHIP
NumascaleNumaChip 平台支持
ScaleMP vSMP
CONFIG_X86_VSMP
ScaleMPvSMP 平台支持
SGI Ultraviolet
CONFIG_X86_UV
SGIUltraviolet 平台支持
Intel Low Power Subsystem Support
CONFIG_X86_INTEL_LPSS
Intel LynxPoint 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
仅供调试
Paravirtualization layer for spinlocks
CONFIG_PARAVIRT_SPINLOCKS
半虚拟化的自旋锁支持. 开启以后运行在虚拟机里的内核速度会加快, 可是运行在物理CPU 上的宿主内核运行效率会下降( 最多可能会下降5%). 请根据实际状况选择.
Xen guest support
CONFIG_XEN
Xen 半虚拟化技术支持
Enable Xen debug and tuning parameters indebugfs
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( DesktopManagement Interface)/ SMBIOS( SystemManagement BIOS) 得到机器的硬件配置, 从而对已知的bugbios 进行规避. 具体涉及到哪些机器可参见"drivers/acpi/blacklist.c" 文件. 除非肯定你的机器没有bug, 不然请开启此项.
GART IOMMU support
CONFIG_GART_IOMMU
GART IOMMU 支持. 图形地址重映射表( GraphicsAddress 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 系列服务器的 CalgaryIOMMU 支持.
Should Calgary be enabled bydefault?
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( 在某些状况下会发送多余的" bootIRQ") 的修复功能. 开启此选项以后, 仅对有此bug 的芯片组生效. 要检查哪些芯片组有此bug 能够查看"drivers/pci/quirks.c" 文件中的"quirk_reroute_to_boot_interrupts_intel" 函数.
Machine Check / overheating reporting
CONFIG_X86_MCE
MCE( MachineCheckException) 支持. CPU 检测到硬件故障( 过热/ 数据错误) 时通知内核, 以便内核采起相应的措施( 如显示一条提示信息或关机等). 更多信息能够"man mcelog" 看看. 能够经过"grepmce/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 笔记本的 SystemManagement Mode 驱动( i8k). 该驱动能够读取CPU 温度和风扇转速, 进而帮助上层工具控制风扇转速. 该驱动仅针对Dell Inspiron 8000 笔记本进行过测试, 因此不保证必定能适用于其余型号的Dell 笔记本.
CPU microcode loading support
CONFIG_MICROCODE
CPU 微代码更新支持, 建议选中.CPU 的微代码更新就像是给CPU 打补丁. 好比在Gentoo 下,能够使用"emergemicrocode-ctl" 安装 microcode-ctl 服务, 再把这个服务加入boot 运行级便可在每次开机时自动更新CPU 微代码. 其余Linux 系统能够参考这个帖子.
Intel microcode loading support
CONFIG_MICROCODE_INTEL
IntelCPU 微代码支持
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 设备支持. 也就是容许在多cpu 系统中让特权进程(privilegedprocess) 访问x86 MSR 寄存器( Model-SpecificRegister).MSR 的做用主要是为了设置CPU 的工做环境和标识CPU 的工做状态( 温度, 性能等). msrtool 工具能够转储出MSR 的内容.
/dev/cpu/*/cpuid - CPU information support
CONFIG_X86_CPUID
/dev/cpu/*/cpuid 设备支持. 能够经过 cpuid 命令得到详细的 CPU信息( CPUID).
Enable 1GB pages for kernel pagetables
CONFIG_DIRECT_GBPAGES
容许内核页表使用大小为1GB Hugepages 并进行线性映射(linearmapping), 须要高端CPU 的支持( 能够用"greppdpe1gb /proc/cpuinfo" 命令检查). 这能够减少页表缓存( TranslationLookasideBuffer) 的压力, 从而略微提高系统的性能, 这对于拥有海量内存而且运行某些特定应用(PosgreSQL,MySQL,Java,Memcached,KVM,Xen...) 的系统来讲比较有意义. 若是你的CPU 支持, 能够选"Y".
Numa Memory Allocation and Scheduler Support
CONFIG_NUMA
开启 NUMA(NonUniform 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 节点数. 须要注意其计算方法: 最大容许节点数=2 CONFIG_NODES_SHIFT. 也就是说这里设置的值会被当作2 的指数使用. 取值范围是[1,10], 也就最多容许1024 个节点.
Memory model
内存模式."SparseMemory" 主要用来支持内存热插拔, 相比其余两个旧有的内存模式, 代码复杂性也比较低, 并且还拥有一些性能上的优点, 对某些架构而言是惟一的可选项. 其余两个旧有的内存模式是:" DiscontiguousMemory" " FlatMemory".
Sparse Memory virtual memmap
CONFIG_SPARSEMEM_VMEMMAP
对于64 CPU 而言, 开启此选项能够简化pfn_to_page/page_to_pfn 的操做, 从而提升内核的运行效率. 可是在32 位平台则建议关闭. 更多细节能够参考这个帖子.
Enable to assign a node which has only movablememory
CONFIG_MOVABLE_NODE
容许对一个完整的NUMA 节点(CPU 和对应的内存) 进行热插拔. 通常的服务器和我的电脑不须要这么高级的特性.
Allow for memory hot-add
CONFIG_MEMORY_HOTPLUG
支持向运行中的系统添加内存. 也就是内存热插支持.
Allow for memory hot remove
CONFIG_MEMORY_HOTREMOVE
支持从运行中的系统移除内存. 也就是内存热拔支持.
Allow for balloon memorycompaction/migration
CONFIG_BALLOON_COMPACTION
容许 balloonmemory 压缩/ 迁移. 内存的 Ballooning技术指虚拟机在运行时动态地调整它所占用的宿主机内存资源, 该技术在节约内存和灵活分配内存方面有明显的优点, 目前全部主流虚拟化方案都支持这项技术( 前提是客户机操做系统中必须安装有相应的balloon 驱动). 因为内存的动态增长和减小会致使内存过分碎片化, 特别是对于2M 尺寸的连续大内存页来讲更加严, 从而严重下降内存性能. 容许balloon 内存压缩和迁移能够很好的解决在客户机中使用大内存页时内存过分碎片化问题. 若是你打算在虚拟机中使用大内存页(huge page), 那么建议开启, 不然建议关闭.
Allow for memory compaction
CONFIG_COMPACTION
容许对大内存页 (hugepages) 进行压缩. 主要是为了解决大内存页的碎片问题. 建议在使用大内存页的状况下开启此项, 不然建议关闭.
Page migration
CONFIG_MIGRATION
容许在保持虚拟内存页地址不变的状况下移动其所对应的物理内存页的位置. 这主要是为了解决两个问题:(1) NUMA 系统上, 将物理内存转移到相应的节点上, 以加快CPU 与内存之间的访问速度.(2) 在分配大内存页的时候, 能够避免碎片问题.
Enable bounce buffers
CONFIG_BOUNCE
为那些不能直接访问全部内存范围的驱动程序开启 bouncebuffer 支持. CONFIG_ZONE_DMA CONFIG_HIGHMEM 被开启后, 这个选项会被默认开启( 固然, 你也能够在这里手动关闭). 这主要是为了那些不具有 IOMMU 功能的PCI/ISA 设备而设, 但它对性能有些不利影响. 在支持IOMMU 的设备上, 应该关闭它而是用IOMMU 来代替.
Enable KSM for page merging
CONFIG_KSM
KSM( KernelSamepageMerging) 支持: 周期性的扫描那些被应用程序标记为" 可合并" 的地址空间, 一旦发现有内容彻底相同的页面, 就将它们合并为同一个页面, 这样就能够节约内存的使用, 但对性能有不利影响. 推荐和内核虚拟机KVM( Documentation/vm/ksm.txt) 或者其余支持"MADV_MERGEABLE" 特性的应用程序一块儿使用.KSM 并不默认开启, 仅在应用程序设置了"MADV_MERGEABLE" 标记, 而且/sys/kernel/mm/ksm/run 被设为"1" 的状况下才会生效.
Low address space to protect from userallocation
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(MachineCheckArchitecture) 恢复机制的系统上, 容许内核在物理内存中的发生数据错误的状况下, 依然坚强的纠正错误并恢复正常运行. 这须要有相应的硬件( 一般是ECC 内存) 支持. ECC内存的选, 没有的就别选了.
HWPoison pages injector
CONFIG_HWPOISON_INJECT
仅用于调试.
Transparent Hugepage Support
CONFIG_TRANSPARENT_HUGEPAGE
THP( TransparentHugepages) 支持. 容许内核在可能的条件下, 透明的( 对应用程序来讲) 使用大页( hugepages) HugeTLB. 这对于数据库/KVM 等须要使用大量内存的应用来讲, 能够提高其效能, 但对于内存较小(4G 或更少) 的我的PC 来讲就没啥必要了.
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 ispresent
CONFIG_CLEANCACHE
Cleancache 能够被看做是内存页的" VictimCache"( 受害者缓存), 当回收内存页时, 先不把它清空, 而是把其加入到内核不能直接访问的" transcendentmemory" , 这样支持Cleancache 的文件系统再次访问这个页时能够直接从"transcendentmemory" 加载它, 从而减小磁盘IO 的损耗. 目前只有 zcache XEN 支持"transcendentmemory", 不过未来会有愈来愈多的应用支持. 开启此项后即便此特性不能获得利用, 也仅对性能有微小的影响, 因此建议开启. 更多细节请参考" Documentation/vm/cleancache.txt" 文件.
Enable frontswap to cache swap pages if tmem ispresent
CONFIG_FRONTSWAP
Frontswap 是和Cleancache 很是相似的东西, 在传统的swap 前加一道内存缓冲( 一样位于"transcendentmemory" ). 目的也是减小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 ofmemory_corruption_check
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
设置memory_corruption_check 的默认值, 选中表示默认开启( 至关于使用"memory_corruption_check=1" 内核引导选项), 不选中表示默认关闭.
Amount of low memory, in kilobytes, to reserve for theBIOS
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( Memorytype range registers) CPU 内的一组MSR(Model-specificregisters), 其做用是告诉CPU 以哪一种模式(write-back/uncachable) 存取各内存区段效率最高. 这对于AGP/PCI 显卡意义重大, 由于write-combining 技术能够将若干个总线写传输捆绑成一次较大的写传输操做, 能够将图像写操做的性能提升2.5 倍或者更多. 段代码有着通用的接口, 其余CPU 的寄存器一样可以使用该功能. 简而言之, 开启此选项是个明智的选择.
MTRR cleanup support
CONFIG_MTRR_SANITIZER
MTRRcleanup 的意思是将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 将会被映射. 通常保持其默认值便可.
x86 PAT support
CONFIG_X86_PAT
PAT(PageAttribute Table) 是对MTRR 的补充, 且比MTRR 更灵活. 若是你的CPU 支持PAT(greppat /proc/cpuinfo), 那么建议开启. 仅在开启后致使没法正常启动或者显卡驱动不能正常工做的状况下才须要关闭.
x86 architectural random number generator
CONFIG_ARCH_RANDOM
Intel Ivy Bridge 微架构开始( 对于Atom 来讲是从Silvermont 开始), CPU 中集成了一个高效的硬件随机数生成器( 称为"BullMountain" 技术), 并引入了一个新的x86 指令" RDRAND", 能够很是高效的产生随机数. 此选项就是对此特性的支持.
Supervisor Mode Access Prevention
CONFIG_X86_SMAP
SMAP(SupervisorMode 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 模式启动机器, 好比最新的Ubuntu/Fedora x86_64 LiveCD.
EFI stub support
CONFIG_EFI_STUB
EFIstub 支持. 若是开启此项, 就能够不经过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 overflowdetection
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
kexecjump 支持. 这是对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 ofcpu0_hotpluggable
CONFIG_BOOTPARAM_HOTPLUG_CPU0
开启/ 关闭此项的意思是设置"cpu0_hotpluggable" 的默认值为"on/off". 开启此项表示默认将CPU0 设置为容许热插拔.
Debug CPU0 hotplug
CONFIG_DEBUG_HOTPLUG_CPU0
仅用于调试目的.
Compat VDSO support
CONFIG_COMPAT_VDSO
若是Glibc 版本大于等于2.3.3 就不选, 不然就选上
Built-in kernel command line
CONFIG_CMDLINE_BOOL
将内核引导参数直接编进来. 在没法向内核传递引导参数的状况下( 好比在嵌入式系统上, 或者想使用EFI stubkernel), 这就是惟一的救命稻草了. 若是你使用grub 之类的引导管理器, 那么就能够不须要此特性.
Built-in kernel command string
CONFIG_CMDLINE
将要编译进内核的引导参数字符串.
Built-in command line overrides boot loaderarguments
CONFIG_CMDLINE_OVERRIDE
开启此项表示彻底忽略引导加载器传递过来的参数, 并仅仅只使用CONFIG_CMDLINE 所指定的参数. 一般状况下建议关闭此项, 除非你肯定引导加载器在传递内核引导参数的时候不能正常工做.

Power management and ACPI options
电源管理和ACPI选项

Suspend to RAM and standby
CONFIG_SUSPEND
" 休眠到内存"(ACPIS3) 支持. 也就是系统休眠后, 除了内存以外, 其余全部部件都中止工做, 重开机以后能够直接从内存中恢复运行状态. 要使用此功能, 你须要执行"echomem > /sys/power/state" 命令, 还须要在BIOS 中开启S3 支持, 不然可能会有问题.
Enable freezer for suspend to RAM/standby
CONFIG_SUSPEND_FREEZER
"Y". 除非你知道本身在作什么
Hibernation (aka 'suspend to disk')
CONFIG_HIBERNATION
" 眠到硬盘"(ACPIS4) 支持. 也就是将内存的内容保存到硬盘(hibernation), 全部部件全都中止工做. 要使用此功能, 你首先须要使用内核引导参"resume=/dev/swappartition", 而后执行"echodisk >/sys/power/state" 命令. 若是你不想从先前的休眠状态中恢复, 那么能够使用"noresume" 内核引导参数. 更多信息, 能够参考" Documentation/power/swsusp.txt" 文件.
Default resume partition
CONFIG_PM_STD_PARTITION
默认的休眠分区. 这个分区必须是swap 分区. 不过这里设置的值会被明确的内核引导参数中的值覆盖.
Opportunistic sleep
CONFIG_PM_AUTOSLEEP
这是一种从安卓借鉴过来的休眠方式. 这个特性在安卓系统上被称为"suspendblockers" "wakelocks". 这是一种更激进的电源管理模式, 以尽量节约电力为目的. 系统默认就处于休眠状态, 仅为内存和少数唤醒系统所必须的设备供电, 当有任务( 唤醒源) 须要运行的时候才唤醒相关组件工做, 工做完成后又当即进入休眠状态. 不过这些特性须要相应的设备驱动程序的支持. 前除了安卓设备, PC 和服务器领域, 可以利用此特性的驱动还比较少, 不过这是一项很是有前途的电源技术, 喜欢尝鲜的能够考虑开启.
User space wakeup sources interface
CONFIG_PM_WAKELOCKS
容许用户空间的程序经过sys 文件系统接口, 建立/ 激活/ 撤销系统的" 唤醒源". 须要与CONFIG_PM_AUTOSLEEP 配合使用.
Maximum number of user space wakeup sources (0 = nolimit)
CONFIG_PM_WAKELOCKS_LIMIT
用户空间程序容许使用的" 唤醒源" 数量,"0" 表示无限, 最大值是"100000".
Garbage collector for user space wakeupsources
CONFIG_PM_WAKELOCKS_GC
" 唤醒源" 对象使用垃圾回收. 主要用于调试目的和Android 环境.
Run-time PM core functionality
CONFIG_PM_RUNTIME
容许IO 设备( 好比硬盘和网卡) 在系统运行时进入省电模式, 并可在收到( 硬件或驱动产生的) 唤醒信号后恢复正常. 此功能一般须要硬件的支持.
Power Management Debug Support
CONFIG_PM_DEBUG
仅供调试使用
ACPI (Advanced Configuration and Power Interface)Support
CONFIG_ACPI
高级配置与电源接口( AdvancedConfiguration 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 加入的处理器聚合器( processorAggregator) 功能, 以容许操做系统对系统中全部的CPU 进行统一的配置和控制. 目前只支持逻辑处理器idling 功能, 其目标是下降耗电量.
Thermal Zone
CONFIG_ACPI_THERMAL
ACPI thermal zone 支持. 系统温度太高时能够及时调整工做状态以免你的CPU 被烧毁. 目前全部CPU 都支持此特性. 务必开启.
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 更改 ACPItables 中的任意内容.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
ACPIPM Timer, 简称"ACPITimer", 是一种集成在主板上的硬件时钟发生器, 提供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
智能电池系统( SmartBatterySystem) 可让笔记型电脑显示及管理详细精确的电池状态信息. 使用锂电池的笔记本电脑必备利器. 但遗憾的是并非全部笔记本都支持这项特性.
Hardware Error Device
CONFIG_ACPI_HED
Hardware Error Device (Device ID: PNP0C33) 可以经过SCI 报告一些硬件错误( 一般是已经被纠正的错误). 若是你的系统中有设备ID "PNP0C33" 的设备( 好比某些Intel 芯片组), 那么就选上.
Allow ACPI methods to be inserted/replaced at runtime
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
高级平台错误接口 (ACPIPlatform Error Interface) RAS(Reliability,Availability and Serviceability) 的一部分, 是定义在ACPI 4.0 规范中的一个面向硬件错误管理的接口, 主要是为了统一firmware/BIOS OS 之间的错误交互机制, 使用标准的错误接口进行管理, 同时也扩展了错误接口的内容以便实现更加灵活丰富的功能.
APEI Generic Hardware Error Source
CONFIG_ACPI_APEI_GHES
"Firmware FirstMode" 支持. 因为BIOS/FIRMWARE 是平台相关的, 所以BIOS/FIRMWARE OS 更清楚硬件平台的配置状况, 甚至包含各类必须的修正/ 定制/ 优化. 这样, "FirmwareFirst" 模式下,BIOS/FIRMWARE 利用这一优点, 能够有针对性的对发生的硬件错误进行分析/ 处理/ 分发, 也能够更准确的记录错误的现场信. 这样, 不但对硬件错误能够作出更准确, 更复杂的处理, 并且能够下降OS 的复杂性和冗余度. 建议开启.
APEI PCIe AER logging/recovering support
CONFIG_ACPI_APEI_PCIEAER
PCIe AER errors 首先经过APEI firmware 进行报告.
APEI memory error recoveringsupport
CONFIG_ACPI_APEI_MEMORY_FAILURE
Memory errors 首先经过APEI firmware 进行报告.
APEI Error INJection (EINJ)
CONFIG_ACPI_APEI_EINJ
仅供调试使用.
APEI Error Record Serialization Table (ERST) DebugSupport
CONFIG_ACPI_APEI_ERST_DEBUG
仅供调试使用
SFI (Simple Firmware Interface) Support
CONFIG_SFI
简单固件接口规范( SimpleFirmwareInterface) 使用一种轻量级的简单方法( 经过内存中的一张静态表格) 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 statisticsdetails
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 frequencyscaling
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 驱动, 面向"SandyBridge"/"Ivy Bridge"/"Haswell" 或更新的CPU 微架构, 能够更好的支持" TurboBoost 2.0" 技术.
Processor Clocking Control interface driver
CONFIG_X86_PCC_CPUFREQ
PCC(Processor Clocking Control) 接口支持. 此种接口仅对某些HPProliant 系列服务器有意义. 更多细节能够参考" 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 AMDCPUs
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 powersavebias
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
CPUidle 指令支持, 该指令可让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
专用于IntelCPU cpuidle 驱动. CONFIG_CPU_IDLE 则是用于非Intel CPU.
Memory power savings
内存节能
Intel chipset idle memory power saving driver
CONFIG_I7300_IDLE
在某些具有内存节能特性的intel 服务器芯片组上, 让内存也能够在空闲时经过idle 指令" 打盹". 这些芯片组必须具有 I/OAT 支持( 例如Intel 7300). 同时内存也须要支持此特性.

Bus options (PCI etc.)
总线选项

PCI support
CONFIG_PCI
PCI 是最重要的内部总线, 不但PCI PCIExpress 设备依赖于它, 并且USB/IDE/SATA/SCSI/ 火线(IEEE1394)/PCMCIA/CardBus 等各类内部和外部总线也都依赖于它. 因此必须选"Y", 除非你知道本身在干什么.
Support mmconfig PCI config space access
CONFIG_PCI_MMCONFIG
容许经过mmconfig 方式访问 PCIconfig space, 这种访问方式比传统的IO 方式速度更快. 建议开启.MMCONFIG 的意思是"Memory-Mappedconfig", 它是PCIExpress 引入的新总线枚举. 背景知识:PCI 设备都有一组叫作'ConfigurationSpace' 的寄存器,PCI-E 设备在PCI 的基础上又增长了一组叫作'ExtendedConfigurationSpace' 的寄存器. 这些寄存器都被映射到了内存中(Memory-Mapped), 操做系统理应提供相应的API 供设备驱动和诊断程序访问这些'ConfigurationSpace'. 但若是操做系统没有提供Memory-Mapped 方式的API 的话, 这些驱动程序和诊断程序就必须本身根据操做系统的底层规则(IO ) 去访问, 这显然就增长了开发难度. 这个选项的目的就是提供Memory-Mapped 方式的API.
Read CNB20LE Host Bridge Windows
CONFIG_PCI_CNB20LE_QUIRK
CNB20LE 芯片组PCI 热插拔支持. 除非你很是明确的知道你须要它, 不然请关闭此项.
PCI Express support
CONFIG_PCIEPORTBUS
PCIExpress PCI 的升级版并在软件层与PCI 兼容, 其目标是统一电脑内部总线. 基本上只要不是古董机, 都早已支持PCI-E . "Y".
PCI Express Hotplug driver
CONFIG_HOTPLUG_PCI_PCIE
若是你的主板和设备都支持PCIExpress 热插拔就能够选上.
Root Port Advanced Error Reporting support
CONFIG_PCIEAER
PCIExpress Root Port Advanced Error Reporting (AER) 驱动支持. 这样, 发送到Root Port Error reporting messages 就会由PCI Express AER 处理. 建议开启. 背景知识:PCIExpress 定义了两种错误报告范例:(1)baseline, 全部PCI-E 组件都必需要支持, 功能也比较基础.(2)AER(AdvancedError Reporting), 功能比较高级, 也更可靠, 但并不要求全部组件都支持.
PCI Express ECRC settings control
CONFIG_PCIE_ECRC
容许覆写firmware/bios 设置的PCI ExpressECRC( 端对端循环冗余校验). 建议关闭, 除非你确实知道为何要开启.
PCIe AER error injector support
CONFIG_PCIEAER_INJECT
容许PCI-E AER 注入, 仅用于测试目的.
PCI Express ASPM control
CONFIG_PCIEASPM
PCI Express ASPM(ActiveState 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 电源管理策略. 下面的三个选项:"BIOSdefault" 表示使用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-allocationdetection
CONFIG_PCI_REALLOC_ENABLE_AUTO
让内核自动检测" 是否须要从新分配PCI 资源". 即便此项已开启, 你依然能够用"pci=realloc=[on|off]" 来覆盖它. 此项仅在已开启CONFIG_PCI_IOV 的状况下才有意义. 此时, 若是BIOS 没有为 SR-IOV(Single-RootI/O Virtualization)BAR( 基地址寄存器) 分配资源, 那么内核将会自动对PCI 资源进行从新分配. 建议与CONFIG_PCI_IOV 同开关.
PCI Stub driver
CONFIG_PCI_STUB
PCIStub 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
PCII/O Virtualization 支持. 这须要硬件支持IOMMU 技术(AMD-Vi,IntelVT-d).
PCI PRI support
CONFIG_PCI_PRI
PCI Page Request Interface 支持. 它容许IOMMU 以后的设备可以从页错误中恢复过来. 这须要硬件支持IOMMU 技术(AMD-Vi,IntelVT-d).
PCI PASID support
CONFIG_PCI_PASID
PASID(Process Address SpaceIdentifiers) 能够被PCI 设备用来同时访问多个IO 地址空间. 这须要硬件支持IOMMU 技术(AMD-Vi,IntelVT-d).
PCI IO-APIC hotplug support
CONFIG_PCI_IOAPIC
PCI IO-APIC 热插拔支持.
ISA-style DMA support
CONFIG_ISA_DMA_API
ISA-styleDMA 控制器支持. 目前基本只有 LPC总线设备须要使用, 最多见的是串口, 并口,PS/2 键盘, SuperI/O 芯片( 能够使用 Superiotool sensors-detect 工具检测). 不肯定的选"Yes".[ 说明] 这是一个历史遗留问题, 对于ISA 架构,DMA 操做是由一个专用的"DMA 控制器"( 最多见的是 Intel8237) 来执行的, 可是到了PCI 架构, 因为每个PCI 设备均可以控制PCI 总线( 成为" busmaster") 并直接读写系统内存, 因此"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(CardInformationStructure) 以后才能正常工做. 开启此项后, 内核将能够使用内置的固件加载器和热插拔子系统自动加载CIS, 而再也不须要用户空间工具的辅助. 建议选"Yes".
32-bit CardBus support
CONFIG_CARDBUS
常见的PCMCIA 卡基本上都是32 位的 CardBus ExpressCard 设备. 若是你有这样的卡, 就选"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 设备, 也包括 CardBus ExpressCard 设备. 请按需选择.
{ 省略的部分请按照本身实际使用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 ELFbinaries
CONFIG_BINFMT_ELF
ELF 是最经常使用的跨平台二进制文件格式, 支持动态链接, 支持不一样的硬件平台, 支持不一样的操做系统. 必选, 除非你知道本身在作什么.
Write ELF core dumps with partialsegments
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 也需要它. 想要更方便的使用此特性, 你还须要使用"mountbinfmt_misc -t binfmt_misc/proc/sys/fs/binfmt_misc" 挂载 binfmt_misc 伪文件系统. 具体详情能够参考" Documentation/binfmt_misc.txt" 文档.
Enable core dump support
CONFIG_COREDUMP
核心转储 (coredump) 支持. 若是你打算在此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 位寄存器, 以减少内存占用( memoryfootprint). 这能够提升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
Unixdomain 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(securityassociation) 的定位器(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的编程 API RFC2367 中定义.
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组播 (IPmulticasting) 支持. 指的是一个发送者向一组特定的接收者发送数据, 但只需发送一份数据副本. 实际应用的场合不多, MBONE 算是其中之一, RTP 等音视频协议相结合也算一种. 不肯定的选"N".
IP: advanced router
CONFIG_IP_ADVANCED_ROUTER
高级路由支持, 须要开启内核的IP 转发功能(echo1 >/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 通用路由封装( GenericRoutingEncapsulation) 隧道支持. 该驱动主要用于对端是Cisco 路由器的场合, 由于Cisco 的路由器特别偏好GRE 隧道( 而不是CONFIG_NET_IPIP), 而且GRE 还容许经过隧道对组播进行再分发.
IP: broadcast GRE over IP
CONFIG_NET_IPGRE_BROADCAST
GRE/IP 的一种应用是构建一个广播WAN( WideArea Network), 而其看上去却很像一个跑在互联网上的LAN( LocalArea 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
TCPsyncookie 支持, 这是抵抗 SYNflood 攻击的好东西. 此特性的开关能够经过"/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
IPsecAH 支持.IPsec 验证头(AH) 可对整个数据包(IP 报头与数据) 提供身份验证/ 完整性/ 抗重播保护. 可是它不提供保密性, 即它不对数据进行加密. 因为这个缘由,AH 头正在慢慢被ESP 头取代.
IP: ESP transformation
CONFIG_INET_ESP
IPsecESP 支持.IPsec 封装安全负载(ESP) 不只为IP 负载提供身份验证/ 完整性/ 抗重播保护, 还提供保密性, 也就是还对数据进行加密.ESP 有两种使用模: 传输模式(ESP 不对整个数据包进行签名, 只对IP 负载( 不含IP 报头) 进行保护) 和隧道模式( 将原始IP 包封装进新的带有ESP 头的IP 包内, 可提供完整的保护).ESP 能够独立使用, 也可与AH 组合使用( 愈来愈少).
IP: IPComp transformation
CONFIG_INET_IPCOMP
IP 静荷载压缩协议( IPPayload 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(LargeReceive 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" 并将"newReno" 做为候补. 仅在你确实知道本身须要的状况下选"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 利用" StatelessAddressAutoconfiguration" 在无DHCP 服务器的状况下, 产生可用的" 临时IPv6 地址". 而本选项则为这个机制增长" 隐私扩展"( RFC4941) 保护. 默认状态下, 内核并不生产" 临时地址", 须要"echo2 >/proc/sys/net/ipv6/conf/all/use_tempaddr" 才能开启
IPv6: Router Preference (RFC 4191)support
CONFIG_IPV6_ROUTER_PREF
机连上IPv6 网络后, 会发出路由器邀请包(RouterSolicitation), 路由器则应答路由器公告包(RouterAdvertisement), 其中包含网关地址/IPv6 前缀/DNS 地址, 这样主机就能取得IPv6 地址, 并链接到互联网上, 这就是无状态地址自动分(StateLess AddressAutoConfiguration)." RouterPreference" "RouterAdvertisement" 包的可选扩展. 它能够改进主机选中路由器的能力, 特别是在多归属( multi-homed) 网络中. 不肯定的选"N".
IPv6: Route Information (RFC 4191)support
CONFIG_IPV6_ROUTE_INFO
" RouteInformation" 的实验性支持.
IPv6: Enable RFC 4429 Optimistic DAD
CONFIG_IPV6_OPTIMISTIC_DAD
乐观重复地址检测( OptimisticDuplicate 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 静荷载压缩协议( IPPayload 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 optimizationmode
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION
移动 IPv6(MobileIPv6) 路由优化模式. 主要用于移动设备. 不肯定的选"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 通用路由封装( GenericRoutingEncapsulation) 隧道支持. 该驱动主要用于对端是Cisco 路由器的场合, 由于Cisco 的路由器特别偏好GRE 隧道( 而不是CONFIG_IPV6_TUNNEL), 而且GRE 还容许经过隧道对组播进行再分发.
IPv6: Multiple Routing Tables
CONFIG_IPV6_MULTIPLE_TABLES
多重路由表( MultipleRouting Tables) 支持. 不肯定的选"N".
IIPv6: source address based routing
CONFIG_IPV6_SUBTREES
容许根据源地址或前缀进行路由. 不肯定的选"N".
IPv6: multicast routing
CONFIG_IPV6_MROUTE
测试性的IPv6 组播路由支持. 实际应用的场合不多, 不肯定的选"N".
IPv6: multicast policyrouting
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 能够对数据包进行过滤和修改, 能够做为防火墙("packetfilter" "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 NFNETLINKinterface
CONFIG_NETFILTER_NETLINK_ACCT
容许经过 NFNETLINK 接口支持 NFACCT( 记帐).
Netfilter NFQUEUE over NFNETLINKinterface
CONFIG_NETFILTER_NETLINK_QUEUE
容许经过 NFNETLINK 接口支持 NFQUEUE( 排队).
Netfilter LOG over NFNETLINKinterface
CONFIG_NETFILTER_NETLINK_LOG
容许经过 NFNETLINK 接口支持"LOG"( 日志). 该选项废弃了ipt_ULOG ebg_ulog 机制, 并打算在未来废弃基于syslog ipt_LOG ip6t_LOG 模块.
Netfilter connection tracking support
CONFIG_NF_CONNTRACK
链接追踪(connectiontracking) 支持, 链接跟踪把全部链接都保存在一个表格内, 并将每一个包关联到其所属的链接. 可用于报文假装或地址转换, 也可用于加强包过滤能力.
Connection mark tracking support
CONFIG_NF_CONNTRACK_MARK
容许对链接进行标记, 与针对单独的包进行标记的不一样之处在于它是针对链接流的.CONNMARK target connmark match 须要它的支持.
Connection tracking security marksupport
CONFIG_NF_CONNTRACK_SECMARK
容许对链接进行安全标记, 一般这些标记包(SECMARK) 复制到其所属链接(CONNSECMARK), 再从链接复制到其关联的包(SECMARK).
Connection tracking zones
CONFIG_NF_CONNTRACK_ZONES
" conntrackzones" 支持. 一般, 每一个链接须要一个全局惟一标示符, "conntrackzones" 容许在不一样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 trackingsupport
CONFIG_NF_CT_PROTO_DCCP
DCCP协议支持.
SCTP protocol connection trackingsupport
CONFIG_NF_CT_PROTO_SCTP
SCTP协议支持.
UDP-Lite protocol connection trackingsupport
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(DirectClient-to-Client Protocol) 支持. 该协议容许用户之间绕开服务器直接聊天和传输文件.
NetBIOS name service protocolsupport
CONFIG_NF_CONNTRACK_NETBIOS_NS
NetBIOS 协议支持.
SNMP service protocol support
CONFIG_NF_CONNTRACK_SNMP
SNMP 协议支持.
PPtP protocol support
CONFIG_NF_CONNTRACK_PPTP
RFC2637 点对点隧道协议 (Pointto 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 viaNetlink
CONFIG_NF_CT_NETLINK_TIMEOUT
经过 Netlink 机制支持对链接追踪超时进行细粒度的调节: 容许为特定的网络流指定超时策略, 而不是使用统一的全局超时策略.
Connection tracking helpers in user-space viaNetlink
CONFIG_NF_CT_NETLINK_HELPER
经过 Netlink 机制为用户空间的链接追踪帮助程序提供基础框架.
NFQUEUE integration with ConnectionTracking
CONFIG_NETFILTER_NETLINK_QUEUE_CT
开启此项后, 即便网络包已经在队列(NFQUEUE) , 它依然能够包含链接追踪信息.
Transparent proxying support
CONFIG_NETFILTER_TPROXY
透明代理支持, 也就是能够处理非本地的IPv4 TCP/UDP 套接字. 此功能须要配合一些iptables 规则和策略路由才能工做. 详见" Documentation/networking/tproxy.txt" 文档.
Netfilter Xtables support (required forip_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" targetsupport
CONFIG_NETFILTER_XT_TARGET_CLASSIFY
容许为包设置优先级, 一些 qdiscs 排队规则(atm,cbq,dsmark,pfifo_fast,htb,prio) 须要使用它
"CONNMARK" targetsupport
CONFIG_NETFILTER_XT_TARGET_CONNMARK
这只是一个兼容旧配置的选项, 等价于CONFIG_NETFILTER_XT_CONNMARK
"CONNSECMARK" targetsupport
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK
针对连接进行安全标记, 同时还会将链接上的标记还原到包上( 若是连接中的包还没有进行安全标记), 一般与SECMARK target 联合使用
"CT" target support
CONFIG_NETFILTER_XT_TARGET_CT
容许为包加上链接追踪相关的参数, 好比"event" "helper".
"DSCP" and "TOS" targetsupport
CONFIG_NETFILTER_XT_TARGET_DSCP
DSCP target 容许对IPv4/IPv6 包头部的DSCP(DifferentiatedServices Codepoint) 字段( 经常使用于Qos) 进行修改.TOS target 容许在"mangle" 表建立规则以修改IPv4 包头的TOS(TypeOf Service) 字段或IPv6 包头的Priority 字段.
"HL" hoplimit targetsupport
CONFIG_NETFILTER_XT_TARGET_HL
HL(IPv6)/TTL(IPv4) target 容许更改包头的hoplimit/time-to-live .
"HMARK" targetsupport
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" targetsupport
CONFIG_NETFILTER_XT_TARGET_NETMAP
NETMAP 用于实现一对一的静态NAT( 地址转换).
"NFLOG" targetsupport
CONFIG_NETFILTER_XT_TARGET_NFLOG
经过nfnetlink_log 记录日志.
"NFQUEUE" targetSupport
CONFIG_NETFILTER_XT_TARGET_NFQUEUE
用于替代老旧的QUEUE target. 由于NFQUEUE 能支持最多65535 个队列, QUEUE 只能支持一个.
"NOTRACK" target support(DEPRECATED)
CONFIG_NETFILTER_XT_TARGET_NOTRACK
已被废弃, 勿选.
"RATEEST" targetsupport
CONFIG_NETFILTER_XT_TARGET_RATEEST
RATEEST target 容许测量网络流的传输速率.[ :rateest match 容许根据速率进行匹配.]
REDIRECT target support
CONFIG_NETFILTER_XT_TARGET_REDIRECT
REDIRECT 是一种特别的NAT: 全部进入的链接都被映射到其入口网卡的地址, 这样这些包就会" 流入" 本机而不是" 流过" 本机. 这主要用于实现透明代理.
"TEE" - packet cloning to alternatedestination
CONFIG_NETFILTER_XT_TARGET_TEE
对包进行克隆, 并将克隆的副本路由到另外一个临近的路由器( NextHop).
"TPROXY" targetsupport
CONFIG_NETFILTER_XT_TARGET_TPROXY
相似于REDIRECT, 但并不依赖于链接追踪和NAT, 也只能用于"mangle" , 用于将网络流量重定向到透明代理.
"TRACE" targetsupport
CONFIG_NETFILTER_XT_TARGET_TRACE
容许对包打标记, 这样内核就能够记录每个匹配到的规则.
"SECMARK" targetsupport
CONFIG_NETFILTER_XT_TARGET_SECMARK
容许对包进行安全标记, 用于安全子系统
"TCPMSS" targetsupport
CONFIG_NETFILTER_XT_TARGET_TCPMSS
容许更改TCP SYN 包的 MSS(MaximumSegment Size) , 一般=MTU-40.
"TCPOPTSTRIP" targetsupport
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP
容许从TCP 包头中剥离全部 TCP选项.
"addrtype" address type matchsupport
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE
根据地址类型进行匹配:UNICAST, LOCAL, BROADCAST, ...
"bpf" match support
CONFIG_NETFILTER_XT_MATCH_BPF
BPF(BSDPacket Filter) 是一个强大的包匹配模块, 用于匹配那些让过滤器返回非零值的包.
"cluster" matchsupport
CONFIG_NETFILTER_XT_MATCH_CLUSTER
个模块能够用于建立网络服务器/ 防火墙集群, 而无需借助价格昂贵的负载均衡设备. 一般, 在包必须被本节点处理的条件下, 这个match 返回"true". 这样, 全部节点均可以看到全部的包, 但只有匹配的节点才须要进行处理, 这样就将负载进行了分摊. 而分摊算法是基于对源地址的哈希值.
"comment" matchsupport
CONFIG_NETFILTER_XT_MATCH_COMMENT
这是一个" match", 目的是容许你在iptables 规则集中加入注释
"connbytes" per-connection counter matchsupport
CONFIG_NETFILTER_XT_MATCH_CONNBYTES
容许针对单个链接内部每一个方向( / ) 匹配已经传送的字节数/ 包数
"connlabel" matchsupport
CONFIG_NETFILTER_XT_MATCH_CONNLABEL
容许向链接分配用户自定义的标签名. 内核仅存储bit , 而名称和bit 之间的对应关系由用户空间处理. "connmark" 的不一样之处在于: 能够同时为一个链接分配32 个标志位(flagbit).
"connlimit" matchsupport
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT
容许根据每个客户端IP 地址( 或每一段客户端IP 地址段) 持有的并发链接数进行匹配.
"connmark" connection mark matchsupport
CONFIG_NETFILTER_XT_MATCH_CONNMARK
这只是一个兼容旧配置的选项, 等价于CONFIG_NETFILTER_XT_CONNMARK
"conntrack" connection tracking matchsupport
CONFIG_NETFILTER_XT_MATCH_CONNTRACK
通用链接跟踪匹配, "state" 的超集, 它容许额外的连接跟踪信息, 在须要设置一些复杂的规则( 好比网关) 时颇有用
"cpu" match support
CONFIG_NETFILTER_XT_MATCH_CPU
根据处理包所使用的CPU 是哪一个进行匹配
"dccp" protocol matchsupport
CONFIG_NETFILTER_XT_MATCH_DCCP
DCCP 是打算取代UDP 的新传输协议, 它在UDP 的基础上增长了流控和拥塞控制机制, 面向实时业务
"devgroup" matchsupport
CONFIG_NETFILTER_XT_MATCH_DEVGROUP
容许根据网卡所属的" 设备组" 进行匹配
"dscp" and "tos" matchsupport
CONFIG_NETFILTER_XT_MATCH_DSCP
dscp match 容许根据IPv4/IPv6 包头的 DSCP 字段进行匹配,tos match 容许根据IPv4 包头的 TOS 字段进行匹配
"ecn" match support
CONFIG_NETFILTER_XT_MATCH_ECN
容许根据IPv4TCP 包头的 ECN 字段进行匹配
"esp" match support
CONFIG_NETFILTER_XT_MATCH_ESP
容许对 IPSec 包的ESP 头中的SPI( 安全参数序列) 范围进行匹配
"hashlimit" matchsupport
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT
此项的目的是取代"limit", 它基于你选定的源/ 目的地址和/ 或端口动态建立"limitbucket" 哈希表. 这样你就能够迅速建立相似这样的匹配规则:(1) 为给定的目的地址以每秒10k 个包的速度进行匹配;(2) 为给定的源地址以每秒500 个包的速率进行匹配
"helper" matchsupport
CONFIG_NETFILTER_XT_MATCH_HELPER
加载特定协议的链接跟踪辅助模块, 由该模块过滤所跟踪的链接类型的包, 好比ip_conntrack_ftp 模块
"hl" hoplimit/TTL matchsupport
CONFIG_NETFILTER_XT_MATCH_HL
基于IPv6 包头的hoplimit 字段, IPv4 包头的time-to-live 字段进行匹配
"iprange" address range matchsupport
CONFIG_NETFILTER_XT_MATCH_IPRANGE
根据IP 地址范围进行匹配, 而普通的iptables 只能根据"IP/mask" 的方式进行匹配.
"ipvs" match support
CONFIG_NETFILTER_XT_MATCH_IPVS
容许根据包的 IPVS 属性进行匹配
"length" matchsupport
CONFIG_NETFILTER_XT_MATCH_LENGTH
容许对包的长度进行匹配
"limit" match support
CONFIG_NETFILTER_XT_MATCH_LIMIT
容许根据包的进出速率进行规则匹配, 常和"LOGtarget" 配合使用以抵抗某些Dos 攻击
"mac" address matchsupport
CONFIG_NETFILTER_XT_MATCH_MAC
容许根据以太网的MAC 地址进行匹配
"mark" match support
CONFIG_NETFILTER_XT_MATCH_MARK
这只是一个兼容旧配置的选项, 等价于CONFIG_NETFILTER_XT_MARK
"multiport" Multiple port matchsupport
CONFIG_NETFILTER_XT_MATCH_MULTIPORT
容许对TCP UDP 包同时匹配多个不连续的端口( 一般状况下只能匹配单个端口或端口范围)
"nfacct" matchsupport
CONFIG_NETFILTER_XT_MATCH_NFACCT
容许经过nfnetlink_acct 使用扩展记帐
"osf" Passive OS fingerprintmatch
CONFIG_NETFILTER_XT_MATCH_OSF
开启 PassiveOS Fingerprinting 模块, 以容许经过进入的TCPSYN 包被动匹配远程操做系统. 规则和加载程序能够从这里获取:http://www.ioremap.net/projects/osf
"owner" match support
CONFIG_NETFILTER_XT_MATCH_OWNER
基于建立套接字的本地进程身份(user/group) 进行匹配, 还能够用于检查一个套接字是否确实存在
IPsec "policy" matchsupport
CONFIG_NETFILTER_XT_MATCH_POLICY
基于IPsecpolicy 进行匹配
"physdev" matchsupport
CONFIG_NETFILTER_XT_MATCH_PHYSDEV
容许对进入或离开所通过的物理网口进行匹配
"pkttype" packet type matchsupport
CONFIG_NETFILTER_XT_MATCH_PKTTYPE
容许对封包目的地址类别( 广播/ 组播/ 直播) 进行匹配
"quota" match support
CONFIG_NETFILTER_XT_MATCH_QUOTA
容许对总字节数的限额值进行匹配
"rateest" matchsupport
CONFIG_NETFILTER_XT_MATCH_RATEEST
根据RATEEST target 评估的速率值进行匹配
"realm" match support
CONFIG_NETFILTER_XT_MATCH_REALM
容许根据iptables 中的路由子系统中的realm 值进行匹配. 它与tc 中的CONFIG_NET_CLS_ROUTE4 很是相似.
"recent" matchsupport
CONFIG_NETFILTER_XT_MATCH_RECENT
recentmatch 用于建立一个或多个最近使用过的地址列表, 而后又能够根据这些列表再进行匹配.
"sctp" protocol matchsupport
CONFIG_NETFILTER_XT_MATCH_SCTP
支持根据流控制传输协议 (SCTP) / 目的端口和"chunktype" 进行匹配.
"socket" matchsupport
CONFIG_NETFILTER_XT_MATCH_SOCKET
can be used to match packets for which a TCP or UDP socketlookup finds a valid socket. It can be used in combination withthe MARK target and policy routing to implement full featurednon-locally bound sockets.
"state" match support
CONFIG_NETFILTER_XT_MATCH_STATE
这是对包进行分类的有力工具, 它容许利用链接跟踪信息对链接中处于特定状态的包进行匹配
"statistic" matchsupport
CONFIG_NETFILTER_XT_MATCH_STATISTIC
容许根据一个给定的百分率对包进行周期性的或随机性的匹配
"string" matchsupport
CONFIG_NETFILTER_XT_MATCH_STRING
容许根据包所承载的数据中包含的特定字符串进行匹配
"tcpmss" matchsupport
CONFIG_NETFILTER_XT_MATCH_TCPMSS
容许根据TCPSYN 包头中的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 (IPset) 支持, 而后就能够使用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( IPVirtualServer) 支持.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 of2)
CONFIG_IP_VS_TAB_BITS
设置IPVS 链接哈希表的大小(2 CONFIG_IP_VS_TAB_BITS), 取值范围是[8,20], 默认值12 的意思是哈希表的大小是2 12=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 replicationscheduling
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 of2)
CONFIG_IP_VS_SH_TAB_BITS
将源IP 地址映射到后端服务器所使用的哈希表的大小(2 CONFIG_IP_VS_SH_TAB_BITS), 取值范围是[4,20], 默认值8 的意思是哈希表的大小是2 8=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
基于SIPCall-ID 提供持久链接支持
IP: Netfilter Configuration
针对IPv4 Netfilter 配置
IPv4 connection tracking support (required forNAT)
CONFIG_NF_CONNTRACK_IPV4
IPv4 连接跟踪. 可用于包假装或地址转换, 也可用于加强包过滤能力
proc/sysctl compatibility with old connectiontracking
CONFIG_NF_CONNTRACK_PROC_COMPAT
用于兼容老旧的链接追踪用户态程序
IP tables support (required forfiltering/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 matchsupport
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(ApplicationLayer 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(ExplicitCongestion 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 , 以支持强制访问控制 (MandatoryAccess 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 Netfilter 配置进行选择
DECnet: Netfilter Configuration
针对 DECnet Netfilter 配置
Ethernet Bridge tables (ebtables)support
CONFIG_BRIDGE_NF_EBTABLES
针对以太网桥的 ebtablesNetfilter 配置
The DCCP Protocol
CONFIG_IP_DCCP
数据报拥塞控制协议( DatagramCongestion ControlProtocol) UDP 的基础上增长了流控和拥塞控制机制, 使数据报协议可以更好地用于流媒体业务的传输
The SCTP Protocol
CONFIG_IP_SCTP
流控制传输协议( StreamControl TransmissionProtocol) 是一种新兴的传输层协议.TCP 协议一次只能链接一个IP 地址而在 SCTP 协议一次能够链接多个IP 地址且能够自动平衡网络负载, 一旦某一个IP 地址失效会自动将网络负载转移到其余IP 地址上
The RDS Protocol
CONFIG_RDS
可靠数据报套接字 (ReliableDatagram Sockets)协议支持.
The TIPC Protocol
CONFIG_TIPC
透明内部进程间通讯协议( TransparentInter Process Communication), 以共享内存为基础实现任务和资源的调度, 专门用于集群内部通讯
Asynchronous Transfer Mode (ATM)
CONFIG_ATM
异步传输模式( ATM) 支持. 主要用于高速LAN WAN. 目前已经日薄西山了.
Layer Two Tunneling Protocol (L2TP)
CONFIG_L2TP
第二层隧道协议(RFC2661) 支持
802.1d Ethernet Bridging
CONFIG_BRIDGE
802.1d 以太网桥
802.1Q/802.1ad VLAN Support
CONFIG_VLAN_8021Q
802.1Q 虚拟局域网
DECnet Support
CONFIG_DECNET
DECnet 协议
ANSI/IEEE 802.2 LLC type 2 Support
CONFIG_LLC2
PF_LLC 类型套接字支持. 也就是 IEEE802.2 LLC 2
The IPX protocol
CONFIG_IPX
IPX协议是由Novell 公司提出的运行于OSI 模型第三层的协议, 具备可路由的特性,IPX 的地址分为网络地址和主机地址, 网络地址由管理员分配, 主机地址为MAC 地址. 因为IP 协议的普遍使用,IPX 的应用早已日薄西山.
Appletalk protocol support
CONFIG_ATALK
Appletalk 是苹果公司建立的一组网络协议, 仅用于苹果系列计算机.
CCITT X.25 Packet Layer
CONFIG_X25
CCITTX.25 协议集支持.
LAPB Data Link Driver
CONFIG_LAPB
LAPB 协议支持.
Phonet protocols family
CONFIG_PHONET
PhoNet Nokia 开发的面相数据包的通讯协议, 仅用于Nokiamaemo/meego 产品.
IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networkssupport
CONFIG_IEEE802154
IEEEStd 802.15.4 定义了一个低速率/ 低功耗/ 低复杂度的短距离我的无线网络规范. 主要用于物联网中的传感器/ 交换器之类设备之间的互联.
6lowpan support over IEEE 802.15.4
CONFIG_IEEE802154_6LOWPAN
IEEE802.15.4 上支持IPv6 压缩.
Generic IEEE 802.15.4 Soft Networking Stack(mac802154)
CONFIG_MAC802154
SoftMAC 设备( 仅实现了PHY ) 实现硬件独立的 IEEEStd 802.15.4 协议栈. 使用HardMAC 设备的用户应该选"N".[ 注意] 这里的实现既未通过认证, 也未进行充分的兼容性测试.
QoS and/or fair queueing
CONFIG_NET_SCHED
QoS( QualityofService) 支持. 当内核有多个包须要经过网络发送的时候, 它须要决定哪一个包先发, 那个包后发, 哪一个包丢弃. 这就是包调度算法. 关闭此项表示内核使用最简单的FIFO 算法, 开启此项后就能够使用多种不一样的调度算法( 须要配合用户层工具 iproute2+tc).QoS 还用于支持 diffserv(DifferentiatedServices) RSVP(ResourceReservationProtocol) 功能. 包调度的状态信息能够从"/proc/net/psched" 文件中获取. 仅在你确实须要的时候选"Y".
Data Center Bridging support
CONFIG_DCB
DCB(DataCenter Bridging) . 数据中心桥接是一组可加强传统以太网功能, 以管理通讯的功能, 尤为适用于网络通讯流量和传输率都很高的环境中. 光纤通道可专用于承载此类型的通讯. , 若是使用专用链路来仅提供光纤通道通讯, 则成本可能会很高. 所以, 更多状况下使用以太网光纤通道.DCB 功能可知足光纤通道对遍历以太网时包丢失的敏感度要求.DCB 容许对等方基于优先级区分通讯. 经过区分优先级, 可确保在主机之间发生拥塞时, 保持较高优先级通讯的包完整性. 使用DCB 交换协议, 通讯主机能够交换会影响高速网络通讯的配置信息. 而后, 对等方可对公用配置进行协商, 确保通讯流不中断, 同时防止高优先级包出现包丢失. 这些功能都须要底层的网卡支持. 通常网卡都是不支持的. 因此不肯定的能够选"N".
DNS Resolver support
CONFIG_DNS_RESOLVER
内核DNS 解析支持. 用于支持CONFIG_AFS_FS/CONFIG_CIFS/CONFIG_CIFS_SMB2 模块. 此功能须要用户态程序"/sbin/dns.resolve" 和配置文件"/etc/request-key.conf" 的支持. 更多信息参见" Documentation/networking/dns_resolver.txt" 文档, 不肯定的选"N".
B.A.T.M.A.N. Advanced Meshing Protocol
CONFIG_BATMAN_ADV
B.A.T.M.A.N.( 更好的移动无线网络方案) 是一种用于multi-hop ad-hoc mesh 网络的路由协议. 它是一种去中心化分布式无线Adhoc 模式, 特别适用于天然灾害等紧急状况下, 建立临时的无线网络. 不肯定的选"N".
Open vSwitch
CONFIG_OPENVSWITCH
OpenvSwitch 是一个多层虚拟交换标准. 此选项提供了内核级的高速转发功能( 须要配合用户态守护进程ovs-vswitchd 来实现).
Virtual Socket protocol
CONFIG_VSOCKETS
这是一个相似于TCP/IP 的协议, 用于虚拟机之间以及虚拟机与宿主之间的通讯. 开启此项后, 还须要从子项中选择适用于特定虚拟化技术的传输协议.
VMware VMCI transport for VirtualSockets
CONFIG_VMWARE_VMCI_VSOCKETS
适用于VMware 虚拟化技术的VMCI 传输协议支持.
NETLINK: mmaped IO
CONFIG_NETLINK_MMAP
基于内存映射机制的 netlinkIO 支持. 这样能够避免在用户空间与内存空间之间复制数据, 从而提高操做速度. 建议开启.
NETLINK: socket monitoring interface
CONFIG_NETLINK_DIAG
NETLINK socket 监视接口. ss 这样的诊断工具须要它.
Network priority cgroup
CONFIG_NETPRIO_CGROUP
Cgroup 子系统支持: 基于每一个网络接口为每一个进程分配网络使用优先级.
enable BPF Just In Time compiler
CONFIG_BPF_JIT
BPF(BerkeleyPacket Filter) 过滤功能一般由一个解释器(interpreter) 解释执行BPF 虚拟机指令的方式工做. 开启此项, 内核在加载过滤指令后, 会将其编译为本地指令, 以加快执行速度. 网络嗅探程序(libpcap/tcpdump) 能够从中受益. 注意: 须要"echo1 > /proc/sys/net/core/bpf_jit_enable" 以后才能生效.
Network testing
网络测试, 仅供调试使用
Amateur Radio support
CONFIG_HAMRADIO
业余无线电支持. 供无线电爱好者进行自我训练/ 相互通信/ 技术研究
CAN bus subsystem support
CONFIG_CAN
CAN(ControllerAreaNetwork) 是一个低速串行通讯协议. 被普遍地应用于工业自动化/ 船舶/ 医疗设备/ 工业设备等嵌入式领域. 更多信息参见" Documentation/networking/can.txt" 文件.
IrDA (infrared) subsystem support
CONFIG_IRDA
红外线通信技术支持, 主要用于嵌入式环境, 某些老旧的笔记本上也可能会有红外接口.
Bluetooth subsystem support
CONFIG_BT
蓝牙支持. 蓝牙目前已经基本取代红外线, 成为嵌入式设备/ 智能设备/ 笔记本的标配近距离( 小于10 ) 通讯设备. Linux 上一般使用来自 BlueZ hciconfig bluetoothd 工具操做蓝牙通讯.
RFCOMM protocol support
CONFIG_BT_RFCOMM
虚拟串口协议( RFCOMM) 是一个面向链接的流传输协议, 提供 RS232 控制和状态信号, 从而模拟串口的功能. 它被用于支持拨号网络, OBEX(ObjectExchange), 以及某些蓝牙程序( 例如文件传输).
RFCOMM TTY support
CONFIG_BT_RFCOMM_TTY
容许在RFCOMM 通道上模拟 TTY 终端
BNEP protocol support
CONFIG_BT_BNEP
蓝牙网络封装协议(BluetoothNetwork Encapsulation Protocol) 能够在蓝牙上运行其余网络协议(TCP/IP). BluetoothPAN(Personal Area Network) 须要它的支持.
Multicast filter support
CONFIG_BT_BNEP_MC_FILTER
组播支持
Protocol filter support
CONFIG_BT_BNEP_PROTO_FILTER
协议过滤器支持
CMTP protocol support
CONFIG_BT_CMTP
CMTP(CAPI 消息传输协议) 用于支持已在上世纪被淘汰的ISDN 设备. 不肯定的选"N".
HIDP protocol support
CONFIG_BT_HIDP
人机接口设备协议(HumanInterface Device Protocol) 用于支持各类人机接口设备( 好比鼠标/ 键盘/ 耳机等).
Bluetooth device drivers
各类蓝牙设备驱动
HCI USB driver
CONFIG_BT_HCIBTUSB
使用USB 接口的蓝牙设备支持
HCI SDIO driver
CONFIG_BT_HCIBTSDIO
使用 SDIO 接口的蓝牙设备支持
HCI UART driver
CONFIG_BT_HCIUART
使用串口的蓝牙设备支持. 此外, 基于 UART 的蓝牙 PCMCIA CF 设备也须要此模块的支持.
UART (H4) protocol support
CONFIG_BT_HCIUART_H4
大多数使用UART 接口的蓝牙设备( 包括PCMCIA CF ) 都使用这个协议.
BCSP protocol support
CONFIG_BT_HCIUART_BCSP
基于CSR(CambridgeSilicon Radio) 公司的BlueCore 系列芯片的蓝牙设备( 包括PCMCIA CF ) 支持
Atheros AR300x serial support
CONFIG_BT_HCIUART_ATH3K
基于AtherosAR300x 系列芯片的蓝牙设备支持
HCILL protocol support
CONFIG_BT_HCIUART_LL
基于TexasInstruments 公司的BRF 芯片的蓝牙设备支持
Three-wire UART (H5) protocol support
CONFIG_BT_HCIUART_3WIRE
Three-wire UART (H5) 协议假定UART 通讯可能存在各类错误, 从而使得CTS/RTS 引脚线变得无关紧要. 看不懂就能够不选.
HCI VHCI (Virtual HCI device) driver
CONFIG_BT_HCIVHCI
模拟蓝牙设备支持. 主要用于开发
{ 大多数蓝牙设备并不须要特定的独立驱动, 此处省略的独立驱动仅是为了驱动那些不严格遵照蓝牙规范的芯片}
RxRPC session sockets
CONFIG_AF_RXRPC
RxRPC 会话套接字支持( 仅包括传输部分, 不含表示部分).CONFIG_AFS_FS 依赖于它. 不肯定的选"N". 详情参见" Documentation/networking/rxrpc.txt" 文档.
Wireless
CONFIG_WIRELESS
无线网络支持.
cfg80211 - wireless configuration API
CONFIG_CFG80211
cfg80211 Linux无线局域网( 802.11) 配置接口, 是使用WiFi 的前提. 注意:" WiFi" 是一个无线网路通讯技术的品牌, WiFi 联盟所持有. 目的是改善基于IEEE802.11 标准的无线网路产品之间的互通性. 现时通常人会把WiFi IEEE802.11 混为一谈, 甚至把WiFi 等同于无线网路(WiFi 只是无线网络的一种).
nl80211 testmode command
CONFIG_NL80211_TESTMODE
仅供调试和特殊目的使用.
enable developer warnings
CONFIG_CFG80211_DEVELOPER_WARNINGS
仅供调试开发使用
cfg80211 regulatory debugging
CONFIG_CFG80211_REG_DEBUG
仅供调试开发使用
cfg80211 certification onus
CONFIG_CFG80211_CERTIFICATION_ONUS
仅在你确实明白此项含义的状况下, 才考虑选"Y", 不然请选"N".
enable powersave by default
CONFIG_CFG80211_DEFAULT_PS
默认开启省电模式. 可能会致使某些设计拙劣的网络程序掉线. 建议开启. 详情参见" Documentation/power/pm_qos_interface.txt" 文档.
cfg80211 DebugFS entries
CONFIG_CFG80211_DEBUGFS
仅供调试
use statically compiled regulatory rulesdatabase
CONFIG_CFG80211_INTERNAL_REGDB
因为绝大多数发行版都含有 CRDA 软件包, 因此绝大多数人应该选"N". 若是你确实须要选"Y", 那么请认真阅读"net/wireless/db.txt" 文件.
cfg80211 wireless extensions compatibility
CONFIG_CFG80211_WEXT
为那些老旧的用户空间程序提供兼容性, 建议关闭.
lib80211 debugging messages
CONFIG_LIB80211_DEBUG
仅供调试
Generic IEEE 802.11 Networking Stack (mac80211)
CONFIG_MAC80211
独立于硬件的通用 IEEE802.11 协议栈模块(mac80211). 它是驱动开发者用来编写softMAC 无线设备驱动的框架,softMAC 设备容许用软件实现帧的管理( 包括解析和产生80211 无线帧), 从而让系统能更好的控制硬件, 如今大多数的无线网卡都是softMAC 设备. 不肯定的选"Y".
PID controller based rate control algorithm
CONFIG_MAC80211_RC_PID
基于比例 -积分 -微分控制器( PIDcontroller) 的发送速率(TXrate) 控制算法. 用于CONFIG_MAC80211 模块. 不肯定的选"N".
Minstrel
CONFIG_MAC80211_RC_MINSTREL
minstrel 发送速率(TXrate) 控制算法. 用于CONFIG_MAC80211 模块. 这是首选的算法, 不肯定的选"Y".
Minstrel 802.11n support
CONFIG_MAC80211_RC_MINSTREL_HT
minstrel_ht 发送速率(TXrate) 控制算法. 适用于 802.11n 规范. 不肯定的选"Y".
Default rate control algorithm
默认发送速率(TXrate) 控制算法. 至关于mac80211 模块"ieee80211_default_rc_algo" 参数的值. 建议选择"Minstrel" 算法.
Enable mac80211 mesh networking (pre-802.11s)support
CONFIG_MAC80211_MESH
802.11s 案是无线网状网络(MeshNetworking) 的延伸与增补标准(amendment). 它扩展了IEEE802.11 MAC( 介质访问控制) 标准, 定义了利用自我组态的多点跳跃拓朴(multi-hoptopologies), 进行无线感知(radio-awaremetrics), 以支援广播/ 组播/ 单播传送网络封包的架构与协定. 不肯定的选"N".
Enable LED triggers
CONFIG_MAC80211_LEDS
容许在接受/ 发送数据时触发无线网卡的LED 灯闪烁.
Export mac80211 internals in DebugFS
CONFIG_MAC80211_DEBUGFS
DebugFS 中显示mac80211 模块内部状态的扩展信息, 仅用于调试目的.
Trace all mac80211 debug messages
CONFIG_MAC80211_MESSAGE_TRACING
跟踪全部mac80211 模块的调试信息, 仅用于调试目的.
Select mac80211 debugging features
CONFIG_MAC80211_DEBUG_MENU
仅供调试
WiMAX Wireless Broadband support
CONFIG_WIMAX
WiMAX(IEEE802.16) 协议支持. 随着2010 年英特尔放弃WiMAX 以及LTE 4G 市场成了惟一的主流标准,WiMAX 的电信运营商也逐渐向LTE ,WiMAX 论坛也于2012 年将TD-LTE 归入WiMAX2.1 规范, 一些WiMAX 运营商也开始将设备升级为TD-LTE.
WiMAX debug level
CONFIG_WIMAX_DEBUG_LEVEL
设置容许使用的最大调试信息详细等级, 推荐使用默认值"8", 设为"0" 表示容许使用全部调试信息. 运行时默认禁止使用调试信息, 但可经过sysfs 文件系统中的debug-levels 文件开启调试信息.
RF switch subsystem support
CONFIG_RFKILL
为了节约电力, 不少无线网卡和蓝牙设备都有内置的射频开关( RFswitche) 用于开启和关闭设备( 经过 rfkill 命令). 建议选"Y". 更多详情参见" Documentation/rfkill.txt" 文档
RF switch input support
CONFIG_RFKILL_INPUT
这是个反对使用的特性, 通常状况下建议关闭. 可是某些笔记本无线网卡的开关是由按钮控制的, 在这些笔记本上建议开启.
Generic rfkill regulator driver
CONFIG_RFKILL_REGULATOR
通用射频开关驱动. 这是最通用的驱动, 其射频开关链接在电压调节器(voltageregulator) . 依赖于CONFIG_REGULATOR 框架.
GPIO RFKILL driver
CONFIG_RFKILL_GPIO
通用GPIO 射频开关驱动. 仅用于嵌入式环境, 其射频开关链接在 GPIO 总线上, 好比NVIDIA Tegra 和三星的 Exynos4 智能手机SoC 芯片.
Plan 9 Resource Sharing Support (9P2000)
CONFIG_NET_9P
实验性的支持 Plan9 9P2000 协议.
CAIF support
CONFIG_CAIF
除非你为Android/MeeGo 系统编译内核, 而且须要使用PF_CAIF 类型的socket, 不然请选"N".
Ceph core library
CONFIG_CEPH_LIB
仅在你须要使用 Ceph 分布式文件系统, 或者 rados 块设备(rbd) 时选"Y". 不然应选"N".
NFC subsystem support
CONFIG_NFC
NFC( 近场通讯) 子系统. 这些设备主要用于智能手机之类的嵌入式领域.

Device Drivers
设备驱动程序

Generic Driver Options
驱动程序通用选项
path to uevent helper
CONFIG_UEVENT_HELPER_PATH
早年的内核( 切换到基于netlink 机制以前), 在发生 uevent 事件( 一般是热插拔) , 须要调用用户空间程序( 一般是"/sbin/hotplug"), 以帮助完成uevent 事件的处理. 此选项就是用于设定这个帮助程序的路径. 因为目前的发行版都已再也不须要此帮助程序, 因此请保持空白.
Maintain a devtmpfs filesystem to mount at /dev
CONFIG_DEVTMPFS
devtmpfs 是一种基于CONFIG_TMPFS 的文件系统( proc sys 有几分类似). 在系统启动过程当中, 随着各个设备的初始化完成, 内核将会自动在devtmpfs 中建立相应的设备节点( 使用默认的文件名和权限) 并赋予正确的主次设备号. 更进一步, 在系统运行过程当中, 随着各类设备插入和拔除, 内核也一样会自动在devtmpfs 中建立和删除的相应的设备节点( 使用默认的文件名和权限) 并赋予正确的主次设备号. 若是将devtmpfs 挂载"/dev" 目录( 一般是系统启动脚本), 那么便拥有了一个全自动且全功能的"/dev" 目录, 并且用户空间程序( 一般是 udevd) 还能够对其中的内容进行各类修改( 增删节点, 改变权限, 建立符号连接). 目前的发行版和各类嵌入式系统基本都依赖于此, 除非你知道本身在作什么, 不然请选"Y".
Automount devtmpfs at /dev, after the kernel mounted therootfs
CONFIG_DEVTMPFS_MOUNT
内核挂载根文件系统的同时, 当即自动将devtmpfs 挂载到"/dev" 目录. 由于此时init 进程都还还没有启动, 因此这就确保在进入用户空间以前, 有设备文件就都已经准备完毕. 开启此选项至关于设置内核引导参数"devtmpfs.mount=1", 关闭此选项至关于设置内核引导参"devtmpfs.mount=0". 开启此项后, 你就能够放心的使用"init=/bin/sh" 直接进入救援模式, 而没必要担忧"/dev" 目录空无一物. 注意: 此选项并不影响基于initramfs 的启动, 此种状况下,devtmpfs 必须被手动挂载. 因此, 若是你的系统使用initrd 或者有专门的启动脚本用于挂载"/dev" 目录( 大多数发行版都有这样的脚本), 或者你看了前面的解释, 仍是不肯定, 那就选"N". 对于实在想要使用"init=/bin/sh" 直接进入救援模式的人来讲, 仍是使用"init=/bin/shdevtmpfs.mount=1" !
Select only drivers that don't need compile-time externalfirmware
CONFIG_STANDALONE
只显示那些编译时不须要额外固件支持的驱动程序, 除非你有某些怪异硬件, 不然请选"Y".
Prevent firmware from being built
CONFIG_PREVENT_FIRMWARE_BUILD
不编译固件(firmware). 固件通常是随硬件的驱动程序提供的, 仅在更新固件的时候才须要从新编译. 建议选"Y".
Userspace firmware loading support
CONFIG_FW_LOADER
用户空间固件加载支持. 若是内核自带的模块须要它, 它将会被自动选中. 但某些内核树以外的模块也可能须要它, 这时候就须要你根据实际状况手动开启了.
Include in-kernel firmware blobs in kernelbinary
CONFIG_FIRMWARE_IN_KERNEL
核源码树中包含了许多驱动程序须要的二进制固件(blob), 推荐的方法是经过"makefirmware_install" "firmware" 目录中所需的固件复制到系统的"/lib/firmware/" 目录中, 而后由用户空间帮助程序在须要的时候进行加载. 开启此项后, 将会把所需的"blob" 直接编译进内核, 这样就能够无需用户空间程序的帮助, 而直接使用这些固件了( 例如: 当根文件系统依赖于此类固件, 而你又不想使用initrd 的时候). 每一个须要此类二进制固件的驱动程序, 都会有一个"Includefirmware for xxx device" 的选项, 若是此处选"Y", 那么这些选项都将被隐藏. 建议选"N".
External firmware blobs to build into the kernelbinary
CONFIG_EXTRA_FIRMWARE
指定要额外编译进内核的二进制固件(blob). 此选项的值是一个空格分隔的固件文件名字符串, 这些文件必须位于CONFIG_EXTRA_FIRMWARE_DIR 目录中( 其默认值是内核源码树下的"firmware" 目录).
Firmware blobs root directory
CONFIG_EXTRA_FIRMWARE_DIR
指定CONFIG_EXTRA_FIRMWARE 中列出的文件位于哪一个目录. 默认值是当前内核源码树下的"firmware" 目录. 如有须要, 你也能够修改为其余目录( 例如"/lib/firmware/").
Fallback user-helper invocation for firmwareloading
CONFIG_FW_LOADER_USER_HELPER
在内核本身直接加载固件失败后, 做为补救措施, 调用用户空间帮助程序( 一般是udev) 再次尝试加载. 一般这个动做是没必要要的, 所以应该选"N". 仅在某些特殊的固件位于非标准位置时, 才须要选"Y".
Driver Core verbose debug messages
CONFIG_DEBUG_DRIVER
让驱动程序核心在系统日志中产生冗长的调试信息, 仅供调试
Managed device resources verbose debug messages
CONFIG_DEBUG_DEVRES
为内核添加一个"devres.log" 引导参数. 当被设为非零值时, 将会打印出设备资源管理驱动(devres) 的调试信息. 仅供调试使用.
Contiguous Memory Allocator
CONFIG_CMA
在使用ARM 等嵌入式Linux 系统的时候,GPU,Camera,HDMI 等都须要预留大量连续内存, 这部份内存平时不用, 可是传统的作法又必须先预留着. 而经过连续内存分配器( ContiguousMemory Allocator) 能够作到不预留内存, 仅在须要的时候才将大块的连续物理内存分配给相应的驱动程序. 这个机制对于那些不支持I/Omap scatter-gather 的设备颇有做用. 详情参见"include/linux/dma-contiguous.h" 文件, 不肯定的"N".
Bus devices
总线设备. 此类设备仅出如今ARM 平台.
Connector - unified userspace <-> kernelspacelinker
CONFIG_CONNECTOR
统一的用户空间和内核空间链接器, 工做在netlinksocket 协议的顶层. 链接器是很是便利的用户态与内核态的通讯方式, 内核开发者在编写内核子系统或模块时能够采用这种方式方便地进行用户态与内核态的数据交换. 内核有两个链接器应用实例: 一个是进程事件链接器, 另外一个是CIFS 文件系统. 另外还有一个 Gentoo装上启动画面的例子. 不肯定的选"N".
Report process events to userspace
CONFIG_PROC_EVENTS
提供一个向用户空间报告进程事件(fork,exec,id 变化(uid,gid,suid)) 的链接器.
Memory Technology Device (MTD) support
CONFIG_MTD
MTD 子系统是一个闪存转换层. 其主要目的是提供一个介于闪存硬件驱动程序与高级应用程序之间的抽象层, 以简化闪存设备的驱动. 注意:MTD 经常使用于嵌入式系统, 而咱们常见的U /MMC /SD /CF 卡等移动存储设备以及固态硬盘(SSD), 虽然也叫"flash", 但它们并非使用MTD 技术的存储器. 仅在你须要使用主设备号为31 MTD 块设备(/dev/romX,/dev/rromX,/dev/flashX,/dev/rflashX), 或者主设备号为90 MTD 字符设备(/dev/mtdX,/dev/mtdrX) 时选"Y", 不然选"N".
Parallel port support
CONFIG_PARPORT
25 针并口( LPT接口) 支持. 古董级的打印机或扫描仪可能使用这种接口. 目前已被淘汰.
Plug and Play support
CONFIG_PNP
即插即用(PnP) 支持. "Y" 表示让Linux PnP 设备分配中断和I/O 端口( 须要在BIOS 中开启"PnPOS"), "N" 则表示让BIOS 来分配( 须要在BIOS 中关闭"PnPOS"). 建议选"Y".
PNP debugging messages
CONFIG_PNP_DEBUG_MESSAGES
容许使用"pnp.debug" 内核参数在系统启动过程当中输出PnP 设备的调试信息, 建议选"N".
Block devices
CONFIG_BLK_DEV
块设备, 建议选"Y".
Normal floppy disk support
CONFIG_BLK_DEV_FD
通用软驱支持. 已被时代抛弃的设备
Parallel port IDE device support
CONFIG_PARIDE
经过并口与计算机链接的IDE 设备, 好比某些老旧的外接光驱或硬盘之类. 此类设备早就绝种了
Block Device Driver for Micron PCIeSSDs
CONFIG_BLK_DEV_PCIESSD_MTIP32XX
MicronP320/P325/P420/P425 系列固态硬盘支持
Compaq SMART2 support
CONFIG_BLK_CPQ_DA
基于Compaq SMART2 控制器的磁盘阵列卡
Compaq Smart Array 5xxx support
CONFIG_BLK_CPQ_CISS_DA
基于Compaq Smart 控制器的磁盘阵列卡
SCSI tape drive support for Smart Array 5xxx
CONFIG_CISS_SCSI_TAPE
在基于Compaq Smart 控制器的磁盘阵列卡上使用的磁带机
Mylex DAC960/DAC1100 PCI RAID Controllersupport
CONFIG_BLK_DEV_DAC960
Mylex DAC960, AcceleRAID, eXtremeRAID PCI RAID 控制器. 很古董的设备了.
Micro Memory MM5415 Battery Backed RAM support
CONFIG_BLK_DEV_UMEM
一种使用电池作后备电源的内存, 但被用做块设备, 能够像硬盘同样被分区
Loopback device support
CONFIG_BLK_DEV_LOOP
loop 是指拿文件来模拟块设备(/dev/loopX), 好比能够将一个iso9660 镜像文件当成文件系统来挂载. 建议选"Y".
Number of loop devices to pre-create at inittime
CONFIG_BLK_DEV_LOOP_MIN_COUNT
系统预先初始化的loop 设备个数. 此值能够经过内核引导参数"loop.max_loop" 修改. 若是你使用 util-linux-2.21 以上版本, 建议设为"0"(loop 设备将经过/dev/loop-control 动态建立), 不然保持默认值便可.
Cryptoloop Support
CONFIG_BLK_DEV_CRYPTOLOOP
使用系统提供的CryptoAPI loop 设备加密. 注意: 由于不能在Cryptoloop 上建立日志型文件系统(CONFIG_DM_CRYPT 模块能够), 因此Cryptoloop 已经逐渐淡出了. 建议选"N".
DRBD Distributed Replicated Block Devicesupport
CONFIG_BLK_DEV_DRBD
DRBD(DistributedReplicated BlockDevice) 是一种分布式储存系统. DBRD 处于文件系统之下, 比文件系统更加靠近操做系统内核及IO .DRBD 相似RAID1 磁盘阵列, 只不过RAID1 是在同一台电脑内, DRBD 是透过网络. 注意: 为了进行链接认证, 你还须要选中CONFIG_CRYPTO_HMAC 以及相应的哈希算法. 不肯定的选"N".
DRBD fault injection
CONFIG_DRBD_FAULT_INJECTION
模拟IO 错误, 以用于测试DRBD 的行为. 主要用于调试目的
Network block device support
CONFIG_BLK_DEV_NBD
让你的电脑成为网络块设备的客户端, 也就是能够挂载远程服务器经过TCP/IP 网络提供的块设备(/dev/ndX). 提示: 这与NFS Coda 没有任何关系. 更多详情参见" Documentation/blockdev/nbd.txt". 不肯定的选"N".
NVM Express block device
CONFIG_BLK_DEV_NVME
NVMExpress 是专门针对PCI-E 接口高性能固态硬盘的标准规范. 有了这一标准, 操做系统厂商只须要编写一种驱动, 就能够支持不一样厂商的不一样PCI-ESSD 设备, 以解决目前PCI-ESSD 产品形态与规格五花八门, 缺少通用性和互用性的问题.
OSD object-as-blkdev support
CONFIG_BLK_DEV_OSD
容许将一个单独的 SCSIOSD(Object-Based Storage Devices) 对象当成普通的块设备来使用. 举例来讲, 你能够在OSD 设备上建立一个2G 大小的对象, 而后经过本模块将其模拟成一个2G 大小的块设备使用. 不肯定的选"N".
Promise SATA SX8 support
CONFIG_BLK_DEV_SX8
基于Promise 公司的SATASX8 控制器的RAID
RAM block device support
CONFIG_BLK_DEV_RAM
内存中的虚拟磁盘, 大小固定. 详情参阅" Documentation/blockdev/ramdisk.txt". 因为其功能比CONFIG_TMPFS 弱许多, 使用上也不方便, 因此除非你有明确的理由, 不然应该选"N", 并转而使用CONFIG_TMPFS.
Default number of RAM disks
CONFIG_BLK_DEV_RAM_COUNT
默认RAMdisk 的数量. 请保持默认值, 除非你知道本身在作什么.
Default RAM disk size (kbytes)
CONFIG_BLK_DEV_RAM_SIZE
默认RAMdisk 的大小. 请保持默认值, 除非你知道本身在作什么.
Support XIP filesystems on RAM block device
CONFIG_BLK_DEV_XIP
XIP(eXecute InPlace) 支持( 指应用程序能够直接在flash 闪存内运行, 没必要再把代码读到系统RAM ). 通常用于嵌入式设备.
Packet writing on CD/DVD media
CONFIG_CDROM_PKTCDVD
CD/DVD 刻录机支持. 详情参见" Documentation/cdrom/packet-writing.txt" 文档
Free buffers for data gathering
CONFIG_CDROM_PKTCDVD_BUFFERS
用于收集写入数据的缓冲区个数( 每一个占用64Kb 内存), 缓冲区越多性能越好.
Enable write caching
CONFIG_CDROM_PKTCDVD_WCACHE
CD-R/W 设备启用写入缓冲, 目前这是一个比较危险的选项. 建议关闭.
ATA over Ethernet support
CONFIG_ATA_OVER_ETH
以太网ATA 设备( ATAover Ethernet) 支持.
Xen virtual block device support
CONFIG_XEN_BLKDEV_FRONTEND
XEN 虚拟块设备前端驱动. 此驱动用于与实际驱动块设备的后端驱动( 一般位于domain0) 通讯.
Xen block-device backend driver
CONFIG_XEN_BLKDEV_BACKEND
XEN 块设备后端驱动( 一般位于domain0) 容许内核将实际的块设备经过高性能的共享内存接口导出给其余客户端的前端驱动( 一般位于非domain0) 使用.
Virtio block driver
CONFIG_VIRTIO_BLK
Virtio 虚拟块设备驱动. 它能够用于 KVM XEN 这类基于 lguest QEMU VMM(VirtualMachine Monitor).
Very old hard disk (MFM/RLL/IDE) driver
CONFIG_BLK_DEV_HD
又老又旧的MFM/RLL/ESDI 硬盘驱动. 无需犹豫, "N".
Rados block device (RBD)
CONFIG_BLK_DEV_RBD
rados 块设备(rbd) 支持. 它能够与分布式文件系统 Ceph 合做, 也能独立工做.
IBM FlashSystem 70/80 PCIe SSD Device Driver
CONFIG_BLK_DEV_RSXX
IBM FlashSystem 70/80 PCIe SSD 驱动
Misc devices
杂项设备
{ 省略的部分请按照实际的硬件情况进行选择}
Integrated Circuits ICS932S401
CONFIG_ICS932S401
IDTICS932S401 系列时钟频率控制芯片支持( 可能会出如今某些主板上).
Enclosure Services
CONFIG_ENCLOSURE_SERVICES
SES( SCSIEnclosureServices) 是一项目前大多数移动硬盘盒/ 硬盘托架/ 电脑主板都支持的硬件控制命令服务,SES 可让主机端透过SCSI 命令去控制外接盒内的电源/ 冷却装置以及其余与数据传输无关的东西. 要使用这项技术, 外置硬盘盒和主机上的SCSI/ATA 芯片都须要支持SES 技术才OK.
VMware Balloon Driver
CONFIG_VMWARE_BALLOON
VMware 物理内存balloon 驱动. 参见CONFIG_BALLOON_COMPACTION 选项.
Generic on-chip SRAM driver
CONFIG_SRAM
许多 SoC系统都有芯片内嵌的 SRAM. 开启此项后, 就能够声明将此段内存范围交给通用内存分配器( genalloc) 管理. 不肯定的选"N".
EEPROM support
EEPROM 主要用于保存主板或板卡的BIOS, 若是你想经过此Linux 系统刷写BIOS 能够考虑开启相应的子项. 不肯定的所有选"N".
Intel Management Engine Interface
CONFIG_INTEL_MEI
Intel芯片组管理引擎, 介于固件和系统驱动之间, 相似于一种接口(Interface), 帮助系统和固件之间交互. 若是你的芯片组位于"CONFIG_INTEL_MEI_ME" , 能够选"Y", 不过其实也没有多少实际意义.
ME Enabled Intel Chipsets
CONFIG_INTEL_MEI_ME
请根据帮助中列出的芯片组对照实际状况选择.
VMware VMCI Driver
CONFIG_VMWARE_VMCI
VMwareVMCI(Virtual Machine CommunicationInterface) 是一个在host guest 之间以及同一host 上的guest guest 之间进行高速通讯的虚拟设备.VMCI 主要是提供一个接口让guest 内的程序来调用, 经过这个接口能在一个主机上的多个虚拟机之间进行直接的通讯, 并且无需通过更上层的其余途径, 这样将有效地下降网络通讯所产生的开支, 可是这须要修改虚拟机上的软件, 因此VMCI 只适用于对虚拟机间通讯要求很是高的状况. 不肯定的选"N".
ATA/ATAPI/MFM/RLL support (DEPRECATED)
CONFIG_IDE
已被废弃的IDE 硬盘和ATAPI 光驱等接口的驱动( 已被CONFIG_ATA 取代). "N", 除非你确实知道本身在干什么.
SCSI device support
SCSI子系统
RAID Transport Class
CONFIG_RAID_ATTRS
这只是用来获得RAID 信息以及未来可能用于配置RAID 方式的一个类. 无论你的系统使用的是哪一种RAID, 均可以放心的关闭此项. 不肯定的选"N".
SCSI device support
CONFIG_SCSI
SCSI协议支持. 有任何SCSI/SAS/SATA/USB/FibreChannel/FireWire 设备之一就必须选上. "Y".
SCSI target support
CONFIG_SCSI_TGT
内核态的通用 SCSITarget 实现( LIO ).SCSI 子系统使用了一种客户机- 服务器(C/S) 模型. 一般, 一台计算机是这个模型中的客户机( 称为"initiator"), 向目标(target) 发起块操做请求, 这个"target" 一般是一个存储设备( 例如一块硬盘). 此模块的功能是将一台计算机变成一个"target"( 就像一个普通的硬盘同样), 响应其余"initiator" 节点的操做请求, 从而让"target" 可以提供更加高级的功能: 复制, 自动精简配置, 重复数据删, 高可用性, 自动备份等. 不肯定的选"N".
legacy /proc/scsi/ support
CONFIG_SCSI_PROC_FS
过期的/proc/scsi/ 接口. 某些老旧的刻录程序可能须要它, 建议选"N".
SCSI disk support
CONFIG_BLK_DEV_SD
使用SCSI/SAS/SATA/PATA/USB/FibreChannel 存储设备的必选. "Y".
SCSI tape support
CONFIG_CHR_DEV_ST
通用SCSI 磁带驱动
SCSI OnStream SC-x0 tape support
CONFIG_CHR_DEV_OSST
专用于OnStreamSC-x0/USB-x0/DI-x0 SCSI 磁带/USB 盘驱动
SCSI CDROM support
CONFIG_BLK_DEV_SR
经过SCSI/FireWire/USB/SATA/IDE 接口链接的DVD/CD 驱动器( 基本上涵盖了全部常见的接口).
Enable vendor-specific extensions (for SCSICDROM)
CONFIG_BLK_DEV_SR_VENDOR
仅在某些古董级的SCSICDROM 设备上才须要:NEC/TOSHIBAcdrom, HP Writers
SCSI generic support
CONFIG_CHR_DEV_SG
通用 SCSI协议(/dev/sg*) 支持. 也就是除硬盘/ 光盘/ 磁带以外的SCSI 设备( 例如光纤通道). 这些设备还须要额外的用户层工具支持才能正常工做. 例如: SANE, Cdrtools, CDRDAO, Cdparanoia
SCSI media changer support
CONFIG_CHR_DEV_SCH
SCSI 介质转换设备(SCSI Medium Changerdevice) 是一种控制多个SCSI 介质的转换器( 例如在多个磁带/ 光盘之间进行切换), 经常使用于控制磁带库或者CD 自动点歌机(jukeboxes). 此种设备会在/proc/scsi/scsi 中以"Type:MediumChanger" 列出. 控制此类设备的用户层工具包是 scsi-changer. 更多细节参见" Documentation/scsi/scsi-changer.txt" 文档. 不肯定的选"N".
SCSI Enclosure Support
CONFIG_SCSI_ENCLOSURE
"Enclosure" 是一种用于管理SCSI 设备的背板装置. 好比移动硬盘盒就是一种常见的"Enclosure" 设备. 此项主要用于向用户层报告一些"Enclosure" 设备的状态, 这些状态对于SCSI 设备的正常运行并不是必须. 此项依赖于CONFIG_ENCLOSURE_SERVICES 选项.
Probe all LUNs on each SCSI device
CONFIG_SCSI_MULTI_LUN
认强制在每一个SCSI 设备上探测全部的逻辑设备数量(LogicalUnitNumber), 其值会被该模块的内核引导参数"max_luns" 覆盖. 只在一个SCSI 设备上有多个逻辑设备时才须要选它, 通常的SCSI 设备并不需. 一个SCSI 设备上有多个逻辑设备的典型例子: 多口USB 读卡器,CD 点唱机(jukebox), 处于"massstorage" 模式的智能手机, 量产为多个设备后的U . 注意: 此项并不影响符合SCSI-3 或更高标准的设备, 由于这些设备会明确的向内核报告逻辑设备数.
Verbose SCSI error reporting (kernel size+=12K)
CONFIG_SCSI_CONSTANTS
以易读的方式报告SCSI 错误, 内核将会增大12K
SCSI logging facility
CONFIG_SCSI_LOGGING
启用SCSI 日志( 默认并不开, 须要"echo[bitmask] >/proc/sys/dev/scsi/logging_level"), 可用于跟踪和捕获SCSI 设备的错误. 关于[bitmask] 的说明能够查"drivers/scsi/scsi_logging.h" 文件.
Asynchronous SCSI scanning
CONFIG_SCSI_SCAN_ASYNC
异步扫描的意思是, 在内核引导过程当中,SCSI 子系统能够在不影响其余子系统引导的同时进行SCSI 设备的探测( 包括同时在多个总线上进行检测), 这样能够加快系统的引导速度. 可是若是SCSI 设备驱动被编译为模块, 那么异步扫描将会致使内核引导出现问题( 解决方法是加载scsi_wait_scan 模块, 或者使"scsi_mod.scan=sync" 内核引导参数). 不肯定的选"N".
SCSI Transports
SCSI 接口类型, 下面的子项能够全不选, 内核中如有其余部分依赖它, 会自动选上
Parallel SCSI (SPI) Transport Attributes
CONFIG_SCSI_SPI_ATTRS
传统的并行SCSI(Ultra320/160 之类), 已逐渐被淘汰
FiberChannel Transport Attributes
CONFIG_SCSI_FC_ATTRS
光纤通道接口
SCSI target support for FiberChannel TransportAttributes
CONFIG_SCSI_FC_TGT_ATTRS
为光纤通道添加"target" 模式驱动
iSCSI Transport Attributes
CONFIG_SCSI_ISCSI_ATTRS
iSCSI 协议是利用TCP/IP 网络传送SCSI 命令和数据的I/O 技术
SAS Transport Attributes
CONFIG_SCSI_SAS_ATTRS
串行SCSI 传输属性支持( SAS 对于SPI 的关系犹如SATA 对于IDE), 这是目前的主流接口
SAS Domain Transport Attributes
CONFIG_SCSI_SAS_LIBSAS
为使用了 SASDomain 构的驱动程序提供帮助.SASDomain 即整个SAS 交换构架, "SASdevice" "SASexpanderdevice" 组成, 其中Device 又区分为Initiator Target, 它们能够直接对接起来, 也能够通过Expander 进行连,Expander 起到通道交换或者端口扩展的做用. 看不懂就说明你不须要它.
ATA support for libsas (requires libata)
CONFIG_SCSI_SAS_ATA
libsas 中添加ATA 支持, 从而让libata libsas 协同工做.
Support for SMP interpretation for SAShosts
CONFIG_SCSI_SAS_HOST_SMP
libsas 中添加SMP 解释器, 以容许主机支持SASSMP 协议.
SRP Transport Attributes
CONFIG_SCSI_SRP_ATTRS
SCSI RDMA 协议(SCSIRDMA Protocol) 经过将SCSI 数据传输阶段映射到Infiniband 远程直接内存访问(RemoteDirect Memory Access) 操做加速了SCSI 协议.
SCSI target support for SRP TransportAttributes
CONFIG_SCSI_SRP_TGT_ATTRS
SRP 添加"target" 模式驱动
SCSI low-level drivers
CONFIG_SCSI_LOWLEVEL
底层SCSI 驱动程序
iSCSI Initiator over TCP/IP
CONFIG_ISCSI_TCP
iSCSI 协议利用TCP/IP 网络在"initiator" "targets" 间传送SCSI 命令和数据. 此选项即是iSCSIinitiator 驱动. 相关的用户层工具/ 文档/ 配置示例, 能够在 open-iscsi 找到.
iSCSI Boot Sysfs Interface
CONFIG_ISCSI_BOOT_SYSFS
经过sysfs 向用户空间显示iSCSI 的引导信息.
{ 此处省略的部分按照实际使用的控制器进行选择}
VMware PVSCSI driver support
CONFIG_VMWARE_PVSCSI
VMware 半虚拟化的SCSIHBA 控制器
Microsoft Hyper-V virtual storage driver
CONFIG_HYPERV_STORAGE
微软的Hyper-V 虚拟存储控制器
Intel(R) C600 Series Chipset SAS Controller
CONFIG_SCSI_ISCI
Intel C600 系列芯片组6Gb/s SAS 控制器
virtio-scsi support
CONFIG_SCSI_VIRTIO
virtio 虚拟HBA 控制器
PCMCIA SCSI adapter support
CONFIG_SCSI_LOWLEVEL_PCMCIA
经过PCMCIA 卡与计算机链接的SCSI 设备
SCSI Device Handlers
CONFIG_SCSI_DH
针对某些特定SCSI 设备的驱动, 具体子项请按照实际使用的控制器进行选择
OSD-Initiator library
CONFIG_SCSI_OSD_INITIATOR
OSD(Object-BasedStorage Device) 协议是一个T10SCSI 命令集, SCSI 处于同一级别, 也跟SCSI 很相似, 分红osd-initiator/osd-target 两部分, 用于对象存储文件系统, 此选项实现了 OSD-Initiator(libosd.ko). 更多细节参见" Documentation/scsi/osd.txt" 文件. 看不懂就说明你不须要.[ 提示] 此选项依赖于CONFIG_CRYPTO_SHA1 CONFIG_CRYPTO_HMAC 模块.
OSD Upper Level driver
CONFIG_SCSI_OSD_ULD
提供OSD 上层驱动( 也就是向用户层提供/dev/osdX 设备). 从而容许用户层控制OSD 设备( 好比挂载基于OSD exofs文件系统).
Serial ATA and Parallel ATA drivers
CONFIG_ATA
SATA PATA(IDE) 设备. 桌面级PC 以及低端服务器的硬盘基本都是此种接口
Verbose ATA error reporting
CONFIG_ATA_VERBOSE_ERROR
输出详细的ATA 命令描述信息. 大约会让内核增大6KB. 禁用它将会致使调试ATA 设备错误变得困难.
ATA ACPI Support
CONFIG_ATA_ACPI
ATA 相关的ACPI 对象支持. 这些对象与性能/ 安全/ 电源管理等相关. 无论你使用的是IDE 硬盘仍是SATA 硬盘, 都建议开启( 能够使用内核引导参数"libata.noacpi=1" 关闭).
SATA Zero Power Optical Disc Drive (ZPODD)support
CONFIG_SATA_ZPODD
这是 SATA-3.1 版规范新增的节能相关内容, 用新的电源管理策略下降了整个系统的电力需求, 可让处于空闲状态的光驱耗电量近乎于零. 这须要主板和光驱二者都支持SATA-3.1 规范才行.
SATA Port Multiplier support
CONFIG_SATA_PMP
SATA 端口复用器( PortMultiplier) 是一个定义在SATA 规范里面的能够选择的功能, 能够把一个活动主机链接多路复用至多个设备链接, 至关于一个SATAHUB. 不肯定的选"N".
AHCI SATA support
CONFIG_SATA_AHCI
AHCI SATA 支持. 这是最佳的SATA 模式(NCQ 功能依赖于它). 某些主板还须要在BIOS 中将硬盘明确设为AHCI 模式. 使用SATA 硬盘者必选"Y".[ 提示] 因为各厂商芯片组内的SATA 控制器都遵循同一种规范, 因此并不须要各类各样针对不一样SATA 控制器的驱动, 就这一个驱动基本就能通吃全部SATA 控制器, 这比丰富多彩的网卡驱动省事多了.
Platform AHCI SATA support
CONFIG_SATA_AHCI_PLATFORM
这是用于嵌入式系统的与AHCI 接口兼容的SATA 驱动. 并非常见的芯片组中的SATA 控制器驱动. 不肯定的选"N".
{ 此处省略几个特殊且不常见的SATA 控制器驱动}
ATA SFF support (for legacy IDE and PATA)
CONFIG_ATA_SFF
使用SATA 硬盘的用户可无视此项, "N" 便可. 对于依然使用老旧的IDE/PATA 硬盘的用户而言, 按照实际状况在子项中选择相应的控制器驱动便可.
{ 此处省略几个罕见的Pacific/Promise 芯片组}
ATA BMDMA support
CONFIG_ATA_BMDMA
这是IDE 控制器的事实标准. 除了上世纪的古董外, 绝大多数芯片组都遵照这个标准, "Y", 而后从子项中选择恰当的芯片组/ 控制器.
{ 此处省略的PIO-onlySFF 芯片组都是早就绝迹的老古董}
ACPI firmware driver for PATA
CONFIG_PATA_ACPI
经过ACPIBIOS 去操做IDE 控制器. 仅用于某些比较奇特的IDE 控制器. "N".
Generic ATA support
CONFIG_ATA_GENERIC
这是通用的IDE 控制器驱动. 若是你没法肯定IDE 控制器的具体型号( 好比须要面对未知的硬件情况), 或者不想使用针对特定芯片组的IDE 驱动, 就选"Y" .
Multiple devices driver support (RAID and LVM)
CONFIG_MD
多设备支持( RAID LVM).RAID LVM 的功能是使用多个物理设备组建成一个单独的逻辑设备
RAID support
CONFIG_BLK_DEV_MD
" SoftwareRAID"( 须要使用 mdadm 工具) 支持. 也就是" RAID". 使用硬件RAID 卡的用户并不须要此项.
Autodetect RAID arrays during kernel boot
CONFIG_MD_AUTODETECT
内核启动过程当中自动检测RAID 模式. 若是你没有使用RAID, 那么选中此项将会让内核在启动过程当中增长几秒延迟. 若是你使用"raid=noautodetect" 内核引导参数关闭了自动检测, 或者此处选了"N", 那么你必须使用"md=???" 内核引导参数明确告诉内核RAID 模式及配置.
Linear (append) mode
CONFIG_MD_LINEAR
线性模式( 简单的将一个分区追加在另外一个分区以后), 通常不使用这种模式.
RAID-0 (striping) mode
CONFIG_MD_RAID0
RAID-0( 等量分割) 模式, 能够获取最高性能, 可是却损害了可靠性, 通常也不使用这种模式.
RAID-1 (mirroring) mode
CONFIG_MD_RAID1
RAID-1( 镜像) 模式. 包含内核的引导分区只能使用这种模式.
RAID-10 (mirrored striping) mode
CONFIG_MD_RAID10
RAID 1+0 模式
RAID-4/RAID-5/RAID-6 mode
CONFIG_MD_RAID456
RAID-4/RAID-5/RAID-6 模式
Multipath I/O support
CONFIG_MD_MULTIPATH
多路IO 支持是指在服务器和存储设备之间使用冗余的物理路径组件建立" 逻辑路径", 若是这些组件发生故障并形成路径失败, 多路径逻辑将为I/O 使用备用路径以使应用程序仍然能够访问其数据. 该选项已废弃, 并已被CONFIG_DM_MULTIPATH 所取代. "N".
Faulty test module for MD
CONFIG_MD_FAULTY
用于MD(Multi-device) 的缺陷测试模块, 仅用于调试.
Block device as cache
CONFIG_BCACHE
将一个块设备用做其余块设备的缓存( Bcache). 此缓存使用btree( 平衡树) 索引, 并专门为SSD 进行了优化. 仅在你打算使用高速 SSD做为普通硬盘的缓存时才须要此功能. 详情参见" Documentation/bcache.txt" 文档.
Bcache debugging
CONFIG_BCACHE_DEBUG
仅供内核开发者调试使用
Extended runtime checks
CONFIG_BCACHE_EDEBUG
仅供内核开发者调试使用
Debug closures
CONFIG_BCACHE_CLOSURES_DEBUG
仅供内核开发者调试使用
Device mapper support
CONFIG_BLK_DEV_DM
Device-mapper 是一个底层的卷管理器, 提供了一种从逻辑设备到物理设备的映射框架, 用户能够很方便的根据本身的须要制定实现存储资源的管理策略. 它不像RAID 那样工做在设备层, 而是经过块和扇区的映射机制, 将不一样磁盘的不一样部分组合成一个大的块设备供用户使用. LVM2 EVMS 都依赖于它. 此外, 那些集成在南桥( 例如ICH8R/ICH9R/ICH10R 系列等) 中所谓的" RAID"( 准确的称呼应该是" DeviceMapper RAID", 又称为"FakeRAID"/"BIOS RAID") 也依赖于它.
Device mapper debugging support
CONFIG_DM_DEBUG
仅供内核开发者调试使用
Crypt target support
CONFIG_DM_CRYPT
此模块容许你建立一个通过透明加密的逻辑设备( 使用 cryptsetup 工具), 要使用加密功能, 除此项外, 还须要在"CryptographicAPI" 里选中相应的加密算法, 例如CONFIG_CRYPTO_AES. 更多文档请参考 LUKSFAQ.
Snapshot target
CONFIG_DM_SNAPSHOT
容许卷管理器为DM 设备建立可写的快照( 定格于特定瞬间的一个设备虚拟映像). LVM2Snapshot 须要它的支持. 更多详情参见" Documentation/device-mapper/snapshot.txt" 文档. 不肯定的选"N".
Thin provisioning target
CONFIG_DM_THIN_PROVISIONING
" Thinprovisioning"( 某些地方翻译为" 精简配置") 的意思是容许分配给全部用户的总存储容量超过实际的存储容量( 使用 thin-provisioning-tools ). 例如给100 个用户分配空间, 每一个用户最大容许10G 空间, 共计须要1000G 空间. 但实际状况是95% 的用户都只使用了不到1G 的空间, 那么实际准备1000G 空间就是浪费. 有了"thinprovisioning" 的帮助, 你实际只须要准备150G 的空间就能够了, 以后, 能够随着用户需求的增长, 添加更多的实际存储容量, 从而减小存储投资和避免浪费. 更多详情参见" Documentation/device-mapper/thin-provisioning.txt" 文档.
Keep stack trace of thin provisioning block lockholders
CONFIG_DM_DEBUG_BLOCK_STACK_TRACING
仅用于调试目的
Cache target
CONFIG_DM_CACHE
dm-cache 经过将频繁使用的热点数据缓存到一个容量较小但性能很高的存储设备上, 从而提高块设备的性能. 它支持 writeback writethrough 两种模式, 并能够使用多种缓存策略 (policy) 以判断哪些是热点数据以及哪些数据须要从缓存中移除. 更多详情参见" Documentation/device-mapper/cache.txt" 文档. 不肯定的选"N".
MQ Cache Policy
CONFIG_DM_CACHE_MQ
MQ 缓存策略. 这是目前惟一真正可用的缓存策略.
Cleaner Cache Policy
CONFIG_DM_CACHE_CLEANER
Cleaner 简单的把全部数据都同步写入到原始设备上, 至关于关闭缓存.
Mirror target
CONFIG_DM_MIRROR
容许对逻辑卷进行镜像, 同时实时数据迁移工具 pvmove 也须要此项的支持.
RAID 1/4/5/6/10 target
CONFIG_DM_RAID
RAID 1/4/5/6/10 支持. 即便使用ICH8R/ICH9R/ICH10R 这样的南桥, 也不推荐使用"DeviceMapper RAID"( 既无性能优点又依赖于特定硬件), 应该直接使用更成熟的CONFIG_BLK_DEV_MD 模块.
Mirror userspace logging
CONFIG_DM_LOG_USERSPACE
device-mapper 用户空间日志功能由内核模块和用户空间程序两部分组成, 此选项是内核模块(API 定义于"linux/dm-dirty-log.h" 文件). 不肯定的选"N".
Zero target
CONFIG_DM_ZERO
"Zerotarget" 相似于"/dev/zero", 全部的写入都被丢弃, 全部的读取均可以获得无限多个零. 可用于某些恢复场合.
Multipath target
CONFIG_DM_MULTIPATH
设备映射多路径(DM-Multipath) 支持. 不肯定的选"N".
I/O Path Selector based on the number of in-flightI/Os
CONFIG_DM_MULTIPATH_QL
这是一个动态负载均衡路径选择器: 选择当前正在处理中的I/O 数量最小的通路.
I/O Path Selector based on the service time
CONFIG_DM_MULTIPATH_ST
这是一个动态负载均衡路径选择器: 选择完成此I/O 操做预期时间最少的通路.
I/O delaying target
CONFIG_DM_DELAY
对读/ 写操做进行延迟, 并可将其发送到不一样的设备. 仅用于测试DM 子系统.
DM uevents
CONFIG_DM_UEVENT
DM 事件透过 netlink 向用户层的udevd 发出uevent 通知, 这样就容许udevd "/dev/" 目录中执行相应的操做.
Flakey target
CONFIG_DM_FLAKEY
模拟间歇性的I/O 错误, 以用于调试DM 子系统.
Verity target support
CONFIG_DM_VERITY
Verity target 能够建立一个只读的逻辑设备, 而后根据预先生成的哈希校验和( 存储在其余设备上), 校验底层设备上的数据正确性. 要使此模块正常工做, 还须要在"CryptographicAPI" 部分选中相应的哈希算法.
Generic Target Core Mod (TCM) and ConfigFSInfrastructure
CONFIG_TARGET_CORE
通用TCM 存储引擎与ConfigFS 虚拟文件系统(/sys/kernel/config) 支持. 看不懂就说明你不须要.
Fusion MPT device support
CONFIG_FUSION
FusionMPT(Message Passing Technology) LSI Logic 公司为了更容易实现SCSI 和光纤通道而提出的技术, 支持Ultra320SCSI/ 光纤通道/SAS.
IEEE 1394 (FireWire) support
火线( IEEE1394) 是苹果公司开发的串行接口, 相似于USB, PC 上并不常见, 算得上是个没有将来的技术了.
I2O device support
CONFIG_I2O
智能输入输出( IntelligentInput/Output) 架构让硬件驱动分红了两部分:OSM( 特定于操做系统)+HDM( 特定于硬件, 与操做系统无关). 因为 I2O设备上集成有专用的I/O 处理器, 从而加快I/O 速度( 由于避免了CPU 的参与).I2O 属于已被废弃的技术, 目前能见到的此类设备都属于老古董了.
Macintosh device drivers
CONFIG_MACINTOSH_DRIVERS
苹果的Macintosh 电脑上的专有设备驱动
Network device support
CONFIG_NETDEVICES
网络设备. 除非你不想链接任何网络, 不然必选"Y".
Network core driver support
CONFIG_NET_CORE
若是你不想使用任何高级网络功能( 拨号网络/EQL/VLAN/bridging/bonding/ 光纤通道/ 虚拟网络), 仅仅是通常性质的联网( 普通服务器, 经过路由器或者局域网上网的常规我的电脑), 能够选"N". 此外, 某些网卡的驱动会依赖于其下的CONFIG_MII 子项( 会被自动选中).
Bonding driver support
CONFIG_BONDING
链路聚合技术拥有多个不一样的称谓:Linux 称为"Bonding",IEEE 称为" 802.3ad",Sun 称为"Trunking",Cisco 称为" Etherchannel". 该技术能够将多个以太网通道聚合为一个单独的虚拟适配器, 例如将两块网卡聚合成一个逻辑网卡, 能够用来实现负载均衡或硬件冗余.
Dummy net driver support
CONFIG_DUMMY
Dummy 网络接口本质上是一个能够配置IP 地址的bit-bucket( 位桶, 全部发送到此设备的流量都将被湮灭), 以使应用程序看上去正在和一个常规的网络接口进行通讯. 使用 SLIP( 小猫拨号, 目前应该已经绝迹了) PPP( 经常使用于 PPPoEADSL) 的用户须要它
EQL (serial line load balancing) support
CONFIG_EQUALIZER
串行线路的负载均衡. 若是有两个MODEM 和两条SLIP/PPP 线路, 该选项可让你同时使用这两个通道以达到双倍速度( 网络的对端也要支持EQL 技术). 曾经昙花一现的 ISDN 就这项技术的一个实例.
Fibre Channel driver support
CONFIG_NET_FC
光纤通道(FibreChannel) 是一种高速网络串行协议, 主要用于存储局域网(SAN), 它与SCSI 协议兼容, 并意在取代SCSI. 与传统的SCSI 技术相比, 除了提供更高的数据传输速度, 更远的传输距离, 更多的设备链接支持, 更稳定的性能, 更简易的安装之外, 最重要的是支持最新的网络区域存储(SAN) 技术. 若是你的机器上有光纤通道卡(FC ), 除了须要开启此项外, 还须要开启相应的FC 卡驱动, 以及CONFIG_CHR_DEV_SG 选项.
Generic Media Independent Interface device support
CONFIG_MII
媒体独立接口( MediaIndependentInterface) 又称介质无关接口, IEEE-802.3( 规定了以太网相关协议的具体内容) 定义的以太网行业标准. 它包括一个数据接口, 以及一个位于 MAC PHY 之间的控制接口.[ 提示] 大多数以太网卡都有MII 收发器, 其驱动都依赖于此项, 也会自动选中此项.
Intermediate Functional Block support
CONFIG_IFB
IFB 是一个中间层驱动, 能够用来灵活的配置资源共享. 更多信息参见iproute2 文档. 看不懂就说明你不须要.
Ethernet team driver support
CONFIG_NET_TEAM
容许经过"iplink add link [ address MAC ] [ NAME ] typeteam" 命令, 将多个以太网卡( 称为"port") 组合在一块儿, 建立一个虚拟的" team" 网络设备, 其目的是取代传统的"Bonding"(CONFIG_BONDING) 驱动."ip" iproute2 包中的一个命令. 不肯定的选"N".
MAC-VLAN support
CONFIG_MACVLAN
MAC-VLAN 是经过MAC 地址来划分 VLAN 方式, Linux 则用来给网卡添加多个MAC 地址. 你能够使用"iplink add link <real dev> [ address MAC ] [ NAME ] typemacvlan" 命令建立一个虚拟的"macvlan" 设备( 系统会自动打开网卡的混杂模式), 而后就能够在同一个物理网卡上虚拟出多个以太网口.
MAC-VLAN based tap driver
CONFIG_MACVTAP
基于MAC-VLAN 接口的tap( 虚拟以太网设备) 字符设备( macvtap) 驱动, 旨在简化虚拟化的桥接网络, 目的是替代 TUN/TAP Bridge 内核模块. 能够经过与建立macvlan 设备相同的"ip" 命令建立一个虚拟的"macvtap" 设备, 并经过 TAP 用户空间接口进行访问.
Virtual eXtensible Local Area Network (VXLAN)
CONFIG_VXLAN
" vxlan" 虚拟接口能够在第三层网络上建立第二层网络( 跨多个物理IP 子网的虚拟二层子网), 是一种在UDP 中封装MAC 的简单机制, 主要用于虚拟化环境下的隧道虚拟网络(tunnelvirtual network).
Network console logging support
CONFIG_NETCONSOLE
网络控制台(netconsole) 的做用是经过网络记录内核日志信息. 详情参见" Documentation/networking/netconsole.txt" 文档. 不肯定的选"N".
Dynamic reconfiguration of loggingtargets
CONFIG_NETCONSOLE_DYNAMIC
容许经过configfs 导出的用户空间接口, 在运行时更改日志目标( 网口,IP 地址, 端口号,MAC 地址).
Netpoll traffic trapping
CONFIG_NETPOLL_TRAP
netpoll 的目的是让内核在网络和I/O 子系统尚不能完整可用时, 依然能发送和接收数据包. 主要用于网络控制台(netconsole) 和远程内核调试(KGDBoE) . 不肯定的选"N".
Virtual Ethernet over NTB
CONFIG_NTB_NETDEV
PCI-E 非透明桥(CONFIG_NTB) 上的虚拟网卡. 不肯定的选"N".
RapidIO Ethernet over messaging driver support
CONFIG_RIONET
在标准的 RapidIO 通讯方式上发送以太网数据包. 不肯定的选"N".
Universal TUN/TAP device driver support
CONFIG_TUN
TUN/TAP 能够为用户空间提供包的接收和发送服务, 能够用来虚拟一张网卡或点对点通道. 当程序打开"/dev/net/tun" 设备时, 驱动程序就会注册相应的 "tunX" "tapX" 网络设备, 当程序关闭"/dev/net/tun" 设备时, 驱动程序又会删除相应的"tunX" "tapX" 网络设备以及全部与之相关联的路由. 详情参见" Documentation/networking/tuntap.txt" 文档. 看不懂就代表你不须要.
Virtual ethernet pair device
CONFIG_VETH
该驱动提供了一个本地以太网隧道( 设备会被成对的建立).
Virtio network driver
CONFIG_VIRTIO_NET
virtio 虚拟网卡驱动. 能够用于 lguest 或者基于 QEMU 的虚拟机管理程序( 例如KVM/Xen).
ARCnet support
CONFIG_ARCNET
ARCnet 1977 年由Datapoint 公司开发的一种局域网技术, 它采用令牌总线方案来管理LAN 上工做站和其余设备之间的共享线路, 主要用于工业控制领域中.
ATM drivers
CONFIG_ATM_DRIVERS
可怜的ATM( 异步传输模式), 曾经在90 年代风靡一时, 如今已经消失的无影无踪了.
{ 这里省略几个专用于Android/MeeGo 系统的PF_CAIF 类型套接字相关的选项}
Distributed Switch Architecture drivers
分布式交换架构驱动, 其子项都是Marvell 系列以太网交换机芯片组的驱动
Ethernet driver support
CONFIG_ETHERNET
最多见的以太网卡驱动
{ 省略的部分请按照实际的硬件情况进行选择, 这里仅以两个常见公司的以太网芯片为例进行说明}
AMD devices
CONFIG_NET_VENDOR_AMD
AMD 出品的以太网控制芯片
AMD PCnet32 PCI support
CONFIG_PCNET32
这是VMware/VirtualBox 虚拟机中经常使用的网卡
Broadcom devices
CONFIG_NET_VENDOR_BROADCOM
博通(Broadcom) 公司的网卡
Broadcom 440x/47xx ethernet support
CONFIG_B44
Broadcom 44xx/47xx 10/100M PCI
Broadcom NetXtremeII support
CONFIG_BNX2
NetXtreme II 1 Gigabit ( BCM5706/5708/5709/5716 )
Broadcom CNIC support
CONFIG_CNIC
NetXtremeII 系列网卡的 TCP减负引擎( TCPOffloadEngine) 特性支持. 不过, TOE并不适合高链接数 /小文件的 Web服务器类应用, 它的主要目的是和IP 存储协议(iSCSI/NFS) 一块儿使用.[ 注意]TOE "LargeReceive Offload" 是两个不一样的东西, 不要混淆.
Broadcom Tigon3 support
CONFIG_TIGON3
这是最流行的驱动, 其涵盖的型号特别多, 可是"Tigon3" 的名称却很是具备迷惑性. 简单说来, 除了B44,BNX2,BNX2X 中明确列出的型号外, 其余型号用的都是这个驱动.
Broadcom NetXtremeII 10Gb support
CONFIG_BNX2X
NetXtreme II 10 Gigabit ( BCM57710/57711/57711E/57712/57800/57810)
Broadcom 578xx and 57712 SR-IOV support
CONFIG_BNX2X_SRIOV
支持578xx/57712 单根 I/O虚拟化(SingleRoot IOV) 技术
FDDI driver support
CONFIG_FDDI
光纤分布式数据接口(FDDI)
HIPPI driver support
CONFIG_HIPPI
高性能并行接口(HIghPerformance Parallel Interface) 是一个在短距离内高速传送大量数据的点对点协议. 经常使用于集群和超级计算机.
General Instruments Surfboard 1000
CONFIG_NET_SB1000
SURFboard 1000 插卡式CableMedem(ISA 接口), 这玩意早就绝种了
PHY Device support and infrastructure
CONFIG_PHYLIB
数据链路层芯片简称为MAC 控制器, 物理层芯片简称之为PHY, 一般的网卡把MAC PHY 的功能作到了一颗芯片中, 但也有一些仅含PHY " 软网卡". 此选项就是对这些" 软网卡" 的支持. 请根据实际状况选择其下的子项.
Micrel KS8995MA 5-ports 10/100 managed Ethernetswitch
CONFIG_MICREL_KS8995MA
MicrelKS8995MA 5 端口10/100M 以太网交换芯片
PLIP (parallel port) support
CONFIG_PLIP
PLIP(ParallelLine InternetProtocol) 用于将两台电脑经过并口进行联网, 组成一个简单的客户机/ 服务器结构. 详情参见" Documentation/networking/PLIP.txt". 如今的电脑都使用网卡进行互联, 并口早就经被丢进历史的垃圾箱了.
PPP (point-to-point protocol) support
CONFIG_PPP
点对点协议( Pointto PointProtocol) SLIP 的继任者, 使用PPP 须要用户层程序 pppd 的帮助.PPP 实际上有两个版本: 基于普通模拟电话线的" 异步PPP" 和基于数字线路( 例如ISDN 线路) " 同步PPP". 使用电脑直接拨号的 PPPoEADSL 用户 须要此项.
PPP BSD-Compress compression
CONFIG_PPP_BSDCOMP
PPP 提供BSD( 等价于LZW 压缩算法, 没有gzip 高效) 压缩算法支持, 须要通讯双方的支持才有效. 大多数ISP 都不支持此算法.
PPP Deflate compression
CONFIG_PPP_DEFLATE
PPP 提供Deflate( 等价于gzip 压缩算法) 压缩算法支持, 须要通讯双方的支持才有效. 这是比BSD 更好的算法( 压缩率更高且无专利障碍).
PPP filtering
CONFIG_PPP_FILTER
容许对经过PPP 接口的包进行过滤. 仅在你须要使用pppd pass-filter/active-filter 选项时才须要开启. 不肯定的选"N".
PPP MPPE compression (encryption)
CONFIG_PPP_MPPE
PPP 提供MPPE 加密协议支持, 它被用于微软的P2P 隧道协议中. 此特性须要 PPTPClient 工具的支持.
PPP multilink support
CONFIG_PPP_MULTILINK
多重链路协议(RFC1990) 容许你将多个线路( 物理的或逻辑的) 组合为一个PPP 链接一充分利用带宽, 这不但须要pppd 的支持, 还须要ISP 的支持
PPP over ATM
CONFIG_PPPOATM
ATM 上跑的PPP. 果断"N".
PPP over Ethernet
CONFIG_PPPOE
这就是ADSL 用户最多见的PPPoE, 也就是在以太网上跑的PPP 协议. 这须要 RP-PPPoE 工具的帮助
PPP over IPv4 (PPTP)
CONFIG_PPTP
点对点隧道协议( Point-to-PointTunneling Protocol) 是一种主要用于VPN 的数据链路层网络协议. 此功能须要 ACCEL-PPTP 工具的支持.
PPP over L2TP
CONFIG_PPPOL2TP
第二层隧道协议( L2TP) 是一种经过UDP 隧道传输PPP 流量的技术, 对于VPN 用户来讲, L2TPVPN 是比PPTPVPN 的更好解决方案.
PPP support for async serial ports
CONFIG_PPP_ASYNC
基于普通模拟电话线或标准异步串口(COM1,COM2) " 异步PPP" 支持.PPPoE ADSL 使用的就是这个. 不能与下面的CONFIG_PPP_SYNC_TTY 同时并存.
PPP support for sync tty ports
CONFIG_PPP_SYNC_TTY
基于同步tty 设备( 好比SyncLink 适配器) " 同步PPP" 支持. 经常使用于高速租用线路( 好比T1/E1). 不肯定的选"N".
SLIP (serial line) support
CONFIG_SLIP
一个在串行线上( 例如电话线) 传输IP 数据报的TCP/IP 协议. 最原始的经过电话线拨号上网就用这个协议, 现在基本绝迹了. 不肯定的选"N".
CSLIP compressed headers
CONFIG_SLIP_COMPRESSED
CSLIP 协议基于SLIP, 但比SLIP , 它将TCP/IP ( 而非数据) 进行压缩传送, 须要通讯双方的支持才有效
Keepalive and linefill
CONFIG_SLIP_SMART
SLIP 驱动支持RELCOMlinefill keepalive 监视, 这在信号质量比较差的模拟线路上是个好主意
Six bit SLIP encapsulation
CONFIG_SLIP_MODE_SLIP6
这种线路很是罕见, "N".
USB Network Adapters
USB 网络适配器
Wireless LAN
CONFIG_WLAN
无线网卡
{ 省略的部分请按照实际的硬件情况进行选择, 这里仅以Intel 公司的主流无线网卡为例进行说明}
Intel Wireless WiFi Next Gen AGN -Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
CONFIG_IWLWIFI
这是目前主流Intel 无线网卡的驱动. 此驱动依赖于二进制 uCode微代码, 它一般被安装到"/lib/firmware" 目录, 不过你最好亲自用眼睛检查一下"/etc/hotplug/firmware.agent" 脚本中的"FIRMWARE_DIR" 变量的设置是否正确.
Intel Wireless WiFi DVM Firmware support
CONFIG_IWLDVM
DVM 固件支持( 这也是当前惟一可用的固件). "Y/M".
Intel Wireless WiFi MVM Firmware support
CONFIG_IWLMVM
MVM 固件支持( 这是专用于7000 系列无线网卡的固件).
Debugging Options
仅供调试使用, 其下全部选项都选"N".
iwlwifi experimental P2P support
CONFIG_IWLWIFI_P2P
iwlwifi 驱动实验性的P2P 支持. 不肯定的选"N".
WiMAX Wireless Broadband devices
WiMAX 无线设备
Wan interfaces support
CONFIG_WAN
广域网(WideArea Network) 网卡支持. 这种网卡很罕见. 不肯定的选"N".
IEEE 802.15.4 drivers
CONFIG_IEEE802154_DRIVERS
IEEE802.15.4 描述了低速率无线我的局域网的物理层和媒体接入控制协议
Xen network device frontend driver
CONFIG_XEN_NETDEV_FRONTEND
XEN 半虚拟化网络设备前端驱动( 一般是被"domain0" 导出的)
Xen backend network device
CONFIG_XEN_NETDEV_BACKEND
XEN 半虚拟化网络设备后端驱动, 一般被用在"domain0" 内核上, 用于向其余domain 导出半虚拟化网络设备.
VMware VMXNET3 ethernet driver
CONFIG_VMXNET3
VMware vmxnet3 虚拟以太网卡驱动
Microsoft Hyper-V virtual network driver
CONFIG_HYPERV_NET
Microsoft Hyper-V 虚拟以太网卡驱动
ISDN support
CONFIG_ISDN
上世纪在ADSL 流行以前曾经有太短暂流行, 但如今已经绝迹了
Input device support
输入设备
Generic input layer (needed for keyboard, mouse, ...)
CONFIG_INPUT
通用输入层. 只要你有任何输入设备( 键盘, 鼠标, 手写板, 触摸板, 游戏杆, 方向盘, 游戏键盘...), 就必须选"Y".
Support for memoryless force-feedbackdevices
CONFIG_INPUT_FF_MEMLESS
游戏玩家使用的力反馈设备, 例如: LogitechWingMan Force 3D 飞行摇杆, ThrustMasterFireStorm Dual Power 2. 若是你有此类设备, 除了本项以外, 还须要开启特定于硬件的驱动.
Polled input device skeleton
CONFIG_INPUT_POLLDEV
使用轮询机制的输入设备支持, 此项主要是为源码树以外的驱动准备的, 内核自带的驱动如有须要会自动选中. 不肯定的选"N".
Sparse keymap support library
CONFIG_INPUT_SPARSEKMAP
使用"sparsekeymap" 的输入设备支持, 此项主要是为源码树以外的驱动准备的, 内核自带的驱动如有须要会自动选中. 不肯定的选"N".
Matrix keymap support library
CONFIG_INPUT_MATRIXKMAP
使用"matrixkeymap" 的输入设备支持, 此项主要是为源码树以外的驱动准备的, 内核自带的驱动如有须要会自动选中. 不肯定的选"N".
Mouse interface
CONFIG_INPUT_MOUSEDEV
鼠标接口(/dev/input/mouseX,/dev/input/mice). 用鼠标的必选.[ 提示] 若是系统上有多个鼠标, 那么,mouseX 对应单个特定的鼠标, mice 则是全部鼠标的集合( 全部鼠标的事件都会被发送到这个设备文件中).
Provide legacy /dev/psaux device
CONFIG_INPUT_MOUSEDEV_PSAUX
仍然支持传统的/dev/psaux 接口, 这是为兼容老旧的程序而设置. "N".
Horizontal screen resolution
CONFIG_INPUT_MOUSEDEV_SCREEN_X
做为鼠标使用的数字化转换器(digitizer) 手写板(graphictablet) 须要知道Xwindow 的水平分辩率. 通常可理解为显示屏的水平分辨率.
Vertical screen resolution
CONFIG_INPUT_MOUSEDEV_SCREEN_Y
做为鼠标使用的数字化转换器(digitizer) 手写板(graphictablet) 须要知道Xwindow 的垂直分辩率. 通常可理解为显示屏的垂直分辨率.
Joystick interface
CONFIG_INPUT_JOYDEV
游戏杆( joystick) 和游戏键盘( gamepad) 支持(/dev/input/jsX)
Event interface
CONFIG_INPUT_EVDEV
将全部的输入设备事件都经过"/dev/input/eventX" 以一种通用的方式进行处理.Xorg 须要使用此接口. 不肯定的选"Y".
Event debugging
CONFIG_INPUT_EVBUG
将全部输入设备的动做( 键盘按下, 鼠标移动等) 都记录到系统日志当中. 主要用于调试, 同时也会带来安全漏洞( 键盘输入中极可能包含你的密码). "N".
Keyboards
CONFIG_INPUT_KEYBOARD
键盘驱动
AT keyboard
CONFIG_KEYBOARD_ATKBD
标准AT 键盘或者 PS/2 键盘. 使用USB 或者ADB 键盘的能够选"N".
{ 此处被省略的键盘都很罕见, 基本上没必要考虑}
Mice
CONFIG_INPUT_MOUSE
鼠标驱动
PS/2 mouse
CONFIG_MOUSE_PS2
标准的两键或三键的 PS/2 鼠标, 同时兼容Microsoft/Logitech/Genius 生产的带有滚轮或者额外按键的PS/2 鼠标. 使用Synaptics/ALPS/Elantech 触摸板的用户还能够看看其专用驱动, 这些驱动能够提供更多的高级功能. 使用USB 鼠标的能够选"N". 其下的子项是针对各厂商特定产品的扩展协议支持. 按需选择便可.
{ 此处被省略的鼠标都很罕见, 基本上没必要考虑}
Joysticks/Gamepads
游戏杆,6 自由度摇杆, 游戏键盘, 方向盘, 射击武器... 等各类游戏装置
Tablets
CONFIG_INPUT_TABLET
平板输入设备
Touchscreens
CONFIG_INPUT_TOUCHSCREEN
触摸屏输入设备
Miscellaneous devices
CONFIG_INPUT_MISC
其余杂项输入设备
PC Speaker support
CONFIG_INPUT_PCSPKR
标准蜂鸣器. 建议开启.
{ 此处被省略的其余设备都很罕见, 基本上没必要考虑}
Hardware I/O ports
硬件I/O 端口
Serial I/O support
CONFIG_SERIO
串行I/O 硬件支持. 标准AT 键盘,PS/2 鼠标, 串口鼠标,Sun 键盘, 游戏杆,6 自由度摇杆等设备都依赖于它. 不肯定的选"Y".
i8042 PC Keyboard controller
CONFIG_SERIO_I8042
标准AT 键盘,PS/2 鼠标, 这两种设备须要它的支持.
Serial port line discipline
CONFIG_SERIO_SERPORT
RS232 串口(COM). 串口鼠标, 游戏杆,6 自由度摇杆等设备都依赖于它.
ct82c710 Aux port controller
CONFIG_SERIO_CT82C710
一种德州仪器TravelMate 笔记本上使用QuickPort 接口的鼠标
Parallel port keyboard adapter
CONFIG_SERIO_PARKBD
并口键盘适配器, 用于将AT/XT 键盘或PS/2 鼠标转接到并口上. 很是罕见.
PCI PS/2 keyboard and PS/2 mouse controller
CONFIG_SERIO_PCIPS2
接在移动式扩展坞(Dockingstation) 上的PS/2 键盘或鼠标
PS/2 driver library
CONFIG_SERIO_LIBPS2
PS/2 接口上的设备提供驱动( 好比PS/2 鼠标和标准AT 键盘)
Raw access to serio ports
CONFIG_SERIO_RAW
raw 方式访问serio 接口(echo-n "serio_raw" >/sys/bus/serio/devices/serioX/drvctl), 例如i8042 键盘控制器的AUX 端口. 看不懂的就别选了.
Altera UP PS/2 controller
CONFIG_SERIO_ALTERA_PS2
Altera University Program PS/2 端口支持. 不肯定的选"N".
TQC PS/2 multiplexer
CONFIG_SERIO_PS2MULT
TQC 板上的PS/2 端口复用器(multiplexer)
ARC PS/2 support
CONFIG_SERIO_ARC_PS2
ARC FPGA 平台上的PS/2 控制器
Gameport support
CONFIG_GAMEPORT
15 针电脑游戏接口( Gameport).
Character devices
字符设备
Enable TTY
CONFIG_TTY
字符终端和串口都须要 TTY 的支持. "Y", 除非你知道本身在干什么.[ 提示] 你想在控制台上显示汉字? 试试 CJKTTY 补丁吧!
Virtual terminal
CONFIG_VT
虚拟终端能够在一个物理终端设备上虚拟出多个" 显示器+ 键盘" 的组合( 能够使用"Alt+Fn" 组合键在多个虚拟终端间切换). 除非是嵌入式系统, 不然必选"Y".
Enable character translations inconsole
CONFIG_CONSOLE_TRANSLATIONS
在虚拟控制台(console) 上支持字体映射和Unicode 转换. 建议选"Y".
Support for console on virtual terminal
CONFIG_VT_CONSOLE
内核默认将第一个虚拟终端(/dev/tty0) 用做系统控制台( 能够经过"console=tty3" 这样的参数去修改), 将诸如模块错误/ 内核错误/ 启动信息之类的警告信息发送到这里, 并且以单用户模式登陆时也须要使用这个控制台. 除非是嵌入式系统, 不然必选"Y".
Support for binding and unbinding consoledrivers
CONFIG_VT_HW_CONSOLE_BINDING
虚拟终端是经过控制台驱动程序与物理终端交互的, 但在某些系统上能够使用多个控制台驱动程序( framebuffer 控制台驱动程序), 该选项使得你能够选择其中之一. 若是你须要使用多个控制台驱动, 能够选"Y", 不肯定的选"N". 参见" Documentation/console/console.txt" " Documentation/fb/fbcon.txt" 获取更多细节.
Unix98 PTY support
CONFIG_UNIX98_PTYS
伪终端(PTY) 是指一个" 软件终端", 它是由slave( 等价于一个物理终端) master( 被一个诸如xterms 之类的进程用来读写slave 设备) 两部分组成的软设备. 须要使用telnet ssh 远程登陆者必选.
Support multiple instances ofdevpts
CONFIG_DEVPTS_MULTIPLE_INSTANCES
容许多个"devpts" 文件系统实例( 使用"-onewinstance" 挂载选项), 以容许相互隔离的PTY 命名空间( 好比在虚拟化容器中). 不肯定的选"N".
Legacy (BSD) PTY support
CONFIG_LEGACY_PTYS
使用过期的BSD 风格的/dev/ptyxx 做为master,/dev/ttyxx 做为slave, 这个方案有一些安全问题, "N".
Non-standard serial port support
CONFIG_SERIAL_NONSTANDARD
非标准串口支持. 这样的设备很是罕见, "N".
HSDPA Broadband Wireless Data Card - Globe Trotter
CONFIG_NOZOMI
一种PCMCIA 接口的 HSDPA(WCDMA)3G 无线上网卡
Multi-Tech multiport card support
CONFIG_ISI
Multi-Tech 公司生产的多端口卡( 拥有多个串口) 实验性支持. 不肯定的选"N".
HDLC line discipline support
CONFIG_N_HDLC
Microgate SyncLink. 不肯定的选"N".
GSM MUX line discipline support
CONFIG_N_GSM
GSM MUX( 多路复用器) 支持. 不肯定的选"N".
Trace data router for MIPI P1149.7 cJTAGstandard
CONFIG_TRACE_ROUTER
仅用于调试内含modem 设备的手机系统.
Trace data sink for MIPI P1149.7 cJTAG standard
CONFIG_TRACE_SINK
仅用于调试内含modem 设备的手机系统.
KCopy
内核Copy
Memory-to-memory copies using kernel assist
CONFIG_KCOPY
高性能的进程间内存复制( 能够减小一次向共享内存的复制动做). 主要用于高性能并行计算领域, 好比基于消息传递接口( MessagePassing Interface) 协议的开发的并行程序. 不肯定的选"N".
/dev/kmem virtual device support
CONFIG_DEVKMEM
"/dev/kmem" 虚拟设备是内核看到的虚拟内存的全镜像, 能够用来访问内核内存. 通常能够用来查看内核变量或者用做rootkit 之类(! 危险!). 仅供调试, 不肯定的选"N".
Serial drivers
串口(COM) 驱动. 串口在台式机主板上正在逐渐消亡, 而在笔记本和服务器上早就已经绝迹了. 大多数人应该将全部子项都选"N".
8250/16550 and compatible serial support
CONFIG_SERIAL_8250
这是标准串口 (COM) 驱动. 只要你想使用串口, 就必选此项. 不过, 大多数人应该选"N".
Support 8250_core.* kerneloptions
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS
"N".
8250/16550 PNP device support
CONFIG_SERIAL_8250_PNP
即插即用串口支持, 不肯定的选"Y".
Console on 8250/16550 and compatible serialport
CONFIG_SERIAL_8250_CONSOLE
将串口当作系统控制台( 接受全部内核消息, 单用户模式登陆) 使用( 须要使用"console=ttyS1" 参数). 仅在没有显示接口嵌入式设备上有用. 不肯定的选"N".
DMA support for 16550 compatible UARTcontrollers
CONFIG_SERIAL_8250_DMA
与标准8250/16650 兼容的通用异步收发传输器( UniversalAsynchronousReceiver/Transmitter) DMA 支持. 在嵌入式设计中,UART 用来主机与辅助设备通讯, 如汽车音响与外接AP 之间的通讯, PC 机通讯包括与监控调试器和其它器件( EEPROM) 通讯. 不肯定的选"Y".
8250/16550 PCI device support
CONFIG_SERIAL_8250_PCI
PCI 串口支持. "N" 表示仅支持传统的标准串口.
8250/16550 PCMCIA device support
CONFIG_SERIAL_8250_CS
16-bit PCMCIA 串口支持. "N" 表示仅支持传统的标准串口.
Maximum number of 8250/16550 serialports
CONFIG_SERIAL_8250_NR_UARTS
容许的最大串口数量, 保持默认值便可.
Number of 8250/16550 serial ports to register atruntime
CONFIG_SERIAL_8250_RUNTIME_UARTS
内核在启动时注册的串口数量( 能够经过"8250.nr_uarts" 参数修改), 保持默认便可.
Extended 8250/16550 serial driveroptions
CONFIG_SERIAL_8250_EXTENDED
非标准的串口驱动选项( 例如HUB6, 中断共享, 多端口, 超过4 COM ). 不肯定的选"N".
Support more than 4 legacy serialports
CONFIG_SERIAL_8250_MANY_PORTS
若是你的板子上有超过4 COM 接口就选"Y".
Support for sharing serialinterrupts
CONFIG_SERIAL_8250_SHARE_IRQ
有些板子上集成了共享IRQ 的硬件支持. 若是有就选"Y".
Autodetect IRQ on standard ports(unsafe)
CONFIG_SERIAL_8250_DETECT_IRQ
让内核去猜串口的IRQ . 不安全, "N".
Support RSA serial ports
CONFIG_SERIAL_8250_RSA
RSA 串口. 看不懂的选"N".
Support for Synopsys DesignWare 8250 quirks
CONFIG_SERIAL_8250_DW
Synopsys DesignWare APB UART 中非标准特性的支持.
Medfield High Speed UART support
CONFIG_SERIAL_MFD_HSU
Medfield Intel x86 为架构开发的SoC 手机芯片.
{ 此处被省略的都是非标准的串口设备, 按实际状况选择便可}
TTY driver to output user messages via printk
CONFIG_TTY_PRINTK
经过"/dev/ttyprintk" 设备使用printk 发送用户消息. 用于在内核中嵌入用户消息. 不肯定的选"N".
Parallel printer support
CONFIG_PRINTER
并口打印机
Support for user-space parallel port device drivers
CONFIG_PPDEV
用户空间的原始并口设备(/dev/parportN) 支持, 这样用户空间的程序就能够用原始模式直接访问并口( 至关于并口版本的CONFIG_CHR_DEV_SG). 并口打印机/CD-ROM/ 硬盘都不依赖于此项, 因此大部分人能够关闭该选项.
Xen Hypervisor Console support
CONFIG_HVC_XEN
XEN 虚拟控制台设备驱动
Xen Hypervisor Multiple Consoles support
CONFIG_HVC_XEN_FRONTEND
若是你须要多个虚拟控制台, 能够选"Y".
Virtio console
CONFIG_VIRTIO_CONSOLE
Virtio 虚拟控制台设备驱动. 此外, 该驱动还能够做为普通的串口设备(/dev/vportNpX), 用于客户机和宿主机之间的通讯. Virtio 的目标是为各类半虚拟化的虚拟机管理程序( 特别是 KVM) 提供一组通用的模拟设备.
IPMI top-level message handler
CONFIG_IPMI_HANDLER
智能平台管理接口( IntelligentPlatform Management Interface) 是标准的传感器( 温度, 电压, 风扇, 电源, 机箱入侵) 管理规范.IPMI 的核心是专用的基板管理控制器(BMC) 硬件,BMC 并不依赖于服务器的CPU/BIOS/OS, 是一个独立在系统内运行的管理子系统, 只要有BMC IPMI 固件即可工做.BMC 一般是一个安装在服务器主板上的独立的板卡( 也有少数服务器主板内置).IPMI 良好的独立特性便克服了以往基于操做系统的管理方式所受的限制, 例如操做系统不响应或未加载的状况下, 仍然能够进行开关机等操做. 更多详情参见" Documentation/IPMI.txt" 文档. 此项技术主要用于服务器领域, 我的PC 和笔记本上是没有的.
Generate a panic event to all BMCs on apanic
CONFIG_IPMI_PANIC_EVENT
当内核panic( 发生紧急状况) ,IPMI 消息处理器将会向每个已注册的底板管理控制器(BMC) 接口生成一个描述该panic IPMI 事件, 这些事件能够引起日志记录/ 报警/ 重启/ 关机等动做.
Generate OEM events containing the panicstring
CONFIG_IPMI_PANIC_STRING
当发生紧急状况(panic) ,IPMI 消息处理器将会产生OEM 类型(f0) 的事件
Device interface for IPMI
CONFIG_IPMI_DEVICE_INTERFACE
IPMI 消息处理器提供一个IOCTL 接口以便用户空间进程也能够使用IPMI, 目前支持poll() select()
IPMI System Interface handler
CONFIG_IPMI_SI
向系统提供接口(KCS,SMIC), 建议选"Y".
IPMI Watchdog Timer
CONFIG_IPMI_WATCHDOG
启用IPMIWatchdog 定时器. 若是硬件有这种功能, 推荐选"Y".
IPMI Poweroff
CONFIG_IPMI_POWEROFF
容许经过IPMI 消息处理器关闭机器
Hardware Random Number Generator Core support
CONFIG_HW_RANDOM
硬件随机数发生器设备(/dev/hw_random) 支持. 此设备并不会直接向内核的随机数发生器填充( 这是" rngd" 守护进程的职责). 详情参见" Documentation/hw_random.txt" 文档. 不肯定的选"Y".
Timer IOMEM HW Random Number Generatorsupport
CONFIG_HW_RANDOM_TIMERIOMEM
Technologic Systems TS-7800 单板计算机, 这是一个嵌入式设备.
Intel HW Random Number Generator support
CONFIG_HW_RANDOM_INTEL
Intel 基于i8xx 芯片组的硬件随机数发生器
AMD HW Random Number Generator support
CONFIG_HW_RANDOM_AMD
AMD 基于76x 芯片组的硬件随机数发生器
Atmel Random Number Generator support
CONFIG_HW_RANDOM_ATMEL
Atmel AT91 硬件随机数发生器
VIA HW Random Number Generator support
CONFIG_HW_RANDOM_VIA
VIA 芯片组的硬件随机数发生器
VirtIO Random Number Generator support
CONFIG_HW_RANDOM_VIRTIO
Virtio 虚拟的硬件随机数发生器
EXYNOS HW random number generator support
CONFIG_HW_RANDOM_EXYNOS
基于 EXYNOS SOC 嵌入式系统上的硬件随机数发生器
TPM HW Random Number Generator support
CONFIG_HW_RANDOM_TPM
可信赖平台模块( TrustedPlatform Module) 提供的硬件随机数发生器
/dev/nvram support
CONFIG_NVRAM
直接存取主板上"CMOSRAM" 的接口, 太危险! 建议选"N".
Siemens R3964 line discipline
CONFIG_R3964
与使用西门子R3964 协议的设备同步通讯, 除非你有一些诸如PLC 之类的特殊设备, 不然别选
Applicom intelligent fieldbus card support
CONFIG_APPLICOM
Applicom international 公司生产的用于现场总线(fieldbus) 的链接卡. 不肯定的选"N".
PCMCIA character devices
PCMCIA 接口的字符设备
ACP Modem (Mwave) support
CONFIG_MWAVE
IBM Thinkpad 上的一种软猫, 古董产品
RAW driver (/dev/raw/rawN)
CONFIG_RAW_DRIVER
裸设备含义是将一个原始块设备( 能够是一整块磁盘, 也能够是一个分区) 当作一个线性的字节流来访问. 它是一种没有通过格式化, 不通过操做系统缓存, 也不能经过文件系统来访问的特殊字符设备. FreeBSD 不一样,Linux 反对使用裸设备, 且被列入了废除计划( 建议的作法是使用"O_DIRECT" 标志打开对应的块设备文件, 例如"/dev/hda1"). 不肯定的选"N".
HPET - High Precision Event Timer
CONFIG_HPET
高精度事件定时器( HPETTimer), 又被称为"MultimediaTimer", 是一种取代传统"ACPITimer"(CONFIG_X86_PM_TIMER) 的硬件时钟发生器, 提供14.31818MHz 固定频率.2007 年之后的芯片组通常都支持( 的主板还须要在BIOS 里面明确开启HPET 支持), 建议开启.
Allow mmap of HPET
CONFIG_HPET_MMAP
容许对HPET 寄存器进行映射. 可是某些包含HPET 硬件寄存器的页中同时还含有其余不应暴露给用户的信息, 在此种状况下, 须要选"N".
Hangcheck timer
CONFIG_HANGCHECK_TIMER
宕机检测定时器周期性地检查系统任务调度程序以肯定系统的运行情况, 若是超过阈值, 计算机将从新启动. 不肯定的选"N".
TPM Hardware Support
CONFIG_TCG_TPM
基于硬件的可信赖平台模块( TrustedPlatformModule), 它其实是一个含有密码运算部件和存储部件的小芯片上的系统, CPU, 存储器,I/O, 密码运算器, 随机数产生器和嵌入式操做系统等部件组成. 使用此功能须要 TrouSerS 工具的帮助.
TPM Interface Specification 1.2 Interface
CONFIG_TCG_TIS
TCG TIS 1.2 TPM 规范支持
TPM Interface Specification 1.2 Interface (I2C -Infineon)
CONFIG_TCG_TIS_I2C_INFINEON
仅须要对Infineon TPM 设备选"Y".
National Semiconductor TPM Interface
CONFIG_TCG_NSC
仅须要对National TPM 设备选"Y".
Atmel TPM Interface
CONFIG_TCG_ATMEL
仅须要对Atmel TPM 设备选"Y".
Infineon Technologies TPM Interface
CONFIG_TCG_INFINEON
仅须要对Infineon TPM 设备(SLD9630 TT 1.1 SLB 9635 TT 1.2) "Y". 此驱动支持的硬件列表.
STMicroelectronics ST33 I2C TPM
CONFIG_TCG_ST33_I2C
意法半导体(STMicroelectronics) 出品的I2C 总线的TPM 安全芯片.
Telecom clock driver for ATCA SBC
CONFIG_TELCLOCK
没见过这种硬件, "N".
I2C support
CONFIG_I2C
I2C SMBus 支持.I2C( 读着"I-squared-C") 是用于单片机( 又称" 微控制器") 的低速串行总线协议, 它为微控制器(Microcontroller) 与各类不一样的低速设备通讯提供了一种廉价的总线( 由于只须要使用两个引脚, 称为"2 线"), 所以普遍的应用于嵌入式环境. SMBus(SystemManagement Bus) 差很少至关因而I2C 的子集, 经常使用于硬件监控( 电压/ 风扇转速/ 温度/ 电池等) 以及内存模块的配置( 使用I2CEEPROM), 所以全部PC 主板都依赖于SMBus 协议. 系统硬件监控工具 lm_sensors i2c-tools 依赖于此模块, 硬件传感器和"VideoForLinux" 也须要该模块的支持. 详情参见" Documentation/i2c/summary" 文档及整个"i2c" 文件夹. 不肯定的选"Y".
Enable compatibility bits for old user-space
CONFIG_I2C_COMPAT
为了与lm-sensors 3.1.2 以前的版本兼容而设置. 某些2011 年以前版本的i2c 相关程序也须要此兼容性.
I2C device interface
CONFIG_I2C_CHARDEV
I2C 设备一般都是由内核控制的, 但此选项能够向用户空间提供I2C 设备接口, 以容许用户空间的程序经过/dev/i2c-* 字符设备文件使用I2C 总线. 详情参见" Documentation/i2c/dev-interface" 文档. 不肯定的选"N".
I2C bus multiplexing support
CONFIG_I2C_MUX
多路复用I2C 总线支持. 不肯定的选"N".
Multiplexer I2C Chip support
I2C 多路复用芯片, 其下的子项按实际状况选择就OK
Autoselect pertinent helper modules
CONFIG_I2C_HELPER_AUTO
有一些I2C 驱动程序须要"I2Calgorithm" 的帮助才能工做. "I2C 算法" 本质上是I2C 接口的纯软件抽象. 开启此项后, 若有须要, 则会自动选上这些算法, 而无需你再手动选择. 推荐选"Y". 仅在你想使用额外的算法时, 才选"N".
SMBus-specific protocols
CONFIG_I2C_SMBUS
SMBus 特有的扩展支持. 目前惟一实际支持的扩展是SMBus 报警协议. 建议选"Y".
I2C Algorithms
I2C 算法, 子项能够全不选, 如有其余部分依赖其子项时, 会自动选上
I2C Hardware Bus support
I2C 硬件支持
*** PC SMBus host controller drivers ***
这部分按照主板芯片组的实际状况选择就OK
SMBus Control Method Interface
CONFIG_I2C_SCMI
SMBus控制方法接口(ControlMethodInterface) SMBus ACPI 接口. 用于在ACPI 环境中使用SMBus 设备. 不肯定的选"M"(i2c-scmi).
{ 其他被省略的都是用于嵌入式系统或者额外的I2C/SMBus 扩展卡, 按实际状况选择便可}
I2C/SMBus Test Stub
CONFIG_I2C_STUB
用于帮助开发SMBusclient 驱动( 特别是某些传感器芯片). 详情参见" Documentation/i2c/i2c-stub" 文档. 不肯定的选"N".
I2C Core debugging messages
CONFIG_I2C_DEBUG_CORE
向系统日志中传递大量的I2CCore 调试信息. 仅用于调试I2C 设备故障
I2C Algorithm debugging messages
CONFIG_I2C_DEBUG_ALGO
向系统日志中传递大量的I2CAlgorithm 调试信息. 仅用于调试I2C 设备故障
I2C Bus debugging messages
CONFIG_I2C_DEBUG_BUS
向系统日志中传递大量的I2CBus 调试信息. 仅用于调试I2C 设备故障
SPI support
CONFIG_SPI
串行外设接口(SerialPeripheral Interface) 是一种标准的四线同步双向串行总线. SPI相似于 I2C, 但比I2C "2 线" 稍微复杂一些,SPI 须要4 个引脚("4 线"), 不但传输速率比I2C 更高, 还能实现全双工通讯. 大多数SPI 设备不支持动态设备检, 有些甚至是只读或者只写的.SPI 经常使用于微控制器(Microcontroller) 与外围设备(RTC, 传感器,EEPROM,FLASH, / 码器, 模数转换器, 数字信号处理器) 之间的通讯,MMC SD 卡也能够经过SPI 协议访问, MMC 接口的DataFlash 卡则必须经过SPI 才能访. 仅用于嵌入式环境,PC 平台上没有这样的设备.
Qualcomm MSM SSBI bus support
CONFIG_SSBI
高通 (Qualcomm)骁龙系列智能手机处理器内嵌的单线串行总线接口(Single-wireSerial Bus Interface)
HSI support
CONFIG_HSI
高速同步串行接口( Highspeed synchronous Serial Interface) 是移动产业处理器接口( MIPI) 联盟的高速同步接口工做组发布的一项技术规范.MIPI(MobileIndustry ProcessorInterface) 2003 年由ARM,Nokia,ST,TI 等公司成立的一个联盟, 目的是把手机内部的接口( 如摄像头, 显示屏接口, 射频/ 基带接口等) 标准化, 从而减小手机设计的复杂程度和增长设计灵活性.MIPI 联盟下面有不一样的工做组, 分别定义了一系列的手机内部接口标准, 好比摄像头接口CSI, 显示接口DSI, 射频接口DigRF, 麦克风/ 扬声器接口SLIMbus . 统一接口标准的好处是手机厂商根据须要能够从市面上灵活选择不一样的芯片和模组, 更改设计和功能时更加快捷方便. 目前,MIPI 联盟的董事成员包括英特尔, 摩托罗拉, 诺基亚, 三星, 意法半导体, 德州仪器.
PPS support
CONFIG_PPS
秒脉冲(PulsePer Second) GPS 天线的一项功能, 用于获取GPS 卫星的授时.PPS 的精度能够到纳秒级, 并且没有累积偏差.
PTP clock support
CONFIG_PTP_1588_CLOCK
精密时间协议( PrecisionTime Protocol) IEEE1588 义的一种基于以太网的高精度时间同步协议.PTP 采用硬件与软件结合设计, 能够提供比纯软件方式的NTP( 网络时间协议) 高的多的精度( 微秒级). GPS 授时相比, 在提供和GPS 相同的精度状况下,PTP 不须要为每一个设备安装GPS 那样昂贵的组件, 只须要一个高精度的本地时钟和提供高精度时钟戳的部, 成本较低. 通常的PC 和服务器上没有PTP 硬件.
GPIO Support
CONFIG_GPIOLIB
每一个芯片都会有至少一个引脚(PIN), CPU 或者芯片组这种复杂的芯片, 其引脚会有成白上千个, 这些PIN 就是芯片与外部沟通的渠道, 每一个PIN 都会有它特定的功能. GPIO( GeneralPurpose I/O) 就是芯片上的一种通用功能的引脚, 其功能可由使用者经过编程的方式自定义( 所谓" 可编程引脚"), 好比使用两条PIN 就能够组成I2C, 使用4 PIN 能够组成SPI. 嵌入式系统常常须要控制结构简单但数量众多的外部设备( 好比LED 的亮与灭), 使用传统的串口或者并口就太" 大炮打蚊子", GPIO 很是适合用于控制此类数量众多的简单设备.GPIO 在嵌入式设备中使用普遍, PC 平台的芯片组大多也集成有GPIO 引脚. 详情参见" Documentation/gpio.txt" 文档.
Debug GPIO calls
CONFIG_DEBUG_GPIO
仅供调试使用
/sys/class/gpio/... (sysfs interface)
CONFIG_GPIO_SYSFS
GPIO 设备添加sysfs 接口. 主要用于调试和问题排查. 不肯定的选"N".
Generic memory-mapped GPIO controller support (MMIO platformdevice)
CONFIG_GPIO_GENERIC_PLATFORM
这是最简单的GPIO 控制器驱动( platform总线驱动), 仅支持单独一个"data" 寄存器, 用于读/ GPIO 的状态. 不肯定的选"Y".
{ 这里被省略的部分, 按主板上实际集成的芯片选择便可}
Dallas's 1-wire support
CONFIG_W1
Dallas 公司发明的单总线是比I2C 更简单的总线, 仅使用一个引脚(1-wire), 使用Master-Slave 结构, 用于链接慢速的单引脚设备, 好比 iButton 和热传感器. 主要用于嵌入式系统.
Power supply class support
CONFIG_POWER_SUPPLY
容许用户空间程序经过sysfs/uevent 接口对电源( 电池, 交流电,USB) 进行监控. 建议选"Y".
Power supply debug
CONFIG_POWER_SUPPLY_DEBUG
仅供调试使用
Generic PDA/phone power driver
CONFIG_PDA_POWER
通用的PDA/phone 电源切换驱动. 用于在内部电池和外部电源(AC/USB) 之间进行切换.
Generic battery support using IIO
CONFIG_GENERIC_ADC_BATTERY
为使用IIO 总线(CONFIG_IIO) 的电池提供的通用驱动
Test power driver
CONFIG_TEST_POWER
仅供测试使用
SBS Compliant gas gauge
CONFIG_BATTERY_SBS
智能电池系统( SmartBattery System) 规范兼容的气压计( 集成在电池组中) 支持.
GPIO charger
CONFIG_CHARGER_GPIO
支持充电器经过GPIO 引脚报告其在线状态.
Board level reset or power off
CONFIG_POWER_RESET
容许经过操做板载的主电源, 关闭或重启整个系统.
{ 这里被省略的部分, 按实际电池控制芯片选择便可}
Adaptive Voltage Scaling class support
CONFIG_POWER_AVS
自适应电压调节(AdaptiveVoltageScaling) 技术可以动态的对设备工做电压进行精细的调整, 拥有比 DVFS 更佳的电力利用效率, 是一种下降功耗与优化性能并举的电源与性能管理技术.AVS OMAP 设备上也被称为" SmartReflex". 目前仅用于嵌入式领域.
Hardware Monitoring support
CONFIG_HWMON
当前主板大多都有一个监控硬件温度/ 电压/ 风扇转速等情况的设备, 请按照主板实际使用的芯片选择相应的子项. 若是你不知道究竟须要使用哪一个驱动, 能够使用 Superiotool sensors-detect 工具进行检测. 另外, 该功能还须要CONFIG_I2C 的支持. 更多详情参见" Documentation/hwmon/userspace-tools" 文档.
Hardware Monitoring Chip debugging messages
CONFIG_HWMON_DEBUG_CHIP
在系统日志中输出大量的I2C 调试信息, 仅用于故障调试
{ 被省略的部分, 按实际的硬件监控芯片选择便可}
GPIO fan
CONFIG_SENSORS_GPIO_FAN
链接在GPIO 引脚上的风扇
PMBus support
CONFIG_PMBUS
电源管理总线(PowerManagementBus) 是一种基于SMBus(CONFIG_I2C) 的开放标准的数字电源管理协议, 能够用于配置/ 监控/ 操做电源变换器, 目前全球有超过 40 IC厂商提供知足 PMBus标准的产品. 最新的 PMBus+1.3 标准增长AVS(CONFIG_POWER_AVS) 支持, 能够动态控制设备的工做电压. 根据你的实际硬件情况选择子项.
ACPI 4.0 power meter
CONFIG_SENSORS_ACPI_POWER
ACPI4.0(2009 6 月发布) 中定义的瓦特表( 用于测量功耗) 当作硬件监控设备导出到用户空间. 须要固件支持ACPI4.0 规范, 而且有一个瓦特表. 不肯定的选"N".
ASUS ATK0110
CONFIG_SENSORS_ATK0110
许多华硕主板都有这种ACPI 硬件监控接口. 此驱动能够经过主板固件读取风扇/ 电压/ 温度信息.
Generic Thermal sysfs driver
CONFIG_THERMAL
ACPI 规范中定义的"thermal"( ) 提供一个通用的sysfs 接口, 以方便与诸如温度传感器和风扇之类的设备通讯. 因为目前全部PC 和服务器都已支持ACPI, 而且发热控制也愈来愈重要, 因此建议选"Y". 详情参见" Documentation/thermal/sysfs-api.txt" 文档.
Default Thermal governor
选择默认的热调节器, 建议选"step_wise".
Fair-share thermal governor
CONFIG_THERMAL_GOV_FAIR_SHARE
此调节器根据设备对所属区域的" 贡献"(contribution) 进行调节.
Step_wise thermal governor
CONFIG_THERMAL_GOV_STEP_WISE
此调节器以线性方式进行调节, 也就是每次调节都只在紧邻的两档之间进行切换.
User_space thermal governor
CONFIG_THERMAL_GOV_USER_SPACE
此调节器让用户空间程序去决定如何调节
generic cpu cooling support
CONFIG_CPU_THERMAL
通用的CPU 降温机制( 经过下降频率来实现, 而不是经过ACPI 接口). 显然经过ACPI 接口是更好的机制, 因此建议选"N".
Thermal emulation mode support
CONFIG_THERMAL_EMULATION
"Thermal" 模拟. 仅供调试使用, 切勿用于生产系统!!
Intel PowerClamp idle injection driver
CONFIG_INTEL_POWERCLAMP
Intel PowerClamp "idle" 指令注入驱动. 仅供调试使用.
Watchdog Timer Support
CONFIG_WATCHDOG
"Y" 并选中下面相应的驱动以后, 再建立一个主/ 次设备号为10/130 的字符设备"/dev/watchdog", 便可拥有一只看门狗. 其工做原理是: /dev/watchdog 设备被打开后, 若是喂狗守护进程超过60 秒没有喂狗( 写入"/dev/watchdog"), 那么底层的看门狗硬件将会触发整个机器硬重启( 至关于按下面板上的"RESET" 按钮). 这对于提升服务器的在线率来讲意义重大. 详情参见" Documentation/watchdog/watchdog-api.txt" 文档.
WatchDog Timer Driver Core
CONFIG_WATCHDOG_CORE
看门狗核心驱动, 它为全部特定于具体硬件的看门狗驱动提供了统一的框架和"/dev/watchdog" 接口( 将来还会包括sysfs 接口). 使用看门狗的必选.
Disable watchdog shutdown on close
CONFIG_WATCHDOG_NOWAYOUT
默认状况下( 此项="N") 若是喂狗进程关闭"/dev/watchdog" 文件, 那么表示中止看门狗功能. 开启此项后, 看门狗一旦启用就不能被中止( 即便关闭"/dev/watchdog" 文件也不会中止).
Software watchdog
CONFIG_SOFT_WATCHDOG
内核提供的" 软看门狗". 使用它不须要有任何硬件的支持, 但可靠性不如硬件看门狗, 仅能应对喂狗进程的崩溃, 不能应对内核自己的崩溃. 在某些状况下( 例如Oracle 数据库),CONFIG_HANGCHECK_TIMER 是比" 软看门狗" 更好的选择.
{ 此处省略的看门狗硬件请按照实际使用的芯片进行选择}
Sonics Silicon Backplane support
CONFIG_SSB
SSB(Sonics Silicon Backplane) 是一种仅在嵌入式环境中使用的总线.
Broadcom specific AMBA
CONFIG_BCMA
Broadcom 特有的 AMBA(AdvancedMicrocontroller Bus Architecture) 总线支持. 仅用于嵌入式环境
Multifunction device drivers
MFD( 多功能设备) 的含义是" 在单个芯片上集成多个功能(GPIO, 触摸屏, 键盘, 电流调节, 电源管理...)". 此种芯片一般经过一个或多个IRQ 线和低速数据总线(SPI/I2C/GPIO) 与主CPU 行通讯. 对于主系统来讲, 它们经过数据总线显示为一个单独的MFD 设备. 但透过MFD 框架, 又能够拥有多个相互独立的子设备( 子功能).MFD