1. 程式人生 > >配置核心(make menuconfig)詳述

配置核心(make menuconfig)詳述

1、General setup
程式碼成熟度選項,它又有子項:  
1.1、prompt for development and/or incomplete code/drivers  
該選項是對那些還在測試階段的程式碼,驅動模組等的支援。一般應該選這個選項,除非你只是想使用 LINUX 中已經完全穩定的東西。但這樣有時對系統性能影響挺大。  
 
1.2、Cross-compiler tool prefix   
交叉編譯工具字首,例如:Cross-compiler tool prefix值為: (arm-linux-)  
 
1.3、Local version - append to kernel release
核心顯示的版本資訊,填入 64字元以內的字串,你在這裡填上的字元口串可以用uname -a命令看到。
 
1.4、 Automatically append version information to the version string
自動在版本字串後面新增版本資訊,編譯時需要有perl以及git倉庫支援
 
1.5、Kernel compression mode (Gzip) --->
有四個選項,這個選項是說核心映象要用的壓縮模式,回車一下,可以看到gzip,bzip2,lzma,lxo,一般可以按預設的gzip,如果要用bzip2,lzma,lxo要先裝上支援
 
1.6、Support for paging of anonymous memory (swap)
 使用交換分割槽或交換檔案來做為虛擬記憶體,一定要選上。
 
1.7、System V IPC   
表示系統的程序間通訊Inter Process Communication,它用於處理器在程式之間同步和交換資訊,如果不選這項,很多程式執行不起來,必選。
 
1.8、POSIX Message Queues    
POSIX標準的訊息佇列,它同樣是一種IPC。建議你最好將它選上
 
1.9、BSD Process Accounting       
使用者程序訪問核心時將程序資訊寫入檔案中。通常主要包括程序的建立時間/建立者/記憶體佔用等資訊。建議最好選上。
    BSD Process Accounting version 3 file format
使用新的第三版檔案格式,可以包含每個程序的PID和其父程序的PID,但是不相容老版本的檔案格式。
 
1.11、Export task/process statistics through netlink (EXPERIMENTAL)
通過netlink介面向用戶空間匯出任務/程序的統計資訊,與BSD Process Accounting的不同之處在於這些統計資訊在整個任務/程序生存期都是可用的
    Enable per-task delay accounting (EXPERIMENTAL)    
    在統計資訊中包含程序等候系統資源(cpu,IO同步,記憶體交換等)所花費的時間
    Enable extended accounting over taskstats (EXPERIMENTAL)
    在統計資訊中包含擴充套件程序所花費的時間
    
 1.12、Auditing support
審記支援,用於和核心的某些子模組同時工作,例如Security Enhanced Linux。只有選擇此項及它的子項,才能呼叫有關審記的系統呼叫。
 
1.13、Enable system-call auditing support
 支援對系統呼叫的審計
 
1.14、IRQ subsystem  --->   
中斷子系統
    Support sparse irq numbering   
    <=== 支援稀有的中斷編號,關閉
 
1.15、RCU Subsystem  --->    
非對稱讀寫鎖系統 是一種高效能的kernel 鎖機制,適用於讀多寫少環境
RCU Implementation (Tree-based hierarchical RCU)  --->
RCU 實現機制 Tree(X) Tree-based hierarchical RCU 基本數按等級劃分
Enable tracing for RCU
啟用跟蹤
(32) Tree-based hierarchical RCU fanout value
基本數按等級劃分分列值
Disable tree-based hierarchical RCU auto-balancing
 
1.16、< > Kernel .config support
這個選項允許.config檔案(即編譯LINUX時的配置檔案)儲存在核心當中
 
1.17、(17) Kernel log buffer size (16 => 64KB, 17 => 128KB)
 
1.18、[ ] Control Group support  --->     
    cgroups 支援, 文件資料 ,cgroups 主要作用是給程序分組,並可以動態調控程序組的CPU 佔用率。比如A 程序分到apple 組,給予20%CPU 佔用率,E 程序分easy 組,給予50%CPU 佔用率,最高100% 。我目前沒有此類應用場景,用到時會選擇將其編譯進去。
    CPU bandwidth provisioning for FAIR_GROUP_SCHED
     此選項允許使用者定義的CPU頻寬速率(限制)在公平的組排程執行的任務。組沒有限制設定被認為是無約束和執行沒有限制。
    Group scheduling for SCHED_RR/FIFO
      此功能可以讓您顯式地分配真實的CPU頻寬任務組。
 
1.19、-*- Namespaces support  --->  
名稱空間支援,允許伺服器為不同的使用者資訊提供不 同的使用者名稱空間服務
    [*]   UTS namespace      
    通用終端系統的名稱空間。它允許容器,比如Vservers利用UTS名稱空間來為不同的伺服器提供不同的UTS。如果不清楚,選N。
    [*]   IPC namespace   
    IPC名稱空間,不確定可以不選
    [*]   User namespace (EXPERIMENTAL)
    User名稱空間,不確定可以不選
    [*]   PID Namespaces   
    PID名稱空間,不確定可以不選
    [*]   Network namespace   
 
1.20、Automatic process group scheduling    自動程序組排程
 
1.21、[ ] enable deprecated sysfs features to support old userspace tools
 
1.22、-*- Kernel->user space relay support (formerly relayfs)   
在某些檔案系統上( 比如debugfs ) 提供從核心空間向用戶空間傳遞大量資料的介面,我目前沒有此類應用場景
 
1.23、   [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support    
用於在真正核心裝載前,做一些操作(俗稱兩階段啟動),比如載入module ,mount 一些非root 分割槽,提供災難恢復shell 環境等, 資料 ,我是期望直接從kernel image 直接啟動,所以沒選它
 
?1.24、Initramfs source file(s)    
initrd已經被initramfs取代,如果你不明白這是什麼意思,請保持空白
 
1.25、Optimize for size
這個選項將在GCC 命令後用 “-Os ” 代替 “-O2 ″引數,這樣可以得到更小的核心。沒必要選。選上了有時會產生錯誤的二進位制程式碼。
 
1.26、Enable full-sized data structures for core:在核心中使用全尺寸的資料結構.禁用它將使得某些核心的資料結構減小以節約記憶體,但是將會降低效能。
 
1.27、Enable futex support:快速使用者空間互斥體可以使執行緒序列化以避免競態條件,也提高了響應速度.禁用它將導致核心不能正確的執行基於glibc的程式。
 
1.28、Enable eventpoll support:支援事件輪循的系統呼叫。
 
1.29、Use full shmem filesystem:除非你在很少的記憶體且不使用交換記憶體時,才不要選擇這項。後面的這四項都是在編譯時記憶體中的對齊方式,0 表示
編譯器的預設方式。使用記憶體對齊能提高程式的執行速度,但是會增加程式對記憶體的使用量。核心也是一組程式呀。
    Enable VM event counters for /proc/vmstat:允許在/proc/vmstat中包含虛擬記憶體事件記數器。
    [*] Disable heap randomization
禁用隨機heap(heap堆是一個應用層的概念,即堆對CPU是不可見的,它的實現方式有多種,可以由OS實現,也可以由執行庫實現,如果你願意,你也可以在一個棧中來實現一個堆)
 
1.30、Choose SLAB allocator (SLAB)  --->
選擇記憶體分配管理器(強烈推薦使用SLUB)
 
1.31、[ ] Configure standard kernel features (for small systems)  --->  
這個選項可以讓核心的基本選項和設定無效或者扭曲。這是用於特定環境中的,它允許“非標準”核心。你要是選它,你一定要明白自己在幹什麼。這是為了編譯某 些特殊用途的核心使用的,例如引導盤系統。配置標準的核心特性(為小型系統)
    Enable 16-bit UID system calls:允許對UID系統呼叫進行過時的16-bit包裝。
    Sysctl syscall support  幾乎使用不到這一選項,不選它可以輕微使核心變小
    Include all symbols in kallsyms:在kallsyms中包含核心知道的所有符號,核心將會增大300K。
    Enable support for printk:允許核心向終端列印字元資訊,在需要診斷核心為什麼不能執行時選擇。
    BUG() support:顯示故障和失敗條件(BUG 和WARN),禁用它將可能導致隱含的錯誤被忽略。
    Enable ELF core dumps:記憶體轉儲支援,可以幫助除錯ELF格式的程式。
 
1.32、[*] Profiling support
不選剖面支援,用一個工具來掃描和提供計算機的剖面圖。支援系統評測(對於大多數使用者來說並不是必須的)
 
1.33、OProfile system profiling
OProfile評測和效能監控工具
 
1.35、[ ]   OProfile multiplexing support (EXPERIMENTAL)   
 
1.34、Kprobes
除錯核心除非開發人員,否則不選
 
?1.35、Optimize trace point call sites   
 
1.36、GCOV-based kernel profiling  
        [ ] Enable gcov-based kernel profiling 不選
 
 
 
 
2、Enable loadable module support   
2.1 Forced module loading  
允許強制載入模組
 
2.2 Module unloading   
允許解除安裝已經載入的模組
 
2.3 Forced module unloading
允許強制解除安裝正在使用中的模組(比較危險)這個選項允許你強行卸除模組,即使核心認為這不安全。核心將會立即移除模組,而不管是否有人在使用它(用 rmmod -f 命令)。這主要是針對開發者和衝動的使用者提供的功能。如果不清楚,選N。
 
2.4 Module versioning support
有時候,你需要編譯模組。選這項會新增一些版本資訊,來給編譯的模組提供獨立的特性,以使不同的核心在使用同一模組時區別於它原有的模組。這有時可能會有點用。如果不清楚,選N。允許使用其他核心版本的模組(可能會出問題)
 
2.5 Source checksum for all modules
為所有的模組校驗原始碼,如果你不是自己編寫核心模組就不需要它這個功能是為了防止你在編譯模組時不小心更改了核心模組的原始碼但忘記更改版本號而造成版本衝突。如果不清楚,選N。
 
 
 
 
 
 
 
3、Enable the block layer  
     塊裝置支援,使用硬碟/USB/SCSI裝置者必選這選項使得塊裝置可以從核心移除。如果不選,那麼 blockdev 檔案將不可用,一些檔案系統比如 ext3 將不可用。這個選項會禁止 SCSI 字元裝置和 USB 儲存裝置,如果它們使用不同的塊裝置。選Y,除非你知道你不需要掛載硬碟和其他類似的裝置。不過此項無可選項
 
3.1 Support for large (2TB+) block devices and files
僅在使用大於2TB的塊裝置時需要
 
3.2 Block layer SG support v4
通用scsi塊裝置第4版支援
 
3.3 Block layer data integrity support  
塊裝置資料完整性支援
 
?3.4 Block layer bio throttling support  
可用於限制裝置的IO速度
 
3.5 Partition Types
    Advanced partition selection
    如果你想要在linux上使用一個在其他的介質上執行著作業系統的硬碟時,選擇Y,如果你不確定時可以選N
 
3.6 IO Schedulers
    IO排程器I/O是輸入輸出頻寬控制,主要針對硬碟,是核心的必須的東西。這裡提供了三個IO排程器。
     Deadline I/O scheduler  
    使用輪詢的排程器,簡潔小巧,提供了最小的讀取延遲和尚佳的吞吐量,特別適合於讀取較多的環境(比如資料庫)Deadline I/O排程器簡單而又緊密,在效能上和搶先式排程器不相上下,在一些資料調入時工作得更好。至於在單程序I/O磁碟排程上,它的工作方式幾乎和搶先式排程器相同,因此也是一個好的選擇。
 
    CFQ I/O scheduler
    使用QoS策略為所有任務分配等量的頻寬,避免程序被餓死並實現了較低的延遲,可以認為是上述兩種排程器的折中.適用於有大量程序的多使用者系統CFQ排程器嘗試為所有程序提供相同的頻寬。它將提供平等的工作環境,對於桌面系統很合適。
 
    Default I/O scheduler (CFQ)
    預設IO排程器我這樣理解上面三個IO排程器:
    搶先式是傳統的,它的原理是一有響應,就優先考慮排程。如果你的硬碟此時在執行一項工作,它也會暫停下來先響應使用者。    期限式則是:所有的工作都有最終期限,在這之前必須完成。當用戶有響應時,它會根據自己的工作能否完成,來決定是否響應使用者。    CFQ則是平均分配資源,不管你的響應多急,也不管它的工作量是多少,它都是平均分配,一視同仁的。
    ( *) Deadline     
    (  ) CFQ   
    (  ) No-op
 
 
 
 
 
 
 
 
4、Processor type and features (處理器型別及特點)
?4.1 DMA memory allocation support
該選項允許小於32位地址的裝置使用前16MB的地址空間,如果不缺定的話,選Y
 
4.2 Symmetric multi-processing support
    對稱多處理器支援,如果你有多個CPU或者使用的是多核CPU就選上.此時"Enhanced Real Time Clock Support"選項必須開啟,"Advanced Power Management"選項必須關閉如果你選N,核心將會在單個或者多個CPU的機器上執行,但是隻會使用一個CPU。如果你選Y,核心可以在很多(但不是所有)單CPU的機器上執行,在這樣的機器,你選N會使核心執行得更快。    注意如果你選Y,然後在Processor family選項中選擇“586〃 or “Pentium” ,核心將不能執行在486構架的機器上。同樣的,多CPU的運行於PPro構架上的核心也無法在 Pentium 系列的板上執行。
 
4.3 Enable MPS table
MPS多處理器規範,不選
 
4.4 Support for big SMP systems with more than 8 CPUs
預設情況下為不選
 
4.5 Support for extended (non-PC) x86 platforms
如果選的話,你將可以選擇支援如下32位X86的平臺。
AMD Elan,NUMAQ (IBM/Sequent),RDC R-321x SoC,SGI 320/540 (Visual Workstation),STA2X11-based (e.g. Northville),Summit/EXA (IBM x440),Unisys ES7000 IA32 series
Moorestown MID devices如果你有這樣的系統,或者你想要構建一個這樣的通用的分散式,選擇Y,否則選擇N
 
 
 
?4.6 intel MID platform support
    Medfield MID platform  
 
4.7 RDC R-321x SoC
嵌入式相關,不選
 
4.8 Support non-standard 32-bit SMP architectures
非標準的32位SMP結構支援,不選
 
4.9 Eurobraille/Iris poweroff module
來自urobraille的iris機器不支援APM和ACPI來適時關閉自己,此模組在核心中起到這一作用。這是用於urobraille的iris機子,不確定的話,不選。
 
4.10 Single-depth WCHAN output
跟 proc 相關的最好不要關,選Y
 
?4.11 paravirt-ops debugging
 
4.12 Memtest
這一選項使核心增加一個“memtest”(核心測試)的引數,這將允許設定memtest。如果你不知道如何回答這個問題,選擇N
 
4.13 Processor family (Pentium-Pro)處理器系列,請按照你實際使用的CPU選擇這裡是處理器的型別。這裡的資訊主要目的是用來優化。為了讓核心能夠在所有X86構架的CPU上執行(雖然不是 最佳速度),在這你可以選386。核心不會執行在比你選的構架還要老的機器上。比如,你選了Pentium構架來優化核心,它將不能在486構架上執行。如果你不清楚,選386。( ) 386 ( ) 486( ) 586/K5/5x86/6x86/6x86MX ( ) Pentium-Classic( ) Pentium-MMX(系統預設選項) Pentium-Pro ( ) Pentium-II/Celeron(pre-Coppermine)( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon ( ) Pentium M( ) Pentium-4/Celeron(P4-based)/Pentium-4 M/older Xeon ( ) K6/K6-II/K6-III( ) Athlon/Duron/K7( ) Opteron/Athlon64/Hammer/K8( ) Crusoe( ) Efficeon( ) Winchip-C6( ) Winchip-2/Winchip-2A/Winchip-3( ) GeodeGX1( ) Geode GX/LX( ) CyrixIII/VIA-C3( ) VIA C3-2 (Nehemiah)( ) VIA C7 ( ) Core 2/newer Xeon( ) Intel Atom
 
?4.14 Generic x86 support    這一選項針對x86系列的CPU使用更多的常規優化。如果你在上面一項選的是i386、i586之類的才選這個通用x86支援,如果你的CPU能夠在上述"Processor family"中找到就別選除了對上面你選擇的X86 CPU進行優化,它還對更多型別X86 CPU的進行優化。這將會使核心在其他的X86 CPU上執行得更好。這個選項提供了對X86系列CPU最大的相容性,用來支援一些少見的x86構架的CPU。如果你的CPU能夠在上面的列表中找到,就裡就不用選了。
 
4.15 PentiumPro memory ordering errata workaround
    舊的PentiumPro多處理器系統有勘誤能力,可能會導致在少數的情況下,違反x86的排序標準記憶體操作。啟用此選項將嘗試解決一些(但不是全部)此類問題,但將以spinlock和記憶體為代價。
 
4.16 HPET Timer Support(HPET時鐘支援)
    允許核心使用HPET。HPET是替代8254晶片的新一代定時器,i686及以上級別的主機板都支援,可以安全的選上。但是,HEPT只會在支援它的平臺和BIOS上執行。如果不支援,8254將會啟用。選N,將繼續使用8254時鐘。
 
4.17 Enable DMI scanning  
選擇Y除非你已經證明當進入DMI時不影響你的配置。PNP BIOS程式碼需要這一項的支援。
 
4.18 (8) Maximum number of CPUs
支援的最大CPU數,每增加一個核心將增加8K體積
 
4.19 SMT (Hyperthreading) scheduler support   
支援Intel的超執行緒(HT)技術超執行緒排程器在某些情況下將會對 Intel Pentium 4 HT系列有較好的支援。如果你不清楚,選N
 
4.20 Multi-core scheduler support    
針對多核CPU進行排程策略優化多核排程機制支援,雙核的CPU要選。多核心排程在某些情況下將會對多核的CPU系列有較好的支援。如果你不清楚,選N
 
4.21 Fine granularity task level IRQ time accounting
如果不確定的話,選N,預設為不選。
 
4.22 Preemption Model (Voluntary Kernel Preemption (Desktop))    核心搶佔模式一些優先順序很高的程式可以先讓一些低優先順序的程式執行,即使這些程式是在核心態下執行。從而減少核心潛伏期,提高系統的響應。當然在一些特殊的點的核心是不可搶先的,比如核心中的排程程式自身在執行時就是不可被搶先的。這個特性可以提高桌面系統、實時系統的效能。
    No Forced Preemption (Server)  
    適合伺服器環境的禁止核心搶佔    這是傳統的LINUX搶先式模型,針對於高吞吐量設計。它同樣在很多時候會提供很好的響應,但是也可能會有較長的延遲。如果你是建立伺服器或者用於科學運 算,選這項,或者你想要最大化核心的原始運算能力,而不理會排程上的延遲。
    (預設選項) Voluntary Kernel Preemption (Desktop)
    適合普通桌面環境的自願核心搶佔    這個選項通過向核心新增更多的“清晰搶先點”來減少核心延遲。這些新的搶先點以降低吞吐量的代價,來降低核心的最大延遲,提供更快的應用程式響應。這通過 允許低優先順序的程序自動搶先來響應事件,即使程序在核心中進行系統呼叫。這使得應用程式執行得更“流暢”,即使系統已經是高負荷運轉。如果你是為桌面系統編譯核心,選這項。
    Preemptible Kernel (Low-Latency Desktop)
    適合執行實時程式的主動核心搶佔    這個選項通過使所有核心程式碼(非致命部分)編譯為“可搶先”來降低核心延遲。這通過允許低優先順序程序進行強制搶先來響應事件,即使這些程序正在進行系統呼叫或者未達到正常的“搶先點”。這使得應用程式執行得更加“流暢”即使系統已 經是高負荷運轉。代價是吞吐量降低,核心執行開銷增大。選這項如果你是為桌面或者嵌入式系統編譯核心,需要非常低的延遲。    如果你要最快的響應,選第三項。我認為萬物是平衡的,低延遲意味著系統執行不穩定,因為過多來響應使用者的要求,所以我選第二個。
 
4.23  Reroute for broken boot IRQs
防止同時收到多個boot IRQ ( 中斷 ) 時,系統混亂
 
?4.24 Machine Check / overheating reporting   
讓CPU 檢測到系統故障時通知核心, 以便核心採取相應的措施( 如過熱關機等)
    Intel MCE features
    AMD MCE features
    Support for old Pentium 5 / WinChip machine checks
 
4.25 Machine check injector support
    讓CPU檢測到系統故障時通知核心,以便核心採取相應的措施(如過熱關機等)(不明白此項與上一項的區別,原來的配置中是做為模組加入核心的)
 
?4.26 Enable VM86 support
這一選項用於支援在像DOSEMU一樣的程式在x86的處理器上執行16位的legacy程式碼。也可能像XFree86這樣的軟體通過BIOS初始化音效卡的時候會用到。
 
4.27 Toshiba Laptop support
東芝筆記本模組支援,不選
 
4.28 Dell laptop support
Dell筆記本模組支援,不選
 
4.29 Enable X86 board specific fixups for reboot
修正某些舊x86主機板的重起bug,這種主機板基本絕種了,我認為可以不選擇這一項
 
4.30 dev/cpu/microcode - microcode support
    是否支援Intel IA32架構的CPU。這個選項將讓你可以更新Intel IA32系列處理器的微程式碼,顯然你需要到網上去下載最新的程式碼,LINUX不提供這些程式碼。當然你還必須在檔案系統選項中選擇/dev file system support才能正常的使用它。如果你把它譯為模組 ,它將是 microcode。    IA32主要用於高於4GB的記憶體。詳見下面的“高記憶體選項”。使用不隨Linux核心發行的IA32微程式碼,你必需有IA32微程式碼二進位制檔案,僅對Intel的CPU有效。
    Intel microcode patch loading support   
    AMD microcode patch loading support
 
4.31 /dev/cpu/*/msr - Model-specific register support
    是否開啟CPU特殊功能暫存器的功能。這個選項桌面使用者一般用不到,它主要用在Intel的嵌入式CPU中的,這個暫存器的作用也依賴與不同的CPU型別而有所不同,一般可以用來改變一些CPU原有物理結構的用途,但不同的CPU用途差別也很大。在多cpu系統中讓特權CPU訪問x86的MSR暫存器。
 
4.32 /dev/cpu/*/cpuid - CPU information support
    是否開啟記錄CPU相關資訊功能。這會在/dev/cpu中建立一系列的裝置檔案,用以讓過程去訪問指定的CPU。能從/dev/cpu/x/cpuid獲得CPU的唯一識別符號(CPUID)。
 
4.33 High Memory Support (4GB)  
    LINUX能夠在X86系統中使用64GB的實體記憶體。但是,32位地址的X86處理器只能支援到4GB大小的記憶體。這意味著,如果你有大於4GB的實體記憶體,並非都能被核心“永久對映”。這些非永久對映記憶體就稱為“高階記憶體”。    如果你編譯的核心永遠都不會執行在高於1G記憶體的機器上,選OFF(預設選項,適合大多數人)。這將會產生一個“3GB/1GB”的記憶體空間劃分,3GB 虛擬記憶體被核心對映以便每個處理器能夠“看到”3GB的虛擬記憶體空間,這樣仍然能夠保持4GB的虛擬記憶體空間被核心使用,更多的實體記憶體能夠被永久對映。    如果你有1GB-4GB之間的實體記憶體,選4GB選項。如果超過4GB,那麼選擇64GB。這將開啟 Intel 的實體地址延伸模式(PAE)。PAE將在IA32處理器上執行3個層次的記憶體頁面。PAE是被LINUX完全支援的,現在的Intel處理器 (Pentium Pro 和更高階的)都能執行PAE模式。注意:如果你選64GB,那麼在不支援PAE的CPU上核心將無法啟動。     你機器上的記憶體能夠被自動探測到,或者你可以用類似於“mem=256M”的引數強制給核心指定記憶體大小。      4GB 選這項如果你用的是32位的處理器,記憶體在1-4GB之間。    64GB 選這項如果你用的是32位的處理器,記憶體大於4GB。
    ( ) off    (X) 4GB    ( ) 64GB
 
4.34 Memory model (Flat Memory)  
    一般選"Flat Memory",其他選項涉及記憶體熱插拔(X) Flat Memory (平坦記憶體模式)
    這個選項允許你改變核心在內部管理記憶體的一些方式。大多數使用者在這隻會有一個選項:Flat Memory。這是普遍的和正確的選項。一些使用者的機器有更高階的特性,比如 NUMA 和記憶體熱拔插,那將會有不同的選項。Discontiguous Memory(非接觸式記憶體模式)是一個更成熟、更好的測試系統。但是對於記憶體熱拔插系統不太合適,會被“Sparse Memory”代替。如果你不清楚“Sparse Memory”和“Discontiguous Memory”的區別,選後者。如果不清楚,就選Flat Memory。
    Sparse Memory(稀疏記憶體模式)
    這對某些系統是唯一選項,包括記憶體熱拔插系統。這正常。對於其他系統,這將會被Discontiguous Memory選項代替。這個選項提供潛在的更好的特性,可以降低程式碼複雜度,但是它是新的模式,需要更多的測試。如果不清楚,選擇“Discontiguous Memory” 或 “Flat Memory”。
 
4.35 Allow for memory compaction
 
4.36 Page migration (選擇Y)
    Enable KSM for page merging   
    (4096) Low address space to protect from user allocation
 
4.37 Enable recovery from hardware memory errors
選擇Y
 
4.38 Transparent Hugepage Support   
    Transparent Hugepage Support sysfs defaults
    1.always  2.madvise(預設選項)
 
4.39 Cross Memory Support
4.40 Enable cleancache driver to cache clean pages if tmem is present
4.41 Enable frontswap to cache swap pages if tmem is present(這三部分不太瞭解)
 
4.42 Allocate 3rd-level pagetables from highmem
    在記憶體很多 ( 大於 4G) 的機器上將使用者空間的頁表放到高位記憶體區 , 以節約寶貴的低端記憶體 。
 
4.43 Check for low memory corruption
    低位記憶體髒資料檢查,預設是每60 秒檢查一次。一般這種髒資料 是因某些Bios 處理不當引起的。
 
4.44 (64) Amount of low memory, in kilobytes, to reserve for the BIOS
 
4.45 Math emulation
數學協處理器模擬,486DX以上的cpu就不要選它了
 
4.46 MTRR (Memory Type Range Register) support(記憶體型別區域暫存器)
    在 Intel P6 系列處理器(Pentium Pro, Pentium II 和更新的)上,MTRR將會用來規定和控制處理器訪問某段記憶體區域的策略。如果你在PCI或者AGP總線上有VGA卡,這將非常有用。可以提升影象的傳送速度2.5倍以上。選Y,會生成檔案/proc/mtrr,它可以用來操縱 你的處理器的MTRR。典型地,X server 會用到。這段程式碼有著通用的介面,其他CPU的暫存器同樣能夠使用該功能。Cyrix 6×86, 6×86MX和 M II處理器有ARR ,它和 MTRR有著類似的功能。AMD K6-2/ K6-3有兩個MTRR, Centaur C6有8個MCR允許複合寫入。所有這些處理器都支援這段程式碼,你可以選Y如果你有以上處理器。選Y同樣可以修正SMP BIOS的問題,它僅為第一個CPU提供MTRR,而不為其他的提供。這會導致各種各樣的問題,所以選Y是明智的。你可以安全地選Y,即使你的機器沒有MTRR。這會給核心增加9KB。開啟它可以提升PCI/AGP總線上的顯示卡2倍以上的速度,並且可以修正某些BIOS錯誤。
 
4.47 MTRR cleanup support
MTRR清理(2.6.27核心新增功能,不確定可以不選)
MTRR cleanup enable value (0-1)   
MTRR cleanup spare reg num (0-7)
x86 PAT support
x86 architectural random number generator
 
4.48 EFI runtime service support(EFI啟動支援)
    這裡允許核心在EFI平臺上使用儲存於EFI韌體中的系統設定啟動。這也允許核心在執行時使用EFI的相關服務。這個選項只在有EFI韌體的系統上有用,它會使核心增加8KB。另外,你必須使用最新的ELILO 登入器才能使核心採用EFI的韌體設定來啟動(GRUB和LILO完全不知道EFI是什麼東西)。即使你沒有EFI,卻選了這個選項,核心同樣可以啟動。大家應該用的是GRUB,所以選上這個也沒什麼用。除非你的系統支援EFI(一種可代替傳統BIOS的技術)否則不選。
 
4.49 Enable seccomp to safely compute untrusted bytecode
只有嵌入式系統可以不選
 
4.50 Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)
 
4.51 Timer frequency (1000 HZ)  
    核心時鐘頻率桌面1000伺服器100或250,允許設定時鐘頻率。    這是使用者定義的時鐘中斷頻率 100HZ-1000 HZ ,不過 100 HZ 對伺服器和NUMA系統更合適,它們不需要很快速的響應使用者的要求,因為時鐘中斷會導致匯流排爭用和緩衝打回。注意在SMP環境中,時鐘中斷由變數 NR_CPUS * Hz定義在每個CPU產生。    其實和前面的搶先式程序差不多,就是多少頻率來響應使用者要求。我選了250HZ的。要快點的可以選1000HZ的。但是還是那句話,一切是平衡的。機器過快響應你,它自己的活就不知道做得好不好了。( ) 100 HZ100 HZ是傳統的對伺服器、SMP 和 NUMA的系統選項。這些系統有比較多的處理器,可以在中斷較集中的時候分擔中斷( ) 250 HZ250 HZ對伺服器是一個好的折衷的選項,它同樣在SMP 和 NUMA 系統上體現出良好的反應速度。( ) 300 HZ(X) 1000 HZ1000 HZ對於桌面和其他需要快速事件反應的系統是非常棒的。
 
4.52 kexec system call(kexec 系統呼叫)
    kexec是一個用來關閉你當前核心,然後開啟另一個核心的系統呼叫。它和重啟很像,但是它不訪問系統韌體。由於和重啟很像,你可以啟動任何核心,不僅僅是LINUX。    kexec這個名字是從 exec 系統呼叫來的。它只是一個程序,可以確定硬體是否正確關閉,Linus本人都沒話說,估計是受害不淺。我們當然不能上當,選N!提供kexec系統呼叫,可以不必重啟而切換到另一個核心,如果需要就選擇,對大多數使用者來說並不需要.
 
4.53 kernel crash dumps
核心崩潰時,dump 執行時資訊。就算 crash 了,我也不會去除錯核心的core dump
 
4.54 (0x1000000) Physical address where the kernel is loaded
 
4.55 Build a relocatable kernel
官方說明 (建立一個移動的核心,並增加10% 的核心尺寸,執行時會被丟棄),我認為沒實質性的作用
 
4.56 (0x100000) Alignment value to which kernel should be aligned
 
4.57 Support for hot-pluggable CPUs
對SMP休眠和熱插拔CPU提供支援
4.58 Compat VDSO support   
如果Glibc版本大於等於2.3.3就不選,否則就選上,目前的版本基本上都大於2.3.3如果你執行的是最新的glibc(GNU C函式庫)版本( 2.3.3 或更新),選N,這樣可以移除高階的VDSO 對映,使用隨機的 VDSO。
4.59 Built-in kernel command line  (不選)
 
5、 Power management and ACPI options
5.1、Power Management support
 
5.2、Power Management Debug Support
不想除錯ACPI  
這個你現在可以勾掉,不勾也沒事,稍侯會在kernel-hacking這一節勾掉除錯,這裡也就沒
 
5.3、Suspend to RAM and standby   
待機
 
5.4、Hibernation (aka 'suspend to disk')
休眠
 
5.5、Run-time PM core functionality
 
5.6、ACPI (Advanced Configuration and Power Interface) Support  --->
見附1
 
5.7、SFI (Simple Firmware Interface) Support  --->
 
5.8、APM (Advanced Power Management) BIOS support  --->   
選acpi就不用apm,一般你也只用acpi&
 
5.9、CPU Frequency scaling  --->
         [*] CPU Frequency scaling  
[ ]   Enable CPUfreq debugging <=== 我不需要除錯 CPUfreq  
< >   CPU frequency translation statistics  
Default CPUFreq governor (performance)  ---> <=== 預設用 performance 高效能的CPU 調頻方式  
-*-   'performance' governor  
< >   'powersave ' governor  
<>    'userspace ' governor for userspace frequency scaling  
<>   'ondemand ' cpufreq policy governor <=== " 週期性的考察CPU 負載並自動的動態調整cpu 頻率" ,我只用 performance  
<>   'conservative' cpufreq governor  
    *** CPUFreq processor drivers ***  
                 < >     Processor Clocking P-stat driver  
<*>   ACPI Processor P-States driver  
< >   AMD Mobile K6-2/K6-3 PowerNow !  
< >   AMD Mobile Athlon/Duron PowerNow !  
< >   AMD Opteron/Athlon64 PowerNow !  
< >   Cyrix MediaGX /NatSemi Geode Suspend Modulation  
< >   Intel Enhanced SpeedStep (deprecated)  
< >   Intel Speedstep on ICH-M chipsets (ioport interface)  
< >   Intel Pentium 4 clock modulation  
< >   Transmeta LongRun  
< >   VIA Cyrix III Longhaul  
 
5.10、CPU idle PM support   
 
5.11、Cpuidle Driver for Intel Processors   
 
 
 
6、Bus options(PCI etc.)  
6.1、PCI support(這個必須選)
 
6.2、PCI access mode (Any)
    ( ) BIOS   
    ( ) MMConfig   
    ( ) Direct
    (X) Any
 
6.3、Read CNB20LE Host Bridge Windows
沒有公共規範的晶片組,此功能已知是不完整的。如果你不知道需不需要它,請選擇N
 
6.4、PCI Express support   
如果你的主機板支援PCI Express,請選擇Y
 
6.5、PCI Express Hotplug driver 選Y
 
6.6、Root Port Advanced Error Reporting support   
硬體驅動會負責傳送錯誤資訊
 
6.7、PCI Express ECRC settings control   
如果懷疑,請選擇N
 
6.8、PCIe AER error injector support     同上,選    N
 
6.9、PCI Express ASPM control
這使得OS控制的PCI Express ASPM(活動狀態電源管理)和時鐘電源管理。 ASPM支援
狀態L0/L0s/L1,選Y
 
6.10、Debug PCI Express ASPM 選N
    Default ASPM policy
     (X)BIOS default
     ( )powersave
     ( )performance
 
6.11、Message Signaled Interrupts (MSI and MSI-X)    
這使得裝置驅動能夠使用MIS(訊息訊號中斷)選Y
 
6.12、PCI Debugging   
我認為這裡沒有必要選
 
?6.13、Enable PCI resource re-allocation detection  
當PCI資源重新分配時,如果你需要PCI核心來檢測的話,選擇Y,同時你可以用pci=realloc=on和pci=realloc=off來覆蓋它,如果你不確定的話,選擇N
 
6.14、PCI Stub driver
選擇Y或者M,如果你想要:當一個裝置去註冊其他的客戶作業系統時需要保留該PCI裝置
 
6.15、 Interrupts on hypertransport devices
這將允許高速傳輸裝置使用中斷,如果不明確的話,選擇Y
 
?6.16、 PCI IOV support   
    I / O虛擬化是由一些裝置支援的PCI功能,這使得他們能夠建立虛擬裝置共享其物理資源。如果不確定的話,選擇N
 
?6.17、PCI PRI support
RIP就是PCI頁面請求介面,如果不確定的話,選擇N
 
6.18、PCI PASID support  不確定的話選擇N
 
6.19、PCI IO-APIC hotplug support  選Y
 
6.20、ISA support(以及之後的EISA)
檢視你的主機板上是否有ISA插槽。ISA是匯流排系統的名稱,它是一個老的系統,現已被PCI取代。新的主機板已經不支援它,如果你還有,選擇Y,否則,選擇N
 
6.21、NatSemi SCx200 support  選擇編譯為模組
 
6.22、One Laptop Per Child support     不選
 
6.23、PCEngines ALIX System Support (LED setup)
6.24、Soekris Engineering net5501 System Support(LEDS, GPIO, etc)
6.25、Traverse Technologies GEOS System Support (LEDS, GPIO, etc)
 
?6.26、RapidIO support  
    RapidIO主要應用於嵌入式系統內部互連。如果你選擇Y,核心中將包含支援RapidIO裝置連線的驅動和設施
 
?6.27、PCCard (PCMCIA/CardBus) support  
    一般膝上型電腦會配備PCCard 介面( 無線網絡卡之類的) ,看你的硬體和使用場景吧。雖然我也是NB ,但我從來不用PCMCIA
        16-bit PCMCIA support
        Load CIS updates from userspace (EXPERIMENTAL)   
        32-bit CardBus support
    *** PC-card bridges ***
        CardBus yenta-compatible bridge support
        Cirrus PD6729 compatible bridge support
        i82092 compatible bridge support
 
6.28、 Support for PCI Hotplug
    支援熱拔插PCI 裝置
    Fake PCI Hotplug driver
    Compaq PCI Hotplug driver
    Save configuration into NVRAM on Compaq servers
    IBM PCI Hotplug driver   
    ACPI PCI Hotplug driver
    ACPI PCI Hotplug driver IBM extensions
    CompactPCI Hotplug driver
    SHPC PCI Hotplug driver
 
7、Executable file formats / Emulations
7.1、Kernel support for ELF binaries  選擇Y
7.2、Write ELF core dumps with partial segments  不選
7.3、Kernel support for a.out and ECOFF binaries  編譯成模組
7.4、Kernel support for MISC binaries  編譯成模組
 
 
 
 
 
 
 
 
 
 
 
8、Networking support  
8.1、Networking options   
    <Y> Packet socket
    <Y> Unix domain sockets
    <M> Transformation user configuration interface
    [ ] Transformation sub policy support (EXPERIMENTAL)
    [ ] Transformation migrate database (EXPERIMENTAL)
    [ ] Transformation statistics (EXPERIMENTAL)
    <M> PF_KEY sockets
    [ ]  PF_KEY MIGRATE (EXPERIMENTAL)
    [Y] TCP/IP networking
    [Y]   IP: multicasting
    [Y]   IP: advanced router
    Choose IP: FIB lookup algorithm (choose FIB_HASH if unsure) (FIB_HASH)│
    [Y]   IP: policy routing
    [Y]   IP: equal cost multipath   
    [Y]   IP: verbose route monitoring
    [ ]   IP: kernel level autoconfiguration
    <M>   IP: tunneling   
    < M>   IP: GRE demultiplexer
    [Y]   IP: multicast routing
    [ ]     IP: multicast policy routing
    [Y]     IP: PIM-SM version 1 support
    [Y]     IP: PIM-SM version 2 support
    [ ]   IP: ARP daemon support   
    [ Y]   IP: TCP syncookie support  
    抵抗SYN flood 攻擊,我是開發機,暫不考慮安全特性
    <M>   IP: AH transformation
    <M>   IP: ESP transformation
    <M>   IP: IPComp transformation
    <M>   IP: IPsec transport mode
    <M>   IP: IPsec tunnel mode
    <*>   IP: IPsec BEET mode
    {*}   Large Receive Offload (ipv4/tcp)
    <M>   INET: socket monitoring interface
    [*]   TCP: advanced congestion control  --->
    高階擁塞控制, 如果沒有特殊需求( 比如無線網路) 就別選了
    [ ]   TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)
    < >   The IPv6 protocol  --->
    我暫時沒有要支援IPV6 的需求
    [ ]   NetLabel subsystem support
    NetLabel 子系統, 為諸如CIPSO 與RIPSO 之類能夠 在分組資訊上新增標籤的協議提供支援,我用不到
    -*- Security Marking
    對網路包進行安全標記, 類似於nfmark , 但主要是為安全目的而設計 , 安全特性,我暫時不考慮
    [ ] Timestamping in PHY devices
    [ ] Network packet filtering framework (Netfilter)  --->
    我不打算使用防火牆,要用到時再編譯進去
    <M> The DCCP Protocol (EXPERIMENTAL)  --->   
    -M- The SCTP Protocol (EXPERIMENTAL)  --->   
    <M> The RDS Protocol (EXPERIMENTAL)
    < >   RDS over Infiniband and iWARP
    < >   RDS over TCP
    [ ]   RDS debugging messages    
    <M> The TIPC Protocol (EXPERIMENTAL)  --->
    <M> Asynchronous Transfer Mode (ATM)
    <M>   Classical IP over ATM
    [ ]     Do NOT send ICMP if no neighbour
    <M>   LAN Emulation (LANE) support
    < >     Multi-Protocol Over ATM (MPOA) support
    <M>   RFC1483/2684 Bridged protocols   
    [ ]     Per-VC IP filter kludge
    < > Layer Two Tunneling Protocol (L2TP)  --->       
    <M> 802.1d Ethernet Bridging   
    [*]   IGMP/MLD snooping
    [ ] Distributed Switch Architecture support  --->
    <M> 802.1Q VLAN Support
    [ ]   GVRP (GARP VLAN Registration Protocol) support
    < > DECnet Support
    < > ANSI/IEEE 802.2 LLC type 2 Support
    < > The IPX protocol
    < > Appletalk protocol support
    < > CCITT X.25 Packet Layer (EXPERIMENTAL)
    < > LAPB Data Link Driver (EXPERIMENTAL)   
    < > Acorn Econet/AUN protocols (EXPERIMENTAL)
    < > WAN router
    < > Phonet protocols family
    < > IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support (EXPERI│
    [ ] QoS and/or fair queueing  --->    
    通過IPRoute 切換網路裝置上的Qos 策略,我不打算使用IP 路由
    [ ] Data Center Bridging support   
    -*- DNS Resolver support
    < > B.A.T.M.A.N. Advanced Meshing Protocol   
      Network testing  --->     
 
8.2、[ ]   Amateur Radio support  --->
    我沒有無線電
8.3、< >   CAN bus subsystem support  --->   
8.4、< >   IrDA (infrared) subsystem support  --->
8.5、<M>   Bluetooth subsystem support  --->   
8.6、< >   RxRPC session sockets   
8.7、- -   Wireless  --->      
    我沒有使用無線網絡卡
8.8、< >   WiMAX Wireless Broadband support  --->
8.9、< >   RF switch subsystem support  --->
    我沒有RF 切換裝置
8.10、< >   Plan 9 Resource Sharing Support (9P2000) (Experimental)  --->
8.11、< >   CAIF support  --->   
8.12、< >   Ceph core library (EXPERIMENTAL)   
 
9、Device Drivers  --->
9.1、Generic Driver Options  --->
9.1.1、()  path to uevent helper
9.1.2、[ ] Maintain a devtmpfs filesystem to mount at /dev
9.1.3、[*] Select only drivers that don't need compile-time external firmware
9.1.4、[*] Prevent firmware from being built
9.1.5、-*- Userspace firmware loading support
9.1.6、[*]   Include in-kernel firmware blobs in kernel binary
9.1.7、()    External firmware blobs to build into the kernel binary
9.1.8、[ ] Driver Core verbose debug messages
9.1.9、[ ] Managed device resources verbose debug messages
    管理裝置資源的冗長除錯資訊,我不需要
 
9.2、<*> Connector - unified userspace <-> kernelspace linker  --->
核心空間與使用者空間的通道
9.2.1、[*]   Report process events to userspace
報告處理時間給使用者空間
 
9.3、< > Memory Technology Device (MTD) support  --->
 
9.4、< > Parallel port support  --->
 
9.5、-*- Plug and Play support  --->
    [ ]   PNP debugging messages
    除錯資訊,老規矩
9.6、[ ] Block devices  --->   
我沒有想要支援的塊裝置,比如ramdisk , 磁碟陣列,CD/DVD 燒錄等,詳見內部選項
 
9.7、[ ] Misc devices  --->
沒有需要支援的雜項裝置
 
9.8、< > ATA/ATAPI/MFM/RLL support (DEPRECATED)  --->   
 
9.9、SCSI device support  --->   
< > RAID Transport Class  
-*- SCSI device support  
[] legacy /proc /scsi / support <=== 我沒有SCSI 裝置  
*** SCSI support type (disk, tape, CD-ROM) ***  
<*> SCSI disk support // 就算你用SATA ,此選項也必選  
< > SCSI tape support  
< > SCSI OnStream SC-x0 tape support  
<> SCSI CDROM support <=== 我沒有SCSI 裝置  
<> SCSI generic support <=== 我沒有SCSI 裝置  
< > SCSI media changer support  
[ ] Probe all LUNs on each SCSI device  
[] Verbose SCSI error reporting (kernel size +=12K) <=== 我沒有SCSI 裝置  
[ ] SCSI logging facility  
[ ] Asynchronous SCSI scanning  
SCSI Transports  --->  
<> Parallel SCSI (SPI) Transport Attributes <=== 我沒有SCSI 裝置  
< > FiberChannel Transport Attributes  
< > iSCSI Transport Attributes  
< > SAS Domain Transport Attributes  
< > SRP Transport Attributes  
[ ] SCSI low-level drivers  --->  
< > SCSI Device Handlers  --->  
< > OSD-Initiator library  
 
9.10、<M> Serial ATA and Parallel ATA drivers  --->
[*]  Verbose ATA error reporting  
[*]   ATA ACPI Support  
[ ]   SATA Port Multiplier support <=== 我只有一枚SATA 裝置,沒有使用 多路SATA/SATA Hub 的需求。Port Multiplier 是南橋晶片提供的一種支援多塊SATA 裝置,並共享總頻寬的技術。  
<*>   AHCI SATA support  
< >      Platform AHCI SATA support  
< >      Inito 162x SATA support  
< >   Silicon Image 3124/3132 SATA support  
[*]   ATA SFF support // 選擇自己硬體對應的驅動即可  
< >     ServerWorks Frodo / Apple K2 SATA support  
<*>     Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support // Intel ICH ,G 系列chipset driver  
< >     Marvell SATA support   
< >     NVIDIA SATA support    
< >     Pacific Digital ADMA support                    
< >     Pacific Digital SATA QStor support              
< >     Promise SATA TX2/TX4 support                    
< >     Silicon Image SATA support                      
< >     SiS 964/965/966/180 SATA support                
< >     ULi Electronics SATA support                    
< >     VIA SATA support       
< >     VITESSE VSC-7174 / INTEL 31244 SATA support     
< >     Initio 162x SATA support                        
< >     ACPI firmware driver for PATA                   
< >     ALi PATA support       
< >     AMD/NVidia PATA support <=== 我用的是SATA ,取消PATA 支援  
< >     ARTOP 6210/6260 PATA support                    
< >     ATI PATA support       
< >     CMD64x PATA support    
< >     CS5510/5520 PATA support                        
< >     CS5530 PATA support  
< >     CS5536 PATA support                              
< >     EFAR SLC90E66 support                           
< >     Generic ATA support                             
< >     HPT 366/368 PATA support                        
< >     HPT 343/363 PATA support                        
< >      IT8211/2 PATA support                           
< >     JMicron PATA support                            
< >     Compaq Triflex PATA support                     
< >     Marvell PATA support via legacy mode            
<>     Intel PATA MPIIX support <=== 我用的是SATA ,取消PATA 支援  
< >     Intel PATA old PIIX support <=== 我用的是SATA ,取消PATA 支援  
< >     NETCELL Revolution RAID support                 
< >     Nat Semi NS87410 PATA support                   
< >     Nat Semi NS87415 PATA support                   
< >     Older Promise PATA controller support           
< >     PC Tech RZ1000 PATA support                     
< >     SC1200 PATA support                             
< >     SERVERWORKS OSB4/CSB5/CSB6/HT1000 PATA support  
< >     Promise PATA 2027x support                       
< >     CMD / Silicon Image 680 PATA support            
< >     SiS PATA support                                
< >     VIA PATA support                                
< >     Winbond SL82C105 PATA support                   
< >     Intel SCH PATA support <=== 我用的是SATA ,取消PATA 支援
 
9.11、[ ] Multiple devices driver support (RAID and LVM)  --->
暫時沒有要使用Raid (磁碟陣列)和LVM (邏輯卷管理器,新增,刪除邏輯分割槽)的需求
 
9.12、[ ] Fusion MPT device support  --->
 
9.13、IEEE 1394 (FireWire) support  --->
 
9.14、< > I2O device support  --->
 
9.15、[ ] Macintosh device drivers  --->
 Mac 系統硬體裝置驅動,沒什麼好說的,關
 
9.16、-*- Network device support  --->     
    < >   Dummy net driver support                          
< >   Bonding driver support                            
< >   EQL (serial line load balancing) support          
< >   Universal TUN/TAP device driver support           
< >   Virtual ethernet pair device                      
< >   General Instruments Surfboard 1000                
< >   ARCnet support  --->    
-*-   PHY Device support and infrastructure  ---> <=== PHY ( 物理層控制晶片)  ,裡面沒有我對應的硬體  
[ ]   Ethernet (10 or 100Mbit)  ---> <=== 如果你是百 M 卡,請自行選擇  
[*]   Ethernet (1000 Mbit)  ---> // 選擇自己對應的硬體  
[ ]   Ethernet (10000 Mbit)  ---> <=== 如果你是萬M 卡,請自行選擇  
<>   Token Ring driver support  ---> <=== IBM 的令牌環網,用乙太網的忽略  
[ ]      Wireless LAN  --->   <=== 不用無線網路  
      *** Enable WiMAX (Networking options) to see the WiMAX drivers ***   
      USB Network Adapters  --->              
[ ]   Wan interfaces support  --->                       
<>   FDDI driver support <=== 光纖卡驅動,相信沒幾個人能用上這玩意  
< >   PPP (point-to-point protocol) support             
< >   SLIP (serial line) support                        
[ ]   Fibre Channel driver support  
[ ]    Network console logging support  
[ ]    VMware VMXNET3 ethernet driver  
 
 
9.17、[ ] ISDN support  --->
 
9.18、< > Telephony support  --->
9.19、Input device support  --->  
-*- Generic input layer (needed for keyboard, mouse, ...)  
-*-   Support for memoryless force-feedback devices     
<>   Polled input device skeleton  <=== 一種週期性輪詢硬體狀態的驅動,去掉後沒什麼副作用  
      *** Userland interfaces ***                       
-*-   Mouse interface  
[ ]     Provide legacy /dev /psaux device   
(1024)  Horizontal screen resolution                    
(768)   Vertical screen resolution                      
< >   Joystick interface                                
<*>   Event interface  // 將輸入裝置的事件儲存到/dev /input/eventX 供應用程式讀取  
< >   Event debugging                                   
      *** Input Device Drivers ***                      
-*-   Keyboards  --->  
[*]   Mice  --->                                
[]   Joysticks/Gamepads  --->  <=== 遊戲裝置  
[]   Tablets  ---> <=== 平板PC  
[]   Touchscreens  --->   <=== 觸控式螢幕  
[]   Miscellaneous devices  ---> <=== 雜七雜八的驅動,揚聲器,筆記本擴充套件按鍵等  
Hardware I/O ports  --->  
 
9.20、Character devices  --->
-*- Virtual terminal           
[*]   Support for binding and unbinding console drivers // 在某些系統上可以使用多個控制檯驅動程式( 如framebuffer 控制檯驅動程式), 該選項使得你可以選擇其中之一 ,我一般只用預設的虛擬終端  
[] /dev /kmem virtual device support  <=== 支援/dev /kmem 裝置,很少用       
[] Non-standard serial port support  <=== 我沒有非標準的串列埠裝置  
  Serial drivers  --->  
< > 8250/16550 and compatible serial support <=== 相容一些老式的串列埠裝置,我一般不用  
    *** Non-8250 serial port support ***  
< > Digi International NEO PCI Support  
-*- Unix98 PTY support         
[ ]   Support multiple instances of devpts               
[ ] Legacy (BSD) PTY support   
< > IPMI top-level message handler  --->                 
<*> Hardware Random Number Generator Core support       
< >   Timer IOMEM HW Random Number Generator support    
<*>   Intel HW Random Number Generator support      
<>   AMD HW Random Number Generator support  <=== 我是intel 主機板  
    < >   AMD Geode HW Random Number Generator support <=== 我是intel 主機板  
<>   VIA HW Random Number Generator support <=== 我是intel 主機板       
<> /dev /nvram support  <=== 直接存取CMOS ,太危險,關  
< > Siemens R3964 line discipline  
< > Applicom intelligent fieldbus card support          
< > ACP Modem (Mwave ) support  
< > NatSemi PC8736x GPIO Support                        
< > NatSemi Base GPIO Support  
< > AMD CS5535/CS5536 GPIO (Geode Companion Device)     
< > RAW driver (/dev /raw/rawN )  
[*] HPET - High Precision Event Timer                
[ ]   Allow mmap of HPET       
< > Hangcheck timer  
 
9.21、{M} I2C support  --->
感知硬體狀態,比如溫度,風扇轉速
 
9.22、[ ] SPI support  --->    
 
9.23、PPS support  --->
 
9.24、[ ] GPIO Support  --->
 
9.25、{*} Power supply class support  --->
 
9.26、{*} Hardware Monitoring support  --->
 
9.27、-*- Generic Thermal sysfs driver  --->
 
9.28、[*] Watchdog Timer Support  --->
系統監視程式,我一般不用
 
9.29、Sonics Silicon Backplane  --->
 
9.30、< > Multimedia support  --->  
 
9.31、[ ] Voltage and Current Regulator Support  --->   
 
9.32、< > Multimedia support  --->
    < > /dev /agpgart (AGP Support)  ---> < --- virtualbox不支援虛擬獨立顯示卡  
-*-  VGA arbitration  
(16) Maximium number of GPU  
[ ] Latop Hybird Graphics – GPU switch support             
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->  
<> Lowlevel video output switch controls   
<> Support for frame buffer devices  --->  
[ ] Backlight & LCD device support  --->   < --- 支援背光設定,比如pda等。我用不到  
    Display device support  --->    
    Console display driver support  --->     
[ ]   Enable Scrollback Buffer in System RAM  
 
9.33、< > Sound card support  --->
用不到音效卡
 
9.34、[ ] HID Devices  --->
用不到人力工程學裝置
 
9.35、[] USB support  --->   <=== 這個選項,對於跑物理機建議 開啟,因為有可能你的鍵盤是USB 的,我是跑虛擬機器的,所以關了  
 
9.36、< > MMC/SD/SDIO card support  --->     
 
9.37、< > Sony MemoryStick card support (EXPERIMENTAL)  --->  
 
9.38、[] LED Support  --->   <=== 發光二級管,應該是跟顯示器相關的驅動,由於我執行 的是虛擬機器,所以我選擇關閉  
 
9.39、[ ] Accessibility support  --->  
 
9.40、< > InfiniBand support  --->    
9.41、[*] EDAC (Error Detection And Correction) reporting  ---> // 硬體故障repoting  
 
9.42、<*> Real Time Clock  --->  
 
9.43、[*] DMA Engine support  --->    
 
9.44、[ ] Auxiliary Display support  --->                      
 
9.45、< > Userspace I/O drivers  --->                          
 
9.46、TI VLYNQ  --->              
 
9.47、[ ] Staging drivers  --->       
 
9.48、[] X86 Platform Specific Device Drivers  ---> <=== 一些筆記本的驅動,我沒有相關裝置
 
 
10、Firmware Drivers  --->  
< > BIOS Enhanced Disk Drive calls determine boot disk  
< > BIOS update support for DELL systems via sysfs       
< > Dell Systems Management Base Driver                 
[*] Export DMI identification via sysfs to userspace    // 將BIOS 裡的DMI 區資訊匯出到使用者空間,部分系統管理工具可能會用到  
[ ] iSCSI Boot Firmware Table Attributes  
   
11、File systems  --->  
< > Second extended fs support  
<> Ext3 journalling file system support <=== 我使用的是ext4 FS  
<*> The Extended 4 (ext4) filesystem  
[ ]   Enable ext4dev compatibility                      
[*]   Ext4 extended attributes  
[*]     Ext4 POSIX Access Control Lists  
[]     Ext4 Security Labels  <=== 取消 SELinux 支援  
[ ] JBD (ext3) debugging support  
[ ] JBD2 (ext4) debugging support                       
< > Reiserfs support           
< > JFS filesystem support     
< > XFS filesystem support     
< > OCFS2 file system support  
[*] Dnotify support                     
[*] Inotify support for userspace                        
[] Quota support <=== 磁碟配額支援 , 限制某個使用者或者某組使用者的磁碟佔用空間,暫時沒這個需求,你可以把它編譯成模組  
< > Kernel automounter support  
<*> Kernel automounter version 4 support (also supports v3)  
< > FUSE (Filesystem in Userspace ) support  
    Caches  --->    
    CD-ROM/DVD Filesystems   --->    
<> ISO 9660 CDROM file system support  <=== 在虛擬機器內,我不用CDROM                 
< > UDF file system support  
    DOS/FAT/NT Filesystems   --->  
< > MSDOS fs support <=== 我沒有微軟fs 的裝置  
< > VFAT (Windows-95) fs support  <=== 我沒有微軟fs 的裝置  
< > NTFS file system support  
    Pseudo filesystems   --->    
[] Miscellaneous filesystems   ---> <=== 如果你沒有其他FS 的支援需求,關  
[*] Network File Systems  ---> <=== 如果你沒有NFS 的支援需求,關  
    Partition Types  --->       
[ ] Advanced partition selection <=== 如果不是和其他系統共存,可以不選  
-*- Native language support  ---> // 選上Chinese  
   
12、Kernel hacking 
[] Show timing information on printks   <=== 在printk 的輸出中包含時間資訊, 可以用來分析核心啟動過程各步驟所用時間 , 我不需要debug 核心  
[ ] Enable __deprecated logic                           
[*] Enable __must_check logic                           
(2048) Warn for stack frames larger than (needs gcc 4.4)  
[] Magic SysRq key <=== 一種通過快捷鍵控制系統方式,除非你非常清楚這個選項,官方不推薦選擇  
[ ] Enable unused/obsolete exported symbols             
[ ] Debug Filesystem  
[ ] Run 'make headers_check ' when building vmlinux       
[ ] Kernel debugging <=== 核心除錯,關                      
[ ] Enable SLUB performance statistics                                                                             
[] Compile the kernel with frame pointers  <=== 還是跟核心開發有關  
[ ] Delay each boot printk message by N millisecond