天天看點

Linux-4.4-x86_64 核心配置選項簡介(詳細說明篇)

Linux-4.4-x86_64 核心配置選項簡介

作者:金步國

64-bit kernel

CONFIG_64BIT

編譯64位核心.本文僅講述x86_64(AMD64)平台的核心編譯,是以這個是必選項.

General setup

正常設定

Cross-compiler tool prefix

CONFIG_CROSS_COMPILE

交叉編譯工具字首(比如"arm-linux-"相當于使用"make CROSS_COMPILE=arm-linux-"進行編譯).除非你想配置後預設自動進行交叉編譯,否則不要使用此選項.

Compile also drivers which will not load

CONFIG_COMPILE_TEST

顯示專屬于其他平台(非x86平台)的驅動選項(需要交叉編譯),僅供驅動開發者使用,普通的發行版制作者應該選"N".

Local version - append to kernel release

CONFIG_LOCALVERSION

在核心版本後面加上自定義的版本字元串(最大64字元),可以用"uname -a"指令看到

Automatically append version information to the version string

CONFIG_LOCALVERSION_AUTO

自動在版本字元串(CONFIG_LOCALVERSION)後面添加版本資訊(類似"-gxxxxxxxx"格式),需要有perl以及git倉庫支援
Kernel compression mode
核心鏡像的壓縮格式,可選Gzip/Bzip2/LZMA/XZ/LZO格式之一,推薦使用XZ格式.你的系統中需要有相應的壓縮工具.

Default hostname

CONFIG_DEFAULT_HOSTNAME

設定預設主機名,預設值是"(none)".使用者可以随後使用系統調用sethostname()來修改主機名.

Support for paging of anonymous memory (swap)

CONFIG_SWAP

使用交換分區或者交換檔案來做為虛拟記憶體

System V IPC

CONFIG_SYSVIPC

System V 程序間通信(IPC)支援,用于程序間同步和交換資料,許多程式需要這個功能.選"Y",除非你确實知道自己在做什麼

POSIX Message Queues

CONFIG_POSIX_MQUEUE

POSIX消息隊列是POSIX IPC的一部分,如果你想編譯和運作那些使用"mq_*"系統調用的程式(比如為Solaris開發的程式),或者需要使用Docker容器,就必須開啟此選項.POSIX消息隊列可以作為"mqueue"檔案系統挂載以友善使用者對隊列進行操作.不确定的選"Y".

open by fhandle syscalls

CONFIG_FHANDLE

使用者程式可以使用句柄(而非檔案名)來追蹤檔案(使用open_by_handle_at(2)/name_to_handle_at(2)系統調用),即使某檔案被重命名,使用者程式依然可定位那個檔案.此特性有助于實作使用者空間檔案伺服器(userspace file server).建議選"Y",因為systemd和udev依賴于它.

uselib syscall

CONFIG_USELIB

啟用老舊的uselib()系統接口支援,僅在你需要使用基于libc5的古董級程式時才需要,不确定的選"N".

Auditing support

CONFIG_AUDIT

核心審計(跟蹤每個程序的活動情況)支援,某些安全相關的核心子系統(例如SELinux)需要它.但是它會與systemd沖突,是以在使用systemd的系統上必須關閉.

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 via debugfs

CONFIG_IRQ_DOMAIN_DEBUG

通過debugfs中的irq_domain_mapping檔案向使用者顯示硬體IRQ号/Linux IRQ号之間的對應關系.僅用于開發調試.

Support sparse irq numbering

CONFIG_SPARSE_IRQ

稀疏IRQ号支援.它允許在小型裝置上(例如嵌入式裝置)定義一個很高的CONFIG_NR_CPUS值,但仍然不希望占用太多核心"memory footprint"(一段可以被操作或被管理的記憶體區域)的場合.稀疏IRQ也更适合NUMA平台,因為它以一種對NUMA更友好的方式分發中斷描述符.不确定的選"N".
Timers subsystem
Linux核心時鐘子系統
Timer tick handling
核心時鐘滴答處理程式,更多資訊可以參考核心源碼樹下的"Documentation/timers/NO_HZ.txt"檔案

Periodic timer ticks (constant rate, no dynticks)

CONFIG_HZ_PERIODIC

無論CPU是否需要,都強制按照固定頻率不斷觸發時鐘中斷.這是最耗電的方式,不推薦使用

Idle dynticks system (tickless idle)

CONFIG_NO_HZ_IDLE

CPU在空閑狀态時不産生不必要的時鐘中斷,以使處理器能夠在較低能耗狀态下運作以節約電力,适合于大多數場合

Full dynticks system (tickless)

CONFIG_NO_HZ_FULL

完全無滴嗒:即使CPU在忙碌狀态也盡可能關閉所有時鐘中斷,适用于CPU在同一時間僅運作一個任務,或者使用者空間程式極少與核心互動的場合.即使開啟此選項,也需要額外設定"nohz_full=?"核心指令行參數才能真正生效.

Full dynticks system on all CPUs by default

CONFIG_NO_HZ_FULL_ALL

即使沒有設定"nohz_full"引導參數,也預設對所有CPU(boot CPU 除外)開啟完全無滴答特性.

Old Idle dynticks config

CONFIG_NO_HZ

等價于CONFIG_NO_HZ_IDLE,臨時用來相容老版本核心選項,未來會被删除.

High Resolution Timer Support

CONFIG_HIGH_RES_TIMERS

高精度定時器(hrtimer)是從2.6.16開始引入,用于取代傳統timer wheel(基于jiffies定時器)的時鐘子系統.可以降低與核心其他子產品的耦合性,還可以提供比1毫秒更高的精度(因為它可以讀取HPET/TSC等新型硬體時鐘源),可以更好的支援音視訊等對時間精度要求較高的應用.建議選"Y".[提示]這裡說的"定時器"是指"軟體定時器",而不是主機闆或CPU上內建的硬體時鐘發生器(ACPI PM Timer/HPET Timer/TSC Timer).
CPU/Task time and stats accounting
CPU/程序的時間及狀态統計
Cputime accounting
CPU時間統計方式

Simple tick based cputime accounting

CONFIG_TICK_CPU_ACCOUNTING

簡單的基于滴答的統計,适用于大多數場合

Deterministic task and CPU time accounting

CONFIG_VIRT_CPU_ACCOUNTING_NATIVE

通過讀取CPU計數器進行統計,可以提供更精确的統計,但是對性能有一些不利影響.

Full dynticks CPU time accounting

CONFIG_VIRT_CPU_ACCOUNTING_GEN

利用上下文跟蹤子系統,通過觀察每一個核心與使用者空間的邊界進行統計.該選項對性能有顯著的不良影響,目前僅用于完全無滴答子系統(CONFIG_NO_HZ_FULL)的調試

Fine granularity task level IRQ time accounting

CONFIG_IRQ_TIME_ACCOUNTING

通過讀取TSC時間戳進行統計,這是統計程序IRQ時間的更細粒度的統計方式,但對性能有些不良影響(特别是在RDTSC指令速度較慢的CPU上).

BSD Process Accounting

CONFIG_BSD_PROCESS_ACCT

BSD程序記賬支援.使用者空間程式可以要求核心将程序的統計資訊寫入一個指定的檔案,主要包括程序的建立時間/建立者/記憶體占用等資訊.不确定的選"N".

BSD Process Accounting version 3 file format

CONFIG_BSD_PROCESS_ACCT_V3

使用新的v3版檔案格式,可以包含每個程序的PID和其父程序的PID,但是不相容老版本的檔案格式.比如 GNU Accounting Utilities 這樣的工具可以識别v3格式

Export task/process statistics through netlink

CONFIG_TASKSTATS

通過netlink接口向使用者空間導出程序的統計資訊,與 BSD Process Accounting 的不同之處在于這些統計資訊在整個程序生存期都是可用的.

Enable per-task delay accounting

CONFIG_TASK_DELAY_ACCT

在統計資訊中包含程序等候系統資源(cpu,IO同步,記憶體交換等)所花費的時間

Enable extended accounting over taskstats

CONFIG_TASK_XACCT

在統計資訊中包含程序的更多擴充資訊.不确定的選"N".

Enable per-task storage I/O accounting

CONFIG_TASK_IO_ACCOUNTING

在統計資訊中包含程序在儲存設備上的I/O位元組數.
RCU Subsystem
RCU(Read-Copy Update)子系統.它允許程式檢視到正在被修改/更新的檔案.在讀多寫少的情況下,這是一個高性能的鎖機制,對于被RCU保護的共享資料結構,讀者不需要獲得任何鎖就可以通路它(速度非常快),但寫者在通路它時首先拷貝一個副本,然後對副本進行修改,最後使用一個回調機制在适當的時機把指向原來資料的指針重新指向新的被修改的資料,速度非常慢.RCU隻适用于讀多寫少的情況:如網絡路由表的查詢更新,裝置狀态表的維護,資料結構的延遲釋放以及多徑I/O裝置的維護等.
RCU Implementation
RCU的實作方式

Tree-based hierarchical RCU

CONFIG_TREE_RCU

基于樹型分層結構的實作.最适用于多CPU的非實時系統.

Preemptible tree-based hierarchical RCU

CONFIG_TREE_PREEMPT_RCU

搶占式基于樹型分層結構的實作.最适用于那些要求快速響應的多CPU實時系統.

UP-only small-memory-footprint RCU

CONFIG_TINY_RCU

最簡單的實作,能夠大幅降低RCU系統的記憶體占用.最适用于單CPU的非實時系統.

Preemptible UP-only small-memory-footprint RCU

CONFIG_TINY_PREEMPT_RCU

搶占式簡單實作,能夠大幅降低RCU系統的記憶體占用.最适用于那些要求快速響應的單CPU實時系統.

Consider userspace as in RCU extended quiescent state

CONFIG_RCU_USER_QS

在核心和使用者邊界設定鈎子函數,将運作在使用者态的CPU從全局RCU狀态機制中移除,這樣就不會在RCU系統中維護此CPU的時鐘滴答.除非你想要幫助開發CONFIG_NO_HZ_FULL子產品,否則不要打開此選項,而且它還會對性能有不利影響.

Force context tracking

CONFIG_CONTEXT_TRACKING_FORCE

預設在核心和使用者邊界進行探測(上下文跟蹤),以便測試依賴于此特性的各種功能(比如使用者空間的 RCU extended quiescent state),這個特性目前僅用于調試目的,未來也許會用于為CONFIG_NO_HZ_FULL子產品提供支援

Tree-based hierarchical RCU fanout value

CONFIG_RCU_FANOUT

這個選項控制着樹形RCU層次結構的端點數(fanout),以允許RCU子系統在擁有海量CPU的系統上高效工作.這個值必須至少等于CONFIG_NR_CPUS的1/4次方(4次根号).生産系統上應該使用預設值(64).僅在你想調試RCU子系統時才需要減小此值.

Tree-based hierarchical RCU leaf-level fanout value

CONFIG_RCU_FANOUT_LEAF

這個選項控制着樹形RCU層次結構的葉子層的端點數(leaf-level fanout).對于期望擁有更高能耗比(更節能)的系統,請保持其預設值(16).對于擁有成千上萬個CPU的系統來說,應該考慮将其設為最大值(CONFIG_RCU_FANOUT).

Disable tree-based hierarchical RCU auto-balancing

CONFIG_RCU_FANOUT_EXACT

強制按照CONFIG_RCU_FANOUT_LEAF的值,而不是使用自動平衡樹結構來實作RCU子系統.目前僅用于調試目的.未來也許會用于增強NUMA系統的性能.

Accelerate last non-dyntick-idle CPU\'s grace periods

CONFIG_RCU_FAST_NO_HZ

即使CPU還在忙碌,也允許進入dynticks-idle狀态,并且阻止RCU每4個滴答就喚醒一次該CPU,這樣能夠更有效的使用電力,同時也拉長了RCU grace period的時間,造成性能降低.如果能耗比對你而言非常重要(你想節省每一分電力),并且你不在乎系統性能的降低(CPU喚醒時間增加),可以開啟此選項.桌上型電腦和伺服器建議關閉此選項.

Enable RCU priority boosting

CONFIG_RCU_BOOST

允許提升RCU子系統的實時優先級(包括讀操作與寫操作),以避免RCU操作被阻塞太長時間.如果系統的CPU負載經常很重,或者你需要快速的實時響應系統,那麼就選"Y",否則應該選"N".

Real-time priority to boost RCU readers to

CONFIG_RCU_BOOST_PRIO

允許提升被長時間搶占(阻塞)的RCU讀操作的實時優先級到什麼程度.取值範圍是[1,99].預設值"1"适用于實時應用程式中不包含CPU密集型(CPU-bound)線程的正常場合(例如大多數桌面系統).但是如果你的實時應用程式擁有一個或多個CPU密集型線程,那麼可能需要增加這個值,具體可以參考核心幫助的說明.僅在你确實了解了的情況下再改變預設值.

Milliseconds to delay boosting after RCU grace-period start

CONFIG_RCU_BOOST_DELAY

在提升RCU讀操作的優先級之前,允許有多長時間潛伏期(阻塞),取值範圍是[0,3000],機關是毫秒,預設值是"500".不确定的請使用預設值.

Offload RCU callback processing from boot-selected CPUs

CONFIG_RCU_NOCB_CPU

如果你想幫助調試核心可以開啟,否則請關閉.
Build-forced no-CBs CPUs
在開啟CONFIG_RCU_NOCB_CPU選項的情況下,指定哪些CPU是No-CB CPU,相當于預先設定"rcu_nocbs="核心引導參數.

Kernel .config support

CONFIG_IKCONFIG

把核心的配置資訊編譯進核心中,以後可以通過scripts/extract-ikconfig腳本從核心鏡像中提取這些資訊

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

CONFIG_IKCONFIG_PROC

允許通過 /proc/config.gz 檔案通路核心的配置資訊

Kernel log buffer size

CONFIG_LOG_BUF_SHIFT

設定核心日志緩沖區的最小尺寸(合理的設定應該等于CONFIG_LOG_CPU_MAX_BUF_SHIFT*最大CPU數量): 12(最小值)=4KB,...,16=64KB,17=128KB,18=256KB,...,25(最大值)

CPU kernel log buffer size contribution

CONFIG_LOG_CPU_MAX_BUF_SHIFT

每個CPU的核心日志緩存大小(通常隻有幾行文字,但在報告故障時可能會産生大量文字).例如在最大CPU數量(包含熱插拔CPU)為64的系統上,如果CONFIG_LOG_BUF_SHIFT=18,那麼該值應該設為12

Memory placement aware NUMA scheduler

CONFIG_NUMA_BALANCING

允許自動根據NUMA系統的節點分布狀況進行程序/記憶體均衡(方法很原始,就是簡單的記憶體移動).這個選項對UMA系統無效.[提示]UMA系統的例子:(1)隻有一顆實體CPU(即使是多核)的電腦,(2)不支援"虛拟NUMA",或"虛拟NUMA"被禁用的虛拟機(即使所在的實體機是NUMA系統)

Automatically enable NUMA aware memory/task placement

CONFIG_NUMA_BALANCING_DEFAULT_ENABLED

在NUMA(Non-Uniform Memory Access Architecture)系統上自動啟用程序/記憶體均衡,也就是自動開啟CONFIG_NUMA_BALANCING特性.

Control Group support

CONFIG_CGROUPS

Cgroup(Control Group)是一種程序管理機制,可以針對一組程序進行系統資源的配置設定和管理,可用于Cpusets,CFS(完全公平排程器),記憶體管理等子系統.此外,systemd與Docker/LXC等容器也依賴于它.更多細節可以參考核心的"Documentation/cgroups/cgroups.txt"檔案

Example debug cgroup subsystem

CONFIG_CGROUP_DEBUG

導出cgroups架構的調試資訊,僅用于調試目的.

Freezer cgroup subsystem

CONFIG_CGROUP_FREEZER

允許當機/解凍cgroup内所有程序.Docker依賴于它.

PIDs cgroup subsystem

CONFIG_CGROUP_PIDS

允許限制同一cgroup内所有程序的數量,超出限制後将無法fork()出新程序.

Device controller for cgroups

CONFIG_CGROUP_DEVICE

允許為cgroup建立裝置白名單,這樣cgroup内的程序将僅允許對白名單中的裝置進行mknod/open操作.Docker依賴于它.

Cpuset support

CONFIG_CPUSETS

CPUSET支援:允許将CPU和記憶體進行分組,并指定某些程序隻能運作于特定的分組.Docker依賴于它.這裡有一篇CPUSET的用法

Include legacy /proc/<pid>/cpuset file

CONFIG_PROC_PID_CPUSET

提供過時的 /proc/<pid>/cpuset 檔案接口

Simple CPU accounting cgroup subsystem

CONFIG_CGROUP_CPUACCT

提供一個簡單的資源控制器(Resource Controller,用于實作一組任務間的資源共享),以監控cgroup内所有程序的總CPU使用量.Docker依賴于它.

Resource counters

CONFIG_RESOURCE_COUNTERS

為cgroup提供獨立于controller資源計數器

Memory Resource Controller for Control Groups

CONFIG_MEMCG

為cgroup添加記憶體資源控制器,包含匿名記憶體和頁面緩存(Documentation/cgroups/memory.txt).開啟此選項後,将會增加關聯到每個記憶體頁fixed memory大小,具體在64位系統上是40bytes/PAGE_SIZE.僅在你确實明白什麼是 memory resource controller 并且确實需要的情況下才開啟此選項.此功能可以通過指令行選項"cgroup_disable=memory"進行關閉.Docker依賴于它.

Memory Resource Controller Swap Extension

CONFIG_MEMCG_SWAP

給 Memory Resource Controller 添加對swap的管理功能.這樣就可以針對每個cgroup限定其使用的mem+swap總量.如果關閉此選項, memory resource controller 将僅能限制mem的使用量,而無法對swap進行控制(程序有可能耗盡swap).開啟此功能會對性能有不利影響,并且為了追蹤swap的使用也會消耗更多的記憶體(如果swap的頁面大小是4KB,那麼每1GB的swap需要額外消耗512KB記憶體),是以在記憶體較小的系統上不建議開啟.

Memory Resource Controller Swap Extension enabled by default

CONFIG_MEMCG_SWAP_ENABLED

如果開啟此選項,那麼将預設開啟CONFIG_MEMCG_SWAP特性,否則将預設關閉.即使預設開啟也可以通過核心引導參數"swapaccount=0"禁止此特性.

Memory Resource Controller Kernel Memory accounting

CONFIG_MEMCG_KMEM

為 Memory Resource Controller 添加對核心對象所占用記憶體的管理功能.和标準的 Memory Resource Controller 對記憶體的控制不一樣之處在于:這些核心對象所占用的記憶體是基于每個記憶體頁的,并且可以被swap到硬碟.使用這個功能可以確定cgroup中的程序不會單獨耗盡所有核心資源.

HugeTLB Resource Controller for Control Groups

CONFIG_CGROUP_HUGETLB

為cgroup添加對HugeTLB頁的資源控制功能.開啟此選項之後,你就可以針對每個cgroup限定其對HugeTLB的使用.Docker依賴于它.

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的帶寬.Docker依賴于它.systemd資源控制單元(resource control unit)的CPUShares功能依賴于它.

Group scheduling for SCHED_OTHER

CONFIG_FAIR_GROUP_SCHED

公平CPU排程政策,也就是在多個cgroup之間平均配置設定CPU帶寬."雞血更新檔"CONFIG_SCHED_AUTOGROUP(自動分組排程功能)依賴于它.Docker依賴于它.systemd資源控制單元(resource control unit)的CPUShares功能也依賴于它.

CPU bandwidth provisioning for FAIR_GROUP_SCHED

CONFIG_CFS_BANDWIDTH

允許使用者為運作在CONFIG_FAIR_GROUP_SCHED中的程序定義CPU帶寬限制.對于沒有定義CPU帶寬限制的cgroup而言,可以無限制的使用CPU帶寬.詳情參見Documentation/scheduler/sched-bwc.txt 檔案.systemd資源控制單元(resource control unit)的CPUQuota功能也依賴于它.

Group scheduling for SCHED_RR/FIFO

CONFIG_RT_GROUP_SCHED

允許使用者為cgroup配置設定實時CPU帶寬,還可以對非特權使用者的實時程序組進行排程.詳情參見 Documentation/scheduler/sched-rt-group.txt 文檔.使用systemd的系統應該選"N".

Block IO controller

CONFIG_BLK_CGROUP

通用的塊IO控制器接口,可以用于實作各種不同的控制政策.目前,IOSCHED_CFQ用它來在不同的cgroup之間配置設定磁盤IO帶寬(需要額外開啟CONFIG_CFQ_GROUP_IOSCHED),block io throttle也會用它來針對特定塊裝置限制IO速率上限(需要額外開啟CONFIG_BLK_DEV_THROTTLING).更多資訊可以參考"Documentation/cgroups/blkio-controller.txt"檔案.

Enable Block IO controller debugging

CONFIG_DEBUG_BLK_CGROUP

僅用于調試 Block IO controller 目的.

Checkpoint/restore support

CONFIG_CHECKPOINT_RESTORE

在核心中添加"檢查點/恢複"支援.也就是添加一些輔助的代碼用于設定程序的 text, data, heap 段,并且在 /proc 檔案系統中添加一些額外的條目.用于檢測兩個程序是否共享同一個核心資源的kcmp()系統調用依賴于它.使用systemd的建議開啟此項.

Namespaces support

CONFIG_NAMESPACES

命名空間支援.主要用于支援基于容器的輕量級虛拟化技術(比如LXC和Linux-VServer以及Docker).

UTS namespace

CONFIG_UTS_NS

uname()系統調用的命名空間支援

IPC namespace

CONFIG_IPC_NS

程序間通信對象ID的命名空間支援

User namespace

CONFIG_USER_NS

允許容器使用user命名空間.如果開啟此項,建議同時開啟CONFIG_MEMCG和CONFIG_MEMCG_KMEM選項,以允許使用者空間使用"memory cgroup"限制非特權使用者的記憶體使用量.不确定的選"N",如果你打算建構一個VPS伺服器就必須選"Y".

PID Namespaces

CONFIG_PID_NS

程序PID命名空間支援

Network namespace

CONFIG_NET_NS

網絡協定棧的命名空間支援.systemd服務單元(service unit)中的"PrivateNetwork/PrivateDevices"依賴于它.

Require conversions between uid/gids and their internal representation

CONFIG_UIDGID_STRICT_TYPE_CHECKS

強制将uid/gid轉換為内部表示形式,以讓那些未對uid/gid進行轉換的核心子系統代碼也能正常編譯.不确定的選"N".

Automatic process group scheduling

CONFIG_SCHED_AUTOGROUP

每個TTY動态地建立任務分組(cgroup),這樣就可以降低高負載情況下的桌面延遲.也就是傳說中的桌面"雞血更新檔",桌面使用者建議開啟.但伺服器建議關閉.

Enable deprecated sysfs features to support old userspace tools

CONFIG_SYSFS_DEPRECATED

為了相容舊版本的應用程式而保留過時的sysfs特性.僅當在使用2008年以前的發行版時才需要開啟,2009年之後的發行版中必須關閉.此外,使用udev或systemd的系統也必須關閉.

Enable deprecated sysfs features by default

CONFIG_SYSFS_DEPRECATED_V2

預設開啟上述特性

Kernel->user space relay support (formerly relayfs)

CONFIG_RELAY

在某些檔案系統(比如debugfs)中提供中繼(relay)支援(從核心空間向使用者空間傳遞大批量資料).主要用于調試核心.

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

CONFIG_BLK_DEV_INITRD

初始記憶體檔案系統(initramfs,2.6以上核心的新機制,使用cpio格式,占據的記憶體随資料的增減自動增減)與初始記憶體盤(initrd,2.4以前核心遺留的老機制,使用loop裝置,占據一塊固定的記憶體,需要額外開啟CONFIG_BLK_DEV_RAM選項才生效)支援,一般通過lilo/grub的initrd指令加載.更多細節可以參考"Documentation/initrd.txt"檔案,關于initrd到initramfs的進化(牆内鏡像),可以參考IBM上的兩篇文章:Linux2.6 核心的 Initrd 機制解析和Linux 初始 RAM 磁盤(initrd)概述.

Initramfs source file(s)

CONFIG_INITRAMFS_SOURCE

如果你想将initramfs鏡像直接嵌入核心(比如嵌入式環境或者想使用 EFI stub kernel),而不是通過lilo/grub這樣的引導管理器加載,可以使用此選項,否則請保持空白.這個選項指明用來制作initramfs鏡像的原料,可以是一個.cpio檔案,或一個Initramfs虛根目錄(其下包含"bin,dev,etc,lib,proc,sys"等子目錄),或一個描述檔案.細節可以參考"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包裝,建議關閉

Multiple users, groups and capabilities support

CONFIG_MULTIUSER

多使用者(組)支援.若選"N",則所有程序都将以"UID=0,GID=0"運作(也就是禁止存在非root使用者).選"Y",除非你确實知道自己在幹什麼.

sgetmask/ssetmask syscalls support

CONFIG_SGETMASK_SYSCALL

是否開啟已被反對使用的sys_sgetmask/sys_ssetmask系統調用(已不再被libc支援).建議選"N".

Sysfs syscall support

CONFIG_SYSFS_SYSCALL

是否開啟已被反對使用的sys_sysfs系統調用(已不再被libc支援).建議選"N".

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

允許核心向終端列印字元資訊.任何由printk顯示的字元串通常記錄在/var/log/messages檔案裡.如果關閉,核心在初始化過程中将不會輸出字元資訊,這會導緻很難診斷系統故障,并且"dmesg"指令也會失效.僅在你确實不想看到任何核心資訊時選"N".否則請選"Y".

BUG() support

CONFIG_BUG

顯示故障和失敗條件(BUG和WARN),禁用它将可能導緻隐含的錯誤被忽略.建議僅在嵌入式裝置或者無法顯示故障資訊的系統上關閉

Enable ELF core dumps

CONFIG_ELF_CORE

記憶體轉儲支援,可以幫助調試ELF格式的程式,用于調試和開發使用者态程式

Enable PC-Speaker support

CONFIG_PCSPKR_PLATFORM

主機闆上的蜂鳴器支援.主機闆上的蜂鳴器隻能發出或長或短的"滴"或"嘟嘟"聲,一般用于系統報警.不要和能夠播放音樂的揚聲器混淆.如果你的主機闆上沒有就關閉,有的話(開機自檢完成後一般能聽到"滴"的一聲)還是建議開啟.

Enable full-sized data structures for core

CONFIG_BASE_FULL

在核心中使用全尺寸的資料結構.禁用它将使得某些核心的資料結構減小以節約記憶體,但是将會降低性能

Enable futex support

CONFIG_FUTEX

快速使用者空間互斥(fast userspace mutexes)可以使線程串行化以避免競态條件,也提高了響應速度.禁用它将導緻核心不能正确的運作基于glibc的程式

Enable eventpoll support

CONFIG_EPOLL

Epoll系列系統調用(epoll_*)支援,這是目前在Linux下開發大規模并發網絡程式(比如Nginx)的熱門人選,設計目的是取代既有POSIX select(2)與poll(2)系統接口,systemd依賴于它.建議開啟.

Enable signalfd() system call

CONFIG_SIGNALFD

signalfd()系統調用支援,建議開啟.傳統的處理信号的方式是注冊信号處理函數,由于信号是異步發生的,要解決資料的并發通路和可重入問題.signalfd可以将信号抽象為一個檔案描述符,當有信号發生時可以對其read,這樣可以将信号的監聽放到select/poll/epoll監聽隊列中.systemd依賴于它.

Enable timerfd() system call

CONFIG_TIMERFD

timerfd()系統調用支援,建議開啟.timerfd可以實作定時器功能,将定時器抽象為檔案描述符,當定時器到期時可以對其read,這樣也可以放到select/poll/epoll監聽隊列中.更多資訊可以參考linux新的API signalfd、timerfd、eventfd使用說明.systemd依賴于它.

Enable eventfd() system call

CONFIG_EVENTFD

eventfd()系統調用支援,建議開啟.eventfd實作了線程之間事件通知的方式,eventfd的緩沖區大小是sizeof(uint64_t),向其write可以遞增這個計數器,read操作可以讀取,并進行清零.eventfd也可以放到select/poll/epoll監聽隊列中.當計數器不是0時,有可讀事件發生,可以進行讀取.

Enable bpf() system call

CONFIG_BPF_SYSCALL

開啟核心的bpf()系統調用支援(從3.15版本開始引入),以支援eBPF功能.可用于核心調試與網絡包過濾(tcpdump,libpcap,iptables).不确定的選"N".

Use full shmem filesystem

CONFIG_SHMEM

完全使用shmem來代替ramfs.shmem是基于共享記憶體的檔案系統(可以使用swap),在啟用CONFIG_TMPFS後可以挂載為tmpfs供使用者空間使用,它比簡單的ramfs先進許多.僅在微型嵌入式環境中且沒有swap的情況下才可能會需要使用原始的ramfs.

Enable AIO support

CONFIG_AIO

開啟POSIX異步IO支援.它常常被高性能的多線程程式使用,建議開啟

Enable madvise/fadvise syscalls

CONFIG_ADVISE_SYSCALLS

開啟核心的madvise()/fadvise()系統調用支援(2.6.16版本開始引入).以允許應用程式預先提示核心,它将如何使用特定的記憶體與檔案.這種措施有助于提升應用程式的性能.建議選"Y".

Enable userfaultfd() system call

CONFIG_USERFAULTFD

開啟核心的userfaultfd()系統調用支援(從4.3版本開始引入).該特性可以被諸如QEMU/KVM之類的虛拟化技術用來提高GuestOS熱遷移性能.

Enable PCI quirk workarounds

CONFIG_PCI_QUIRKS

開啟針對多種PCI晶片組的錯誤規避功能,僅在确定你的PCI晶片組确實沒有沒有任何bug時才關閉此功能.至于究竟哪些晶片組有bug,你可以直接打開"drivers/pci/quirks.c"檔案檢視.不确定的選"Y".

Enable membarrier() system call

CONFIG_MEMBARRIER

開啟核心的membarrier()系統調用支援(與Memory Barrier相關).有助于提升多CPU場景下的并行計算性能.建議選"Y".

Embedded system

CONFIG_EMBEDDED

如果你是為嵌入式系統編譯核心,可以開啟此選項,這樣一些進階選項就會顯示出來.單獨選中此項本身對核心并無任何改變.

Kernel Performance Events And Counters

CONFIG_PERF_EVENTS

性能相關的事件和計數器支援(既有硬體的支援也有軟體的支援).大多數現代CPU都會通過性能計數寄存器對特定類型的硬體事件(指令執行,緩存未命中,分支預測失敗)進行計數,同時又絲毫不會減慢核心和應用程式的運作速度.這些寄存器還會在某些事件計數到達特定的門檻值時觸發中斷,進而可以對代碼進行性能分析. Linux Performance Event 子系統對上述特性進行了抽象,提供了針對每個程序和每個CPU的計數器,并可以被 tools/perf/ 目錄中的"perf"工具使用.

Debug: use vmalloc to back perf mmap() buffers

CONFIG_DEBUG_PERF_USE_VMALLOC

主要用于調試vmalloc代碼.

Enable VM event counters for /proc/vmstat

CONFIG_VM_EVENT_COUNTERS

"/proc/vmstat"中包含了從核心導出的虛拟記憶體的各種統計資訊.開啟此項後可以顯示較詳細的資訊(包含各種事件計數器),關閉此項則僅僅顯示記憶體頁計數.主要用于調試和統計.

Enable SLUB debugging support

CONFIG_SLUB_DEBUG

SLUB調試支援,禁用後可顯著降低核心大小,同時/sys/kernel/slab也将不複存在.

Disable heap randomization

CONFIG_COMPAT_BRK

禁用堆随機化(heap randomization)功能.堆随機化可以讓針對堆溢出的攻擊變得困難,但是不相容那些古董級的二進制程式(2000年以前).如果你不需要使用這些古董程式,那麼選"N".
Choose SLAB allocator
選擇記憶體配置設定管理器

SLAB

CONFIG_SLAB

久經考驗的slab記憶體配置設定器,在大多數情況下都具有良好的适應性.

SLUB (Unqueued Allocator)

CONFIG_SLUB

SLUB與SLAB相容,但通過取消大量的隊列和相關開銷,簡化了slab的結構.特别是在多核時擁有比slab更好的性能和更好的系統可伸縮性.

SLOB (Simple Allocator)

CONFIG_SLOB

SLOB針對小型系統設計,做了非常激進的簡化,以适用于記憶體非常有限(小于64M)的嵌入式環境.

SLUB per cpu partial cache

CONFIG_SLUB_CPU_PARTIAL

讓SLUB記憶體配置設定器使用基于每個CPU的局部緩存,這樣可以加速配置設定和釋放屬于此CPU範圍内的對象,但這樣做的代價是增加對象釋放延遲的不确定性.因為當這些局部緩存因為溢出而要被清除時,需要使用鎖,進而導緻延遲尖峰.對于需要快速響應的實時系統,應該選"N",伺服器則可以選"Y".

Provide system-wide ring of trusted keys

CONFIG_SYSTEM_TRUSTED_KEYRING

在核心中建立一個密鑰環,進而允許向密鑰環上添加受信任的密鑰,主要用于核心子產品的簽名.如果你開啟了CONFIG_MODULE_SIG,此項将被自動選中.不需要使用核心子產品簽名檢查功能的應該選"N"

Profiling support

CONFIG_PROFILING

添加擴充的性能分析支援,可以被OProfile之類的工具使用.僅用于調試目的.

OProfile system profiling

CONFIG_OPROFILE

OProfile性能分析工具支援,僅用于調試目的.

OProfile multiplexing support

CONFIG_OPROFILE_EVENT_MULTIPLEX

OProfile multiplexing技術支援

Kprobes

CONFIG_KPROBES

Kprobes是一個輕量級的核心調試工具,能在核心運作的幾乎任意時間點進行暫停/讀取/修改等操作的調試工具.僅供調試使用.

Optimize very unlikely/likely branches

CONFIG_JUMP_LABEL

針對核心中某些"幾乎總是為真"或者"幾乎總是為假"的條件分支判斷使用"asm goto"進行優化(在分支預測失敗時會浪費很多時間在回退上,但是這種情況極少發生).很多核心子系統都支援進行這種優化.建議開啟.

Static key selftest

CONFIG_STATIC_KEYS_SELFTEST

在核心啟動時對上述分支優化更新檔進行一次自我檢查.

Transparent user-space probes

CONFIG_UPROBES

Uprobes與Kprobes類似,但主要用于使用者空間的調試.
Stack Protector buffer overflow detection
GCC的"stack-protector"功能可以在函數開始執行時,在函數的傳回位址末端設定一個敏感值,當函數執行完成要傳回時,檢查這個敏感值,看看是否存在溢出.如果有溢出則表明可能受到了堆棧溢出攻擊,核心将通過panic來阻止可能的攻擊.選項中的"None"表示關閉此功能,"Regular"表示啟用此功能但是僅提供較弱的保護(需要GCC-4.2及以上版本),"Strong"則表示提供較強的保護(需要GCC-4.9及以上版本)

Enable GCOV-based kernel profiling

CONFIG_GCOV_KERNEL

基于GCC的gcov(代碼覆寫率測試工具)的代碼分析支援,僅用于調試

Profile entire Kernel

CONFIG_GCOV_PROFILE_ALL

支援對整個核心進行分析.核心體積将會顯著增大,并且運作速度顯著減慢.

Enable loadable module support

可加載子產品支援

Enable loadable module support

CONFIG_MODULES

打開可加載子產品支援,可以通過"make modules_install"把核心子產品安裝在/lib/modules/中.然後可以使用 modprobe, lsmod, modinfo, insmod, rmmod 等工具進行各種子產品操作.

Forced module loading

CONFIG_MODULE_FORCE_LOAD

允許使用"modprobe --force"在不校驗版本資訊的情況下強制加載子產品,這絕對是個壞主意!建議關閉.

Module unloading

CONFIG_MODULE_UNLOAD

允許解除安裝已經加載的子產品.如果将子產品靜态編譯進核心中,那麼核心的執行效率會更好.如果代碼作為動态子產品加載,那麼不使用時可以減少核心的記憶體使用并減少啟動的時間,然而核心和子產品在記憶體上互相獨立又會影響核心的執行性能.

Forced module unloading

CONFIG_MODULE_FORCE_UNLOAD

允許強制解除安裝正在使用中的子產品(rmmod -f),即使可能會造成系統崩潰.這又是一個壞主意!建議關閉.

Module versioning support

CONFIG_MODVERSIONS

允許使用為其他核心版本編譯的子產品,可會造成系統崩潰.這同樣是個壞主意!建議關閉.

Source checksum for all modules

CONFIG_MODULE_SRCVERSION_ALL

為子產品添加"srcversion"字段,以幫助子產品維護者準确的知道編譯此子產品所需要的源檔案,進而可以校驗源檔案的變動.僅核心子產品開發者需要它.

Module signature verification

CONFIG_MODULE_SIG

在加載子產品時檢查子產品簽名,詳情參見"Documentation/module-signing.txt"檔案.[!!警告!!]開啟此選項後,必須確定子產品簽名後沒有被strip(包括rpmbuild之類的打包工具).

Require modules to be validly signed

CONFIG_MODULE_SIG_FORCE

僅加載已簽名并且密鑰正确的子產品,拒絕加載未簽名或者簽名密鑰不正确的子產品

Automatically sign all modules

CONFIG_MODULE_SIG_ALL

在執行"make modules_install"安裝子產品的時候,自動進行簽名.否則你必須手動使用 scripts/sign-file 工具進行簽名.
Which hash algorithm should modules be signed with?
選擇對子產品簽名時使用的散列函數.建議使用強度最高的"SHA-512"算法.注意:所依賴的雜湊演算法必須被靜态編譯進核心.對于"SHA-512"來說,就是CONFIG_CRYPTO_SHA512和CONFIG_CRYPTO_SHA512_SSSE3(如果你的CPU支援SSSE3指令集的話).

Compress modules on installation

CONFIG_MODULE_COMPRESS

在\'make modules_install\'時對核心子產品進行壓縮.傳統的module-init-tools工具可能支援gzip壓縮,而新式的kmod可能支援gzip與xz壓縮.使用Kbuild在核心樹之外編譯的子產品也會同樣在安裝時被壓縮.不确定的選"N".

Enable the block layer

塊裝置支援

Enable the block layer

CONFIG_BLOCK

塊裝置支援,使用SSD/硬碟/U盤/SCSI/SAS裝置者必選.除非你是某些特殊的嵌入式系統,否則沒有理由不使用塊裝置.

Block layer SG support v4

CONFIG_BLK_DEV_BSG

為塊裝置啟用第四版SG(SCSI generic)支援.v4相比v3能夠支援更複雜的SCSI指令(可變長度的指令描述塊,雙向資料傳輸,通用請求/應答協定),而且UDEV也要用它來擷取裝置的序列号.對于使用systemd的系統來說,必須選"Y".對于不使用systemd的系統,如果你需要通過/dev/bsg/*通路塊裝置,建議開啟此選項,否則(通過/dev/{sd*,st*,sr*})可以關閉.

Block layer SG support v4 helper lib

CONFIG_BLK_DEV_BSGLIB

你不需要手動開啟此選項,如果有其他子產品需要使用,會被自動開啟.

Block layer data integrity support

CONFIG_BLK_DEV_INTEGRITY

某些塊裝置可以通過存儲/讀取額外的資訊來保障端到端的資料完整性,這個選項為檔案系統提供了相應的鈎子函數來使用這個特性.如果你的裝置支援 T10/SCSI Data Integrity Field 或者 T13/ATA External Path Protection 特性,那麼可以開啟此選項,否則建議關閉.

Block layer bio throttling support

CONFIG_BLK_DEV_THROTTLING

Bio Throttling 支援,也就是允許限制每個cgroup對特定裝置的IO速率.細節可以參考"Documentation/cgroups/blkio-controller.txt".

Block device command line partition parser

CONFIG_BLK_CMDLINE_PARSER

允許通過核心引導參數設定塊裝置的分區資訊(Documentation/block/cmdline-partition.txt).僅對某些嵌入式裝置有意義.

Advanced partition selection

CONFIG_PARTITION_ADVANCED

如果你想支援各種不同的磁盤分區格式(特别是與UEFI配合使用的GPT格式),務必選中此項.

Acorn partition support

CONFIG_ACORN_PARTITION

Acorn 作業系統使用的分區格式,請根據實際情況選擇子項,這裡省略

Alpha OSF partition support

CONFIG_OSF_PARTITION

Alpha 平台上使用的分區格式

Amiga partition table support

CONFIG_AMIGA_PARTITION

AmigaOS 使用的分區格式

Atari partition table support

CONFIG_ATARI_PARTITION

Atari OS 使用的分區格式

Macintosh partition map support

CONFIG_MAC_PARTITION

蘋果的Macintosh平台使用的分區格式

PC BIOS (MSDOS partition tables) support

CONFIG_MSDOS_PARTITION

漸成曆史垃圾,但目前依然最常見的DOS分區格式.除非你确信不使用此格式,否則必選.其下的子項根據實際情況選擇.

Windows Logical Disk Manager (Dynamic Disk) support

CONFIG_LDM_PARTITION

使用 Windows Logical Disk Manager 建立的分區格式.參見"Documentation/ldm.txt"

SGI partition support

CONFIG_SGI_PARTITION

SGI 平台上使用的分區格式

Ultrix partition table support

CONFIG_ULTRIX_PARTITION

DEC/Compaq Ultrix 平台上使用的分區格式

Sun partition tables support

CONFIG_SUN_PARTITION

SunOS 平台上使用的分區格式

Karma Partition support

CONFIG_KARMA_PARTITION

Rio Karma MP3 player 使用的分區格式

EFI GUID Partition support

CONFIG_EFI_PARTITION

代表未來趨勢,眼下正大紅大紫的EFI GPT(GUID Partition Table)分區格式.建議開啟.如果你在UEFI平台上安裝則必須開啟.

SYSV68 partition table support

CONFIG_SYSV68_PARTITION

Motorola Delta 機器上使用的分區格式
IO Schedulers
IO排程器(另一篇文章)

Deadline I/O scheduler

CONFIG_IOSCHED_DEADLINE

deadline排程器.簡潔小巧(隻有400+行代碼),提供了最小的讀取延遲,非常适合同一時間隻有少數個别程序進行IO請求的情況.如果你希望盡快讀取磁盤,而不介意寫入延遲,那它是最佳選擇.通常對于資料庫工作負載有最佳的表現.

CFQ I/O scheduler

CONFIG_IOSCHED_CFQ

cfq(Complete Fair Queuing)排程器.努力在各核心線程間公平配置設定IO資源,适用于系統中存在着大量核心線程同時進行IO請求的情況.但對于隻有少數核心線程進行密集IO請求的情況,則會出現明顯的性能下降.

CFQ Group Scheduling support

CONFIG_CFQ_GROUP_IOSCHED

允許将CFQ和cgroup組合使用,也就是将每個cgroup看成一個整體,在各cgroup之間進行IO資源的配置設定.參見"Documentation/cgroups/blkio-controller.txt"檔案.還可以參考一下《Linux核心精髓》中的"使用Block I/O控制器"一章.

BFQ I/O scheduler

CONFIG_IOSCHED_BFQ

bfq(Budget Fair Queueing)排程器.這是一個基于CFQ排程器的改進版本,更适合于對互動性要求比較高的場合,比如桌面系統和實時系統.如果靜态編譯進核心,還支援和cgroup配合,實作分層排程(hierarchical scheduling).

BFQ hierarchical scheduling support

CONFIG_CGROUP_BFQIO

通過cgroup檔案系統接口,允許将BFQ分層使用(類似CONFIG_CFQ_GROUP_IOSCHED),這個子系統的名字是"bfqio".
Default I/O scheduler
預設IO排程器.如果上述排程器都是子產品,那麼将使用最簡單的内置NOOP排程器.NOOP(No Operation)排程器隻是一個簡單的FIFO隊列,不對IO請求做任何重新排序處理(但還是會做一定程度的歸并),适合于SSD/U盤/記憶體/虛拟機硬碟/SAN(Storage Area Networks)等無需尋道的儲存設備,重點是可以節約CPU資源,但不适用于普通硬碟這樣的需要依靠磁頭來定位的裝置.另外,有人說擁有TCQ/NCQ技術(能夠自動重新排序)的硬碟也适合用NOOP排程器,這個說法其實并不那麼合理,但筆者在此不敢斷言,希望讀者在嚴謹的測試之後再做定奪.

Processor type and features

中央處理器(CPU)類型及特性

DMA memory allocation support

CONFIG_ZONE_DMA

允許為尋址寬度不足32位的裝置(也就是ISA和LPC總線裝置)在實體記憶體的前16MB範圍内(也就是傳統上x86_32架構的ZONE_DMA區域)配置設定記憶體.不确定的選"N",核心中若有其它驅動(主要是某些老舊的聲霸卡)需要它會自動選中此項.[提示]LPC總線通常和主機闆上的南橋實體相連,通常連接配接了一系列的傳統裝置:BIOS,PS/2鍵盤,PS/2滑鼠,軟碟,并口裝置,序列槽裝置,某些內建聲霸卡,TPM(可信平台子產品),等等.[題外話]x86_64已經沒有ZONE_HIGHMEM了

Symmetric multi-processing support

CONFIG_SMP

SMP(對稱多處理器)支援,如果你有多個CPU或者使用的是多核CPU就選上.

Processor feature human-readable names

CONFIG_X86_FEATURE_NAMES

讓 /proc/cpuinfo 中的CPU特性标記更具可讀性.選"Y".

Support x2apic

CONFIG_X86_X2APIC

x2apic支援.具有這個特性的CPU可以使用32位的APIC ID(可以支援海量的CPU),并且可以使用MSR而不是mmio去通路 local APIC (更加高效).可以通過"grep x2apic /proc/cpuinfo"指令檢查你的CPU是否支援這個特性.注意:有時候還需要在BIOS中也開啟此特性才真正生效.[提示]在虛拟機中,還需要VMM的支援(例如qemu-kvm).

Enable MPS table

CONFIG_X86_MPPARSE

如果是不支援acpi特性的古董級SMP系統就選上.但現今的64位系統早都已經支援acpi了,是以可以安全的關閉.

Support for extended (non-PC) x86 platforms

CONFIG_X86_EXTENDED_PLATFORM

支援非标準的PC平台: Numascale NumaChip, ScaleMP vSMP, SGI Ultraviolet. 絕大多數人都遇不見這些平台.

Numascale NumaChip

CONFIG_X86_NUMACHIP

Numascale NumaChip 平台支援

ScaleMP vSMP

CONFIG_X86_VSMP

ScaleMP vSMP 平台支援

SGI Ultraviolet

CONFIG_X86_UV

SGI Ultraviolet 平台支援

Intel Low Power Subsystem Support

CONFIG_X86_INTEL_LPSS

為 Intel Lynx Point PCH 或更進階别晶片組中的 Intel Low Power Subsystem 技術提供支援.Lynx Point PCH 晶片組主要是為采用LGA1150的Haswell處理器提供支援.

AMD ACPI2Platform devices support

CONFIG_X86_AMD_PLATFORM_DEVICE

為AMD Carrizo以及後繼架構的I2C,UART,GPIO提供支援.

Intel SoC IOSF Sideband support for SoC platforms

CONFIG_IOSF_MBI

為主打低功耗的Intel SoC平台CPU開啟"sideband"寄存器通路支援.這些CPU包括:BayTrail,Braswell,Quark

Single-depth WCHAN output

CONFIG_SCHED_OMIT_FRAME_POINTER

使用簡化的 /proc/<PID>/wchan 值,禁用此選項會使用更加精确的wchan值(可以在"ps -l"結果的WCHAN域看到),但會輕微增加排程器消耗.

Linux guest support

CONFIG_HYPERVISOR_GUEST

如果這個核心将在虛拟機裡面運作就開啟,否則就關閉.

Enable paravirtualization code

CONFIG_PARAVIRT

半虛拟化(paravirtualization)支援.

paravirt-ops debugging

CONFIG_PARAVIRT_DEBUG

僅供調試.paravirt-ops是核心通用的半虛拟化接口.

Paravirtualization layer for spinlocks

CONFIG_PARAVIRT_SPINLOCKS

半虛拟化的自旋鎖支援.開啟之後運作在虛拟機裡的核心速度會加快,但是運作在實體CPU上的宿主核心運作效率會降低(最多可能會降低5%).請根據實際情況選擇.

Xen guest support

CONFIG_XEN

Xen半虛拟化技術支援

Enable Xen debug and tuning parameters in debugfs

CONFIG_XEN_DEBUG_FS

為Xen在debugfs中輸出各種統計資訊和調整選項.對性能有嚴重影響.僅供調試.

KVM Guest support (including kvmclock)

CONFIG_KVM_GUEST

KVM客戶機支援(包括kvmclock).

Paravirtual steal time accounting

CONFIG_PARAVIRT_TIME_ACCOUNTING

允許進行更細粒度的 task steal time 統計.會造成性能的略微降低.僅在你确實需要的時候才開啟.

Memtest

CONFIG_MEMTEST

為核心添加記憶體測試功能,也就是添加"memtest"核心引導參數以支援對記憶體進行"體檢".僅在你确實知道這是什麼東西并且确實需要的時候再開啟.否則請關閉.
Processor family
處理器系列,請按照你實際使用的CPU選擇."Generic-x86-64"表示通用于所有x86-64平台,而不是針對特定類型的CPU進行優化.

Supported processor vendors

CONFIG_PROCESSOR_SELECT

支援的CPU廠商,按實際情況選擇.

Enable DMI scanning

CONFIG_DMI

允許掃描DMI(Desktop Management Interface)/SMBIOS(System Management BIOS)以獲得機器的硬體配置,進而對已知的bug bios進行規避.具體涉及到哪些機器可參見"drivers/acpi/blacklist.c"檔案.除非确定你的機器沒有bug,否則請開啟此項.

GART IOMMU support

CONFIG_GART_IOMMU

為較舊的AMD Athlon64/Opteron/Turion/Sempron CPU提供GART IOMMU支援.圖形位址重映射表(Graphics Address Remapping Table)可以将實體位址不連續的系統記憶體映射成看上去連續的圖形記憶體交給GPU使用,是一種挖CPU記憶體補GPU記憶體機制,這種機制也可以被認為是一種"僞IOMMU"(缺乏位址空間隔離和通路控制).開啟此選項以後,在記憶體大于3G的系統上,傳統的32位總線(PCI/AGP)的裝置将可以使用完全DMA的方式直接通路原本超出32位尋址範圍之外的系統記憶體區域.具體方法是:通過程式設計讓裝置在受GART控制的顯存區域工作,然後使用GART将這個位址映射為真實的實體位址(4GB以上)來實作的.USB/聲霸卡/IDE/SATA之類的裝置常常需要它.開啟此選項之後,除非同時開啟了CONFIG_IOMMU_DEBUG選項或者使用了"iommu=force"核心引導參數,否則此特性僅在條件滿足的情況下(記憶體足夠大且确有支援GART的裝置)激活.由于較新的AMD CPU都已配備了AMD IOMMU(應該使用CONFIG_AMD_IOMMU),故而僅建議在記憶體大于3G的老式AMD系統上選"Y".

IBM Calgary IOMMU support

CONFIG_CALGARY_IOMMU

IBM xSeries/pSeries 系列伺服器的 Calgary IOMMU 支援.

Should Calgary be enabled by default?

CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT

開啟此選項表示預設啟用Calgary特性,關閉此選項表示預設禁用Calgary特性(可以使用"iommu=calgary"核心引導參數開啟).

Enable Maximum number of SMP Processors and NUMA Nodes

CONFIG_MAXSMP

讓核心支援x86_64平台所能支援的最大SMP處理器數量和最大NUMA節點數量.主要用于調試目的.

Maximum number of CPUs

CONFIG_NR_CPUS

支援的最大CPU數量,每個CPU要占8KB的核心鏡像,最小有效值是"2",最大有效值是"512".注意:這裡的"CPU數量"是指"邏輯CPU數量".例如,對于一顆帶有超線程技術的4核8線程CPU來說,相當于擁有8個CPU.

SMT (Hyperthreading) scheduler support

CONFIG_SCHED_SMT

Intel超線程技術(HyperThreading)支援.

Multi-core scheduler support

CONFIG_SCHED_MC

針對多核CPU進行排程政策優化
Preemption Model
核心搶占模式

No Forced Preemption (Server)

CONFIG_PREEMPT_NONE

禁止核心搶占,這是Linux的傳統模式,可以得到最大的吞吐量,适合伺服器和科學計算環境

Voluntary Kernel Preemption (Desktop)

CONFIG_PREEMPT_VOLUNTARY

自願核心搶占,通過在核心中設定明确的搶占點以允許明确的核心搶占,可以提高響應速度,但是對吞吐量有不利影響.适合普通桌面環境的

Preemptible Kernel (Low-Latency Desktop)

CONFIG_PREEMPT

主動核心搶占,允許搶占所有核心代碼,對吞吐量有更大影響,适合需要運作實時程式的場合或者追求最快響應速度的桌面環境.

Reroute for broken boot IRQs

CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS

這是一個對某些晶片組bug(在某些情況下會發送多餘的"boot IRQ")的修複功能.開啟此選項之後,僅對有此bug的晶片組生效.要檢查哪些晶片組有此bug可以檢視"drivers/pci/quirks.c"檔案中的"quirk_reroute_to_boot_interrupts_intel"函數.

Machine Check / overheating reporting

CONFIG_X86_MCE

MCE(Machine Check Exception)支援.讓CPU檢測到硬體故障(過熱/資料錯誤)時通知核心,以便核心采取相應的措施(如顯示一條提示資訊或關機等).更多資訊可以"manmcelog"看看.可以通過"grep mce /proc/cpuinfo"檢查CPU是否支援此特性,若支援建議選中,否則請關閉.當然,如果你對自己的硬體品質很放心,又是桌面系統的話,不選也無所謂.

Intel MCE features

CONFIG_X86_MCE_INTEL

Intel CPU 支援

AMD MCE features

CONFIG_X86_MCE_AMD

AMD CPU 支援

Machine check injector support

CONFIG_X86_MCE_INJECT

MCE注入支援,僅用于調試

Enable vsyscall emulation

CONFIG_X86_VSYSCALL_EMULATION

對過時的vsyscall頁提供仿真支援.禁用此項大緻相當于使用"vsyscall=none"核心引導參數(差别在于當應用程式使用vsyscall時将直接崩潰(segfault)而不會産生警告消息).許多2013年之前編譯的程式(也可能包括某些新近編譯的程式)需要使用此特性.

Enable support for 16-bit segments

CONFIG_X86_16BIT

如果你需要使用Wine運作那些古董級的16位保護模式程式,就選"Y",否則選"N"

Dell laptop support

CONFIG_I8K

Dell Inspiron 8000 筆記本的 System Management Mode 驅動(i8k).該驅動可以讀取CPU溫度和風扇轉速,進而幫助上層工具控制風扇轉速.該驅動僅針對 Dell Inspiron 8000 筆記本進行過測試,是以不保證一定能适用于其他型号的Dell筆記本.

CPU microcode loading support

CONFIG_MICROCODE

CPU的微代碼更新支援,建議選中.CPU的微代碼更新就像是給CPU打更新檔,用于糾正CPU的行為.更新微代碼的正常方法是更新BIOS,但是也可以在Linux啟動後更新.比如在Gentoo下,可以使用"emerge microcode-ctl"安裝microcode-ctl服務,再把這個服務加入boot運作級即可在每次開機時自動更新CPU微代碼.其他Linux系統可以參考這個文章.

Intel microcode loading support

CONFIG_MICROCODE_INTEL

Intel CPU 微代碼支援

AMD microcode loading support

CONFIG_MICROCODE_AMD

AMD CPU 微代碼支援

Early load microcode

CONFIG_MICROCODE_INTEL_EARLY

支援從initrd鏡像首部加載微代碼,以便盡可能早的更新CPU微代碼.即使在initrd首部并未嵌入微代碼也不會造成問題,是以"Y"是安全的.不過你真的需要嗎?筆者認為你一般并不需要:)

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

CONFIG_X86_MSR

允許使用者空間的特權程序(使用rdmsr與wrmsr指令)通路x86的MSR寄存器(Model-Specific Register)以通路CPU的很多重要的參數.MSR是非标準寄存器,主要用于讀取CPU的工作狀态(頻率/電壓/功耗/溫度/性能等),以及設定CPU的工作參數(觸發特定的CPU特性,依CPU的不同而不同).msrtool工具可以轉儲出MSR的内容.不确定的可以選"M".

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

CONFIG_X86_CPUID

允許使用者空間的特權程序使用CPUID指令獲得詳細的CPU資訊(CPUID):CPU類型,型号,制造商資訊,商标資訊,序列号,緩存等.不确定的可以選"M".

Enable 1GB pages for kernel pagetables

CONFIG_DIRECT_GBPAGES

允許核心頁表使用大小為1GB的Hugepages并進行直線映射(linear mapping),需要高端CPU的支援(可以用"grep pdpe1gb /proc/cpuinfo"指令檢查).這可以減小頁表緩存(Translation Lookaside Buffer)的壓力,進而提升系統的性能,這對于擁有海量記憶體并且運作某些特定應用(PosgreSQL,MySQL,Java,Memcached,KVM,Xen...)的系統來說比較有意義.如果你的CPU支援,可以選"Y".

Numa Memory Allocation and Scheduler Support

CONFIG_NUMA

開啟 NUMA(Non Uniform Memory Access) 支援.雖然說內建了記憶體控制器的CPU都屬于NUMA架構.但事實上,對于大多數隻有一顆實體CPU的個人電腦而言,即使支援NUMA架構,也沒必要開啟此特性.可以參考SMP/NUMA/MPP體系結構對比.此外,對于不支援"虛拟NUMA",或"虛拟NUMA"被禁用的虛拟機(即使所在的實體機是NUMA系統),也應該關閉此項.

Old style AMD Opteron NUMA detection

CONFIG_AMD_NUMA

因為AMD使用一種舊式的方法讀取NUMA配置資訊(新式方法是CONFIG_X86_64_ACPI_NUMA),是以如果你使用的是AMD多核CPU,建議開啟.不過,即使開啟此選項,核心也會優先嘗試CONFIG_X86_64_ACPI_NUMA方法,僅在失敗後才會使用此方法,是以即使你不能确定CPU的類型也可以安全的選中此項.

ACPI NUMA detection

CONFIG_X86_64_ACPI_NUMA

使用基于 ACPI SRAT(System Resource Affinity Table) 技術的NUMA節點探測方法.這也是檢測NUMA節點資訊的首選方法,建議選中.

NUMA emulation

CONFIG_NUMA_EMU

僅供開發調試使用

Maximum NUMA Nodes (as a power of 2)

CONFIG_NODES_SHIFT

允許的最大NUMA節點數.需要注意其計算方法:最大允許節點數=2CONFIG_NODES_SHIFT.也就是說這裡設定的值會被當做2的指數使用.取值範圍是[1,10],也就最多允許1024個節點.
Memory model
記憶體模式."Sparse Memory"主要用來支援記憶體熱插拔,相比其他兩個舊有的記憶體模式,代碼複雜性也比較低,而且還擁有一些性能上的優勢,對某些架構而言是唯一的可選項.其他兩個舊有的記憶體模式是:"Discontiguous Memory"和"Flat Memory".

Sparse Memory virtual memmap

CONFIG_SPARSEMEM_VMEMMAP

對于64位CPU而言,開啟此選項可以簡化pfn_to_page/page_to_pfn的操作,進而提高核心的運作效率.但是在32位平台則建議關閉.更多細節可以參考這個文章.

Enable to assign a node which has only movable memory

CONFIG_MOVABLE_NODE

允許對一個完整的NUMA節點(CPU和對應的記憶體)進行熱插拔.一般的伺服器和個人電腦不需要這麼進階的特性.

Allow for memory hot-add

CONFIG_MEMORY_HOTPLUG

支援向運作中的系統添加記憶體.也就是記憶體熱插支援.

Allow for memory hot remove

CONFIG_MEMORY_HOTREMOVE

支援從運作中的系統移除記憶體.也就是記憶體熱拔支援.

Allow for balloon memory compaction/migration

CONFIG_BALLOON_COMPACTION

允許規整/合并泡狀記憶體(balloon memory).記憶體的Ballooning技術是指虛拟機在運作時動态地調整它所占用的主控端記憶體資源,該技術在節約記憶體和靈活配置設定記憶體方面有明顯的優勢,目前所有主流虛拟化方案都支援這項技術(前提是客戶機作業系統中必須安裝有相應的balloon驅動).由于記憶體的動态增加和減少會導緻記憶體過度碎片化,特别是對于2M尺寸的連續大記憶體頁來說更加嚴重,進而嚴重降低記憶體性能.允許balloon記憶體壓縮和遷移可以很好的解決在客戶機中使用大記憶體頁時記憶體過度碎片化問題.如果你打算在虛拟機中使用大記憶體頁(huge page),那麼建議開啟,否則建議關閉.

Allow for memory compaction

CONFIG_COMPACTION

允許對大記憶體頁(huge pages)進行規整.主要是為了解決大記憶體頁的碎片問題.建議在使用大記憶體頁的情況下開啟此項,否則建議關閉.

Page migration

CONFIG_MIGRATION

允許在保持虛拟記憶體頁位址不變的情況下移動其所對應的實體記憶體頁的位置.這主要是為了解決兩個問題:(1)在NUMA系統上,将實體記憶體轉移到相應的節點上,以加快CPU與記憶體之間的通路速度.(2)在配置設定大記憶體頁的時候,可以避免碎片問題.

Enable bounce buffers

CONFIG_BOUNCE

為那些不能直接通路所有記憶體範圍的驅動程式開啟bounce buffer支援.當CONFIG_ZONE_DMA被開啟後,這個選項會被預設開啟(當然,你也可以在這裡手動關閉).這主要是為了那些不具備IOMMU功能的PCI/ISA裝置而設,但它對性能有些不利影響.在支援IOMMU的裝置上,應該關閉它而是用IOMMU來代替.

Enable KSM for page merging

CONFIG_KSM

KSM(Kernel Samepage Merging)支援:周期性的掃描那些被應用程式标記為"可合并"的位址空間,一旦發現有内容完全相同的頁面,就将它們合并為同一個頁面,這樣就可以節約記憶體的使用,但對性能有不利影響.推薦和核心虛拟機KVM(Documentation/vm/ksm.txt)或者其他支援"MADV_MERGEABLE"特性的應用程式一起使用.KSM并不預設開啟,僅在應用程式設定了"MADV_MERGEABLE"标記,并且 /sys/kernel/mm/ksm/run 被設為"1"的情況下才會生效.

Low address space to protect from user allocation

CONFIG_DEFAULT_MMAP_MIN_ADDR

2009年,核心曾經爆過一個嚴重的NULL指針漏洞,由于其根源是将NULL指針映射到位址"0"所緻,是以從2.6.32版本以後,為了防止此類漏洞再次造成嚴重後果,特别設定了此選項,用于指定受保護的記憶體低端位址範圍(可以在系統運作時通過 /proc/sys/vm/mmap_min_addr 進行調整),這個範圍内的位址禁止任何使用者态程式的寫入,以從根本上堵死此類漏洞可能對系統造成的損害.但核心這種強加的限制,對于需要使用vm86系統調用(用于在保護模式的程序中模拟8086的實模式)或者需要映射此低端位址空間的程式(bitbake,dosemu,qemu,wine,...)來說,則會造成不相容,不過目前這些程式的新版本都進行了改進,以适應核心的這種保護.一般情況下,"4096"是個明智的選擇,或者你也可以保持預設值.

Enable recovery from hardware memory errors

CONFIG_MEMORY_FAILURE

在具備MCA(Machine Check Architecture)恢複機制的系統上,允許核心在實體記憶體中的發生資料錯誤的情況下,依然堅強的糾正錯誤并恢複正常運作.這需要有相應的硬體(通常是ECC記憶體)支援.有ECC記憶體的選,沒有的就别選了.

HWPoison pages injector

CONFIG_HWPOISON_INJECT

僅用于調試.

Transparent Hugepage Support

CONFIG_TRANSPARENT_HUGEPAGE

大多數現代計算機體系結構都支援多種不同的記憶體頁面大小(比如x86_64支援4K和2M以及1G[需要cpu-flags中含有"pdpe1gb"]).大于4K的記憶體頁被稱為"大頁"(Hugepage).TLB(頁表緩存)是位于CPU内部的分頁表(虛拟位址到實體位址的映射表)緩沖區,既高速又很寶貴(尺寸很小).如果系統記憶體很大(大于4G)又使用4K的記憶體頁,那麼分頁表将會變得很大而難以在CPU内緩存,進而導緻較高的TLB不命中機率,進而降低系統的運作效率.開啟大記憶體頁支援之後,就可以使用大頁(2M或1G),進而大大縮小分頁表的尺寸以大幅提高TLB的命中率,進而優化系統性能.傳統上使用大記憶體頁的方法是通過Hugetlbfs虛拟檔案系統(CONFIG_HUGETLBFS),但是hugetlbfs需要專門進行配置以及應用程式的特别支援.是以從2.6.38版本開始引入了THP(Transparent Hugepages),目标是替代先前的Hugetlbfs虛拟檔案系統(CONFIG_HUGETLBFS).THP允許核心在可能的條件下,透明的(對應用程式來說)使用大頁(huge pages)與HugeTLB,THP不像hugetlbfs那樣需要專門進行配置以及應用程式的特别支援.THP将這一切都交給作業系統來完成,也不再需要額外的配置,對于應用程式完全透明,因而可用于更廣泛的應用程式.這對于資料庫/KVM等需要使用大量記憶體的應用來說,可以提升其效能,但對于記憶體較小(4G或更少)的個人PC來說就沒啥必要了.詳見"Documentation/vm/transhuge.txt"文檔.
Transparent Hugepage Support sysfs defaults
設定 /sys/kernel/mm/transparent_hugepage/enabled 檔案的預設值."always"表示總是對所有應用程式啟用透明大記憶體頁支援,"madvise"表示僅對明确要求該特性的程式啟用.建議選"always".

Cross Memory Support[Enable process_vm_readv/writev syscalls]

CONFIG_CROSS_MEMORY_ATTACH

交叉記憶體支援,也就是process_vm_readv()和process_vm_writev()系統調用支援.進而允許有權限的程序直接讀取/寫入另外一個程序的位址空間.現在它們隻用于openMPI快速程序通信,也可以用于調試程式.未來也許還會有其他用途.

Enable cleancache driver to cache clean pages if tmem is present

CONFIG_CLEANCACHE

Cleancache是核心VFS層新增的特性,可以被看作是記憶體頁的"Victim Cache"(受害者緩存),當回收記憶體頁時,先不把它清空,而是把其加入到核心不能直接通路的"transcendent memory"中,這樣支援Cleancache的檔案系統再次通路這個頁時可以直接從"transcendent memory"加載它,進而減少磁盤IO的損耗.目前隻有zcache和XEN支援"transcendent memory",不過将來會有越來越多的應用支援.開啟此項後即使此特性不能得到利用,也僅對性能有微小的影響,是以建議開啟.更多細節請參考"Documentation/vm/cleancache.txt"檔案.

Enable frontswap to cache swap pages if tmem is present

CONFIG_FRONTSWAP

Frontswap是和Cleancache非常類似的東西,在傳統的swap前加一道記憶體緩沖(同樣位于"transcendent memory"中).目的也是減少swap時的磁盤讀寫.CONFIG_ZSWAP依賴于它,建議開啟.

Contiguous Memory Allocator

CONFIG_CMA

這是一個配置設定連續實體記憶體頁面的配置設定器.一些比較低端的DMA裝置隻能通路連續的實體記憶體,同時透明大記憶體頁也需要連續的實體記憶體.傳統的解決辦法是在系統啟動時,在記憶體還很充足的時候,先預留一部分連續實體記憶體頁面,留作後用,但這部分記憶體就無法被挪作他用了,為了可能的配置設定需求,預留這麼一大塊記憶體,并不是一個明智的方法.而連續記憶體配置設定器(Contiguous Memory Allocator)可以做到允許這部分預留的記憶體被正常使用,僅在确實需要的時候才将大塊的連續實體記憶體配置設定給相應的驅動程式.這個機制對于那些不支援I/O map和scatter-gather的裝置很有作用.詳情參見"include/linux/dma-contiguous.h"檔案.此選項僅對嵌入式系統有意義,不确定的選"N".

Track memory changes

CONFIG_MEM_SOFT_DIRTY

在核心頁表的PTE(Page Table Entry)資料結構上添加一個"soft-dirty"位以追蹤記憶體頁内容的變化.此特性基本上專用于CRIU(Checkpoint/Restore In Userspace)項目(可以幫助容器進行熱遷移).不确定的選"N".

Compressed cache for swap pages

CONFIG_ZSWAP

ZSWAP是一個放置在swap前面的壓縮緩存,它可以将需要換出的頁壓縮存放在記憶體中的壓縮池裡,這樣在壓縮池沒有滿的時候,可以避免使用真正的swap裝置.當壓縮池滿的時候,則把最老的頁解壓後寫入swap裝置.壓縮池預設是記憶體總量的20%(/sys/module/zswap/parameters/max_pool_percent).ZSWAP不僅提升了swap的整體性能,也變相的增加了swap空間.選中此項後,可以通過"zswap.enabled=1"核心引導參數開啟此功能.

Common API for compressed memory storage

CONFIG_ZPOOL

通用的記憶體壓縮API,主要用于給zbud(zswap)或zsmalloc提供支援.不确定的選"N",如果核心有其他選項依賴于它會自動選中.

Low density storage for compressed pages

CONFIG_ZBUD

專用于zswap内部的低密度記憶體壓縮API,最多允許将兩個實體記憶體頁壓縮為一個壓縮記憶體頁,這既有優勢(簡單的空間收集及空閑空間複用)也有劣勢(潛在的低記憶體使用率).此種算法還能確定壓縮後的記憶體頁不會比最初未壓縮頁數多.不确定的選"N".

Memory allocator for compressed pages

CONFIG_ZSMALLOC

zsmalloc壓縮記憶體配置設定器主要用于給zram提供支援,建議與CONFIG_ZRAM同開關.參考:3種記憶體壓縮方案對比.

Use page table mapping to access object in zsmalloc

CONFIG_PGTABLE_MAPPING

zsmalloc預設使用基于記憶體複制的對象映射方法來通路跨越不同頁面的區域,但如果某些架構(例如ARM)執行虛拟記憶體映射的速度快于記憶體複制,那麼應該将此項選"Y",這将導緻zsmalloc使用頁表映射而不是記憶體複制來進行對象的映射.你可以在你的系統上使用"https://github.com/spartacus06/zsmapbench"腳本來測試這兩種方法的速度差異.在x86_64平台上,Debian8與Fedora22與openSUSE13此項預設為"N",而Ubuntu15此項預設為"Y",作者本人未測試過哪個更合理.

Enable idle page tracking

CONFIG_IDLE_PAGE_TRACKING

此特性跟蹤哪些使用者頁面需要被工作負載使用,哪些使用者頁面處于閑置狀态.此資訊(/sys/kernel/mm/page_idle)可用于确定工作負載需要的使用者記憶體大小.進而幫助調優記憶體cgroup限制以及決定将此任務放置到叢集中的那台機器上.參見Documentation/vm/idle_page_tracking.txt文檔.不确定的選"N".

Support non-standard NVDIMMs and ADR protected memory

CONFIG_X86_PMEM_LEGACY

支援 Intel Sandy Bridge-EP 處理器使用的不符合NVDIMM規範的非易失記憶體(以電容做後備電力且掉電後不會丢失資料的記憶體).僅有某些高端伺服器才會使用這種外帶電容供電的記憶體.

Check for low memory corruption

CONFIG_X86_CHECK_BIOS_CORRUPTION

低位記憶體髒資料檢查,即使開啟此選項,預設也不會開啟此功能(需要明确使用"memory_corruption_check=1"核心引導選項).這些髒資料通常被認為是有bug的BIOS引起的,預設每60秒(可以通過memory_corruption_check_period核心參數進行調整)掃描一次0-64k(可以通過memory_corruption_check_size核心參數進行調整)之間的區域.這種檢查所占用的開銷非常小,基本可以忽略不計.如果始終檢查到錯誤,則可以通過"memmap="核心引導參數來避免使用這段記憶體.一般沒必要選中,如果你對BIOS不放心,帶着它試運作一段時間,确認沒問題之後再去掉.

Set the default setting of memory_corruption_check

CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK

設定memory_corruption_check的預設值,選中表示預設開啟(相當于使用"memory_corruption_check=1"核心引導選項),不選中表示預設關閉.

Amount of low memory, in kilobytes, to reserve for the BIOS

CONFIG_X86_RESERVE_LOW

為BIOS設定保留的低端位址(預設是64K).記憶體的第一頁(4K)存放的必定是BIOS資料,核心不能使用,是以必須要保留.但是有許多BIOS還會在suspend/resume/熱插拔等事件發生的時候使用更多的頁(一般在0-64K範圍),是以預設保留0-64K範圍.如果你确定自己的BIOS不會越界使用記憶體的話,可以設為"4",否則請保持預設值.但是也有一些很奇葩的BIOS會使用更多的低位記憶體,這種情況下可以考慮設為"640"以保留所有640K的低位記憶體區域.

MTRR (Memory Type Range Register) support

CONFIG_MTRR

MTRR(Memory type range registers)是CPU内的一組MSR(Model-specific registers),其作用是告訴CPU以哪種模式(write-back/uncachable)存取各記憶體區段效率最高.這對于AGP/PCI顯示卡意義重大,因為write-combining技術可以将若幹個總線寫傳輸捆綁成一次較大的寫傳輸操作,可以将圖像寫操作的性能提高2.5倍或者更多.這段代碼有着通用的接口,其他CPU的寄存器同樣能夠使用該功能.簡而言之,開啟此選項是個明智的選擇.

MTRR cleanup support

CONFIG_MTRR_SANITIZER

MTRR cleanup的意思是将MTRR的連續輸出轉為離散的輸出,這樣X驅動就可以在其中添加writeback項,算是一種優化措施.建議開啟.可以使用"mtrr_chunk_size"來限制最大的連續塊尺寸.

MTRR cleanup enable value (0-1)

CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT

"1"表示預設開啟CONFIG_MTRR_SANITIZER特性,相當于使用"enable_mtrr_cleanup","0"表示預設關閉CONFIG_MTRR_SANITIZER特性,相當于使用"disable_mtrr_cleanup".建議設為"1".

MTRR cleanup spare reg num (0-7)

CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT

這裡設定的值等價于使用核心引導參數"mtrr_spare_reg_nr=N"中的"N".也就是告訴核心reg0N可以被清理或改寫(參見"/proc/mtrr"檔案).在多數情況下預設值是"1",其含義是 /proc/mtrr 中的 reg01 将會被映射.一般保持其預設值即可.修改此項的值通常是為了解決某些MTRR故障.

x86 PAT support

CONFIG_X86_PAT

PAT(Page Attribute Table)是對MTRR的補充,且比MTRR更靈活.如果你的CPU支援PAT(grep pat /proc/cpuinfo),那麼建議開啟.僅在開啟後導緻無法正常啟動或者顯示卡驅動不能正常工作的情況下才需要關閉.

x86 architectural random number generator

CONFIG_ARCH_RANDOM

Intel 從 Ivy Bridge 微架構開始(對于Atom來說是從Silvermont開始),在CPU中內建了一個高效的硬體随機數生成器(稱為"Bull Mountain"技術),并引入了一個新的x86指令"RDRAND",可以非常高效的産生随機數.此選項就是對此特性的支援.

Supervisor Mode Access Prevention

CONFIG_X86_SMAP

SMAP(Supervisor Mode Access Prevention)是Intel從Haswell微架構開始引入的一種新特征,它在CR4寄存器上引入一個新标志位SMAP,如果這個标志為1,核心通路使用者程序的位址空間時就會觸發一個頁錯誤,目的是為了防止核心因為自身錯誤意外通路使用者空間,這樣就可以避免一些核心漏洞所導緻的安全問題.但是由于核心在有些時候仍然需要通路使用者空間,是以intel提供了兩條指令STAC和CLAC用于臨時打開/關閉這個功能,反複使用STAC和CLAC會帶來一些輕微的性能損失,但考慮到增加的安全性,還是建議開啟.

Intel MPX (Memory Protection Extensions)

CONFIG_X86_INTEL_MPX

Intel MPX(記憶體保護擴充)是一種用于檢測緩沖區溢出bug的硬體特性.此選項并非用于保護核心自身,而是用于允許應用程式利用MPX特性.可以通過"grep mpx /proc/cpuinfo"檢查你的CPU是否支援MPX特性.詳見Documentation/x86/intel_mpx.txt文檔.不确定的選"N".

EFI runtime service support

CONFIG_EFI

EFI/UEFI支援.如果你打算在UEFI/EFI平台上安裝Linux(2010年之後的機器基本都已經是UEFI規格了),那麼就必須開啟此項(開啟後也依然可以在傳統的BIOS機器上啟動).UEFI啟動流程與傳統的BIOS相差很大.雖然Linux受到了所謂"安全啟動"問題的阻撓(已經解決),但是UEFI依然将迅速一統江湖.[提示]在UEFI平台上安裝Linux的關鍵之一是首先要用一個支援UEFI啟動的LiveCD以UEFI模式啟動機器.

EFI stub support

CONFIG_EFI_STUB

EFI stub 支援.如果開啟此項,就可以不通過GRUB2之類的引導程式來加載核心,而直接由EFI固件進行加載,這樣就可以不必安裝引導程式了.不過這是一個看上去很美的特性,由于EFI固件靈活性比GRUB2差許多,是以缺點有三:(1)不能在傳統的BIOS機器上啟動.(2)給核心傳遞引導參數很麻煩(需要使用"efibootmgr -u").(3)不能使用intrd.不過,針對後兩點的解決辦法是:使用CONFIG_CMDLINE和CONFIG_INITRAMFS_SOURCE.更多細節可參考"Documentation/x86/efi-stub.txt"文檔.

EFI mixed-mode support

CONFIG_EFI_MIXED

允許在32位固件上啟動64位核心.選"N".

Enable seccomp to safely compute untrusted bytecode

CONFIG_SECCOMP

允許使用SECCOMP技術安全地運算非信任代碼.通過使用管道或其他程序可用的通信方式作為檔案描述符(支援讀/寫調用),就可以利用SECCOMP把這些應用程式隔離在它們自己的位址空間.這是一種有效的安全沙盒技術.systemd也強烈建議開啟它.除非你是嵌入式系統,否則不要關閉.

Enable -fstack-protector buffer overflow detection

CONFIG_CC_STACKPROTECTOR

開啟GCC的"-fstack-protector"指令行選項,以使用GCC中的編譯器堆棧保護技術.這樣可以有效的防禦以堆棧溢出為代表的緩沖區溢出攻擊,不過系統的運作速度也會受到一些影響.伺服器之類強調安全的場合建議開啟,個人PC之類的就不是很有必要了.
Timer frequency
核心時鐘頻率.對于要求快速響應的場合,比如桌面環境,建議使用1000Hz,而對于不需要快速響應的SMP/NUMA伺服器,建議使用250Hz或100Hz或300Hz(主要處理多媒體資料).

kexec system call

CONFIG_KEXEC

提供kexec系統調用,可以不必重新開機而切換到另一個核心(不一定必須是Linux核心),不過這個特性并不總是那麼可靠.如果你不确定是否需要它,那麼就是不需要.

kernel crash dumps

CONFIG_CRASH_DUMP

當核心崩潰時自動導出運作時資訊的功能,主要用于調試目的.更多資訊請參考"Documentation/kdump/kdump.txt"檔案.

kexec jump

CONFIG_KEXEC_JUMP

kexec jump 支援.這是對CONFIG_KEXEC的增強功能,僅在你确實明白這是幹啥的情況下再開啟,否則請關閉.

Physical address where the kernel is loaded

CONFIG_PHYSICAL_START

加載核心的實體位址.如果核心不是可重定位的(CONFIG_RELOCATABLE=n),那麼bzImage會将自己解壓到該實體位址并從此位址開始運作,否則,bzImage将忽略此處設定的值,而從引導裝載程式将其裝入的實體位址開始運作.僅在你确實知道自己是在幹什麼的情況下才可以改變該值,否則請保持預設.

Build a relocatable kernel

CONFIG_RELOCATABLE

使核心可以在浮動的實體記憶體位置加載,主要用于調試目的.僅在你确實知道為什麼需要的時候再開啟,否則請關閉.

Support for hot-pluggable CPUs

CONFIG_HOTPLUG_CPU

熱插拔CPU支援(通過 /sys/devices/system/cpu 進行控制).

Set default setting of cpu0_hotpluggable

CONFIG_BOOTPARAM_HOTPLUG_CPU0

開啟/關閉此項的意思是設定"cpu0_hotpluggable"的預設值為"on/off".開啟此項表示預設将CPU0設定為允許熱插拔.

Debug CPU0 hotplug

CONFIG_DEBUG_HOTPLUG_CPU0

僅用于調試目的.

Compat VDSO support

CONFIG_COMPAT_VDSO

是否将VDSO(Virtual Dynamic Shared Object)映射到舊式的确定性位址.如果Glibc版本大于等于2.3.3選"N",否則就選"Y".
vsyscall table for legacy applications
設定核心引導參數"vsyscall=[native|emulate|none]"的值.對于使用Glibc-2.14以上版本的系統來說,如果不需要使用特别老舊的靜态二進制程式,應該将此項設為"None"以提升性能與安全性.

Built-in kernel command line

CONFIG_CMDLINE_BOOL

将核心引導參數直接編進來.在無法向核心傳遞引導參數的情況下(比如在嵌入式系統上,或者想使用 EFI stub kernel),這就是唯一的救命稻草了.如果你使用grub之類的引導管理器,那麼就可以不需要此特性.

Built-in kernel command string

CONFIG_CMDLINE

将要編譯進核心的引導參數字元串.

Built-in command line overrides boot loader arguments

CONFIG_CMDLINE_OVERRIDE

開啟此項表示完全忽略引導加載器傳遞過來的參數,并僅僅隻使用CONFIG_CMDLINE所指定的參數.通常情況下建議關閉此項,除非你确定引導加載器在傳遞核心引導參數的時候不能正常工作.

Enable the LDT (local descriptor table)

CONFIG_MODIFY_LDT_SYSCALL

Linux允許使用者空間的應用程式使用modify_ldt(2)系統調用針對每個CPU安裝Local Descriptor Table (LDT).某些老舊的程式或者運作在DOSEMU/Wine中的程式需要使用此接口.不确定的選"N"(尤其是嵌入式系統與伺服器).

Power management and ACPI options

電源管理和ACPI選項

Suspend to RAM and standby

CONFIG_SUSPEND

"休眠到記憶體"(ACPI S3)支援.也就是系統休眠後,除了記憶體之外,其他所有部件都停止工作,重開機之後可以直接從記憶體中恢複運作狀态.要使用此功能,你需要執行"echo mem > /sys/power/state"指令,還需要在BIOS中開啟S3支援,否則可能會有問題.

Enable freezer for suspend to RAM/standby

CONFIG_SUSPEND_FREEZER

選"Y".除非你知道自己在做什麼

Hibernation (aka \'suspend to disk\')

CONFIG_HIBERNATION

"休眠到硬碟"(ACPI S4)支援.也就是将記憶體的内容儲存到硬碟(hibernation),所有部件全都停止工作.要使用此功能,你首先需要使用核心引導參數"resume=/dev/swappartition",然後執行"echo disk > /sys/power/state"指令.如果你不想從先前的休眠狀态中恢複,那麼可以使用"noresume"核心引導參數.更多資訊,可以參考"Documentation/power/swsusp.txt"檔案.

Default resume partition

CONFIG_PM_STD_PARTITION

預設的休眠分區.這個分區必須是swap分區.不過這裡設定的值會被明确的核心引導參數中的值覆寫.

Opportunistic sleep

CONFIG_PM_AUTOSLEEP

這是一種從安卓借鑒過來的休眠方式.這個特性在安卓系統上被稱為"suspend blockers"或"wakelocks".這是一種更激進的電源管理模式,以盡可能節約電力為目的.系統預設就處于休眠狀态,僅為記憶體和少數喚醒系統所必須的裝置供電,當有任務(喚醒源)需要運作的時候才喚醒相關元件工作,工作完成後又立即進入休眠狀态.不過這些特性需要相應的裝置驅動程式的支援.目前除了安卓裝置,在PC和伺服器領域,能夠利用此特性的驅動還比較少,不過這是一項非常有前途的電源技術,喜歡嘗鮮的可以考慮開啟.

User space wakeup sources interface

CONFIG_PM_WAKELOCKS

允許使用者空間的程式通過sys檔案系統接口,建立/激活/撤銷系統的"喚醒源".需要與CONFIG_PM_AUTOSLEEP配合使用.

Maximum number of user space wakeup sources (0 = no limit)

CONFIG_PM_WAKELOCKS_LIMIT

使用者空間程式允許使用的"喚醒源"數量,"0"表示無限,最大值是"100000".

Garbage collector for user space wakeup sources

CONFIG_PM_WAKELOCKS_GC

對"喚醒源"對象使用垃圾回收.主要用于調試目的和Android環境.

Run-time PM core functionality[Device power management core functionality]

CONFIG_PM_RUNTIME

CONFIG_PM

允許IO裝置(比如硬碟/網卡/聲霸卡)在系統運作時進入省電模式,并可在收到(硬體或驅動産生的)喚醒信号後恢複正常.此功能通常需要硬體的支援.建議在筆記本/嵌入式等需要節約電力的裝置上選"Y".

Power Management Debug Support

CONFIG_PM_DEBUG

僅供調試使用

Enable workqueue power-efficient mode by default

CONFIG_WQ_POWER_EFFICIENT_DEFAULT

因為"per-cpu workqueue"的緩存更靠近對應的CPU,是以它比"unbound workqueue"擁有更好的性能,但另一方面"per-cpu workqueue"通常又比"unbound workqueue"需要消耗更多的電能.選中此項表示預設開啟"workqueue.power_efficient"核心引導參數,以使用"unbound workqueue"而不是"per-cpu workqueue"以降低功耗,但是性能會有微小的損失.

ACPI (Advanced Configuration and Power Interface) Support

CONFIG_ACPI

進階配置與電源接口(Advanced Configuration and Power Interface)包括了軟體和硬體方面的規範,目前已被軟硬體廠商廣泛支援,并且取代了許多過去的配置與電源管理接口,包括 PnP BIOS (Plug-and-Play BIOS), MPS(CONFIG_X86_MPPARSE), APM(Advanced Power Management) 等.總之,ACPI已經成為x86平台必不可少的元件,如果你沒有特别的理由,務必選中此項.

AML debugger interface (EXPERIMENTAL)

CONFIG_ACPI_DEBUGGER

僅供調試使用.

Deprecated /proc/acpi files

CONFIG_ACPI_PROCFS

過時的 /proc/acpi 接口支援,建議關閉.

Deprecated power /proc/acpi directories

CONFIG_ACPI_PROCFS_POWER

過時的 /proc/acpi 接口支援,建議關閉.

Allow supported ACPI revision to be overriden

CONFIG_ACPI_REV_OVERRIDE_POSSIBLE

某些筆記本固件會根據作業系統支援的ACPI版本決定硬體的工作模式.例如 Dell XPS 13 (2015) 期望作業系統支援"ACPI v5"規範,但Linux實際上隻支援"ACPI v4"規範,此時固件會将聲霸卡的工作模式從HDA模式(Linux支援此模式,且為首選模式)轉換成I2S模式(次選模式).選中此項後,将強制Linux核心哄騙固件說它支援"ACPI v5"規範,相當于使用了"acpi_rev_override"核心引導參數.

EC read/write access through /sys/kernel/debug/ec

CONFIG_ACPI_EC_DEBUGFS

僅供調試使用.

Deprecated /proc/acpi/event support

CONFIG_ACPI_PROC_EVENT

過時的 /proc/acpi/event 接口支援,建議關閉.

AC Adapter

CONFIG_ACPI_AC

允許在外接交流電源和内置電池之間進行切換.

Battery

CONFIG_ACPI_BATTERY

允許通過 /proc/acpi/battery 接口檢視電池資訊.

Button

CONFIG_ACPI_BUTTON

允許守護程序通過 /proc/acpi/event 接口捕獲power/sleep/lid(合上筆記本)按鈕事件,并執行相應的動作,軟關機(poweroff)也需要它的支援.

Video

CONFIG_ACPI_VIDEO

對主機闆上的內建顯示卡提供ACPI支援.注意:僅支援內建顯示卡.

Fan

CONFIG_ACPI_FAN

允許使用者層的程式對風扇進行控制(開/關/查詢狀态)

Dock

CONFIG_ACPI_DOCK

支援相容ACPI規範的擴充塢(比如 IBM Ultrabay 和 Dell Module Bay)支援.

Processor

CONFIG_ACPI_PROCESSOR

在支援 ACPI C2/C3 的CPU上,将ACPI安裝為idle處理程式.有幾種CPU頻率調節驅動依賴于它.而且目前的CPU都已經支援ACPI規範,建議開啟此項.

IPMI

CONFIG_ACPI_IPMI

允許ACPI使用IPMI(智能平台管理接口)的請求/應答消息通路BMC(主機闆管理控制器).IPMI通常出現在伺服器中,以允許通過諸如ipmitool這樣的工具監視伺服器的實體健康特征(溫度/電壓/風扇狀态/電源狀态).

Processor Aggregator

CONFIG_ACPI_PROCESSOR_AGGREGATOR

支援 ACPI 4.0 加入的處理器聚合器(processor Aggregator)功能,以允許作業系統對系統中所有的CPU進行統一的配置和控制.目前隻支援邏輯處理器(也就是利用Intel超線程技術虛拟出來的CPU)idling功能,其目标是降低耗電量.不确定的應該選"N".在某些伺服器上此驅動(acpi_pad)可能與BIOS中的節能功能沖突

Thermal Zone

CONFIG_ACPI_THERMAL

ACPI thermal zone 支援.系統溫度過高時可以及時調整風扇的工作狀态以避免你的CPU被燒毀.目前所有CPU都支援此特性.務必開啟.參見CONFIG_THERMAL選項.

NUMA support

CONFIG_ACPI_NUMA

通過讀取系統固件中的ACPI表,獲得NUMA系統的CPU及實體記憶體分布資訊.NUMA系統必選.

Custom DSDT Table file to include

CONFIG_ACPI_CUSTOM_DSDT_FILE

允許将一個定制過的DSDT編譯進核心.詳情參見"Documentation/acpi/dsdt-override.txt"文檔.看不懂的請保持空白.

ACPI tables override via initrd

CONFIG_ACPI_INITRD_TABLE_OVERRIDE

允許initrd更改 ACPI tables 中的任意内容. ACPI tables 是BIOS提供給OS的硬體配置資料,包括系統硬體的電源管理和配置管理.詳情參見"Documentation/acpi/initrd_table_override.txt"檔案.

Debug Statements

CONFIG_ACPI_DEBUG

詳細的ACPI調試資訊,不搞開發就别選.

PCI slot detection driver

CONFIG_ACPI_PCI_SLOT

将每個PCI插槽都作為一個單獨的條目列在 /sys/bus/pci/slots/ 目錄中,有助于将裝置的實體插槽位置與邏輯的PCI總線位址進行對應.不确定的選"No".

Power Management Timer Support

CONFIG_X86_PM_TIMER

ACPI PM Timer,簡稱"ACPI Timer",是一種內建在主機闆上的硬體時鐘發生器,提供3.579545MHz固定頻率.這是比較傳統的硬體時鐘發生器(HPET則是比較新型的硬體時鐘發生器),目前所有的主機闆都支援,而且是ACPI規範不可分割的部分.除非你确定不需要,否則必選.

Container and Module Devices

CONFIG_ACPI_CONTAINER

支援 NUMA節點/CPU/記憶體 的熱插拔. Device ID: ACPI0004, PNP0A05, PNP0A06 (find /sys/devices/ -name "PNP0A0[56]*" -or -name "ACPI0004*")

Memory Hotplug

CONFIG_ACPI_HOTPLUG_MEMORY

記憶體熱插拔支援. Device ID: PNP0C80 (find /sys/devices/ -name "PNP0C80*")

Smart Battery System

CONFIG_ACPI_SBS

智能電池系統(Smart Battery System)可以讓筆記型電腦顯示及管理詳細精确的電池狀态資訊.使用锂電池的筆記本電腦必備利器.但遺憾的是并不是所有筆記本都支援這項特性.

Hardware Error Device

CONFIG_ACPI_HED

Hardware Error Device (Device ID: PNP0C33) 能夠通過 SCI 報告一些硬體錯誤(通常是已經被糾正的錯誤).如果你的系統中有裝置ID為"PNP0C33"的裝置(find /sys/devices/ -name "PNP0C33*"),那麼就選上.

Allow ACPI methods to be inserted/replaced at run time

CONFIG_ACPI_CUSTOM_METHOD

允許在不斷電的情況下直接對ACPI的功能進行删改,包含一定危險性,它允許root任意修改記憶體中核心空間的内容.僅用于調試.

Boottime Graphics Resource Table support

CONFIG_ACPI_BGRT

在 /sys/firmware/acpi/bgrt/ 中顯示 ACPI Boottime Graphics Resource Table ,以允許作業系統擷取固件中的啟動畫面(splash).

Hardware-reduced ACPI support only

CONFIG_ACPI_REDUCED_HARDWARE_ONLY

以"reduced hardware"模式編譯核心的ACPI代碼,進而獲得體積更小的核心但僅能運作在ACPI "reduced hardware"模式的硬體上.不确定的選"N".

ACPI NVDIMM Firmware Interface Table (NFIT)

CONFIG_ACPI_NFIT

非易失性記憶體(NVDIMM)支援.此種記憶體使用超級電容作為後備電力,并且使用非揮發性的flash存儲媒體來儲存資料,以使資料能夠在掉電之後依然儲存.這是一種很有前途的技術,但是目前筆記本與普通伺服器并不使用這種記憶體.

ACPI Platform Error Interface (APEI)

CONFIG_ACPI_APEI

進階平台錯誤接口(ACPI Platform Error Interface)是RAS(Reliability, Availability and Serviceability)的一部分,是定義在 ACPI 4.0 規範中的一個面向硬體錯誤管理的接口,主要是為了統一 firmware/BIOS 和 OS 之間的錯誤互動機制,使用标準的錯誤接口進行管理,同時也擴充了錯誤接口的内容以便實作更加靈活豐富的功能.

APEI Generic Hardware Error Source

CONFIG_ACPI_APEI_GHES

"Firmware First Mode"支援.由于BIOS/FIRMWARE是平台相關的,是以BIOS/FIRMWARE比OS更清楚硬體平台的配置情況,甚至包含各種必須的修正/定制/優化.這樣,在"Firmware First"模式下,BIOS/FIRMWARE利用這一優勢,可以有針對性的對發生的硬體錯誤進行分析/處理/分發,也可以更準确的記錄錯誤的現場資訊.這樣,不但對硬體錯誤可以做出更準确,更複雜的處理,而且可以降低OS的複雜性和備援度.建議開啟.

APEI PCIe AER logging/recovering support

CONFIG_ACPI_APEI_PCIEAER

讓 PCIe AER errors 首先通過 APEI firmware 進行報告.

APEI memory error recovering support

CONFIG_ACPI_APEI_MEMORY_FAILURE

讓 Memory errors 首先通過 APEI firmware 進行報告.

APEI Error INJection (EINJ)

CONFIG_ACPI_APEI_EINJ

僅供調試使用.

APEI Error Record Serialization Table (ERST) Debug Support

CONFIG_ACPI_APEI_ERST_DEBUG

僅供調試使用

Extended Error Log support

CONFIG_ACPI_EXTLOG

伺服器CPU一般都會在非核心寄存器中記錄比CONFIG_X86_MCE故障更詳細的額外資訊,諸如PFA(Predictive Failure Analysis)之類的故障預警系統需要收集這些資訊.但由于這些非核心寄存器的位置差别很大沒有統一标準,系統軟體難以直接讀取這些擴充的錯誤資訊.此驅動可以在MCE或CMCI機制之外,将系統固件提供的這些額外擴充錯誤資訊導出到使用者空間.不确定的選"N".

PMIC (Power Management Integrated Circuit) operation region support

CONFIG_PMIC_OPREGION

電源管理晶片(PMIC)支援.此種晶片常用于以電池作為電源的嵌入式裝置.

SFI (Simple Firmware Interface) Support

CONFIG_SFI

簡單固件接口規範(Simple Firmware Interface)使用一種輕量級的簡單方法(通過記憶體中的一張靜态表格)從firmware向作業系統傳遞資訊.目前這個規範僅用于第二代 Intel Atom 平台,其核心名稱是"Moorestown".

CPU Frequency scaling

CONFIG_CPU_FREQ

CPUfreq子系統允許動态改變CPU主頻,達到省電和降溫的目的.現如今的CPU都已經支援動态頻率調整,建議開啟.不過,如果你是為虛拟機編譯核心,就沒有必要開啟了,由主控端核心去控制就OK了.

CPU frequency translation statistics

CONFIG_CPU_FREQ_STAT

通過sysfs檔案系統輸出CPU頻率變化的統計資訊

CPU frequency translation statistics details

CONFIG_CPU_FREQ_STAT_DETAILS

輸出更詳細的CPU頻率變化統計資訊
Default CPUFreq governor
預設的CPU頻率調節政策.不同政策擁有不同的調節效果.

\'performance\' governor

CONFIG_CPU_FREQ_GOV_PERFORMANCE

\'性能\'優先,靜态的将頻率設定為cpu支援的最高頻率.最耗電,發熱量最大,性能/效率比最低.不建議使用.

\'powersave\' governor

CONFIG_CPU_FREQ_GOV_POWERSAVE

\'節能\'優先,靜态的将頻率設定為cpu支援的最低頻率,嚴重影響性能.此調控器事實上并不能節省電能,因為系統需要花更長的時間才能進入空閑狀态(C1E,C3,C6).不建議使用.

\'userspace\' governor for userspace frequency scaling

CONFIG_CPU_FREQ_GOV_USERSPACE

既允許手動調整cpu頻率,也允許使用者空間的程式動态的調整cpu頻率(需要額外的調頻軟體).比較麻煩,不建議使用.

\'ondemand\' cpufreq policy governor

CONFIG_CPU_FREQ_GOV_ONDEMAND

\'随需應變\',核心周期性的考察CPU負載,當CPU負載超過/低于設定的百分比門檻值(/sys/devices/system/cpu/cpufreq/ondemand/up_threshold)時,就自動将cpu頻率設為最高/最低值(也就是僅在最高和最低頻率間切換),比較适合桌上型電腦.[優化建議]将"up_threshold"設為95左右,可以獲得更高的"性能/瓦特"比.

\'conservative\' cpufreq governor

CONFIG_CPU_FREQ_GOV_CONSERVATIVE

\'保守\',和\'ondemand\'相似,核心同樣周期性的考察CPU負載,但是頻率的升降是漸變式的(通常隻在相鄰的兩檔頻率間切換,但具體取決于"/sys/devices/system/cpu/cpufreq/conservative/freq_step"的百分比設定,設為"100"則等價于僅允許在最高和最低頻率間切換):當CPU負載超過百分比上限(/sys/devices/system/cpu/cpufreq/conservative/up_threshold)時,就自動提升一檔CPU頻率;當CPU負載低于百分比下限(/sys/devices/system/cpu/cpufreq/conservative/down_threshold)時,就自動降低一檔CPU頻率.更适合用于筆記本/PDA/x86_64環境.[優化建議]\'conservative\'在預設設定下的"性能/瓦特"比通常不如\'ondemand\'優秀,但是優化設定之後情況則可能反轉.例如,在"down_threshold=93,up_threshold=97"的情況下,可以比"up_threshold=95"的\'ondemand\'略有優勢.
x86 CPU frequency scaling drivers
CPU頻率調節器驅動

Intel P state control

CONFIG_X86_INTEL_PSTATE

此驅動是專用于Intel的"Sandy Bridge"/"Ivy Bridge"/"Haswell"或更新CPU微架構的首選驅動,可以更好的支援"Turbo Boost 2.0"技術.

Processor Clocking Control interface driver

CONFIG_X86_PCC_CPUFREQ

PCC(Processor Clocking Control)接口支援.此種接口僅對某些HP Proliant系列伺服器有意義.更多細節可以參考"Documentation/cpu-freq/pcc-cpufreq.txt"檔案.

ACPI Processor P-States driver

CONFIG_X86_ACPI_CPUFREQ

此驅動同時支援Intel和AMD的CPU,這是較老的intel cpu與非intel cpu首選的驅動(除非你的CPU是古董級别).注意:對于可以使用P-state驅動的Intel CPU來說,應該選"N".

Legacy cpb sysfs knob support for AMD CPUs

CONFIG_X86_ACPI_CPUFREQ_CPB

為了相容舊的使用者空間程式而設定,建議關閉.

AMD Opteron/Athlon64 PowerNow!

CONFIG_X86_POWERNOW_K8

過時的驅動,僅為老舊的K8核心的AMD處理器提供支援.K10以及更新的CPU應該使用CONFIG_X86_ACPI_CPUFREQ驅動.

AMD frequency sensitivity feedback powersave bias

CONFIG_X86_AMD_FREQ_SENSITIVITY

如果你使用 AMD Family 16h 或者更進階别的處理器,同時又使用"ondemand"頻率調節器,開啟此項可以更有效的進行頻率調節(在保證性能的前提下更節能).

Intel Enhanced SpeedStep (deprecated)

CONFIG_X86_SPEEDSTEP_CENTRINO

已被時代抛棄的驅動,僅對老舊的迅馳平台 Intel Pentium M 或者 Intel Xeons 處理器有意義.

Intel Pentium 4 clock modulation

CONFIG_X86_P4_CLOCKMOD

已被時代抛棄的驅動,僅對支援老舊的Speedstep技術的 Intel Pentium 4 / XEON 處理器有意義.而且即便是在這樣的CPU上,因為種種相容性問題可能導緻的不穩定,也不建議開啟.

CPU idle PM support

CONFIG_CPU_IDLE

CPU idle 指令支援,該指令可以讓CPU在空閑時"打盹"以節約電力和減少發熱.隻要是支援ACPI的CPU就應該開啟.由于所有64位CPU都已支援ACPI,是以不必猶豫,開啟![提示]為虛拟機編譯的核心就沒有必要開啟了,由主控端核心去控制就OK了.

Support multiple cpuidle drivers

CONFIG_CPU_IDLE_MULTIPLE_DRIVERS

允許CONFIG_CPU_IDLE為每個不同的CPU使用不同的驅動.僅在你的系統由多個不同型号的CPU組成,并且具有不同的喚醒潛伏時間和狀态的時候才需要開啟.

Cpuidle Driver for Intel Processors

CONFIG_INTEL_IDLE

專用于Intel CPU的cpuidle驅動.而CONFIG_CPU_IDLE則可用于非Intel的CPU.
Memory power savings
記憶體節能

Intel chipset idle memory power saving driver

CONFIG_I7300_IDLE

在某些具備記憶體節能特性的intel伺服器晶片組上,讓記憶體也可以在空閑時通過idle指令"打盹".這些晶片組必須具備 I/O AT 支援(例如 Intel 7300).同時記憶體也需要支援此特性.

Bus options (PCI etc.)

總線選項

PCI support

CONFIG_PCI

PCI是最重要的内部總線,不但PCI與PCI Express裝置依賴于它,而且USB/IDE/SATA/SCSI/火線(IEEE 1394)/PCMCIA/CardBus等各種内部和外部總線也都依賴于它.是以必須選"Y",除非你知道自己在幹什麼.

Support mmconfig PCI config space access

CONFIG_PCI_MMCONFIG

允許通過mmconfig方式通路PCI config space,這種通路方式比傳統的IO方式速度更快.建議開啟.MMCONFIG的意思是"Memory-Mapped config",它是PCI Express引入的新總線枚舉方式.背景知識:PCI裝置都有一組叫做\'Configuration Space\'的寄存器,PCI-E裝置在PCI的基礎上又增加了一組叫做\'Extended Configuration Space\'的寄存器.這些寄存器都被映射到了記憶體中(Memory-Mapped),作業系統理應提供相應的API供裝置驅動和診斷程式通路這些\'Configuration Space\'.但如果作業系統沒有提供Memory-Mapped方式的API的話,這些驅動程式和診斷程式就必須自己根據作業系統的底層規則(IO方式)去通路,這顯然就增加了開發難度.這個選項的目的就是提供Memory-Mapped方式的API.

Read CNB20LE Host Bridge Windows

CONFIG_PCI_CNB20LE_QUIRK

CNB20LE晶片組PCI熱插拔支援.除非你非常明确的知道你需要它,否則請關閉此項.

PCI Express support

CONFIG_PCIEPORTBUS

PCI Express是PCI的更新版并在軟體層與PCI相容,其目标是統一電腦内部總線.基本上隻要不是古董機,都早已支援PCI-E了.選"Y".

PCI Express Hotplug driver

CONFIG_HOTPLUG_PCI_PCIE

如果你的主機闆和裝置都支援PCI Express熱插拔就可以選上.

Root Port Advanced Error Reporting support

CONFIG_PCIEAER

PCI Express Root Port Advanced Error Reporting (AER) 驅動支援.這樣,發送到 Root Port 的 Error reporting messages 就會由 PCI Express AER 處理.建議開啟.背景知識:PCI Express 定義了兩種錯誤報告範例:(1)baseline,所有PCI-E元件都必須要支援,功能也比較基礎.(2)AER(Advanced Error Reporting),功能比較進階,也更可靠,但并不要求所有元件都支援.

PCI Express ECRC settings control

CONFIG_PCIE_ECRC

允許覆寫firmware/bios設定的 PCI Express ECRC(端對端循環備援校驗).建議關閉,除非你确實知道為什麼要開啟.

PCIe AER error injector support

CONFIG_PCIEAER_INJECT

允許 PCI-E AER 注入,僅用于測試目的.

PCI Express ASPM control

CONFIG_PCIEASPM

PCI Express ASPM(Active State Power Management) 和 Clock Power Management 支援.這是PCI-E規範制定的一種電源管理方案,可以在裝置空閑時采用節電模式.建議開啟.ASPM可以在運作時通過 /sys/module/pcie_aspm/parameters/policy 進行開啟或關閉.

Debug PCI Express ASPM

CONFIG_PCIEASPM_DEBUG

僅供調試.
Default ASPM policy
預設的ASPM電源管理政策.下面的三個選項:"BIOS default"表示使用BIOS中的設定作為預設."Powersave"表示在可能的情況下,預設使用"L0s"和"L1",以盡可能節約電力."Performance"表示禁止使用"L0s"和"L1"(即使BIOS開啟也同樣禁止),以保證最高性能.

Message Signaled Interrupts (MSI and MSI-X)

CONFIG_PCI_MSI

PCI/PCI-E支援三類中斷:(1)INTx使用傳統的IRQ中斷,可以與現行的驅動程式和作業系統相容.(2)MSI是PCI2.2規範中新增的,通過寫入特殊的記憶體位址來觸發和發送中斷,該種方式脫離了中斷引腳帶來的數目限制,并且延遲小/效率高.不過MSI方式将中斷全部落在單個CPU上,對多核CPU利用不佳.(3)MSI-X是在PCI3.0規範中新增的,在MSI的基礎上,支援更多的消息數量以及獨立的消息位址,可以自動在多個CPU上分擔中斷,更适合多CPU系統.建議開啟.開啟後,也可以使用"pci=nomsi"核心引導參數關閉MSI特性.

PCI Debugging

CONFIG_PCI_DEBUG

将PCI調試資訊輸出到系統日志裡.如果你想診斷PCI裝置的故障,可以開啟,否則應該關閉.

Enable PCI resource re-allocation detection

CONFIG_PCI_REALLOC_ENABLE_AUTO

讓核心自動檢測"是否需要重新配置設定PCI資源".即使此項已開啟,你依然可以用"pci=realloc=[on|off]"來覆寫它.此項僅在已開啟CONFIG_PCI_IOV的情況下才有意義.此時,如果BIOS沒有為SR-IOV(Single-Root I/O Virtualization) BAR(基位址寄存器)配置設定資源,那麼核心将會自動對PCI資源進行重新配置設定.不确定的選"N".

PCI Stub driver

CONFIG_PCI_STUB

PCI裝置穿透(PCI Stub)的作用是将屬主機的PCI裝置跟目前綁定的驅動分離,暫時由其接管,最後再交給虛拟機内的客戶作業系統自己去驅動這個PCI裝置(例如網卡穿透/顯示卡穿透),以獲得高性能.由于USB等所有外圍裝置實際上也都是連接配接在PCI總線上的,是以此功能同樣适合各種外圍裝置,例如U盤加密狗之類.

Xen PCI Frontend

CONFIG_XEN_PCIDEV_FRONTEND

如果你使用XEN的半虛拟化技術,并且你的硬體支援IOMMU,那麼可以開啟此項,否則應該關閉.

Interrupts on hypertransport devices

CONFIG_HT_IRQ

允許本地的HyperTransport裝置使用中斷.這個隻可用于AMD平台,Intel平台不支援這個.

PCI IOV support

CONFIG_PCI_IOV

PCI I/O Virtualization支援.這需要硬體支援IOMMU技術(AMD-Vi,Intel VT-d).

PCI PRI support

CONFIG_PCI_PRI

PCI Page Request Interface 支援.它允許IOMMU之後的裝置能夠從頁錯誤中恢複過來.這需要硬體支援IOMMU技術(AMD-Vi,Intel VT-d).

PCI PASID support

CONFIG_PCI_PASID

PASID(Process Address Space Identifiers)可以被PCI裝置用來同時通路多個IO位址空間.這需要硬體IOMMU技術(AMD-Vi,Intel VT-d)支援PASID特性.不确定的選"N".

PCI IO-APIC hotplug support

CONFIG_PCI_IOAPIC

PCI IO-APIC 熱插拔支援.

ISA-style DMA support

CONFIG_ISA_DMA_API

ISA-style DMA控制器支援.目前基本隻有LPC總線裝置需要使用,最常見的是序列槽,并口,PS/2鍵盤,Super I/O晶片(可以使用Superiotool和sensors-detect工具檢測).不确定的選"Y".[說明]這是一個曆史遺留問題,對于ISA架構,DMA操作是由一個專用的"DMA控制器"(最常見的是Intel 8237)來執行的,但是到了PCI架構,由于每一個PCI裝置都可以控制PCI總線(成為"bus master")并直接讀寫系統記憶體,是以"DMA控制器"又消失了.此選項隻是為那些需要"ISA-DMA控制器"的裝置提供了相容性接口(API)而已.

PCCard (PCMCIA/CardBus) support

CONFIG_PCCARD

PCCard(PCMCIA/CardBus/ExpressCard)接口通常出現在筆記本電腦上,這些接口卡通常大小與信用卡差不多,厚度大約3-5毫米.注意:必須要配合pcmciautils工具才能正常使用PCMCIA裝置.

16-bit PCMCIA support

CONFIG_PCMCIA

老舊的 16-bit PCMCIA 卡支援

Load CIS updates from userspace

CONFIG_PCMCIA_LOAD_CIS

有些PCMCIA卡需要從使用者空間更新CIS(Card Information Structure)之後才能正常工作.開啟此項後,核心将可以使用内置的固件加載器和熱插拔子系統自動加載CIS,而不再需要使用者空間工具的輔助.建議選"Yes".

32-bit CardBus support

CONFIG_CARDBUS

常見的PCMCIA卡基本上都是32位的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裝置的故障,可以開啟,否則應該關閉.
{省略的部分請按照自己實際使用的控制器進行選擇}

Mark VGA/VBE/EFI FB as generic system framebuffer

CONFIG_X86_SYSFB

此選項的主要是為simplefb(可作為VGA/VBE/EFI FB的單一替代品通用于BIOS和UEFI平台)提供支援,僅在你确實需要開啟CONFIG_FB_SIMPLE選項時才需要選"Y",否則請選"N".

Executable file formats / Emulations

可執行檔案格式/仿真

Kernel support for ELF binaries

CONFIG_BINFMT_ELF

ELF是最常用的跨平台二進制檔案格式,支援動态連接配接,支援不同的硬體平台,支援不同的作業系統.必選,除非你知道自己在做什麼.

Write ELF core dumps with partial segments

CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS

如果你打算在此Linux上開發應用程式或者幫助别人調試bug,那麼就選"Y",否則選"N".注意這裡的調試和開發不是指核心調試和開發,是應用程式的調試和開發.

Kernel support for scripts starting with #!

CONFIG_BINFMT_SCRIPT

支援以"#!/path/to/interpreter"行開頭的腳本.務必"Y",不要"M"或"N",除非你知道自己在做什麼.

Kernel support for MISC binaries

CONFIG_BINFMT_MISC

允許插入二進制封裝層到核心中,運作Java,.NET(Mono-based),Python,Emacs-Lisp等語言編譯的二進制程式時需要它,DOSEMU也需要它.想要更友善的使用此特性,你還需要使用"mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc"挂載binfmt_misc僞檔案系統.具體詳情可以參考"Documentation/binfmt_misc.txt"文檔.

Enable core dump support

CONFIG_COREDUMP

核心轉儲(core dump)支援.如果你打算在此Linux上開發應用程式或者幫助别人調試bug,那麼就選"Y",否則選"N".注意這裡的調試和開發不是指核心調試和開發,是應用程式的調試和開發.

IA32 Emulation

CONFIG_IA32_EMULATION

允許在64位核心中運作32位代碼.除非你打算使用純64位環境,否則請開啟此項.提示:GRUB2支援引導純64位核心,但是GRUB不支援.

IA32 a.out support

CONFIG_IA32_AOUT

早期UNIX系統的可執行檔案格式(32位),目前已經被ELF格式取代.除非你需要使用古董級的二進制程式.否則請關閉.

x32 ABI for 64-bit mode

CONFIG_X86_X32

允許32位程式使用完整的64位寄存器,以減小記憶體占用(memory footprint).這可以提高32位程式的運作性能.如果你使用binutils-2.22以上的版本(支援elf32_x86_64),就選"Y",否則選"N".

Networking support

網絡支援

Networking options

CONFIG_NET

網絡選項.systemd依賴于它

Packet socket

CONFIG_PACKET

鍊路層PF_PACKET套接字支援.可以讓應用程式(比如:抓包工具tcpdump,DHCP用戶端dhclient,WiFi設定工具wpa_supplicant)直接與網絡裝置通訊,而無需使用核心中的其它中介協定.不确定的選"Y"或"M".

Packet: sockets monitoring interface

CONFIG_PACKET_DIAG

PF_PACKET套接字監控接口,ss這樣的診斷工具需要它.

Unix domain sockets

CONFIG_UNIX

Unix domain sockets 支援.許多程式都使用它在作業系統内部進行程序間通信(IPC),比如: X Window, syslog, udev 等等.選"Y",除非你确實知道自己在做什麼.

UNIX: socket monitoring interface

CONFIG_UNIX_DIAG

UNIX套接字監控接口,ss這樣的工具需要它.

Transformation user configuration interface

CONFIG_XFRM_USER

為IPsec相關的工具提供Transformation(XFRM)使用者配置接口

Transformation sub policy support

CONFIG_XFRM_SUB_POLICY

XFRM子政策支援,不确定的選"N".

Transformation migrate database

CONFIG_XFRM_MIGRATE

用于動态的更新 IPsec SA(security association) 的定位器(locator).這個特性對于手機這類移動裝置來講至關重要,因為它需要在不同的基站之間遷移.不确定的選"N".

Transformation statistics

CONFIG_XFRM_STATISTICS

轉換統計,這不是SNMP/MIB規範的内容.用于調試目的.不确定的選"N".

PF_KEY sockets

CONFIG_NET_KEY

PF_KEYv2 套接字支援(與KAME相容).PF_KEY協定族主要用來處理SA(安全關聯),對SADB(SA資料庫)進行管理,主要用在IPsec協定中.PF_KEY_v2的程式設計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多點傳播(IP multicasting)支援.指的是一個發送者向一組特定的接收者發送資料,但隻需發送一份資料副本.實際應用的場合很少,MBONE算是其中之一,與RTP等音視訊協定相結合也算一種.不确定的選"N".

IP: advanced router

CONFIG_IP_ADVANCED_ROUTER

進階路由支援,需要開啟核心的IP轉發功能(echo 1 > /proc/sys/net/ipv4/ip_forward)才能正常工作.如果這個Linux系統用作專業的路由器就選上,選上之後還需要按需選擇其下的子項.一般的主機不需要這個.

FIB TRIE statistics

CONFIG_IP_FIB_TRIE_STATS

主要用于測試TRIE性能

IP: policy routing

CONFIG_IP_MULTIPLE_TABLES

政策路由

IP: equal cost multipath

CONFIG_IP_ROUTE_MULTIPATH

用于基于目的位址的負載均衡

IP: verbose route monitoring

CONFIG_IP_ROUTE_VERBOSE

顯示備援的路由監控資訊

IP: kernel level autoconfiguration

CONFIG_IP_PNP

在核心啟動時自動配置網卡的ip位址/路由表,配置資訊來自于以下途徑:核心引導參數,自舉協定(BOOTP),反向位址轉換協定(RARP),動态主機配置協定(DHCP).通常,需要從網絡啟動的無盤工作站才需要這個東西(此時還需要開啟CONFIG_ROOT_NFS),一般的發行版都通過啟動腳本(dhcpcd/dhclient/ifconfig)配置網絡.不确定的選"N".

IP: DHCP support

CONFIG_IP_PNP_DHCP

DHCP協定支援

IP: BOOTP support

CONFIG_IP_PNP_BOOTP

BOOTP協定支援

IP: RARP support

CONFIG_IP_PNP_RARP

RARP協定支援

IP: tunneling

CONFIG_NET_IPIP

IP隧道,主要目的是為了在TCP/IP網絡中傳輸其他協定的資料包,當然也包括IP資料包(例如用于實作VPN).

IP: GRE demultiplexer

CONFIG_NET_IPGRE_DEMUX

GRE demultiplexer 支援.被CONFIG_NET_IPGRE和CONFIG_PPTP所依賴.

IP: GRE tunnels over IP

CONFIG_NET_IPGRE

基于IP的通用路由封裝(Generic Routing Encapsulation)隧道支援.該驅動主要用于對端是Cisco路由器的場合,因為Cisco的路由器特别偏好GRE隧道(而不是CONFIG_NET_IPIP),并且GRE還允許通過隧道對多點傳播進行再分發.

IP: broadcast GRE over IP

CONFIG_NET_IPGRE_BROADCAST

GRE/IP的一種應用是建構一個廣播WAN(Wide Area Network),而其看上去卻很像一個跑在網際網路上的LAN(Local Area Network).如果你想要建立這樣的網絡,那麼就選"Y"(還要加上CONFIG_IP_MROUTE).

IP: multicast routing

CONFIG_IP_MROUTE

多點傳播路由支援.實際應用的場合很少,MBONE算是其中之一,不确定的選"N".

IP: multicast policy routing

CONFIG_IP_MROUTE_MULTIPLE_TABLES

通常,多點傳播路由器上會運作一個單獨的使用者态守護程序,根據源位址和目的位址來處理資料包.開啟此項後,将能同時考慮資料包所帶的标記(mark)和所通過的網絡接口,并可在使用者空間同時運作多個守護程序,每一個程序處理一張路由表.

IP: PIM-SM version 1 support

CONFIG_IP_PIMSM_V1

Sparse Mode PIM (Protocol Independent Multicast) version 1 支援. 該協定被Cisco路由器廣泛支援,你需要特定的軟體(pimd-v1)才能使用它.

IP: PIM-SM version 2 support

CONFIG_IP_PIMSM_V2

Sparse Mode PIM (Protocol Independent Multicast) version 2 支援. 該協定的使用并不廣泛,你需要特定的軟體(pimd 或 gated-5)才能使用它.

IP: ARP daemon support

CONFIG_ARPD

通常情況下,核心自身會使用ARP協定解析本地網絡中的IP位址與MAC位址的對應關系,并進行緩存.開啟此項後,核心将使用使用者空間的守護程序進行ARP解析.這主要是為了使用其他的替代解析協定(比如mGRE隧道中的NHRP),或調試目的.不确定的選"N".

IP: TCP syncookie support

CONFIG_SYN_COOKIES

TCP syncookie 支援,這是抵抗SYN flood攻擊的好東西.此特性的開關可以通過"/proc/sys/net/ipv4/tcp_syncookies"檔案控制,寫入"1"表示開啟,寫入"0"表示關閉.建議伺服器環境開啟此項.

Virtual (secure) IP: tunneling

CONFIG_NET_IPVTI

虛拟IP隧道.可以和xfrm隧道一起使用,以實作IPSEC安全隧道,并在其上使用路由協定.不确定的選"N".

IP: Foo (IP protocols) over UDP

CONFIG_NET_FOU

允許将任意IP層協定封裝到UDP隧道中.不确定的選"N".

IP: AH transformation

CONFIG_INET_AH

IPsec AH 支援.IPsec驗證頭(AH)可對整個資料包(IP報頭與資料)提供身份驗證/完整性/抗重播保護.但是它不提供保密性,即它不對資料進行加密.由于這個原因,AH頭正在慢慢被ESP頭取代.

IP: ESP transformation

CONFIG_INET_ESP

IPsec ESP 支援.IPsec封裝安全負載(ESP)不僅為IP負載提供身份驗證/完整性/抗重播保護,還提供保密性,也就是還對資料進行加密.ESP有兩種使用模式:傳輸模式(ESP不對整個資料包進行簽名,隻對IP負載(不含IP報頭)進行保護)和隧道模式(将原始IP包封裝進新的帶有ESP頭的IP包内,可提供完整的保護).ESP可以獨立使用,也可與AH組合使用(越來越少).

IP: IPComp transformation

CONFIG_INET_IPCOMP

IP靜荷載壓縮協定(IP Payload Compression Protocol)(RFC3173)支援.用于支援IPsec

IP: IPsec transport mode

CONFIG_INET_XFRM_MODE_TRANSPORT

IPsec傳輸模式.常用于對等通信,用以提供内網安全.資料包經過了加密但IP頭沒有加密,是以任何标準裝置或軟體都可檢視和使用IP頭

IP: IPsec tunnel mode

CONFIG_INET_XFRM_MODE_TUNNEL

IPsec隧道模式.用于提供外網安全(包括虛拟專用網絡).整個資料包(資料頭和負載)都已經過加密處理且配置設定有新的ESP頭/IP頭/驗證尾,進而能夠隐藏受保護站點的拓撲結構

IP: IPsec BEET mode

CONFIG_INET_XFRM_MODE_BEET

IPsec BEET模式.

Large Receive Offload (ipv4/tcp)

CONFIG_INET_LRO

LRO(Large Receive Offload) (ipv4/tcp) 支援.它通過将多個TCP資料整合在一個skb結構中,并在稍後的某個時刻作為一個大的資料包傳遞給上層的網絡協定棧,以減少上層協定棧處理skb的開銷,提高Linux系統接收TCP資料包的能力.目前,主流網卡驅動都已支援此特性.建議開啟.不過,LRO不應該在路由器上開啟,因為它破壞了end-to-end原則,并會對路由性能造成顯著的不利影響.

INET: socket monitoring interface

CONFIG_INET_DIAG

INET(TCP,DCCP,...) socket 監視接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它

UDP: socket monitoring interface

CONFIG_INET_UDP_DIAG

UDP socket 監視接口,一些Linux本地工具(如:包含ss的iproute2)需要使用它

TCP: advanced congestion control

CONFIG_TCP_CONG_ADVANCED

進階擁塞控制,子項提供多種擁塞控制算法供選用.如果沒有特殊需求就别選了,核心會自動将預設的擁塞控制設為"CUBIC"并将"new Reno"作為候補.僅在你确實知道自己需要的情況下選"Y".不确定的選"N".

TCP: MD5 Signature Option support (RFC2385)

CONFIG_TCP_MD5SIG

RFC2385中描述了一種對TCP會話進行MD5簽名的保護機制.目前僅用于保護網際網路營運商骨幹路由器間的BGP會話.一般的路由器/伺服器等裝置根本不需要這個.

The IPv6 protocol

CONFIG_IPV6

引領未來的IPv6支援.

IPv6: Privacy Extensions (RFC 3041) support

CONFIG_IPV6_PRIVACY

IPv6利用"Stateless Address Autoconfiguration"在無DHCP伺服器的情況下,産生可用的"臨時IPv6位址".而本選項則為這個機制增加"隐私擴充"(RFC4941)保護.預設狀态下,核心并不生産"臨時位址",需要"echo 2 >/proc/sys/net/ipv6/conf/all/use_tempaddr"才能開啟

IPv6: Router Preference (RFC 4191) support

CONFIG_IPV6_ROUTER_PREF

主機連上IPv6網絡後,會發出路由器邀請包(Router Solicitation),路由器則應答路由器公告包(Router Advertisement),其中包含網關位址/IPv6字首/DNS位址,這樣主機就能取得IPv6位址,并連接配接到網際網路上,這就是無狀态位址自動配置設定(StateLess Address AutoConfiguration)."Router Preference"是"Router Advertisement"包的可選擴充.它可以改進主機選中路由器的能力,特别是在多歸屬(multi-homed)網絡中.不确定的選"N".

IPv6: Route Information (RFC 4191) support

CONFIG_IPV6_ROUTE_INFO

對"Route Information"的實驗性支援.

IPv6: Enable RFC 4429 Optimistic DAD

CONFIG_IPV6_OPTIMISTIC_DAD

樂觀重複位址檢測(Optimistic Duplicate Address Detection)的實驗性支援.可以更快的進行自動位址配置.不确定的選"N".

IPv6: AH transformation

CONFIG_INET6_AH

IPsec AH 支援.不确定的選"Y"或"M".AH頭正在慢慢被ESP頭取代.

IPv6: ESP transformation

CONFIG_INET6_ESP

IPsec ESP 支援.不确定的選"Y"或"M".

IPv6: IPComp transformation

CONFIG_INET6_IPCOMP

IPv6靜荷載壓縮協定(IP Payload Compression Protocol)(RFC3173)支援.用于支援IPsec.不确定的選"Y"或"M".

IPv6: Mobility

CONFIG_IPV6_MIP6

移動IPv6(RFC3775)支援.主要用于移動裝置.不确定的選"N".

IPv6: IPsec transport mode

CONFIG_INET6_XFRM_MODE_TRANSPORT

IPsec傳輸模式.常用于對等通信,用以提供内網安全.資料包經過了加密但IP頭沒有加密,是以任何标準裝置或軟體都可檢視和使用IP頭.不确定的選"Y"或"M".

IPv6: IPsec tunnel mode

CONFIG_INET6_XFRM_MODE_TUNNEL

IPsec隧道模式.用于提供外網安全(包括虛拟專用網絡).整個資料包(資料頭和負載)都已經過加密處理且配置設定有新的ESP頭/IP頭/驗證尾,進而能夠隐藏受保護站點的拓撲結構.不确定的選"Y"或"M".

IPv6: IPsec BEET mode

CONFIG_INET6_XFRM_MODE_BEET

IPsec BEET模式.不确定的選"Y"或"M".

IPv6: MIPv6 route optimization mode

CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION

移動IPv6(Mobile IPv6)路由優化模式.主要用于移動裝置.不确定的選"N".

IPv6: IPv6-in-IPv4 tunnel (SIT driver)

CONFIG_IPV6_SIT

在IPv4網絡上建立IPv6隧道.如果你希望可以通過IPv4網絡接入一個IPv6網絡,可以選"Y"或"M",否則選"N".

IPv6: IPv6 Rapid Deployment (6RD)

CONFIG_IPV6_SIT_6RD

IPv6快速部署(6RD)支援.不确定的選"N".

IPv6: IP-in-IPv6 tunnel (RFC2473)

CONFIG_IPV6_TUNNEL

IPv6-in-IPv6/IPv4-in-IPv6 隧道(RFC2473)支援.不确定的選"N".

IPv6: GRE tunnel

CONFIG_IPV6_GRE

基于IPv6的通用路由封裝(Generic Routing Encapsulation)隧道支援.該驅動主要用于對端是Cisco路由器的場合,因為Cisco的路由器特别偏好GRE隧道(而不是CONFIG_IPV6_TUNNEL),并且GRE還允許通過隧道對多點傳播進行再分發.

IPv6: Multiple Routing Tables

CONFIG_IPV6_MULTIPLE_TABLES

多重路由表(Multiple Routing Tables)支援.不确定的選"N".

IIPv6: source address based routing

CONFIG_IPV6_SUBTREES

允許根據源位址或字首進行路由.不确定的選"N".

IPv6: multicast routing

CONFIG_IPV6_MROUTE

測試性的IPv6多點傳播路由支援.實際應用的場合很少,不确定的選"N".

IPv6: multicast policy routing

CONFIG_IPV6_MROUTE_MULTIPLE_TABLES

通常,多點傳播路由器上會運作一個單獨的使用者态守護程序,根據源位址和目的位址來處理資料包.開啟此項後,将能同時考慮資料包所帶的标記(mark)和所通過的網絡接口,并可在使用者空間同時運作多個守護程序,每一個程序處理一張路由表.

IPv6: PIM-SM version 2 support

CONFIG_IPV6_PIMSM_V2

IPv6 PIM multicast routing protocol PIM-SMv2 支援.

NetLabel subsystem support

CONFIG_NETLABEL

NetLabel子系統支援.NetLabel子系統為諸如CIPSO與RIPSO之類能夠在分組資訊上添加标簽的協定提供支援,看不懂就别選了.

Security Marking

CONFIG_NETWORK_SECMARK

對網絡包進行安全标記,類似于nfmark,但主要是為安全目的而設計.看不懂的就别選了

Timestamping in PHY devices

CONFIG_NETWORK_PHY_TIMESTAMPING

允許在硬體支援的前提下,為實體層(PHY)資料包打上時間戳.這會略微增加發送與接收的開銷.不确定的選"N".

Network packet filtering framework (Netfilter)

CONFIG_NETFILTER

Netfilter可以對資料包進行過濾和修改,可以作為防火牆("packet filter"或"proxy-based")或網關(NAT)或代理(proxy)或網橋使用.

Network packet filtering debugging

CONFIG_NETFILTER_DEBUG

僅供開發者調試Netfilter使用

Advanced netfilter configuration

CONFIG_NETFILTER_ADVANCED

選"Y"将會顯示所有子產品供使用者選擇,選"N"則會隐藏一些不常用的子產品,并自動将常用子產品設為"M".

Bridged IP/ARP packets filtering

CONFIG_BRIDGE_NETFILTER

如果你希望使用橋接防火牆就打開它.Docker依賴于它.不确定的選"N".
Core Netfilter Configuration
核心Netfilter配置(當包流過Chain時如果match某個規則那麼将由該規則的target來處理,否則将由同一個Chain中的下一個規則進行比對,若不match所有規則那麼最終将由該Chain的policy進行處理)

Netfilter ingress support

CONFIG_NETFILTER_INGRESS

允許将入站包進行分類.

Netfilter NFACCT over NFNETLINK interface

CONFIG_NETFILTER_NETLINK_ACCT

允許通過NFNETLINK接口支援NFACCT(記賬).

Netfilter NFQUEUE over NFNETLINK interface

CONFIG_NETFILTER_NETLINK_QUEUE

允許通過NFNETLINK接口支援NFQUEUE(排隊).

Netfilter LOG over NFNETLINK interface

CONFIG_NETFILTER_NETLINK_LOG

允許通過NFNETLINK接口支援"LOG"(日志).該選項廢棄了ipt_ULOG和ebg_ulog機制,并打算在将來廢棄基于syslog的ipt_LOG和ip6t_LOG子產品.

Netfilter connection tracking support

CONFIG_NF_CONNTRACK

連接配接追蹤(connection tracking)支援,連接配接跟蹤把所有連接配接都儲存在一個表格内,并将每個包關聯到其所屬的連接配接.可用于封包僞裝或位址轉換,也可用于增強包過濾能力.

Connection mark tracking support

CONFIG_NF_CONNTRACK_MARK

允許對連接配接進行标記,與針對單獨的包進行标記的不同之處在于它是針對連接配接流的. CONNMARK target 和 connmark match 需要它的支援.

Connection tracking security mark support

CONFIG_NF_CONNTRACK_SECMARK

允許對連接配接進行安全标記,通常這些标記包(SECMARK)複制到其所屬連接配接(CONNSECMARK),再從連接配接複制到其關聯的包(SECMARK).

Connection tracking zones

CONFIG_NF_CONNTRACK_ZONES

"conntrack zones"支援.通常,每個連接配接需要一個全局唯一标示符,而"conntrack zones"允許在不同zone内的連接配接使用相同的辨別符.

Supply CT list in procfs (OBSOLETE)

CONFIG_NF_CONNTRACK_PROCFS

已被廢棄,選"N".

Connection tracking events

CONFIG_NF_CONNTRACK_EVENTS

連接配接跟蹤事件支援.如果啟用這個選項,連接配接跟蹤代碼将提供一個"notifier"鍊,它可以被其它核心代碼用來獲知連接配接跟蹤狀态的改變

Connection tracking timeout

CONFIG_NF_CONNTRACK_TIMEOUT

連接配接跟蹤"timeout"擴充.這樣你就可以在網絡流上通過 CT target 附加逾時政策.

Connection tracking timestamping

CONFIG_NF_CONNTRACK_TIMESTAMP

時間戳支援.這樣你就能在連接配接建立和斷開時打上時間戳.

DCCP protocol connection tracking support

CONFIG_NF_CT_PROTO_DCCP

DCCP協定支援.

SCTP protocol connection tracking support

CONFIG_NF_CT_PROTO_SCTP

SCTP協定支援.

UDP-Lite protocol connection tracking support

CONFIG_NF_CT_PROTO_UDPLITE

UDP-Lite支援.

Amanda backup protocol support

CONFIG_NF_CONNTRACK_AMANDA

Amanda備份協定支援.

FTP protocol support

CONFIG_NF_CONNTRACK_FTP

檔案傳輸協定(FTP)支援.跟蹤FTP連接配接需要額外的幫助程式.

H.323 protocol support

CONFIG_NF_CONNTRACK_H323

H.323協定支援.

IRC protocol support

CONFIG_NF_CONNTRACK_IRC

IRC擴充協定DCC(Direct Client-to-Client Protocol)支援.該協定允許使用者之間繞開伺服器直接聊天和傳輸檔案.

NetBIOS name service protocol support

CONFIG_NF_CONNTRACK_NETBIOS_NS

NetBIOS協定支援.

SNMP service protocol support

CONFIG_NF_CONNTRACK_SNMP

SNMP協定支援.

PPtP protocol support

CONFIG_NF_CONNTRACK_PPTP

RFC2637 點對點隧道協定(Point to Point Tunnelling Protocol) 協定支援.

SANE protocol support

CONFIG_NF_CONNTRACK_SANE

SANE協定支援.

SIP protocol support

CONFIG_NF_CONNTRACK_SIP

SIP協定支援.

TFTP protocol support

CONFIG_NF_CONNTRACK_TFTP

TFTP協定支援.

Connection tracking netlink interface

CONFIG_NF_CT_NETLINK

基于netlink的使用者接口支援.

Connection tracking timeout tuning via Netlink

CONFIG_NF_CT_NETLINK_TIMEOUT

通過Netlink機制支援對連接配接追蹤逾時進行細粒度的調節:允許為特定的網絡流指定逾時政策,而不是使用統一的全局逾時政策.

Connection tracking helpers in user-space via Netlink

CONFIG_NF_CT_NETLINK_HELPER

通過Netlink機制為使用者空間的連接配接追蹤幫助程式提供基礎架構.

NFQUEUE integration with Connection Tracking

CONFIG_NETFILTER_NETLINK_QUEUE_CT

開啟此項後,即使網絡包已經在隊列(NFQUEUE)中,它依然可以包含連接配接追蹤資訊.

Transparent proxying support

CONFIG_NETFILTER_TPROXY

透明代理支援,也就是可以處理非本地的 IPv4 TCP/UDP 套接字.此功能需要配合一些iptables規則和政策路由才能工作.詳見"Documentation/networking/tproxy.txt"文檔.

Netfilter Xtables support (required for ip_tables)

CONFIG_NETFILTER_XTABLES

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

nfmark target and match support

CONFIG_NETFILTER_XT_MARK

"nfmark"是使用者給包打上的一個自定義标記.用于match時,允許基于"nfmark"值對包進行比對.用于target時,允許在"mangle"表中建立規則以改變包的"nfmark"值.

ctmark target and match support

CONFIG_NETFILTER_XT_CONNMARK

"ctmark"是使用者以連接配接為組,給同一連接配接中的所有包打上的自定義标記.用法與"nfmark"相似.

set target and match support

CONFIG_NETFILTER_XT_SET

"set"是ipset工具建立的IP位址集合.使用match可以對IP位址集合進行比對,使用target可以對集合中的項進行增加和删除.

AUDIT target support

CONFIG_NETFILTER_XT_TARGET_AUDIT

為被drop/accept的包建立審計記錄.

CHECKSUM target support

CONFIG_NETFILTER_XT_TARGET_CHECKSUM

用于"mangle"表,為缺少校驗和的包添加checksum字段的值.主要是為了相容一些老舊的網絡程式(例如某些dhcp用戶端).

"CLASSIFY" target support

CONFIG_NETFILTER_XT_TARGET_CLASSIFY

允許為包設定優先級,一些qdiscs排隊規則(atm,cbq,dsmark,pfifo_fast,htb,prio)需要使用它

"CONNMARK" target support

CONFIG_NETFILTER_XT_TARGET_CONNMARK

這隻是一個相容舊配置的選項,等價于CONFIG_NETFILTER_XT_CONNMARK

"CONNSECMARK" target support

CONFIG_NETFILTER_XT_TARGET_CONNSECMARK

針對連結進行安全标記,同時還會将連接配接上的标記還原到包上(如果連結中的包尚未進行安全标記),通常與 SECMARK target 聯合使用

"CT" target support

CONFIG_NETFILTER_XT_TARGET_CT

允許為包加上連接配接追蹤相關的參數,比如"event"和"helper".

"DSCP" and "TOS" target support

CONFIG_NETFILTER_XT_TARGET_DSCP

DSCP target 允許對IPv4/IPv6標頭部的DSCP(Differentiated Services Codepoint)字段(常用于Qos)進行修改. TOS target 允許在"mangle"表建立規則以修改IPv4標頭的TOS(Type Of Service)字段或IPv6標頭的Priority字段.

"HL" hoplimit target support

CONFIG_NETFILTER_XT_TARGET_HL

HL(IPv6)/TTL(IPv4) target 允許更改標頭的 hoplimit/time-to-live 值.

"HMARK" target support

CONFIG_NETFILTER_XT_TARGET_HMARK

允許在"raw"和"mangle"表中建立規則,以根據特定範圍的哈希計算結果設定"skbuff"标記.

IDLETIMER target support

CONFIG_NETFILTER_XT_TARGET_IDLETIMER

每個被比對的包的定時器都會被強制指定為規則指定的值,當逾時發生時會觸發一個sysfs檔案系統的通知.剩餘時間可以通過sysfs讀取.

"LED" target support

CONFIG_NETFILTER_XT_TARGET_LED

允許在滿足特定條件的包通過的時候,觸發LED燈閃爍.比如可以用于控制網卡的狀态訓示燈僅在有SSH活動的時候才閃爍.

LOG target support

CONFIG_NETFILTER_XT_TARGET_LOG

允許向syslog中記錄標頭資訊.

"MARK" target support

CONFIG_NETFILTER_XT_TARGET_MARK

這隻是一個相容舊配置的選項,等價于CONFIG_NETFILTER_XT_MARK

"NETMAP" target support

CONFIG_NETFILTER_XT_TARGET_NETMAP

NETMAP用于實作一對一的靜态NAT(位址轉換).

"NFLOG" target support

CONFIG_NETFILTER_XT_TARGET_NFLOG

通過nfnetlink_log記錄日志.

"NFQUEUE" target Support

CONFIG_NETFILTER_XT_TARGET_NFQUEUE

用于替代老舊的 QUEUE target. 因為NFQUEUE能支援最多65535個隊列,而QUEUE隻能支援一個.

"NOTRACK" target support (DEPRECATED)

CONFIG_NETFILTER_XT_TARGET_NOTRACK

已被廢棄,勿選.

"RATEEST" target support

CONFIG_NETFILTER_XT_TARGET_RATEEST

RATEEST target 允許測量網絡流的傳輸速率.[注: rateest match 允許根據速率進行比對.]

REDIRECT target support

CONFIG_NETFILTER_XT_TARGET_REDIRECT

REDIRECT是一種特别的NAT:所有進入的連接配接都被映射到其入口網卡的位址,這樣這些包就會"流入"本機而不是"流過"本機.這主要用于實作透明代理.

"TEE" - packet cloning to alternate destination

CONFIG_NETFILTER_XT_TARGET_TEE

對包進行克隆,并将克隆的副本路由到另一個臨近的路由器(Next Hop).

"TPROXY" target support

CONFIG_NETFILTER_XT_TARGET_TPROXY

類似于REDIRECT,但并不依賴于連接配接追蹤和NAT,也隻能用于"mangle"表,用于将網絡流量重定向到透明代理.

"TRACE" target support

CONFIG_NETFILTER_XT_TARGET_TRACE

允許對包打标記,這樣核心就可以記錄每一個比對到的規則.

"SECMARK" target support

CONFIG_NETFILTER_XT_TARGET_SECMARK

允許對包進行安全标記,用于本機安全性授權

"TCPMSS" target support

CONFIG_NETFILTER_XT_TARGET_TCPMSS

允許更改 TCP SYN 包的MSS(Maximum Segment Size)值,通常=MTU-40.

"TCPOPTSTRIP" target support

CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP

允許從TCP標頭中剝離所有TCP選項.

"addrtype" address type match support

CONFIG_NETFILTER_XT_MATCH_ADDRTYPE

根據位址類型進行比對: UNICAST, LOCAL, BROADCAST, ... Docker依賴于它.

"bpf" match support

CONFIG_NETFILTER_XT_MATCH_BPF

BPF(BSD Packet Filter)是一個強大的包比對子產品,用于比對那些讓過濾器傳回非零值的包.

"cluster" match support

CONFIG_NETFILTER_XT_MATCH_CLUSTER

這個子產品可以用于建立網絡伺服器/防火牆叢集,而無需借助價格昂貴的負載均衡裝置.通常,在包必須被本節點處理的條件下,這個match傳回"true".這樣,所有節點都可以看到所有的包,但隻有比對的節點才需要進行處理,這樣就将負載進行了分攤.而分攤算法是基于對源位址的哈希值.

"comment" match support

CONFIG_NETFILTER_XT_MATCH_COMMENT

這是一個"僞match",目的是允許你在iptables規則集中加入注釋

"connbytes" per-connection counter match support

CONFIG_NETFILTER_XT_MATCH_CONNBYTES

允許針對單個連接配接内部每個方向(進/出)比對已經傳送的位元組數/包數

"connlabel" match support

CONFIG_NETFILTER_XT_MATCH_CONNLABEL

允許向連接配接配置設定使用者自定義的标簽名.核心僅存儲bit值,而名稱和bit之間的對應關系由使用者空間處理.與"connmark"的不同之處在于:可以同時為一個連接配接配置設定32個标志位(flag bit).

"connlimit" match support

CONFIG_NETFILTER_XT_MATCH_CONNLIMIT

允許根據每一個用戶端IP位址(或每一段用戶端IP位址段)持有的并發連接配接數進行比對.

"connmark" connection mark match support

CONFIG_NETFILTER_XT_MATCH_CONNMARK

這隻是一個相容舊配置的選項,等價于CONFIG_NETFILTER_XT_CONNMARK

"conntrack" connection tracking match support

CONFIG_NETFILTER_XT_MATCH_CONNTRACK

通用連接配接跟蹤比對,是"state"的超集,它允許額外的連結跟蹤資訊,在需要設定一些複雜的規則(比如網關)時很有用.Docker依賴于它.

"cpu" match support

CONFIG_NETFILTER_XT_MATCH_CPU

根據處理包所使用的CPU是哪個進行比對

"dccp" protocol match support

CONFIG_NETFILTER_XT_MATCH_DCCP

DCCP是打算取代UDP的新傳輸協定,它在UDP的基礎上增加了流控和擁塞控制機制,面向實時業務

"devgroup" match support

CONFIG_NETFILTER_XT_MATCH_DEVGROUP

允許根據網卡所屬的"裝置組"進行比對

"dscp" and "tos" match support

CONFIG_NETFILTER_XT_MATCH_DSCP

dscp match 允許根據IPv4/IPv6標頭的DSCP字段進行比對, tos match 允許根據IPv4標頭的TOS字段進行比對

"ecn" match support

CONFIG_NETFILTER_XT_MATCH_ECN

允許根據IPv4 TCP標頭的ECN字段進行比對

"esp" match support

CONFIG_NETFILTER_XT_MATCH_ESP

允許對IPSec包的ESP頭中的SPI(安全參數序列)範圍進行比對

"hashlimit" match support

CONFIG_NETFILTER_XT_MATCH_HASHLIMIT

此項的目的是取代"limit",它基于你標明的源/目的位址和/或端口動态建立"limit bucket"哈希表.這樣你就可以迅速建立類似這樣的比對規則:(1)為給定的目的位址以每秒10k個包的速度進行比對;(2)為給定的源位址以每秒500個包的速率進行比對

"helper" match support

CONFIG_NETFILTER_XT_MATCH_HELPER

加載特定協定的連接配接跟蹤輔助子產品,由該子產品過濾所跟蹤的連接配接類型的包,比如ip_conntrack_ftp子產品

"hl" hoplimit/TTL match support

CONFIG_NETFILTER_XT_MATCH_HL

基于IPv6標頭的hoplimit字段,或IPv4標頭的time-to-live字段進行比對

"iprange" address range match support

CONFIG_NETFILTER_XT_MATCH_IPRANGE

根據IP位址範圍進行比對,而普通的iptables隻能根據"IP/mask"的方式進行比對.

"ipvs" match support

CONFIG_NETFILTER_XT_MATCH_IPVS

允許根據包的IPVS屬性進行比對

"length" match support

CONFIG_NETFILTER_XT_MATCH_LENGTH

允許對包的長度進行比對

"limit" match support

CONFIG_NETFILTER_XT_MATCH_LIMIT

允許根據包的進出速率進行規則比對,常和"LOG target"配合使用以抵抗某些Dos攻擊

"mac" address match support

CONFIG_NETFILTER_XT_MATCH_MAC

允許根據以太網的MAC位址進行比對

"mark" match support

CONFIG_NETFILTER_XT_MATCH_MARK

這隻是一個相容舊配置的選項,等價于CONFIG_NETFILTER_XT_MARK

"multiport" Multiple port match support

CONFIG_NETFILTER_XT_MATCH_MULTIPORT

允許對TCP或UDP包同時比對多個不連續的端口(通常情況下隻能比對單個端口或端口範圍)

"nfacct" match support

CONFIG_NETFILTER_XT_MATCH_NFACCT

允許通過nfnetlink_acct使用擴充記賬

"osf" Passive OS fingerprint match

CONFIG_NETFILTER_XT_MATCH_OSF

開啟Passive OS Fingerprinting子產品,以允許通過進入的TCP SYN包被動比對遠端作業系統.規則和加載程式可以從這裡擷取:http://www.ioremap.net/projects/osf

"owner" match support

CONFIG_NETFILTER_XT_MATCH_OWNER

基于建立套接字的本地程序身份(user/group)進行比對,還可以用于檢查一個套接字是否确實存在

IPsec "policy" match support

CONFIG_NETFILTER_XT_MATCH_POLICY

基于IPsec policy進行比對

"physdev" match support

CONFIG_NETFILTER_XT_MATCH_PHYSDEV

允許對進入或離開所經過的實體網口進行比對

"pkttype" packet type match support

CONFIG_NETFILTER_XT_MATCH_PKTTYPE

允許對封包目的位址類别(廣播/多點傳播/直播)進行比對

"quota" match support

CONFIG_NETFILTER_XT_MATCH_QUOTA

允許對總位元組數的限額值進行比對

"rateest" match support

CONFIG_NETFILTER_XT_MATCH_RATEEST

根據 RATEEST target 評估的速率值進行比對

"realm" match support

CONFIG_NETFILTER_XT_MATCH_REALM

允許根據iptables中的路由子系統中的realm值進行比對.它與tc中的CONFIG_NET_CLS_ROUTE4非常類似.

"recent" match support

CONFIG_NETFILTER_XT_MATCH_RECENT

recent match 用于建立一個或多個最近使用過的位址清單,然後又可以根據這些清單再進行比對.

"sctp" protocol match support

CONFIG_NETFILTER_XT_MATCH_SCTP

支援根據流控制傳輸協定(SCTP)源/目的端口和"chunk type"進行比對.

"socket" match support

CONFIG_NETFILTER_XT_MATCH_SOCKET

can be used to match packets for which a TCP or UDP socket lookup finds a valid socket. It can be used in combination with the MARK target and policy routing to implement full featured non-locally bound sockets.

"state" match support

CONFIG_NETFILTER_XT_MATCH_STATE

這是對包進行分類的有力工具,它允許利用連接配接跟蹤資訊對連接配接中處于特定狀态的包進行比對

"statistic" match support

CONFIG_NETFILTER_XT_MATCH_STATISTIC

允許根據一個給定的百分率對包進行周期性的或随機性的比對

"string" match support

CONFIG_NETFILTER_XT_MATCH_STRING

允許根據包所承載的資料中包含的特定字元串進行比對

"tcpmss" match support

CONFIG_NETFILTER_XT_MATCH_TCPMSS

允許根據TCP SYN標頭中的MSS(最大分段長度)選項的值進行比對

"time" match support

CONFIG_NETFILTER_XT_MATCH_TIME

根據包的到達時刻(外面進入的包)或者離開時刻(本地生成的包)進行比對

"u32" match support

CONFIG_NETFILTER_XT_MATCH_U32

"u32"允許從包中提取擁有特定mask的最多4位元組資料,将此資料移動(shift)特定的位數,然後測試其結果是否位于特定的集合範圍内.更多細節可以直接參考核心源碼(net/netfilter/xt_u32.c)

IP set support

CONFIG_IP_SET

為核心添加IP集(IP set)支援,然後就可以使用CONFIG_NETFILTER_XT_SET功能.此特性必須配合使用者态工具ipset一起使用.

Maximum number of IP sets

CONFIG_IP_SET_MAX

預設的最大"set"數,取值範圍是[2,65534].此值也可以由ip_set子產品的max_sets參數設定.

bitmap:ip set support

CONFIG_IP_SET_BITMAP_IP

"bitmap:ip"集合類型.根據IP位址範圍設定集合.

bitmap:ip,mac set support

CONFIG_IP_SET_BITMAP_IPMAC

"bitmap:ip,mac"集合類型.根據IP/MAC位址對範圍設定集合.

bitmap:port set support

CONFIG_IP_SET_BITMAP_PORT

"bitmap:port"集合類型.根據端口範圍設定集合.

hash:ip set support

CONFIG_IP_SET_HASH_IP

"hash:ip"集合類型.為多個離散的IP位址設定集合.

hash:ip,port set support

CONFIG_IP_SET_HASH_IPPORT

"hash:ip,port"集合類型.為多個離散的IP/MAC位址對設定集合.

hash:ip,port,ip

CONFIG_IP_SET_HASH_IPPORTIP

"hash:ip,port,ip"集合類型.為多個離散的IP/端口/IP三元組設定集合.

hash:ip,port,net set support

CONFIG_IP_SET_HASH_IPPORTNET

"hash:ip,port,net"集合類型.為多個離散的IP/端口/網段三元組設定集合.

hash:net set support

CONFIG_IP_SET_HASH_NET

"hash:net"集合類型.為多個離散的網段設定集合

hash:net,port set support

CONFIG_IP_SET_HASH_NETPORT

"hash:net,port"集合類型.為多個離散的網段/端口對設定集合

hash:net,iface set support

CONFIG_IP_SET_HASH_NETIFACE

"hash:net,iface"集合類型.為多個離散的網段/網卡接口對設定集合

list:set set support

CONFIG_IP_SET_LIST_SET

"list:set"集合類型.将多個集合組成一個更大的集合

IP virtual server support

CONFIG_IP_VS

IPVS(IP Virtual Server)支援.IPVS可以幫助LVS基于多個後端真實伺服器建立一個高性能的虛拟伺服器.可以使用三種具體的方法實作:NAT,隧道,直接路由(使用較廣).

IPv6 support for IPVS

CONFIG_IP_VS_IPV6

為IPVS添加IPv6支援

IP virtual server debugging

CONFIG_IP_VS_DEBUG

為IPVS添加調試支援

IPVS connection table size (the Nth power of 2)

CONFIG_IP_VS_TAB_BITS

設定IPVS連接配接哈希表的大小(2CONFIG_IP_VS_TAB_BITS),取值範圍是[8,20],預設值12的意思是哈希表的大小是212=4096項.IPVS連接配接哈希表使用連結清單來處理哈希碰撞.使用大的哈希表能夠顯著減少碰撞幾率,特别是哈希表中有成千上萬連接配接的時候.比較恰當的值差不多等于每秒的建立連接配接數乘以每個連接配接的平均持續秒數.太小的值會造成太多碰撞,進而導緻性能大幅下降;太大的值又會造成占用太多不必要的記憶體(每個表項8位元組+每個連接配接128位元組).該值也可以通過ip_vs子產品的conn_tab_bits參數進行設定.

TCP load balancing support

CONFIG_IP_VS_PROTO_TCP

TCP傳輸協定負載均衡支援

UDP load balancing support

CONFIG_IP_VS_PROTO_UDP

UDP傳輸協定負載均衡支援

ESP load balancing support

CONFIG_IP_VS_PROTO_ESP

IPSec ESP(Encapsulation Security Payload)傳輸協定負載均衡支援

AH load balancing support

CONFIG_IP_VS_PROTO_AH

IPSec AH(Authentication Header)傳輸協定負載均衡支援.

SCTP load balancing support

CONFIG_IP_VS_PROTO_SCTP

SCTP傳輸協定負載均衡支援

round-robin scheduling

CONFIG_IP_VS_RR

循環分散算法:最簡單的排程算法,将連接配接簡單的循環分散到後端伺服器上

weighted round-robin scheduling

CONFIG_IP_VS_WRR

基于權重的循環分散算法:在循環分散的基礎上,權重較高的後端伺服器接納較多的連接配接

least-connection scheduling

CONFIG_IP_VS_LC

最少連接配接算法:将連接配接優先配置設定到活動連接配接最少的後端伺服器

weighted least-connection scheduling

CONFIG_IP_VS_WLC

基于權重的最少連接配接算法:結合考慮活動連接配接數與伺服器權重

locality-based least-connection scheduling

CONFIG_IP_VS_LBLC

基于目的IP的最少連接配接算法(常用于緩存叢集):優先根據目的IP位址将連接配接配置設定到特定的後端,僅在這些後端過載時(活動連接配接數大于其權重)才分散到其他後端.

locality-based least-connection with replication scheduling

CONFIG_IP_VS_LBLCR

與LBLC類似,不同之處在于:前端負載均衡器會像NAT一樣同時記住用戶端IP與後端的對應關系,并在新的連接配接到來的時候,複用這個對應關系.

destination hashing scheduling

CONFIG_IP_VS_DH

目标位址哈希表算法:簡單的根據靜态設定的目标IP位址哈希表将連接配接分發到後端

source hashing scheduling

CONFIG_IP_VS_SH

源位址哈希表算法:簡單的根據靜态設定的源IP位址哈希表将連接配接分發到後端

shortest expected delay scheduling

CONFIG_IP_VS_SED

最小期望延遲算法:将連接配接配置設定到根據期望延遲公式((Ci+1)/Ui)算得的延遲最小的後端."i"是後端伺服器編号,"Ci"是該伺服器目前的連接配接數,"Ui"是該伺服器的權重.

never queue scheduling

CONFIG_IP_VS_NQ

無排隊算法:這是一個兩階段算法,如果有空閑伺服器,就直接分發到空閑伺服器(而不是等待速度最快的伺服器),如果沒有空閑伺服器,就分發到期望延遲最小的伺服器(SED算法).

IPVS source hashing table size (the Nth power of 2)

CONFIG_IP_VS_SH_TAB_BITS

将源IP位址映射到後端伺服器所使用的哈希表的大小(2CONFIG_IP_VS_SH_TAB_BITS),取值範圍是[4,20],預設值8的意思是哈希表的大小是28=256項.理想的大小應該是所有後端的權重乘以後端總數?

FTP protocol helper

CONFIG_IP_VS_FTP

FTP協定連接配接追蹤幫助

Netfilter connection tracking

CONFIG_IP_VS_NFCT

Netfilter連接配接追蹤支援

SIP persistence engine

CONFIG_IP_VS_PE_SIP

基于SIP Call-ID提供持久連接配接支援
IP: Netfilter Configuration
針對IPv4的Netfilter配置

IPv4 connection tracking support (required for NAT)

CONFIG_NF_CONNTRACK_IPV4

IPv4連結跟蹤.可用于包僞裝或位址轉換,也可用于增強包過濾能力

proc/sysctl compatibility with old connection tracking

CONFIG_NF_CONNTRACK_PROC_COMPAT

用于相容老舊的連接配接追蹤使用者态程式

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

CONFIG_IP_NF_IPTABLES

要用iptables就肯定要選上

"ah" match support

CONFIG_IP_NF_MATCH_AH

允許對IPSec標頭的AH字段進行比對

"ecn" match support

CONFIG_IP_NF_MATCH_ECN

這隻是一個相容舊配置的選項,等價于CONFIG_NETFILTER_XT_MATCH_ECN

"rpfilter" reverse path filter match support

CONFIG_IP_NF_MATCH_RPFILTER

對進出都使用同一個網絡接口的包進行比對

"ttl" match support

CONFIG_IP_NF_MATCH_TTL

這隻是一個相容舊配置的選項,等價于CONFIG_NETFILTER_XT_MATCH_HL

Packet filtering

CONFIG_IP_NF_FILTER

定義filter表,以允許對包進行過濾.Docker依賴于它.

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表時才需要選擇.Docker依賴于它.

MASQUERADE target support

CONFIG_IP_NF_TARGET_MASQUERADE

SNAT是指在資料包從網卡發送出去的時候,把資料包中的源位址部分替換為指定的IP,這樣,接收方就認為資料包的來源是被替換的那個IP的主機.僞裝(MASQUERADE)是一種特殊類型的SNAT:MASQUERADE是用發送資料的網卡上的IP來替換源IP,用于那些IP不固定的場合(比如撥号或者通過DHCP配置設定).Docker依賴于它.

NETMAP target support

CONFIG_IP_NF_TARGET_NETMAP

這隻是一個相容舊配置的選項,等價于CONFIG_NETFILTER_XT_TARGET_NETMAP.

REDIRECT target support

CONFIG_IP_NF_TARGET_REDIRECT

這隻是一個相容舊配置的選項,等價于CONFIG_NETFILTER_XT_TARGET_REDIRECT.

Basic SNMP-ALG support

CONFIG_NF_NAT_SNMP_BASIC

為SNMP荷載實作ALG(Application Layer Gateway)支援(RFC2962).

Packet mangling

CONFIG_IP_NF_MANGLE

在iptables中啟用mangle表以便對包進行各種修改,常用于改變包的路由

CLUSTERIP target support

CONFIG_IP_NF_TARGET_CLUSTERIP

CLUSTERIP target 允許你無需使用昂貴的負載均衡裝置也能建立廉價的負載均衡叢集

ECN target support

CONFIG_IP_NF_TARGET_ECN

用于mangle表,可以去除IPv4標頭的ECN(Explicit Congestion Notification)位,主要用于在保持ECN功能的前提下,去除網絡上的"ECN黑洞".

"TTL" target support

CONFIG_IP_NF_TARGET_TTL

這隻是一個相容舊配置的選項,等價于CONFIG_NETFILTER_XT_TARGET_HL.

raw table support (required for NOTRACK/TRACE)

CONFIG_IP_NF_RAW

在iptables中添加一個raw表,該表在netfilter架構中非常靠前,并在PREROUTING和OUTPUT鍊上有鈎子,進而可以對收到的資料包在連接配接跟蹤前進行處理

Security table

CONFIG_IP_NF_SECURITY

在iptables中添加一個security表,以支援強制通路控制(Mandatory Access Control)政策

ARP tables support

CONFIG_IP_NF_ARPTABLES

arptables支援

ARP packet filtering

CONFIG_IP_NF_ARPFILTER

ARP包過濾.對于進入和離開本地的ARP包定義一個filter表,在橋接的情況下還可以應用于被轉發的ARP包

ARP payload mangling

CONFIG_IP_NF_ARP_MANGLE

允許對ARP包的荷載部分進行修改,比如修改源和目标實體位址
IPv6: Netfilter Configuration
針對IPv6的Netfilter配置.其子項内容類似于IPv4,需要的話可以參考前面IPv4的Netfilter配置進行選擇
DECnet: Netfilter Configuration
針對DECnet的Netfilter配置

Ethernet Bridge tables (ebtables) support

CONFIG_BRIDGE_NF_EBTABLES

針對以太網橋的ebtables Netfilter配置

The DCCP Protocol

CONFIG_IP_DCCP

資料報擁塞控制協定(Datagram Congestion Control Protocol)在UDP的基礎上增加了流控和擁塞控制機制,使資料報協定能夠更好地用于流媒體業務的傳輸

The SCTP Protocol

CONFIG_IP_SCTP

流控制傳輸協定(Stream Control Transmission Protocol)是一種新興的傳輸層協定.TCP協定一次隻能連接配接一個IP位址而在SCTP協定一次可以連接配接多個IP位址且可以自動平衡網絡負載,一旦某一個IP位址失效會自動将網絡負載轉移到其他IP位址上

The RDS Protocol

CONFIG_RDS

可靠資料報套接字(Reliable Datagram Sockets)協定支援.RDS可以使用Infiniband和iWARP作為支援RDMA(遠端直接記憶體通路)的傳輸方式,RDMA用于一台遠端計算機通路另一台計算機的記憶體而無需本機計算機作業系統的輔助,這就像直接記憶體通路(DMA),但是這裡遠端代替了本地計算機.

The TIPC Protocol

CONFIG_TIPC

透明内部程序間通信協定(Transparent Inter Process Communication),以共享記憶體為基礎實作任務和資源的排程,專門用于叢集内部通信

Asynchronous Transfer Mode (ATM)

CONFIG_ATM

異步傳輸模式(ATM)支援.主要用于高速LAN和WAN.目前已經日薄西山了.

Layer Two Tunneling Protocol (L2TP)

CONFIG_L2TP

第二層隧道協定(RFC2661)是一種對應用透明的隧道協定,VPN經常使用它.

802.1d Ethernet Bridging

CONFIG_BRIDGE

802.1d以太網橋(例如為QEMU虛拟機或Docker容器提供橋接網卡支援)

IGMP/MLD snooping

CONFIG_BRIDGE_IGMP_SNOOPING

選"Y"可以允許以太網橋根據IGMP(Internet Group Management Protocol, IPv4)/MLD(Multicast Listener Discovery, IPv6)負載選擇性的轉發不同端口上的多點傳播包.選"N"可以減小二進制檔案的體積.确定需要使用多點傳播的選"Y".

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類型套接字支援.也就是IEEE 802.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

CCITT X.25協定集支援.

LAPB Data Link Driver

CONFIG_LAPB

LAPB協定支援.

Phonet protocols family

CONFIG_PHONET

PhoNet是Nokia開發的面相資料包的通信協定,僅用于Nokia maemo/meego産品.

IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support

CONFIG_IEEE802154

IEEE Std 802.15.4 定義了一個低速率/低功耗/低複雜度的短距離個人無線網絡規範.主要用于物聯網中的傳感器/交換器之類裝置之間的互聯.

6lowpan support over IEEE 802.15.4

CONFIG_IEEE802154_6LOWPAN

在IEEE 802.15.4上支援IPv6壓縮.

Generic IEEE 802.15.4 Soft Networking Stack (mac802154)

CONFIG_MAC802154

為SoftMAC裝置(僅實作了PHY層)實作硬體獨立的IEEE Std 802.15.4協定棧.使用HardMAC裝置的使用者應該選"N".[注意]這裡的實作既未經過認證,也未進行充分的相容性測試.

QoS and/or fair queueing

CONFIG_NET_SCHED

QoS(Quality of Service)支援.當核心有多個包需要通過網絡發送的時候,它需要決定哪個包先發,那個包後發,哪個包丢棄.這就是包排程算法.關閉此項表示核心使用最簡單的FIFO算法,開啟此項後就可以使用多種不同的排程算法(需要配合使用者層工具iproute2+tc).QoS還用于支援diffserv(Differentiated Services)和RSVP(Resource Reservation Protocol)功能.包排程的狀态資訊可以從"/proc/net/psched"檔案中擷取.僅在你确實需要的時候選"Y".

Data Center Bridging support

CONFIG_DCB

DCB(Data Center Bridging)支援.資料中心橋接是一組可增強傳統以太網功能,以管理通信的功能,尤其适用于網絡通信流量和傳輸率都很高的環境中.光纖通道可專用于承載此類型的通信.但是,如果使用專用鍊路來僅提供光纖通道通信,則成本可能會很高.是以,更多情況下使用以太網光纖通道.DCB功能可滿足光纖通道對周遊以太網時包丢失的敏感度要求.DCB允許對等方基于優先級區分通信.通過區分優先級,可確定在主機之間發生擁塞時,保持較高優先級通信的包完整性.使用DCB交換協定,通信主機可以交換會影響高速網絡通信的配置資訊.然後,對等方可對公用配置進行協商,確定通信流不中斷,同時防止高優先級包出現包丢失.這些功能都需要底層的網卡支援.一般網卡都是不支援的.是以不确定的可以選"N".

DNS Resolver support

CONFIG_DNS_RESOLVER

核心DNS解析支援.用于支援CONFIG_AFS_FS/CONFIG_CIFS/CONFIG_CIFS_SMB2/NFS_V4子產品.此功能需要使用者态程式"/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

Open vSwitch 是一個多層虛拟交換标準.此選項提供了核心級的高速轉發功能(需要配合使用者态守護程序ovs-vswitchd來實作).

Virtual Socket protocol

CONFIG_VSOCKETS

這是一個類似于TCP/IP的協定,用于虛拟機之間以及虛拟機與宿主之間的通信.開啟此項後,還需要從子項中選擇适用于特定虛拟化技術的傳輸協定.

VMware VMCI transport for Virtual Sockets

CONFIG_VMWARE_VMCI_VSOCKETS

适用于VMware虛拟化技術的VMCI傳輸協定支援.

NETLINK: mmaped IO

CONFIG_NETLINK_MMAP

基于記憶體映射機制的 netlink IO 支援.可以避免在使用者空間與記憶體空間之間複制資料,進而提升操作速度.不确定的選"N".

NETLINK: socket monitoring interface

CONFIG_NETLINK_DIAG

NETLINK socket 監視接口.ss這樣的診斷工具需要它.

MultiProtocol Label Switching

CONFIG_MPLS

多協定标簽交換(MPLS)是新一代的IP高速骨幹網絡交換标準.不确定的選"N".

High-availability Seamless Redundancy (HSR)

CONFIG_HSR

以太網HSR(高可用性無縫備援)規範(IEC 62439-3:2010)支援.不确定的選"N".

Network priority cgroup

CONFIG_NETPRIO_CGROUP

CONFIG_CGROUP_NET_PRIO

Cgroup子系統支援:基于每個網絡接口為每個程序配置設定網絡使用優先級.Docker依賴于它.

enable BPF Just In Time compiler

CONFIG_BPF_JIT

BPF(Berkeley Packet Filter)的過濾功能通常由一個解釋器(interpreter)解釋執行BPF虛拟機指令的方式工作.開啟此項,核心在加載過濾指令後,會将其編譯為本地指令,以加快執行速度.網絡嗅探程式(libpcap/tcpdump)可以從中受益.注意:需要"echo 1 > /proc/sys/net/core/bpf_jit_enable"之後才能生效.
Network testing
網絡測試,僅供調試使用

Amateur Radio support

CONFIG_HAMRADIO

業餘無線電支援.供無線電愛好者進行自我訓練/互相通訊/技術研究

CAN bus subsystem support

CONFIG_CAN

CAN(Controller Area Network)是一個低速串行通信協定.被廣泛地應用于工業自動化/船舶/醫療裝置/工業裝置等嵌入式領域.更多資訊參見"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(Object Exchange),以及某些藍牙程式(例如檔案傳輸).

RFCOMM TTY support

CONFIG_BT_RFCOMM_TTY

允許在RFCOMM通道上模拟TTY終端

BNEP protocol support

CONFIG_BT_BNEP

藍牙網絡封裝協定(Bluetooth Network Encapsulation Protocol)可以在藍牙上運作其他網絡協定(TCP/IP). Bluetooth PAN(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

人機接口裝置協定(Human Interface 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(Cambridge Silicon Radio)公司的BlueCore系列晶片的藍牙裝置(包括PCMCIA和CF卡)支援

Atheros AR300x serial support

CONFIG_BT_HCIUART_ATH3K

基于Atheros AR300x系列晶片的藍牙裝置支援

HCILL protocol support

CONFIG_BT_HCIUART_LL

基于Texas Instruments公司的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聯盟所持有.目的是改善基于IEEE 802.11标準的無線網路産品之間的互通性.現時一般人會把WiFi及IEEE 802.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

若開啟此項則表示預設開啟省電模式(也就是預設"Soft blocked: yes").關閉此項則表示預設使用BIOS中的狀态(通常是上一次關機時的狀态).詳情參見"Documentation/power/pm_qos_interface.txt"文檔.

cfg80211 DebugFS entries

CONFIG_CFG80211_DEBUGFS

僅供調試

use statically compiled regulatory rules database

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

獨立于硬體的通用IEEE 802.11協定棧子產品(mac80211).它是驅動開發者用來編寫softMAC無線裝置驅動的架構,softMAC裝置允許用軟體實作幀的管理(包括解析和産生80211無線幀),進而讓系統能更好的控制硬體,現在大多數的無線網卡都是softMAC裝置.不确定的選"Y".

PID controller based rate control algorithm

CONFIG_MAC80211_RC_PID

基于比例-積分-微分控制器(PID controller)的發送速率(TX rate)控制算法.用于CONFIG_MAC80211子產品.不确定的選"N".

Minstrel

CONFIG_MAC80211_RC_MINSTREL

minstrel發送速率(TX rate)控制算法.用于CONFIG_MAC80211子產品.這是首選的算法,不确定的選"Y".

Minstrel 802.11n support

CONFIG_MAC80211_RC_MINSTREL_HT

minstrel_ht發送速率(TX rate)控制算法.适用于802.11n規範.不确定的選"Y".
Default rate control algorithm
預設發送速率(TX rate)控制算法.相當于mac80211子產品"ieee80211_default_rc_algo"參數的值.建議選擇"Minstrel"算法.

Enable mac80211 mesh networking (pre-802.11s) support

CONFIG_MAC80211_MESH

802.11s草案是無線網狀網絡(Mesh Networking)的延伸與增補标準(amendment).它擴充了IEEE 802.11 MAC(媒體通路控制)标準,定義了利用自我組态的多點跳躍拓樸(multi-hop topologies),進行無線感覺(radio-aware metrics),以支援廣播/多點傳播/單點傳播傳送網絡封包的架構與協定.不确定的選"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(IEEE 802.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

為了節約電力,很多無線網卡和藍牙裝置都有内置的射頻開關(RF switche)用于開啟和關閉裝置(通過rfkill指令).建議選"Y".更多詳情參見"Documentation/rfkill.txt"文檔

RF switch input support

CONFIG_RFKILL_INPUT

這是個反對使用的特性,一般情況下建議關閉.若關閉此項導緻某些筆記本的無線網卡開關按鈕失效,可以考慮開啟.

Generic rfkill regulator driver

CONFIG_RFKILL_REGULATOR

通用射頻開關驅動,其射頻開關連接配接在電壓調節器(voltage regulator)上.依賴于CONFIG_REGULATOR架構.不确定的選"N"或"M"

GPIO RFKILL driver

CONFIG_RFKILL_GPIO

通用GPIO射頻開關驅動.僅用于嵌入式環境,其射頻開關連接配接在GPIO總線上,比如NVIDIA的Tegra和三星的Exynos 4智能手機SoC晶片.

Plan 9 Resource Sharing Support (9P2000)

CONFIG_NET_9P

實驗性的支援Plan 9的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(近場通信)子系統.這些裝置主要用于智能手機之類的嵌入式領域.

Network light weight tunnels

CONFIG_LWTUNNEL

為MPLS(多協定标簽交換)之類的輕量級隧道提供基礎結構支援.不确定的選"N".

Device Drivers

裝置驅動程式

Generic Driver Options
驅動程式通用選項.[提示]Linux Kernel Driver DataBase網站是搜尋驅動程式與硬體型号對應關系的絕佳網站.如果你不知道某個驅動(例如"CONFIG_INTEL_IOATDMA")究竟對應着哪些型号的硬體,那麼可以直接根據該驅動選項的首字母(本例是"I")進入對應的索引頁去查找到該驅動的詳情頁面(本例是"https://cateee.net/lkddb/web-lkddb/INTEL_IOATDMA.html").[提示]可以使用"lspci -nn"與"lsusb"指令檢視本機所有PCI/USB裝置的"vendor id"與"device id"及文本名稱.也可以根據已知的id到pci.ids與usb.ids資料庫中搜尋裝置的名稱.

Support for uevent helper

CONFIG_UEVENT_HELPER

早年的核心(切換到基于netlink機制之前),在發生uevent事件(通常是熱插拔)時,需要調用使用者空間程式(通常是"/sbin/hotplug"),以幫助完成uevent事件的處理.此選項就是用于開啟此功能.由于目前的發行版都已不再需要此幫助程式,是以請選"N".此外,如果你使用了systemd或udev則必須選"N".

path to uevent helper

CONFIG_UEVENT_HELPER_PATH

早年的核心(切換到基于netlink機制之前),在發生uevent事件(通常是熱插拔)時,需要調用使用者空間程式(通常是"/sbin/hotplug"),以幫助完成uevent事件的處理.此選項就是用于設定這個幫助程式的路徑.由于目前的發行版都已不再需要此幫助程式,是以請保持空白.此外,如果你使用了systemd或udev則必須保持空白.

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 the rootfs

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/sh devtmpfs.mount=1"吧!

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

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 kernel binary

CONFIG_FIRMWARE_IN_KERNEL

核心源碼樹中包含了許多驅動程式需要的二進制固件(blob),推薦的方法是通過"make firmware_install"将"firmware"目錄中所需的固件複制到系統的"/lib/firmware/"目錄中,然後由使用者空間幫助程式在需要的時候進行加載.開啟此項後,将會把所需的"blob"直接編譯進核心,這樣就可以無需使用者空間程式的幫助,而直接使用這些固件了(例如:當根檔案系統依賴于此類固件,而你又不想使用initrd的時候).每個需要此類二進制固件的驅動程式,都會有一個"Include firmware for xxx device"的選項,如果此處選"Y",那麼這些選項都将被隐藏.建議選"N".

External firmware blobs to build into the kernel binary

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 firmware loading

CONFIG_FW_LOADER_USER_HELPER

在核心自己直接加載固件失敗後,作為補救措施,調用使用者空間幫助程式(通常是udev)再次嘗試加載.通常這個動作是不必要的,是以應該選"N",如果你使用了udev或systemd,則必須選"N".僅在某些特殊的固件位于非标準位置時,才需要選"Y".

Allow device coredump

CONFIG_ALLOW_DEV_COREDUMP

為驅動程式開啟coredump機制,僅供調試.

Driver Core verbose debug messages

CONFIG_DEBUG_DRIVER

讓驅動程式核心在系統日志中産生冗長的調試資訊,僅供調試

Managed device resources verbose debug messages

CONFIG_DEBUG_DEVRES

為核心添加一個"devres.log"引導參數.當被設為非零值時,将會列印出裝置資源管理驅動(devres)的調試資訊.僅供調試使用.
Bus devices
總線裝置.此類裝置僅出現在ARM平台.

Connector - unified userspace <-> kernelspace linker

CONFIG_CONNECTOR

統一的使用者空間和核心空間連接配接器,工作在netlink socket協定的頂層.連接配接器是非常便利的使用者态與核心态的通信方式,這些驅動使核心知道當程序fork并使用proc連接配接器更改UID/GID/SID(會話ID).核心需要知道什麼時候程序fork(CPU中運作多個任務)并執行,否則,核心可能會低效管理資源.核心有幾個連接配接器應用執行個體:CONFIG_HYPERV_UTILS,CONFIG_FB_UVESA,CONFIG_W1_CON,CONFIG_DM_LOG_USERSPACE.另外還有一個給Gentoo裝上啟動畫面的例子.建議選"Y".

Report process events to userspace

CONFIG_PROC_EVENTS

提供一個向使用者空間報告程序事件(fork,exec,id變化(uid,gid,suid))的連接配接器.建議選"Y".

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".

Device Tree and Open Firmware support

CONFIG_OF

Device Tree基礎架構與Open Firmware支援.主要用于嵌入式環境.不确定的選"N".核心中若有其它選項依賴于它,則會自動選中此項.

Parallel port support

CONFIG_PARPORT

25針并口(LPT接口)支援.古董級的列印機或掃描器可能使用這種接口.目前已被淘汰.

Plug and Play support

CONFIG_PNP

即插即用(PnP)支援.選"Y"表示讓Linux為PnP裝置配置設定中斷和I/O端口(需要在BIOS中開啟"PnP OS"),選"N"則表示讓BIOS來配置設定(需要在BIOS中關閉"PnP OS").建議選"Y".

PNP debugging messages

CONFIG_PNP_DEBUG_MESSAGES

允許使用"pnp.debug"核心參數在系統啟動過程中輸出PnP裝置的調試資訊,建議選"N".

Block devices

CONFIG_BLK_DEV

塊裝置,建議選"Y".

Null test block driver

CONFIG_BLK_DEV_NULL_BLK

僅供調試使用

Normal floppy disk support

CONFIG_BLK_DEV_FD

通用軟驅支援.已被時代抛棄的裝置

Parallel port IDE device support

CONFIG_PARIDE

通過并口與計算機連接配接的IDE裝置,比如某些老舊的外接光驅或硬碟之類.此類裝置早就絕種了

Block Device Driver for Micron PCIe SSDs

CONFIG_BLK_DEV_PCIESSD_MTIP32XX

Micron P320/P325/P420/P425 系列固态硬碟支援

Compressed RAM block device support

CONFIG_ZRAM

zram是一種基于壓縮記憶體的虛拟塊裝置,它允許你建立"/dev/zramN"塊裝置檔案,并将它當作普通的磁盤一樣使用.它完全位于實體記憶體中,并被實時壓縮與解壓以節約實體記憶體的用量,所有對"/dev/zramN"的讀寫實質上都是對記憶體的讀寫,進而可以獲得比一般的磁盤快的多的IO速度.常将它用做\'/tmp\'分區或作為swap分區挂載.你可以把它看作是CONFIG_BLK_DEV_RAM的更新版.具體用法可以參考核心文檔\'Documentation/blockdev/zram.txt\'.

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 Controller support

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 init time

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 Device support

CONFIG_BLK_DEV_DRBD

DRBD(Distributed Replicated Block Device)是一種分布式儲存系統.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".

OSD object-as-blkdev support

CONFIG_BLK_DEV_OSD

允許将一個單獨的 SCSI OSD(Object-Based Storage Devices) 對象當成普通的塊裝置來使用.舉例來說,你可以在OSD裝置上建立一個2G大小的對象,然後通過本子產品将其模拟成一個2G大小的塊裝置使用.不确定的選"N".

STEC S1120 Block Driver

CONFIG_BLK_DEV_SKD

STEC公司的S1120 PCIe SSD

Promise SATA SX8 support

CONFIG_BLK_DEV_SX8

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

RAM block device support

CONFIG_BLK_DEV_RAM

記憶體中的虛拟磁盤,大小固定.詳情參閱"Documentation/blockdev/ramdisk.txt".由于其功能比CONFIG_TMPFS和CONFIG_ZRAM弱許多,使用上也不友善,是以除非你有明确的理由,否則應該選"N",并轉而使用CONFIG_TMPFS或CONFIG_ZRAM.

Default number of RAM disks

CONFIG_BLK_DEV_RAM_COUNT

預設RAM disk的數量.請保持預設值,除非你知道自己在做什麼.

Default RAM disk size (kbytes)

CONFIG_BLK_DEV_RAM_SIZE

預設RAM disk的大小.請保持預設值,除非你知道自己在做什麼.

Support XIP filesystems on RAM block device

CONFIG_BLK_DEV_XIP

XIP(eXecute In Place)支援(指應用程式可以直接在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裝置(ATA over 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虛拟塊裝置驅動.僅可用在基于lguest或QEMU的半虛拟化客戶機中(一般是KVM或XEN).

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 Flash Adapter 900GB Full Height PCIe Device Driver

CONFIG_BLK_DEV_RSXX

IBM Flash Adapter 900GB Full Height PCIe SSD 驅動

NVM Express block device

CONFIG_BLK_DEV_NVME

NVM Express是專門針對PCI-E接口高性能固态硬碟的标準規範.有了這一标準,作業系統廠商隻需要編寫一種驅動,就可以支援不同廠商的不同PCI-E SSD裝置,以解決過去PCI-E SSD産品形态與規格五花八門,缺乏通用性和互用性的問題.如果你有一塊較新的PCIE固态硬碟,那麼很大可能就是NVMe接口.
Misc devices
雜項裝置
{省略的部分請按照實際的硬體狀況進行選擇}

Integrated Circuits ICS932S401

CONFIG_ICS932S401

IDT ICS932S401 系列時鐘頻率控制晶片支援(可能會出現在某些主機闆上).

Enclosure Services

CONFIG_ENCLOSURE_SERVICES

SES(SCSI Enclosure Services)是SCSI協定中用于查詢裝置狀态(溫度/風扇/電源/訓示燈)的一項服務.這裡的裝置可以是移動硬碟盒/磁盤陣列櫃/硬碟托架等.SES可以讓主機端透過SCSI指令去控制外接SCSI裝置的電源/風扇以及其他與資料傳輸無關的東西.要使用這項技術,外置裝置和主機上的SCSI/ATA控制晶片都需要支援SES技術才OK.事實上,目前大多數外置移動硬碟和所有磁盤陣列櫃都支援SES規範.

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晶片組管理引擎,是一種面向企業環境的遠端管理技術,其中的重頭戲是英特爾主動管理技術.如果你的晶片組位于"CONFIG_INTEL_MEI_ME"中,可以考慮選"Y",不過如果你不明白這是什麼東西,那就說明你不需要它,就應該選"N".此外,在某些伺服器上此驅動(mei)還可能可能導緻監視程式計時器錯誤,還可能導緻無法正常關機.

ME Enabled Intel Chipsets

CONFIG_INTEL_MEI_ME

請根據幫助中列出的晶片組對照實際情況選擇.

VMware VMCI Driver

CONFIG_VMWARE_VMCI

VMware VMCI(Virtual Machine Communication Interface)是一個在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/Fibre Channel/FireWire裝置之一就必須選上.選"Y".

SCSI target support

CONFIG_SCSI_TGT

核心态的通用SCSI Target實作(原LIO項目).SCSI子系統使用了一種客戶機-伺服器(C/S)模型.通常,一台計算機是這個模型中的客戶機(稱為"initiator"),向目标(target)發起塊操作請求,這個"target"通常是一個儲存設備(例如一塊硬碟).此子產品的功能是将一台計算機變成一個"target"(就像一個普通的硬碟一樣),響應其他"initiator"節點的操作請求,進而讓"target"能夠提供更加進階的功能:複制,自動精簡配置,重複資料删除,高可用性,自動備份等.不确定的選"N".

SCSI: use blk-mq I/O path by default

CONFIG_SCSI_MQ_DEFAULT

對所有SCSI塊裝置預設使用新式的多重隊列I/O排程機制(blk-mq),也就是将I/O請求分散至多個CPU處理以提高性能.相當于開啟"scsi_mod.use_blk_mq"核心子產品參數.尤其适合于SSD(高IOP)/磁盤陣列(多通道)這類儲存設備.

legacy /proc/scsi/ support

CONFIG_SCSI_PROC_FS

過時的/proc/scsi/接口.某些老舊的刻錄程式可能需要它,建議選"N".

SCSI disk support

CONFIG_BLK_DEV_SD

使用SCSI/SAS/SATA/PATA/USB/Fibre Channel儲存設備的必選.選"Y".

SCSI tape support

CONFIG_CHR_DEV_ST

通用SCSI錄音帶驅動

SCSI OnStream SC-x0 tape support

CONFIG_CHR_DEV_OSST

專用于OnStream SC-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 SCSI CDROM)

CONFIG_BLK_DEV_SR_VENDOR

僅在某些古董級的SCSI CDROM裝置上才需要:NEC/TOSHIBA cdrom, HP Writers

SCSI generic support

CONFIG_CHR_DEV_SG

通用SCSI協定(/dev/sg*)支援.也就是除硬碟/CD光牒/錄音帶之外的SCSI裝置(例如光纖通道).這些裝置還需要額外的使用者層工具支援才能正常工作.例如:SANE,Cdrtools,CDRDAO,Cdparanoia

SCSI media changer support

CONFIG_CHR_DEV_SCH

SCSI媒體轉換裝置(SCSI Medium Changer device)是一種控制多個SCSI媒體的轉換器(例如在多個錄音帶/CD光牒之間進行切換),常用于控制錄音帶庫或者CD自動點歌機(jukeboxes).此種裝置會在/proc/scsi/scsi中以"Type: Medium Changer"列出.控制此類裝置的使用者層工具包是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裝置上探測所有的邏輯裝置數量(Logical Unit Number),其值會被該子產品的核心引導參數"max_luns"覆寫.隻在一個SCSI裝置上有多個邏輯裝置時才需要選它,一般的SCSI裝置并不需要.一個SCSI裝置上有多個邏輯裝置的典型例子:多端口USB讀卡器,CD點唱機(jukebox),處于"mass storage"模式的智能手機,量産為多個裝置後的U盤.注意:此項并不影響符合SCSI-3或更高标準的裝置,因為這些裝置會明确的向核心報告邏輯裝置數.

Verbose SCSI error reporting (kernel size +=75K)

CONFIG_SCSI_CONSTANTS

以易讀的方式報告SCSI錯誤,核心将會增大75K

SCSI logging facility

CONFIG_SCSI_LOGGING

啟用SCSI日志(預設并不開啟,需要"echo [bitmask] > /proc/sys/dev/scsi/logging_level"),可用于跟蹤和捕獲SCSI裝置的錯誤.關于[bitmask]的說明可以檢視"drivers/scsi/scsi_logging.h"檔案.不确定的選"N".

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 Transport Attributes

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

為使用了SAS Domain架構的驅動程式提供幫助.SAS Domain即整個SAS交換構架,由"SAS device"和"SAS expander device"組成,其中Device又區分為Initiator和Target,它們可以直接對接起來,也可以經過Expander進行連接配接,Expander起到通道交換或者端口擴充的作用.看不懂就說明你不需要它.

ATA support for libsas (requires libata)

CONFIG_SCSI_SAS_ATA

在libsas中添加ATA支援,進而讓libata和libsas協同工作.

Support for SMP interpretation for SAS hosts

CONFIG_SCSI_SAS_HOST_SMP

在libsas中添加SMP解釋器,以允許主機支援SAS SMP協定.

SRP Transport Attributes

CONFIG_SCSI_SRP_ATTRS

SCSI RDMA 協定(SCSI RDMA Protocol)通過将SCSI資料傳輸階段映射到Infiniband遠端直接記憶體通路(Remote Direct Memory Access)操作加速了SCSI協定.

SCSI target support for SRP Transport Attributes

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指令和資料.此選項便是iSCSI initiator驅動.相關的使用者層工具/文檔/配置示例,可以在open-iscsi找到.

iSCSI Boot Sysfs Interface

CONFIG_ISCSI_BOOT_SYSFS

通過sysfs向使用者空間顯示iSCSI的引導資訊.不确定的選"N".
{此處省略的部分按照實際使用的控制器進行選擇}

VMware PVSCSI driver support

CONFIG_VMWARE_PVSCSI

VMware半虛拟化的SCSI HBA控制器

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控制器.僅可用在基于lguest或QEMU的半虛拟化客戶機中(一般是KVM或XEN).

PCMCIA SCSI adapter support

CONFIG_SCSI_LOWLEVEL_PCMCIA

通過PCMCIA卡與計算機連接配接的SCSI裝置

SCSI Device Handlers

CONFIG_SCSI_DH

針對某些多路徑安裝的SCSI裝置的驅動,用在每個節點都需要一個到SCSI存儲單元的直接路徑的叢集中,具體子項請按照實際使用的控制器進行選擇

OSD-Initiator library

CONFIG_SCSI_OSD_INITIATOR

OSD(Object-Based Storage Device)協定是一個T10 SCSI指令集,和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端口複用器(Port Multiplier)是一個定義在SATA規範裡面的可以選擇的功能,可以把一個活動主機連接配接多路複用至多個裝置連接配接,相當于一個SATA HUB.不确定的選"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-only SFF晶片組都是早就絕迹的老古董}

ACPI firmware driver for PATA

CONFIG_PATA_ACPI

通過ACPI BIOS去操作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

"Software RAID"(需要使用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"(準确的稱呼應該是"Device Mapper RAID",又稱為"Fake RAID"/"BIOS RAID")也依賴于它.還有企業級高可用環境中經常使用的多路徑裝置也依賴于它.

request-based DM: use blk-mq I/O path by default

CONFIG_DM_MQ_DEFAULT

對所有Device-mapper塊裝置預設使用新式的多重隊列I/O排程機制(blk-mq),也就是将I/O請求映射至多個硬體或軟體隊列以提高性能.相當于開啟"dm_mod.use_blk_mq"核心子產品參數.推薦選"Y".

Device mapper debugging support

CONFIG_DM_DEBUG

僅供核心開發者調試使用

Keep stack trace of persistent data block lock holders

CONFIG_DM_DEBUG_BLOCK_STACK_TRACING

僅供核心開發者調試使用

Crypt target support

CONFIG_DM_CRYPT

此子產品允許你建立一個經過透明加密的邏輯裝置(使用cryptsetup工具),要使用加密功能,除此項外,還需要在"Cryptographic API"裡選中相應的加密算法,例如CONFIG_CRYPTO_AES.更多文檔請參考LUKS FAQ.

Snapshot target

CONFIG_DM_SNAPSHOT

允許卷管理器為DM裝置建立可寫的快照(定格于特定瞬間的一個裝置虛拟映像).LVM2 Snapshot需要它的支援.更多詳情參見"Documentation/device-mapper/snapshot.txt"文檔.不确定的選"N".

Thin provisioning target

CONFIG_DM_THIN_PROVISIONING

"Thin provisioning"(某些地方翻譯為"精簡配置")的意思是允許配置設定給所有使用者的總存儲容量超過實際的存儲容量(使用thin-provisioning-tools工具).例如給100個使用者配置設定空間,每個使用者最大允許10G空間,共計需要1000G空間.但實際情況是95%的使用者都隻使用了不到1G的空間,那麼實際準備1000G空間就是浪費.有了"thin provisioning"的幫助,你實際隻需要準備150G的空間就可以了,之後,可以随着使用者需求的增加,添加更多的實際存儲容量,進而減少存儲投資和避免浪費.更多詳情參見"Documentation/device-mapper/thin-provisioning.txt"文檔.

Keep stack trace of thin provisioning block lock holders

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簡單的把所有資料都同步寫入到原始裝置上,相當于關閉緩存.

Era target

CONFIG_DM_ERA

跟蹤塊裝置上的哪些部分被寫入,用于在使用vendor快照時維護緩存一緻性.不确定的選"N".

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這樣的南橋,也不推薦使用"Device Mapper 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

"Zero target"類似于"/dev/zero",所有的寫入都被丢棄,所有的讀取都可以得到無限多個零.可用于某些恢複場合.

Multipath target

CONFIG_DM_MULTIPATH

裝置映射多路徑(DM-Multipath)支援.常用于對可靠性要求比較苛刻的場合.

I/O Path Selector based on the number of in-flight I/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 可以建立一個隻讀的邏輯裝置,然後根據預先生成的哈希校驗和(存儲在其他裝置上),校驗底層裝置上的資料正确性.要使此子產品正常工作,還需要在"Cryptographic API"部分選中相應的雜湊演算法.

Switch target support

CONFIG_DM_SWITCH

Switch target 可以建立這樣的邏輯裝置:将固定尺寸區塊的I/O操作任意映射到一組固定的路徑上.通過向target發送一個消息,即可動态的切換指定區塊的I/O操作所使用的路徑.

Log writes target support

CONFIG_DM_LOG_WRITES

此種target需要兩個裝置:主裝置按照正常方式使用,輔裝置則專門記錄所有主裝置的寫操作.主要用于幫助檔案系統的開發者驗證檔案系統的一緻性,僅供開發調試使用.

Generic Target Core Mod (TCM) and ConfigFS Infrastructure

CONFIG_TARGET_CORE

通用TCM存儲引擎與ConfigFS虛拟檔案系統(/sys/kernel/config)支援.看不懂就說明你不需要.

Fusion MPT device support

CONFIG_FUSION

Fusion MPT(Message Passing Technology) 是 LSI Logic 公司為了更容易實作SCSI和光纖通道而提出的技術,支援Ultra320 SCSI/光纖通道/SAS.
IEEE 1394 (FireWire) support
火線(IEEE 1394)是蘋果公司開發的串行接口,類似于USB,但PC上并不常見,算得上是個沒有未來的技術了.

I2O device support

CONFIG_I2O

智能輸入輸出(Intelligent Input/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/team/光纖通道/虛拟網絡等),僅僅是一般性質的聯網(普通低端伺服器,通過路由器或者區域網路上網的正常個人電腦或辦公電腦),可以選"N".

Bonding driver support

CONFIG_BONDING

鍊路聚合技術擁有多個不同的稱謂:Linux稱為"Bonding",IEEE稱為"802.3ad",Sun稱為"Trunking",Cisco稱為"Etherchannel".該技術可以将多個以太網通道聚合為一個單獨的虛拟擴充卡,例如将兩塊網卡聚合成一個邏輯網卡,可以用來實作負載均衡或硬體備援.此項技術目前已逐漸被CONFIG_NET_TEAM取代.

Dummy net driver support

CONFIG_DUMMY

Dummy網絡接口本質上是一個可以配置IP位址的bit-bucket(位桶,所有發送到此裝置的流量都将被湮滅),以使應用程式看上去正在和一個正常的網絡接口進行通信.使用SLIP(小貓撥号,目前應該已經絕迹了)或PPP(常用于PPPoE ADSL)的使用者需要它

EQL (serial line load balancing) support

CONFIG_EQUALIZER

串行線路的負載均衡.如果有兩個MODEM和兩條SLIP/PPP線路,該選項可以讓你同時使用這兩個通道以達到雙倍速度(網絡的對端也要支援EQL技術).曾經昙花一現的ISDN就這項技術的一個執行個體.

Fibre Channel driver support

CONFIG_NET_FC

光纖通道(Fibre Channel)是一種高速網絡串行協定,主要用于存儲區域網路(SAN),與傳統的iSCSI技術相比,除了提供更高的資料傳輸速度(此優勢不是絕對的),更遠的傳輸距離,更多的裝置連接配接支援,更穩定的性能,更簡易的安裝以外,最重要的是支援網絡區域存儲(SAN)技術.FC與SCSI相容,并意在取代iSCSI(看起來難以如願,并且有可能被40Gb以上的iSCSI反超).如果你的機器上有光纖通道卡(FC卡),除了需要開啟此項外,還需要開啟相應的FC卡驅動,以及CONFIG_CHR_DEV_SG選項.

Generic Media Independent Interface device support

CONFIG_MII

媒體獨立接口(Media Independent Interface)又稱媒體無關接口,是IEEE-802.3(規定了以太網相關協定的具體内容)定義的以太網行業标準.它包括一個資料接口,以及一個位于MAC和PHY之間的控制接口.[提示]大多數以太網卡都有MII收發器,其驅動都依賴于此項,也會自動選中此項.

Intermediate Functional Block support

CONFIG_IFB

IFB是一個中間層驅動,可以用來靈活的配置資源共享.更多資訊參見iproute2文檔.看不懂就說明你不需要.

Ethernet team driver support

CONFIG_NET_TEAM

team驅動.允許通過"ip link add link [ address MAC ] [ NAME ] type team"指令,或者使用将多個以太網卡(稱為"port")組合在一起,建立一個虛拟的"team"網絡裝置,進而允許故障轉移或者提高吞吐率,其目的是取代傳統的"Bonding"(CONFIG_BONDING)驅動."ip"是iproute2包中的一個指令.不确定的選"N".

Broadcast mode support

CONFIG_NET_TEAM_MODE_BROADCAST

廣播模式:所有網卡共用同一個MAC位址,每一個包都從所有網卡同時發送,不做負載均衡,僅做鍊路備援,需要和交換機的"聚合強制不協商"方式配合使用.此模式最浪費資源,但可靠性最高,容錯能力最強.常用于強調極端可靠的金融業.

Round-robin mode support

CONFIG_NET_TEAM_MODE_ROUNDROBIN

循環均衡模式:所有網卡共用同一個MAC位址,資料包依次從每個網卡循環分發(例如,在三個網卡一組的情況下,第0個包走eth0,第1個包走eth1,第2個包走eth2,第3個包走eth0,第4個包走eth1,第5個包走eth2,第6個包走eth0,...一直循環分發下去,直到傳輸完畢),帶寬增加,支援容錯(故障鍊路會被自動踢出),交換機需要配置聚合口(思科叫"port channel").資料包從不同的網卡發出,若中途再經過不同的鍊路,在到達用戶端時可能會亂序,進而造成吞吐量達不到理論上的翻倍效果.

Random mode support

CONFIG_NET_TEAM_MODE_RANDOM

随機均衡模式:所有網卡共用同一個MAC位址,資料包依次随機選擇一個網卡分發(例如,在三個網卡一組的情況下,第0個包走eth2,第1個包走eth0,第2個包走eth2,第3個包走eth1,第4個包走eth1,第5個包走eth0,第6個包走eth2,...一直随機分發下去,直到傳輸完畢),帶寬增加,支援容錯(故障鍊路會被自動踢出),交換機需要配置聚合口(思科叫"port channel").資料包從不同的網卡發出,若中途再經過不同的鍊路,在到達用戶端時可能會亂序,進而造成吞吐量達不到理論上的翻倍效果.

Active-backup mode support

CONFIG_NET_TEAM_MODE_ACTIVEBACKUP

主備模式:無需更改每個網卡的原生MAC位址,但是team的MAC位址對外僅在主網卡上可見并且保持不變,同一時刻僅有主網卡處于激活狀态,其他備用網卡都處于等待狀态,所有流量僅通過主網卡發送,僅在主網卡故障時,某個備用網卡才會被激活成主網卡.此模式僅提供容錯能力,可靠性高,但是資源使用率最低.此模式最大的好處是不需要在交換機上做特别的設定.

Load-balance mode support

CONFIG_NET_TEAM_MODE_LOADBALANCE

BPF均衡模式:均衡算法由使用者空間通過BPF接口(bpf_hash_func)設定.

MAC-VLAN support

CONFIG_MACVLAN

MAC-VLAN是通過MAC位址來劃分VLAN的方式,在Linux則用來給網卡添加多個MAC位址.你可以使用"ip link add link <real dev> [ address MAC ] [ NAME ] type macvlan"指令建立一個虛拟的"macvlan"裝置(系統會自動打開網卡的混雜模式),然後就可以在同一個實體網卡上虛拟出多個以太網口.Docker依賴于它.

MAC-VLAN based tap driver

CONFIG_MACVTAP

基于MAC-VLAN接口的tap(虛拟以太網裝置)字元裝置(macvtap)驅動,旨在簡化虛拟化的橋接網絡,目的是替代TUN/TAP(CONFIG_TUN)和Bridge(CONFIG_BRIDGE)核心子產品.可以通過與建立macvlan裝置相同的"ip"指令建立一個虛拟的"macvtap"裝置,并通過TAP使用者空間接口進行通路.

Virtual eXtensible Local Area Network (VXLAN)

CONFIG_VXLAN

"vxlan"虛拟接口可以在第三層網絡上建立第二層網絡(跨多個實體IP子網的虛拟二層子網),是一種在UDP中封裝MAC的簡單機制,主要用于虛拟化環境下的隧道虛拟網絡(tunnel virtual network).

Network console logging support

CONFIG_NETCONSOLE

網絡控制台(netconsole)的作用是通過網絡記錄核心日志資訊.詳情參見"Documentation/networking/netconsole.txt"文檔.不确定的選"N".

Dynamic reconfiguration of logging targets

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可以為使用者空間提供包的接收和發送服務,可以用來虛拟一張網卡或點對點通道(例如為QEMU提供虛拟網卡支援).當程式打開"/dev/net/tun"裝置時,驅動程式就會注冊相應的"tunX"或"tapX"網絡裝置,當程式關閉"/dev/net/tun"裝置時,驅動程式又會删除相應的"tunX"或"tapX"網絡裝置以及所有與之相關聯的路由.詳情參見"Documentation/networking/tuntap.txt"文檔.看不懂就表明你不需要.

Support for cross-endian vnet headers on little-endian kernels

CONFIG_TUN_VNET_CROSS_LE

允許小端序(little-endian)核心中的TUN/TAP與MACVTAP裝置驅動解析來自大端序(big-endian)核心的老舊的virtio裝置的vnet頭.不确定的選"N".

Virtual ethernet pair device

CONFIG_VETH

該驅動提供了一個本地以太網隧道(裝置會被成對的建立).Docker依賴于它.

Virtio network driver

CONFIG_VIRTIO_NET

virtio虛拟網卡驅動.僅可用在基于lguest或QEMU的半虛拟化客戶機中(一般是KVM或XEN).

Virtual netlink monitoring device

CONFIG_NLMON

提供一個可以監視netlink skbs的網絡裝置,以允許tcpdump之類的工具通過packet socket來分析netlink消息.僅供調試使用.

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減負引擎(TCP Offload Engine)特性支援.不過,TOE并不适合高連接配接數/小檔案的Web伺服器類應用,它的主要目的是和IP存儲協定(iSCSI/NFS)一起使用.[注意]TOE與"Large Receive Offload"是兩個不同的東西,不要混淆.

Broadcom Tigon3 support

CONFIG_TIGON3

這是最流行的驅動,其涵蓋的型号特别多,但是"Tigon3"的名稱卻非常具有迷惑性.簡單說來,除了B44,BNX2,BNX2X中明确列出的型号外,其他型号用的都是這個驅動.[注意]某些型号還需要額外到固件支援,例如:BCM5703/BCM5704需要tigon/tg3_tso.bin,BCM5701A0需要tigon/tg3.bin,BCM5705需要tigon/tg3_tso5.bin

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虛拟化(Single Root IOV)技術

FDDI driver support

CONFIG_FDDI

光纖分布式資料接口(FDDI)

HIPPI driver support

CONFIG_HIPPI

高性能并行接口(HIgh Performance Parallel Interface)是一個在短距離内高速傳送大量資料的點對點協定.常用于叢集和超級計算機.

General Instruments Surfboard 1000

CONFIG_NET_SB1000

SURFboard 1000 插卡式Cable Medem(ISA接口),這玩意早就絕種了

PHY Device support and infrastructure

CONFIG_PHYLIB

資料鍊路層晶片簡稱為MAC控制器,實體層晶片簡稱之為PHY,通常的網卡把MAC和PHY的功能做到了一顆晶片中,但也有一些僅含PHY的"軟網卡".此選項就是對這些"軟網卡"的支援.請根據實際情況選擇其下的子項.

Micrel KS8995MA 5-ports 10/100 managed Ethernet switch

CONFIG_MICREL_KS8995MA

Micrel KS8995MA 5端口 10/100M 以太網交換晶片

PLIP (parallel port) support

CONFIG_PLIP

PLIP(Parallel Line Internet Protocol)用于将兩台電腦通過并口進行聯網,組成一個簡單的客戶機/伺服器結構.詳情參見"Documentation/networking/PLIP.txt".現在的電腦都使用網卡進行互聯,并口早就經被丢進曆史的垃圾箱了.

PPP (point-to-point protocol) support

CONFIG_PPP

點對點協定(Point to Point Protocol)是SLIP的繼任者,使用PPP需要使用者層程式pppd的幫助.PPP實際上有兩個版本:基于普通模拟電話線的"異步PPP"和基于數字線路(例如ISDN線路)的"同步PPP".使用電腦直接撥号的 PPPoE ADSL 使用者需要此項.

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隧道協定中.此特性需要PPTP Client工具的支援.

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-Point Tunneling Protocol)是一種主要用于VPN的資料鍊路層網絡協定.此功能需要ACCEL-PPTP工具的支援.

PPP over L2TP

CONFIG_PPPOL2TP

第二層隧道協定(L2TP)是一種通過UDP隧道傳輸PPP流量的技術,對于VPN使用者來說,L2TP VPN是比PPTP VPN的更好解決方案.

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驅動支援RELCOM linefill和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"目錄,不過你最好親自用眼睛檢查一下其中是否存在"iwlwifi-*.ucode"這樣的檔案.

Intel Wireless WiFi DVM Firmware support

CONFIG_IWLDVM

DVM固件支援(這也是目前唯一可用的固件).選"Y/M".[提示]如果你将此驅動靜态編譯進核心,那麼務必使用CONFIG_EXTRA_FIRMWARE功能将固件也一起編譯進核心.

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

廣域網(Wide Area Network)網卡支援.這種網卡很罕見.不确定的選"N".

IEEE 802.15.4 drivers

CONFIG_IEEE802154_DRIVERS

IEEE 802.15.4描述了低速率無線個人區域網路的實體層和媒體接入控制協定

Xen network device frontend driver

CONFIG_XEN_NETDEV_FRONTEND

XEN半虛拟化網絡裝置前端驅動(通常是被"domain 0"導出的)

Xen backend network device

CONFIG_XEN_NETDEV_BACKEND

XEN半虛拟化網絡裝置後端驅動,通常被用在"domain 0"核心上,用于向其他domain導出半虛拟化網絡裝置.

VMware VMXNET3 ethernet driver

CONFIG_VMXNET3

VMware vmxnet3 虛拟以太網卡驅動

FUJITSU Extended Socket Network Device driver

CONFIG_FUJITSU_ES

FUJITSU PRIMEQUEST 2000 E2 系列網卡

Microsoft Hyper-V virtual network driver

CONFIG_HYPERV_NET

Microsoft Hyper-V 虛拟以太網卡驅動

ISDN support

CONFIG_ISDN

上世紀在ADSL流行之前曾經有過短暫流行,但現在已經絕迹了

Open-Channel SSD target support

CONFIG_NVM

Open-channel SSD 是一種遵守NVMe規範且不使用FTL技術的固态硬碟.目前此種SSD由于過于前衛還非常罕見.但是非常有前途.

Open-Channel SSD debugging support

CONFIG_NVM_DEBUG

提供 /sys/module/lnvm/parameters/configure_debug 調試接口以允許建立/删除"target".僅供調試使用.

Generic NVM manager for Open-Channel SSDs

CONFIG_NVM_GENNVM

為Open-Channel SSD提供NVM媒體管理(media manager)支援,也就是将資料存放位置與垃圾回收政策的決定權收歸作業系統核心,以剝奪固态硬碟裝置自身的媒體管理功能,或者說允許使用自身不包含媒體管理功能的固态硬碟.

Round-robin Hybrid Open-Channel SSD target

CONFIG_NVM_RRPC

允許将open-channel SSD在主機上顯示為一個塊裝置:使用線性映射表實作,使用基于開銷(cost-based)的垃圾回收機制,并對4K大小的IO操作進行了優化.
Input device support
輸入裝置

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

CONFIG_INPUT

通用輸入層.隻要你有任何輸入裝置(鍵盤,滑鼠,手寫闆,觸摸闆,遊戲杆,方向盤,遊戲鍵盤...),就必須選"Y".

Export input device LEDs in sysfs

CONFIG_INPUT_LEDS

将輸入裝置上的LED訓示燈當作标準的LED類裝置導出到sysfs中.不确定的選"Y".

Support for memoryless force-feedback devices

CONFIG_INPUT_FF_MEMLESS

遊戲玩家使用的力回報裝置,例如: Logitech WingMan Force 3D 飛行搖杆, ThrustMaster FireStorm Dual Power 2.如果你有此類裝置,除了本項之外,還需要開啟特定于硬體的驅動.

Polled input device skeleton

CONFIG_INPUT_POLLDEV

使用輪詢機制的輸入裝置支援,此項主要是為源碼樹之外的驅動準備的,核心自帶的驅動若有需要會自動選中.不确定的選"N".

Sparse keymap support library

CONFIG_INPUT_SPARSEKMAP

使用"sparse keymap"的輸入裝置支援,此項主要是為源碼樹之外的驅動準備的,核心自帶的驅動若有需要會自動選中.不确定的選"N".

Matrix keymap support library

CONFIG_INPUT_MATRIXKMAP

使用"matrix keymap"的輸入裝置支援,此項主要是為源碼樹之外的驅動準備的,核心自帶的驅動若有需要會自動選中.不确定的選"N".

Mouse interface

CONFIG_INPUT_MOUSEDEV

滑鼠接口(/dev/input/mouseX,/dev/input/mice).用滑鼠的必選(包括USB滑鼠).[提示]如果系統上有多個滑鼠,那麼,mouseX對應單個特定的滑鼠,而mice則是所有滑鼠的集合(所有滑鼠的事件都會被發送到這個裝置檔案中).

Provide legacy /dev/psaux device

CONFIG_INPUT_MOUSEDEV_PSAUX

仍然支援傳統的/dev/psaux接口,這是為相容老舊的程式而設定.選"N".

Horizontal screen resolution

CONFIG_INPUT_MOUSEDEV_SCREEN_X

作為滑鼠使用的數字化轉換器(digitizer)或手寫闆(graphic tablet)需要知道X window的水準分辯率.一般可了解為顯示屏的水準分辨率.

Vertical screen resolution

CONFIG_INPUT_MOUSEDEV_SCREEN_Y

作為滑鼠使用的數字化轉換器(digitizer)或手寫闆(graphic tablet)需要知道X window的垂直分辯率.一般可了解為顯示屏的垂直分辨率.

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鍵盤.[提示]除了桌上型電腦PS/2接口上的鍵盤外,許多筆記本的鍵盤其實也是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觸摸闆的使用者還可以看看其專用的X驅動,這些驅動可以提供更多的進階功能.使用USB滑鼠的可以選"N".其下的子項是針對各廠商特定産品的擴充協定支援.按需選擇即可.[提示]除了桌上型電腦PS/2接口上的滑鼠外,許多筆記本的觸摸闆其實也是PS/2滑鼠.
{此處被省略的滑鼠都很罕見,基本上不必考慮}
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

接在移動式擴充塢(Docking station)上的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 in console

CONFIG_CONSOLE_TRANSLATIONS

在虛拟控制台(console)上支援字型映射和Unicode轉換.建議選"Y",否則将無法在控制台上顯示Unicode字元.[提示]如果已經使用了CJKTTY更新檔,則必選"Y".

Support for console on virtual terminal

CONFIG_VT_CONSOLE

核心預設将第一個虛拟終端(/dev/tty0)用作系統控制台(可以通過"console=tty3"這樣的參數去修改),将諸如子產品錯誤/核心錯誤/啟動資訊之類的警告資訊發送到這裡,而且以單使用者模式登入時也需要使用這個控制台.若選"N"則會導緻黑屏.除非是嵌入式系統,否則必選"Y".

Support for binding and unbinding console drivers

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(被一個諸如xterm之類的程序用來讀寫slave裝置)兩部分組成的軟裝置.圖形界面使用者與需要支援ssh/telnet遠端登入者必選.

Support multiple instances of devpts

CONFIG_DEVPTS_MULTIPLE_INSTANCES

允許多個"devpts"檔案系統執行個體(使用"-o newinstance"挂載選項),以允許互相隔離的PTY命名空間(比如在虛拟化容器中).Docker依賴于它.systemd的PrivateNetwork/PrivateDevices特性依賴于它.

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 cJTAG standard

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

高性能的程序間記憶體複制(可以減少一次向共享記憶體的複制動作).主要用于高性能并行計算領域,比如基于消息傳遞接口(Message Passing Interface)協定的開發的并行程式.不确定的選"N".

/dev/mem virtual device support

CONFIG_DEVMEM

"/dev/mem"虛拟裝置是整個處理器位址空間的全映射(包括所有實體記憶體/裝置IO空間/總線映射空間),可以用來直接存取實體記憶體,常用于通路實體IO裝置,例如dmidecode工具可以從中提取系統識别資訊(序列号,制造商,型号,等等),或者Xorg可以用來通路顯示卡的實體記憶體或者實作使用者空間驅動,同時擁有root權限的攻擊者也可以使用它完成很多标準rootkit的行為.如果你需要使用使用者空間的驅動或不确定,那麼選"Y".如果你覺得安全特别重要,可以選"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.* kernel options

CONFIG_SERIAL_8250_DEPRECATED_OPTIONS

選"N".

8250/16550 PNP device support

CONFIG_SERIAL_8250_PNP

即插即用序列槽支援,不确定的選"Y".

Console on 8250/16550 and compatible serial port

CONFIG_SERIAL_8250_CONSOLE

将序列槽當做系統控制台(接受所有核心消息,單使用者模式登入)使用(需要使用"console=ttyS1"參數).僅在沒有顯示接口嵌入式裝置上有用.不确定的選"N".

DMA support for 16550 compatible UART controllers

CONFIG_SERIAL_8250_DMA

與标準8250/16650相容的通用異步收發傳輸器(Universal Asynchronous Receiver/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 serial ports

CONFIG_SERIAL_8250_NR_UARTS

允許的最大序列槽數量,保持預設值即可.

Number of 8250/16550 serial ports to register at runtime

CONFIG_SERIAL_8250_RUNTIME_UARTS

核心在啟動時注冊的序列槽數量(可以通過"8250.nr_uarts"參數修改),保持預設即可.

Extended 8250/16550 serial driver options

CONFIG_SERIAL_8250_EXTENDED

非标準的序列槽驅動選項(例如HUB6,中斷共享,多端口,超過4個COM口).不确定的選"N".

Support more than 4 legacy serial ports

CONFIG_SERIAL_8250_MANY_PORTS

如果你的闆子上有超過4個COM接口就選"Y".

Support for sharing serial interrupts

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(Remote Supervisor Adapter)序列槽,是一種IBM特定的硬體.看不懂的選"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),用于客戶機和主控端之間的通信.僅可用在基于lguest或QEMU的半虛拟化客戶機中(一般是KVM或XEN).

IPMI top-level message handler

CONFIG_IPMI_HANDLER

智能平台管理接口(Intelligent Platform Management Interface)是标準的傳感器(溫度,電壓,風扇,電源,機箱入侵)管理規範.IPMI的核心是專用的基闆管理控制器(BMC)硬體,BMC并不依賴于伺服器的CPU/BIOS/OS,是一個獨立運作的管理子系統,隻要有BMC與IPMI固件便可工作.BMC通常是一個安裝在伺服器主機闆上的獨立的闆卡(也有少數伺服器主機闆内置).IPMI良好的獨立特性便克服了以往基于作業系統的管理方式所受的限制,例如作業系統不響應或未加載的情況下,仍然可以進行開關機等操作.更多詳情參見"Documentation/IPMI.txt"文檔.此項技術主要用于伺服器領域,個人PC和筆記本上是沒有的.

Generate a panic event to all BMCs on a panic

CONFIG_IPMI_PANIC_EVENT

當核心panic(發生緊急情況)時,IPMI消息處理器将會向每一個已注冊的底闆管理控制器(BMC)接口生成一個描述該panic的IPMI事件,這些事件可以引發日志記錄/報警/重新開機/關機等動作.

Generate OEM events containing the panic string

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".

Probe for all possible IPMI system interfaces by default

CONFIG_IPMI_SI_PROBE_DEFAULTS

較新的硬體通常使用ACPI或DMI機制導出IPMI接口,但是老舊的硬體并不這麼做,是以驅動程式必須直接探測硬體,這會導緻啟動延遲.選"N"表示禁止直接探測.選"Y"表示強制直接探測(相當于使用"ipmi_si_intf.trydefaults=1"核心引導選項).

IPMI SMBus handler (SSIF)

CONFIG_IPMI_SSIF

使用I2C總線上的SMBus接口通路BMC(而不是标準接口).建議選"N".

IPMI Watchdog Timer

CONFIG_IPMI_WATCHDOG

啟用IPMI Watchdog定時器.如果硬體有這種功能,推薦選"Y".

IPMI Poweroff

CONFIG_IPMI_POWEROFF

允許通過IPMI消息處理器關閉機器

Hardware Random Number Generator Core support

CONFIG_HW_RANDOM

硬體随機數發生器裝置(/dev/hw_random)支援.此裝置并不會直接向核心的随機數發生器填充(這是"rngd"守護程序的職責).詳情參見"Documentation/hw_random.txt"文檔.

Timer IOMEM HW Random Number Generator support

CONFIG_HW_RANDOM_TIMERIOMEM

Technologic Systems 的TS-7800單闆計算機,這是一個嵌入式裝置.

Intel HW Random Number Generator support

CONFIG_HW_RANDOM_INTEL

Intel基于i8xx晶片組(這是2005年以前的老産品了)的硬體随機數發生器

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虛拟的硬體随機數發生器.僅可用在基于lguest或QEMU的半虛拟化客戶機中(一般是KVM或XEN).

EXYNOS HW random number generator support

CONFIG_HW_RANDOM_EXYNOS

基于EXYNOS的SOC嵌入式系統上的硬體随機數發生器

TPM HW Random Number Generator support

CONFIG_HW_RANDOM_TPM

可信賴平台子產品(Trusted Platform Module)提供的硬體随機數發生器

/dev/nvram support

CONFIG_NVRAM

直接存取主機闆上"CMOS RAM"的接口,太危險!建議選"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

高精度事件定時器(HPET Timer),又被稱為"Multimedia Timer",是一種取代傳統"ACPI Timer"(CONFIG_X86_PM_TIMER)的硬體時鐘發生器,提供14.31818MHz固定頻率.2007年以後的晶片組一般都支援(有的主機闆還需要在BIOS裡面明确開啟HPET支援),建議開啟.

Allow mmap of HPET

CONFIG_HPET_MMAP

允許對HPET寄存器進行映射以提高通路速度.但是某些包含HPET硬體寄存器的頁中同時還含有其他不該暴露給使用者的資訊,在此種情況下,需要選"N".

Enable HPET MMAP access by default

CONFIG_HPET_MMAP_DEFAULT

預設開啟HPET寄存器映射

Hangcheck timer

CONFIG_HANGCHECK_TIMER

當機檢測定時器周期性地檢查系統任務排程程式以确定系統的運作狀況,如果超過門檻值,計算機将重新啟動.不确定的選"N".

TPM Hardware Support

CONFIG_TCG_TPM

基于硬體的可信賴平台子產品(Trusted Platform Module),它實際上是一個含有密碼運算部件和存儲部件的小晶片上的系統,由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裝置(SLD 9630 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".

Xillybus generic FPGA interface

CONFIG_XILLYBUS

Xillybus是一個通用的FPGA接口,僅用于嵌入式裝置.

I2C support

CONFIG_I2C

I2C與SMBus支援.I2C(讀着"I-squared-C")是用于單片機(又稱"微控制器")的低速串行總線協定,它為微控制器(Microcontroller)與各種不同的低速裝置通信提供了一種廉價的總線(因為隻需要使用兩個引腳,稱為"2線"),是以廣泛的應用于嵌入式環境.SMBus(System Management Bus)差不多相當于是I2C的子集,最初的目的是為了管理智能電池,現在常用于硬體監控(電壓/風扇轉速/溫度/電池等)以及記憶體子產品的配置(使用I2C EEPROM),是以所有PC主機闆都依賴于SMBus協定.系統硬體監控工具lm_sensors和i2c-tools依賴于此子產品,硬體傳感器和"Video For Linux"也需要該子產品的支援.詳情參見"Documentation/i2c/summary"文檔及整個"i2c"檔案夾.不确定的選"Y".

ACPI I2C Operation region support

CONFIG_ACPI_I2C_OPREGION

3.17版核心新增功能,允許BIOS中的代碼通過I2C主機控制器驅動通路I2C slave裝置(例如智能電池).

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總線."sensors-detect"工具依賴于此功能.詳情參見"Documentation/i2c/dev-interface"文檔.建議選"M".

I2C bus multiplexing support

CONFIG_I2C_MUX

多路複用I2C總線支援.不确定的選"N".
Multiplexer I2C Chip support
I2C多路複用晶片,其下的子項按實際情況選擇就OK了

Autoselect pertinent helper modules

CONFIG_I2C_HELPER_AUTO

有一些I2C驅動程式需要"I2C algorithm"的幫助才能工作.而"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了.[提示]可用"sensors-detect"工具幫助檢測

SMBus Control Method Interface

CONFIG_I2C_SCMI

SMBus控制方法接口(Control Method Interface)是SMBus的ACPI接口.用于在ACPI環境中使用SMBus裝置.不确定的選"M"(i2c-scmi).
{其餘被省略的都是用于嵌入式系統或者額外的I2C/SMBus擴充卡,按實際情況選擇即可}

I2C/SMBus Test Stub

CONFIG_I2C_STUB

用于幫助開發SMBus client驅動(特别是某些傳感器晶片).詳情參見"Documentation/i2c/i2c-stub"文檔.不确定的選"N".

I2C slave support

CONFIG_I2C_SLAVE

I2C slave模式支援.不确定的選"N".

I2C Core debugging messages

CONFIG_I2C_DEBUG_CORE

向系統日志中傳遞大量的I2C Core調試資訊.僅用于調試I2C裝置故障

I2C Algorithm debugging messages

CONFIG_I2C_DEBUG_ALGO

向系統日志中傳遞大量的I2C Algorithm調試資訊.僅用于調試I2C裝置故障

I2C Bus debugging messages

CONFIG_I2C_DEBUG_BUS

向系統日志中傳遞大量的I2C Bus調試資訊.僅用于調試I2C裝置故障

SPI support

CONFIG_SPI

串行外設接口(Serial Peripheral Interface)是一種标準的四線同步雙向串行總線.SPI類似于I2C,但比I2C的"2線"稍微複雜一些,SPI需要4個引腳("4線"),不但傳輸速率比I2C更高,還能實作全雙工通信.大多數SPI裝置不支援動态裝置檢測,有些甚至是隻讀或者隻寫的.SPI常用于微控制器(Microcontroller)與外圍裝置(RTC,傳感器,EEPROM,FLASH,解/編碼器,模數轉換器,數字信号處理器)之間的通信,MMC和SD卡也可以通過SPI協定通路,而MMC接口的DataFlash卡則必須通過SPI才能通路.僅用于嵌入式環境,PC平台上沒有這樣的裝置.

SPMI support

CONFIG_SPMI

系統電源管理接口(SPMI, System Power Management Interface)是一種連接配接PMIC(Power Management Integrated Circuits)的雙線串行接口.僅用于嵌入式環境.

Qualcomm MSM SSBI bus support

CONFIG_SSBI

高通(Qualcomm)骁龍系列智能手機處理器内嵌的單線串行總線接口(Single-wire Serial Bus Interface)

HSI support

CONFIG_HSI

高速同步串行接口(High speed synchronous Serial Interface)是移動産業處理器接口(MIPI)聯盟的高速同步接口工作組釋出的一項技術規範.MIPI(Mobile Industry Processor Interface)是2003年由ARM,Nokia,ST,TI等公司成立的一個聯盟,目的是把手機内部的接口(如攝像頭,顯示屏接口,射頻/基帶接口等)标準化,進而減少手機設計的複雜程度和增加設計靈活性.MIPI聯盟下面有不同的工作組,分别定義了一系列的手機内部接口标準,比如攝像頭接口CSI,顯示接口DSI,射頻接口DigRF,麥克風/揚聲器接口SLIMbus等.統一接口标準的好處是手機廠商根據需要可以從市面上靈活選擇不同的晶片和模組,更改設計和功能時更加快捷友善.目前,MIPI聯盟的董事成員包括英特爾,摩托羅拉,諾基亞,三星,意法半導體,德州儀器.

PPS support

CONFIG_PPS

秒脈沖(Pulse Per Second)驅動用來控制電流脈沖速率,可用于計時.PPS的精度可以到納秒級,而且沒有累積誤差.這通常是GPS天線的一項功能,用于擷取GPS衛星的授時.

PTP clock support

CONFIG_PTP_1588_CLOCK

精密時間協定(Precision Time Protocol)是IEEE 1588定義的一種基于以太網的高精度時間同步協定.PTP采用硬體與軟體結合設計,可以提供比純軟體方式的NTP(網絡時間協定)高的多的精度(微秒級).與GPS授時相比,在提供和GPS相同的精度情況下,PTP不需要為每個裝置安裝GPS那樣昂貴的元件,隻需要一個高精度的本地時鐘和提供高精度時鐘戳的部件,成本較低.一般的PC和伺服器上沒有PTP硬體.
Pin controllers
Pin控制器.其下的各選項請根據實際硬體狀況選擇(皆為低功耗或嵌入式平台).

GPIO Support

CONFIG_GPIOLIB

每個晶片都會有至少一個引腳(PIN),像CPU或者晶片組這種複雜的晶片,其引腳會有成白上千個,這些PIN就是晶片與外部溝通的管道,每個PIN都會有它特定的功能.GPIO(General Purpose I/O)就是晶片上的一種通用功能的引腳,其功能可由使用者通過程式設計的方式自定義(所謂"可程式設計引腳"),比如使用兩條PIN就可以組成I2C,使用4條PIN就可以組成SPI.嵌入式系統經常需要控制結構簡單但數量衆多的外部裝置(比如LED的亮與滅),使用傳統的序列槽或者并口就太"大炮打蚊子",而GPIO則非常适合用于控制此類數量衆多的簡單裝置.GPIO在嵌入式裝置中使用廣泛,但PC平台的晶片組南橋大多也內建有GPIO引腳(但隻有BIOS才知道如何使用他們),以支援某些特殊的定制硬體.詳情參見"Documentation/gpio/gpio.txt"文檔.不确定的選"N".

Debug GPIO calls

CONFIG_DEBUG_GPIO

僅供調試使用

/sys/class/gpio/... (sysfs interface)

CONFIG_GPIO_SYSFS

為GPIO裝置添加sysfs接口.主要用于調試和問題排查.不确定的選"N".

Generic memory-mapped GPIO controller support (MMIO platform device)

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)進行監控.主要用于筆記本與嵌入式裝置.

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

與智能電池系統(Smart Battery System)規範相容的氣壓計(內建在電池組中)支援.

GPIO charger

CONFIG_CHARGER_GPIO

支援充電器通過GPIO引腳報告其線上狀态.

Board level reset or power off

CONFIG_POWER_RESET

允許通過操作闆載的主電源,關閉或重新開機整個系統.僅用于嵌入式系統.
{這裡被省略的部分,按實際電池控制晶片選擇即可}

Adaptive Voltage Scaling class support

CONFIG_POWER_AVS

自适應電壓調節(Adaptive Voltage Scaling)技術能夠動态的對裝置工作電壓進行精細的調整,擁有比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

電源管理總線(Power Management Bus)是一種基于SMBus(CONFIG_I2C)的開放标準的數字電源管理協定,可以用于配置/監控/操作電源變換器,目前全球有超過40個IC廠商提供滿足PMBus标準的産品.最新的PMBus+ 1.3标準增加AVS(CONFIG_POWER_AVS)支援,可以動态控制裝置的工作電壓.根據你的實際硬體狀況選擇子項.

ACPI 4.0 power meter

CONFIG_SENSORS_ACPI_POWER

将ACPI 4.0(2009年6月釋出)中定義的瓦特表(用于測量功耗)當做硬體監控裝置導出到使用者空間.需要固件支援ACPI 4.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"文檔.

Expose thermal sensors as hwmon device

CONFIG_THERMAL_HWMON

将溫度傳感器同時注冊為一個硬體監控裝置,進而讓溫度傳感器同樣在sysfs中擁有hwmon接口.

Enable writable trip points

CONFIG_THERMAL_WRITABLE_TRIPS

允許使用者空間程式更改溫度報警閥值(trip temperature).
Default Thermal governor
選擇預設的熱調節器,建議選"step_wise".

Fair-share thermal governor

CONFIG_THERMAL_GOV_FAIR_SHARE

此調節器根據裝置對所屬區域的"貢獻"(contribution)進行調節.

Step_wise thermal governor

CONFIG_THERMAL_GOV_STEP_WISE

此調節器以線性方式進行調節,也就是每次調節都隻在緊鄰的兩檔之間進行切換.

Bang Bang thermal governor

CONFIG_THERMAL_GOV_BANG_BANG

此調節器僅能讓散熱風扇處于開/關兩種狀态(根據溫度閥值)而不能調節風扇的速度.某些Acer筆記本風扇驅動(acerhdf)依賴于此調節器.不能将此調節器設為預設調節器.

User_space thermal governor

CONFIG_THERMAL_GOV_USER_SPACE

此調節器讓使用者空間程式去決定如何調節

Power allocator thermal governor

CONFIG_THERMAL_GOV_POWER_ALLOCATOR

此調節器可對特定的裝置動态配置設定和限制能量的使用.不确定的選"N".

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 驅動通過利用Nehalem之後的CPU支援的"package-level C-state"特性,強制為線上的CPU注入"idle"指令(通過"/sys/class/thermal/"接口設定"idle"百分比),以確定CPU的功耗不會超過特定的門檻值(發熱量也就不會超過特定的門檻值).這樣刻意的降低系統性能峰值還有一個好處,那就是相對于傳統的動态頻率調節技術而言,能夠達到更高的每瓦特性能.詳見Documentation/thermal/intel_powerclamp.txt文檔.如果你對節能和限制發熱量特别在意,同時又不在乎系統峰值性能的降低,可以選"Y".

X86 package temperature thermal driver

CONFIG_X86_PKG_TEMP_THERMAL

所謂"CPU溫度"實際上是個多重概念:(1)Socket溫度,是指CPU插座裡的測溫二極管探測到的溫度,相當于CPU外表面的溫度;(2)Package溫度,是封裝在CPU内部的測溫二極管探測到的溫度,是真正的CPU内部的溫度,此溫度永遠比Socket溫度高;(3)Core溫度,是每個CPU核心内嵌的溫度傳感器檢測到的溫度,有多少個核心就有多少個Core溫度;此選項提供了檢測Package溫度的驅動.并将此溫度用于監控CPU溫度(對于擁有多顆實體CPU的伺服器來說每顆實體CPU對應一個Package溫度).同時,選中此項後,溫度報警閥值也變為可以設定兩個嚴重級别不同的值.建議選"Y".

Intel SoCs DTS thermal driver

CONFIG_INTEL_SOC_DTS_THERMAL

專用于Intel SoC(BayTrail等)平台的CPU内嵌溫度傳感器驅動.

ACPI INT340X thermal drivers

CONFIG_INT340X_THERMAL

除了CPU/SOC内置的溫度傳感器之外,新式筆記本或平闆電腦還經常包含探測整機不同位置溫度的傳感器,這些溫度傳感器以INT3400 ACPI裝置作為主裝置(master),并以INT3401~INT340B ACPI裝置為從裝置(slave),此選項提供了對此類溫度傳感器的驅動支援.

Intel PCH Thermal Reporting Driver

CONFIG_INTEL_PCH_THERMAL

專用于Intel PCH晶片組内置溫度傳感器的驅動.

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(Advanced Microcontroller Bus Architecture)總線支援.僅用于嵌入式環境
Multifunction device drivers
MFD(多功能裝置)的含義是"在單個晶片上內建多個功能(GPIO,觸摸屏,鍵盤,電流調節,電源管理...)".此種晶片通常通過一個或多個IRQ線和低速資料總線(SPI/I2C/GPIO)與主CPU進行通信.對于主系統來說,它們通過資料總線顯示為一個單獨的MFD裝置.但透過MFD架構,又可以擁有多個互相獨立的子裝置(子功能).

Intel ICH LPC

CONFIG_LPC_ICH

LPC(Low Pin Count)總線是Intel于1998年釋出的一個旨在取代傳統ISA總線的接口規範,用于連接配接南橋和Super I/O晶片(用于連接配接低速外設:序列槽,并口,PS/2鍵鼠,軟碟控制器,TPM(可信平台子產品),溫度傳感器,風扇速度監測器)以及Flash晶片(BIOS).以往南橋必須保留ISA總線,以連接配接老舊的ISA插槽和Super I/O晶片(可以使用Superiotool和sensors-detect工具檢測)以及Flash晶片.但是ISA需要占用大量針腳,主機闆的線路設計也比較複雜.随着ISA插槽的消失,LPC就順理成章的出現了,它與ISA在軟體層面是類似的,同時LPC工作速率由PCI總線速率同步驅動,但是引腳數大大降低,以友善在擁擠的現代主機闆上布局,這也是取名"Low Pin Count"的原因.此選項支援幾乎所有Intel晶片組的LPC總線,以友善其他驅動控制MFD(目前僅有GPIO和watchdog).具體支援的晶片可以檢視"drivers/mfd/lpc_ich.c"檔案.不确定的選"Y".

Intel SCH LPC

CONFIG_LPC_SCH

用于 Intel Atom 處理器的 Intel SCH(System Controller Hub) LPC 總線支援.目前僅支援SMBus和GPIO.
{此處省略的硬體請按照實際使用的晶片進行選擇}

Voltage and Current Regulator Support

CONFIG_REGULATOR

通用的電壓與電流調節器架構.除了提供通用的電壓與電流調節接口外,還能通過sysfs向使用者空間提供電壓與電流的狀态資訊.目的在于通過動态調節電壓和電流,降低能耗,延長電池壽命.主要用于嵌入式環境.

Multimedia support

CONFIG_MEDIA_SUPPORT

多媒體裝置:攝像頭,視訊采集,模拟電視,數字電視,機頂盒,收音機,遙控器,數字視訊廣播(DVB)...核心多媒體子系統由LinuxTV項目負責維護.

Cameras/video grabbers support

CONFIG_MEDIA_CAMERA_SUPPORT

攝像頭,視訊采集卡

Analog TV support

CONFIG_MEDIA_ANALOG_TV_SUPPORT

模拟電視信号接收器,包括那些既能接收模拟信号又能接收數字信号的電視卡

Digital TV support

CONFIG_MEDIA_DIGITAL_TV_SUPPORT

數字電視信号接收器,包括那些既能接收模拟信号又能接收數字信号的電視卡

AM/FM radio receivers/transmitters support

CONFIG_MEDIA_RADIO_SUPPORT

AM/FM無線電接收機和發射機,包括那些帶有收音機功能的電視卡

Remote Controller support

CONFIG_MEDIA_RC_SUPPORT

基于紅外線/射頻的遙控器,用于控制視訊采集卡或者電視卡.大多數電視卡和視訊采集卡都需要它的支援,即使這些卡實際并不需要遙控器.

Media Controller API

CONFIG_MEDIA_CONTROLLER

此API用于查詢多媒體裝置内部的拓撲結構,并進行動态配置.主要用于嵌入式環境中的攝像頭配置.

V4L2 sub-device userspace API

CONFIG_VIDEO_V4L2_SUBDEV_API

此API用于配置視訊的格式/尺寸/幀率.主要用于嵌入式環境中的攝像頭配置.

Enable advanced debug functionality on V4L2 drivers

CONFIG_VIDEO_ADV_DEBUG

開啟V4L2驅動程式的進階調試特性,不确定的選"N".

Enable old-style fixed minor ranges on drivers/video devices

CONFIG_VIDEO_FIXED_MINOR_RANGES

僅在你使用mknod而不是udev進行裝置管理時才需要開啟.不确定的選"N".

V4L2 int device (DEPRECATED)

CONFIG_VIDEO_V4L2_INT_DEVICE

僅用于舊式的圖像傳感器驅動(omap24xxcam和tcm825x),反對使用此項.選"N".

DVB Network Support

CONFIG_DVB_NET

DVB(數字視訊廣播)是一系列國際公認的數字電視标準.此項提供了DVB網絡(DVB标準的一部分)支援,可用于數字機頂盒(Set-Top-Box)的自動固件更新以及通過DVB卡通路網際網路.

maximum number of DVB/ATSC adapters

CONFIG_DVB_MAX_ADAPTERS

最大允許的DVB/ATSC電視卡數量.取值範圍是[1,255],但經過測試的範圍是[4,32].不确定的請保持預設值"8".

Dynamic DVB minor allocation

CONFIG_DVB_DYNAMIC_MINORS

為DVB裝置節點動态配置設定次裝置号,這樣每張DVB卡就可以擁有最多4個同類型的裝置(例如demux(分離器)和frontend(前端)).此特性需要udev的支援.

Compile Remote Controller keymap modules

CONFIG_RC_MAP

将各種遙控器的keymap表編譯進核心.這些表都很小,但是如果你不打算使用遙控器,或者更喜歡使用v4l-utils包内的ir-keytable工具從使用者空間加載這些表,可以選"N".

Remote controller decoders

CONFIG_RC_DECODERS

遙控器解碼器.其下的子項是各種不同的遙控通信協定.

Remote Controller devices

CONFIG_RC_DEVICES

各種遙控器産品.其下子項按實際的廠商和型号選擇即可.

Media USB Adapters

CONFIG_MEDIA_USB_SUPPORT

各種USB總線的多媒體裝置

USB Video Class (UVC)

CONFIG_USB_VIDEO_CLASS

UVC(USB Video Class)是一個開放的通用USB視訊捕獲标準.目前大多數攝像頭都是UVC攝像頭,也就是俗稱的"免驅攝像頭".所有符合UVC規格的硬體都可以使用通用UVC驅動程式,而無需再使用專用驅動.

UVC input events device support

CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV

某些UVC攝像頭上會帶有按鈕(常用于開關LED燈/拍照),此選項可以将此按鈕注冊為一個輸入裝置,以用于報告按鈕事件.

GSPCA based webcams

CONFIG_USB_GSPCA

基于GSPCA架構的攝像頭驅動(依賴于CONFIG_VIDEO_V4L2),這是一位60歲的法國醫生的傑作.該驅動适用于大多數常見的非UVC攝像頭.具體支援的晶片清單可以檢視"Documentation/video4linux/gspca.txt"文檔.
{此處省略的非GSPCA攝像頭,電視卡,電視棒等其他硬體請按照實際使用的晶片進行選擇}

Media PCI Adapters

CONFIG_MEDIA_PCI_SUPPORT

各種PCI/PCIe總線的多媒體裝置

V4L platform devices

CONFIG_V4L_PLATFORM_DRIVERS

特定于平台的V4L(Video For Linux)裝置,這些裝置不是通過USB/PCI這樣的總線連接配接的.一般用于單片機之類的嵌入式環境.

SoC camera support

CONFIG_SOC_CAMERA

所謂"SoC Camera"是指那些不通過PCI或USB總線連接配接的攝像頭(例如通過I2C直接與SoC資料總線連接配接).此選項為這類攝像頭提供了通用的支援.

platform camera support

CONFIG_SOC_CAMERA_PLATFORM

僅用于調試目的
{此處省略的部分請按照實際使用的晶片進行選擇}

Memory-to-memory multimedia devices

CONFIG_V4L_MEM2MEM_DRIVERS

使用系統記憶體作為源和目标緩存(Memory-to-memory)的多媒體裝置.一般的采集輸出驅動僅将系統記憶體用于源或目标緩存之一.不确定的選"N".

Media test drivers

CONFIG_V4L_TEST_DRIVERS

僅用于調試目的.

Siano SMS1xxx based MDTV via SDIO interface

CONFIG_SMS_SDIO_DRV

使用SDIO接口的一種移動數字電視(MDTV)卡,基于Siano SMS1xxx晶片.主要用于嵌入式裝置

ISA and parallel port devices

CONFIG_MEDIA_PARPORT_SUPPORT

使用ISA或并口的多媒體裝置,古董級别的裝置

Radio Adapters

CONFIG_RADIO_ADAPTERS

AM/FM無線電廣播接收裝置

FireDTV and FloppyDTV

CONFIG_DVB_FIREDTV

Digital Everywhere生産的FireWire(IEEE 1394)接口的DVB電視接收卡

Cypress firmware helper routines

CONFIG_CYPRESS_FIRMWARE

Cypress(賽普拉斯)多媒體産品的固件加載幫助程式.

Enable Remote Controller support for Siano devices

CONFIG_SMS_SIANO_RC

Siano多媒體裝置遙控器

Enable debugfs for smsdvb

CONFIG_SMS_SIANO_DEBUGFS

僅供調試使用,目前僅可用于Siano USB裝置

Autoselect ancillary drivers (tuners, sensors, i2c, frontends)

CONFIG_MEDIA_SUBDRV_AUTOSELECT

為多媒體裝置驅動自動選擇所有相關的輔助驅動(tuner[調諧器],sensor[傳感器],視訊編/解碼器以及前端),以免去手動選擇的麻煩.通常這是個好主意,建議選"Y".但是對于某些嵌入式環境來說,卻希望去掉部分有用的輔助驅動以保持核心盡可能短小,這時應該選"N".

I2C module for IR

CONFIG_VIDEO_IR_I2C

大多數闆子都通過GPIO總線連接配接紅外線晶片,但少數闆子卻使用I2C總線連接配接.此項即是對I2C總線連接配接的紅外線晶片提供支援.
Encoders, decoders, sensors and other helper chips
編碼器,解碼器,傳感器,混頻器...等輔助晶片
Sensors used on soc_camera driver
用于"SoC Camera"(CONFIG_SOC_CAMERA)的各種傳感器
Customize TV tuners
各種專用的電視調諧器
Customise DVB Frontends
各種專用的數字電視前端
Graphics support
圖形裝置/顯示卡支援.對于不需要使用圖形界面的伺服器環境來說,必須的最小選項集取決于平台(BIOS/UEFI)和引導程式(GRUB/LILO/GRUB4DOS)的設定(全選"N"則螢幕将無任何顯示).具體如下:(1)以UEFI方式啟動的,一律都必須"CONFIG_FB=y,CONFIG_FB_EFI=y,CONFIG_FRAMEBUFFER_CONSOLE=y"[補充說明:對于3.12或以上版本,則應該是"CONFIG_X86_SYSFB=y,CONFIG_FB=y,CONFIG_FB_SIMPLE=y,FRAMEBUFFER_CONSOLE=y"];(2)以BIOS+GRUB2啟動,且在\'grub.cfg\'中明确将"gfxpayload"變量設定為非\'text\'值或者核心引導參數中存在\'vga=...\',那麼必須"CONFIG_FB=y,CONFIG_FB_VESA=y,CONFIG_FRAMEBUFFER_CONSOLE=y"[補充說明:對于3.12或以上版本,則應該是"CONFIG_X86_SYSFB=y,CONFIG_FB=y,CONFIG_FB_SIMPLE=y,FRAMEBUFFER_CONSOLE=y"];(3)以BIOS方式啟動的其他情況,必須"CONFIG_VGA_CONSOLE=y"

/dev/agpgart (AGP Support)

CONFIG_AGP

GART(圖形位址重映射表)可以看做一種被各種顯示卡(不隻是AGP顯示卡,還包括PCI-E顯示卡與內建顯示卡以及核心顯示卡)使用的"僞IOMMU"(參見CONFIG_GART_IOMMU選項),它将實體位址不連續的系統記憶體映射成連續的"顯存"供GPU使用.當實體顯存容量不夠時(大多數內建顯示卡甚至根本沒有實體顯存),GART允許通過DMA(直接記憶體通路)方式将這部分"顯存"用于紋理貼圖,Z軸緩沖,ALPHA混合,多邊形網格生成...等各種3D操作.如果沒有GART支援,OpenGL直接渲染将會變得特别慢.GLX與DRI(CONFIG_DRM)也依賴于此.簡而言之,需要使用圖形化界面的人都應該選"Y".不需要圖形界面的使用者應該選"N".[注意]對于使用304或更老版本的nVidia閉源驅動的使用者,如果使用的是某些老舊的晶片組,那麼此處應該選"N".因為在這些特定的晶片組上,閉源驅動自己的agpgart實作(NvAGP)是更好的選擇.[提示]老版本的AMD/ATI/NVIDIA閉源驅動都曾經有自己的agpgart實作,但在新版本中都已經被移除.而Intel顯示卡一直使用的都是核心的agpgart實作.

AMD Opteron/Athlon64 on-CPU GART support

CONFIG_AGP_AMD64

該項僅适用于如下AMD處理器:(1)AMD K8微架構CPU[cpu family : 15] (2)AMD K10微架構CPU[cpu family : 16] (3)AMD 推土機微架構CPU[cpu family : 21 并且 model: 小于15].[提示]除了前面列出的三種CPU外,其他AMD處理器(例如A4/A6/A8系列APU)并不需要此選項.具體支援的CPU可以檢視"arch/x86/kernel/amd_nb.c"檔案中的"AMD_NB_GART"常量的使用.

Intel 440LX/BX/GX, I8xx and E7x05 chipset support

CONFIG_AGP_INTEL

該項僅适用于:(1)某些Intel晶片組(440LX/BX/GX, 8xx系列, E7205/E7505/E7221, 9xx系列, 所有3/4系列). (2)全部Intel內建顯示卡(包括Intel核心顯示卡).具體支援的晶片組和集顯可以檢視"drivers/char/agp/intel-*"系列檔案.[提示]如果你使用的既不是此處所列的晶片組(例如Xeon晶片組或者5/6/7/8/9系列晶片組)也不是Intel的內建顯示卡(例如AMD/nVidia獨立顯示卡),那麼應該選"N".

SiS chipset support

CONFIG_AGP_SIS

該項僅适用于SiS晶片組,但不包括上世紀古董級的SiS 5591/5592晶片組.

VIA chipset support

CONFIG_AGP_VIA

該項僅适用于VIA晶片組.具體支援的晶片組型号可以檢視"drivers/char/agp/via-agp.c"中的"via_agp_device_ids"數組.

VGA Arbitration

CONFIG_VGA_ARB

圖形裝置是通過I/O或記憶體的特定位址範圍進行通路的.大多數現代的顯示卡都允許對這個範圍進行重新定位,但是某些基于PCI的"傳統"VGA裝置仍然使用"寫死"的位址範圍,無法對其進行重新定位.如果系統上有多個這樣的"傳統"VGA裝置,就會造成位址沖突,這時候就需要進行VGA仲裁.此選項主要用于處理多個顯示卡(比如內建顯示卡和獨立顯示卡)之間的切換.如果你的系統上有多個顯示卡,可以選"Y",否則應該選"N".詳情參見"Documentation/vgaarbiter.txt"文檔.

Maximum number of GPUs

CONFIG_VGA_ARB_MAX_GPUS

最多允許支援多少個顯示卡

Laptop Hybrid Graphics - GPU switching support

CONFIG_VGA_SWITCHEROO

支援多個顯示卡之間的切換(通常是在集顯和獨顯之間),這項技術有多個不同的名稱:"Hybrid Graphics","PowerXpress","HybridPower".這項特性主要用于筆記本,桌上型電腦一般不支援.

Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)

CONFIG_DRM

DRI(Direct Rendering Infrastructure)允許應用程式以高效安全的方式直接通路GPU,主要用于硬體3D加速.不需要圖形界面的使用者應該選"N".桌面使用者建議選"Y".[提示]KMS+DRI2+GEM+UXA+Wayland是Linux圖形革命的基石,這裡還有兩篇需要越牆的文章可以幫助加深對Linux圖形技術的了解:(1)關于Xorg的一些整理,(2)厘清了xorg裡的一些概念.

Enable legacy fbdev support for your modesetting driver

CONFIG_DRM_FBDEV_EMULATION

為傳統的fbdev裝置提供支援,由于CONFIG_FRAMEBUFFER_CONSOLE依賴于fbdev裝置,是以務必選"Y",否則将會遭遇控制台黑屏.

Allow to specify an EDID data set instead of probing for it

CONFIG_DRM_LOAD_EDID_FIRMWARE

EDID(擴充顯示器識别資料)是一種VESA(視訊電子标準協會)制定的标準資料格式,其中包含有關顯示器的各種參數:供應商資訊,最大圖像尺寸,顔色設定,廠商預設定,頻率範圍,顯示器名,序列号字元串等等.EDID儲存在顯示器的PROM或EEPROM中,顯示卡或read-edid一般通過I2C總線使用DDC協定進行讀取.但是在某些腦殘的硬體(顯示器或顯示卡)上卻不能正确擷取EDID資料.此選項就是為了解決這個問題而設定的.此選項可以允許從"/lib/firmware/"目錄加載EDID資料,或者将EDID資料在編譯時直接嵌入核心.不确定的選"N".詳情參見"Documentation/EDID/HOWTO.txt"文檔.[提示]EDID的繼任者是DisplayID,但目前DisplayID尚未被廣泛應用.
I2C encoder or helper chips
I2C編碼器或輔助晶片

Chrontel ch7006 TV encoder

CONFIG_DRM_I2C_CH7006

Chrontel ch7006 電視解碼器支援.某些nVidia顯示卡上有這個晶片.此選項僅對NVIDIA顯示卡開源驅動(nouveau)有意義.

Silicon Image sil164 TMDS transmitter

CONFIG_DRM_I2C_SIL164

Silicon Image SIL164 最小化傳輸差分信号(TMDS)發送器,用于實作DVI信号的合成和發送.TMDS不如LVDS應用廣泛,僅在某些nVidia顯示卡上有出現.

NXP Semiconductors TDA998X HDMI encoder

CONFIG_DRM_I2C_NXP_TDA998X

NXP(恩智浦) TDA998X HDMI 發射器.用于實作HDMI信号的合成和發送.

3dfx Banshee/Voodoo3+

CONFIG_DRM_TDFX

3dfx Banshee/Voodoo3+ 系列古董顯示卡

ATI Rage 128

CONFIG_DRM_R128

ATI Rage 128 系列古董顯示卡

ATI Radeon

CONFIG_DRM_RADEON

Radeon系列顯示卡開源驅動(radeon).[提示]R600及更新的GPU需要額外的固件/微代碼(radeon-ucode)的幫助才能使用開源驅動.如果你打算在R600及更新的GPU上使用此開源驅動,那麼建議選"M"而不是"Y".因為"Y"需要将微代碼(通常位于"/lib/firmware/radeon/"目錄)一起編譯進核心(使用CONFIG_EXTRA_FIRMWARE="radeon/GPU-MODEL.bin").[注意]如果你打算使用目前尚不支援KMS的Radeon閉源驅動(Catalyst/fglrx),那麼此項必須選"N".

Enable userspace modesetting on radeon (DEPRECATED)

CONFIG_DRM_RADEON_UMS

禁用KMS支援.目的是為了相容遠古版本的DDX驅動.除非你有充足的理由,否則請選"N".

Nouveau (nVidia) cards

CONFIG_DRM_NOUVEAU

nVidia系列顯示卡開源驅動(nouveau).[注意]如果你打算使用也許永遠不會支援KMS的nVidia閉源驅動(nvidia-drivers),那麼此項必須選"N".

Maximum debug level

CONFIG_NOUVEAU_DEBUG

最大調試級别,也就是最高允許顯示的調試資訊詳細程度.取值範圍是[0,7],數字越大,在核心中編入的調試資訊就越多,建議設為"4",過大的級别會導緻驅動運作緩慢.

Default debug level

CONFIG_NOUVEAU_DEBUG_DEFAULT

預設調試級别,必須小于等于CONFIG_NOUVEAU_DEBUG的值.數字越大,輸出的調試資訊就越詳細,建議設為"2",過大的級别會導緻驅動運作緩慢.

Support for backlight control

CONFIG_DRM_NOUVEAU_BACKLIGHT

允許調整顯示器背光亮度,主要用于液晶顯示屏等使用背光技術的顯示器.建議選"Y".

Intel I810

CONFIG_DRM_I810

專為古董級Intel內建顯示卡(i810/i815)準備的驅動

Intel 8xx/9xx/G3x/G4x/HD Graphics

CONFIG_DRM_I915

Intel GMA(晶片組內建顯示卡)與HD Graphics(核心內建顯示卡)開源驅動(intel).除了個别老古董(i810/i815)與基于PowerVR的晶片(Atom z5xx)之外,此驅動支援所有Intel內建顯示卡(包括Atom中的內建顯示卡).[提示]三大主流顯示卡廠商對Linux的驅動支援,Intel是最徹底的,官方隻提供開源驅動.

Enable modesetting on intel by default

CONFIG_DRM_I915_KMS

預設開啟KMS(Kernel Mode Setting)特性,作用是可以在核心級别(而不是使用者級别)設定顯示分辨率和顔色深度.KMS使用了更新的技術,可以減少失真,增強3D性能,甚至可以使用核心的節能功能.KMS是大勢所趨,隻要使用者層軟體不太舊(2010年之後),都建議開啟.[注意]開啟此項後,應該:(1)關閉CONFIG_FB_INTEL選項并禁止加載任何framebuffer驅動(包括CONFIG_FB_UVESA),(2)取消核心引導參數"vga=xxx"和"video=xxx",(3)必須開啟CONFIG_FRAMEBUFFER_CONSOLE選項.

Enable legacy fbdev support for the modesetting intel driver

CONFIG_DRM_I915_FBDEV

使用此驅動為傳統的fbdev裝置提供支援,由于CONFIG_FRAMEBUFFER_CONSOLE依賴于fbdev裝置,是以務必選"Y",否則将會遭遇控制台黑屏.

Enable preliminary support for prerelease Intel hardware by default

CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT

為尚未正式釋出的顯示卡提供支援,相當于設定"i915.preliminary_hw_support=1"引導參數.一般應該選"N"

Enable userspace modesetting on Intel hardware (DEPRECATED)

CONFIG_DRM_I915_UMS

為古董級的DDX驅動提供使用者空間模式設定支援.選"N".

Matrox g200/g400

CONFIG_DRM_MGA

Matrox G200, G400, G450 系列古董顯示卡

SiS video cards

CONFIG_DRM_SIS

SiS 630 系列古董顯示卡

Via unichrome video cards

CONFIG_DRM_VIA

Via unichrome 系列古董顯示卡

Savage video cards

CONFIG_DRM_SAVAGE

Savage3D/4/SuperSavage/Pro/Twister 系列古董顯示卡

DRM driver for VMware Virtual GPU

CONFIG_DRM_VMWGFX

VMware SVGA2 虛拟顯示卡驅動.支援3D加速,支援KMS.如果你打算在VMware内使用圖形化界面,建議選"Y".

Enable framebuffer console under vmwgfx by default

CONFIG_DRM_VMWGFX_FBCON

如果你使用的VMware Tools不太舊就選"Y".

Intel GMA5/600 KMS Framebuffer

CONFIG_DRM_GMA500

Intel基于Poulsbo架構的內建顯示卡實驗性支援.此類顯示卡并不常見,僅用于Atom z5xx系列處理器.

DisplayLink

CONFIG_DRM_UDL

DisplayLink是一個通過USB接口實作顯示器連接配接到電腦的連接配接技術,可以非常簡單的連接配接電腦和多個顯示裝置,常用于通過USB接口擴充虛拟的電腦的桌面.目前DisplayLink技術最多可以支援6台顯示器同時顯示32位色彩的任意分辨率畫面.

AST server chips

CONFIG_DRM_AST

AST系列顯示卡實驗性支援.此種顯示卡僅出現在伺服器環境.

Kernel modesetting driver for MGA G200 server engines

CONFIG_DRM_MGAG200

MGA G200系列伺服器顯示卡晶片的KMS支援.[注意]僅用于伺服器晶片,不要用于桌面晶片!此驅動需要v0.3.0版本的使用者空間modesetting驅動.

Cirrus driver for QEMU emulated device

CONFIG_DRM_CIRRUS_QEMU

這是QEMU虛拟的cirrus顯示卡KMS驅動,僅可用于客戶機中.千萬不要用于真正的實體cirrus顯示卡.

QXL virtual GPU

CONFIG_DRM_QXL

用于SPICE的虛拟桌面的QXL虛拟顯示卡(cirrus)KMS支援.

Lowlevel video output switch controls

CONFIG_VIDEO_OUTPUT_CONTROL

底層視訊輸出開關控制(通過sysfs接口).這是ACPI視訊控制所依賴的功能,也被許多顯示卡驅動所依賴.可以選"N",若有其它驅動需要它,會被自動選中.

Support for frame buffer devices

CONFIG_FB

幀緩沖(framebuffer)裝置(/dev/fb*)是一種對圖形硬體的抽象,它把螢幕上的所有像素點都直接映射到一段線性的記憶體空間,這樣就為軟體提供了通路圖形硬體的統一接口,這些軟體不需要了解硬體的底層細節(例如寄存器),隻要簡單的改變相應記憶體位置的值,就能改變螢幕上顯示的内容(顔色/亮度等).Xorg的高度可移植性也就根源于此.圖形界面使用者必選.CJKTTY更新檔也依賴于它.

Enable firmware EDID

CONFIG_FIRMWARE_EDID

EDID(擴充顯示器識别資料)儲存在顯示器的PROM或EEPROM中,顯示卡或read-edid一般通過I2C總線使用DDC協定進行讀取.但是在某些腦殘的硬體(顯示器或顯示卡)上卻不能正确擷取EDID資料.此選項就是為了解決這個問題而設定的(參見CONFIG_DRM_LOAD_EDID_FIRMWARE).開啟此項後,将允許三種驅動(nvidiafb,i810fb,savagefb)通過Video BIOS擷取EDID.建議選"N",僅在你确實遭遇EDID讀取失敗,并且确實需要使用nvidiafb/i810fb/savagefb驅動的時候才需要考慮選"Y".[提示]EDID的繼任者是DisplayID,但目前DisplayID尚未被廣泛應用.

Framebuffer foreign endianness support

CONFIG_FB_FOREIGN_ENDIAN

如果你想混合使用不同位元組序的主機闆和顯示卡(在Little-Endian主機闆上使用Big-Endian顯示卡,或者相反),可以選"Y".絕大多數人都應該選"N".除非你确實知道自己在做什麼.

Enable Video Mode Handling Helpers

CONFIG_FB_MODE_HELPERS

使用GTF和EDID解析程式來幫助處理顯示模式,建議選"N",若有其他選項依賴于它時,會自動選上.

Enable Tile Blitting Support

CONFIG_FB_TILEBLITTING

此項僅對matroxfb驅動有意義,建議選"N",若有其他選項依賴于它時,會自動選上
{雖然此處省略的各種Framebuffer驅動提供了對圖形硬體的統一抽象,讓Xorg不必與硬體直接對話,但這些Framebuffer驅動僅能提供2D功能,在如今3D硬體加速和視訊硬體解碼早已鋪天蓋地的情況下,讓Xorg直接與GPU硬體對話才更符合潮流,而傳統的Framebuffer驅動(CONFIG_FB_*)反而成為了絆腳石,不但沒有必要與新的DRI驅動(CONFIG_DRM_*)共存,而且還會互相沖突.是以切勿選中這裡省略的任何Framebuffer驅動.除非你确實知道自己在做什麼.}

Exynos Video driver support

CONFIG_EXYNOS_VIDEO

三星基于ARM構的EXYNOS處理器内置顯示卡

Backlight & LCD device support

CONFIG_BACKLIGHT_LCD_SUPPORT

背光與液晶支援.

Lowlevel LCD controls

CONFIG_LCD_CLASS_DEVICE

液晶(LCD)底層控制架構.用于控制對比度和LCD開關(而不是背光亮度).這些LCD硬體目前僅用于智能手機/平闆電腦等嵌入式環境.

Lowlevel Backlight controls

CONFIG_BACKLIGHT_CLASS_DEVICE

背光(Backlight)底層控制架構.用于控制背光源的亮度和開關.選中此項後還需要從子項中選擇特定于硬體的驅動.

Generic PWM based Backlight Driver

CONFIG_BACKLIGHT_PWM

液晶顯示器(包括桌上型電腦和筆記本)的背光亮度調整方式有兩種:(1)PWM調光,(2)非PWM調光.目前主流的液晶顯示器基本上都是PWM調光,僅有少數是非PWM調光型号(而且越來越少).

Apple Backlight Driver

CONFIG_BACKLIGHT_APPLE

基于Intel處理器的蘋果Macbook筆記本和iMac桌上型電腦顯示器背光控制
{其它省略的驅動僅用于智能手機/平闆電腦等嵌入式環境}
Console display driver support
控制台顯示驅動.每個人都需要.下面的"VGA text"與"Framebuffer"至少應該選中一個.

VGA text console

CONFIG_VGA_CONSOLE

VGA文本模式控制台.建議選"N".僅某些伺服器環境可以考慮選"Y".

Enable Scrollback Buffer in System RAM

CONFIG_VGACON_SOFT_SCROLLBACK

标準的VGA控制台復原緩沖區位于VGA RAM中,但是其空間非常小,并且是固定的.開啟此項後,就可以在記憶體中開辟更大的螢幕復原緩沖區,這将允許你復原更多的螢幕(Shift+PageUp),但是控制台的速度會略有下降.經常使用文本控制台的可以選"Y",不确定的選"N".

Scrollback Buffer Size (in KB)

CONFIG_VGACON_SOFT_SCROLLBACK_SIZE

在記憶體中開辟的螢幕復原緩沖區大小.每個80x25螢幕需要4KB記憶體

Framebuffer Console support

CONFIG_FRAMEBUFFER_CONSOLE

基于Framebuffer的圖形模式控制台.KMS特性依賴于它.CJKTTY更新檔也依賴于它.桌面使用者必選"Y"(使用了CONFIG_DRM_*的使用者必須開啟),伺服器以UEFI方式啟動的也必選"Y".

Map the console to the primary display device

CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY

選"Y"表示自動将控制台映射到"主"顯示卡,選"N"表示自動将控制台映射到第一個加載的顯示卡驅動.無論是否選中此項,都可以通過"fbcon=map:N"核心引導參數更改映射關系.僅在系統擁有多個顯示卡時此選項才有意義.參見"Documentation/fb/fbcon.txt"文檔.

Framebuffer Console Rotation

CONFIG_FRAMEBUFFER_CONSOLE_ROTATION

顯示畫面旋轉,由于是純軟體方式實作,是以會大大降低顯示速度,除非你确實需要,否則建議選"N".若使用了CJKTTY更新檔,則必須選"N".

Support for the Framebuffer Console Decorations

CONFIG_FB_CON_DECOR

允許在控制台上顯示背景圖像,例如在系統啟動時,在一堆滾動的字元背後顯示漂亮的背景圖像.當然,要實作這個功能,還需要使用者空間程式的幫助.詳見"Documentation/fb/fbcondecor.txt"文檔以及fbsplash的wiki頁.

Bootup logo

CONFIG_LOGO

啟動時顯示linux的logo(一幅企鵝圖像),企鵝的數量表示核心檢測到的CPU數目,喜歡炫一下的就選吧.子項是三種不同品質的圖檔,分别是黑白,16色,224色.按需選擇.

Sound card support

CONFIG_SOUND

聲霸卡支援

Preclaim OSS device numbers

CONFIG_SOUND_OSS_CORE_PRECLAIM

開啟此項後,隻要OSS支援被開啟,無論相應的子產品是否被加載,核心都會預先聲明所有OSS裝置号.當其中一個裝置被打開時,将會嘗試使用"sound-slot/service-*"與"char-major-*"兩種别名去加載相應的子產品.關閉此項後, 核心将僅聲明實際使用中的OSS裝置号.當打開一個不存在的裝置時,将會僅嘗試使用标準的"char-major-*"别名去加載相應的子產品.由于"sound-slot/service-*"将會在未來移除,此選項僅是一個為了相容性而保留的過渡選項,未來會被移除(相當于設為"N").

Advanced Linux Sound Architecture

CONFIG_SND

ALSA(進階Linux聲音架構)是核心預設的聲音子系統.ALSA除了提供了聲音裝置的驅動,還提供了一個使用者空間的函數庫,這樣使用者空間程式就可以通過統一的API使用驅動功能,而不必直接與核心驅動互動.[吐槽]Linux音頻系統,比意大利面條更混亂的系統!

Sequencer support

CONFIG_SND_SEQUENCER

MIDI音序器支援,如果你是MIDI玩家,請選"Y",但如果你不知道MIDI是什麼,請選"N".

Sequencer dummy client

CONFIG_SND_SEQ_DUMMY

除非你要同時連接配接到多個MIDI裝置或應用程式,否則請不要選中

OSS Mixer API

CONFIG_SND_MIXER_OSS

模拟OSS混音器API(/dev/mixer*),某些老舊的程式仍然使用它,建議不選

OSS PCM (digital audio) API

CONFIG_SND_PCM_OSS

模拟OSS數字音頻(PCM)API(/dev/dsp*),某些老舊的程式仍然使用它,建議不選.

OSS PCM (digital audio) API - Include plugin system

CONFIG_SND_PCM_OSS_PLUGINS

讓ALSA模拟的 OSS PCM API 支援channel/format/rate的轉換.選"N",除非你确實知道為什麼要選"Y".

OSS Sequencer API

CONFIG_SND_SEQUENCER_OSS

模拟OSS音序器(/dev/sequencer,/dev/music),某些老舊的程式仍然使用它,建議不選

HR-timer backend support

CONFIG_SND_HRTIMER

允許将高精度定時器(CONFIG_HIGH_RES_TIMERS)用作ALSA高精度時間源,建議選中

Use HR-timer as default sequencer timer

CONFIG_SND_SEQ_HRTIMER_DEFAULT

将高精度定時器(HR-timer)當作預設的時序脈沖發生器時間源,建議選中

Dynamic device file minor numbers

CONFIG_SND_DYNAMIC_MINORS

動态配置設定ALSA裝置的次裝置号.如果你有8個以上的聲霸卡,可以選"Y",否則應該選"N".

Support old ALSA API

CONFIG_SND_SUPPORT_OLD_API

支援已被廢棄的老舊版本的ALSA PCM API,選"N".

Verbose procfs contents

CONFIG_SND_VERBOSE_PROCFS

僅供調試使用

Verbose printk

CONFIG_SND_VERBOSE_PRINTK

僅供調試使用

Debug

CONFIG_SND_DEBUG

僅供調試使用

Generic sound devices

CONFIG_SND_DRIVERS

通用聲音裝置

PC-Speaker support (READ HELP!)

CONFIG_SND_PCSP

如果你有聲霸卡,務必選"N".如果你的系統沒有聲霸卡,僅在認真閱讀了幫助之後,确實知道自己在幹什麼的情況下,才可以開啟此項.

Dummy (/dev/null) soundcard

CONFIG_SND_DUMMY

僅供調試使用

Generic loopback driver (PCM)

CONFIG_SND_ALOOP

PCM環回(loopback)裝置非常類似于網卡的環回接口(127.0.0.1),它會将輸入的音頻流原封不動的傳回給使用者空間.PCM回環裝置常用來将A程式輸出的音頻流作為B程式的輸入(A以寫模式打開環回裝置,而B以讀模式打開),比如用B程式記錄A程式的輸出,或做進一步的處理.

Virtual MIDI soundcard

CONFIG_SND_VIRMIDI

虛拟MIDI驅動,允許将使用原始MIDI裝置的應用程式連接配接到音序器用戶端,如果你不知道MIDI是什麼就選"N".
{此處省略幾種MIDI裝置(事實上大部分人都沒有這些裝置)}

AC97 Power-Saving Mode

CONFIG_SND_AC97_POWER_SAVE

AC97(Audio Codec 97)自動節能模式支援.在此模式下,如果音頻裝置閑置超過"/sys/module/snd_ac97_codec/parameters/power_save"設定的秒數("0"表示關閉節能模式),那麼驅動程式将會關閉音頻裝置以節約電力.建議選"Y".詳見"Documentation/sound/alsa/powersave.txt"文檔.

Default time-out for AC97 power-save mode

CONFIG_SND_AC97_POWER_SAVE_DEFAULT

預設的逾時秒數,也就是"/sys/module/snd_ac97_codec/parameters/power_save"的預設值."0"表示關閉節能模式.建議設為"10"這個久經考驗的合理數字.

ISA sound devices

CONFIG_SND_ISA

基于ISA總線的聲霸卡,已經絕種了.

PCI sound devices

CONFIG_SND_PCI

基于PCI總線的聲霸卡,絕大多數聲霸卡都是PCI接口
{此處省略的聲霸卡按實際情況選擇即可(都是些比較舊的AC97聲霸卡)}

Intel HD Audio

CONFIG_SND_HDA_INTEL

符合Intel HD Audio規範的聲霸卡是目前的主流聲霸卡.如果選"M",那麼下面的每個驅動也都會被編譯成子產品,如果選"Y",那麼下面的每個驅動也都會直接編譯進核心.

Pre-allocated buffer size for HD-audio driver

CONFIG_SND_HDA_PREALLOC_SIZE

為HD-audio驅動程式預先配置設定的緩沖區大小(kB),較大的值擁有更好的性能,例如對于使用PulseAudio聲音伺服器的系統來說,推薦使用"4096".預設值"64"僅僅是為了曆史相容的原因.[提示]ALSA+PulseAudio是目前的主流搭配.

Build hwdep interface for HD-audio driver

CONFIG_SND_HDA_HWDEP

為HD-audio驅動添加hwdep接口.僅用于調試目的

Support digital beep via input layer

CONFIG_SND_HDA_INPUT_BEEP

為HD-audio驅動添加數字蜂鳴(beep)接口.如果你的主機闆沒有蜂鳴器(不是能夠播放音樂的揚聲器),可以考慮選"Y".

Digital beep registration mode (0=off, 1=on)

CONFIG_SND_HDA_INPUT_BEEP_MODE

設為"0"表示預設禁用數字蜂鳴接口,設為"1"表示預設啟用數字蜂鳴接口.

Support jack plugging notification via input layer

CONFIG_SND_HDA_INPUT_JACK

通過輸入層支援JACK插件通知.JACK是一個比PulseAudio更專業的聲音伺服器,重點是低延遲,是專業音頻軟體(例如:Ardour,Rezound,LinuxSampler)首選的音頻伺服器.如果你打算使用JACK,可以選"Y".[提示]如果要将JACK和PulseAudio一起使用,需要安裝PulseAudio的JACK支援子產品.

Support initialization patch loading for HD-audio

CONFIG_SND_HDA_PATCH_LOADER

僅用于調試目的
{此處省略的HD-audio聲霸卡按實際情況選擇即可.[提示]如果CONFIG_SND_HDA_INTEL被編譯為子產品,這裡的每一個驅動也都會被編譯成子產品.}

Build HDMI/DisplayPort HD-audio codec support

CONFIG_SND_HDA_CODEC_HDMI

在HD-audio驅動中添加HDMI和DisplayPort支援.如果你需要使用HDMI/DisplayPort接口,可以選"Y".

Enable generic HD-audio codec parser

CONFIG_SND_HDA_GENERIC

通用HD-audio編解碼器(codec)支援,必選.

Default time-out for HD-audio power-save mode

CONFIG_SND_HDA_POWER_SAVE_DEFAULT

HD-audio自動節能模式預設的逾時秒數."0"表示關閉節能模式.建議設為"10"這個久經考驗的合理數字.詳見"Documentation/sound/alsa/powersave.txt"文檔與CONFIG_SND_AC97_POWER_SAVE_DEFAULT選項.

SPI sound devices

CONFIG_SND_SPI

基于SPI總線的聲霸卡,僅出現在嵌入式裝置上

USB sound devices

CONFIG_SND_USB

基于USB總線的聲霸卡,主要是外接聲霸卡,并不常用

FireWire sound devices

CONFIG_SND_FIREWIRE

基于IEEE-1394/FireWire/iLink總線的聲霸卡,主要用于蘋果的産品

PCMCIA sound devices

CONFIG_SND_PCMCIA

基于PCMCIA接口的聲霸卡,主要是外接聲霸卡,并不常用

ALSA for SoC audio support

CONFIG_SND_SOC

SoC系統音頻裝置支援,重點是節能支援.僅用于嵌入式裝置

Open Sound System (DEPRECATED)

CONFIG_SOUND_PRIME

OSS早已被廢棄(已被ALSA取代).選"N".
HID support
HID(人機接口裝置)是一種定義計算機如何與人類互動的規範,常與USB或藍牙搭配使用,常見的裝置有:鍵盤,滑鼠,觸摸闆,遊戲杆,遙控器,藍牙耳機,遊戲搖桿,手寫闆,等等.不過HID裝置不一定要有人機接口,隻要符合HID規範,就是HID裝置.

HID bus support

CONFIG_HID

HID(human interface device)總線及通用HID層.要使用HID裝置就必須開啟.[提示]PS/2接口的滑鼠和鍵盤不是HID裝置,USB或藍牙接口的才是HID裝置.

Battery level reporting for HID devices

CONFIG_HID_BATTERY_STRENGTH

為那些支援power_supply類的HID電池,向使用者空間報告電池的剩餘電量(可以通過upower工具顯示).

/dev/hidraw raw HID device support

CONFIG_HIDRAW

如果你想支援那些嚴格說來并不屬于人機互動裝置的硬體(使用額外的/dev/hidraw接口),例如顯示控制裝置(monitor control)或不間斷電源(UPS)以及某些羅技的無線滑鼠接收器,可以選"Y".與CONFIG_USB_HIDDEV選項(/dev/hiddev)相比,/dev/hidraw裝置直接無視一切hid事件(既不解析也不查找),這樣就允許應用程式直接處理和操作原始的hid事件,進而避免使用使用者層libhid/libusb庫.詳見"Documentation/hid/hidraw.txt"文檔.

User-space I/O driver support for HID subsystem

CONFIG_UHID

HID子系統需要兩種驅動:(1)"HID I/O Driver"是特定于硬體的驅動,直接與底層總線互動,并向"HID Device Driver"提供了一緻接口用于收發HID資料.(2)"HID Device Driver"是硬體無關的通用驅動,其任務是按照HID規範解析和處理來自于"HID I/O Driver"的HID資料,并将組裝好的資料通過"HID I/O Driver"提供的統一接口發送給底層硬體.開啟此項後,将允許在使用者空間實作"HID I/O Driver".不确定的選"N".詳見"Documentation/hid/uhid.txt"文檔.

Generic HID driver

CONFIG_HID_GENERIC

HID總線通用驅動,也就是前面說的"HID Device Driver".它實作了對各種常見HID協定的支援:鍵盤,滑鼠,遊戲杆,手寫闆,數字畫闆.不确定的選"Y".
Special HID drivers
各種不嚴格遵守HID協定的"HID Device Driver"
{此處省略的硬體按實際情況選擇即可}

Lenovo ThinkPad USB Keyboard with TrackPoint

CONFIG_HID_LENOVO_TPKBD

帶有"小紅帽(TrackPoint)"的聯想(Lenovo)ThinkPad USB鍵盤.

Logitech devices

CONFIG_HID_LOGITECH

某些并不完全遵從HID标準的羅技(Logitech)外設

HID Multitouch panels

CONFIG_HID_MULTITOUCH

HID多點觸控(Multitouch)闆的通用支援

HID Sensors framework support

CONFIG_HID_SENSOR_HUB

HID傳感器支援架構.詳見"Documentation/hid/hid-sensor.txt"文檔
USB HID support
基于USB接口的HID裝置,這是目前最常見的HID裝置

USB HID transport layer

CONFIG_USB_HID

特定于USB接口的"HID I/O Driver".用于和USB總線上的硬體進行互動.隻要你想使用任何基于USB接口的HID裝置(鍵盤,滑鼠,遊戲杆,手寫闆,手繪闆,不間斷電源(UPS),顯示控制裝置(monitor control),等等),就必須選"Y".[例外]在嵌入式環境中使用的HIDBP(HID Boot Protocol)鍵盤和滑鼠不在此列,而且兩者也不能共存.

PID device support

CONFIG_HID_PID

PID相容的力回報裝置,例如:Microsoft Sidewinder Force Feedback 2

/dev/hiddev raw HID device support

CONFIG_USB_HIDDEV

如果你想支援那些嚴格說來并不屬于人機互動裝置的硬體(使用額外的/dev/usb/hiddevX[char 180:96~111]接口),例如顯示控制裝置(monitor control)或不間斷電源(UPS)以及某些羅技的無線滑鼠接收器,可以選"Y".參見CONFIG_HIDRAW選項.
USB HID Boot Protocol drivers
如果你有絕對的把握确信不為自己的鍵盤和滑鼠使用正常的HID驅動,而要使用Boot Protocol模式的HID驅動(常見于嵌入式環境)就選吧
I2C HID support
基于I2C總線的HID裝置

HID over I2C transport layer

CONFIG_I2C_HID

特定于I2C總線的"HID I/O Driver".用于和I2C總線上的硬體進行互動.隻要你想使用任何基于I2C總線的HID裝置(鍵盤,觸摸闆,觸摸屏,等等),就必須選"Y".I2C-HID主要用于嵌入式裝置.

USB support

CONFIG_USB_SUPPORT

通用串行總線(Universal Serial Bus)的目标是統一電腦的外設接口.目前幾乎找不到沒有USB接口的電腦,而且各種智能裝置也大多帶有USB接口.不要猶豫,選"Y".

Support for Host-side USB

CONFIG_USB

主機端(Host-side)USB支援.通用串行總線(USB)是一個串行總線子系統規範,它比傳統的序列槽速度更快并且特性更豐富(供電,熱插拔,最多可接127個裝置等),其目标是統一PC外設接口.USB總體上呈現一種樹型結構,USB的"Host"(主裝置)被稱為"根"(也可以了解為是主機闆上的USB控制器),USB的"Slave"(從裝置)被稱為"葉子",而内部的節點則稱為"hub"(集線器).隻要使用任何USB裝置都必須選中此項.另外,你還需要從下面選中至少一個HCD(Host Controller Driver),比如适用于USB1.1的"UHCI HCD support"或"OHCI HCD support",适用于USB2.0的"EHCI HCD (USB 2.0) support".如果你拿不準的話把他們都選中一般也不會出問題.如果你的系統有裝置端的USB接口(也就是你的系統可以作為"葉子"使用),請到"USB Gadget"中進行選擇.

USB verbose debug messages

CONFIG_USB_DEBUG

僅供調試使用

USB announce new devices

CONFIG_USB_ANNOUNCE_NEW_DEVICES

在syslog中記錄每個新接入系統的USB裝置的詳細辨別資訊(idVendor,idProduct,Manufacturer,Product,SerialNumber),主要用于系統調試.不确定的選"N".

Enable USB persist by default

CONFIG_USB_DEFAULT_PERSIST

根據USB規範,當USB總線被挂起(休眠)後,它必須繼續提供挂起電流(1-5毫安),以確定USB裝置能保持其内部狀态,并且USB集線器(HUB)能夠檢測連接配接變化(裝置插入和拔出).這在技術上被稱為"電力會話"(power session).如果一個USB裝置的電力會話被中斷,那麼系統必須按照該裝置已經被拔出進行處理,這是一種保守的做法,因為沒有挂起電流,計算機不可能知道外圍裝置究竟發生了什麼變化:也許依然保持連接配接,也許已經被拔出并在同一端口上插入了一個新裝置.系統必須做最壞的打算.預設情況下,Linux的行為符合USB規範的要求.當整個電腦進入休眠狀态(例如挂起到硬碟)時,包括USB總線在内所有總線都将掉電,然後當系統被喚醒,所有USB裝置都會被當做在休眠前就已經被拔出來處理.這樣做始終是安全的,并且也是"官方正确"的做法.對于大多數USB裝置來說,這樣做沒有任何問題,但是對于USB儲存設備(例如移動硬碟/U盤)來說,如果在休眠前有尚未解除安裝的檔案系統(特别是根檔案系統),當系統被喚醒之後,由于無法通路該檔案系統,系統可能會立即崩潰!其實不隻有掉電,隻要"power session"被中斷(例如BIOS在喚醒過程中重置了USB控制器),都會導緻這種故障.此選項(USB-persist)就是為了解決這個問題而設定的,雖然解決的不甚完美(參見"Documentation/usb/persist.txt"),但是依然推薦選"Y",除非你确實有選"N"的理由.當然,最保險的做法是在休眠之前先解除安裝所有USB裝置上的檔案系統,而如果根檔案系統位于USB裝置上,就根本不使用任何休眠功能(不論是挂起到硬碟還是挂起到記憶體).

Dynamic USB minor allocation

CONFIG_USB_DYNAMIC_MINORS

動态配置設定USB裝置的次裝置号(僅限于主裝置号為180的字元裝置[通常位于"/dev/usb/"目錄下]).除非你有超過16個同類型(僅限:列印機,滑鼠,掃描器)的USB裝置,否則應選"N".[提示]即使你有100個U盤或者USB移動硬碟,也不需要開啟此項,因為他們不是"主裝置号為180的字元裝置".

OTG support

CONFIG_USB_OTG

傳統上,碼照相機,手機,列印機,播放器,移動硬碟等裝置之間要交換資料,都要作為PC的外圍裝置,在PC的控制下進行資料交換.一旦離開了PC,由于沒有一個裝置能夠充當PC的"Host"角色,是以無法直接通信.USB-OTG(On-The-Go)就是為了解決這個問題而誕生的,它是USB2.0規格的補充标準,支援"雙角色"裝置(既可以當Host,也可以當Slave),進而實作外圍裝置之間的資料傳送.例如,将數位相機直接連接配接到列印機上将相片列印出來.僅在你的主機闆上有Mini-AB/Micro-AB接口(目前僅用于嵌入式裝置)時才需要選"Y".

Rely on OTG and EH Targeted Peripherals List

CONFIG_USB_OTG_WHITELIST

将"otg_whitelist.h"檔案用作"OTG Targeted Peripherals List"(外設白名單),白名單之外的USB外設将按照OTG規範的要求不被枚舉(也就是初始化).同樣,"Embedded Host"也隻支援限定的外設.如果選"N",那麼白名單之外的外設也同樣會被枚舉(但會産生一個警告),這将大大友善嵌入式産品的開發.

Disable external hubs

CONFIG_USB_OTG_BLACKLIST_HUB

選"Y"将禁止枚舉(也就是初始化)外部USB集線器(HUB).這樣,OTG主機就可以通過省去對外部集線器的支援,降低系統軟硬體的成本.不确定的選"N".

USB ULPI PHY interface support

CONFIG_USB_ULPI_BUS

ULPI(UTMI+ Low Pin Interface)是一種2005年開始興起的通用USB 2.0 PHY接口.可有效地減少主機/外設/On-The-Go(OTG)USB收發器的針腳數量(從32個減少到12個).僅用于嵌入式裝置.

USB Monitor

CONFIG_USB_MON

選"Y"後,将可以捕獲特定USB外設與USB主要器之間的資料流量,usbdump和usbmon工具依賴于此項.詳見"Documentation/usb/usbmon.txt"文檔.

Enable Wireless USB extensions

CONFIG_USB_WUSB

主機端的WUSB(無線USB)支援.

Support WUSB Cable Based Association (CBA)

CONFIG_USB_WUSB_CBAF

WUSB CBA(Cable Based Association)是一項保障主機和WUSB裝置之間通信安全的技術.如果你的WUSB裝置在建立無線連接配接前必須先建立有線連接配接,可以選"Y".

Enable CBA debug messages

CONFIG_USB_WUSB_CBAF_DEBUG

僅供調試使用

Cypress C67x00 HCD support

CONFIG_USB_C67X00_HCD

Cypress C67x00 (EZ-Host/EZ-OTG) USB 1.1 "雙角色"控制器

xHCI HCD (USB 3.0) support

CONFIG_USB_XHCI_HCD

xHCI(eXtensible Host Controller Interface)就是當下大紅大紫的USB3.0(SuperSpeed USB)主機控制器規範.[提示]因為xHCI移除了EHCI中為相容USB1.1而引入的"Companion"模式,是以僅用一個單獨的xHCI驅動就可以相容所有USB3.0/2.0/1.1外設.也就是說,對于藍色的USB3.0接口來說,開啟此項之後,就不需要再額外開啟EHCI/OHCI/UHCI選項了.[注意]如果你的電腦上除了藍色的USB3.0接口,還存在黑色的USB2.0接口,那麼你仍然需要開啟EHCI/OHCI/UHCI選項,除非你不想使用這些黑色的USB2.0接口.

Debugging for the xHCI host controller

CONFIG_USB_XHCI_HCD_DEBUGGING

僅供調試使用

Generic xHCI driver for a platform device

CONFIG_USB_XHCI_PLATFORM

通用platform裝置的xHCI驅動.僅用于嵌入式環境.不确定的選"N".

EHCI HCD (USB 2.0) support

CONFIG_USB_EHCI_HCD

EHCI(Enhanced Host Controller Interface)就是漸成昨日黃花的USB2.0(HighSpeed USB)主機控制器規範.[提示]因為EHCI通過"Companion"模式來支援USB1.1裝置,是以一般還需要額外再開啟OHCI或UHCI選項(除非你不想相容任何USB1.1裝置).詳見"Documentation/usb/ehci.txt"文檔.

Root Hub Transaction Translators

CONFIG_USB_EHCI_ROOT_HUB_TT

帶有USB2.0接口的主機闆上都有一個"根集線器"(Root Hub)以允許在無需額外購買hub的情況下就可以提供多個USB插口,而大多數主機闆還在其中內建了事務轉換(Transaction Translator)功能,這樣就不需要再額外使用一個OHCI或UHCI控制器來相容USB1.1,建議選"Y",除非你不想相容任何USB1.1裝置.

Improved Transaction Translator scheduling

CONFIG_USB_EHCI_TT_NEWSCHED

改變周期性排程代碼的工作方式,當多個USB1.1裝置連接配接在同一個USB2.0集線器上時,可以獲得更高的運作速度.建議選"Y"

Generic EHCI driver for a platform device

CONFIG_USB_EHCI_HCD_PLATFORM

通用platform裝置的EHCI驅動.僅用于嵌入式環境.不确定的選"N".

OHCI HCD support

CONFIG_USB_OHCI_HCD

OHCI(Open Host Controller Interface)是主要用于嵌入式環境的USB1.1(LowSpeed/FullSpeed USB)主機控制器規範.但也存在于某些老舊的SiS晶片組的PC上.

UHCI HCD (most Intel and VIA) support

CONFIG_USB_UHCI_HCD

UHCI(Universal Host Controller Interface)是主要用于PC環境的USB1.1(LowSpeed/FullSpeed USB)主機控制器規範.
{此處省略的USB控制器請按照實際硬體狀況選擇(基本上都僅用于嵌入式環境)}

Wireless USB Host Controller Interface (WHCI) driver

CONFIG_USB_WHCI_HCD

WHCI(Wireless USB Host Controller Interface)是無線USB主機控制器規範.目前市場上帶有WUSB主要器的主機闆很少.不确定的選"N".

Host Wire Adapter (HWA) driver

CONFIG_USB_HWA_HCD

USB接口的3G/4G無線上網卡(通常需要搭配SIM卡使用),常見制式有:WCDMA/LTE/HSPA等.

BCMA usb host driver

CONFIG_USB_HCD_BCMA

BCMA(Broadcom specific AMBA)總線上的EHCI/OCHI主機控制器支援.僅用于嵌入式環境.

SSB usb host driver

CONFIG_USB_HCD_SSB

BCMA(Broadcom specific AMBA)總線上的EHCI/OCHI主機控制器支援.僅用于嵌入式環境.

Inventra Highspeed Dual Role Controller (TI, ADI, ...)

CONFIG_USB_MUSB_HDRC

一系列基于Mentor Graphics公司silicon IP核的USB控制器.僅用于嵌入式環境.

Renesas USBHS controller

CONFIG_USB_RENESAS_USBHS

一系列基于Renesas公司USBHS IP核的USB控制器.僅用于嵌入式環境.

USB Modem (CDC ACM) support

CONFIG_USB_ACM

USB接口的貓或ISDN擴充卡,基本沒人用的東西.

USB Printer support

CONFIG_USB_PRINTER

USB接口的列印機,這是主流的列印機

USB Wireless Device Management support

CONFIG_USB_WDM

為符合CDC(Communication Device CIass)和WMC(Wireless Mobile Communication)标準的手機提供WMC裝置管理支援,這樣你可以在這些手機上使用AT指令(被所有數據機制造商采用的一個數據機指令語言).

USB Test and Measurement Class support

CONFIG_USB_TMC

USBTMC(USB Test and Measurement Class)協定支援.主要适用于測試儀器的USB通信開發.不确定的選"N".

USB Mass Storage support

CONFIG_USB_STORAGE

USB儲存設備(U盤,USB硬碟,USB軟碟,USBCD光牒,USB錄音帶,記憶棒,數位相機,讀卡器[包括某些筆記本内置的SD卡讀卡器]等等).該選項依賴于CONFIG_SCSI和CONFIG_BLK_DEV_SD選項.選"Y",除非你确實知道自己在幹什麼.

USB Mass Storage verbose debug

CONFIG_USB_STORAGE_DEBUG

僅供調試使用
{省略的部分請按照自己實際使用的硬體選擇(事實上大部分人都沒有這些裝置)}

USB Mustek MDC800 Digital Camera support

CONFIG_USB_MDC800

一款上世紀生産的數位相機

Microtek X6USB scanner support

CONFIG_USB_MICROTEK

幾款上世紀生産的掃描器

DesignWare USB3 DRD Core Support

CONFIG_USB_DWC3

基于DesignWare USB3 IP核的USB3.0控制器.僅用于嵌入式環境.

ChipIdea Highspeed Dual Role Controller

CONFIG_USB_CHIPIDEA

基于ChipIdea silicon IP核的USB2.0控制器.僅用于嵌入式環境.

USS720 parport driver

CONFIG_USB_USS720

一種USB轉并口的轉換裝置.不确定的選"N".

USB Serial Converter support

CONFIG_USB_SERIAL

USB-序列槽轉換支援:(1)USB-序列槽轉換器,(2)連接配接在USB口上的序列槽裝置.詳情參見"Documentation/usb/usb-serial.txt"文檔.不确定的選"N".
{此處省略的各種雜七雜八的USB裝置,要麼是老古董,要麼是很罕見,不确定的可以全部選"N"}

USB testing driver

CONFIG_USB_TEST

僅供調試使用

USB DSL modem support

CONFIG_USB_ATM

USB DSL modem 已經是絕迹的古董貓了

USB Physical Layer drivers

CONFIG_USB_PHY

這類裝置僅在嵌入式系統上存在

USB Gadget Support

CONFIG_USB_GADGET

USB是一個主/從協定,一個主機最多控制127個外設,其結構是非對稱的,是以你無法把一個"到主機"的插頭連接配接到外設上.Linux既可以在USB主機上運作,也可以在USB外設上運作.外設USB控制器可以是單獨的晶片,也可以是內建在CPU中的微控制器,而常見的主機端控制器通常內建在晶片組的南橋中(xHCI/EHCI/OHCI/UHCI).如果你打算在外設中運作Linux,那麼就必須開啟此項,然後還需要為外設段的總線控制器配置一個硬體驅動,以及一個用于外設協定的"配件驅動".不過對于大多數人來說,并不将Linux運作于外設端,是以可以放心的選"N".僅那些嵌入式裝置(例如智能手機)上運作的Linux才可能由此需求.

Ultra Wideband devices

CONFIG_UWB

UWB(Ultra Wideband)是一種高帶寬,低能耗,點對點,抗幹擾性能強的無載波通信技術.UWB在較寬的頻譜(3.1-10.6GHz)上,使用極低的功率(約為藍牙的1/20),以時間間隔極短(小于1ns)的脈沖信号進行通信.UWB主要應用于室内通信(2米範圍内實作480Mbps速率,10米範圍内實作110Mbps速率),例如作為WUSB(Wireless USB)協定的傳輸層.如果你有UWB無線控制器,可以選"Y",不确定的選"N".詳見"Documentation/usb/WUSB-Design-overview.txt"文檔.

MMC/SD/SDIO card support

CONFIG_MMC

MMC(MultiMediaCard)/SD(Secure Digital)/SDIO(Secure Digital I/O)主機控制器。[提示]雖然許多筆記本上有SD卡插槽,但其實它們大多使用的是CONFIG_USB_STORAGE驅動,而不是這裡的驅動.

MMC debugging

CONFIG_MMC_DEBUG

僅供調試使用

Assume MMC/SD cards are non-removable (DANGEROUS)

CONFIG_MMC_UNSAFE_RESUME

假定在系統休眠的過程中,所有MMC/SD/SDIO卡依然插在各自的插槽上沒有變動.也許隻有嵌入式系統才可以做這樣的假定.不确定的選"N".參見CONFIG_USB_DEFAULT_PERSIST選項.

MMC host clock gating

CONFIG_MMC_CLKGATE

嘗試激進的"gate the clock to the MMC card"(啥意思?).這樣當MMC卡不使用的時候,就可以進入節電狀态.主機控制器必須支援此特性.不确定的選"N".

MMC block device driver

CONFIG_MMC_BLOCK

MMC塊裝置驅動.基本上MMC卡都是作為塊裝置(就像U盤一樣)使用.是以隻要使用MMC卡就應該開啟.

Number of minors per block device

CONFIG_MMC_BLOCK_MINORS

為每個MMC塊裝置保留的次裝置号數量.取值範圍是[4,256].這裡設定的值應該等于"最大可能的分區數+1".因為總的次裝置号隻有256個,是以最大能支援的MMC塊裝置數量就等于256除以此處設定的值.預設值"8"可以保證最大的向後相容性.不确定的請保持預設值.

Use bounce buffer for simple hosts

CONFIG_MMC_BLOCK_BOUNCE

為SD/MMC控制器提供更多的緩存(最大64KB),進而可以大幅提升其性能.建議選"Y".

SDIO UART/GPS class support

CONFIG_SDIO_UART

實作了UART類的SDIO卡支援.包括那些表現的像UART一樣的GPS類支援.主要用于嵌入式裝置.不确定的選"N".

MMC host test driver

CONFIG_MMC_TEST

僅供調試使用

Secure Digital Host Controller Interface support

CONFIG_MMC_SDHCI

通用SD主要支援.筆記本電腦上用的SD主要(TI(德州儀器)/Ricoh(理光)/Toshiba(東芝)等廠商)基本上都是這個驅動.選中此項後,還需要選中相應的總線驅動(見下,通常是CONFIG_MMC_SDHCI_PCI).

SDHCI support on PCI bus

CONFIG_MMC_SDHCI_PCI

PCI總線的SD主要支援,目前的筆記本的SD主要基本都接在PCI總線上.

Ricoh MMC Controller Disabler

CONFIG_MMC_RICOH_MMC

用于修正Ricoh(理光)MMC主要的bug,如果你需要使用Ricoh主要,就選"Y".

SDHCI support for ACPI enumerated SDHCI controllers

CONFIG_MMC_SDHCI_ACPI

專用于"ACPI Compatibility ID"等于"PNP0D40"的SD主要,以及"ACPI Hardware ID"等于"INT33C6,INT33BB,80860F14"的SD主要.

SDHCI platform and OF driver helper

CONFIG_MMC_SDHCI_PLTFM

基于platform總線和OpenFirmware的SD主要.
{此處省略的SD主要請按照實際使用的晶片進行選擇}

MMC/SD/SDIO over SPI

CONFIG_MMC_SPI

基于SPI總線的MMC/SD/SDIO主要.僅用于嵌入式環境.

Sony MemoryStick card support

CONFIG_MEMSTICK

Sony記憶棒是一種Sony專用的儲存設備.

MemoryStick debugging

CONFIG_MEMSTICK_DEBUG

僅供調試使用

Allow unsafe resume (DANGEROUS)

CONFIG_MEMSTICK_UNSAFE_RESUME

假定在系統休眠的過程中,所有記憶棒依然插在各自的插槽上沒有變動.也許隻有嵌入式系統才可以做這樣的假定.不确定的選"N".參見CONFIG_USB_DEFAULT_PERSIST選項.

MemoryStick Pro block device driver

CONFIG_MSPRO_BLOCK

"Memory Stick PRO"是SONY從2003開始引入的更新版标準,早已成為主流,是以應該選"Y"(除非你仍在使用十年前的老VAIO筆記本).
{此處省略的MemoryStick主要請按照實際使用的晶片進行選擇}

LED Support

CONFIG_NEW_LEDS

發光二級管(LED)支援.[提示]标準鍵盤上的LED燈不在此列(由input子系統控制)

Accessibility support

CONFIG_ACCESSIBILITY

無障礙(Accessibility)支援.各種幫助殘障人士使用計算機的軟硬體技術.例如:盲文裝置,語音合成,鍵盤映射,等等.

InfiniBand support

CONFIG_INFINIBAND

InfiniBand是一種低延遲/高帶寬資料中心互聯架構,采用遠端直接記憶體存取(RDMA)實作高性能處理器間通信(IPC),同時對虛拟化技術也提供了良好的支援.主要用于伺服器叢集與高性能計算(HPC)領域.

EDAC (Error Detection And Correction) reporting

CONFIG_EDAC

在電磁環境比較惡劣的情況下,一些大規模內建電路常常會受到幹擾,特别是像RAM這種利用雙穩态進行存儲的器件,往往會在強幹擾下發生翻轉,使原來存儲的"0"變為"1",或者"1"變為"0",造成嚴重的後果(例如控制程式跑飛,關鍵資料出錯).随着晶片內建度的增加,發生錯誤的可能性也在增大,這已經成為一個不能忽視的問題.錯誤檢測與糾正(EDAC)技術的目标就是發現并報告甚至糾正在計算機系統中發生的錯誤,這些錯誤是由CPU或晶片組報告的底層錯誤(記憶體錯誤/緩存錯誤/PCI錯誤/溫度過高,等等),建議選"Y".如果這些代碼報告了一個錯誤,請到http://bluesmoke.sourceforge.net/和http://buttersideup.com/edacwiki檢視更多資訊.詳見"Documentation/edac.txt"文檔.

EDAC legacy sysfs

CONFIG_EDAC_LEGACY_SYSFS

僅在你需要使用老版本edac-utils的情況下才需要選"Y".

Debugging

CONFIG_EDAC_DEBUG

僅供調試使用

Decode MCEs in human-readable form (only on AMD for now)

CONFIG_EDAC_DECODE_MCE

将MCE(Machine Check Exception)解碼為人類可讀的形式(目前僅支援AMD).建議選"Y".

Simple MCE injection interface over /sysfs

CONFIG_EDAC_MCE_INJ

僅供調試使用

Main Memory EDAC (Error Detection And Correction) reporting

CONFIG_EDAC_MM_EDAC

一些系統能夠檢測和修正主記憶體中的錯誤,EDAC能夠報告這些資訊(EDAC自己檢測到的或者根據ECC得到的).EDAC還會盡量檢測這些錯誤發生在哪裡以便于替換損壞的記憶體.建議選"Y"并按照你實際硬體狀況選取子項

Output ACPI APEI/GHES BIOS detected errors via EDAC

CONFIG_EDAC_GHES

并不是所有機器都提供基于硬體的EDAC技術,有部分機器提供的是基于ACPI BIOS的報告機制(使用CONFIG_ACPI_APEI_GHES驅動).開啟此項後,如果檢測到GHES BIOS,那麼CONFIG_ACPI_APEI_GHES驅動提供的錯誤報告将會通過EDAC API發送到使用者空間,同時,硬體EDAC也會被禁用,也就是進入"固件優先"模式.注意:GHES BIOS和硬體EDAC兩者不能共存,因為BIOS和作業系統在讀取error寄存器時會互相競争.是以如果你不想使用"固件優先"模式,應該選"N",或者使用"ghes.disable=1"核心引導參數.否則應該選"Y".
{此處省略的晶片請按照實際情況選擇}

Real Time Clock

CONFIG_RTC_CLASS

通用RTC(實時時鐘)類支援.所有的PC機主機闆都包含一個電池動力的實時時鐘晶片,以便在斷電後仍然能夠繼續保持時間,RTC通常與CMOS內建在一起,是以BIOS可以從中讀取目前時間(精度一般是秒級).選中此項後你就可以在作業系統中使用一個或多個RTC裝置(你還必須從下面啟用一個或多個RTC接口).[注意]Clock與Timer沒有任何關系,Timer是定時器(用于計量時長),Clock是時鐘(用于記錄目前的時刻"年-月-日 時:分:秒")

Set system time from RTC on startup and resume

CONFIG_RTC_HCTOSYS

系統啟動時從指定的RTC裝置(CONFIG_RTC_HCTOSYS_DEVICE)中讀取時間,以設定系統時間,這将有助于避免時間不準導緻的麻煩(例如不必要的檔案系統檢測(fsck)以及網絡故障).建議選"Y".

Set the RTC time based on NTP synchronization

CONFIG_RTC_SYSTOHC

如果使用者空間報告了"NTP已同步",那麼每隔大約11分鐘,核心将會自動把系統時間寫入指定的RTC裝置(CONFIG_RTC_HCTOSYS_DEVICE)中.建議選"Y".

RTC used to set the system time

CONFIG_RTC_HCTOSYS_DEVICE

預設的RTC裝置(通常是"rtc0").該裝置的驅動必須靜态編譯進核心(而不能作為子產品加載).

RTC debug support

CONFIG_RTC_DEBUG

僅供調試使用

/sys/class/rtc/rtcN (sysfs)

CONFIG_RTC_INTF_SYSFS

允許通過sysfs接口使用RTC,允許多個RTC裝置,也就是/sys/class/rtc/rtc0~N

/proc/driver/rtc (procfs for rtcN)

CONFIG_RTC_INTF_PROC

允許通過proc接口使用RTC,僅允許一個RTC裝置,也就是/proc/driver/rtc(若有多個RTC裝置,則其将對應"rtc0")

/dev/rtcN (character devices)

CONFIG_RTC_INTF_DEV

允許通過dev接口使用RTC,允許多個RTC裝置,也就是/dev/rtc0~N,某些程式(比如hwclock)需要使用/dev/rtc(這是個軟連接配接,udev會自動将其指向預設的RTC裝置)

RTC UIE emulation on dev interface

CONFIG_RTC_INTF_DEV_UIE_EMUL

如果底層rtc晶片驅動沒有提供RTC_UIE就仿真一個RTC_UIE.選"N",除非你确實知道自己在做什麼.

Test driver/device

CONFIG_RTC_DRV_TEST

僅供調試使用
{此處省略的其他RTC裝置一般僅用于非PC環境}

PC-style \'CMOS\'

CONFIG_RTC_DRV_CMOS

這是所有PC和基于ACPI的系統通用的RTC驅動.必須選"Y"(不能選"M"),除非你是嵌入式系統.

DMA Engine support

CONFIG_DMADEVICES

DMA引擎(DMA Engine)可以看做是傳統DMA控制器(DMA controller)的新生.在DMA引擎的協助下,CPU隻需初始化一個傳輸動作,其餘的動作就可以由DMA引擎獨立完成(完成後以中斷的方式通知CPU),這對于高速傳輸大量資料以及"分散-收集"操作大有益處,可以節約大量的CPU資源(有時也可節約大量的記憶體操作).目前,DMA引擎有兩個用途:(1)解除安裝高速網絡棧中的記憶體COPY操作,(2)加速CONFIG_MD_RAID456驅動中的RAID操作."DMA引擎"隻是一個統稱,在不同場合對應着不同的技術,例如Intel I/OAT(PC平台)和AHB(嵌入式).[提示]曆史上,ISA架構的電腦都有一個專用的"DMA控制器"(最常見的是Intel 8237),但是到了PCI架構,由于每一個PCI裝置都可以控制PCI總線(成為"bus master")并直接讀寫系統記憶體,是以雖然DMA的操作方式依然存在,但是"DMA控制器"卻消失了.現在新生的"DMA引擎"目前仍然主要出現在Intel的高端晶片上.

DMA Engine debugging

CONFIG_DMADEVICES_DEBUG

僅供調試使用

Intel MID DMA support for Peripheral DMA controllers

CONFIG_INTEL_MID_DMAC

Intel MID DMA引擎,搭配Atom處理器使用.

Intel integrated DMA 64-bit support

CONFIG_INTEL_IDMA64

為Intel低功耗子系統(Intel Low Power Subsystem)中整合的64位DMA提供支援.Intel Skylake PCH 就是一個支援Intel低功耗子系統的例子.

Intel I/OAT DMA support

CONFIG_INTEL_IOATDMA

帶有英特爾I/O加速技術(I/O Acceleration Technology)的至強晶片組DMA引擎

Synopsys DesignWare AHB DMA support

CONFIG_DW_DMAC

基于Synopsys DesignWare IP核的AHB總線DMA引擎.例如Atmel AT32ap7000中就整合了這個引擎.

Timberdale FPGA DMA support

CONFIG_TIMB_DMA

Timberdale FPGA DMA引擎."Timberdale FPGA"是一個多功能裝置,出現在基于Intel Atom的車載資訊娛樂系統IVI(In-Vehicle Infotainment)上.

Intel EG20T PCH / LAPIS Semicon IOH(ML7213/ML7223/ML7831) DMA

CONFIG_PCH_DMA

所有與Intel EG20T PCH相容的晶片的DMA引擎支援,具體型号可以檢視核心幫助.都是嵌入式晶片.

Network: TCP receive copy offload

CONFIG_NET_DMA

通過在網絡棧中利用DMA引擎來減少接收資料包時的copy-to-user操作以釋放CPU資源,僅在CONFIG_INTEL_IOATDMA開啟的前提下才有意義.

Async_tx: Offload support for the async_tx api

CONFIG_ASYNC_TX_DMA

如果你開啟了CONFIG_MD_RAID456,同時你的硬體又支援DMA引擎,那麼開啟此項後可以加速RAID操作.

DMA Test client

CONFIG_DMATEST

僅供調試使用

Auxiliary Display support

CONFIG_AUXDISPLAY

輔助顯示裝置.例如基于KS0108控制器的Crystalfontz CFAG12864B單色液晶屏(分辨率:128x64).僅用于嵌入式系統.

Userspace I/O drivers

CONFIG_UIO

UIO(Userspace I/O)是運作在使用者空間的I/O技術,它為開發使用者空間的驅動提供了一個簡單的架構(/dev/uioN).使用uio的裝置一般都屬于嵌入式系統.不确定的選"N".[提示]lsuio工具可以列出所有UIO的子產品和其映射的記憶體位址.

VFIO Non-Privileged userspace driver framework

CONFIG_VFIO

VFIO是一套無特權使用者空間I/O驅動架構,需要有IOMMU虛拟化硬體支援(AMD-Vi/Intel VT-d).此選項僅用于主控端核心.VFIO的目标是在IOMMU硬體的幫助下,取代CONFIG_UIO和CONFIG_KVM_DEVICE_ASSIGNMENT.VFIO主要用于編寫高效的使用者态驅動,以及在虛拟化環境的屬主機中高效的實作裝置直通(passthrough)且無須root特權,可用于詳見"Documentation/vfio.txt"文檔.[提示]QEMU 1.3以上版本才能利用VFIO特性.不玩KVM虛拟化的選"N".

VFIO support for PCI devices

CONFIG_VFIO_PCI

允許PCI裝置使用VFIO架構.這是VFIO架構目前的主要用途.選"Y".

VFIO PCI support for VGA devices

CONFIG_VFIO_PCI_VGA

讓VFIO PCI支援VGA擴充,此選項依賴于CONFIG_VGA_ARB,建議選"Y".

Virtualization drivers

CONFIG_VIRT_DRIVERS

這個選項僅對PowerPC架構有意義
Virtio drivers
僅可用于客戶機核心的Virtio驅動.Virtio的目标是為各種半虛拟化的虛拟機管理程式(特别是KVM)提供一組通用的模拟裝置,目前已實作:network/block/balloon/console/hw_random,未來還會實作更多.下列驅動僅可用在基于lguest或QEMU的半虛拟化客戶機中(一般是KVM或XEN).

PCI driver for virtio devices

CONFIG_VIRTIO_PCI

半虛拟化PCI裝置驅動.VMM(虛拟機管理程式)必須要有相應的"PCI virtio backend".基于QEMU的VMM(KVM,Xen)一般都支援該驅動.[提示]由于目前的ABI尚不穩定,建議使用時注意版本比對.

Virtio balloon driver

CONFIG_VIRTIO_BALLOON

balloon驅動支援按需擴充或減少KVM客戶機内的記憶體大小.

Platform bus driver for memory mapped virtio devices

CONFIG_VIRTIO_MMIO

支援使用記憶體映射機制的virtio裝置驅動

Memory mapped virtio devices parameter parsing

CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES

允許通過"virtio_mmio.device"核心子產品參數執行個體化virtio-mmio裝置.注意,錯誤的參數(特别是"baseaddr"錯誤)會導緻系統崩潰.詳見"Documentation/kernel-parameters.txt"文檔中對"virtio_mmio.device"的說明.
Microsoft Hyper-V guest support
僅在将此Linux核心作為微軟Hyper-V虛拟機的來賓作業系統運作時,才需要開啟這裡的選項.

Microsoft Hyper-V client drivers

CONFIG_HYPERV

将Linux核心作為Hyper-V的來賓作業系統運作

Microsoft Hyper-V Utilities driver

CONFIG_HYPERV_UTILS

Hyper-V管理工具驅動.

Microsoft Hyper-V Balloon driver

CONFIG_HYPERV_BALLOON

Hyper-V Balloon驅動
Xen driver support
僅在将此Linux核心作為半虛拟化模式的XEN虛拟機的來賓作業系統運作時,才需要開啟這裡的選項.由于KVM的高歌猛進,特别是Ubuntu和Redhat的力挺,與昔日的輝煌相比,XEN現在已經沒落許多了.

Staging drivers

CONFIG_STAGING

尚在開發中或尚未完成的,目前尚不完善的驅動,切勿用于生産環境.僅供測試人員或者開發者試用.

X86 Platform Specific Device Drivers

CONFIG_X86_PLATFORM_DEVICES

特定于X86平台的裝置驅動.例如很多筆記本廠商的專有硬體和特色功能.大多數筆記本使用者都應該進去看看(簡單易懂,一看即知).
{此處省略所有特定于筆記本廠商的驅動}

Thermal Management driver for Intel menlow platform

CONFIG_INTEL_MENLOW

此驅動專用于Intel Menlow平台(搭配Atom處理器),提供了增強的ACPI熱量管理能力.

WMI

CONFIG_ACPI_WMI

ACPI-WMI(Windows管理規範)映射裝置(find /sys/devices/ -name "PNP0C14*")支援.WMI是微軟對ACPI規範的專有擴充,可将部分ACPI固件内容通過PNP0C14裝置映射到使用者空間,以友善使用者空間調用ACPI固件的功能.本選項僅為那些依賴于WMI的驅動提供支援(并不真正導出到使用者空間),例如CONFIG_DRM_NOUVEAU驅動以及專用于Acer/Asus/Dell/MSI/HP等品牌筆記本的WMI驅動.

Intel Intelligent Power Sharing

CONFIG_INTEL_IPS

Intel Calpella平台支援Intel的智能電源共享(Intelligent Power Sharing)技術,可以在保持功耗不變的前提下,在CPU和GPU之間智能配置設定電力.開啟此項和CONFIG_CPU_FREQ以及CONFIG_DRM_I915之後,即可實作此功能.

WMI support for MXM Laptop Graphics

CONFIG_MXM_WMI

MXM接口筆記本顯示卡的WMI支援.目前主要用于nvidia顯示卡.

Intel Oaktrail Platform Extras

CONFIG_INTEL_OAKTRAIL

Intel Oak Trail嵌入式平台需要此驅動來開關WiFi/相機/藍牙等裝置.

Intel Rapid Start Technology Driver

CONFIG_INTEL_RST

英特爾快速啟動技術(Intel Rapid Start Technology)通過在SSD上建立與本機記憶體容量一緻的休眠分區,在休眠時将記憶體資料儲存到SSD休眠分區上,進而實作快速喚醒.

Intel Smart Connect disabling driver

CONFIG_INTEL_SMARTCONNECT

禁用英特爾智能連接配接技術(Intel Smart Connect Technology)的驅動.此技術旨在通過定期将處于睡眠/待機狀态的PC喚醒一小段時間,聯網一段時間讓應用程式(如電子郵件)更新,但是不打開螢幕,然後又自動回到睡眠狀态,以此循環重複.這意味着,當您喚醒PC時,程式資料已經處于最新狀态.主要針對超級本使用者且需要BIOS支援,必須在BIOS中将Intel Smart Connect Technology設為"Enabled".如果你的超級本支援此技術且同時安裝了Windows系統,那麼務必選"Y".

pvpanic device support

CONFIG_PVPANIC

pvpanic是QEMU提供的一種準虛拟化(paravirtualized)裝置,允許客戶機向主控端報告panic事件.此驅動僅可用于客戶機核心.

Intel PMC IPC Driver

CONFIG_INTEL_PMC_IPC

為某些Intel平台的PMC控制器提供支援.這裡的"PMC"是一個RISC架構的32位ARC處理器(Argonaut RISC Core processor).不确定的選"N".

Platform support for Chrome hardware

CONFIG_CHROME_PLATFORMS

專用于Google公司的Chromebook筆記本/Chromebox迷你機的裝置驅動.
Common Clock Framework
CCF(Common Clock Framework)是從3.4核心開始引入的新時鐘架構,用于取代原有的"Clock Framework".詳見"Documentation/clk.txt"文檔.這裡還有一個講解CCF的PDF.

DebugFS representation of clock tree

CONFIG_COMMON_CLK_DEBUG

僅供調試使用
{此處省略的時鐘裝置請按實際情況選擇(主要用于嵌入式裝置)}
Hardware Spinlock drivers
硬體自旋鎖驅動.目前僅出現在嵌入式處理器上.自旋鎖是保護共享資源的一種鎖機制,與互斥鎖比較類似,都是為了解決對某項資源的互斥使用.無論是互斥鎖,還是自旋鎖,在任何時刻,最多隻能有一個持有者.也就是說,在任何時刻最多隻能有一個執行單元獲得鎖.但是兩者在排程機制上略有不同,對于互斥鎖,如果資源已經被占用,資源申請者隻能進入睡眠狀态.但是自旋鎖不會引起申請者睡眠,如果自旋鎖已經被别的執行單元保持,調用者就一直在循環中"忙等"(占用CPU但無事可做),直到該自旋鎖被釋放."自旋"一詞就是是以而得名.自旋鎖的使用非常友善,但僅适用于需要極短時間鎖定的場合(例如1毫秒),以避免消耗太多的CPU空等時間.
Clock Source drivers
"時鐘源"驅動.主要面向嵌入式裝置.

Mailbox Hardware Support

CONFIG_MAILBOX

Mailbox硬體支援.這裡的"Mailbox"是一個架構,通過消息隊列和中斷驅動信号,控制晶片上的多個處理器之間的通信.僅用于嵌入式環境.

IOMMU Hardware Support

CONFIG_IOMMU_SUPPORT

IOMMU硬體主要出現在帶有I/O虛拟化技術的硬體上,例如帶有AMD-Vi或VT-d技術的晶片.IOMMU主要作用:(1)記憶體位址轉換(例如DMA位址轉換,scatter-gather),(2)中斷重映射,(3)對裝置讀取和寫入的進行權限檢查.這對于提高虛拟化性能和安全性,以及在64位系統上更好的使用32位裝置,意義重大.[提示]此選項僅對主控端有意義,如果此核心要作為來賓作業系統運作,請選"N".

AMD IOMMU support

CONFIG_AMD_IOMMU

AMD IOMMU 硬體支援.一般還需要在BIOS中開啟相應選項.

Export AMD IOMMU statistics to debugfs

CONFIG_AMD_IOMMU_STATS

僅供調試使用

AMD IOMMU Version 2 driver

CONFIG_AMD_IOMMU_V2

新一代的AMD IOMMUv2硬體(支援PCI PRI和PASID接口)支援.首次出現在AMD Opteron 4000/6000系列平台上.

Support for Intel IOMMU using DMA Remapping Devices

CONFIG_INTEL_IOMMU

讓Intel IOMMU支援DMA重映射,這是IOMMU的主要用途,隻要你的晶片支援VT-d,就選"Y".

Support for Shared Virtual Memory with Intel IOMMU

CONFIG_INTEL_IOMMU_SVM

共享虛拟記憶體(SVM, Shared Virtual Memory)允許不同裝置(例如CPU與GPU)以PASID(Process Address Space ID)為各自的身份辨別,統一使用CPU位址空間通路系統記憶體的DMA資源,也就是記憶體統一尋址,以提升異構計算性能.傳說Skylake會支援SVM.

Enable Intel DMA Remapping Devices by default

CONFIG_INTEL_IOMMU_DEFAULT_ON

預設開啟DMA重映射支援,相當于設定"intel_iommu=on"核心引導參數.選"Y".

Support for Interrupt Remapping

CONFIG_IRQ_REMAP

支援對IO-APIC和MSI裝置開啟中斷重映射,這也是IOMMU的主要用途,隻要你的晶片支援VT-d,就選"Y".
Remoteproc drivers
現代的SoC晶片一般都會以AMP(非對稱多處理器)方式內建多個不同的處理器(例如OMAP5432就在單個晶片上內建了2個Cortex-A15處理器,2個Cortex-M4處理器,1個C64x DSP),這樣就可在不同的處理器上分别運作多個不同的作業系統執行個體(例如,在2個Cortex-A9處理器上以SMP(對稱多處理器)方式運作Linux,在2個Cortex-M3和1個C64x上分别運作不同的實時作業系統).而Remoteproc驅動對此種場合下的處理器間通信非常有用.詳見"Documentation/remoteproc.txt"和"Documentation/rpmsg.txt"文檔.目前僅對嵌入式系統有意義.不确定的選"N".
Rpmsg drivers
此項和上面的Remoteproc緊密相關,目前其下尚無子項可選.
SOC (System On Chip) specific Drivers
專用于單片機的裝置驅動.皆為嵌入式系統.

Generic Dynamic Voltage and Frequency Scaling (DVFS) support

CONFIG_PM_DEVFREQ

DVFS(動态電壓與頻率調整)可以根據系統負載動态調節裝置的運作頻率和電壓(對于同一晶片,頻率越高,需要的電壓也越高),進而達到節能目的.此選項提供了一個類似CPUfreq(CONFIG_CPU_FREQ)的通用DVFS架構(devfreq).目前DVFS技術進在嵌入式裝置(例如Exynos4/Exynos5)上普遍存在.不确定的選"N".

External Connector Class (extcon) support

CONFIG_EXTCON

extcon(外部連接配接器類)允許使用者空間通過sysfs和uevent監控外部連接配接器,同時也支援多狀态外部連接配接器(也就是擁有多個連接配接線纜的外部連接配接器).例如,一端連接配接到主機USB端口的多狀态外部連接配接器,另一端可以同時連接配接一條HDMI線纜和一個AC擴充卡.30針的PDMI連接配接器也是多狀态外部連接配接器的常見例子.不确定的選"N".

Memory Controller drivers

CONFIG_MEMORY

記憶體控制器驅動.這裡所說的"記憶體控制器"僅指嵌入式SoC系統中的各種控制器.不确定的選"N".

Industrial I/O support

CONFIG_IIO

IIO子系統為各種不同總線(i2c,spi,等)的嵌入式傳感器驅動提供了一個統一的架構.例如:(1)模數轉換器,(2)加速度傳感器,(3)陀螺儀,(4)慣性測量儀,(5)電容-數字轉換器,(6)壓力/溫度/光線傳感器,等等.主要用于工業領域和嵌入式領域.不确定的選"N".

Non-Transparent Bridge support

CONFIG_NTB

PCI-E非透明橋是一個點對點PCI-E總線,用于連接配接兩條對等的PCI-E總線.例如英特爾 Atom S1200處理器, Xeon C5500/C3500 嵌入式處理器等.具體支援的裝置号(PCI_DEVICE_ID)可以檢視"drivers/ntb/ntb_hw.h"檔案或NTB驅動資料庫.不确定的選"N".

VME bridge support

CONFIG_VME_BUS

VME(VersaModule Eurocard)總線是一種通用的計算機總線,主要用于工業控制/軍用系統/航空航天/交通運輸/醫療等嵌入式領域.而VME橋則是其他總線(例如PCI/PCI-E)到VME總線之間的轉換晶片.不确定的選"N".

Pulse-Width Modulation (PWM) Support

CONFIG_PWM

PWM(脈寬調制)是将模拟信号轉換為脈波的一種技術.在計算機領域,這項技術常被用于控制風扇轉速和背光顯示器的亮度.很多微型處理器内部都包含有PWM控制器,此選項為所有PWM控制器驅動提供了一個統一的架構.不确定的選"N".

Intel LPSS PWM support

CONFIG_PWM_LPSS

适用于"Intel Low Power Subsystem" PWM 控制器的通用架構驅動.适用于 Atom Z36xxx/Z37xxx 系列處理器.

NXP PCA9685 PWM driver

CONFIG_PWM_PCA9685

适用于 NXP PCA9685 LED 亮度控制器.

IndustryPack bus support

CONFIG_IPACK_BUS

IndustryPack是工業控制領域常用的一種總線.不确定的選"N".

Reset Controller Support

CONFIG_RESET_CONTROLLER

為GPIO總線或者晶片内置的重新開機控制器提供通用支援.僅用于嵌入式裝置.不确定的選"N".

FMC support

CONFIG_FMC

FMC(FPGA Mezzanine Carrier)是一個定義如何将FPGA夾層卡(FPGA Mezzanine Card)連接配接到主機電路闆的接口标準,僅用于嵌入式環境.
PHY Subsystem
PHY子系統.

PHY Core

CONFIG_GENERIC_PHY

為核心中的所有PHY裝置提供一個通用的PHY架構.不确定的選"N".核心中若有其他部分依賴它,會自動選上.
{此處省略的部分請按照硬體的實際情況選擇}

Generic powercap sysfs driver

CONFIG_POWERCAP

"power capping"的意思是允許使用者把裝置的總功耗限定在指定的範圍内.此選項允許核心子系統将"power capping"的設定以sysfs的方式導出到使用者空間.不确定的選"N".

MCB support

CONFIG_MCB

MCB(MEN Chameleon Bus)是專用于德國MEN Mikro Elektronik公司的FPGA裝置的總線.MEN Mikro Elektronik公司的嵌入式計算主要是為航空/航海/鐵路及陸地車輛的應用,以及自動化/電力/能源和醫療用途.不确定的選"N".
Performance monitor support
專用于ARM架構的CPU性能監控架構.

Reliability, Availability and Serviceability (RAS) features

CONFIG_RAS

RAS(可靠,可用,可維護)是一個計算機硬體術語,可靠性描述系統能夠持續正确工作多長時間,可用性描述系統能夠正确工作的時間百分比,可維護性描述系統從錯誤恢複到正常需要多長時間.具有高等級RAS的硬體會有一系列額外的技術保障資料的可靠性與正确性.

Thunderbolt support for Apple devices

CONFIG_THUNDERBOLT

蘋果公司的雷電接口支援.

Android Drivers

CONFIG_ANDROID

安卓平台專用驅動

NVDIMM (Non-Volatile Memory Device) Support

CONFIG_LIBNVDIMM

NVDIMM(非易失性記憶體)支援.

NVMEM Support

CONFIG_NVMEM

NVMEM(非易失性存儲器)裝置支援.包括:EEPROM,EFUSES...不确定的選"N".

System Trace Module devices

CONFIG_STM

僅供調試使用

Dummy STM driver

CONFIG_STM_DUMMY

僅供調試使用

Kernel console over STM devices

CONFIG_STM_SOURCE_CONSOLE

僅供調試使用

Intel(R) Trace Hub controller

CONFIG_INTEL_TH

僅供調試使用

FPGA Configuration Framework

CONFIG_FPGA

FPGA配置架構支援.僅用于嵌入式系統.

Firmware Drivers

固件(Firmware)驅動

BIOS Enhanced Disk Drive calls determine boot disk

CONFIG_EDD

這是一個實驗性選項,支援實模式BIOS中的增強磁盤服務(EDD),進而允許核心從BIOS中擷取第一啟動盤(可以從sysfs中檢視具體是哪個硬碟),大多數BIOS提供商都沒有實作這個特性.不确定的選"N".

Sets default behavior for EDD detection to off

CONFIG_EDD_OFF

選"Y"相當于使用"edd=off"核心引導參數(禁用EDD),選"N"相當于使用"edd=on"核心引導參數(啟用EDD).文法:edd={on|skipmbr|off}.

Add firmware-provided memory map to sysfs

CONFIG_FIRMWARE_MEMMAP

将原始的固件内容映射到"/sys/firmware/memmap"檔案.主要用于調試目的,以及kexec為下一個核心設定參數.詳見"Documentation/ABI/testing/sysfs-firmware-memmap"文檔.不确定的選"N".

BIOS update support for DELL systems via sysfs

CONFIG_DELL_RBU

允許Dell OpenManage或DUP(Dell Update Packages)工具通過sysfs更新DELL伺服器主機闆的BIOS.詳見"Documentation/dell_rbu.txt"文檔.即使你确實需要此功能,也建議選"M"而不是"Y".畢竟刷BIOS不能當做家常便飯.留着刷BIOS的接口,總是件危險的事.

Dell Systems Management Base Driver

CONFIG_DCDBAS

該驅動為DELL伺服器專用的系統管理軟體(Dell OpenManage)提供了sysfs接口.詳見"Documentation/dcdbas.txt"文檔.

Export DMI identification via sysfs to userspace

CONFIG_DMIID

将SMBIOS(System Management BIOS)/DMI(Desktop Management Interface)中的系統識别資訊(序列号,制造商,型号,等等)導出到使用者空間(/sys/class/dmi/id/).開啟此項後,dmidecode工具就可以顯示與制造商相關的資訊.此外,基于DMI的子產品的自動加載也依賴于此項.建議選"Y",因為某些Udev規則和虛拟化檢測需要它.

DMI table support in sysfs

CONFIG_DMI_SYSFS

将SMBIOS/DMI中的原始資料(包含大量的系統硬體資訊)導出到使用者空間(/sys/firmware/dmi/).以允許dmidecode工具無需通路/dev/mem裝置(需要root權限)即可将這些資訊顯示出來.

iSCSI Boot Firmware Table Attributes

CONFIG_ISCSI_IBFT_FIND

使核心能定位iBFT(iSCSI Boot Firmware Table)在記憶體中的位置.目的是為了能夠從iSCSI驅動器中啟動作業系統.不确定的選"N".

iSCSI Boot Firmware Table Attributes module

CONFIG_ISCSI_IBFT

将iBFT(iSCSI Boot Firmware Table)的内容通過sysfs導出到使用者空間.如果你想在系統引導過程中動态檢測iSCSI引導參數,可以選"Y",否則應選"N".

Google Firmware Drivers

CONFIG_GOOGLE_FIRMWARE

僅用于Google自家的伺服器
EFI (Extensible Firmware Interface) Support
EFI/UEFI(統一可擴充固件接口)支援.2010年之後,UEFI已經基本全線取代了BIOS.

EFI Variable Support via sysfs

CONFIG_EFI_VARS

通過sysfs接口操作(讀/寫/建立/删除)EFI變量的老舊方式,并且可能與新方式(CONFIG_EFIVAR_FS)沖突.應該選"N".

Register efivars backend for pstore

CONFIG_EFI_VARS_PSTORE

将efivars子產品(CONFIG_EFI_VARS)用作pstore檔案系統(CONFIG_PSTORE)的後端.這樣就可以向EFI變量中寫入各種pstore支援的資訊,例如,控制台消息,崩潰轉儲,等等.

Disable using efivars as a pstore backend by default

CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE

禁止預設将efivars子產品(CONFIG_EFI_VARS)用作pstore檔案系統(CONFIG_PSTORE)的後端.

Enable EFI fake memory map

CONFIG_EFI_FAKE_MEMMAP

選"Y"等價于使用"efi_fake_mem"核心引導參數,僅供調試使用.

File systems

檔案系統

Second extended fs support

CONFIG_EXT2_FS

Ext2檔案系統,無日志.詳見"Documentation/filesystems/ext2.txt"文檔.

Ext2 extended attributes

CONFIG_EXT2_FS_XATTR

Ext2檔案系統擴充屬性(與inode關聯的name:value對)支援.詳見attr手冊.不确定的選"N".

Ext2 POSIX Access Control Lists

CONFIG_EXT2_FS_POSIX_ACL

POSIX ACL(通路控制清單)支援,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個使用者進行通路控制.詳見acl手冊.不确定的選"N".

Ext2 Security Labels

CONFIG_EXT2_FS_SECURITY

"安全标簽"允許選擇使用不同安全子產品(如SELinux)實作的通路控制模型,如果你沒有使用需要擴充屬性的安全子產品,可以選"N".

Ext2 execute in place support

CONFIG_EXT2_FS_XIP

晶片内執行(execute in place)的意思是程式在寫入存儲媒體時就已經配置設定好運作時的位址,是以不需要載入記憶體即可在晶片内執行,一般僅在嵌入式系統上才使用這種技術.

Ext3 journalling file system support

CONFIG_EXT3_FS

Ext3日志型檔案系統.詳見"Documentation/filesystems/ext3.txt"文檔.

Default to \'data=ordered\' in ext3

CONFIG_EXT3_DEFAULTS_TO_ORDERED

選"Y"表示将預設的日志模式設為"data=ordered"(更安全),選"N"表示将預設的日志模式設為"data=writeback"(更危險).選"Y",僅在你确實明白"data=writeback"的風險,以及确實有充足的理由的時候,才能選"N".

Ext3 extended attributes

CONFIG_EXT3_FS_XATTR

Ext3檔案系統擴充屬性(與inode關聯的name:value對)支援.詳見attr手冊.不确定的選"N".

Ext3 POSIX Access Control Lists

CONFIG_EXT3_FS_POSIX_ACL

POSIX ACL(通路控制清單)支援,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個使用者進行通路控制.詳見acl手冊.不确定的選"N".

Ext3 Security Labels

CONFIG_EXT3_FS_SECURITY

"安全标簽"允許選擇使用不同安全子產品(如SELinux)實作的通路控制模型,如果你沒有使用需要擴充屬性的安全子產品,可以選"N".

The Extended 4 (ext4) filesystem

CONFIG_EXT4_FS

Ext4日志型檔案系統.詳見"Documentation/filesystems/ext4.txt"文檔.

Use ext4 for ext2/ext3 file systems

CONFIG_EXT4_USE_FOR_EXT23

在ext2/ext3檔案系統上使用ext4驅動.這樣可以對ext2/ext3/ext4三種檔案系統隻使用同一個驅動.主要目的是減少核心尺寸.

Ext4 POSIX Access Control Lists

CONFIG_EXT4_FS_POSIX_ACL

POSIX ACL(通路控制清單)支援,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個使用者進行通路控制.詳見acl手冊.不确定的選"N".

Ext4 Security Labels

CONFIG_EXT4_FS_SECURITY

"安全标簽"允許選擇使用不同安全子產品(如SELinux)實作的通路控制模型,如果你沒有使用需要擴充屬性的安全子產品,可以選"N".

EXT4 debugging support

CONFIG_EXT4_DEBUG

僅供調試使用

JBD (ext3) debugging support

CONFIG_JBD_DEBUG

僅供調試使用

JBD2 (ext4) debugging support

CONFIG_JBD2_DEBUG

僅供調試使用

Reiserfs support

CONFIG_REISERFS_FS

曾經的明星檔案系統,特别擅長處理大量小檔案的場合,由于其創始人入獄,前景不明.

Enable reiserfs debug mode

CONFIG_REISERFS_CHECK

僅供調試使用

Stats in /proc/fs/reiserfs

CONFIG_REISERFS_PROC_INFO

在/proc/fs/reiserfs檔案中顯示Reiserfs檔案系統的狀态,僅供調試使用

ReiserFS extended attributes

CONFIG_REISERFS_FS_XATTR

ReiserFS檔案系統擴充屬性(與inode關聯的name:value對)支援.詳見attr手冊.不确定的選"N".

ReiserFS POSIX Access Control Lists

CONFIG_REISERFS_FS_POSIX_ACL

POSIX ACL(通路控制清單)支援,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個使用者進行通路控制.詳見acl手冊.不确定的選"N".

ReiserFS Security Labels

CONFIG_REISERFS_FS_SECURITY

"安全标簽"允許選擇使用不同安全子產品(如SELinux)實作的通路控制模型,如果你沒有使用需要擴充屬性的安全子產品,可以選"N".

JFS filesystem support

CONFIG_JFS_FS

JFS日志型檔案系統.詳見"Documentation/filesystems/jfs.txt"文檔.

JFS POSIX Access Control Lists

CONFIG_JFS_POSIX_ACL

POSIX ACL(通路控制清單)支援,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個使用者進行通路控制.詳見acl手冊.不确定的選"N".

JFS Security Labels

CONFIG_JFS_SECURITY

"安全标簽"允許選擇使用不同安全子產品(如SELinux)實作的通路控制模型,如果你沒有使用需要擴充屬性的安全子產品,可以選"N".

JFS debugging

CONFIG_JFS_DEBUG

僅供調試使用

JFS statistics

CONFIG_JFS_STATISTICS

在/proc/fs/jfs/目錄中顯示JFS檔案系統的統計資訊

XFS filesystem support

CONFIG_XFS_FS

XFS日志型檔案系統是一個高性能的檔案系統(筆者的最愛),擅長大檔案和多線程.詳見"Documentation/filesystems/"目錄中"xfs*.txt"系列文檔.

XFS Quota support

CONFIG_XFS_QUOTA

XFS磁盤配額(使用專用的xfs_quota工具)比通用磁盤配額子產品(CONFIG_QUOTA)擁有更進階的特性,它不但能夠控制使用者或組的磁盤用量,還能控制項目(檔案夾)的磁盤用量(無論哪個使用者在項目的檔案夾中建立檔案),但是不能同時使用組配額和項目配額.此外,對XFS來說,配額資料記錄在檔案系統中繼資料中,而不是像CONFIG_QUOTA那樣記錄在aquota.user和aquota.group檔案中.最後,XFS配額和通用磁盤配額是兩個互相獨立的系統,可以同時并存.

XFS POSIX ACL support

CONFIG_XFS_POSIX_ACL

POSIX ACL(通路控制清單)支援,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個使用者進行通路控制.詳見acl手冊.不确定的選"N".

XFS Realtime subvolume support

CONFIG_XFS_RT

"實時子卷"是專門存儲檔案資料的卷,可以允許将日志與資料分開在不同的磁盤上,例如将大塊頭的流媒體檔案存儲在高速磁盤組成的實時子卷上.詳見xfs手冊頁.

XFS Verbose Warnings

CONFIG_XFS_WARN

僅供調試使用

XFS Debugging support

CONFIG_XFS_DEBUG

僅供調試使用

GFS2 file system support

CONFIG_GFS2_FS

GFS2可用于搭建高可用叢集檔案系統,由紅帽公司開發,允許所有叢集節點并行通路,同時又能夠完美的保持檔案系統的一緻性:一個節點對檔案系統的任何修改都立即對所有其他節點可見.詳見"Documentation/filesystems/"目錄中"gfs*.txt"系列文檔.

GFS2 DLM locking

CONFIG_GFS2_FS_LOCKING_DLM

GFS2分布式鎖管理器(DLM).務必選"Y",除非你知道自己在做什麼.

OCFS2 file system support

CONFIG_OCFS2_FS

OCFS2(Oracle叢集檔案系統)的目标是成為一種通用檔案系統.OCFS2能使叢集中的所有節點并發的通過标準檔案系統接口來通路存儲備.要使用OCFS2還需要ocfs2-tools的幫助.詳見"Documentation/filesystems/ocfs2.txt"文檔.

O2CB Kernelspace Clustering

CONFIG_OCFS2_FS_O2CB

O2CB(OCFS2 Cluster Base)是位于核心空間的叢集服務結構.具體包括:NM(節點管理器,監控所有節點),HB(心跳服務),TCP(控制節點間的通訊),DLM(分布式鎖管理器),CONFIGFS(使用者配置檔案系統驅動,挂載點是/config),DLMFS(使用者空間和核心空間DLM的接口).開啟此項後,将隻需要很少量的使用者空間元件(也就是ocfs2-tools),OCFS2就可以轉起來了.但它隻能玩轉OCFS2自身,玩不了其他叢集.

OCFS2 Userspace Clustering

CONFIG_OCFS2_FS_USERSPACE_CLUSTER

為使用者空間的叢集服務提供支援.目的是為了配合CONFIG_DLM子產品一起使用.

OCFS2 statistics

CONFIG_OCFS2_FS_STATS

允許對OCFS2的使用狀況進行一些統計.開啟後會增加記憶體占用.

OCFS2 logging support

CONFIG_OCFS2_DEBUG_MASKLOG

僅供調試使用

OCFS2 expensive checks

CONFIG_OCFS2_DEBUG_FS

以性能為代價提供了存儲一緻性檢測,僅供調試使用

Btrfs filesystem support

CONFIG_BTRFS_FS

Btrfs是由Oracle于2007年宣布的支援寫時複制(COW)的檔案系統.擁有衆多搶眼球的特性:軟RAID管理,卷管理,克隆/快照,壓縮功能,支援跨多塊磁盤動态增大或收縮卷.其目标是成為下一代Linux标準檔案系統.詳見"Documentation/filesystems/btrfs.txt"文檔.

Btrfs POSIX Access Control Lists

CONFIG_BTRFS_FS_POSIX_ACL

POSIX ACL(通路控制清單)支援,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個使用者進行通路控制.詳見acl手冊.不确定的選"N".

Btrfs with integrity check tool compiled in (DANGEROUS)

CONFIG_BTRFS_FS_CHECK_INTEGRITY

僅供調試使用

Btrfs will run sanity tests upon loading

CONFIG_BTRFS_FS_RUN_SANITY_TESTS

僅供調試使用
Btrfs debugging support
僅供調試使用

NILFS2 file system support

CONFIG_NILFS2_FS

NILFS2是一種非常前衛的"log-structured"檔案系統,是Linux下一代檔案系統的有力競争者.NILFS2将底層裝置當作一種隻能追加寫(append)的裝置,檔案系統的任何修改都隻以順序追加的方式寫入磁盤(而是不覆寫舊資料),進而避免耗時的尋道(seek)操作,進而大幅提升寫入性能(因為檔案系統的整體效率主要由寫操作的效率決定).此種思路帶來了一系列靓瞎眼的特性:自動不間斷快照(可以迅速恢複被删除的檔案或者回到先前某個特定的時間點),快速崩潰恢複(比大多數日志型檔案系統還要快),高性能(在SSD上更有絕對優勢).但也帶來了一個新問題:需要垃圾收集機制以清理舊資料,造成垃圾收集時的性能降低(可以通過合理安排垃圾收集時間來避免).NILFS2目前不支援如下功能:atime(通路時間),POSIX ACL,擴充屬性.不過考慮到SSD(固态硬碟)即将成為主流,假以時日,前途大大的啊!.詳見"Documentation/filesystems/nilfs2.txt"文檔.

F2FS filesystem support

CONFIG_F2FS_FS

F2FS也是一種非常前衛的"log-structured"檔案系統,針對基于NAND閃存的儲存設備進行了特别設計,使之更加适應新的存儲媒體(也就是閃存),據稱它是目前SSD上性能最好的檔案系統.

Direct Access (DAX) support

CONFIG_FS_DAX

DAX(Direct Access)的含義是繞過記憶體緩沖直接通路塊裝置.選"Y"後,就可以用"mount -o dax"方式挂載塊裝置以避免使用pagecache作為I/O緩沖.例如将持續性非易失記憶體(斷電内容不丢失)作磁盤用時,或者挂載記憶體盤時,使用此特性便恰到好處.還有一種用法是在虛拟機内使用"mount -o dax"方式挂載已經緩存在主控端記憶體中的塊裝置檔案(或者倒過來也可以).

Enable POSIX file locking API

CONFIG_FILE_LOCKING

POSIX标準檔案鎖定API支援.NFS之類的網絡檔案系統和給檔案加鎖與解鎖的flock()系統調用需要它.不确定的選"Y".

Dnotify support

CONFIG_DNOTIFY

舊式的基于目錄的檔案變化的通知機制(已被Inotify取代),目前僅有NFSv4以及少量古董程式依賴它.不确定的選"N".

Inotify support for userspace

CONFIG_INOTIFY_USER

使用者空間的Inotify支援.Inotify是替代Dnotify的檔案系統變化通知機制.建議選"Y".[提示]如果你使用了systemd作為init,那就必須選"Y".

Filesystem wide access notification

CONFIG_FANOTIFY

fanotify是一種打算取代Inotify的檔案系統變化通知機制,不過,由于目前Fanotify比inotify支援的檔案系統事件類型少很多,完全取代Inotify還不現實.Udev的"Predictable Network Interface Names"功能依賴于它.建議選"Y".[提示]如果你使用了systemd作為init,那就必須選"Y".

fanotify permissions checking

CONFIG_FANOTIFY_ACCESS_PERMISSIONS

允許fanotify的監聽器(listener)對檔案系統事件進行權限檢查.這樣,監聽器就可以在系統通路某個檔案之前,首先掃描此檔案.某些防病毒程式以及分級存儲管理系統可能需要此特性.不确定的選"N".

Quota support

CONFIG_QUOTA

通用的磁盤配額支援(限制某個使用者或者某組使用者的磁盤占用空間).需要配合quota-tools工具使用.

Report quota messages through netlink interface

CONFIG_QUOTA_NETLINK_INTERFACE

通過netlink接口報告QUOTA的警告資訊(例如"到達限額").不确定的選"Y".

Print quota warnings to console (OBSOLETE)

CONFIG_PRINT_QUOTA_WARNING

将QUOTA的警告資訊直接顯示在控制台上.反對使用,未來會移除此項.選"N".

Additional quota sanity checks

CONFIG_QUOTA_DEBUG

對quota内部結構進行額外的完整性檢查.主要用于調試目的.不确定的選"N".

Old quota format support

CONFIG_QFMT_V1

老舊的v1版配額格式(linux-2.4.22之前使用的格式)支援.選"N".

Quota format vfsv0 and vfsv1 support

CONFIG_QFMT_V2

vfsv0/vfsv1配額格式支援.兩者都支援32位的UID/GID,而vfsv1還支援64位的inode/block配額.建議開啟.

Kernel automounter version 4 support (also supports v3)

CONFIG_AUTOFS4_FS

第四版核心按需自動挂載檔案系統的支援(也支援v3).此特性需要配合使用者空間工具(autofs或Systemd)使用,以實作僅在某個檔案系統挂載點真正被通路到的時候才觸發挂載操作.[提示]使用了systemd的系統建議選"Y".

FUSE (Filesystem in Userspace) support

CONFIG_FUSE_FS

FUSE允許在使用者空間實作一個全功能的檔案系統,還有一個與之對應的libfuse2庫和相關工具.詳見"Documentation/filesystems/fuse.txt"文檔.如果你打算開發一個自己的檔案系統或者使用一個基于FUSE的檔案系統(例如NTFS-3G或ZFS-FUSE或GlusterFS),可以選"Y".

Character device in Userspace support

CONFIG_CUSE

這是一個FUSE擴充,用于在使用者空間實作字元裝置支援.

Overlay filesystem support

CONFIG_OVERLAY_FS

overlay的含意是以層疊的方式組合上下兩個檔案系統層,常和容器技術配合使用.詳見Documentation/filesystems/overlayfs.txt文檔.
Caches
檔案系統緩存

General filesystem local caching manager

CONFIG_FSCACHE

通用檔案系統本地緩存管理器.它為各種不同的檔案系統(例如網絡檔案系統)提供了統一的本地緩存架構.這樣各種緩存實作可以作為插件添加進來.詳見"Documentation/filesystems/caching/fscache.txt"文檔.

Gather statistical information on local caching

CONFIG_FSCACHE_STATS

收集本地緩存的統計資訊(這會增加系統運作負載),并通過/proc/fs/fscache/stats檔案導出到使用者空間.主要用于調試目的.

Gather latency information on local caching

CONFIG_FSCACHE_HISTOGRAM

收集本地緩存的延遲資訊(這會增加系統運作負載),并通過/proc/fs/fscache/histogram檔案導出到使用者空間.主要用于調試目的.

Debug FS-Cache

CONFIG_FSCACHE_DEBUG

僅供調試使用

Maintain global object list for debugging purposes

CONFIG_FSCACHE_OBJECT_LIST

在/proc/fs/fscache/objects檔案中維護一個活動緩存對象的全局清單.僅用于調試目的.

Filesystem caching on files

CONFIG_CACHEFILES

将一個已挂載的檔案系統用作另一個檔案系統的緩存.例如将一個本地磁盤分區挂載為一個遠端網絡檔案系統的緩存,或者将一個高速裝置(例如SSD)用作一個低速裝置(例如普通硬碟)的緩存.

Debug CacheFiles

CONFIG_CACHEFILES_DEBUG

僅供調試使用

Gather latency information on CacheFiles

CONFIG_CACHEFILES_HISTOGRAM

收集本地緩存的延遲資訊(這會增加系統運作負載),并通過/proc/fs/cachefiles/histogram檔案導出到使用者空間.主要用于調試目的.
CD-ROM/DVD Filesystems
CD-ROM/DVDCD光牒檔案系統

ISO 9660 CDROM file system support

CONFIG_ISO9660_FS

ISO9660是所有CD/DVDCD光牒通用的标準檔案系統.建議選"Y".詳見"Documentation/filesystems/isofs.txt"文檔.

Microsoft Joliet CDROM extensions

CONFIG_JOLIET

Microsoft對ISO9660檔案系統的Joliet擴充,允許在檔案名中使用Unicode字元,也允許長檔案名.建議選"Y".

Transparent decompression extension

CONFIG_ZISOFS

Linux對ISO9660檔案系統的擴充,允許将資料透明的壓縮存儲在CD上.使用并不廣泛,不确定的可以選"N".

UDF file system support

CONFIG_UDF_FS

UDF被設計為可擦寫格式(其實質是管理增量寫入),其目标是取代ISO9660,現已經廣泛地用于大容量DVDCD光牒上(特别是刻錄盤).建議選"Y".詳見"Documentation/filesystems/udf.txt"文檔.
DOS/FAT/NT Filesystems
DOS/FAT/NTFS檔案系統

MSDOS fs support

CONFIG_MSDOS_FS

古老的MSDOS檔案系統(FAT16),基本絕種了

VFAT (Windows-95) fs support

CONFIG_VFAT_FS

從Win95開始使用的VFAT檔案系統(FAT32).如果你要使用基于UEFI平台的電腦,并且使用GPT磁盤分區,則必須選"Y".詳見"Documentation/filesystems/vfat.txt"文檔.

Default codepage for FAT

CONFIG_FAT_DEFAULT_CODEPAGE

在FAT系列檔案系統上,"8.3"格式的短檔案名以特定的代碼頁進行存儲(可以通過chcp指令檢視),但長檔案名卻以Unicode進行存儲.此選項的作用就是指定将長檔案名轉換為短檔案名時使用的預設代碼頁.可以通過"codepage"挂載選項進行修改.簡體中文通常使用"936",繁體中文通常使用"950".

Default iocharset for FAT

CONFIG_FAT_DEFAULT_IOCHARSET

指定預設以什麼字元集顯示檔案名,這個值可以通過"iocharset"挂載選項修改.但必須與系統的locale設定保持一緻.例如在"zh_CN.UTF-8"或"en_US.UTF-8"的情況下應該使用"utf8".[注意]應謹慎使用"iocharset=utf8",因為它會導緻FAT檔案系統上的檔案名變得大小寫敏感.

exFAT fs support

CONFIG_EXFAT_FS

exfat-nofuse開源項目提供的核心級exFAT,FAT12,FAT16,FAT32(vfat)檔案系統支援更新檔.此更新檔是取代前面兩個核心自帶的FAT驅動的更優秀替代品.

enable discard support

CONFIG_EXFAT_DISCARD

"discard"挂載選項支援.在U盤或者SSD上使用此檔案系統的使用者必選"Y".

enable delayed sync

CONFIG_EXFAT_DELAYED_SYNC

延遲刷寫磁盤髒資料,可提高檔案系統性能.有電池的筆記本或者有UPS的桌上型電腦建議選"Y".

enable kernel debug features via ioctl

CONFIG_EXFAT_KERNEL_DEBUG

僅供調試使用.

print debug messages

CONFIG_EXFAT_DEBUG_MSG

僅供調試使用

Default codepage for exFAT

CONFIG_EXFAT_DEFAULT_CODEPAGE

在FAT系列檔案系統上,"8.3"格式的短檔案名以特定的代碼頁進行存儲(可以通過chcp指令檢視),但長檔案名卻以Unicode進行存儲.此選項的作用就是指定将長檔案名轉換為短檔案名時使用的預設代碼頁.可以通過"codepage"挂載選項進行修改.簡體中文通常使用"936",繁體中文通常使用"950".

Default iocharset for exFAT

CONFIG_EXFAT_DEFAULT_IOCHARSET

指定預設以什麼字元集顯示檔案名,這個值可以通過"iocharset"挂載選項修改.但必須與系統的locale設定保持一緻.例如在"zh_CN.UTF-8"或"en_US.UTF-8"的情況下應該使用"utf8".[注意]應謹慎使用"iocharset=utf8",因為它會導緻FAT檔案系統上的檔案名變得大小寫敏感.

NTFS file system support

CONFIG_NTFS_FS

NTFS檔案系統.僅選中此項表示僅支援隻讀(不支援NTFS壓縮或加密檔案),不支援寫入.詳見"Documentation/filesystems/ntfs.txt"文檔.

NTFS debugging support

CONFIG_NTFS_DEBUG

僅供調試使用

NTFS write support

CONFIG_NTFS_RW

由于微軟沒有公開NTFS的技術标準,是以核心隻能支援非常殘缺的寫入功能:僅能覆寫已存在的檔案但不能改變其長度,不能建立檔案或目錄.建議選"N".[提示]在Linux環境下寫入NTFS始終是一件危險的事情,即使對于NTFS-3G也是如此,除了不支援壓縮或加密檔案之外,網上還有不少血的教訓,有興趣可以搜搜.
Pseudo filesystems
僞檔案系統

/proc file system support

CONFIG_PROC_FS

顯示系統狀态的虛拟檔案系統(程序資訊,irq設定,記憶體使用,裝置驅動,網絡狀态等),通常挂載到"/proc"目錄.許多程式依賴于它,systemd也依賴于它.選"Y",除非你知道自己在做什麼.詳見"Documentation/filesystems/proc.txt"文檔.

/proc/kcore support

CONFIG_PROC_KCORE

系統實體記憶體的映象.建議選"N".

/proc/vmcore support

CONFIG_PROC_VMCORE

以ELF格式轉儲的已崩潰核心鏡像,僅供調試使用

Sysctl support (/proc/sys)

CONFIG_PROC_SYSCTL

顯示各種不同的核心調節參數,并讓root使用者能通過/proc/sys/目錄互動地更改其中的某些内容.必選"Y",除非你是嵌入式系統并且知道自己在做什麼.詳見"Documentation/sysctl/"目錄中的文檔.

Enable /proc page monitoring

CONFIG_PROC_PAGE_MONITOR

用于監視程序記憶體占用的接口(/proc/<pid>/{smaps,clear_refs,pagemap}和/proc/{kpagecount,kpageflags}).建議選"Y".

sysfs file system support

CONFIG_SYSFS

導出核心内部對象及其屬性和對象之間的互相關系的檔案系統,通常挂載到"/sys"目錄,sysfs把連接配接在系統上的裝置和總線以及驅動程式等組織成為一個分級的檔案,并允許通過該檔案系統調整某些核心子系統以及裝置的參數.核心啟動時依靠它挂載類似"/dev/sda1"這樣形式的根分區,禁用sysfs後必須在核心引導參數中使用裝置号指定根分區(類似"root=03:01"這樣).systemd依賴于它.選"Y",除非你知道自己在做什麼.詳見"Documentation/filesystems/"目錄中"sysfs*.txt"系列文檔.

Tmpfs virtual memory file system support (former shm fs)

CONFIG_TMPFS

tmpfs檔案系統(以前叫shm[共享記憶體]檔案系統),大多數系統的正常運作都依賴于它(例如Udev使用的"/dev/"目錄通常挂載為tmpfs).選"Y",除非你知道自己在做什麼.詳見"Documentation/filesystems/tmpfs.txt"文檔.

Tmpfs POSIX Access Control Lists

CONFIG_TMPFS_POSIX_ACL

POSIX ACL(通路控制清單)支援,這是一種超越"owner/group/world"的權限管理方式,可以更精細的針對每個使用者進行通路控制.詳見acl手冊.許多發行版都要求/dev/目錄支援ACL(例如讓ALSA相關的檔案可以正常工作),并且systemd也建議開啟它.不确定的選"Y".

Tmpfs extended attributes

CONFIG_TMPFS_XATTR

TMPFS檔案系統擴充屬性(與inode關聯的name:value對)支援(僅支援trusted.*和security.*命名空間).詳見attr手冊.由于它被CONFIG_TMPFS_POSIX_ACL依賴,并且systemd也建議開啟它.建議選"Y".

HugeTLB file system support

CONFIG_HUGETLBFS

這是使用大記憶體頁的傳統方式,需要專門進行配置以及應用程式的特别支援.推薦使用較新的透明大記憶體頁(CONFIG_TRANSPARENT_HUGEPAGE).選"N".

Userspace-driven configuration filesystem

CONFIG_CONFIGFS_FS

configfs是一個基于記憶體的虛拟檔案系統,與sysfs類似但又有不同:configfs用于從使用者空間檢視/修改/建立/删除核心對象,而sysfs僅能檢視/修改由核心負責建立和删除的對象.通常挂載到"/config"目錄.詳見"Documentation/configfs/"目錄中的文檔.不确定的選"N".

Miscellaneous filesystems

CONFIG_MISC_FILESYSTEMS

各種非主流的雜項檔案系統,有些是專用于嵌入式系統,有些是來自于其他作業系統,還有些專用于某些特定場合.
{此處省略哪些非常非主流的檔案系統}

eCrypt filesystem layer support

CONFIG_ECRYPT_FS

eCryptfs是一個符合POSIX标準的企業級檔案系統加密棧(加密/解密轉換層),工作在VFS(虛拟檔案系統)層,可以在各種普通檔案系統上使用(需要ecryptfs-utils工具).eCryptfs将加密中繼資料儲存在每個檔案的首部,進而允許檔案在不同主機之間任意移動,同時又能確定僅在核心密鑰環中擁有正确密鑰的時候才能解密檔案的内容.此外,eCryptfs還支援進階密匙管理和配置政策.[提示]使用eCryptfs之後,讀操作性能最大可下降1/3左右,寫操作性能則普遍下降一個數量級.

Enable notifications for userspace key wrap/unwrap

CONFIG_ECRYPT_FS_MESSAGING

允許ecryptfsd守護程序操作/dev/ecryptfs裝置.這将允許使用者空間使用其他後端(例如OpenSSL)加密/解密FEK(file encryption key).不确定的選"N".

SquashFS 4.0 - Squashed file system support

CONFIG_SQUASHFS

SquashFS是一種高壓縮率的隻讀檔案系統,可以使用多種壓縮算法(例如zlib,xz,lzo).SquashFS常用于嵌入式裝置和LiveCD系統.

Squashfs XATTR support

CONFIG_SQUASHFS_XATTR

Squashfs檔案系統擴充屬性(與inode關聯的name:value對)支援.詳見attr手冊.不确定的選"N".

Include support for ZLIB compressed file systems

CONFIG_SQUASHFS_ZLIB

ZLIB是Squashfs預設的标準壓縮算法.在壓縮率和性能之間達到了最佳的平衡.

Include support for LZO compressed file systems

CONFIG_SQUASHFS_LZO

LZO是性能最佳的壓縮算法(CPU和記憶體占用都很低),但是壓縮率确是最差的.常用于資源有限的嵌入式系統.

Include support for XZ compressed file systems

CONFIG_SQUASHFS_XZ

XZ是壓縮率最佳的壓縮算法,但其CPU和記憶體占用都最高.可用于PC環境.

Use 4K device block size?

CONFIG_SQUASHFS_4K_DEVBLK_SIZE

出于降低潛伏時間的考慮,Squashfs預設使用1K大小的塊.但是在MTD NAND裝置上,使用4K大小的塊才可以獲得最佳性能.此外,在大多數裝置上,使用4K大小的塊才能獲得最佳連續讀取性能.如果你的Squashfs位于閃存裝置上,建議選"Y".否則建議選"N".

Additional option for memory-constrained systems

CONFIG_SQUASHFS_EMBEDDED

允許強制指定緩存大小.不确定的選"N".

Number of fragments cached

CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE

SquashFS預設緩存最後3個從檔案系統上讀取的片段.降低此值(最小值是"1",不能設為"0")可以降低記憶體的占用,但是會增加底層實體裝置的讀取次數.增加此值則正好相反.[提示]按一般經驗,大于"3"的值并不能帶來顯著的性能提升.

EFI Variable filesystem

CONFIG_EFIVAR_FS

efivarfs是通路"EFI變量"的新方式,意在取代傳統的sysfs(CONFIG_EFI_VARS)方式,其主要優點是可以突破sysfs中變量值不能超出1024位元組的限制.開啟後可支援各種操作EFI變量的工具:efivar‎,efibootmgr,vathpela/efibootmgr,uefivars,efitools,fwts(Firmware Test Suite).systemd依賴于它.建議選"Y".

Network File Systems

CONFIG_NETWORK_FILESYSTEMS

網絡檔案系統

NFS client support

CONFIG_NFS_FS

NFS(Network File System)用戶端支援,這樣就可以使用nfs-utils包中的mount.nfs工具挂載遠端伺服器提供的NFS檔案系統.詳見nfs手冊頁.

NFS client support for NFS version 2

CONFIG_NFS_V2

NFSv2(RFC 1094)版本協定支援

NFS client support for NFS version 3

CONFIG_NFS_V3

NFSv3(RFC 1813)版本協定支援

NFS client support for the NFSv3 ACL protocol extension

CONFIG_NFS_V3_ACL

為NFSv3添加POSIX ACL支援(Solaris NFSv3 ACL).大多數NFS伺服器都不支援這個擴充.不确定的選"N".

NFS client support for NFS version 4

CONFIG_NFS_V4

NFSv4(RFC 3530)版本協定支援

Provide swap over NFS support

CONFIG_NFS_SWAP

允許将NFS檔案系統用做swap分區.

NFS client support for NFSv4.1

CONFIG_NFS_V4_1

NFSv4.1(RFC 5661)版本協定用戶端支援,這樣就可以使用nfs-utils包中的mount.nfs工具挂載遠端伺服器提供的NFS檔案系統.詳見nfs手冊頁以及NFS各個版本之間的比較.

NFSv4.1 Implementation ID Domain

CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN

NFSv4.1規範新引入了會話機制,該選項定義在建立會話過程中使用在EXCHANGE_ID指令中的"domain"部分的值.這個值必須是個标準的DNS域名格式.如果你沒有修改核心的NFS用戶端代碼,那麼請保持預設值"kernel.org".

Root file system on NFS

CONFIG_ROOT_NFS

允許将NFS挂載為根檔案系統(root=/dev/nfs),通常用于沒有本地儲存設備的無盤工作站(還必須開啟CONFIG_IP_PNP以及至少一個子項).詳見"Documentation/filesystems/nfs/nfsroot.txt"文檔.

Provide NFS client caching support

CONFIG_NFS_FSCACHE

為NFS提供本地緩存支援,也就是利用CONFIG_FSCACHE選項的功能.

Use the legacy NFS DNS resolver

CONFIG_NFS_USE_LEGACY_DNS

核心現在有自己的DNS解析實作,如果你依然想使用老式的DNS解析腳本,可以選"Y".不确定的選"N".

NFS server support

CONFIG_NFSD

NFS伺服器端支援.要實作此功能,還需要nfs-utils軟體包的支援.詳見nfs手冊頁.這裡也有一個NFS文章系列可以看看.此選項内嵌了NFSv2協定支援.

NFS server support for NFS version 3

CONFIG_NFSD_V3

NFSv3(RFC 1813)版本協定支援

NFS server support for the NFSv3 ACL protocol extension

CONFIG_NFSD_V3_ACL

為NFSv3添加POSIX ACL支援(Solaris NFSv3 ACL).此擴充并不屬于NFSv3協定的官方内容.

NFS server support for NFS version 4

CONFIG_NFSD_V4

NFSv4(RFC 3530)版本協定支援

NFS server manual fault injection

CONFIG_NFSD_FAULT_INJECTION

僅供調試使用

Secure RPC: Kerberos V mechanism

CONFIG_RPCSEC_GSS_KRB5

為使用Kerberos V5 GSS-API身份驗證機制(RFC1964)的安全RPC提供支援.要實作此功能,還需要nfs-utils軟體包以及使用者空間的Kerberos支援.

RPC: Enable dprintk debugging

CONFIG_SUNRPC_DEBUG

允許使用rpcdebug工具調試RPC故障,如果選"N"會讓故障調試特别困難.

Ceph distributed file system

CONFIG_CEPH_FS

允許挂載Ceph分布式檔案系統.不确定的選"N".詳見"Documentation/filesystems/ceph.txt"文檔.

CIFS support (advanced network filesystem, SMBFS successor)

CONFIG_CIFS

CIFS(Common Internet File System)協定用戶端支援.CIFS主要用于Linux與Windows之間共享檔案系統.如果你打算挂載Windows的共享檔案夾,或者由Samba提供的檔案系統,就選"Y".詳見"Documentation/filesystems/cifs.txt"文檔.

CIFS statistics

CONFIG_CIFS_STATS

在/proc/fs/cifs/Stats檔案中顯示每個被挂載的CIFS檔案系統的統計資訊

Extended statistics

CONFIG_CIFS_STATS2

在/proc/fs/cifs/目錄下顯示更詳細的統計資訊.對運作性能和記憶體占用都有些影響.不确定的選"N".

Support legacy servers which use weaker LANMAN security

CONFIG_CIFS_WEAK_PW_HASH

選"N",除非你确實知道自己在幹什麼.

Kerberos/SPNEGO advanced session setup

CONFIG_CIFS_UPCALL

Kerberos/SPNEGO進階會話支援.不确定的選"N".

CIFS extended attributes

CONFIG_CIFS_XATTR

CIFS檔案系統擴充屬性(與inode關聯的name:value對)支援.不确定的選"N".

CIFS POSIX Extensions

CONFIG_CIFS_POSIX

CIFS POSIX擴充.不确定的選"N".

Provide CIFS ACL support

CONFIG_CIFS_ACL

允許從伺服器抓取CIFS/NTFS ACL.不确定的選"N".

Enable CIFS debugging routines

CONFIG_CIFS_DEBUG

僅供調試使用

DFS feature support

CONFIG_CIFS_DFS_UPCALL

DFS(Distributed File System)支援.不确定的選"N".

SMB2 network file system support

CONFIG_CIFS_SMB2

僅供開發與調試使用

Provide CIFS client caching support

CONFIG_CIFS_FSCACHE

為CIFS提供本地緩存支援,也就是利用CONFIG_FSCACHE選項的功能.

NCP file system support (to mount NetWare volumes)

CONFIG_NCP_FS

NCP(NetWare Core Protocol)協定支援.這東西早就銷聲匿迹了,選"N".

Coda file system support (advanced network fs)

CONFIG_CODA_FS

Coda是一種比NFS更先進的分布式叢集檔案系統.LVS(Linux Virtual Server)就采用了Coda分布式檔案系統.詳見"Documentation/filesystems/coda.txt"文檔.

Andrew File System support

CONFIG_AFS_FS

AFS(Andrew File System)檔案系統的實驗性支援,目前僅支援隻讀通路.詳見"Documentation/filesystems/afs.txt"文檔.

Provide AFS client caching support

CONFIG_AFS_FSCACHE

為AFS提供本地緩存支援,也就是利用CONFIG_FSCACHE選項的功能.

Plan 9 Resource Sharing Support (9P2000)

CONFIG_9P_FS

9P2000協定是Plan 9概念網絡作業系統上使用的資源共享協定.不确定的選"N".

Native language support

CONFIG_NLS

本地語言支援.僅在你使用FAT/NTFS/JOLIET檔案系統的情況下才需要這個東西.

Default NLS Option

CONFIG_NLS_DEFAULT

挂載檔案系統時,控制台的預設本地語言(不是檔案系統用于存儲檔案名的語言),建議設為"utf8"(因為控制台的預設編碼是"utf8":vt.default_utf8=1).
{此處省略的各種字元集請按需選擇}

Distributed Lock Manager (DLM)

CONFIG_DLM

通用的分布式鎖管理器(DLM).用于為各種分布式檔案系統提供通用的鎖定支援.叢集強烈依賴于這個驅動.

DLM debugging

CONFIG_DLM_DEBUG

僅供開發與調試使用

Kernel hacking

核心hack選項

Show timing information on printks

CONFIG_PRINTK_TIME

在控制台和syslog()系統調用的輸出中包含printk()消息的時間戳,以便于直接顯示核心啟動過程中各步驟所用的時間.注意:無論此項是否開啟,時間戳總會被記錄在/dev/kmsg中,開啟此項僅相當于使用"printk.time=1"核心引導參數.

Default message log level (1-7)

CONFIG_DEFAULT_MESSAGE_LOGLEVEL

printk()核心消息日志的預設級别,取值範圍是[1,7].任何由printk顯示的字元串通常記錄在/var/log/messages檔案裡.數值越大顯示的消息就越詳細:1=ALERT,2=CRIT,3=ERR,4=WARNING,5=NOTICE,6=INFO,7=DEBUG.

Enable __deprecated logic

CONFIG_ENABLE_WARN_DEPRECATED

編譯時開啟"反對使用"邏輯檢查,關閉此項将不會顯示類似"warning: \'foo\' is deprecated (declared at kernel/power/somefile.c:1234)"這樣的警告消息.

Enable __must_check logic

CONFIG_ENABLE_MUST_CHECK

編譯時開啟"必須檢查"邏輯檢查,關閉此項将不會顯示類似"warning: ignoring return value of \'foo\', declared with attribute warn_unused_result"這樣的警告消息.

Warn for stack frames larger than (needs gcc 4.4)

CONFIG_FRAME_WARN

堆棧幀大小警告門檻值,設定過小會導緻編譯時警告太多,設為"0"可以關閉警告,需要GCC-4.4或更高版本

Strip assembler-generated symbols during link

CONFIG_STRIP_ASM_SYMS

連接配接時剝離彙編器産生的内部符号(類似\'.Lxxx\'),這樣可以淨化get_wchan()之類的輸出,同時還可以減小核心尺寸.建議開啟.

Magic SysRq key

CONFIG_MAGIC_SYSRQ

開啟"魔法鍵"(SysRq,允許使用者按下Alt+PrintScreen後發送給核心特殊的指令)支援(可以通過"echo 0 > /proc/sys/kernel/sysrq"關閉).由于SysRq會帶來安全隐患(允許未經登入的操作),是以你應該僅在确實需要的場合開啟.更多詳情參見"Documentation/sysrq.txt"文檔

Enable magic SysRq key functions by default

CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE

設定預設開啟哪些魔法鍵.設為"1"表示開啟所有魔法鍵,設為"0"表示禁用所有魔法鍵.或者按照"Documentation/sysrq.txt"文檔的指引設定特定的碼位.

Generate readable assembler code

CONFIG_READABLE_ASM

生成人類易讀的彙編輸出,以友善核心調試.這會禁用一些編譯優化措施,也會降低核心的運作速度.

Enable unused/obsolete exported symbols

CONFIG_UNUSED_SYMBOLS

導出無用和廢棄的符号,這将使核心不必要的增大.建議關閉.

Debug Filesystem

CONFIG_DEBUG_FS

debugfs是核心開發者用來存儲調試資訊的虛拟檔案系統.不搞核心開發就别選

Run \'make headers_check\' when building vmlinux

CONFIG_HEADERS_CHECK

在編譯核心時運作\'make headers_check\'指令檢查核心頭檔案的正确性,當你修改了與使用者空間相關的核心頭檔案後應該啟用該選項

Enable full Section mismatch analysis

CONFIG_DEBUG_SECTION_MISMATCH

在編譯時檢查無效的引用.僅供核心開發者使用

Make section mismatch errors non-fatal

CONFIG_SECTION_MISMATCH_WARN_ONLY

若選"N",那麼一旦出現"section mismatch",将會直接導緻編譯失敗(而不是僅僅抛出警告).建議選"N".

Kernel debugging

CONFIG_DEBUG_KERNEL

僅供核心開發者使用.[提示]如果你開啟了CONFIG_EXPERT,此項會被強制選中,如果這不是你想要的,可以到核心源碼樹的根目錄下使用"sed -i \'/select DEBUG_KERNEL/d\' usr/src/linux/init/Kconfig"指令去掉這個依賴.

Panic on Oops

CONFIG_PANIC_ON_OOPS

當核心oops時,直接panic掉(相當于Windows藍屏當機),這樣可以確定核心停止工作,避免導緻無法預料的後果.等價于使用"oops=panic"核心引導參數.不确定的選"Y".

panic timeout

CONFIG_PANIC_TIMEOUT

如何處理核心崩潰(panic):(1)若設為"0"則表示無限等待,不做任何處理;(2)若設為正整數則表示等待設定的秒數之後重新開機;(3)若設為負整數則表示立即重新開機.

Enable extra timekeeping sanity checking

CONFIG_DEBUG_TIMEKEEPING

僅供核心開發者使用

Detect Hung Tasks

CONFIG_DETECT_HUNG_TASK

探測挂起的任務(程序被鎖住或者當機了,處于不可中斷的"D"狀态).由于僅能檢測,不能做進一步的處理,是以僅用于幫助核心調試.

Collect scheduler debugging info

CONFIG_SCHED_DEBUG

提供一個"/proc/sched_debug"檔案以幫助調試排程程式.僅供核心開發以及調試排程程式使用.

Collect scheduler statistics

CONFIG_SCHEDSTATS

收集排程程式的統計資訊,并展示在"/proc/schedstat"檔案中.可以用于調試排程程式,或者調整特定的應用程式.不确定的選"N".

Collect kernel timers statistics

CONFIG_TIMER_STATS

收集核心計時器的統計資訊,并展示在"/proc/timer_stats"檔案中.使用"echo 1 > /proc/timer_stats"開啟統計,使用"echo 0 > /proc/timer_stats"關閉統計.不确定的選"N".

Debug object operations

CONFIG_DEBUG_OBJECTS

跟蹤各種對象的生命周期(life time),并校驗對這些對象的各種操作.僅供核心調試.

Debug slab memory allocations

CONFIG_DEBUG_SLAB

僅供核心開發者使用

SLUB debugging on by default

CONFIG_SLUB_DEBUG_ON

預設開啟SLUB記憶體配置設定器調試功能.僅供調試,切勿用于生産環境.

Enable SLUB performance statistics

CONFIG_SLUB_STATS

收集SLUB記憶體配置設定器的性能統計資訊.僅供調試,切勿用于生産環境.

Kernel memory leak detector

CONFIG_DEBUG_KMEMLEAK

核心記憶體洩漏檢測.僅供核心調試.

Debug preemptible kernel

CONFIG_DEBUG_PREEMPT

對核心的主動搶占特性進行調試.僅供核心開發者使用

RT Mutex debugging, deadlock detection

CONFIG_DEBUG_RT_MUTEXES

僅供核心開發者使用

Built-in scriptable tester for rt-mutexes

CONFIG_RT_MUTEX_TESTER

僅供核心開發者使用

Spinlock and rw-lock debugging: basic checks

CONFIG_DEBUG_SPINLOCK

僅供核心開發者使用

Mutex debugging: basic checks

CONFIG_DEBUG_MUTEXES

僅供核心開發者使用

Lock debugging: detect incorrect freeing of live locks

CONFIG_DEBUG_LOCK_ALLOC

僅供核心開發者使用

Lock debugging: prove locking correctness

CONFIG_PROVE_LOCKING

僅供核心開發者使用

Lock usage statistics

CONFIG_LOCK_STAT

僅供核心開發者使用

Lock dependency engine debugging

CONFIG_DEBUG_LOCKDEP

僅供核心開發者使用

Sleep inside atomic section checking

CONFIG_DEBUG_ATOMIC_SLEEP

僅供核心開發者使用

Locking API boot-time self-tests

CONFIG_DEBUG_LOCKING_API_SELFTESTS

在核心啟動時運作一個簡短的加鎖/解鎖函數(spinlocks,rwlocks,mutexes,rwsems)自我測試.僅供核心開發者使用

Stack utilization instrumentation

CONFIG_DEBUG_STACK_USAGE

僅供核心開發者使用

kobject debugging

CONFIG_DEBUG_KOBJECT

僅供核心開發者使用

Verbose BUG() reporting (adds 70K)

CONFIG_DEBUG_BUGVERBOSE

在核心panic時讓BUG()函數報告更詳細的資訊.核心将會增大70-100K.

Compile the kernel with debug info

CONFIG_DEBUG_INFO

以調試方式編譯核心(gcc -g).僅供核心開發者使用

Debug VM

CONFIG_DEBUG_VM

僅供核心開發者使用

Debug VM translations

CONFIG_DEBUG_VIRTUAL

僅供核心開發者使用

Debug filesystem writers count

CONFIG_DEBUG_WRITECOUNT

僅供核心開發者使用

Debug memory initialisation

CONFIG_DEBUG_MEMORY_INIT

在記憶體初始化時增加額外的合理性檢查.不确定的選"Y".

Debug linked list manipulation

CONFIG_DEBUG_LIST

僅供核心開發者使用

Linked list sorting test

CONFIG_TEST_LIST_SORT

僅供核心開發者使用

Debug SG table operations

CONFIG_DEBUG_SG

僅供核心開發者使用

Debug notifier call chains

CONFIG_DEBUG_NOTIFIERS

僅供核心開發者使用

Debug credential management

CONFIG_DEBUG_CREDENTIALS

僅供核心開發者使用

Compile the kernel with frame pointers

CONFIG_FRAME_POINTER

僅供核心開發者使用

Delay each boot printk message by N milliseconds

CONFIG_BOOT_PRINTK_DELAY

僅供核心開發者使用

Stack backtrace support

CONFIG_STACKTRACE

僅供核心開發者使用.
RCU Debugging
僅供核心開發者使用.建議所有子項全選"N".

Kprobes sanity tests

CONFIG_KPROBES_SANITY_TEST

僅供核心開發者使用

Self test for the backtrace code

CONFIG_BACKTRACE_SELF_TEST

僅供核心開發者使用

Force extended block device numbers and spread them

CONFIG_DEBUG_BLOCK_EXT_DEVT

僅供核心開發者使用

Force weak per-cpu definitions

CONFIG_DEBUG_FORCE_WEAK_PER_CPU

僅供核心開發者使用

Debug access to per_cpu maps

CONFIG_DEBUG_PER_CPU_MAPS

僅供核心開發者使用

Linux Kernel Dump Test Tool Module

CONFIG_LKDTM

僅供核心開發者使用

Notifier error injection

CONFIG_NOTIFIER_ERROR_INJECTION

僅供核心開發者使用

Fault-injection framework

CONFIG_FAULT_INJECTION

僅供核心開發者使用

Latency measuring infrastructure

CONFIG_LATENCYTOP

僅供核心開發者使用

Strict user copy size checks

CONFIG_DEBUG_STRICT_USER_COPY_CHECKS

僅供核心開發者使用

Debug page memory allocations

CONFIG_DEBUG_PAGEALLOC

僅供核心開發者使用

Tracers

CONFIG_FTRACE

僅供核心開發者使用.建議選"N".
Runtime Testing
運作時自我檢查.建議子項全選"N".

Red-Black tree test

CONFIG_RBTREE_TEST

僅供核心開發者使用

Interval tree test

CONFIG_INTERVAL_TREE_TEST

僅供核心開發者使用

Remote debugging over FireWire early on boot

CONFIG_PROVIDE_OHCI1394_DMA_INIT

僅供核心開發者使用

Remote debugging over FireWire with firewire-ohci

CONFIG_FIREWIRE_OHCI_REMOTE_DMA

僅供核心開發者使用

Build targets in Documentation/ tree

CONFIG_BUILD_DOCSRC

編譯核心源碼樹下"Documentation"目錄中的目标.不确定的選"N".

Enable dynamic printk() support

CONFIG_DYNAMIC_DEBUG

僅供核心開發者使用

Enable debugging of DMA-API usage

CONFIG_DMA_API_DEBUG

僅供核心開發者使用

Perform an atomic64_t self-test at boot

CONFIG_ATOMIC64_SELFTEST

僅供核心開發者使用

Self test for hardware accelerated raid6 recovery

CONFIG_ASYNC_RAID6_TEST

僅供核心開發者使用

Sample kernel code

CONFIG_SAMPLES

核心示例代碼.僅供核心開發者使用

KGDB: kernel debugger

CONFIG_KGDB

僅供核心開發者使用

kmemcheck: trap use of uninitialized memory

CONFIG_KMEMCHECK

僅供核心開發者使用

Test functions located in the string_helpers module at runtime

CONFIG_TEST_STRING_HELPERS

僅供核心開發者使用

Test kstrto*() family of functions at runtime

CONFIG_TEST_KSTRTOX

僅供核心開發者使用

Filter access to /dev/mem

CONFIG_STRICT_DEVMEM

如果選"N",那麼使用者空間的root使用者将可以通過/dev/mem通路所有記憶體空間(包括使用者空間與核心空間),以友善調試核心.如果選"Y",那麼核心空間除了PCI和BIOS部分以及資料區之外,都禁止通路,以保護系統安全.不确定的選"Y".

Enable verbose x86 bootup info messages

CONFIG_X86_VERBOSE_BOOTUP

在啟動時顯示額外bzimage解壓消息,顯示詳細的核心引導資訊.建議選"N"使引導過程更安靜(依然會顯示錯誤資訊).

Early printk

CONFIG_EARLY_PRINTK

将核心日志直接輸出到VGA緩沖或序列槽.這有助于調試那些在控制台尚未完成初始化之前就造成系統崩潰的bug.

Early printk via EHCI debug port

CONFIG_EARLY_PRINTK_DBGP

支援将核心日志直接通過EHCI調試端口輸出.選"N",除非你想調試核心.

Dump the EFI pagetable

CONFIG_EFI_PGT_DUMP

僅供核心開發者使用

Check for stack overflows

CONFIG_DEBUG_STACKOVERFLOW

僅供核心開發者使用

Export kernel pagetable layout to userspace via debugfs

CONFIG_X86_PTDUMP

僅供核心開發者使用

Write protect kernel read-only data structures

CONFIG_DEBUG_RODATA

僅供核心開發者使用

Set loadable kernel module data as NX and text as RO

CONFIG_DEBUG_SET_MODULE_RONX

将核心子產品的資料區标記為NX(不可執行),文本段标記為RO(隻讀),以防止不良子產品(例如被植入病毒的子產品)對系統的破壞,也能預防某些類型的核心入侵.這需要CPU支援NX位(CPU flags中要含有"nx"标志).但是這也有副作用:會與運作時代碼更新檔沖突,還會導緻動态核心跟蹤失效.建議選"Y",除非你需要調試核心,或者需要為運作中的子產品打更新檔.

Testcase for the NX non-executable stack feature

CONFIG_DEBUG_NX_TEST

對處理器的NX的測試用例.僅供核心開發者使用

Set upper limit of TLB entries to flush one-by-one

CONFIG_DEBUG_TLBFLUSH

僅供核心開發者使用

Enable doublefault exception handler

CONFIG_DOUBLEFAULT

僅供核心開發者使用

Enable IOMMU debugging

CONFIG_IOMMU_DEBUG

僅供核心開發者使用

Enable IOMMU stress-test mode

CONFIG_IOMMU_STRESS

僅供核心開發者使用

IOMMU leak tracing

CONFIG_IOMMU_LEAK

僅供核心開發者使用

x86 instruction decoder selftest

CONFIG_X86_DECODER_SELFTEST

僅供核心開發者使用
IO delay type
IO延遲方式

port 0x80 based port-IO delay

CONFIG_IO_DELAY_0X80

傳統的Linux IO延遲方式,久經考驗,也是最安全的預設值.

port 0xed based port-IO delay

CONFIG_IO_DELAY_0XED

基于0xed端口的IO延遲方式,主要是為了避免和基于0x80端口的主機闆診斷卡沖突.絕大多數人都沒有主機闆診斷卡,除非那些專門維修主機闆的硬體工程師.

udelay based port-IO delay

CONFIG_IO_DELAY_UDELAY

使用核心端udelay()函數作為延遲方法(簡單的延遲2微秒).可以不占用任何IO端口空間.

no port-IO delay

CONFIG_IO_DELAY_NONE

不使用任何port-IO延遲機制.隻要你的機器不是老古董,建議選擇此項.

Debug boot parameters

CONFIG_DEBUG_BOOT_PARAMS

僅供核心開發者使用

CPA self-test code

CONFIG_CPA_DEBUG

僅供核心開發者使用

Allow gcc to uninline functions marked \'inline\'

CONFIG_OPTIMIZE_INLINING

允許GCC将标記為内聯(inline)的函數變成非内聯(uninline).選"Y"後将完全無視代碼中的"inline"标記,完全由GCC自行決定是否應該将函數内聯.由于GCC4.x系列更新了判斷函數是否應該内聯的算法,選"Y"後,編譯出的核心體積會減小(但運作速度未必提升).建議選"Y".

NMI Selftest

CONFIG_DEBUG_NMI_SELFTEST

對不可屏蔽中斷(Non Maskable Interrupt)進行自檢,僅供核心開發者使用

ATOM Punit debug driver

CONFIG_PUNIT_ATOM_DEBUG

僅供核心開發者使用

Security options

安全選項

這裡的選項不明白的建議不要選,否則有可能弄巧成拙.

Enable access key retention support

CONFIG_KEYS

在核心中保留認證令牌(authentication token)和通路密鑰(access key).eCryptfs(CONFIG_ECRYPT_FS)與Docker依賴于它.不确定的選"N".

TRUSTED KEYS

CONFIG_TRUSTED_KEYS

"TRUSTED KEY"的意思是由TPM(可信賴平台子產品)用RSA算法封裝的一對随機數.開啟此項後,核心将可以為建立/封裝/解封"TRUSTED KEY"提供支援.如果引導PCR(平台配置寄存器)和各種條件都比對,那麼TPM隻解封密鑰.使用者空間永遠隻能看到加密過後的二進制内容.不确定的選"N".

ENCRYPTED KEYS

CONFIG_ENCRYPTED_KEYS

"ENCRYPTED KEY"的意思是由核心封裝的一對随機數,該對随機數可以用一個"主密鑰"使用對稱加密算法進行加密和解密.開啟此項後,核心将可以為建立/加密/解密"ENCRYPTED KEY"提供支援."主密鑰"既可以是"TRUSTED KEY"也可以是"user-key"(使用者選擇的密鑰).使用者空間永遠隻能看到/存儲加密過後的二進制内容.不确定的選"N".

Enable the /proc/keys file by which keys may be viewed

CONFIG_KEYS_DEBUG_PROC_KEYS

開啟"/proc/keys"檔案支援,該檔案中儲存了系統上所有可見的密鑰.注意,LSM(Linux安全子產品)安全檢查仍然是必須的.不确定的選"N".

Restrict unprivileged access to the kernel syslog

CONFIG_SECURITY_DMESG_RESTRICT

禁止非特權使用者通路核心日志(dmesg),相當于"echo 1 > /proc/sys/kernel/dmesg_restrict".不确定的選"N".

Enable different security models

CONFIG_SECURITY

允許核心選擇不同的LSM(Linux安全子產品),如果未選中則核心将使用預設的安全子產品("Default security module").不确定的選"N".

Enable the securityfs filesystem

CONFIG_SECURITYFS

securityfs安全檔案系統支援.目前僅被TPM bios字元裝置驅動以及IMA(完整性提供者)使用.它與SELinux或SMACK之類沒有關系.不确定的選"N".

Socket and Networking Security Hooks

CONFIG_SECURITY_NETWORK

允許安全子產品通過Security Hook對Socket與Networking進行通路控制.不确定的選"N".

XFRM (IPSec) Networking Security Hooks

CONFIG_SECURITY_NETWORK_XFRM

為XFRM(IPSec)啟用安全Hook.這樣安全子產品可以通過這些hook,根據IPSec政策标簽,實作針對每個網絡包的通路控制.非IPSec通信則被當做"無标簽"處理,僅允許那些被明确準許可以不使用政策标簽的socket才能不通過IPSec進行通信.不确定的選"N".

Security hooks for pathname based access control

CONFIG_SECURITY_PATH

此安全鈎子程式可以讓各種安全子產品實作基于路徑的通路控制.不确定的選"N".

Enable Intel(R) Trusted Execution Technology (Intel(R) TXT)

CONFIG_INTEL_TXT

支援使用可信引導(Trusted Boot)技術引導核心(需要使用tboot子產品).這将使用英特爾TXT(可信任執行技術)來引導核心.在不支援TXT的平台上開啟此項沒有效果.詳見"Documentation/intel_txt.txt"文檔.不确定的選"N".

Low address space for LSM to protect from user allocation

CONFIG_LSM_MMAP_MIN_ADDR

禁止使用者空間配置設定的低位記憶體範圍.禁止使用者寫入低位記憶體有助于降低核心NULL指針漏洞造成的破壞(參見CONFIG_DEFAULT_MMAP_MIN_ADDR選項).建議保持預設值"65536".

NSA SELinux Support

CONFIG_SECURITY_SELINUX

SELinux(安全增強Linux)是美國國家安全局(NSA)開發的Linux安全子產品,它擁有一個靈活而強制性的通路控制結構,可防禦未知攻擊,相當于B1級的軍事安全性能(比微軟所謂的C2等高得多).應用SELinux後,可以減輕惡意攻擊或惡意軟體帶來的災難,對機密性和完整性有很高要求的資訊,亦可提供很高的安全保障.但另一方面,如果不深入了解SELinux知識而盲目使用,則會弄巧成拙.不确定的選"N".

NSA SELinux boot parameter

CONFIG_SECURITY_SELINUX_BOOTPARAM

添加"selinux"核心引導參數.以允許在引導時使用\'selinux=0\'禁用SELinux或\'selinux=1\'啟用SELinux.

NSA SELinux boot parameter default value

CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE

"selinux"核心引導參數的預設值.

NSA SELinux runtime disable

CONFIG_SECURITY_SELINUX_DISABLE

允許在運作時禁用SELinux.建議選"N".

NSA SELinux Development Support

CONFIG_SECURITY_SELINUX_DEVELOP

SELinux開發支援.開啟此項後,除非明确使用"enforcing=1"引導參數讓核心以"強制模式"運作,否則核心将以"許可模式"運作(記錄所有事件,同時允許所有操作).主要用于測試SELinux以及政策開發.此外,開啟此項後,還可以在運作時通過"/selinux/enforce"讓核心在"強制模式"與"許可模式"之間切換.

NSA SELinux AVC Statistics

CONFIG_SECURITY_SELINUX_AVC_STATS

搜集通路向量緩存(access vector cache)的統計資訊并在/selinux/avc/cache_stats中顯示出來.這些資訊可以用avcstat之類的工具檢視.

NSA SELinux checkreqprot default value

CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE

核心引導參數"checkreqprot"的預設值.設為"0"表示預設檢查核心要求執行的保護政策,設為"1"表示預設檢查應用程式要求執行的保護政策.此值還可以在運作時通過/selinux/checkreqprot修改.不确定的選"1".

NSA SELinux maximum supported policy format version

CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX

将支援的政策格式的最高版本設定為一個特定的數值.該數值将通過/selinux/policyvers向使用者空間報告,并在加載政策時被使用.不确定的選"N".
NSA SELinux maximum supported policy format version value
支援政策格式的最高版本的數值.可以通過"checkpolicy -V"指令檢查目前工具鍊支援的版本數值.

Simplified Mandatory Access Control Kernel Support

CONFIG_SECURITY_SMACK

Smack(簡化的強制通路控制核心)核心安全子產品.Smack是一種簡單而有效的強制通路控制機制,它的簡單展現在安全政策的配置很簡單,它的有效展現在完全使用LSM作為其控制手段.不确定的選"N".

TOMOYO Linux Support

CONFIG_SECURITY_TOMOYO

TOMOYO Linux是日本NTT資料公司開發的一種Linux安全子產品.不确定的選"N".

AppArmor support

CONFIG_SECURITY_APPARMOR

AppArmor(應用盔甲)是來自Novell的一種Linux安全子產品.AppArmor使用檔案路徑來跟蹤程式限制,是最容易配置的安全子產品.不确定的選"N".

Yama support

CONFIG_SECURITY_YAMA

Yama(閻王)是3.4版核心新引入的一種Linux安全子產品.不确定的選"N".

Digital signature verification using multiple keyrings

CONFIG_INTEGRITY_SIGNATURE

允許使用多個密鑰環(keyring)進行數字簽名驗證,也就允許為多個不同的使用場合(evm,ima,module)分别使用不同的keyring.看不懂的選"N".

Enable asymmetric keys support

CONFIG_INTEGRITY_ASYMMETRIC_KEYS

允許使用非對稱密鑰進行數字簽名驗證.

Integrity Measurement Architecture(IMA)

CONFIG_IMA

IMA(完整性度量架構)是一個在TCG(可信計算工作組)技術規範之上提出的完整性檢查技術.IMA維護着一個系統關鍵檔案的哈希值清單,進而可以檢測這些關鍵檔案是否被篡改.如果系統上有TPM安全晶片,那麼IMA還會在TPM晶片記憶體儲哈希值的集合.這樣的TPM晶片可以提供給第三方,用于檢查系統上的關鍵檔案是否被篡改.不确定的選"N".

Enables auditing support

CONFIG_IMA_AUDIT

添加"ima_audit"核心引導參數支援.當設為"ima_audit=1"時,将允許顯示完整性審計資訊.

Appraise integrity measurements

CONFIG_IMA_APPRAISE

本地完整性鑒定支援.這樣就可以在加載檔案時檢驗它的完整性.這要求系統配置EVM支援.不确定的選"N".

EVM support

CONFIG_EVM

EVM通過保護檔案的安全擴充屬性來對抗完整性攻擊.

EVM HMAC version

CONFIG_EVM_HMAC_VERSION

支援的EVM HMAC版本:"1"表示原始版本,預設值"2"表示添加了檔案系統UUID支援的改進版本.
Default security module
核心預設的安全子產品.[提示]"Unix Discretionary Access Controls"是經典的UNIX基于目錄的通路控制安全模型.如果沒有開啟任何安全子產品,這将是預設值.

Cryptographic API

核心加密API支援

這裡的加密算法被廣泛的應用于驅動程式通信協定等機制中.子選項可以全不選,核心中若有其他部分依賴它,會自動選上.使用核心樹外的子產品時可能需要手動選擇.

FIPS 200 compliance

CONFIG_CRYPTO_FIPS

"fips"核心引導參數支援.這是在FIPS200認證的系統中運作所必須的.選"N",除非你确實知道自己在做什麼.

RSA algorithm

CONFIG_CRYPTO_RSA

"RSA"公鑰加密算法.能同時用于密鑰交換和數字簽名.

Cryptographic algorithm manager

CONFIG_CRYPTO_MANAGER

建立預設的加密模版執行個體,提供了操作核心的加密特性所需的軟體.

Userspace cryptographic algorithm configuration

CONFIG_CRYPTO_USER

允許使用者空間配置核心加密執行個體.不确定的選"N".

Disable run-time self tests

CONFIG_CRYPTO_MANAGER_DISABLE_TESTS

禁止在注冊算法時進行簡單的自我檢測.不确定的選"Y".

GF(2^128) multiplication functions

CONFIG_CRYPTO_GF128MUL

由高效表格驅動的伽羅瓦域 GF(2^128)乘法器支援.某些加密模式需要它.不确定的選"N".如果有其它子產品需要此特性,會被自動選中.

Null algorithms

CONFIG_CRYPTO_NULL

NULL加密算法(什麼也不做),用于IPsec協定的封裝安全載荷子產品(ESP)

Parallel crypto engine

CONFIG_CRYPTO_PCRYPT

将任意加密算法轉化成并行算法,并在核心線程中執行.

Software async crypto daemon

CONFIG_CRYPTO_CRYPTD

這是一個通用的軟體異步加密守護程序,可将任意的同步軟體加密算法轉換成在核心線程中執行的異步算法.

Software async multi-buffer crypto daemon

CONFIG_CRYPTO_MCRYPTD

這是一個通用的軟體異步加密守護程序,可将任意的多緩沖加密算法轉換成在核心線程中執行的異步多緩沖加密算法.

Authenc support

CONFIG_CRYPTO_AUTHENC

用于IPSec組合模式的包裝器:認證加密并對IPSec提供多重加密.

Testing module

CONFIG_CRYPTO_TEST

醜陋的加密測試子產品.僅供調試使用.

CCM support

CONFIG_CRYPTO_CCM

CBC-MAC計數器.IPsec需要它.

GCM/GMAC support

CONFIG_CRYPTO_GCM

GCM(Galois/Counter Mode)與GMAC(Galois Message Authentication Code)支援.IPsec需要它.[注釋]GCM是一種對稱加密算法的塊密碼工作模式,使用128位塊大小.塊密碼工作模式可以分為加密模式,認證模式,認證加密模式.GCM模式為認證模式的一種,提供認證和加密兩種功能.

Sequence Number IV Generator

CONFIG_CRYPTO_SEQIV

序号初始向量(IV)生成器.它基于一個序号與一個鹽粒子(salt)的異或值生成一個向量.此算法主要用于塊密碼的CTR(計數模式).

CBC support

CONFIG_CRYPTO_CBC

塊密碼工作模式:密碼分組連結(Cipher Block Chaining)模式.IPSec需要它.

CTR support

CONFIG_CRYPTO_CTR

塊密碼工作模式:計數器(Counter)模式.IPSec需要它.

CTS support

CONFIG_CRYPTO_CTS

塊密碼工作模式:密文竊取(Cipher Text Stealing)模式.Kerberos gss機制支援的AES加密需要它.

ECB support

CONFIG_CRYPTO_ECB

塊密碼工作模式電子密碼本(Electronic CodeBook)模式.這是最簡單的分組密碼算法,隻是簡單的分别加密每個塊.

LRW support

CONFIG_CRYPTO_LRW

塊密碼工作模式:LRW(Liskov Rivest Wagner)模式.這個模式以三個人名命名.這是一種小資料塊加密模式,加密後的資料保持與明文資料同樣的長度,專門用于CONFIG_DM_CRYPT子產品加密磁盤區塊(使用"aes-lrw-benbi"指定).

PCBC support

CONFIG_CRYPTO_PCBC

塊密碼工作模式:填充密碼塊連結(Propagating Cipher Block Chaining)模式.CONFIG_AF_RXRPC需要它.

XTS support

CONFIG_CRYPTO_XTS

塊密碼工作模式:XTS模式.這是IEEE1619/D16規範制定的一種小資料塊加密模式,加密後的資料保持與明文資料同樣的長度,專門用于加密磁盤區塊(使用"aes-xts-plain"指定).

CMAC support

CONFIG_CRYPTO_CMAC

NIST(美國國家标準與技術研究所)制定的基于密文的消息認證碼(Cipher-based Message Authentication Code)

HMAC support

CONFIG_CRYPTO_HMAC

基于哈希的消息驗證代碼(RFC2104).在發送方和接收方共享機密密鑰的前提下,HMAC可用于确定通過不安全信道發送的消息是否被篡改.IPSec需要它.

XCBC support

CONFIG_CRYPTO_XCBC

基于哈希的加密算法(RFC3566)

VMAC support

CONFIG_CRYPTO_VMAC

VMAC是一種專用于64位CPU的高速消息認證算法

CRC32c CRC algorithm

CONFIG_CRYPTO_CRC32C

CRC32c摘要算法是常見的CRC32循環備援校驗的一個變種,僅多項式常數不同,算法完全一樣.常用于iSCSI和SCTP資料校驗.

CRC32c INTEL hardware acceleration

CONFIG_CRYPTO_CRC32C_INTEL

利用SSE4.2指令集中專用的"CRC32"指令,可以提高最少10倍的運算速度.如果你的CPU支援SSE4.2,建議選"Y".

CRC32 CRC algorithm

CONFIG_CRYPTO_CRC32

經典的CRC32循環備援校驗算法.

CRC32 PCLMULQDQ hardware acceleration

CONFIG_CRYPTO_CRC32_PCLMUL

使用處理器的PCLMULQDQ指令(又稱CLMUL指令集,其實隻有一條指令)加速CRC32的運算.PCLMULQDQ是從Intel Westmere和AMD Bulldozer開始引入的指令(隸屬于AES指令集).可以大幅提升CRC32的運算速度.如果你的CPU支援AES指令集(grep aes /proc/cpuinfo),建議選"Y".

CRCT10DIF algorithm

CONFIG_CRYPTO_CRCT10DIF

CRC T10 DIF(Data Integrity Field)算法可用于保障T10/SCSI裝置的端到端的資料完整性.

CRCT10DIF PCLMULQDQ hardware acceleration

CONFIG_CRYPTO_CRCT10DIF_PCLMUL

使用處理器的PCLMULQDQ指令(又稱CLMUL指令集,其實隻有一條指令)加速CRC T10 DIF的運算.PCLMULQDQ是從Intel Westmere和AMD Bulldozer開始引入的指令(隸屬于AES指令集).可以大幅提升CRC T10 DIF的運算速度.如果你的CPU支援AES指令集(grep aes /proc/cpuinfo),建議選"Y".

GHASH digest algorithm

CONFIG_CRYPTO_GHASH

GHASH是用于GCM(Galois/Counter Mode)的消息摘要算法.

MD4 digest algorithm

CONFIG_CRYPTO_MD4

老舊的MD4(RFC1320)摘要算法,已經被淘汰.

MD5 digest algorithm

CONFIG_CRYPTO_MD5

廣泛使用的MD5(RFC1321)摘要算法,128位.已經被發現可以快速找到碰撞,正逐漸淘汰中.

Michael MIC keyed digest algorithm

CONFIG_CRYPTO_MICHAEL_MIC

Michael MIC是僅用于TKIP(IEEE 802.11i)的摘要算法.不能用于其它場合,因為它存在一些缺陷.

RIPEMD-128 digest algorithm

CONFIG_CRYPTO_RMD128

RIPEMD-128(ISO/IEC 10118-3:2004)128位摘要算法.安全性不高,不建議使用.

RIPEMD-160 digest algorithm

CONFIG_CRYPTO_RMD160

RIPEMD-160(ISO/IEC 10118-3:2004)160位摘要算法.是替代各種128位摘要算法(RIPEMD-128,MD5,MD4)的首選.其運算速度和SHA1相當,但是目前尚無已知有效的攻擊方法.

RIPEMD-256 digest algorithm

CONFIG_CRYPTO_RMD256

RIPEMD-256在本質上和RIPEMD-128是一樣的.因為RIPEMD的設計者們根本就沒有真正設計256和320位這兩種标準,他們隻是在128位和160位的基礎上,修改了初始參數和s-box來達到輸出為256和320位的目的.是以,256位的強度和128相當,而320位的強度和160位相當.

RIPEMD-320 digest algorithm

CONFIG_CRYPTO_RMD320

RIPEMD-320在本質上和RIPEMD-160是一樣的.因為RIPEMD的設計者們根本就沒有真正設計256和320位這兩種标準,他們隻是在128位和160位的基礎上,修改了初始參數和s-box來達到輸出為256和320位的目的.是以,256位的強度和128相當,而320位的強度和160位相當.

SHA1 digest algorithm

CONFIG_CRYPTO_SHA1

目前使用最廣泛的SHA-1(FIPS 180-1/DFIPS 180-2)160位摘要算法是SHA家族中的一員,在許多安全協定中廣為使用(TLS,SSL,PGP,SSH,S/MIME,IPsec等).SHA-1曾被視為是MD5的後繼者,但由于出現了針對SHA-1的理論上破解的方法(不等于實踐中被破解),有些人已經開始改用其它的替代算法(例如SHA-3).

SHA1 digest algorithm (SSSE3/AVX)

CONFIG_CRYPTO_SHA1_SSSE3

使用SSSE3/AVX指令集加速SHA-1的計算.如果你的CPU支援SSSE3/AVX指令集,建議選"Y".

SHA256 digest algorithm (SSSE3/AVX/AVX2)

CONFIG_CRYPTO_SHA256_SSSE3

使用SSSE3/AVX/AVX2指令集加速SHA-256的計算.

SHA512 digest algorithm (SSSE3/AVX/AVX2)

CONFIG_CRYPTO_SHA512_SSSE3

使用SSSE3/AVX/AVX2指令集加速SHA-512的計算.

SHA224 and SHA256 digest algorithm

CONFIG_CRYPTO_SHA256

SHA-224和SHA-256摘要算法,速度較SHA1稍慢,都屬于"SHA-2"系列,目前尚無已知的有效攻擊方法.但并未被廣泛使用.

SHA384 and SHA512 digest algorithms

CONFIG_CRYPTO_SHA512

SHA-384和SHA-512摘要算法,速度大約隻有SHA1的40-50%,都屬于"SHA-2"系列,目前尚無已知的有效攻擊方法.但并未被廣泛使用.

Tiger digest algorithms

CONFIG_CRYPTO_TGR192

Tiger号稱是最快的雜湊演算法,專門為64位機器做了優化.

Whirlpool digest algorithms

CONFIG_CRYPTO_WP512

Whirlpool是一種512位的摘要算法,利用了已有的AES分組密碼算法構造Hash函數,擁有相當高的安全性,已經被列入了ISO标準,目前最新版本為3.0(2003年釋出).

GHASH digest algorithm (CLMUL-NI accelerated)

CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL

使用CPU的CLMUL指令集(包含在AES指令集中)加速GHASH摘要算法.

AES cipher algorithms

CONFIG_CRYPTO_AES

AES(FIPS-197)又稱"Rijndael",是目前最佳的對稱加密算法,快速且節省記憶體,可以使用128/192/256位密鑰,是目前使用最廣泛的對稱加密算法.

AES cipher algorithms (x86_64)

CONFIG_CRYPTO_AES_X86_64

針對x86_64架構的AES實作.

AES cipher algorithms (AES-NI)

CONFIG_CRYPTO_AES_NI_INTEL

使用AES指令集加速AES的計算.如果你的CPU支援AES指令集(grep aes /proc/cpuinfo),建議選"Y".

Anubis cipher algorithm

CONFIG_CRYPTO_ANUBIS

Anubis是一種分組密碼算法.分組長度為128位,密鑰長度可變(最低128位),圈數可變(最低12圈).是歐洲于2000年1月1日啟動的NESSIE計劃17個候選分組加密算法之一.

ARC4 cipher algorithm

CONFIG_CRYPTO_ARC4

一種脆弱的流對稱加密算法,僅用于已經被淘汰的WEP.

Blowfish cipher algorithm

CONFIG_CRYPTO_BLOWFISH

Blowfish對稱加密算法,一種又老又慢的對稱加密算法.

Blowfish cipher algorithm (x86_64)

CONFIG_CRYPTO_BLOWFISH_X86_64

針對x86_64架構的Blowfish實作

Blowfish cipher algorithm (x86_64/AVX2)

CONFIG_CRYPTO_BLOWFISH_AVX2_X86_64

使用AVX2指令集加速Blowfish的計算.

Camellia cipher algorithms

CONFIG_CRYPTO_CAMELLIA

Camellia是歐盟NESSIE項目的標明算法,也是日本CRYPTREC項目的推薦算法.可以使用128/192/256位密鑰,具有與AES同等級的安全強度及運算速度.

Camellia cipher algorithm (x86_64)

CONFIG_CRYPTO_CAMELLIA_X86_64

針對x86_64架構的Camellia實作

Camellia cipher algorithm (x86_64/AES-NI/AVX)

CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64

使用AES指令集/AVX指令集加速Camellia的計算.

Camellia cipher algorithm (x86_64/AES-NI/AVX2)

CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64

使用AES指令集/AVX2指令集加速Camellia的計算.

CAST5 (CAST-128) cipher algorithm

CONFIG_CRYPTO_CAST5

老舊的CAST5(CAST-128)對稱加密算法

CAST5 (CAST-128) cipher algorithm (x86_64/AVX)

CONFIG_CRYPTO_CAST5_AVX_X86_64

使用AVX指令集加速CAST5的計算.

CAST6 (CAST-256) cipher algorithm

CONFIG_CRYPTO_CAST6

老舊的CAST6(CAST-256)對稱加密算法

CAST6 (CAST-256) cipher algorithm (x86_64/AVX)

CONFIG_CRYPTO_CAST6_AVX_X86_64

使用AVX指令集加速CAST6的計算.

DES and Triple DES EDE cipher algorithms

CONFIG_CRYPTO_DES

老舊的DES和三重DES對稱加密算法.

FCrypt cipher algorithm

CONFIG_CRYPTO_FCRYPT

FCrypt對稱加密算法僅用于CONFIG_AF_RXRPC

Khazad cipher algorithm

CONFIG_CRYPTO_KHAZAD

Khazad是一種最終進入NESSIE決賽的對稱加密算法,專為64位CPU設計,支援128位密鑰.

Salsa20 stream cipher algorithm

CONFIG_CRYPTO_SALSA20

Salsa20是一種流密碼算法,也是eSTREAM工程最終勝選算法之一.

Salsa20 stream cipher algorithm (x86_64)

CONFIG_CRYPTO_SALSA20_X86_64

針對x86_64架構的Salsa20實作

SEED cipher algorithm

CONFIG_CRYPTO_SEED

SEED(RFC4269)對稱分組加密算法,采用128位密鑰,是南韓的國家标準.

Serpent cipher algorithm

CONFIG_CRYPTO_SERPENT

Serpent對稱加密算法曾經是AES的最終5個候選算法之一,因為速度較Rijndael慢而最終得票數次之.目前尚未發現針對Serpent的有效攻擊,是以被認為是一種強安全算法(甚至被認為比Rijndael更安全).

Serpent cipher algorithm (x86_64/SSE2)

CONFIG_CRYPTO_SERPENT_SSE2_X86_64

使用SSE2指令集加速Serpent的計算.

Serpent cipher algorithm (x86_64/AVX)

CONFIG_CRYPTO_SERPENT_AVX_X86_64

使用AVX指令集加速Serpent的計算.

Serpent cipher algorithm (x86_64/AVX2)

CONFIG_CRYPTO_SERPENT_AVX2_X86_64

使用AVX2指令集加速Serpent的計算.

TEA, XTEA and XETA cipher algorithms

CONFIG_CRYPTO_TEA

較弱的幾種對稱加密算法

Twofish cipher algorithm

CONFIG_CRYPTO_TWOFISH

Twofish是派生自Blowfish的對稱加密算法,曾經是AES的最終5個候選算法之一,最終得票數第三.

Twofish cipher algorithm (x86_64)

CONFIG_CRYPTO_TWOFISH_X86_64

針對x86_64架構的Twofish實作

Twofish cipher algorithm (x86_64, 3-way parallel)

CONFIG_CRYPTO_TWOFISH_X86_64_3WAY

針對x86_64架構的三路并行Twofish實作.能夠充分利用亂序執行CPU的指令周期.

Twofish cipher algorithm (x86_64/AVX)

CONFIG_CRYPTO_TWOFISH_AVX_X86_64

使用AVX指令集加速Twofish的計算.

Twofish cipher algorithm (x86_64/AVX2)

CONFIG_CRYPTO_TWOFISH_AVX2_X86_64

使用AVX2指令集加速Twofish的計算.

Deflate compression algorithm

CONFIG_CRYPTO_DEFLATE

Deflate(RFC1951)無損資料壓縮算法.當在IPSec中使用IPCOMP協定時才需要.

Zlib compression algorithm

CONFIG_CRYPTO_ZLIB

zlib無損資料壓縮算法是一種事實上的業界标準.被廣泛應用.

LZO compression algorithm

CONFIG_CRYPTO_LZO

LZO是緻力于解壓速度的一種無損資料壓縮算法.

Pseudo Random Number Generation for Cryptographic modules

CONFIG_CRYPTO_ANSI_CPRNG

符合ANSI(美國國家标準學會)X9.31-1998附錄A.2.4所描述的僞随機數發生器(基于3DES).這是一種較老的算法,生成的随機數品質不高.

NIST SP800-90A DRBG

CONFIG_CRYPTO_DRBG_MENU

符合NIST(美國國家标準技術局)SP800-90A标準的僞随機數發生器(DRBG).SP800-90A是美國政府FIPS 140-2安全認證強制推廣的加密标準,其中包含了生成強随機數的算法.這是一種較新的算法,生成的随機數品質較高.建議選"Y".選中此項後,還需選中至少一個子項.

Enable Hash DRBG

CONFIG_CRYPTO_DRBG_HASH

符合 NIST SP800-90A 标準的 Hash DRBG 變種算法(基于SHA256).建議選"Y".

Enable CTR DRBG

CONFIG_CRYPTO_DRBG_CTR

符合 NIST SP800-90A 标準的 CTR DRBG 變種算法(基于AES).建議選"Y".

Jitterentropy Non-Deterministic Random Number Generator

CONFIG_CRYPTO_JITTERENTROPY

JitterEntropy僞随機數生成器以CPU執行時間的抖動作為熵源,這是一種高品質的熵源,可作為其他随機數生成器(/dev/urandom)的種子.這樣就無需在系統啟動時從磁盤上加載已經儲存的種子檔案了.

User-space interface for hash algorithms

CONFIG_CRYPTO_USER_API_HASH

雜湊演算法的使用者空間接口.不确定的選"N".

User-space interface for symmetric key cipher algorithms

CONFIG_CRYPTO_USER_API_SKCIPHER

對稱加密算法的使用者空間接口.不确定的選"N".

User-space interface for random number generator algorithms

CONFIG_CRYPTO_USER_API_RNG

随機數發生器算法的使用者空間接口.不确定的選"N".

User-space interface for AEAD cipher algorithms

CONFIG_CRYPTO_USER_API_AEAD

AEAD(Authenticated-Encryption with Addtional Data)加密算法的使用者空間接口.AEAD是目前最好的加密模式.不确定的選"N".

Hardware crypto devices

CONFIG_CRYPTO_HW

硬體加密裝置支援

Support for VIA PadLock ACE

CONFIG_CRYPTO_DEV_PADLOCK

帶有PadLock技術的VIA系列處理器支援

PadLock driver for AES algorithm

CONFIG_CRYPTO_DEV_PADLOCK_AES

利用PadLock技術加速AES運算.VIA C3及以上的CPU都支援.

PadLock driver for SHA1 and SHA256 algorithms

CONFIG_CRYPTO_DEV_PADLOCK_SHA

利用PadLock技術加速SHA1和SHA256運算.VIA C7及以上的CPU都支援.

Support for AMD Cryptographic Coprocessor

CONFIG_CRYPTO_DEV_CCP

AMD密碼協處理器支援.

Support for Intel(R) DH895xCC

CONFIG_CRYPTO_DEV_QAT_DH895xCC

支援QuickAssist技術的Intel DH895xcc晶片.Skylake的伺服器平台的部分CPU型号支援QuickAssist技術.

Support for Intel(R) DH895xCC Virtual Function

CONFIG_CRYPTO_DEV_QAT_DH895xCCVF

支援QuickAssist技術的Intel DH895xcc晶片.Skylake的伺服器平台的部分CPU型号支援QuickAssist技術.

Asymmetric (public-key cryptographic) key type

CONFIG_ASYMMETRIC_KEY_TYPE

非對稱加密算法(公鑰加密算法)

Asymmetric public-key crypto algorithm subtype

CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE

非對稱公鑰加密算法子類型.如果需要生成或者校驗簽名,那就還必須配合雜湊演算法一起使用.

RSA public-key algorithm

CONFIG_PUBLIC_KEY_ALGO_RSA

RSA算法(PKCS#1, RFC3447)支援

X.509 certificate parser

CONFIG_X509_CERTIFICATE_PARSER

X.509證書解析支援
Certificates for signature checking
用于檢查簽名有效性的證書:(1)用于檢查核心子產品的簽名,(2)用于檢查全局密鑰環(keyring)中的密鑰的可靠性.

Virtualization

虛拟化支援

僅在将此核心用作主控端(host)的情況下才需要開啟這裡的子項

Kernel-based Virtual Machine (KVM) support

CONFIG_KVM

KVM(核心虛拟機)是一種基于Linux核心的全虛拟化技術,需要CPU支援x86硬體虛拟化技術(Intel VT或AMD-V).開啟此項後,将可以通過字元檔案"/dev/kvm"使用虛拟機.

KVM for Intel processors support

CONFIG_KVM_INTEL

Intel VT技術支援.也就是cpu-flags中有"vmx"标記.

KVM for AMD processors support

CONFIG_KVM_AMD

AMD-V技術支援.也就是cpu-flags中有"svm"标記.

Audit KVM MMU

CONFIG_KVM_MMU_AUDIT

添加一個"kvm.mmu_audit"核心參數,用于控制是否允許在運作時對KVM MMU進行審計."0"表示禁止審計,"1"表示允許審計.主要用于調試目的.不确定的選"N".

KVM legacy PCI device assignment support

CONFIG_KVM_DEVICE_ASSIGNMENT

通過KVM支援傳統的PCI裝置配置設定.核心目前還通過VFIO(CONFIG_VFIO)支援一個全功能的使用者空間裝置驅動架構,可以取代這裡的功能.不确定的選"N".

Host kernel accelerator for virtio net

CONFIG_VHOST_NET

在主控端核心中開啟此項後,可以加速客戶機的網絡操作速度(客戶機核心需要加載virtio_net子產品(CONFIG_VIRTIO_NET)).建議選"Y".

VHOST_SCSI TCM fabric driver

CONFIG_VHOST_SCSI

Say M here to enable the vhost_scsi TCM fabric module for use with virtio-scsi guests.看不懂的選"N".

Cross-endian support for vhost

CONFIG_VHOST_CROSS_ENDIAN_LEGACY

允許主控端支援不同大小端順序的客戶機中老舊的virtio裝置.僅在主控端與客戶機的大小端順序不一緻的場合(ppc64/arm64)才有意義.不确定的選"N".

Library routines

庫子程式

子選項可以全不選,核心中若有其他部分依賴它,會自動選上.使用核心樹外的子產品時可能需要手動選擇.

CRC-CCITT functions

CONFIG_CRC_CCITT

為核心樹外的子產品提供CRC-CCITT循環驗證算法支援.

CRC16 functions

CONFIG_CRC16

為核心樹外的子產品提供CRC16循環驗證算法支援.

CRC calculation for the T10 Data Integrity Field

CONFIG_CRC_T10DIF

為核心樹外的子產品提供CRC循環驗證算法支援.進而允許核心樹外的SCSI子產品利用T10/SCSI Data Integrity Field保障端到端的資料完整性.

CRC ITU-T V.41 functions

CONFIG_CRC_ITU_T

為核心樹外的子產品提供CRC ITU-T V.41循環驗證算法支援.

CRC32/CRC32c functions

CONFIG_CRC32

為核心樹外的子產品提供CRC32/CRC32c循環驗證算法支援.

CRC32 perform self test on init

CONFIG_CRC32_SELFTEST

在CRC32算法初始化的時候進行一個簡單的自我測試.不确定的選"N".
CRC32 implementation
選擇CRC32算法的實作方式.不确定的請保持預設值"Slice by 8 bytes",除非你知道自己在做什麼.

CRC7 functions

CONFIG_CRC7

為核心樹外的子產品提供CRC7循環驗證算法支援.

CRC32c (Castagnoli, et al) Cyclic Redundancy-Check

CONFIG_LIBCRC32C

為核心樹外的子產品提供CRC32c循環驗證算法支援.

CRC8 function

CONFIG_CRC8

為核心樹外的子產品提供CRC8循環驗證算法支援.

XZ decompression support

CONFIG_XZ_DEC

為核心樹外的子產品提供XZ解壓支援.詳見"Documentation/xz.txt"文檔.子項是針對不同平台的"BCJ filter decoder".按需選擇即可.

XZ decompressor tester

CONFIG_XZ_DEC_TEST

XZ解壓測試程式.不确定的選"N".

Averaging functions

CONFIG_AVERAGE

為核心樹外的子產品提供averaging函數支援

CORDIC algorithm

CONFIG_CORDIC

為核心樹外的子產品提供CORDIC算法支援

JEDEC DDR data

CONFIG_DDR

為核心樹外的DDR SDRAM記憶體控制器驅動提供擷取JEDEC資料支援.

Select compiled-in fonts

CONFIG_FONTS

選擇内嵌到核心中的字型(點陣字庫,僅包含ASCII字元和擴充ASCII字元,共256個).選"N"表示内嵌自動選擇的預設字型,選"Y"表示可以手動選擇内嵌的字型.[提示]可到drivers/video/console目錄下找到相應的"font_*.c"檔案,将其中的"0"全部替換為空格,即可看到點陣字元.

VGA 8x8 font

CONFIG_FONT_8x8

這是傳統上高分辨率(高于80x50)下使用的字型.因為點陣太小,是以顯示的字型品質非常低劣.

VGA 8x16 font

CONFIG_FONT_8x16

這是傳統上的标準字型(用于80x25),也是預設内嵌的字型,最為常見.
{其它字型省略}

console 16x16 CJK font ( cover BMP )

CONFIG_FONT_16x16_CJK

CJKTTY開源項目提供的中文字型支援(僅支援UTF-8字元)更新檔.如果你希望能夠直接在控制台上顯示中文,那麼請将此項選"Y",并同時将其他字型選項全部選"N".如何改造 Linux 虛拟終端顯示中文一文講解了此更新檔的原理.
Linux-4.4-x86_64 核心配置選項簡介(詳細說明篇)