Ubuntu成长历程-内核配置menuconfig详解(三)
—————————————————————————————————————————————————
[*] Tickless System (Dynamic Ticks)
##非固定频率系统,这项技术能让新内核运行的更有效率,并且更省电
[] High Resolution Timer Support
##支持高频率时间发生器,如果硬件不兼容,则这个选项只会增大内核(大多数个人PC并没有这个)
[*] Symmetric multi-processing support不选
##对称多处理器支持,如果你有多个CPU或者使用的是多核CPU就选上.此时
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 tablemps ##多处理器规范,让多CPU可以支持ACPI
[ ] Support for big SMP systems with more than 8 CPUs
[ ] Support for extended (non-PC) x86 platforms ##一些不是X86平台的支持,不用,X86介绍见后。
[ ] AMD Elan
[ ] Moorestown MID platform
[ ] RDC R-321x SoC ##片上系统,用不上。
[ ] Support non-standard 32-bit SMP architectures
[*] Single-depth WCHAN output ##编译选项
—————————————————————————————————————————————————
[ ] Paravirtualized guest support
—————————————————————————————————————————————————[ ] Memtest ##开机时候是否内存测试,没必要选
—————————————————————————————————————————————————
Processor family (Pentium-Pro)
—————————————————————————————————————————————————
[*] Generic x86 support
##这一选项针对x86系列的CPU使用更多的常规优化。如果你在上面一项选的是i386、i586之类的才选这个通用x86支持,如果你的CPU能够在上述"Processor family"中找到就别选。除了对上面你选择的X86 CPU进行优化,它还对更多类型X86 CPU的进行优化。这将会使内核在其他的X86 CPU上运行得更好。
—————————————————————————————————————————————————
[*] HPET Timer Support ##HPET时钟支持
##允许内核使用 HPET 。HPET是替代8254芯片的新一代定时器,i686及以上级别的主板都支持,可以安全的选上。但是,HEPT只会在支持它的平台和BIOS上运行。如果不支持,8254将会激活。选N,将继续使用8254时钟。
—————————————————————————————————————————————————
[*] 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))
##内核抢占模式一些优先级很高的程序可以先让一些低优先级的程序执行,即使这些程序是在核心态下执行。从而减少内核潜伏期,提高系统的响应。当然在一些特殊的点的内核是不可抢先的,比如内核中的调度程序自身在执行时就是不可被抢先的。这个特性可以提高桌面系统、实时系统的性能。
如果你是为桌面系统编译内核,选这项。
—————————————————————————————————————————————————
[ ] Local APIC support on uniprocessors
##单CPU的本地APIC (advanced programmable interrupt controller)支持,它内嵌在cpu中支持cpu自身产生的中断.建议选择,就算cpu不支持APIC,也没有影响.
[*]
##同上,支持I/O高级可编程中断控制器.
[*] Reroute for broken boot IRQs
[*] Machine Check / overheating reporting
##让CPU检测到系统故障时通知内核,以便内核采取相应的措施(如过热关机等)
[*]
[*]
[ ]
—————————————————————————————————————————————————
< > 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有效
[*]
[*]
<*> /dev/cpucpuid - 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)
—————————————————————————————————————————————————
[ ] PAE (Physical Address Extension) Support (NEW)
##物理地址扩展 (PAE) 允许将最多 64 GB 的物理内存用作常规的 4 KB 页面,并扩展内核能使用的位数以将物理内存地址从 32 扩展到 36。
—————————————————————————————————————————————————
Memory model (Flat 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
[*]
[*] Reserve low 64K of RAM on AMI/Phoenix BIOSen
—————————————————————————————————————————————————
[ ] Math emulation ##数学协处理器仿真,486DX以上的cpu就不要选它了
[*] MTRR (Memory Type Range Register) support 内存类型区域寄存器
—————————————————————————————————————————————————
[ ]
[*]
缓存控制进行设置(不确定可以不选)
[*] EFI runtime service support ##EFI启动支持,需要EFI设备,可以不选的。
[*] Enable seccomp to safely compute untrusted bytecode ##必须选!只有嵌入式系统可以不选
[ ] Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)
—————————————————————————————————————————————————
Timer frequency (1000 HZ)
其实和前面的抢先式进程差不多,就是多少频率来响应用户要求。我选了250HZ的。要快点的可以选1000HZ的。但是还是那句话,一切是平衡的。机器过快响应你,它自己的活就不知道做得好不好了。
—————————————————————————————————————————————————
[*] 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