Linux 3.4.39内核编译配置选项介绍
Linux 3.4.39内核编译配置选项介绍
工程项目使用了全志H3平台,make menuconfig配置内核为Linux 3.4.39版本:
在网上参考了一些配置选项,但是每个版本都有一些差异,在总结网友提供的资料的基础上面,对3.4x版本进行归纳总结如下。
—————————————————————————————————————————————————————————————————————————————
注:内容太多,可能一两天无法写完,但是会陆续更新,如果有的地方不确定我会表上自己翻译,等待后续理解后再更新。
General setup--->
-常规设置
prompt for development and/or incomplete code/drivers
-显示尚在开发中或尚未完成的代码与驱动,请慎重选择此项
Cross-comiler tool prefix
-交叉编译工具前缀
Local Version - append to kernel release
-在内核版本后面加上自定义的版本字符串(小于64字符),可以使用uname -a 命令查看
Automatically append version information to the version string Kernel compression mode(Gzip) --->
-自动在版本字符串后面添加版本信息并附到内核压缩模式(自己组织的语言~),编译时需要有perl以及git仓库支持
Gzip
Bzip2
LZMA
XZ
LZO
(sun8i) Default hostname 默认主机名sun8i
Support for paging of anonymous memory (swap)
-使用交换分区或者交换文件夹来作为虚拟内存
System V IPC
-System V进程间通信(IPC)支持,许多程序需要这个功能,必选择项,除非自己很清楚要做的任务
POSIX Message Queues
-POSIX消息队列,这是POSIX IPC中的一部分
BSD Process Accounting
-将进程的统计信息写入文件的用户级系统调用,主要包括进程的创建时间/创建者/内存占用等信息
open by fhandle syscalls
-通过fhandle 系统调用打开(自己翻译)
Export task/process statistics through netlink (EXPERIMENTAL)
-通过netlink接口向用户空间到处任务/进程的统计信息,与BSD Process Accounting的不同之处在于这些在整个任务/进程生存起都是可用的
Auditing support
-审计支持,某些内核模块(例如SELinux)需要他,只有同时选择其子项才能对系统调用进行审计
Enable system-call auditing support
-(使能)系统调用的审计支持
Make audit loginuid immutable
- 使审计loginuid不可变(自己翻译)
IRQ subsystem --> 无二级选项
-IRQ 子系统
RCU Subsystem --->
-RCU子系统
RCU Implementation (Preemptible tree-based hierarchical RCU) --->
-RCU实现(可抢占的基于树的分级RCU)
Preemptible tree-based hierarchical RCU
-可抢占的基于树的分级RCU
Tree-based hierarchical RCU fanout value
-基于树的分级分级RCU “fanout" 值 (fanout是什么?)
Disable tree-based hierarchical RCU auto-balancing
-禁用基于树的分级RCU自动平衡
Accelerate last non-dyntick-idle CPU's grace periods
-加速最后一个非合成空闲CPU的宽限期(自己翻译)
Enable RCU priority boosting
-启用RCU优先级提升
Kernel .config supprot
-内核.config支持
Kernel log buffer size (16 => 64 KB, 17 => 128 KB)
-内核log的缓存大小(前面选项写16则64kb,17则对应128kb)
Control Group / support --->
-控制 组/支持选项
Example debug cgroup subsystem
-调试cgroup子系统示例(cgroup是什么?)
Freezer cgroup subsystem
-冻结cgroup子系统
Device controller for cgroups
-cgroup的设备控制器
Cpuset support
-只含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要此项
Simple CPU accounting cgroup subsystem
-简单的 CPU统计(cgroup的)子系统(自己翻译)
Resource counters
-资源计数器
Memort Resource Controller for Control Groups
-控制组的内存资源控制器
Enable perf_event per-cpu per-container group (cgroup) monitoring
-使能 perf_event per-cpu per-container的监视器( perf_event per-cpu per-container是什么东西)
Group CPU scheduler --->
-CPU组调度程序
Group scheduling for SCHED_OTHER
-SCHED_OTHER的调度程序
CPU bandwidth provisioning for FAIR_GROUP_SCHED
-FAIR_GROUP_SCHED的CPU带宽配置
Group scheduling for SCHED_RR/FIFO
-SCHED_RR/FIFO的调度
Block IO conrtoller
-IO区块控制器
Checkpoint / restore support
-检查/恢复点支持(自己翻译)
Namespaces support --->
-命名空间支持
UTS namespace
-UTS命名空间支持,若不确定可以不选择
IPC namespace
-~~~
User namespace (EXPERIMENTAL)
-用户命名空间(是还在实验使用阶段吗?)
PID Namespaces
-~~~
Network namespace
-网络命名空间
Automatic process group scheduling
-自动进程组的调度
Enable deprecated sysfs features to support old userspace tools
-启用不推荐的sysfs功能用以支持旧的用户空间工具
Kernel -> user space relay support (formerly relayfs)
-内核---用户空间中继支持(之前的relayfs)
Initial RAM filesystem and RAM disk (initramfs/initrd) support (选中此项则会有如下6项 )
-初始化RAM文件系统和RAM磁盘(如果启动计算机所必需的模块都在内核里的话可以不选择此项)
Initramfs source file(s)
Support initial ramdisks compressed using gzip
-支持使用gzip压缩的出事ramdisks
Support initial ramdisks compressed using bzip2
-~~
Support initial ramdisks compressed using LZMA
-~~
Support initial ramdisks compressed using XZ
-~~
Support initial ramdisks compressed using LZO
-~~
Optimize for size
-优化size(是指内存大小吗?)
Default panic timeout
-默认的超时(时限)
Configure standard kernel features (expert users) --- >
-配置标准内核功能(专家用户)
Systl syscall support
-systl系统调用支持
Load all symbols for debugging/ksymoops
-加载调试/ksymoops的所有符号
Include all symbols in kallsyms
-包括在kallsyms的所有符号
Support for hot-pluggable devices
-支持热插拔设备,比如USB与pc卡等,Udev也需要此选项
Enable support for printk
-(使能)支持printk(printk是内核打印方法,类似于print函数,也就是支持内核调试打印输出了)
BUG() suport
-bug支持
Enable ELF core dumps
-内存转储支持,可以帮助调试ELF格式的程序
Enable PC-Speaker support (NEW)
-(使能)PC-Speaker 支持(新功能哦)
Enable full-sized data structures for core
-在内核当中使用全尺寸的数据结构(禁用它将会使得某些内核的数据结构减小以节约内存,但是会将性能降低)
Enable futex support
-快速用户空间互斥体可是使线程串行化以避免竞争态条件,也提高了响应速度,禁用将导致内黑不能够正确的运行基于glibc的程序
Enable eventpoll support
-支持时间轮训的系统调用
Enable signalfd() system call
-支持signalfd的系统调用
Enable timerfd() system call
-~~
Enable eventfd() system call
-~~
Use full shmem filesystem
-完全使用shmem文件系统来代替ramfs.shmem是基于共享内存的文件系统(可能用到swap),在启用TMPFS后可以挂载为tmpfs供用户空间使用,它比简单的ramfs先进很多。
Enabel AIO support
-使能AIO的支持
Embedded system
-嵌入式系统
Kernel Performance Event And Counters --->
-内核性能事件和计数器
Kernel performance counters (old config option)
-内核性能计数器(旧配置选项)
Debug:use vmalloc to back perf mmap() buffers
-调试:使用vmalloc来返回perf mmap()缓冲区(数据)
Enable VM event counters for /proc/vmstat
-允许在/proc/vmstat中包含虚拟内存事件计数器
Enable PCI quirk workarounds (NEW)
-(使能)PCI quirk解决方法(新功能)
Disable heap randomization
-禁用堆随机
Choose SLAB allocator (SLAB) --->
-选择SLAB分配器(SLAB)
SLAB
SLUB (Unqueued Allocator)
SLOB (Simple Allocator)
Profiling support
-对系统的活动进行分析,供内核开发者使用
OProfile system profiling
-OProfile 系统分析
Kprobes
-供内核开发者使用
Optimize very unlikely/ likely branches
-优化不太可能/可能的分支
GCOV-based kernel profiling --->
-基于GCOV的内核分析
Enable gcov-based kernel profiling
-(使能)基于gcov的内核分析
Linux 3.4.39内核编译配置选项介绍相关教程