Linux 2.6.25 内核编译配置选项简介

1.Code maturity level options代码成熟度选项
1.1General setup

常规设置

1.1.1 Prompt for development and/or incomplete code/drivers

显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择

1.1.2 Local version - append to kernel release

在内核版本后面加上自定义的版本字符串(小于64字符),可以用"uname -a"命令看到

1.1.3 Automatically append version information to the version string

自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持

1.1.4 Support for paging of anonymous memory (swap)

使用交换分区或者交换文件来做为虚拟内存

1.1.5 System V IPC

System V进程间通信(IPC)支持,许多程序需要这个功能.必选,除非你知道自己在做什么

1.1.6 POSIX Message Queues

POSIX消息队列,这是POSIX IPC中的一部分

1.1.7 BSD Process Accounting

将进程的统计信息写入文件的用户级系统调用,主要包括进程的创建时间/创建者/内存占用等信息

1.1.8 BSD Process Accounting version 3 file format

使用新的第三版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式

1.1.9 Export task/process statistics through netlink

通过netlink接口向用户空间导出任务/进程的统计信息,与BSD Process Accounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的

1.1.10 Enable per-task delay accounting

在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间

1.1.11 Enable extended accounting over taskstats

收集额外的进程统计信息并通过taskstats接口发送到用户空间

1.1.12 Enable extended accounting over taskstats
在统计信息中包含扩展进程所花费的时间

1.1.13 Enable per-task storage I/O accounting
在统计信息中包含I/O存储进程所花费的时间

1.1.14 Auditing support

审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计

1.1.15 Kernel .config support

把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本来提取这些信息

1.1.16 Kernel .config support
把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本来提取这些信息

1.1.17 Kernel log buffer size (16 => 64KB, 17 => 128KB)
内核信息大小

1.1.18 Control Group support
cgroup支持,如cpusets那样来使用cgroup子系统进程(不确定可以不选)
1.1.19 Example debug cgroup subsystem
cgroup子系统调试例子
1.1.20 Namespace cgroup subsystem
cgroup子系统命名空间
1.1.21 Group CPU scheduler
CPU组调度(Group Scheduling,可以为进程赋予不同于nice level的调度 优先级。尤其在企业级硬件系统上,可以进一步优化实时任务的调度。桌面用户可以不选)

1.1.22 Group scheduling for SCHED_OTHER
SCHED_OTHER(SCHED:Process Scheduler,负责控制进程对CPU的使用.调度算法的公平,有效,硬件有关事件的及时处理)组调度

1.1.23 Group scheduling for SCHED_RR/FIFO
SCHED_RR?FIFO组调度
1.1.24 Basis for grouping tasks
基于组分配的任务
1) user id
使用者id 
2)Control groups
控制组
1.1.25 Simple CPU accounting cgroup subsystem
简单cgroup子系统cpu所花费的时间
1.1.26 Resource counters
资源计数器
1.1.27 Memory Resource Controller for Control Groups
cgroup内存资源控制器
1.1.28 Create deprecated sysfs files
建立过时的sysfs文件系统(虽然写着过时然而许多版本仍然有编译)
1.1.29Kernel->user space relay support (formerly relayfs)
在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口
1.1.30 Namespaces support
命名空间支持,允许服务器为不同的用户信息提供不 同的用户名空间服务
1)UTS namespace
UTS命名空间,不确定可以不选
2)IPC namespace
IPC命名空间,不确定可以不选
3)User namespace
User命名空间,不确定可以不选
4)PID Namespaces
PID命名空间,不确定可以不选
1.1.31 Initial RAM filesystem and RAM disk (initramfs/initrd) support
初始RAM的文件和RAM磁盘( initramfs /initrd)支持(如果要采用initrd启动则要选择,否则可以不选)
1.1.32 Initramfs source file(s)
initrd已经被initramfs取代,如果你不明白这是什么意思,请保持空白
1.1.33 Optimize for size (Look out for broken compilers!)
编译时优化内核尺寸(使用"-Os"而不是"-O2"参数编译),有时会产生错误的二进制代码
1.1.34 Configure standard kernel features (for small systems)
配置标准的内核特性(为小型系统)
1)Include all symbols in kallsyms
在kallsyms中包含内核知道的所有符号,内核将会增大300K 
2)Do an extra kallsyms pass
除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项
1.1.35 Disable heap randomization
禁用随机heap(heap堆是一个应用层的概念,即堆对CPU是不可见的,它的实现方式有多种,可以由OS实现,也可以由运行库实现,如果你愿意,你也可以在一个栈中来实现一个堆)

1.1.36 Enable Android’s Shared Memory Subsystem

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24650.html