-
显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择
Code maturity level options
代码成熟度选项
代码成熟度选项
Prompt for development and/or incomplete code/drivers
General setup
常规设置
-
在内核版本后面加上自定义的版本字符串(小于64字符),可以用"uname -a"命令看到
-
自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持
-
使用交换分区或者交换文件来做为虚拟内存
-
System V进程间通信(IPC)支持,许多程序需要这个功能.必选,除非你知道自己在做什么
-
-
IPC命名空间支持,不确定可以不选
IPC Namespaces -
-
POSIX消息队列,这是POSIX IPC中的一部分
-
将进程的统计信息写入文件的用户级系统调用,主要包括进程的创建时间/创建者/内存占用等信息
-
-
使用新的第三版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式
BSD Process Accounting version 3 file format -
-
通过netlink接口向用户空间导出任务/进程的统计信息,与BSD Process Accounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的
-
-
在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间
Enable per-task delay accounting -
-
UTS名字空间支持,不确定可以不选
-
审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计
-
-
支持对系统调用的审计
Enable system-call auditing support -
-
把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本来提取这些信息
-
-
允许通过/proc/config.gz访问内核的配置信息
Enable access to .config through /proc/config.gz -
-
只有含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要它
-
在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口
-
initrd已经被initramfs取代,如果你不明白这是什么意思,请保持空白
-
编译时优化内核尺寸(使用"-Os"而不是"-O2"参数编译),有时会产生错误的二进制代码
-
收集额外的进程统计信息并通过taskstats接口发送到用户空间
-
配置标准的内核特性(为小型系统)
-
-
允许对UID系统调用进行过时的16-bit包装
-
不需要重启就能修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核行为的参数或变量
-
装载所有的调试符号表信息,仅供调试时选择
-
-
在kallsyms中包含内核知道的所有符号,内核将会增大300K
-
除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项
Include all symbols in kallsymsDo an extra kallsyms pass -
Enable 16-bit UID system callsSysctl syscall supportLoad all symbols for debugging/kksymoops -
-
支持热插拔设备,如usb与pc卡等,Udev也需要它
-
允许内核向终端打印字符信息,在需要诊断内核为什么不能运行时选择
-
显示故障和失败条件(BUG和WARN),禁用它将可能导致隐含的错误被忽略
-
内存转储支持,可以帮助调试ELF格式的程序
-
在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减小以节约内存,但是将会降低性能
-
快速用户空间互斥体可以使线程串行化以避免竞态条件,也提高了响应速度.禁用它将导致内核不能正确的运行基于glibc的程序
-
支持事件轮循的系统调用
-
完全使用shmem来代替ramfs.shmem是基于共享内存的文件系统(可能用到swap),在启用TMPFS后可以挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多
-
使用SLAB完全取代SLOB进行内存分配,SLAB是一种优秀的内存分配管理器,推荐使用
-
允许在/proc/vmstat中包含虚拟内存事件记数器
Local version - append to kernel release
Automatically append version information to the version string
Support for paging of anonymous memory (swap)
System V IPC
POSIX Message Queues
BSD Process Accounting
Export task/process statistics through netlink
UTS Namespaces
Auditing support
Kernel .config support
Cpuset support
Kernel->user space relay support (formerly relayfs)
Initramfs source file(s)
Optimize for size (Look out for broken compilers!)
Enable extended accounting over taskstats
Configure standard kernel features (for small systems)
Support for hot-pluggable devices
Enable support for printk
BUG() support
Enable ELF core dumps
Enable full-sized data structures for core
Enable futex support
Enable eventpoll support
Use full shmem filesystem
Use full SLAB allocator
Enable VM event counters for /proc/vmstat
Loadable module support
可加载模块支持
-
打开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安装在/lib/modules/中
-
-
允许卸载已经加载的模块
-
-
允许强制卸载正在使用中的模块(比较危险)
Forced module unloading -
-
允许使用其他内核版本的模块(可能会出问题)
-
为所有的模块校验源码,如果你不是自己编写内核模块就不需要它
-
让内核通过运行modprobe来自动加载所需要的模块,比如可以自动解决模块的依赖关系
Module unloadingModule versioning supportSource checksum for all modulesAutomatic kernel module loading-
对称多处理器支持,如果你有多个CPU或者使用的是多核CPU就选上.此时"Enhanced Real Time Clock Support"选项必须开启,"Advanced Power Management"选项必须关闭
-
处理器的子架构,大多数人都应当选择"PC-compatible"
-
处理器系列,请按照你实际使用的CPU选择
-
通用x86支持,如果你的CPU能够在上述"Processor family"中找到就别选
-
HPET是替代8254芯片的新一代定时器,i686及以上级别的主板都支持,可以安全的选上
-
支持的最大CPU数,每增加一个内核将增加8K体积
-
支持Intel的超线程(HT)技术
-
针对多核CPU进行调度策略优化
-
内核抢占模式
-
-
适合服务器环境的禁止内核抢占
-
适合普通桌面环境的自愿内核抢占
-
适合运行实时程序的主动内核抢占
No Forced Preemption (Server)Voluntary Kernel Preemption (Desktop)Preemptible Kernel (Low-Latency Desktop) -
-
可以抢占大内核锁,应用于实时要求高的场合,不适合服务器环境
-
让CPU检测到系统故障时通知内核,以便内核采取相应的措施(如过热关机等)
-
-
每5秒检测一次这些cpu的非致命错误并纠正它们,同时记入日志
-
当P4的cpu过热时显示一条警告消息
Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4check for P4 thermal throttling interrupt -
-
虚拟X86支持,在DOSEMU下运行16-bit程序或XFree86通过BIOS初始化某些显卡的时候才需要
-
Toshiba笔记本模块支持
-
Dell笔记本模块支持
-
修正某些旧x86主板的重起bug,这种主板基本绝种了
-
使用不随Linux内核发行的IA32微代码,你必需有IA32微代码二进制文件,仅对Intel的CPU有效
-
在多cpu系统中让特权CPU访问x86的MSR寄存器
-
能从/dev/cpu/x/cpuid获得CPU的唯一标识符(CPUID)
-
固件驱动程序
-
-
有些BIOS支持从某块特定的硬盘启动(如果BIOS不支持则可能无法启动),目前大多数BIOS还不支持
-
仅适用于DELL机器
-
仅适用于DELL机器
BIOS Enhanced Disk Drive calls determine boot diskBIOS update support for DELL systems via sysfsDell Systems Management Base Driver -
-
最高内存支持,总内存小于等于1G的选"off",大于4G的选"64G"
-
如果你不是绝对清楚自己在做什么,不要改动这个选项
-
一般选"Flat Memory",其他选项涉及内存热插拔
-
使用64位的内存和IO资源
-
在内存很多(大于4G)的机器上将用户空间的页表放到高位内存区,以节约宝贵的低端内存
-
数学协处理器仿真,486DX以上的cpu就不要选它了
-
打开它可以提升PCI/AGP总线上的显卡2倍以上的速度,并且可以修正某些BIOS错误
-
EFI是一种可代替传统BIOS的技术(目前的Grub/LILO尚不能识别它),但是现在远未普及
-
让内核将irq中断平均分配给多个CPU以进行负载均衡,但是要配合irqbanlance守护进程才行
-
使用"-mregparm=3"参数编译内核,将前3个参数以寄存器方式进行参数调用,可以生成更紧凑和高效的代码
-
只有嵌入式系统可以不选
-
内核时钟频率,桌面推荐"1000 HZ",服务器推荐"100 HZ"或"250 HZ"
-
提供kexec系统调用,可以不必重启而切换到另一个内核
-
被kexec启动后产生内核崩溃转储
-
内核加载的物理地址,除非你知道自己在做什么,否则不要修改.在提供kexec系统调用的情况下可能要修改它
-
对热插拔CPU提供支持
-
如果Glibc版本大于等于2.3.3就不选,否则就选上
-
Power management options
电源管理选项 -
Power Management support
-
电源管理有APM和ACPI两种标准且不能同时使用.即使关闭该选项,X86上运行的Linux也会在空闲时发出HLT指令将CPU进入睡眠状态
-
Legacy Power Management API
-
传统的电源管理API,比如软关机和系统休眠等接口
-
Power Management Debug Support
-
仅供调试使用
-
Driver model /sys/devices/.../power/state files
-
内核帮助文档反对使用该选项,即将被废除
-
ACPI (Advanced Configuration and Power Interface) Support
-
必须运行acpid守护程序ACPI才能起作用.ACPI是为了取代APM而设计的,因此应该尽量使用ACPI而不是APM
-
AC Adapter
-
如果你的系统可以在AC和电池之间转换就可以选
-
Battery
-
通过/proc/acpi/battery向用户提供电池状态信息,用电池的笔记本可以选
-
Button
-
守护程序捕获Power,Sleep,Lid按钮事件,并根据/proc/acpi/event做相应的动作,软件控制的poweroff需要它
-
Video
-
仅对集成在主板上的显卡提供ACPI2.0支持,且不是所有集成显卡都支持
-
Generic Hotkey
-
统一的热键驱动,建议不选
-
Fan
-
允许通过用户层的程序来对系统风扇进行控制(开,关,查询状态),支持它的硬件并不多
-
Dock
-
支持由ACPI控制的集线器(docking stations)
-
Processor
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 SchedulersIO调度器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 supportSubarchitecture TypeProcessor familyGeneric x86 supportHPET Timer SupportMaximum number of CPUsSMT (Hyperthreading) scheduler supportMulti-core scheduler supportPreemption ModelPreempt The Big Kernel LockMachine Check ExceptionEnable VM86 supportToshiba Laptop supportDell laptop supportEnable X86 board specific fixups for reboot/dev/cpu/microcode - Intel IA32 CPU microcode support/dev/cpu/*/msr - Model-specific register support/dev/cpu/*/cpuid - CPU information supportFirmware DriversHigh Memory SupportMemory splitMemory model64 bit Memory and IO resourcesAllocate 3rd-level pagetables from highmemMath emulationMTRR (Memory Type Range Register) supportBoot from EFI supportEnable kernel irq balancingUse register argumentsEnable seccomp to safely compute untrusted bytecodeTimer frequencykexec system callkernel crash dumpsPhysical address where the kernel is loadedSupport for hot-pluggable CPUsCompat VDSO support -
Enable loadable module support