linux核心編譯選項詳解(三):Processor type and features

來源:互聯網
上載者:User

[*] Tickless System (Dynamic Ticks)  --->

非固定頻率系統,這項技術能讓新核心啟動並執行更有效率,並且更省電。 

[*] High Resolution Timer Support
不選
支援高頻率時間發生器,如果硬體不相容,則這個選項只會增大核心(大多數個人PC並沒有這個)

[*] Symmetric multi-processing support
不選

稱多處理器支援,如果你有多個CPU或者使用的是多核CPU就選上,此時"Enhanced RealTime Clock
Support"選項必須開啟,"Advanced Power
Management"選項必須關閉。如果你選N,核心將會在單個或者多個CPU的機器上運行,但是只會使用一個CPU。如果你選Y,核心可以在很多(但
不是所有)單CPU的機器上運行,在這樣的機器,你選N會使核心運行得更快。注意如果你選Y,然後在Processor
family選項中選擇“586″ or “Pentium”
,核心將不能運行在486構架的機器上。同樣的,多CPU的運行於PPro構架上的核心也無法在 Pentium 系列的板上運行。

[*] 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
不選
支援非pc

[*] Single-depth WCHAN output
編譯選項

[ ] Paravirtualized guest support  --->

虛擬化用戶端支援

  • [ ]   VMI Guest support (DEPRECATED) (NEW)

    VMware ESX server用戶端
  • [ ]   KVM paravirtualized clock (NEW)

    KVM時允許虛擬一個時鐘
  • [ ]   KVM Guest support (NEW)

    KVM用戶端
  • [ ]   Lguest guest support (NEW)

    Lguest(linux核心虛擬化的x86程式)用戶端
  • [ ]   Enable paravirtualization code (NEW)

    增加虛擬機器的運行效率

[ ] Disable Bootmem code

[ ] Memtest

記憶體測試

Processor family (Pentium-Pro)  --->


理器系列,請按照你實際使用的CPU選擇這裡是處理器的類型。這裡的資訊主要目的是用來最佳化。為了讓核心能夠在所有X86構架的CPU上運行(雖然不是
最佳速度),在這你可以選386。核心不會運行在比你選的構架還要老的機器上。比如,你選了Pentium構架來最佳化核心,它將不能在486構架上運行。
如果你不清楚,選386。

  • ( ) 386
  • ( ) 486
  • ( ) 586/K5/5x86/6x86/6x86MX 
  • ( ) Pentium-Classic
  • ( ) Pentium-MMX
  • (X) 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

[*] Generic x86 support
不選

一選項針對x86系列的CPU使用更多的常規最佳化。如果你在上面一項選的是i386、i586之類的才選這個通用x86支援,如果你的CPU能夠在上
述"Processor family"中找到就別選。除了對上面你選擇的X86 CPU進行最佳化,它還對更多類型X86
CPU的進行最佳化。這將會使核心在其他的X86
CPU上運行得更好。這個選項提供了對X86系列CPU最大的相容性,用來支援一些少見的x86構架的CPU。如果你的CPU能夠在上面的列表中找到,就
裡就不用選了。

[ ] PentiumPro memory ordering errata workaround

[*] 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系列有較好的支援。如果你不清楚,選N

Preemption Model (Voluntary Kernel Preemption (Desktop))  ---│>


核搶佔模式一些優先順序很高的程式可以先讓一些低優先順序的程式執行,即使這些程式是在核心態下執行。從而減少核心潛伏期,提高系統的響應。當然在一些特殊
的點的核心是不可搶先的,比如核心中的發送器自身在執行時就是不可被搶先的。這個特性可以提高案頭系統、即時系統的效能。

  • ( ) No Forced Preemption (Server)

    適合伺服器環境的禁止核心搶佔這是傳統的LINUX搶先式模型,針對於高輸送量設計。它同樣在很多時候會提供很好的響應,但是也可能會有較長的延遲。如果你是建立伺服器或者用於科學運算,選這項,或者你想要最大化核心的原始運算能力,而不理會調度上的延遲。
  • (X) Voluntary Kernel Preemption (Desktop)


    合普通案頭環境的自願核心搶佔這個選項通過向核心添加更多的“清晰搶先點”來減少核心延遲。這些新的搶先點以降低輸送量的代價,來降低核心的最大延遲,提
    供更快的應用程式響應。這通過允許低優先順序的進程自動搶先來響應事件,即使進程在核心中進行系統調用。這使得應用程式運行得更“流暢”,即使系統已經是高
    負荷運轉。如果你是為案頭系統編譯核心,選這項。
  • ( ) Preemptible Kernel (Low-Latency Desktop)


    合運行即時程式的主動核心搶佔這個選項通過使所有核心代碼(非致命部分)編譯為“可搶先”來降低核心延遲。這通過允許低優先順序進程進行強制搶先來響應事
    件,即使這些進程進行中系統調用或者未達到正常的“搶先點”。這使得應用程式運行得更加“流暢”即使系統已
    經是高負荷運轉。代價是輸送量降低,核心運行開銷增大。選這項如果你是為案頭或者嵌入式系統編譯核心,需要非常低的延遲。如果你要最快的響應,選第三項。
    我認為萬物是平衡的,低延遲意味著系統運行不穩定,因為過多來響應使用者的要求,所以我選第二個。

[*] Reroute for broken boot IRQs

[*] Machine Check / overheating reporting

讓CPU檢測到系統故障時通知核心,以便核心採取相應的措施(如過熱關機等)

  • [*]   Intel MCE features
  • [*]   AMD MCE features    
  • [ ]   Support for old Pentium 5 / WinChip machine checks

< > Machine check injector support

讓CPU檢測到系統故障時通知核心,以便核心採取相應的措施(如過熱關機等)

< > Toshiba Laptop support

東芝筆記本模組支援

< > Dell laptop support

Dell筆記本模組支援

[*] 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 loading support
  • [*]   AMD microcode patch loading support

<*> /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)< > /sys/kernel/debug/x86/cpu/* - CPU Debug
support

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

[ ] PAE (Physical Address Extension) Support (NEW)

實體位址延伸 (PAE) 允許將最多 64 GB 的實體記憶體用作常規的 4 KB 頁面,並擴充核心能使用的位元以將實體記憶體地址從 32 擴充到 36。

[ ] Enable KSM for page merging

(4096) Low address space to protect from user allocation

[ ] Enable recovery from hardware memory errors

[*] Check for low memory corruption

  • [*]   Set the default setting of memory_corruption_check

[*] Reserve low 64K of RAM on AMI/Phoenix BIOSen

[ ] Math emulation
不選
數學副處理器模擬,486DX以上的cpu就不要選它了

[*] 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錯誤

  • [ ]   MTRR cleanup support

    MTRR清理(2.6.27核心新增功能,不確定可以不選)

[*] EFI runtime service suppor
t不選
EFI
啟動支援這裡允許核心在EFI平台上使用儲存於EFI韌體中的系統設定啟動。這也允許核心在運行時使用EFI的相關服務。這個選項只在有EFI韌體的系統
上有用,它會使核心增加8KB。另外,你必須使用最新的ELILO
登入器才能使核心採用EFI的韌體設定來啟動(GRUB和LILO完全不知道EFI是什麼東西)。即使你沒有EFI,卻選了這個選項,核心同樣可以啟動。
大家應該用的是GRUB,所以選上這個也沒什麼用。除非你的系統支援EFI(一種可代替傳統BIOS的技術)否則不選

[*] Enable seccomp to safely compute untrusted bytecode

只有嵌入式系統可以不選

[ ] Enable -fstack-protector buffer overflow detection (EXPERIMEN│

Timer frequency (1000 HZ) 
--->核心時鐘頻率 案頭1000 伺服器100或250

許設定時鐘頻率。這是使用者定義的時鐘中斷頻率 100HZ-1000 HZ ,不過 100 HZ
對伺服器和NUMA系統更合適,它們不需要很快速的響應使用者的要求,因為時鐘中斷會導致匯流排爭用和緩衝打回。注意在SMP環境中,時鐘中斷由變數
NR_CPUS *
Hz定義在每個CPU產生。其實和前面的搶先式進程差不多,就是多少頻率來響應使用者要求。我選了250HZ的。要快點的可以選1000HZ的。但是還是那
句話,一切是平衡的。機器過 快響應你,它自己的活就不知道做得好不好了。

  • ( ) 100 HZ

    100 HZ是傳統的對伺服器、SMP 和 NUMA的系統選項。這些系統有比較多的處理器,可以在中斷較集中的時候分擔中斷
  • ( ) 250 HZ

    250 HZ對伺服器是一個好的折衷的選項,它同樣在SMP 和 NUMA 系統上體現出良好的反應速度。
  • ( ) 300 HZ
  • (X) 1000 HZ

    1000 HZ對於案頭和其他需要快速事件反應的系統是非常棒的。

[*] kexec system call
不選
kexec

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

[ ] kexec jump (EXPERIMENTAL)
不選
kexec跳轉,如果你需要用kexec來啟動核心就選擇吧

[*] Build a relocatable kerne
l不選
建立一個移動的核心,除非特殊要求否則只是增大核心大小而已

(0x1000000) Alignment value to which kernel should be aligned

核心編譯、運行時的物理地址匹配,不要更改該值除非你知道你在幹嘛

-*- Support for hot-pluggable CPUs

對SMP休眠和熱插拔CPU提供支援

[ ] Compat VDSO support
不選
如果Glibc版本大於等於2.3.3就不選,否則就選上,目前的版本基本上都大於2.3.3
如果你啟動並執行是最新的glibc(GNU C函數庫)版本( 2.3.3 或更新),選N,這樣可以移除高階的VDSO 映射,使用隨機的 VDSO。

[ ] Built-in kernel command line

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.