77范文网 - 专业文章范例文档资料分享平台

Linux 3.10内核编译选项(4)

来源:网络收集 时间:2019-03-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

Support initial ramdisks compressed using LZO

CONFIG_RD_LZO

支持经过LZO压缩的ramdisk或cpio镜像 Built-in initramfs compression mode

选择initramfs镜像的压缩格式.\是兼容性最好的格式,但是压缩率却最低.\是目前渐渐流行的格式,压缩率高,解压速度也不慢. Optimize

CONFIG_CC_OPTIMIZE_FOR_SIZE

编译时优化内核尺寸(使用GCC的\而不是\参数编译),这会得到更小的内核,但是运行速度可能会更慢.主要用于嵌入式环境. Configure CONFIG_EXPERT

配置标准的内核特性(仅供专家使用).这个选项允许你改变内核的\标准\特性(比如用于需要\非标准\内核的特定环境中),仅在你确实明白自己在干什么的时候才开启. Enable CONFIG_UID16

允许对UID系统调用进行过时的16-bit包装,建议关闭 Sysctl

CONFIG_SYSCTL_SYSCALL

二进制sysctl接口支持.由于现在流行直接通过/proc/sys以ASCII明码方式修改内核参数(需要开启CONFIG_PROC_SYSCTL选项),所以已经不需要再通过二进制接口去控制内核参数,建议关闭它以减小内核尺寸. Load

all

symbols

for

debugging/ksymoops

syscall

support

16-bit

UID

system

calls

standard

kernel

features

(expert

users)

for

size

CONFIG_KALLSYMS

装载所有的调试符号表信息,会增大内核体积,仅供调试时选择 Include

all

symbols

in

kallsyms

CONFIG_KALLSYMS_ALL

在/proc/kallsyms中包含内核知道的所有符号,内核将会增大300K,仅在你确实需要的时候再开启 Enable CONFIG_PRINTK

允许内核向终端打印字符信息.如果关闭,内核在初始化过程中将不会输出字符信息,这会导致很难诊断系统故障.仅在你确实不想看到任何内核信息时选\否则请选\BUG() CONFIG_BUG

显示故障和失败条件(BUG和WARN),禁用它将可能导致隐含的错误被忽略.建议仅在嵌入式设备或者无法显示故障信息的系统上关闭 Enable

CONFIG_ELF_CORE

内存转储支持,可以帮助调试ELF格式的程序,用于调试和开发用户态程序 Enable

CONFIG_PCSPKR_PLATFORM

主板上的蜂鸣器支持.主板上的蜂鸣器只能发出或长或短的\滴\或\嘟嘟\声,一般用于系统报警.不要和能够播放音乐的扬声器混淆.如果你的主板上没有就关闭,有的话(开机自检完成后一般能听到\滴\的一声)还是建议开启. Enable

full-sized

data

structures

for

core

PC-Speaker

support

ELF

core

dumps support

support

for

printk

CONFIG_BASE_FULL

在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减小以节约内存,但是将会降低性能 Enable CONFIG_FUTEX

快速用户空间互斥(fast userspace mutexes)可以使线程串行化以避免竞态条件,也提高了响应速度.禁用它将导致内核不能正确的运行基于glibc的程序 Enable CONFIG_EPOLL

eventpoll

support

futex

support

Epoll系列系统调用(epoll_*)支持,这是当前在Linux下开发大规模并发网络程序(比如Nginx)的热门人选,设计目的是取代既有POSIX select(2)与poll(2)系统接口,systemd依赖于它.建议开启. Enable

CONFIG_SIGNALFD

signalfd()系统调用支持,建议开启.传统的处理信号的方式是注册信号处理函数,由于信号是异步发生的,要解决数据的并发访问和可重入问题.signalfd可以将信号抽象为一个文件描述符,当有信号发生时可以对其read,这样可以将信号的监听放到select/poll/epoll监听队列中.systemd依赖于它. Enable

CONFIG_TIMERFD

timerfd()系统调用支持,建议开启.timerfd可以实现定时器功能,将定时器抽象为文件描述符,当定时器到期时可以对其read,这样也可以放到select/poll/epoll监听队列中.更多信息可以参考linux新的API signalfd、timerfd、eventfd使用说明.systemd依赖于它. Enable

CONFIG_EVENTFD

eventfd()系统调用支持,建议开启.eventfd实现了线程之间事件通知的方式,eventfd的缓冲区大小是sizeof(uint64_t),向其write可以递增这个计数器,read操作可以读取,并进行清零.eventfd也可以放到select/poll/epoll监听队列中.当计数器不是0时,有可读事件发生,可以进行读取. Use

CONFIG_SHMEM

完全使用shmem来代替ramfs.shmem是基于共享内存的文件系统(可以使用swap),在启用CONFIG_TMPFS后可以挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多.仅在微型嵌入式环境中且没有swap的情况下才可能会需要使用原始的ramfs. Enable CONFIG_AIO

AIO

support

full

shmem

filesystem

eventfd()

system

call

timerfd()

system

call

signalfd()

system

call

开启POSIX异步IO支持.它常常被高性能的多线程程序使用,建议开启 Enable

CONFIG_PCI_QUIRKS

开启针对多种PCI芯片组的错误规避功能,仅在确定你的PCI芯片组确实没有没有任何bug时才关闭此功能.至于究竟哪些芯片组有bug,你可以直接打开\drivers/pci/quirks.c\文件查看.不确定的选\Embedded CONFIG_EMBEDDED

如果你是为嵌入式系统编译内核,可以开启此选项,这样一些高级选项就会显示出来.单独选中此项本身对内核并无任何改变. Kernel

Performance

Events

And

Counters system

PCI

quirk

workarounds

CONFIG_PERF_EVENTS

性能相关的事件和计数器支持(既有硬件的支持也有软件的支持).大多数现代CPU都会通过性能计数寄存器对特定类型的硬件事件(指令执行,缓存未命中,分支预测失败)进行计数,同时又丝毫不会减慢内核和应用程序的运行速度.这些寄存器还会在某些事件计数到达特定的阈值时触发中断,从而可以对代码进行性能分析. Linux Performance Event 子系统对上述特性进行了抽象,提供了针对每个进程和每个CPU的计数器,并可以被 tools/perf/ 目录中的\工具使用. Debug:

use

vmalloc

to

back

perf

mmap()

buffers

CONFIG_DEBUG_PERF_USE_VMALLOC 主要用于调试vmalloc代码. Enable

VM

event

counters

for

/proc/vmstat

CONFIG_VM_EVENT_COUNTERS

\/proc/vmstat\中包含了从内核导出的虚拟内存的各种统计信息.开启此项后可以显示较详细的信息(包含各种事件计数器),关闭此项则仅仅显示很简略的信息.主要用于调试和统计. Enable

CONFIG_SLUB_DEBUG

SLUB

debugging

support

SLUB调试支持,禁用后可显著降低内核大小,同时/sys/kernel/slab也将不复存在. Disable

CONFIG_COMPAT_BRK

禁用堆随机化(heap randomization)功能.堆随机化可以让针对堆溢出的攻击变得困难,但是不兼容那些古董级的二进制程序(2000年以前).如果你不需要使用这些古董程序,那么选\Choose SLAB allocator 选择内存分配管理器 SLAB CONFIG_SLAB

久经考验的slab内存分配器,在大多数情况下都具有良好的适应性. SLUB CONFIG_SLUB

SLUB与SLAB兼容,但通过取消大量的队列和相关开销,简化了slab的结构.特别是在多核时拥有比slab更好的性能和更好的系统可伸缩性. SLOB CONFIG_SLOB

SLOB针对小型系统设计,做了非常激进的简化,以适用于内存非常有限(小于64M)的嵌入式环境. SLUB

per

cpu

partial

cache

(Simple

Allocator)

(Unqueued

Allocator)

heap

randomization

CONFIG_SLUB_CPU_PARTIAL

让SLUB内存分配器使用基于每个CPU的局部缓存,这样可以加速分配和释放属于此CPU范围内的对象,但这样做的代价是增加对象释放延迟的不确定性.因为当这些局部缓存因为溢出而要被清除时,需要使用锁,从而导致延迟尖峰.对于需要快速响应的实时系统,应该选\服务器则可以选\Provide

system-wide

ring

of

trusted

keys

CONFIG_SYSTEM_TRUSTED_KEYRING

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Linux 3.10内核编译选项(4)在线全文阅读。

Linux 3.10内核编译选项(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/536161.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: