Linux2.6.19.x内核编译配置选项简介.docx
《Linux2.6.19.x内核编译配置选项简介.docx》由会员分享,可在线阅读,更多相关《Linux2.6.19.x内核编译配置选项简介.docx(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux2.6.19.x内核编译配置选项简介Linux2.6.19.x内核编译配置选项简介版权声明本文作者是一位自由软件喜好者,所以本文固然不是软件,但是本着GPL的精神发布。任何人都能够自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您能够自由链接、下载、传播此文档,但前提是必须保证全文完好转载,包括完好的版权信息和作译者声明。其他作品本文作者特别愿意与别人分享劳动成果,假如你对我的其他翻译作品或者技术文章有兴趣,能够在如下位置查看现有作品的列表:金步国作品列表BUG报告,切磋与讨论由于作者水平有限,因而不能保证作品内容准
2、确无误,请在阅读中自行鉴别。假如你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品质量的建议我都将虚心接纳。假如你愿意就作品中的相关内容与我进行进一步切磋与讨论,也欢迎你与我联络。联络方式:Email:csfrankhttpdocsj/doc/ec1f4e23192e45361066f53f.;QQ:70171448;MSN:csfrank122httpdocsj/doc/ec1f4e23192e45361066f53f.Codematurityleveloptions代码成熟度选项Promptfordevelopmentand/orincompletecode/drivers
3、显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择Generalsetup常规设置Localversion-appendtokernelrelease在内核版本后面加上自定义的版本字符串(小于64字符),能够用uname-a命令看到Automaticallyappendversioninformationtotheversionstring自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持Supportforpagingofanonymousmemory(swap)使用交换分区或者交换文件来做为虚拟内存SystemVIPCSystemV进程间通
4、信(IPC)支持,很多程序需要这个功能.必选,除非你知道本人在做什么IPCNamespacesIPC命名空间支持,不确定能够不选POSIXMessageQueuesPOSIX消息队列,这是POSIXIPC中的一部分BSDProcessAccounting将进程的统计信息写入文件的用户级系统调用,主要包括进程的创立时间/创立者/内存占用等信息BSDProcessAccountingversion3fileformat使用新的第三版文件格式,能够包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式Exporttask/processstatisticsthroughnetlink通过
5、netlink接口向用户空间导出任务/进程的统计信息,与BSDProcessAccounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的Enableper-taskdelayaccounting在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间UTSNamespacesUTS名字空间支持,不确定能够不选Auditingsupport审计支持,某些内核模块(例如SELinux)需要它,只要同时选择其子项才能对系统调用进行审计Enablesystem-callauditingsupport支持对系统调用的审计Kernel.configsupport把内核
6、的配置信息编译进内核中,以后能够通过scripts/extract-ikconfig脚本来提取这些信息Enableaccessto.configthrough/proc/config.gz允许通过/proc/config.gz访问内核的配置信息Cpusetsupport只要含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要它Kernel-userspacerelaysupport(formerlyrelayfs)在某些文件系统上(比方debugfs)提供从内核空间向用户空间传递大量数据的接口Initramfssourcefile(s)initrd已经被initram
7、fs取代,假如你不明白这是什么意思,请保持空白Optimizeforsize(Lookoutforbrokencompilers!)编译时优化内核尺寸(使用-Os而不是-O2参数编译),有时会产生错误的二进制代码Enableextendedaccountingovertaskstats采集额外的进程统计信息并通过taskstats接口发送到用户空间Configurestandardkernelfeatures(forsmallsystems)配置标准的内核特性(为小型系统)Enable16-bitUIDsystemcalls允许对UID系统调用进行过时的16-bit包装Sysctlsyscal
8、lsupport不需要重启就能修改内核的某些参数和变量,假如你也选择了支持/proc,将能从/proc/sys存取能够影响内核行为的参数或变量Loadallsymbolsfordebugging/kksymoops装载所有的调试符号表信息,仅供调试时选择Includeallsymbolsinkallsyms在kallsyms中包含内核知道的所有符号,内核将会增大300KDoanextrakallsymspass除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项Supportforhot-pluggabledevices支持热插拔设备,如usb与pc卡等,Udev也需要它En
9、ablesupportforprintk允许内核向终端打印字符信息,在需要诊断内核为什么不能运行时选择BUG()support显示故障和失败条件(BUG和WARN),禁用它将可能导致隐含的错误被忽略EnableELFcoredumps内存转储支持,能够帮助调试ELF格式的程序Enablefull-sizeddatastructuresforcore在内核中使用全尺寸的数据构造.禁用它将使得某些内核的数据构造减小以节约内存,但是将会降低性能Enablefutexsupport快速用户空间互斥体能够使线程串行化以避免竞态条件,也提高了响应速度.禁用它将导致内核不能正确的运行基于glibc的程序En
10、ableeventpollsupport支持事件轮循的系统调用Usefullshmemfilesystem完全使用shmem来代替ramfs.shmem是基于分享内存的文件系统(可能用到swap),在启用TMPFS后能够挂载为tmpfs供用户空间使用,它比简单的ramfs先进很多UsefullSLABallocator使用SLAB完全取代SLOB进行内存分配,SLAB是一种优秀的内存分配管理器,推荐使用EnableVMeventcountersfor/proc/vmstat允许在/proc/vmstat中包含虚拟内存事件记数器Loadablemodulesupport可加载模块支持Enable
11、loadablemodulesupport打开可加载模块支持,假如打开它则必须通过makemodules_install把内核模块安装在/lib/modules/中Moduleunloading允许卸载已经加载的模块Forcedmoduleunloading允许强迫卸载正在使用中的模块(比拟危险)Moduleversioningsupport允许使用其他内核版本的模块(可能会出问题)Sourcechecksumforallmodules为所有的模块校验源码,假如你不是本人编写内核模块就不需要它Automatickernelmoduleloading让内核通过运行modprobe来自动加载所需要
12、的模块,比方能够自动解决模块的依靠关系Blocklayer块设备层Enabletheblocklayer块设备支持,使用硬盘/USB/SCSI设备者必选SupportforLargeBlockDevices仅在使用大于2TB的块设备时需要Supportfortracingblockioactions块队列IO跟踪支持,它允许用户查看在一个块设备队列上发生的所有事件,能够通过blktrace程序获得磁盘当前的具体统计数据SupportforLargeSingleFiles仅在可能使用大于2TB的文件时需要IOSchedulersIO调度器AnticipatoryI/Oscheduler假设一个块
13、设备只要一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.适用于大多数环境,十分是写入较多的环境(比方文件服务器)DeadlineI/Oscheduler使用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,十分合适于读取较多的环境(比方数据库)CFQI/Oscheduler使用QoS策略为所有任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,能够以为是上述两种调度器的折中.适用于有大量进程的多用户系统DefaultI/Oscheduler默认IO调度器Processortypeandfeatures中央处理器
14、(CPU)类型及特性Symmetricmulti-processingsupport对称多处理器支持,假如你有多个CPU或者使用的是多核CPU就选上.此时EnhancedRealTimeClockSupport选项必须开启,AdvancedPowerManagement选项必须关闭SubarchitectureType处理器的子架构,大多数人都应中选择PC-compatibleProcessorfamily处理器系列,请根据你实际使用的CPU选择Genericx86support通用x86支持,假如你的CPU能够在上述Processorfamily中找到就别选HPETTimerSupportH
15、PET是替代8254芯片的新一代定时器,i686及以上级别的主板都支持,能够安全的选上MaximumnumberofCPUs支持的最大CPU数,每增加一个内核将增加8K体积SMT(Hyperthreading)schedulersupport支持Intel的超线程(HT)技术Multi-coreschedulersupport针对多核CPU进行调度策略优化PreemptionModel内核抢占形式NoForcedPreemption(Server)合适服务器环境的禁止内核抢占VoluntaryKernelPreemption(Desktop)合适普通桌面环境的自愿内核抢占Preemptible
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux2 6.19 内核 编译 配置 选项 简介
限制150内