在内核中创建一个密钥环,从而允许向密钥环上添加受信任的密钥,主要用于内核模块的签名.如果你开启了CONFIG_MODULE_SIG,此项将被自动选中.不需要使用内核模块签名检查功能的应该选\Profiling CONFIG_PROFILING
添加扩展的性能分析支持,可以被OProfile之类的工具使用.仅用于调试目的. OProfile CONFIG_OPROFILE
OProfile性能分析工具支持,仅用于调试目的. OProfile
multiplexing
support
system
profiling support
CONFIG_OPROFILE_EVENT_MULTIPLEX OProfile multiplexing技术支持 Kprobes CONFIG_KPROBES
Kprobes是一个轻量级的内核调试工具,能在内核运行的几乎任意时间点进行暂停/读取/修改等操作的调试工具.仅供调试使用. Optimize
CONFIG_JUMP_LABEL
针对内核中某些\几乎总是为真\或者\几乎总是为假\的条件分支判断使用\goto\进行优化(在分支预测失败时会浪费很多时间在回退上,但是这种情况极少发生).很多内核子系统都支持进行这种优化.建议开启. Transparent CONFIG_UPROBES
Uprobes与Kprobes类似,但主要用于用户空间的调试. Stack Protector buffer overflow detection
GCC的\功能可以在函数开始执行时,在函数的返回地址末端设置一个敏感值,当函数执行完成要返回时,检查这个敏感值,看看是否存在溢出.如果有溢出则表明可能受到了堆栈溢出攻击,内核将通过panic来阻止可能的攻击.选项中的\表示关闭此功能,\表示启用此功能但是仅提供较弱
user-space
probes
very
unlikely/likely
branches
的保护(需要GCC-4.2及以上版本),\则表示提供较强的保护(需要GCC-4.9及以上版本) Enable
GCOV-based
kernel
profiling
CONFIG_GCOV_KERNEL
基于GCC的gcov(代码覆盖率测试工具)的代码分析支持,仅用于调试 Profile
CONFIG_GCOV_PROFILE_ALL
支持对整个内核进行分析.内核体积将会显著增大,并且运行速度显著减慢.
entire
Kernel
Enable loadable module support 可加载模块支持
Enable CONFIG_MODULES
打开可加载模块支持,可以通过\把内核模块安装在/lib/modules/中.然后可以使用 modprobe, lsmod, modinfo, insmod, rmmod 等工具进行各种模块操作. Forced
CONFIG_MODULE_FORCE_LOAD
允许使用\在不校验版本信息的情况下强制加载模块,这绝对是个坏主意!建议关闭. Module
CONFIG_MODULE_UNLOAD 允许卸载已经加载的模块 Forced
CONFIG_MODULE_FORCE_UNLOAD
允许强制卸载正在使用中的模块(rmmod -f),即使可能会造成系统崩溃.这又是一个坏主意!建议关闭. Module
CONFIG_MODVERSIONS
versioning
support
module
unloading unloading
module
loading
loadable
module
support
允许使用为其他内核版本编译的模块,可会造成系统崩溃.这同样是个坏主意!建议关闭. Source
checksum
for
all
modules
CONFIG_MODULE_SRCVERSION_ALL
为模块添加\字段,以帮助模块维护者准确的知道编译此模块所需要的源文件,从而可以校验源文件的变动.仅内核模块开发者需要它. Module
CONFIG_MODULE_SIG
在加载模块时检查模块签名,详情参见\Documentation/module-signing.txt\文件.[!!警告!!]开启此选项后,必须确保模块签名后没有被strip(包括rpmbuild之类的打包工具). Require
modules
to
be
validly
signed
signature
verification
CONFIG_MODULE_SIG_FORCE
仅加载已签名并且密钥正确的模块,拒绝加载未签名或者签名密钥不正确的模块
Automatically
CONFIG_MODULE_SIG_ALL
在执行\安装模块的时候,自动进行签名.否则你必须手动使用 scripts/sign-file 工具进行签名.
Which hash algorithm should modules be signed with?
选择对模块签名时使用的散列函数.建议使用强度最高的\算法.注意:所依赖的散列算法必须被静态编译进内核.对于\来说,就是CONFIG_CRYPTO_SHA512和CONFIG_CRYPTO_SHA512_SSSE3(如果你的CPU支持SSSE3指令集的话).
sign
all
modules
Enable the block layer 块设备支持
Enable CONFIG_BLOCK
the
block
layer
块设备支持,使用SSD/硬盘/U盘/SCSI/SAS设备者必选.除非你是某些特殊的嵌入式系统,否则没有理由不使用块设备. Block
layer
SG
support
v4
CONFIG_BLK_DEV_BSG
为块设备启用第四版SG(SCSI generic)支持.v4相比v3能够支持更复杂的SCSI指令(可变长度的命令描述块,双向数据传输,通用请求/应答协议),而且UDEV也要用它来获取设备的序列号.对于使用systemd的系统来说,必须选\对于不使用systemd的系统,如果你需要通过/dev/bsg/*访问块设备,建议开启此选项,否则(通过/dev/{sd*,st*,sr*})可以关闭. Block
layer
SG
support
v4
helper
lib
CONFIG_BLK_DEV_BSGLIB
你不需要手动开启此选项,如果有其他模块需要使用,会被自动开启. Block
layer
data
integrity
support
CONFIG_BLK_DEV_INTEGRITY
某些块设备可以通过存储/读取额外的信息来保障端到端的数据完整性,这个选项为文件系统提供了相应的钩子函数来使用这个特性.如果你的设备支持 T10/SCSI Data Integrity Field 或者 T13/ATA External Path Protection 特性,那么可以开启此选项,否则建议关闭. Block
layer
bio
throttling
support
CONFIG_BLK_DEV_THROTTLING
Bio Throttling 支持,也就是允许限制每个cgroup对特定设备的IO速率.细节可以参考\Documentation/cgroups/blkio-controller.txt\Advanced
CONFIG_PARTITION_ADVANCED
如果你想支持各种不同的磁盘分区格式(特别是与UEFI配合使用的GPT格式),务必选中此项. Acorn
CONFIG_ACORN_PARTITION
Acorn 操作系统使用的分区格式,请根据实际情况选择子项,这里省略
partition
support
partition
selection
Alpha OSF partition support
CONFIG_OSF_PARTITION Alpha 平台上使用的分区格式 Amiga
partition
table
support
CONFIG_AMIGA_PARTITION AmigaOS 使用的分区格式 Atari
partition
table
support
CONFIG_ATARI_PARTITION Atari OS 使用的分区格式 Macintosh
CONFIG_MAC_PARTITION
苹果的Macintosh平台使用的分区格式 PC
BIOS
(MSDOS
partition
tables)
support
partition
map
support
CONFIG_MSDOS_PARTITION
渐成历史垃圾,但目前依然最常见的DOS分区格式.除非你确信不使用此格式,否则必选.其下的子项根据实际情况选择. Windows
Logical
Disk
Manager
(Dynamic
Disk)
support
CONFIG_LDM_PARTITION
使用 Windows Logical Disk Manager 创建的分区格式.参见\Documentation/ldm.txt\SGI
CONFIG_SGI_PARTITION SGI 平台上使用的分区格式 Ultrix
partition
table
support
partition
support
CONFIG_ULTRIX_PARTITION
DEC/Compaq Ultrix 平台上使用的分区格式 Sun
partition
tables
support
CONFIG_SUN_PARTITION SunOS 平台上使用的分区格式
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Linux 3.10内核编译选项(5)在线全文阅读。
相关推荐: