linux内核2.6.3x--General setup 常规设置
生活随笔
收集整理的這篇文章主要介紹了
linux内核2.6.3x--General setup 常规设置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://hi.baidu.com/shwkj/item/9dbf9215ff5cfe038ebde4af
膜拜大神:shwkongjian
General setup ---> 常規設置
[*] BFS cpu scheduler (NEW)寬度優先搜索算法
[*]Prompt for development and/or incomplete code/drivers選顯示尚在開發中或尚未完成的代碼與驅動.你應該選擇它,因為有許多設備可能必需選擇這個選項才能進行配置,實際上它是安全的。這個選項同樣會讓一些老的驅 動的可用。如果你選了Y,你將會得到更多的阿爾法版本的驅動和代碼的配置菜單。
()Local version - append to kernel release
在內核版本后面加上自定義的版本字符串(小于64字符),可以用"uname -a"命令看到
[ ]Automatically append version information to the version string
自動生成版本信息。這個選項會自動探測你的內核并且生成相應的版本,使之不會和原先的重復。這需要Perl的支持。由于在編譯的命令make-kpkg 中我們會加入- – append-to-version 選項來生成自定義版本,所以這里選N。
Kernel compression mode (Gzip)內核壓縮模式選baip2
gzip用于UNIX系統的文件壓縮。后綴為.gz的文件。現今已經成為Internet 上使用非常普遍的一種數據壓
縮格式,或者說一種文件格式。HTTP協議上的GZIP編碼是一種用來改進WEB應
用程序性能的技術。大流量的WEB站點常常使用GZIP壓縮技術來讓用戶感受更快的速度。?
bzip2是一個基于Burrows-Wheeler 變換的無損壓縮軟件,壓縮效果比傳統的
LZ77/LZ78壓縮算法來得好。它是一款免費軟件。bzip2能夠進行高質量的數據
壓縮。它利用先進的壓縮技術,能夠把普通的數據文件壓縮10%至15%,壓縮的速
度和解壓的效率都非常高!支持現在大多數壓縮格式,包括tar、gzip 等等。
lzma是一個Deflate和LZ77算法改良和優化后的壓縮算法,開發者是Igor Pavlov,
2001年被首次應用于7-Zip壓縮工具中,是 2001年以來得到發展的一個數據壓縮算法。
它使用類似于 LZ77 的字典編碼機制,在一般的情況下壓縮率比 bzip2 為高,用于
壓縮的可變字典最大小可達4GB。
[*] Support for paging of anonymous memory (swap)選
將使你的內核支持虛擬內存這個虛擬內存在LINUX中就是SWAP分區。除非你不想要SWAP分區,否則這里必選Y。
[*] System V IPC 選
System V進程間通信(IPC)支持,于處理器在程序之間同步和交換信息,如果不選這項,很多程序運行不起來,特別地,你想在LINUX下運行 DOS仿真程序,你必須要選Y。
[*] POSIX Message Queues 選
POSIX消息隊列,這是POSIX IPC中的一部分。建議你最好將它選上POSIX 表示可移植操作系統接口
[*] BSD Process Accounting 選
這是充許用戶進程訪問內核將賬戶信息寫入文件中的這通常被認為是個好主意,建議你最好將它選上。
將進程的統計信息寫入文件的用戶級系統調用,主要包括進程的創建時間/創建者/內存占用等信息
[ ]?? BSD Process Accounting version 3 file format
選Y,統計信息將會以新的格式(V3)寫入,這格式包含進程ID和父進程。注意這個格式和以前的 v0/v1/v2 格式不兼容,所以你需要升級相關工具來使用它。
[*] Export task/process statistics through netlink (EXPERIMENTAL)│選
處于實驗階段的功能。通過通用的網絡輸出工作/進程的相應數據,和BSD不同的是,這些數據在進程運行的時候就可以通過相關命令訪問。和BSD類似,數據 將在進程結束時送入用戶空間。如果不清楚,選N。
[*]?? Enable per-task delay accounting (EXPERIMENTAL)選
在統計信息中包含進程等候系統資源(cpu,IO同步,內存交換等)所花費的時間
[*]?? Enable extended accounting over taskstats (EXPERIMENTAL)
在統計信息中包含擴展進程所花費的時間
[*]???? Enable per-task storage I/O accounting (EXPERIMENTAL)?
在統計信息中包含I/O存儲進程所花費的時間
[*] Auditing support?
允許審計的下層能夠被其他內核子系統使用,比如SE-Linux,它需要這個來進行登錄時的聲音和視頻輸出。沒有 CONFIG_AUDITSYSCALL 時(即下一個選項)無法進行系統調用。
審計支持,用于和內核的某些子模塊同時工作,(例如SELinux)需要它,只有同時選擇其子項才能
對系統調用進行審計
[*]?? Enable system-call auditing support
支持對系統調用的審計
允許系統獨立地或者通過其他內核的子系統,調用審計支持,比如SE-Linux。要使用這種審計的文件系統來查看特性,請確保 INOTIFY 已經被設置。
RCU Subsystem? --->? 一個高性能的鎖機制RCU 子系統
RCU Implementation (Tree-based hierarchical RCU)? --->
RCU 實現機制
(X) Tree-based hierarchical RCU??????
基本數按等級劃分
[ ] Enable tracing for RCU?
激活跟蹤
(32) Tree-based hierarchical RCU fanout value?
基本數按等級劃分分列值
[ ] Disable tree-based hierarchical RCU auto-balancing???
< > Kernel .config support
這個選項允許.config文件(即編譯LINUX時的配置文件)保存在內核當中。它提供正在運行中的或者還在硬盤中的內核的相關配置選項。可以通過內核 鏡像文件 kernel image file 用命令 script scripts/extract-ikconfig 來提取出來,作為當前內核重編譯或者另一個內核編譯的參考。如果你的內核在運行中,可以通過/proc/config.gz文件來讀取。下一個選項提供這 項支持。
看起來好像是一個不錯的功能,可以把編譯時的 .config文件保存在內核中,以供今后參考調用。用來重編譯和編譯其他的內核的時候可以用上。你是一個編譯內核的狂人的話,這項要選上
(18) Kernel log buffer size (16 => 64KB, 17 => 128KB)??????
內核日志緩存的大小,12 => 4 KB,13 => 8 KB,14 => 16 KB單處理器,15 => 32 KB多
處理器,16 => 64 KB for x86 NUMAQ or IA-64,17 => 128 KB for S/390
[ ]?? Enable access to .config through /proc/config.gz (NEW)
上一項的子項,可以通過/proc/config.gz 訪問當前內核的.config 。新功能,上一項選的話這個就選上吧。
[*] Group CPU scheduler
CPU組調度(Group Scheduling,可以為進程賦予不同于nice level的調度優先級。尤其
在企業級硬件系統上,可以進一步優化實時任務的調度。桌面用戶可以不選)
[*]?? Group scheduling for SCHED_OTHER
SCHED_OTHER(SCHED:Process Scheduler,
負責控制進程對CPU的使用.調度算法的公平,??? 有效,硬件有關事件的及時處理)組調度??
[ ]?? Group scheduling for SCHED_RR/FIFO
SCHED_RR?FIFO組調度
Basis for grouping tasks (Control groups)
基于分配的任務?
[*] Control Group support? ---> ????
cgroup支持,如cpusets那樣來使用cgroup子系統進程(不確定可以不選
[ ]?? Example debug cgroup subsystem
cgroup子系統調試例子
[*]?? Namespace cgroup subsystem?
cgroup子系統命名空間
[*]?? Freezer cgroup subsystem?
[ ]?? Device controller for cgroups
cgroups設備控制器
[*]?? Cpuset support
只有含有大量CPU(大于16個)的SMP系統或NUMA(非一致內存訪問)系統才需要它
[*]???? Include legacy /proc/<pid>/cpuset file
[*]?? Simple CPU accounting cgroup subsystem?
簡單cgroup子系統cpu所花費的時間
[*]?? Resource counters?
資源計數器
[ ]???? Memory Resource Controller for Control Groups
cgroup內存資源控制器
[ ] enable deprecated sysfs features which may confuse old usersp│?
-*- Kernel->user space relay support (formerly relayfs)
在某些文件系統上(比如debugfs)提供從內核空間向用戶空間傳遞大量數據的接口
內核系統區和用戶區進行傳遞通訊的支持。這個選項在特定的文件系統中提供數據傳遞接口支持,它可以提供從內核空間到用戶空間的大批量的數據傳遞工具和設 施。如果不清楚,選N。
-*- Namespaces support
命名空間支持,允許服務器為不同的用戶信息提供不 同的用戶名空間服務?
[*]?? UTS namespace
通用終端系統的命名空間。它允許容器,比如Vservers利用UTS命名空間來為不同的服務器提供不同的UTS。如果不清楚,選N。
UTS名字空間支持,不確定可以不選
[*]?? IPC namespace?
IPC命名空間,不確定可以不選
[*]?? User namespace (EXPERIMENTAL)
User命名空間,不確定可以不選
[*]?? PID Namespaces (EXPERIMENTAL)
PID命名空間,不確定可以不選
[*]?? Network namespace
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) suppor│?
初始RAM的文件和RAM磁盤( initramfs /initrd)支持(如果要采用initrd啟動則要選擇,否則可以不選)
()??? Initramfs source file(s)
initrd已經被initramfs取代,如果你不明白這是什么意思,請保持空白
[*] Optimize for size?
這個選項將在GCC命令后用 “-Os” 代替 “-O2″參數,這樣可以得到更小的內核。沒必要選。一個編譯好的內核才7-10多M,大家不會少這么點空間吧。選上了可能會出一些問題。最好不選。有時 會產生錯誤的二進制代碼
[ ] Configure standard kernel features (for small systems)? --->
這個選項可以讓內核的基本選項和設置無效或者扭曲。這是用于特定環境中的,它允許“非標準”內核。你要是選它,你一定要明白自己在干什么。這是為了編譯某 些特殊用途的內核使用的,例如引導盤系統。
配置標準的內核特性(為小型系統)
-*-?? Load all symbols for debugging/ksymoops
裝載所有的調試符號表信息,僅供調試時選擇
[*]???? Include all symbols in kallsyms
在kallsyms中包含內核知道的所有符號,內核將會增大300K
[*]???? Do an extra kallsyms pass
除非你在kallsyms中發現了bug并需要報告這個bug才打開該選項
Kernel Performance Events And Counters? --->
[*] Kernel performance events and counters?
[*]?? Tracepoint profiling sources
[ ] Kernel performance counters (old config option)
[ ] Debug: use vmalloc to back perf mmap() buffers
[ ] Disable heap randomization
禁用隨機heap(heap堆是一個應用層的概念,即堆對CPU是不可見的,它的實現方式有多種,
可以由OS實現,也可以由運行庫實現,如果你愿意,你也可以在一個棧中來實現一個堆)
Choose SLAB allocator (SLUB (Unqueued Allocator))? --->
選擇內存分配管理器(強烈推薦使用SLUB)
( ) SLAB各種環境通用的內存分配管理器
(X) SLUB (Unqueued Allocator)更加優秀的內存分配管理器
[*] Profiling support (EXPERIMENTAL)不選
剖面支持,用一個工具來掃描和提供計算機的剖面圖。
支持系統評測(對于大多數用戶來說并不是必須的)?
< > OProfile system profiling (EXPERIMENTAL)
OProfile評測和性能監控工具?
[*] Kprobes不選
調試內核除非開發人員,否則不選
GCOV-based kernel profiling? --->
[ ] Enable gcov-based kernel profiling?
**************************************************
[*] Enable loadable module support? --->
打開可加載模塊支持,如果打開它則必須通過"make modules_install"把內核模塊安裝在/lib/modules/中
這個選項可以讓你的內核支持模塊,模塊是什么呢?模塊是一小段代碼,編譯后可在系統內核運行時動態的加入內核,從而為內核增加一些特性或是對某種硬件進行 支持。一般一些不常用到的驅動或特性可以編譯為模塊以減少內核的體積。在運行時可以使用modprobe命令來加載它到內核中去(在不需要時還可以移除 它)。一些特性是否編譯為模塊的原則是,不常使用的,特別是在系統啟動時不需要的驅動可以將其編譯為模塊,如果是一些在系統啟動時就要用到的驅動比如說文 件系統,系統總線的支持就不要編為模塊,否則無法啟動系統。在啟動時不用到的功能,編成模塊是最有效的方式。你可以查看MAN手冊來了 解:modprobe, lsmod, modinfo, insmod 和 rmmod.
如果不清楚,選Y。
[ ]?? Forced module loading?
允許強制加載模塊
[*]?? Module unloading
允許卸載已經加載的模塊
[*]???? Forced module unloading?
允許強制卸載正在使用中的模塊(比較危險)這個選項允許你強行卸除模塊,即使內核認為這不安全。內核將會立即移除模塊,而不管是否有人在使用它(用 rmmod -f 命令)。這主要是針對開發者和沖動的用戶提供的功能。
如果不清楚,選N。
[ ]?? Module versioning support
有時候,你需要編譯模塊。選這項會添加一些版本信息,來給編譯的模塊提供獨立的特性,以使不同的內核在使用同一模塊時區別于它原有的模塊。這有時可能會有 點用。
如果不清楚,選N。?????????? 允許使用其他內核版本的模塊(可能會出問題)
[ ]?? Source checksum for all modules
為所有的模塊校驗源碼,如果你不是自己編寫內核模塊就不需要它
這個功能是為了防止你在編譯模塊時不小心更改了內核模塊的源代碼但忘記更改版本號而造成版本沖突。如果不清楚,選N。
**************************************************
-*- Enable the block layer? --->
塊設備支持,使用硬盤/USB/SCSI設備者必選
這選項使得塊設備可以從內核移除。如果不選,那么 blockdev 文件將不可用,一些文件系統比如 ext3 將不可用。這個選項會禁止 SCSI 字符設備和 USB 儲存設備,如果它們使用不同的塊設備。
選Y,除非你知道你不需要掛載硬盤和其他類似的設備。不過此項無可選項
[*]?? Support for large (2TB+) block devices and files?????
僅在使用大于2TB的塊設備時需要
[*]?? Block layer SG support v4
通用scsi塊設備第4版支持?
[ ]?? Block layer data integrity support?
塊設備數據完整性支持
IO Schedulers? --->
IO調度器I/O是輸入輸出帶寬控制,主要針對硬盤,是核心的必須的東西。這里提供了三個IO調度器。
<*> Anticipatory I/O scheduler 使用于大多數環境
假設一個塊設備只有一個物理查找磁頭(例如一個單獨的SATA硬盤),將多個隨機的小寫
入流合并成一個大寫入流,用寫入延時換取最大的寫入吞吐量.適用于大多數環境,特別
是寫入較多的環境(比如文件服務器)搶先式 I/O 調度方式是默認的磁盤調度方式。它對于大多數環境通常是比較好的選擇。但是它和Deadline I/O 調度器相比有點大和復雜,它有時在數據調入時會比較慢。
<*> Deadline I/O scheduler
使用輪詢的調度器,簡潔小巧,提供了最小的讀取延遲和尚佳的吞吐量,特別適合于讀取
較多的環境(比如數據庫)Deadline I/O調度器簡單而又緊密,在性能上和搶先式調度器不相上下,在一些數據調入時工作得更好。至于在單進程I/O磁盤調度上,它的工作方式幾乎和搶先式調度 器相同,因此也是一個好的選擇。
<*> CFQ I/O scheduler
使用QoS策略為所有任務分配等量的帶寬,避免進程被餓死并實現了較低的延遲,可以
認為是上述兩種調度器的折中.適用于有大量進程的多用戶系統CFQ調度器嘗試為所有進程提供相同的帶寬。它將提供平等的工作環境,對于桌面系統很合適。
Default I/O scheduler (CFQ)? --->?
默認IO調度器我這樣理解上面三個IO調度器:搶先式是傳統的,它的原理是一有響應,就優先考慮調度。如果你的硬盤此時在運行一項工作,它也會暫停下來先 響應用戶。
期限式則是:所有的工作都有最終期限,在這之前必須完成。當用戶有響應時,它會根據自己的工作能否完成,來決定是否響應用戶。
CFQ則是平均分配資源,不管你的響應多急,也不管它的工作量是多少,它都是平均分配,一視同仁的。
( ) Anticipatory
( ) Deadline
(X) CFQ
( ) No-op???
**************************************************
Processor type and features? --->
中央處理器(CPU)類型及特性
[*] Tickless System (Dynamic Ticks)
非固定頻率系統,這項技術能讓新內核運行的更有效率,并且更省電
[*] High Resolution Timer Support不選
支持高頻率時間發生器,如果硬件不兼容,則這個選項只會增大內核(大多數個人PC并沒有這個)
[*] 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 系列的板上運行。
[*] 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
[ ] AMD Elan
[ ] Moorestown MID platform
[ ] RDC R-321x SoC 潛入式相關
[ ] Support non-standard 32-bit SMP architectures?????
[*] 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)
增加虛擬機的運行效率
[ ] Memtest
內存測試
Processor family (Pentium-Pro)? --->
處理器系列,請按照你實際使用的CPU選擇這里是處理器的類型。這里的信息主要目的是用來優化。為了讓內核能夠在所有X86構架的CPU上運行(雖然不是 最佳速度),在這你可以選386。
內核不會運行在比你選的構架還要老的機器上。比如,你選了Pentium構架來優化內核,它將不能在486構架上運行。如果你不清楚,選386。
??
[*] Generic x86 support不選
這一選項針對x86系列的CPU使用更多的常規優化。如果你在上面一項選的是i386、i586
之類的才選這個通用x86支持,如果你的CPU能夠在上述"Processor family"中找到就別選
除了對上面你選擇的X86 CPU進行優化,它還對更多類型X86 CPU的進行優化。這將會使內核在其他的X86 CPU上運行得更好。
這個選項提供了對X86系列CPU最大的兼容性,用來支持一些少見的x86構架的CPU。如果你的CPU能夠在上面的列表中找到,就里就不用選了。
[*] 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)
適合運行實時程序的主動內核搶占
這個選項通過使所有內核代碼(非致命部分)編譯為“可搶先”來降低內核延遲。
這通過允許低優先級進程進行強制搶先來響應事件,即使這些進程正在進行系統調用或者未達到正常的“搶先點”。這使得應用程序運行得更加“流暢”即使系統已 經是高負荷運轉。代價是吞吐量降低,內核運行開銷增大。
選這項如果你是為桌面或者嵌入式系統編譯內核,需要非常低的延遲。
如果你要最快的響應,選第三項。我認為萬物是平衡的,低延遲意味著系統運行不穩定,因為過多來響應用戶的要求,所以我選第二個。
[ ] Local APIC support on uniprocessors
單CPU的本地APIC (advanced programmable interrupt controller)支持,它內嵌
在cpu中支持cpu自身產生的中斷.建議選擇,就算cpu不支持APIC,也沒有影響.
[*]?? IO-APIC support on uniprocessors (NEW)
同上,支持I/O高級可編程中斷控制器.
[*] 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。
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”。
[ ] 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內核新增功能,不確定可以不選)
[*]?? x86 PAT support
使用PAT(Performance Acceleration Technology)性能加速技術屬性來對頁面級
緩存控制進行設置(不確定可以不選)
[*] EFI runtime service support不選
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 kernel不選
建立一個移動的內核,除非特殊要求否則只是增大內核大小而已
(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
總結
以上是生活随笔為你收集整理的linux内核2.6.3x--General setup 常规设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用省市二级目录JSON模板
- 下一篇: 孩子叛逆不听话怎么办