<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN"><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-CN">
<style type="text/css" media="all">
body { margin:10px; }
h1,h2 { text-align:center; background:#ddd; }
h2 { margin: 10px 5%; }
h2#auth_name { background:#fff; }
/*字体*/
dt { font:normal normal 15px Verdana,宋体,sans-serif; }
dd,span.little_head { font:normal normal 14px Verdana,宋体,sans-serif; }
/*缩进*/
dt, dd { margin-left: 0; }
dd dt, dd dd { margin-left: 1.3em; }
/*间距*/
dt { margin-top: 0.5em; }
/*颜色*/
dt { color:#d11; }
dd dt { color:#11e; }
dd dd dt { color:#c2c; }
dd dd dd dt { color:#360; }
dd dd dd dd dt { color:#a50; }
dd dd dd dd dd dt { color:#28c; }
dt.omit { color:#555; }
</style><title>Linux 2.6.19.x 内核编译配置选项简介【作者:金步国】</title></head><body>
<h1>Linux 2.6.19.x 内核编译配置选项简介</h1><h2 id="auth_name">作者:<strong><a href="mailto:[email protected]">金步国</a></strong></h2>
<hr>
<h3>版权声明</h3>
<p>本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL
的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可
以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。</p>
<h3>其他作品</h3>
<p>本文作者十分愿意与他人共享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有作品的列表:</p>
<ul>
<li>电信用户请访问: <a href="http://lamp.linux.gov.cn/jinbuguo_florilegium.html">金步国作品列表</a></li>
<li>网通用户请访问: <a href="http://www.dogdoghome.com/lamp/jinbuguo_florilegium.html">金步国作品列表</a></li>
<li>铁通用户请访问: <a href="http://lamp.haloso.com/jinbuguo_florilegium.html">金步国作品列表</a></li>
<li>教育网用户请访问:<a href="http://lamp.haloso.net/jinbuguo_florilegium.html">金步国作品列表</a></li>
</ul>
<h3>BUG报告,切磋与探讨</h3>
<p>由于作者水平有限,因此不能保证作品内容准确无误,请在阅读中自行鉴别。如果你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品
质量的建议我都将虚心接纳。如果你愿意就作品中的相关内容与我进行进一步切磋与探讨,也欢迎你与我联系。联系方式:Email:
[email protected] ; QQ: 70171448 ; MSN: [email protected]</p>
<hr>
<p>本文作者将不定期的根据最新的内核进行添加(同时仍然保留老版本内核的选项),欢迎常来光临并帮助指出其中的错误.</p>
<h2>Code maturity level options<br>代码成熟度选项</h2>
<dl>
<dt>Prompt for development and/or incomplete code/drivers</dt><dd>显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择</dd>
</dl>
<h2>General setup<br>常规设置</h2>
<dl>
<dt>Local version - append to kernel release</dt><dd>在内核版本后面加上自定义的版本字符串(小于64字符),可以用"uname -a"命令看到</dd>
<dt>Automatically append version information to the version string</dt><dd>自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持</dd>
<dt>Support for paging of anonymous memory (swap)</dt><dd>使用交换分区或者交换文件来做为虚拟内存</dd>
<dt>System V IPC</dt><dd>System V进程间通信(IPC)支持,许多程序需要这个功能.必选,除非你知道自己在做什么</dd>
<dd><dl>
<dt>IPC Namespaces</dt><dd>IPC命名空间支持,不确定可以不选</dd>
</dl></dd>
<dt>POSIX Message Queues</dt><dd>POSIX消息队列,这是POSIX IPC中的一部分</dd>
<dt>BSD Process Accounting</dt><dd>将进程的统计信息写入文件的用户级系统调用,主要包括进程的创建时间/创建者/内存占用等信息</dd>
<dd><dl>
<dt>BSD Process Accounting version 3 file format</dt><dd>使用新的第三版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式</dd>
</dl></dd>
<dt>Export task/process statistics through netlink</dt><dd>通过netlink接口向用户空间导出任务/进程的统计信息,与BSD Process Accounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的</dd>
<dd><dl>
<dt>Enable per-task delay accounting</dt><dd>在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间</dd>
</dl></dd>
<dt>UTS Namespaces</dt><dd>UTS名字空间支持,不确定可以不选</dd>
<dt>Auditing support</dt><dd>审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计</dd>
<dd><dl>
<dt>Enable system-call auditing support</dt><dd>支持对系统调用的审计</dd>
</dl></dd>
<dt>Kernel .config support</dt><dd>把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本来提取这些信息</dd>
<dd><dl>
<dt>Enable access to .config through /proc/config.gz</dt><dd>允许通过/proc/config.gz访问内核的配置信息</dd>
</dl></dd>
<dt>Cpuset support</dt><dd>只有含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要它</dd>
<dt>Kernel->user space relay support (formerly relayfs)</dt><dd>在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口</dd>
<dt>Initramfs source file(s)</dt><dd>initrd已经被initramfs取代,如果你不明白这是什么意思,请保持空白</dd>
<dt>Optimize for size (Look out for broken compilers!)</dt><dd>编译时优化内核尺寸(使用"-Os"而不是"-O2"参数编译),有时会产生错误的二进制代码</dd>
<dt>Enable extended accounting over taskstats</dt><dd>收集额外的进程统计信息并通过taskstats接口发送到用户空间</dd>
<dt>Configure standard kernel features (for small systems)</dt><dd>配置标准的内核特性(为小型系统)</dd>
<dd><dl>
<dt>Enable 16-bit UID system calls</dt><dd>允许对UID系统调用进行过时的16-bit包装</dd>
<dt>Sysctl syscall support</dt><dd>不需要重启就能修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核行为的参数或变量</dd>
<dt>Load all symbols for debugging/kksymoops</dt><dd>装载所有的调试符号表信息,仅供调试时选择</dd>
<dd><dl>
<dt>Include all symbols in kallsyms</dt><dd>在kallsyms中包含内核知道的所有符号,内核将会增大300K</dd>
<dt>Do an extra kallsyms pass</dt><dd>除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项</dd>
</dl></dd>
<dt>Support for hot-pluggable devices</dt><dd>支持热插拔设备,如usb与pc卡等,Udev也需要它</dd>
<dt>Enable support for printk</dt><dd>允许内核向终端打印字符信息,在需要诊断内核为什么不能运行时选择</dd>
<dt>BUG() support</dt><dd>显示故障和失败条件(BUG和WARN),禁用它将可能导致隐含的错误被忽略</dd>
<dt>Enable ELF core dumps</dt><dd>内存转储支持,可以帮助调试ELF格式的程序</dd>
<dt>Enable full-sized data structures for core</dt><dd>在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减小以节约内存,但是将会降低性能</dd>
<dt>Enable futex support</dt><dd>快速用户空间互斥体可以使线程串行化以避免竞态条件,也提高了响应速度.禁用它将导致内核不能正确的运行基于glibc的程序</dd>
<dt>Enable eventpoll support</dt><dd>支持事件轮循的系统调用</dd>
<dt>Use full shmem filesystem</dt><dd>启用shmem支持.shmem是基于共享内存的文件系统(可能用到swap),在启用TMPFS后可以挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多</dd>
<dt>Use full SLAB allocator</dt><dd>使用SLAB完全取代SLOB进行内存分配,SLAB是一种优秀的内存分配管理器,推荐使用</dd>
<dt>Enable VM event counters for /proc/vmstat</dt><dd>允许在/proc/vmstat中包含虚拟内存事件记数器</dd>
</dl></dd>
</dl>
<h2>Loadable module support<br>可加载模块支持</h2>
<dl>
<dt>Enable loadable module support</dt><dd>打开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安装在/lib/modules/中</dd>
<dd><dl>
<dt>Module unloading</dt><dd>允许卸载已经加载的模块</dd>
<dd><dl>
<dt>Forced module unloading</dt><dd>允许强制卸载正在使用中的模块(比较危险)</dd>
</dl></dd>
<dt>Module versioning support</dt><dd>允许使用其他内核版本的模块(可能会出问题)</dd>
<dt>Source checksum for all modules</dt><dd>为所有的模块校验源码,如果你不是自己编写内核模块就不需要它</dd>
<dt>Automatic kernel module loading</dt><dd>让内核通过运行modprobe来自动加载所需要的模块,比如可以自动解决模块的依赖关系</dd>
</dl></dd>
</dl>
<h2>Block layer<br>块设备层</h2>
<dl>
<dt>Enable the block layer</dt><dd>块设备支持,使用硬盘/USB/SCSI设备者必选</dd>
<dd><dl>
<dt>Support for Large Block Devices</dt><dd>仅在使用大于2TB的块设备时需要</dd>
<dt>Support for tracing block io actions</dt><dd>块队列IO跟踪支持,它允许用户查看
评论0
最新资源