General setup --->
[ ] Prompt for development and/or incomplete code/drivers
显示尚在开发中或尚未完成的代码和驱动
默认选择
会在设置界面中显示还在开发或者还没有完成的代码与驱动,也包含一些过时的驱动。大多数情况下,应该选择,许多设备的驱动可能需要这个选项才能进行配置。
( ) Cross-compiler tool prefix (NEW)
交叉编译工具前缀
默认取消
如果使用交叉编译工具,输入相关前缀。
() Local version - append to kernel release (NEW)
在内核版本后面加上自定义的版本字符串
(小于64字符),可用"uname -a"命令看到
[ ] Automatically append version information to the version string
自动在版本字符串后面添加版本信息
会尝试自动探测目前的编译树列是否是一个发行版本树列,通过寻找git标记来完成,归属于目前的树列修正版顶层。
编译时需要有perl以及git仓库支持。
Kernel compression mode (Bzip2) --->
内核压缩格式
一般默认gzip,如果用bzip2,lzma,lzo,要先安装相关解压缩工具。
相对于默认的Gzip,Bzip2 拥有更高的压缩比
() Gzip
( ) Bzip2
( ) LZMA
( ) XZ
( ) LZO
() Default hostname
指定一个默认的主机名
可以省去使用sethostname命令设置主机名称。在制作最小系统时比较有用。
[ ] Support for paging of anonymous memory (swap) (NEW)
虚拟内存页交换(swap)支持
启用交换分区或者交换文件。
推荐Y
[ ] System V IPC
System V进程间通信
为兼容使用System V IPC的UNIX程序而设的,若不考虑兼容性,可忽略这个参数。
提供相关系统调用及函数库。为进程提供通信机制,使系统中各进程有交换信息与保持同步的能力。
参考:System V 的IPC机制
某些程序以及DOS模拟环境都需要它。
推荐Y
[ ] POSIX Message Queues
POSIX消息队列
为兼容POSIX标准而设计,同样是IPC。
一个优先权,可以决定进程处理POSIX消息的连续性。若要编译和运行比如写给Solaris 的程序,他们使用了POSIX消息队列,这里需要选Y。
推荐Y
[ ] BSD Process Accounting
将进程的统计信息写入文件的用户级系统调用
使用户级别的程序可以通过特殊的系统调用方式通知内核把进程统计信息记录到一个文件。信息包括进程创建时间、创建者、命令名称、内存使用、控制终端等。对用户级程序非常有用。
使用accton命令可以开启这个功能。
嵌入式系统中通常不需要。
参考:HOWTO linux进程统计(process accounting)
推荐Y
[ ] BSD Process Accounting version 3 file format (NEW)
使用新的第三版文件格式
可以包含每个进程的PID和其父进程的PID,但是不兼容老版本(v0/v1/v2)的文件格式。所以需要升级工具软件以处理它。
V3格式是一种二进制的格式。若想明码保存,不应选择此项。
[ ] open by fhandle syscalls (NEW)
打开文件可以通过句柄子系统调用
[ ] Export task/process statistics through netlink (EXPERIMENTAL)
通过网络(netlink)接口向用户空间导出任务/进程的统计信息(实验阶段)
netlink是一种在内核与用户应用之间进行双向数据传输的非常好的方式,用户应用使用标准的socket API就可以使用netlink提供的强大功能。
与BSD Process Accounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的。可选N
[ ] Enable per-task delay accounting (EXPERIMENTAL)
统计数据包含每个任务/进程的延时(实验阶段)
允许单任务延迟统计通过任务等待系统资源的方式收集信息,这会收起时间的花销。系统的资源如CPU、同步I/O复合块和交换页面等等。这些统计信息可以帮助设置一个任务的cpu/io/iss优先级等。可选N
[ ] Enable extended accounting over taskstats (EXPERIMENTAL)
统计数据包含扩展任务读取数据和发送数据使用的时间(实验阶段)
允许通过任务状态进行扩展统计收集扩展任务统计数据,并把它们发送至用户空间,以便可以用任务状态接口进行处理。如果不清楚,选N
[ ] Enable per-task storage I/O accounting (EXPERIMENTAL)
统计数据包括I/O设备产生的字节数
允许单任务储存I/O统计收集任务引发的储存I/O上的一定数量的字节信息。如果不清楚,选N。
[ ] Auditing support
支持审计功能
允许审计的基础结构能够被其他内核子系统使用。如SELinux需要这个来进行登录时的声音和视频输出(记录avc消息输出)。使用SELinux安全模型必选
需同时选择其子项才能对系统调用进行审计。
若无需高安全需要,可选N
[ ] Enable system-call auditing support (NEW)
开启系统调用的审计功能
允许低层的系统调用审计构架,这可以独立使用,或者用于其他的内核子系统,比如SELinux要使用审计的文件系统监视特性。
需确保INOTIFY被配置。
[ ] Make audit loginuid immutable (NEW)
IRQ subsystem --->
中断子系统
-*- Support sparse irq numbering
支持稀有的中断号
RCU Subsystem --->
非对称读写锁系统
一种新的kernel 锁机制,适用于读多写少环境。
对于被RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调(callback)机制在适当的时机把指向原来数据的指针重新指向新的被修改的数据。这个时机就是所有引用该数据的CPU都退出对共享数据的操作。
RCU Implementation (Classic RCU) --->
选择标准的RCU 系统
tree-base 是给拥有大规模CPU 集群的SMP 系统用的
[ ] Enable tracing for RCU (NEW)
(32) Tree-based hierarchical RCU fanout value (NEW)
RCU树的分支数
[ ] Disable tree-based hierarchical RCU auto-balancing (NEW)
关闭RCU自动均衡功能
[ ] Accelerate last non-dyntick-idle CPU's grace periods (NEW)
提高非休眠CPU的使用时间
<> Kernel .config support (NEW)
允许.config文件保存在内核中
提供正在运行中的或者还在硬盘中的内核的相关配置选项。
可以通过内核镜像文件kernel image file用脚本scripts/extract-ikconfig来提取出来,作为当前内核重编译或者另一个内核编译的参考。
内核在运行中,可以通过/proc/config.gz文件来读取。下一个选项提供这项支持。
[] Enable access to .config through /proc/config.gz
允许通过/proc/config.gz访问内核的配置信息
(18) Kernel log buffer size (16 => 64KB, 17 => 128KB)
内核日志缓冲尺寸
使用dmesg可读取内核的环缓冲区(ring buffer),输出许多启动信息。
这个值是以2的平方取的,取值范围12-21
17=128kb、16=64kb、15=32kb、14=16kb、13=8kb、12=4kb
[] Control Group support --->
cgroups 给进程分组,以动态调控进程组的CPU 占用
如A 进程分到apple组,给予20%CPU 占用,E 进程分easy 组,给予50%CPU 占用,最高100%。
会使得像使用多CPU一样使用处理器组子系统。
若不清楚,推荐N
--- Control Group support
[ ] Example debug cgroup subsystem (NEW)
调试组控制子系统范例
这个选项开启一个简单的组控制子系统,输出有用的关于组控制框架的调试信息。如果不清楚,选N。
[] Freezer cgroup subsystem
[ ] Device controller for cgroups (NEW)
cgroups设备控制器
[] Cpuset support
创建和管理CPUSETs
只有含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要
[]Include legacy /proc//cpuset file ( (NEW)