https://smart888.taobao.com/ 立观智能监控
分类: LINUX
2009-03-11 13:43:59
以下是个配置文件详解
Y--将该功能编译进内核
N--不将该功能编译进内核
M--将该功能编译成可以在需要时动态插入到内核中的模块
Code maturity level options代码成熟度选项
Prompt for development and/or incomplete code/drivers
默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你可以选择它,因为有许多设备可能必需选择这个选项才能进行配置,实际上它是安全的。在Linux的世界里,每天都有许多人为它发展支持的driver和加强它的核心。但是有些driver还没进入稳定的阶段。但其作者很欢迎其他人去测试这些driver并提出一些bugs。这个问题是说,有一些drive还在做测试中,问您是否要选择这些drive或支持的程序码。
General setup常规设置
Local version - append to kernel release
在内核版本后面加上自定义的版本字符串(小于64字符), 你在这里填上的字符串可以用"uname -a"命令看到
Automatically append version information to the version string
自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持
Support for paging of anonymous memory (swap)
使用交换分区或者交换文件来做为虚拟内存,也就是让你的计算机好象拥有比实际内存更多 多的内存空间用来执行很大的程序。默认是选择的。
System V IPC
System V进程间通信(IPC)支持, 为进程提供通信机制, 表示系统V的Inter Process Communication,它用于处理器在程序之间同步和交换信息,许多程序需要这个功能. 如果将来想编译dosemu(DOS模拟器),则这个选项一定要选,它是一个让各个程序(process)同步且能彼此交换数据的函数库和一些系统的调用如果不选这项,很多程序运行不起来的。
BSD Process Accounting
将进程的统计信息写入文件的用户级系统调用, 充许用户进程访问内核将账户信息写入文件中的,主要包括进程的创建时间/创建者/内存占用等信息
这里选择Y将会让内核为用户层的进程建立一个帐目(进程通过一个特殊的系统调用来通知内核),当程序退出时内核会将进程的相关信息记录到帐目文件中,主要包括进程的创建时间、 创建者,内存占用等信息。如果你需要就Y吧:)
BSD Process Accounting version 3 file format
使用新的第三版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式
Export task/process statistics through netlink
通过netlink接口向用户空间导出任务/进程的统计信息,与BSD Process Accounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的
Enable per-task delay accounting
在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间
Auditing support
审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计 ,审记支持,用于和内核的某些子模块同时工作,例如SELinux。只有选择此项及它的子项,才能调用有关审记的系统调用。
Enable system-call auditing support
支持对系统调用的审计
Kernel .config support
把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本来提取这些信息将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc中得到内核的配置。这将会把内核的配置信息与相关的文档说明编译进内核中,以后可以使用一些工具来提取它用来重新构建内核,一般不用选它。
Enable access to .config through /proc/config.gz
允许通过/proc/config.gz访问内核的配置信息
Initramfs source file(s)
initrd已经被initramfs取代,如果你不明白这是什么意思,请保持空白
Configure standard kernel features (for small systems)
配置标准的内核特性(为小型系统) 这是为了编译某些特殊的内核使用的,通常你可以不选择这一选项,你也不用对它下面的子项操心了。
Enable 16-bit UID system calls
允许对UID系统调用进行过时的16-bit包装
Sysctl syscall support
不需要重启就能修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核行为的参数或变量
Load all symbols for debugging/kksymoops
装载所有的调试符号表信息,仅供调试时选择
Do an extra kallsyms pass
除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项
Loadable module support可加载模块支持
模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除它)。 一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块了,否在无法启动系统。
Enable loadable module support
打开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安装在/lib/modules/中 ,很多人喜欢将全部功能、硬件支持一股脑的编进内核,而不是使用模块的方式。这样做不好。在针对特定硬件的平台下尽可能将内核编小,将始终是支持模块加载的。例如我们开发的防火墙就是做为内核的模块被加载的。使用模块支持,你的系统能具有更好的可扩充性。还有一个原因就是自己编写的功能模块、设备驱动模块(假设编写的质量不高)以模块方式工作引起Kernel Panic的机率要远远低于不支持模块全部编进内核的方式。除非准备把所有需要的内容都编译到内核里面,否则该项应该是必选的。
Module unloading
允许卸载已经加载的模块 ,不选这个功能,加载的模块就不能卸载。没什么需要多解释的,建议最好选上。这个选项可以让你卸载不再使用的模块,如果不选的话你将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。不选择这个选项会让你的内核体积减小一点
Forced module unloading
这个选项能强行卸载模块,即使内核认为这样并不安全,也就是说你可以把正在使用中的模快卸载掉。如果你不是内核开发人员或者骨灰级的玩家,不要选择这个选项。
Module versioning support
允许使用其他内核版本的模块(可能会出问题) ,这个功能可以让你使用其它版本的内核模块,如果自己写一些模块,就会用到这个选项,因为内核更新太快了,自己的头文件更新根本赶不上内核的更新。不过并不可靠,所以一般不选择。
Source checksum for all modules
为所有的模块校验源码, 这个功能是为了防止更改了内核模块的代码但忘记更改版本号而造成版本冲突。估计现在没有哪家公司在开发中还没使用版本控制工具,所以不需要这项了。如果你不是自己写内核模块,那就更不需要这一选项了。
Automatic kernel module loading
让内核通过运行modprobe来自动加载所需要的模块, 一般情况下,如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe命令来加载它,内核才能使用。比如可以自动解决模块的依赖关系 ,这个选项能让内核自动的加载部份模块,举个例子说明一下,如模块eth1394依赖于模块ieee1394。如果选择了这个选项,可以直接加载模块eth1394;如果没有选择这个选项,必需先加载模块ieee1394,再加载模块eth1394,否则将出错。不过,如果你选择了这个选项,在内核需要一些模块时它可以自动调用modprobe命令来加载需要的模块,这是个很棒的特性,当然要选Y喽:)
Block layer块设备层
Enable the block layer
块设备支持,使用硬盘/USB/SCSI设备者必选
Support for Large Block Devices
仅在使用大于2TB的块设备时需要
Support for tracing block io actions
块队列IO跟踪支持,它允许用户查看在一个块设备队列上发生的所有事件,可以通过blktrace程序获得磁盘当前的详细统计数据
Support for Large Single Files
仅在可能使用大于2TB的文件时需要
IO Schedulers
IO调度器
Anticipatory I/O scheduler
假设一个块设备只有一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.适用于大多数环境,特别是写入较多的环境(比如文件服务器)
Deadline I/O scheduler
使用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境(比如数据库)
CFQ I/O scheduler
使用QoS策略为所有任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,可以认为是上述两种调度器的折中.适用于有大量进程的多用户系统
Default I/O scheduler
默认IO调度器
Processor type and features中央处理器(CPU)类型及特性
Symmetric multi-processing support
对称多处理器支持,如果你有多个CPU或者使用的是多核CPU就选上.此时"Enhanced Real Time Clock Support"选项必须开启,"Advanced Power Management"选项必须关闭
Subarchitecture Type
处理器的子架构, 目的是使Linux可以支持多种PC标准,一般我们使用的PC机是遵循所谓IBM兼容结构(pc/at)。这个选项可以让你选择一些其它架构。我们一般选择PC-compatible就可以了。
Processor family
处理器系列,请按照你实际使用的CPU选择 ,缺省为Ppro/6x86MX。它会对每种CPU做最佳化,让它跑得快又好。一般来说,没有选择正确的CPU并不会有重大的影响(特别是选择386 ,这样编译出来的核心也许会比较小但它的速度可能就会变慢了)。所以,最好要知道您的CPU是哪一种。不过,如果您的gCC编译器是2.7.0版以前的。那么只能选择386或是486。
Generic x86 support
通用x86支持, 这个选项提供了对X86系列CPU最大的兼容性,用来支持一些很少见的x86体系的CPU,它可能会降低一些系统性能。如果你的CPU能够在上述"Processor family"中找到就别选这个。
HPET Timer Support
HPET是intel制定的新的用以代替传统的8254(PIT)中断定时器与RTC的定时器,全称叫作高精度事件定时器。如果你有一台较新的机器(i686及以上级别的主板)就选它吧,一般它是一个安全的选项,即使你的硬件不支持HPET也不会造成问题,因为它会自动用8254替换。
Preemption Model
内核抢占模式
No Forced Preemption (Server)
适合服务器环境的禁止内核抢占
Voluntary Kernel Preemption (Desktop)
适合普通桌面环境的自愿内核抢占
Preemptible Kernel (Low-Latency Desktop)
适合运行实时程序的主动内核抢占,这是可抢先式内核。也就是说被一些优先级很高的程序可以先与一些低优先级的程序执行,即使这些程序是在核心态下执行(这实际上仍然不是真正的抢先式内核)。从而减少内核潜伏期,提高系统的响应。当然在一些特殊的点的内核是不可抢先的,比如内核中的调度程序自身在执行时就是不可被抢先的。这个特性可以提高桌面系统、实时系统的性能,所以还是选上吧。
Local APIC support on uniprocessors
IO-APIC support on uniprocessors
Machine Check Exception
让CPU检测到系统故障时通知内核,以便内核采取相应的措施(如过热关机等) , 如果你的系统出现一些问题比如CPU过热,内核将会在屏幕上打印相关信息来提醒你。这个功能是需要硬件支持的。你可以查看/proc/cpuinfo看看是否有mce标志,有的话就选吧。如果你十分十分的不幸,选了它之后出现问题,可以在启动时加nomce参数来关闭它。
Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4
每5秒检测一次这些cpu的非致命错误并纠正它们,同时记入日志 , 打开这个选项将会检查你机器上可能存在的问题,如果有一个非致命错误出现将会自动的修复并且记录,这可以帮助你查出程序出现问题的原因,是一个不错的选项,当然它只能用在AMD Athlon/Duron / Intel Pentium 4这类CPU上。如果你正好在用它们中的一个你就选吧。
check for P4 thermal throttling interrupt
当P4的cpu过热时显示一条警告消息, 如果打开这个选项,在P4的CPU温度过高(也就是P4的温控装置起作用)时会在屏幕上显示出相关的信息,根据你的情况选择吧。
Toshiba Laptop support
Toshiba笔记本模块支持 , 这个选项是针对Toshiba笔记本的,可以用来访问Toshiba的系统管理模式,也就是可以直接设置BIOS。不过要注意它只在Toshiba自己的 BIOS中起作用。假如你有一台Toshiba笔记本,可惜它的BIOS是Phoenix的,那这个选项仍然是梁山军师----无用:)
Dell laptop support
Dell笔记本模块支持 , 这个同上面的选项基本相同,自己看着办吧:)
Enable X86 board specific fixups for reboot
修正某些旧x86主板的重起bug,这种主板基本绝种了
/dev/cpu/microcode - Intel IA32 CPU microcode support
使用不随Linux内核发行的IA32微代码,你必需有IA32微代码二进制文件,仅对Intel的CPU有效, 这个选项将让你可以更新Intel IA32系列处理器的微代码,当然你还必须在文件系统选项中选择devfs才能正常的使用它。如果你把它译为模块你还需要在modprobe.conf中加上这一行alias char-major-10-184 microcode
内核本身并不带有微代码的二进制文件,你可以到这个网址去得到新的信息< >
/dev/cpu/*/msr - Model-specific register support
在多cpu系统中让特权CPU访问x86的MSR寄存器 , 这个选项桌面用户一般用不到,它主要用在Intel的嵌入式CPU中的,这个寄存器的作用也依赖与不同的CPU类型而有所不同,一般可以用来改变一些CPU原有物理结构的用途,但不同的CPU用途差别也很大。
/dev/cpu/*/cpuid - CPU information support
能从/dev/cpu/x/cpuid获得CPU的唯一标识符(CPUID) , 这会在/dev/cpu中建立一系列的设备文件,用以让过程去访问指定的CPU。一般不用选
Firmware Drivers
固件驱动程序
BIOS Enhanced Disk Drive calls determine boot disk
这将可以打开实模式下BIOS中的增强磁盘设备服务,以决定从哪个磁盘上启动(如果BIOS不支持则可能无法启动)。这一般是安全的,不过大多数BIOS提供商都没有实现这个特性。
EFI Variable Support via sysfs ???
BIOS update support for DELL systems via sysfs
仅适用于DELL机器
Dell Systems Management Base Driver
仅适用于DELL机器
High Memory Support
内核支持的最大内存数,总内存小于等于1G的选"off",大于4G的选"64G"
Math emulation
数学协处理器仿真, 这项询问是否需L1nux核心模拟数学浮点运算器。如果有486Dx以上、AMD以及Pentium机器的话,这个选项就不必选了,因为它们都有内建的浮点运算器。协处理器是在386时代的宠儿,现在早已不用了。不过,对于有内建浮点运算器的人来说,选了这个选项并不会因此让内建的浮点运算器失效。但它会增大核心约45KB。
MTRR (Memory Type Range Register) support
在Intel p6家族的处理器中(Ppro、 PII和更新的)有一个内存类型范围寄存器,可用来控制处理器访问的内存范围。打开它可以提升PCI/AGP总线上的显卡2倍以上的速度,并且可以修正某些BIOS错误, 选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供X server使用。同时用来启动pentinum pro和pentinum II 的特殊功能,如果你用的不是这类CPU就选N,否则也仅仅是使内核变大而已。
Boot from EFI support
EFI是一种可代替传统BIOS的技术(目前的Grub/LILO尚不能识别它),但是现在远未普及
Enable kernel irq balancing
让内核将irq中断平均分配给多个CPU以进行负载均衡,但是要配合irqbanlance守护进程才行
Use register arguments
使用"-mregparm=3"参数编译内核,将前3个参数以寄存器方式进行参数调用,可以生成更紧凑和高效的代码
Enable seccomp to safely compute untrusted bytecode
只有嵌入式系统可以不选
Timer frequency
内核时钟频率,桌面推荐"1000 HZ",服务器推荐"100 HZ"或"250 HZ"
Compat VDSO support
如果Glibc版本大于等于2.3.3就不选,否则就选上