Linux 2.6.36內核優化指南

Linux 2.6.36內核優化指南


紅色註釋爲禁用該選項的理由和解釋。

黑色註釋爲默認選擇的選項含義解釋。

  其餘未默認選擇的選項,不做任何解釋。


Generalsetup  --->

[] Prompt for development and/or incomplete code/drivers <=== 顯示尚在開發中或尚未完成的代碼與驅動. 有許多設備可能必需選擇這個選項才能進行配置. 我選擇關閉,首先我不是內核或驅動開發人員,其次,我沒有碰到哪個設備需要開啓這個選項才能使用的。大家可以放心禁用,最多出問題後,再開啓。

()  Local version - append to kernel release

[] Automatically append version information to the version string

Kernelcompression mode (Bzip2)  ---> <=== 對比默認的Gzip,Bzip2是一個基於Burrows- Wheeler 變換的無損壓縮軟件,壓縮效果比傳統的LZ77/LZ78壓縮算法來得好。建議選擇它。

[*]Support for paging of anonymous memory (swap) // 將使你的內核支持虛擬內存。這個虛擬內存在LINUX中就是SWAP分區。除非你不想要SWAP分區,否則這裏必選Y。

[*]System V IPC // System V進程間通信(IPC)支持,於處理器在程序之間同步和交換信息,如果不選這項,很多程序運行不起來,特別地,你想在LINUX下運行 DOS仿真程序,你必須要選Y。

[*]BSD Process Accounting // 這是允許用戶進程訪問內核,將賬戶信息寫入文件中。這通常被認爲是個好主意,建議你最好將它選上。將進程的統計信息寫入文件的用戶級系統調用,主要包括進程的創建時間/創建者/內存佔用等信息。

[]  BSDProcess Accounting version 3 file format

[] Export task/process statistics through netlink(EXPERIMENTAL) <=== 處於實驗階段的功能。通過通用的網絡輸出工作/進程的相應數據,和BSD不同的是,這些數據在進程運行的時候就可以通過相關命令訪問。和BSD類似,數據將在進程結束時送入用戶空間。不清楚,選N

[] Auditing support <=== 審計支持,用於和內核的某些子模塊同時工作,(例如SELinux)需要它,只有同時選擇其子項才能對系統調用進行審計。我的使用場景主要是開發應用程序,不需要那麼高的安全性,另外安全總是以犧牲性能爲代價

RCUSubsystem  ---> // 非對稱讀寫鎖系統 是一種高性能的kernel鎖機制,適用於讀多寫少環境

RCUImplementation (Tree-based hierarchical RCU)  --->

<> Kernel .config support

(18)Kernel log buffer size (16 => 64KB, 17 => 128KB)

[] Control Group support  ---><=== cgroups支持,文檔資料,cgroups主要作用是給進程分組,並可以動態調控進程組的CPU佔用率。比如A進程分到apple組,給予20%CPU佔用率,E進程分easy組,給予50%CPU佔用率,最高100%。我目前沒有此類應用場景,用到時會選擇將其編譯進去。

[] enable deprecated sysfs features to support old userspace tools

[ ]Kernel->user space relay support (formerly relayfs)<===在某些文件系統上(比如debugfs)提供從內核空間向用戶空間傳遞大量數據的接口,我目前沒有此類應用場景

-*-Namespaces support

[ ]   UTSnamespace <=== 我沒有已安裝的應用程序要用到 UTS ns

[ ]   IPCnamespace <=== 我沒有已安裝的應用程序要用到 IPC ns

[] Initial RAM filesystem and RAM disk (initramfs/initrd) support <=== 用於在真正內核裝載前,做一些操作(俗稱兩階段啓動),比如加載module,mount一些非root分區,提供災難恢復shell環境等,資料,我是期望直接從kernelimage直接啓動,所以沒選它

[] Optimize for size <=== 這個選項將在GCC命令後用“-Os” 代替 “-O2″參數,這樣可以得到更小的內核。沒必要選。選上了有時會產生錯誤的二進制代碼。

[] Configure standard kernel features (for small systems)  --->

-*-   Load all symbols for debugging/ksymoops

[]    Include all symbols in kallsyms <=== 在kallsyms中包含內核知道的所有符號,內核將會 增大300K,不調式內核關閉

[]   Do an extra kallsymspass <=== 除非你在kallsyms中發現了bug並需要報告這個bug纔打開該選項

KernelPerformance Events And Counters  ---> 

-*-Kernel performance events and counters // CPU 性能監聽器,包括 CPU同一時間執行指令數,cache miss數,分支預測失敗次數(Branch misprediction)。調優其他程序時或許會用到,比如JVM

[] Debug: use vmalloc to back perfmmap() buffers < ===調試特性關閉

[] Kernel performance counters (old config option)

[] Disable heap randomization

ChooseSLAB allocator (SLUB (Unqueued Allocator))  --->

[] Profiling support (EXPERIMENTAL) <=== 我不是內核開發人員,不需要profiling內核,用到時再啓用。如果要用OProfiler的同學請啓用。

[] Kprobes <=== 我不是內核開發人員,不需要調試內核

GCOV-basedkernel profiling --->

[] Enable gcov-based kernel profiling

 

[*]Enable loadable module support ---> // 打開可加載模塊支持,如果打開它則必須通過”make modules_install”把內核模塊安裝在/lib/modules/中這個選項可以讓你的內核支持模塊

---Enable loadable module support

[]   Forced module loading

[*]   Module unloading // 允許卸載已經加載的模塊

[]   Module versioning support

[]   Source checksum for allmodules

 

-*-Enable the block layer --->

---Enable the block layer

[*]   Support for large (2TB+) blockdevices and files // 大硬盤支持,SATA設備如果不選,會發生 kernel panic,具體原因未知

[]   Block layer SG support v4 <=== 支持通用scsi塊設備第4版,我用的是SATA

[]   Block layer data integritysupport

IOSchedulers  ---> // IO調度器支持,不同程序可以會選用不同的調度策略,這裏我們不要動他

<*>Anticipatory I/O scheduler

<*>Deadline I/O scheduler

<*>CFQ I/O scheduler

    Default I/O scheduler (CFQ)  --->

 

Processortype and features --->

[*]Tickless System (Dynamic Ticks) // 動態時間片系統,這項技術能讓新內核運行的更有效率,並且更省電。動態時間片意思是當CPU處於空閒時,降低內核定時器的輪詢頻率

[*]High Resolution Timer Support // 我有的時候要測試 Real Time JVM,希望內核能支持這種高響應速度的內核定時器,一般用戶可關閉

[*]Symmetric multi-processing support // 對稱多處理器支持,如果你有多個CPU或者使用的是多核CPU就選上。

[] Support sparse irq numbering <=== 支持稀有的中斷編號,關閉

[] Enable MPS table< === mps多處理器規範,關閉

[] Support for big SMP systems with more than 8 CPUs

[] Support for extended (non-PC) x86 platforms <=== 我是X86平臺,不需要再支持其他平臺

[*]Single-depth WCHAN output // 跟 proc 相關的最好不要關

[] Paravirtualized guest support  --->

---Paravirtualized guest support

[*] Disable Bootmem code // 優化內核中一些複雜的初始化內存分配邏輯

[] Memtest

Processor family (Core 2/newer Xeon)  ---> <=== 這裏請選擇對應的CPU,我是 core 2 duo

[] Generic x86 support <=== 通用x86支持, 如果你的CPU能夠在上述"Processorfamily"中找到就別選了

[*]HPET Timer Support // HPET時鐘支持。允許內核使用 HPET 。HPET是替代8254芯片的新一代定時器,i686及以上級別的主板都支持,可以安全的選上。但是,HEPT只會在支持它的平臺和BIOS上運行。如 果不支持,8254將會激活。選N,將繼續使用8254時鐘

(8)Maximum number of CPUs // 支持的最大CPU數,每增加一個內核將增加8K體積

[] SMT (Hyperthreading) scheduler support < === 支持Intel的超線程(HT)技術超線程調度器在某些情況下將會對 Intel Pentium 4 HT系列有較好的支持。如果你不清楚,選N

[*]Multi-core scheduler support // 針對多核CPU進行調度策略優化多核調度機制支持,雙核的CPU要選。多核心調度在某些情況下將會對多核的CPU系列有較好的支持。

Preemption Model (Voluntary Kernel Preemption (Desktop))  ---> // 內核搶佔模式一些優先級很高的程序可以先讓一些低優先級的程序執行,即使這些程序是在覈心態下執行。從而減少內核潛伏期,提高系統的響應。當然在一些特殊的點的內核是不可搶先的,比如內核中的調度程序自身在執行時就是不可被搶先的。這個特性可以提高桌面系統、實時系統的性能。

[*]Reroute for broken boot IRQs // 防止同時收到多個boot IRQ(中斷)時,系統混亂

[*]Machine Check Exception // 讓CPU檢測到系統故障時通知內核,以便內核採取相應的措施(如過熱關機等)

[*]   Intel MCE features

[]   AMD MCE features <=== 我是intel CPU

[]   Support for old Pentium 5 / WinChip machine checks

< > Machine check injector support

<> Toshiba Laptop support

<> Dell laptop support

[] Enable X86 board specific fixups for reboot <=== 修正某些舊x86主板的重起bug,這種主板基本絕種了

<*>/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 loadingsupport

[]   AMD microcode patch loadingsupport <=== 我是intel CPU

<*>/dev/cpu/*/msr - Model-specific register support // 是否打開CPU特殊功能寄存器的功能。這個選項桌面用戶一般用不到,它主要用在Intel的嵌入式CPU中的,這個寄存器的作用也依賴與不同的CPU類型 而有所不同,一般可以用來改變一些CPU原有物理結構的用途,但不同的CPU用途差別也很大。在多cpu系統中讓特權CPU訪問x86的MSR寄存器

<*>/dev/cpu/*/cpuid - CPU information support // 是否打開記錄CPU相關信息功能。這會在/dev/cpu中建立一系列的設備文件,用以讓過程去訪問指定的CPU。能從/dev/cpu/x/cpuid獲得CPU的唯一標識符(CPUID)

HighMemory Support (4GB) --->

        [ ] Enable KSM for page merging

(4096)Low address space to protect from user allocation

[] Enable recovery from hardware memory errors

[] Allocate 3rd-level pagetables from highmem <=== 在內存很多(大於4G)的機器上將用戶空間的頁表放到高位內存區,以節約寶貴的低端內存,我只虛擬了1G

[] Check for low memory corruption <=== 低位內存髒數據檢查,默認是每60秒檢查一次。一般這種髒數據是因某些Bios處理不當引起的。資料鏈接。我信任我目前的虛擬bios版本

[] Reserve low 64K of RAM on AMI/Phoenix BIOSen <===我不是AMI/Phoenix BIOS

[] Math emulation

-*-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有着類似的功能。AMDK6-2/ K6-3有兩個MTRR, Centaur C6有8個MCR允許複合寫入。所有這些處理器都支持這段代碼,你可以選Y如果你有以上處理器。選Y同樣可以修正SMPBIOS的問題,它僅爲第一個CPU提供MTRR,而不爲其他的提供。這會導致各種各樣的問題,所以選Y是明智的。你可以安全地選Y,即使你的機器沒有 MTRR。這會給內核增加9KB。打開它可以提升PCI/AGP總線上的顯卡2倍以上的速度,並且可以修正某些BIOS錯誤

[]   MTRR cleanup support

[] EFI runtime service support <=== 我機器是BIOS引導的,用不到EFI(Extensible Firmware Interface),如果你有興趣體驗EFI,可以在Virtualbox中開啓

[] Enable seccomp to safely compute untrusted bytecode<===只有嵌入式系統可以不選

[] Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)

Timerfrequency (1000 HZ)  ---> // Timerfrequency (1000 HZ) —>內核時鐘頻率 桌面1000 服務器100或250

[] kexec system call <=== kexec 系統調用。kexec是一個用來關閉你當前內核,然後開啓另一個內核的系統調用。它和重啓很像,但是它不訪問系統固件。由於和重啓很像,你可以啓動任何內 核,不僅僅 是LINUX。kexec這個名字是從 exec 系統調用來的。它只是一個進程,可以確定硬件是否正確關閉,Linus本人都沒話說,估計是受害不淺。我們當然不能上當,選N!提供kexec系統調用, 可以不必重啓而切換到另一個內核,如果需要就選擇,對大多數用戶來說並不需要

[] kernel crash dumps <=== 內核崩潰時,dump運行時信息。就算crash了,我也不會去調試內核的coredump

[] Build a relocatable kernel <===官方說明(建立一個移動的內核,並增加10%的內核尺寸,運行時會被丟棄),我認爲沒實質性的作用

(0x1000000)Physical address where the kernel is loaded

-*-Support for hot-pluggable CPUs // 對SMP休眠和熱插拔CPU提供支持

[] Compat VDSO support

[] Built-in kernel command line

 

Powermanagement and ACPI options  --->

[*]Power Management support

[]   Power Management DebugSupport <=== 不想調試ACPI

[]       Extra PM attributes in sysfs  for low-level debugging/testing

[]     Verbose PowerManagement debugging

[*]Suspend to RAM and standby // 待機

[*]Hibernation (aka 'suspend to disk') // 休眠

[] Runtime PM core functionality

[*]ACPI (Advanced Configuration and Power Interface) Support  --->

[*]   Deprecated /proc/acpi files

[*]   Deprecated power /proc/acpi directories

<>  ACPI 4.0 power meter

[*]   Future power /sys interface

<>  EC read/write through /sys/kernel/debug/ec

[*]   Deprecated /proc/acpi/event support

<*>   AC Adapter

<*>   Battery

<*>   Button

<*>   Fan

<*>   Processor

<*>     Thermal Zone

(0)   Disable ACPI for systems beforeJan 1st this year

[]   Debug Statements

<>   PCI slot detectiondriver

< >  Smart Battery System

< >   Hardware Error Device

[]   ACPI platform ErrorInterface (APEI)     

[ ] SFI  (Simple Firmware Interface)Support --->

<> APM(Advanced Power Management) BIOS Support--->

CPU Frequency scaling  --->

[*]CPU Frequency scaling

[]   Enable CPUfreqdebugging <=== 我不需要調試 CPUfreq

<>   CPU frequencytranslation statistics

DefaultCPUFreq governor (performance)  ---> <=== 默認用performance高性能的CPU調頻方式

-*-   'performance' governor

<>   'powersave'governor

<>   'userspace'governor for userspace frequency scaling

<>   'ondemand'cpufreq policy governor <==="週期性的考察CPU負載並自動的動態調整cpu頻率",我只用 performance

<>   'conservative' cpufreqgovernor

*** CPUFreq processor drivers***

                 <>     ProcessorClocking 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 SuspendModulation

<>   Intel Enhanced SpeedStep (deprecated)

<>   Intel Speedstep on ICH-M chipsets (ioportinterface)

<>   Intel Pentium 4 clockmodulation

<>   TransmetaLongRun

<>   VIA Cyrix III Longhaul

 []    CpuidleDriver for Intel Processors

Busoptions (PCI etc.)  --->

[*]PCI support

PCIaccess mode (Any) --->

        [ ] Read CNB20LE Host Bridge Window

[*]PCI Express support

<> PCI Express Hotplug driver

[*]   RootPort Advanced Error Reporting support // 硬件驅動會負責發送錯誤信息

[ ]    PCI Express ECRC settings control

< >    PCIE AER error injector support

-*-    PCIExpress ASPM control

[ ]           DebugPCI Express ASPM

[*]Message Signaled Interrupts (MSI and MSI-X)

[] PCI Debugging

<> PCI Stub driver

[*]Interrupts on hypertransport devices

[] PCI IOV support

[] ISA support

[] MCA support

<> NatSemi SCx200 support

[] One Laptop Per Child support

[] Support for OLPC’s Open Firmware

<> PCCard (PCMCIA/CardBus)support  ---> <=== 一般筆記本電腦會配備PCCard接口(無線網卡之類的),看你的硬件和使用場景吧。雖然我也是NB,但我從來不用PCMCIA

<> Support for PCI Hotplug  ---> <=== 我沒有要熱拔插PCI設備的需求

 

Executablefile formats / Emulations  --->

[*]Kernel support for ELF binaries

[*]Write ELF core dumps with partial segments

<> Kernel support for a.out and ECOFF binaries

<*>Kernel support for MISC binaries

 

[*]Networking support --->

Networkingoptions  --->

<*>Packet socket

<*>Unix domain socket

<*>Transformation user configuration interface

<> PF_KEY sockets

[*]TCP/IP networking

[*]   IP: multicasting

[*]   IP: advanced router

ChooseIP: FIB lookup algorithm (choose FIB_HASH if unsure) (FIB_HASH)  --->

[*]   IP: policy routing

[*]   IP: equal cost multipath

[*]   IP: verbose route monitoring

[]   IP: kernel level autoconfiguration <=== 我很少用網絡引導OS,內核級別的網絡配置對我無用。

[]     IP: DHCPsupport

[]     IP: BOOTPsupport

[]     IP: RARPsupport

<>   IP: tunneling

<>   IP: GRE tunnels over IP

[*]   IP: multicast routing

[]         IP:multicast policy routing

[*]     IP: PIM-SM version 1support

[*]     IP: PIM-SM version 2support

[]   IP: ARP daemon support

[]   IP: TCP syncookiesupport (disabled per default) <===抵抗SYN flood攻擊,我是開發機,暫不考慮安全特性

<>   IP: AH transformation

<>   IP: ESP transformation

 < >   IP: IPComptransformation

<>   IP: IPsec transport mode

<>   IP: IPsec tunnel mode

<>   IP: IPsec BEET mode

[*]   Large Receive Offload (ipv4/tcp)

<>   INET: socket monitoringinterface

[]   TCP: advanced congestioncontrol  ---> <=== 高級擁塞控制,如果沒有特殊需求(比如無線網絡)就別選了

<>   The IPv6 protocol  ---> <=== 我暫時沒有要支持IPV6的需求

[]   NetLabelsubsystem support <=== NetLabel子系統,爲諸如CIPSO與RIPSO之類能夠在分組信息上添加標籤的協議提供支持,我用不到

[] Security Marking <=== 對網絡包進行安全標記,類似於nfmark,但主要是爲安全目的而設計,安全特性,我暫時不考慮

[] Network packet filtering framework (Netfilter)  ---> <=== 我不打算使用防火牆,要用到時再編譯進去

<> Asynchronous Transfer Mode (ATM)

<> 802.1d Ethernet Bridging

<> 802.1Q VLAN Support

<> DECnet Support

<> ANSI/IEEE 802.2 LLC type 2 Support

<> The IPX protocol

<> Appletalk protocol support

<> Phonet protocols family

[] QoS and/or fair queueing  --->  <=== 通過IPRoute切換網絡設備上的Qos策略,我不打算使用IP路由

[] Data Center Bridging support

Networktesting  --->

[]   Amateur Radio support  ---> <=== 我沒有無線電

<>   CAN bus subsystem support  --->

<>   IrDA (infrared)subsystem support --->

<>   Bluetooth subsystem support  --->

[]   Wireless  ---> <=== 我沒有使用無線網卡

         <> cfg80211 – wirelessconfiguration API

        <>Common routines for IEEE802.11 driver

[]     WimaxWireless Broadband support

<>   RF switch subsystemsupport  ---> <=== 我沒有RF切換設備

<>  CAIF support

DeviceDrivers  --->

GenericDriver Options --->

(/sbin/hotplug) path to uevent helper

[*]Prevent firmware from being built

-*-Userspace firmware loading support

[*]   Include in-kernel firmware blobsin kernel binary

()    External firmware blobs tobuild into the kernel binary

[] Driver Core verbose debug messages

[] Managed device resources verbose debug messages <===管理設備資源的冗長調試信息,我不需要

<*>Connector - unified userspace <-> kernelspace linker --->// 內核空間與用戶空間的信道

[*]   Report process events to userspace// 報告處理時間給用戶空間

<> Memory Technology Device (MTD) support  --->

<> Parallel port support  --->

-*-Plug and Play support --->

[]   PNP debugging messages <=== 調試信息,老規矩

[] Block devices  ---> <=== 我沒有想要支持的塊設備,比如ramdisk, 磁盤陣列,CD/DVD刻錄等,詳見內部選項

[] Misc devices ---> <=== 沒有需要支持的雜項設備

<> ATA/ATAPI/MFM/RLL support  --->

SCSIdevice 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

SCSITransports --->

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

SerialATA (prod) and Parallel ATA (experimental) drivers  --->

        [*]  Verbose ATA error reporting

[*]   ATA ACPI Support

[]   SATA Port Multipliersupport <=== 我只有一枚SATA設備,沒有使用 多路SATA/SATA Hub 的需求。Port Multiplier是南橋芯片提供的一種支持多塊SATA設備,並共享總帶寬的技術。

<*>   AHCI SATA support

<>      PlatformAHCI SATA support

<>      Inito 162x SATA support

<>   Silicon Image 3124/3132SATA support

[*]   ATA SFF support // 選擇自己硬件對應的驅動即可

<>     ServerWorks Frodo / Apple K2 SATA support

<*>     Intel ESB, ICH, PIIX3,PIIX4 PATA/SATA support // Intel ICH,G系列chipset driver

<>     Marvell SATAsupport 

<>     NVIDIA SATAsupport  

<>     PacificDigital ADMA support                  

<>     PacificDigital SATA QStor support            

<>     Promise SATATX2/TX4 support                  

<>     SiliconImage SATA support                    

<>     SiS 964/965/966/180 SATA support              

<>     ULi Electronics SATA support                  

<>     VIA SATAsupport     

<>     VITESSEVSC-7174 / INTEL 31244 SATA support   

<>     Initio 162xSATA support                      

<>     ACPIfirmware driver for PATA                 

<>     ALi PATA support     

<>     AMD/NVidiaPATA support <=== 我用的是SATA,取消PATA支持

<>     ARTOP6210/6260 PATA support                  

<>     ATI PATAsupport     

<>     CMD64x PATAsupport  

<>     CS5510/5520PATA support                      

<>     CS5530 PATAsupport

<>     CS5536 PATAsupport                            

<>     EFARSLC90E66 support                         

<>     Generic ATAsupport                           

<>     HPT 366/368PATA support                      

<>     HPT 343/363PATA support                      

<>     IT8211/2PATA support                         

<>     JMicron PATA support                          

<>     Compaq Triflex PATA support                   

<>     Marvell PATAsupport via legacy mode          

<>     Intel PATA MPIIXsupport <=== 我用的是SATA,取消PATA支持

<>     Intel PATAold PIIX support <=== 我用的是SATA,取消PATA支持

<>     NETCELLRevolution RAID support               

<>     Nat SemiNS87410 PATA support                 

<>     Nat SemiNS87415 PATA support                 

<>     OlderPromise PATA controller support         

<>     PC TechRZ1000 PATA support                   

<>     SC1200 PATAsupport                           

<>     SERVERWORKSOSB4/CSB5/CSB6/HT1000 PATA support

<>     Promise PATA2027x support                     

<>     CMD /Silicon Image 680 PATA support          

<>     SiS PATA support                              

<>     VIA PATAsupport                              

<>     Winbond SL82C105 PATA support                 

<>     Intel SCHPATA support <=== 我用的是SATA,取消PATA支持

[] Multiple devices driver support (RAID and LVM)  ---> <=== 暫時沒有要使用Raid(磁盤陣列)和LVM(邏輯卷管理器,添加,刪除邏輯分區)的需求

[] Fusion MPT device support  --->

IEEE1394 (FireWire) support --->

<> I2O device support --->

[] Macintosh device drivers  ---> <=== Mac系統硬件設備驅動,沒什麼好說的,關

[*]Network device support --->

<>   Dummy net driversupport                        

<>   Bonding driversupport                          

<>   EQL (serial line loadbalancing) support        

<>   Universal TUN/TAP devicedriver support         

<>   Virtual ethernet pair device                    

<>   General InstrumentsSurfboard 1000              

<>   ARCnetsupport  ---> 

-*-   PHY Device support andinfrastructure  ---> <=== PHY (物理層控制芯片) ,裏面沒有我對應的硬件

[]   Ethernet (10 or100Mbit)  ---> <=== 如果你是百 M卡,請自行選擇

[*]   Ethernet (1000 Mbit)  --->//選擇自己對應的硬件

[]   Ethernet (10000 Mbit)  ---> <=== 如果你是萬M卡,請自行選擇

<>   Token Ring driver support  ---> <===IBM的令牌環網,用以太網的忽略

[]     WirelessLAN  --->  <=== 不用無線網絡

      *** Enable WiMAX (Networking options) to see the WiMAXdrivers *** 

      USB Network Adapters  --->           

[]   Wan interfaces support  --->                    

<>   FDDI driver support <=== 光纖卡驅動,相信沒幾個人能用上這玩意

<>   PPP (point-to-pointprotocol) support           

<>   SLIP (serial line)support                      

[]   FibreChannel driver support

[]    Network consolelogging support

[]    VMware VMXNET3 ethernet driver

[] ISDN support --->       

<> Telephony support --->  

Inputdevice support --->

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

-*-   Support for memorylessforce-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 DeviceDrivers ***                    

-*-   Keyboards  --->

[*]   Mice  --->                             

[]   Joysticks/Gamepads  --->  <=== 遊戲設備

[]   Tablets  ---> <=== 平板PC

[]   Touchscreens  --->  <=== 觸摸屏

[]   Miscellaneous devices  ---> <=== 雜七雜八的驅動,揚聲器,筆記本擴展按鍵等

HardwareI/O ports  --->

Characterdevices  ---> 

-*-Virtual terminal         

[*]   Support for binding and unbindingconsole drivers// 在某些系統上可以使用多個控制檯驅動程序(如framebuffer控制檯驅動程序),該選項使得你可以選擇其中之一,我一般只用默認的虛擬終端

[]/dev/kmem virtual devicesupport  <===支持/dev/kmem設備,很少用    

[]Non-standard serial port support  <=== 我沒有非標準的串口設備

 Serial drivers  --->

<> 8250/16550 and compatible serial support <=== 兼容一些老式的串口設備,我一般不用

    *** Non-8250 serial portsupport ***

<> Digi International NEO PCI Support

-*-Unix98 PTY support       

[]   Support multiple instancesof devpts            

[] Legacy (BSD) PTY support 

<> IPMI top-level message handler  --->              

<*>Hardware Random Number Generator Core support     

<>   Timer IOMEM HW RandomNumber Generator support  

<*>   Intel HW Random Number Generatorsupport    

<>   AMD HW Random Number Generatorsupport  <===我是intel主板

< >  AMD Geode HW Random Number Generator support <===我是intel主板

<>   VIA HW Random Number Generatorsupport <=== 我是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 mmapof HPET     

<> Hangcheck timer

-*-I2C support  ---> // 感知硬件狀態,比如溫度,風扇轉速

[] SPI support --->        

    PPS support  --->        

[] GPIO Support --->       

<> Dallas's 1-wire support  --->                     

-*-Power supply class support  --->                  

<*>Hardware Monitoring support  --->      

-*-Generic Thermal sysfs driver  --->                

[]Watchdog Timer Support ---> <=== 系統監視程序,我一般不用

    Sonics Silicon Backplane  --->                    

[*]    Multifunction device drivers  --->                

[] Voltage and Current Regulator Support  --->       

<> Multimedia support ---> 

Graphicssupport  --->

< >/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 ScrollbackBuffer in System RAM

<>Sound card support  --->  <=== 用不到聲卡

[]HID Devices  --->  <=== 用不到人力工程學設備

[]USB support  --->  <=== 這個選項,對於跑物理機建議開啓,因爲有可能你的鍵盤是USB的,我是跑虛擬機的,所以關了

<> MMC/SD/SDIO card support  --->  

<> Sony MemoryStick card support (EXPERIMENTAL)  --->

[]LED Support  --->  <=== 發光二級管,應該是跟顯示器相關的驅動,由於我運行的是虛擬機,所以我選擇關閉

[] Accessibility support --->

<> InfiniBand support  ---> 

[*]EDAC (Error Detection And Correction) reporting  ---> // 硬件故障repoting

<*>Real Time Clock --->

[*]DMA Engine support ---> 

[] Auxiliary Display support  --->                   

<> Userspace I/O drivers  --->                       

    TI VLYNQ  --->           

[] Staging drivers --->    

[]X86 Platform Specific Device Drivers ---> <=== 一些筆記本的驅動,我沒有相關設備

 

FirmwareDrivers  --->

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

 

Filesystems  --->

<> Second extended fs support

<>Ext3 journalling file system support <=== 我使用的是ext4 FS

<*>The Extended 4 (ext4) filesystem

[]   Enable ext4devcompatibility                    

[*]   Ext4 extended attributes

[*]     Ext4 POSIX AccessControl Lists

[]     Ext4 SecurityLabels  <===取消 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 supportsv3)

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

 

Kernelhacking  --->

[]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 Nmilliseconds  

<> torture tests for RCU                             

[] Check for stalled CPUs delaying RCU grace periods 

<> Self test for the backtracecode                  

[] Force extended block device numbers and spread them

[] Fault-injection framework                         

[] Latency measuring infrastructure                  

[*]Sysctl checks

[]Tracers  --->

[]Remote debugging over FireWire early on boot  <=== 啓動過程中,允許遠程調試內核

[] Enable dynamic printk() support

[] Enable debugging of DMA-API usage

[] Sample kernel code --->                          

[] Filter access to /dev/mem

[]Enable verbose x86 bootup info messages <=== 在內核鏡像解壓縮階段輸出啓動信息,關閉後相當於無聲啓動(SlientBootup)

-*-Early printk 

[]   Early printkvia EHCI debug port  <=== 允許printk通過EHCI調試端口輸出內核日誌,調試的一律關

[] Use 4Kb for kernel stacks instead of 8Kb

[] Enable IOMMU stress-test mode

    IO delay type (port 0x80based port-IO delay [recommended])  --->  

[*]Allow gcc to uninlinefunctions marked 'inline'

 

Securityoptions  --->  <=== 安全特性,我選擇全關,當然,這些選項不會影響你的日常開發,辦公

[]Enable access key retention support <=== 關閉

[]Enable different security models <=== 關閉

[] Enable the securityfs filesystem

[]File POSIX Capabilities <=== 關閉

[] Integrity Measurement Architecture(IMA)

 

< >Cryptographic API  ---> // 加密API,這部分選項會根據此前的優化自動調整,默認即可

[]Virtualization  ---> <===我的系統已經運行在虛擬機中,不需要再支持虛擬化

Libraryroutines  ---> // 庫子程序,這部分選項會根據此前的優化自動調整,默認即可



轉自:http://kenwublog.com/docs/linux-kernel-2-6-36-optimization.htm




博主所有文章已轉自私人博客 Joe 的個人博客,謝謝關注!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章