Linux内核编译配置选项简介

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2015/3/13Linux内核编译配置选项简介 ­ 刘光明 ­ 博客园data:text/html;charset=utf­8,%3Cp%20style%3D%22margin%3A%2010px%20auto%3B%20padding%3A%200px%3B%20text­indent%3A%200px%3B%2…1/39Linux 2.6.19.x 内核编译配置选项简介Code maturity level options 代码成熟度选项Prompt for development and/or incomplete code/drivers     显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择General setup 常规设置Local version ­ append to kernel release     在内核版本后面加上自定义的版本字符串(小于64字符),可以用uname ­a命令看到 Automatically append version information to the version string     自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持 Support for paging of anonymous memory (swap)     使用交换分区或者交换文件来做为虚拟内存 System V IPC     System V进程间通信(IPC)支持,许多程序需要这个功能.必选,除非你知道自己在做什么    IPC Namespaces         IPC命名空间支持,不确定可以不选POSIX Message Queues     POSIX消息队列,这是POSIX IPC中的一部分 BSD Process Accounting     将进程的统计信息写入文件的用户级系统调用,主要包括进程的创建时间/创建者/内存占用等信息    BSD Process Accounting version 3 file format         使用新的第三版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式Export task/process statistics through netlink     通过netlink接口向用户空间导出任务/进程的统计信息,与BSD Process Accounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的    Enable per­task delay accounting         在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间UTS Namespaces     UTS名字空间支持,不确定可以不选 Auditing support     审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计    Enable system­call auditing support         支持对系统调用的审计Kernel .config support     把内核的配置信息编译进内核中,以后可以通过scripts/extract­ikconfig脚本来提取这些信息    Enable access to .config through /proc/config.gz         允许通过/proc/config.gz访问内核的配置信息Cpuset support     只有含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要它 Kernel­user space relay support (formerly relayfs)     在某些文件系统上(比如debugfs)提供从内核空间向用户空间传递大量数据的接口 Initramfs source file(s) 2015/3/13Linux内核编译配置选项简介 ­ 刘光明 ­ 博客园data:text/html;charset=utf­8,%3Cp%20style%3D%22margin%3A%2010px%20auto%3B%20padding%3A%200px%3B%20text­indent%3A%200px%3B%2…2/39    initrd已经被initramfs取代,如果你不明白这是什么意思,请保持空白 Optimize for size (Look out for broken compilers!)     编译时优化内核尺寸(使用­Os而不是­O2参数编译),有时会产生错误的二进制代码 Enable extended accounting over taskstats     收集额外的进程统计信息并通过taskstats接口发送到用户空间 Configure standard kernel features (for small systems)     配置标准的内核特性(为小型系统)    Enable 16­bit UID system calls         允许对UID系统调用进行过时的16­bit包装     Sysctl syscall support         不需要重启就能修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核行为的参数或变量     Load all symbols for debugging/kksymoops         装载所有的调试符号表信息,仅供调试时选择        Include all symbols in kallsyms             在kallsyms中包含内核知道的所有符号,内核将会增大300K         Do an extra kallsyms pass             除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项    Support for hot­pluggable devices         支持热插拔设备,如usb与pc卡等,Udev也需要它     Enable support for printk         允许内核向终端打印字符信息,在需要诊断内核为什么不能运行时选择     BUG() support         显示故障和失败条件(BUG和WARN),禁用它将可能导致隐含的错误被忽略     Enable ELF core dumps         内存转储支持,可以帮助调试ELF格式的程序     Enable full­sized data structures for core         在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减小以节约内存,但是将会降低性能     Enable futex support         快速用户空间互斥体可以使线程串行化以避免竞态条件,也提高了响应速度.禁用它将导致内核不能正确的运行基于glibc的程序     Enable eventpoll support         支持事件轮循的系统调用     Use full shmem filesystem         完全使用shmem来代替ramfs.shmem是基于共享内存的文件系统(可能用到swap),在启用TMPFS后可以挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多     Use full SLAB allocator         使用SLAB完全取代SLOB进行内存分配,SLAB是一种优秀的内存分配管理器,推荐使用     Enable VM event counters for /proc/vmstat         允许在/proc/vmstat中包含虚拟内存事件记数器Loadable module support 可加载模块支持Enable loadable module support     打开可加载模块支持,如果打开它则必须通过make modules_install把内核模块安装在/lib/modules/中    Module unloading         允许卸载已经加载的模块        Forced module unloading 2015/3/13Linux内核编译配置选项简介 ­ 刘光明 ­ 博客园data:text/html;charset=utf­8,%3Cp%20style%3D%22margin%3A%2010px%20auto%3B%20padding%3A%200px%3B%20text­indent%3A%200px%3B%2…3/39            允许强制卸载正在使用中的模块(比较危险)    Module versioning support         允许使用其他内核版本的模块(可能会出问题)     Source checksum for all modules         为所有的模块校验源码,如果你不是自己编写内核模块就不需要它     Automatic kernel module loading         让内核通过运行modprobe来自动加载所需要的模块,比如可以自动解决模块的依赖关系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 Schedulers         IO调度器        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 support     对称多处理器支持,如果你有多个CPU或者使用的是多核CPU就选上.此时Enhanced Real Time ClockSupport选项必须开启,Advanced Power Management选项必须关闭 Subarchitecture Type     处理器的子架构,大多数人都应当选择PC­compatible Processor family     处理器系列,请按照你实际使用的CPU选择 Generic x86 support     通用x86支持,如果你的CPU能够在上述Process

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功