【ACCESS精品源码栏目提醒】:以下是网学会员为您推荐的ACCESS精品源码-Linux内核配置(大纲视图) - 其它资料,希望本篇文章对您学习有所帮助。
Linux 内核配置General setup ---gt Prompt for development and/or incomplete code/drivers显示尚在开发中或尚未完成的代码和驱动默认选择会在设置界面中显示还在开发或者还没有完成的代码与驱动, 大 也包含一些过时的驱动。
多数情况下,应该选择,许多设备的驱动可能需要这个选项才能进行配置。
Cross-compiler tool prefix NEW交叉编译工具前缀默认取消如果使用交叉编译工具,输入相关前缀。
Local version - append to kernel release NEW在内核版本后面加上自定义的版本字符串小于 64 字符可用quotuname -aquot命令看到 Automatically append version information to the versionstring自动在版本字符串后面添加版本信息会尝试自动探测目前的编译树列是否是一个发行版本树列,通过寻找 git 标记来完成,归属于目前的树列修正版顶层。
编译时需要有 perl 以及 git 仓库支持。
Kernel compression mode Bzip2 ---gt内核压缩格式一般默认 gzip如果用 bzip2lzmalzo要先安装相关解压缩工具。
相对于默认的 Gzip,Bzip2 拥有更高的压缩比 Gzip Bzip2 LZMA XZ LZO Default hostname指定一个默认的主机名可以省去使用 sethostname 命令设置主机名称。
在制作最小系统时比较有用。
Support for paging of anonymous memory swap NEW虚拟内存页交换(swap)支持启用交换分区或者交换文件。
推荐 Y System V IPCSystem V 进程间通信为兼容使用 System V IPC 的 UNIX 程序而设的,若不考虑兼容性,可忽略这个参数。
提供相关系统调用及函数库。
为进程提供通信机制,使系统中各进程有交换信息与保持同步的能力。
参考:System V 的 IPC 机制某些程序以及 DOS 模拟环境都需要它。
推荐 Y POSIX Message QueuesPOSIX 消息队列为兼容 POSIX 标准而设计,同样是 IPC。
一个优先权,可以决定进程处理 POSIX 消息的连续性。
若要编译和运行比如写给 Solaris 的程序,他们使用了 POSIX 消息队列,这里需要选 Y。
推荐 Y BSD Process Accounting将进程的统计信息写入文件的用户级系统调用使用户级别的程序可以通过特殊的系统调用方式通知内核把进程统计信息记录到一个文件。
信息包括进程创建时间、创建 者、命令名称、内存使用、控制终端等。
对用户级程序非常有用。
使用 accton 命令可以开启这个功能。
嵌入式系统中通常不需要。
参考:HOWTO linux 进程统计(process accounting)推荐 Y BSD Process Accounting version 3 file format NEW使用新的第三版文件格式可以包含每个进程的 PID 和其父进程的 PID但是不兼容老版本(v0/v1/v2)的文件格式。
所以需要升级工具软件以处理它。
V3 格式是一种二进制的格式。
若想明码保存,不应选择此项。
open by fhandle syscalls NEW打开文件可以通过句柄子系统调用 Export task/process statistics through netlinkEXPERIMENTAL通过网络(netlink)接口向用户空间导出任务/进程的统计信息(实验阶段)netlink 是一种在内核与用户应用之间进行双向数据传输的非常好的方式,用户应用使用标准的 socket API 就可以使用 netlink 提供的强大功能。
与 BSD Process Accounting 的不同之处在于这些统计信息在整个任务/进程生存期都是可用的。
可选 N Enable per-task delay accounting EXPERIMENTAL统计数据包含每个任务/进程的延时(实验阶段)允许单任务延迟统计通过任务等待系统资源的方式收集信息, 这会收起时间的花销。
系统的资源如 CPU、同步 I/O 复合块和交换页面等等。
这些统计信息可以帮助设置一个任务的cpu/io/iss 优先级等。
可选 N Enable extended accounting over taskstats EXPERIMENTAL统计数据包含扩展任务读取数据和发送数据使用的时间(实验阶段)允许通过任务状态进行扩展统计收集扩展任务统计数据,并把它们发送至用户空间,以便可以用任务状态接口进行处理。
如果不清楚,选 N Enable per-task storage I/O accounting EXPERIMENTAL统计数据包括 I/O 设备产生的字节数允许单任务储存 I/O 统计收集任务引发的储存 I/O 上的一定数量的字节信息。
如果不清楚,选 N。
Auditing support支持审计功能允许审计的基础结构能够被其他内核子系统使用。
如 SELinux 需要这个来进行登录时的声音 。
使用 SELinux 安全模型必选和视频输出(记录 avc 消息输出)需同时选择其子项才能对系统调用进行审计。
若无需高安全需要,可选 N Enable system-call auditing support NEW开启系统调用的审计功能允许低层的系统调用审计构架,这可以独立使用,或者用于其他的内核子系统,比如 SELinux要使用审计的文件系统监视特性。
需确保 INOTIFY 被配置。
Make audit loginuid immutable NEWIRQ subsystem ---gt中断子系统-- Support sparse irq numbering支持稀有的中断号RCU Subsystem ---gt非对称读写锁系统一种新的 kernel 锁机制,适用于读多写少环境。
对于被 RCU 保护的共享数据结构,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调(callback)机制在适当的时机把指向原来数据的指针重新指向新的被修改的数据。
这个时机就是所有引用该数据的CPU 都退出对共享数据的操作。
RCU Implementation Classic RCU ---gt选择标准的 RCU 系统tree-base 是给拥有大规模 CPU 集群的 SMP 系统用的 Enable tracing for RCU NEW32 Tree-based hierarchical RCU fanout value NEWRCU 树的分支数 Disable tree-based hierarchical RCU auto-balancing NEW关闭 RCU 自动均衡功能 Accelerate last non-dyntick-idle CPUs grace periods NEW提高非休眠 CPU 的使用时间ltgt Kernel .config support NEW允许.config 文件保存在内核中提供正在运行中的或者还在硬盘中的内核的相关配置选项。
可以通过内核镜像文件 kernel image file 用脚本 scripts/extract-ikconfig 来提取出来,作为当前内核重编译或者另一个内核编译的参考。
内核在运行中,可以通过/proc/config.gz 文件来读取。
下一个选项提供这项支持。
Enable
access to .config through /proc/config.gz允许通过/proc/config.gz 访问内核的配置信息18 Kernel log buffer size 16 gt 64KB 17 gt 128KB内核日志缓冲尺寸使用 dmesg 可读取内核的环缓冲区ring buffer,输出许多启动信息。
这个值是以 2 的平方取的,取值范围 12-2117128kb、1664kb、1532kb、1416kb、138kb、124kb Control Group support ---gtcgroups 给进程分组,以动态调控进程组的 CPU 占用如 A 进程分到 apple 组,给予 20CPU 占用,E 进程分 easy 组,给予 50CPU 占用,最高100。
会使得像使用多 CPU 一样使用处理器组子系统。
若不清楚,推荐 N--- Control Group support Example debug cgroup subsystem NEW调试组控制子系统范例这个选项开启一个简单的组控制子系统,输出有用的关于组控制框架的调试信息。
如果不清楚,选 N。
Freezer cgroup subsystem Device controller for cgroups NEWcgroups 设备控制器 Cpuset support创建和管理 CPUSETs只有含有大量 CPU大于 16 个的 SMP 系统或 NUMA非一致内存访问系统才需要Include legacy /proc/ltpidgt/cpuset file NEW创建/proc/ltpidgt/cpuset 文件Simple CPU accounting cgroup subsystem简单 CPU 统计组控制子系统,一个简单的资源控制器。
Resource counters这个选项开启独立的资源计数器构架,它与组控制系统共同工作。
Memory Resource Controller for Control Groups NEW控制组的内存资源控制器提供一个内存资源控制器,以管理随机内存和页面缓存。
Enable perf_event per-cpu per-container group cgroup moni Group CPU scheduler ---gtCPU 组调度器可为进程赋予不同于 nice level 的调度优先级。
尤其在企业级硬件系统上,可以进一步优化实时任务的调度。
桌面用户可以不选--- Group CPU scheduler Group scheduling for SCHED_OTHER NEWSCHED_OTHER 组调度。
SCHED:Process Scheduler负责控制进程对 CPU 的使用.调度算法的公平有效硬件有关事件的及时处理. CPU bandwidth provisioning for FAIR_GROUP_SCHED NEW Group scheduling for SCHED_RR/FIFO NEWSCHED_RR/FIFO 组调度ltgtBlock IO controller NEW Checkpoint/restore support命名空间组控制子系统提供一个简单的命名空间组控制子系统,以提供分层次的设置命名,用于虚拟服务器实例和检查点/重启任务。
-- Namespaces support--- Namespaces support UTS namespace通用终端系统的命名空间允许使用容器,如 Vservers 利用 UTS 命名空间来为不同的服务器提供不同的 UTS。
在此命名空间中,任务通过 uname系统调用来查看不同的信息。
IPC namespace在这个命名空间,任务用 IPC id 来工作。
IPC id 通过不同命名空间的不同 IPC 对象来进行通信。
User namespace EXPERIMENTAL此命名空间允许使用容器(如 vservers),使用用户命名空间来为不同服务器提供不同的用户信息。
可选 N。
PID Namespaces支持进程 id 命名空间。
这允许多进程拥有相同的 pid,只要它们位于不同的 pid 命名空间。
这是一个容器的编译块。
若不清楚,推荐 N。
Network namespace Automatic process group scheduling NEW Enable deprecated sysfs features to support old userspacetoo Enable deprecated sysfs features by default-- Kernel-gtuser space relay support formerly relayfs在某些文件系统上比如 debugfs提供从内核空间向用户空间传递大量数据的接口,我目前没有此类应用场景。
Initial RAM filesystem and RAM disk initramfs/initrdsupport初始 RAM 的文件和 RAM 磁盘( initramfs /initrd)支持用于在真正内核装载前,做一些操作(俗称两阶段启动) ,比如加载 module,mount 一些非root 分区,提供灾难恢复 shell 环境等。
RAM 文件系统被启动器装载(比如 lilo),在通常的启动程序前以 root 形式挂载。
通常用来装载模块,在挂载真正的 root 文件系统时使用。
如果 RAM 磁盘支持也被选入,这将允许初始 RAM 磁盘支持(initrd)。
采用 initrd 启动则要选择,否则可以不选. 。
若不清楚,可选 N使内核增大 15kb(在一些体系上,可能会更大) Initramfs source files NEW初始 ram 文件系统这里可以是一个单独的 cpio 压缩包,有.cpio 的后缀。
或者是一个目录和文件的列表,用来编译初始 ram 文件系统镜像。
.cpio 压缩包应该包含 ram 文件系统镜像所需的文件系统包。
目录列表应该包含所有文件的层次,文件列表应该包含 usr/gen_init_cpio 中提到的内容。
当多重的目录和文件确定时,初始 ram 文件系统镜像将把它们聚合起来。
若不清楚,可选 N Support initial ramdisks compressed using gzip NEW 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 NEW内核大小优化将在 GCC 命令后用-Os 代替-O2 参数,可以得到更小的内核。
有时会产生错误的二进制代码。
Configure standard kernel features for small systems ---gt配置标准的内核特性(针对小型系统)这个选项可以让内核的基本选项和设置无效或者扭曲。
用于特定的“非标准”环境(小型系统、引导盘)中的。
其本质为启用该选项可以选择更多选项。
若不清楚,推荐 N--- Configure standard kernel features expert users-- Load all symbols for debugging/ksymoops在这选 Y 可以让内核打印所有的崩溃信息标记和栈回溯信息。
这里会增大内核的一些尺寸,因为所有的标记都被编译进了内核镜像。
Include all symbols in kallsyms NEW装载所有的调试符号表信息在 kallsyms 中包含内核知道的所有符号内核将会增大 300K。
Enable full-sized data structures for core NEW在内核中使用全尺寸的数据结构禁用将使得某些内核的数据结构减小以节约内存但是将会降低性能。
Enable futex support NEW快速用户空间互斥体可以使线程串行化以避免竞态条件也提高了响应速度.禁用它将导致内核不能正确的运行基于 glibc 的程序 Enable eventpoll support NEW支持事件轮循的系统调用 Enable signalfd system call NEW Enable timerfd system call NEW-- Enable eventfd system call-- Use full shmem filesystem完全使用 shmem 来代替 ramfsshmem 是基于共享内存的文件系统可能用到 swap在启用 TMPFS 后可以挂载为 tmpfs 供用户空间使用它比简单的 ramfs 先进许多。
Enable AIO support NEW Embedded system NEWKernel Performance Events And Counters ---gt-- Kernel performance events and countersCPU 性能监听器包括 CPU 同一时间执行指令数,cache miss 数,分支预测失败次数Branch misprediction。
调优其他程序时或许会用到,比如 JVM Kernel performance counters old config option NEW Debug: use vmalloc to back perf mmap buffers NEW调试 Enable VM event counters for /proc/vmstat NEW允许在/proc/vmstat 中包含虚拟内存事件记数器。
Enable PCI quirk workarounds NEW Enable SLUB debugging support NEW Disable heap randomization禁用随机 heapheap 堆是一个应用层的概念,即堆对 CPU 是不可见的,它的实现方式有多种,可以由 OS 实现,也可以由运行库实现如果你愿意,你也可以在一个栈中来实现一个堆) 。
可选 NChoose SLAB allocator SLUB Unqueued Allocator ---gt SLAB这是传统的,在所有的环境中都工作得很好。
用每个 CPU 和每个节点队列来组织每个热对象。
这是默认的分配符。
X SLUB Unqueued Allocator非队列分配符 不像 SLAB 那样使用队列缓冲对象。
最小化了缓冲, 每个 CPU 的缓冲被认为是使用 slab 对象,而不是一个队列。
SLAB 可以高效使用内存,还有加强的诊断。
Profiling support剖面支持支持扩展剖面支持架构,被 OProfile 等剖面器使用。
支持系统评测(对于大多数用户来说并不是必须的)。
ltgt OProfile system profiling NEWOProfile 系统评测和性能监控工具能对整个系统进行剖面图分析,包括内核、内核模块、库文件和应用程序。
KprobesK 探测器可以让 CPU 在内核几乎所有地方陷入并执行一个回调函数。
Register_kprobe建立一个探测点,并指定一个回调函数。
对于内核调试、非侵入式设备测试相当有用。
Optimize trace point call sites NEWGCOV-based kernel profiling ---gt Enable gcov-based kernel profiling Enable loadablemodule support ---gt让内核支持模块模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。
一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。
在运行时可以使用 modprobe 命令来加载它到内核中去在不需要时还可以移除它。
在启动时不用到的功能,编成模块是最有效的方式。
必须通过quotmake modules_installquot把内核模块安装在/lib/modules/中。
--- Enable loadable module support Forced module loading强制模块加载允许在没有版本信息的时候加载模块(modprobe –force)。
这个选项设置了“F”尾标记,不可取。
Module unloading允许卸载已经加载的模块。
Forced module unloading允许强制卸载正在使用的模块(比较危险)。
Module versioning support NEW允许使用其他内核版本的模块(可能会出问题)有时候,你需要编译模块。
选这项会添加一些版本信息,来给编译的模块提供独立的特性,以使不同的内核在使用同一模块时区别于它原有的模块。
Source checksum for all modules NEW为所有的模块校验
源码这能够帮助所有者明确地知道他使用了那个源文件来编译这个模块(因为有的人在编译模块时不小心更改了内核模块的源代码但忘记更改版本号) 。
这个选项将会在所有模块建立“srcversion”域。
除非自己编写内核模块,否则不需要。
-- Enable the block layer ---gt--- Enable the block layer块设备支持使用硬盘、USB、SCSI 设备必需选择。
Support for large 2TB block devices and files NEW大硬盘支持SATA 设备如果不选,会发生 kernel panic,具体原因未知。
如果你的系统是装在一个 ext4 分区下的,那么这项必选。
help 最后一句话,ext4 分区需要这个选项。
Block layer SG support v4 NEW支持通用 scsi 块设备第 4 版不同于 SG v3,SG v4 能够处理复杂的 SCSI 命令:标记变量长度 cdbs,使用双向数据传输和通用请求辑回复协议(比如任务管理器功能和串行 SCSI SMP 功 ) 能 。
若不清楚可选 N。
Block layer data integrity supportNEW块设备层数据完整性支持。
一些储存设备允许额外信息的储存和找回,以便保护数据。
块设备层数据完整性选项提供了相应的挂钩,这可以用于文件系统中,以确保更好的数据完整性。
若不清楚可选 N。
Partition Types---gt Advanced partition selection Acorn partition support NEW Alpha OSF partition support Amiga partition table support Atari partition table support NEW Macintosh partition map support PC BIOS MSDOS partition tables support NEW BSD disklabel FreeBSD partition tables support Minix subpartition support Solaris x86 partition table support Unixware slices support Windows Logical Disk Manager Dynamic Disk supportNEW SGI partition support Ultrix partition table support NEW Sun partition tables support Karma Partition support EFI GUID Partition support SYSV68 partition table support NEWIO Schedulers ---gtIO 调度器支持用于对大型块设备的设备层的 I/O Schedulers(I/O 调度器)配置。
不同程序可以会选用不同的调度策略,可以默认。
ltgt Deadline I/O scheduler NEW使用轮询调度程序 。
简洁小巧,提供了最小的读取延迟和较佳的吞吐量。
适用于读取较多的环境(如数据库)ltgt CFQ I/O scheduler NEWCFQ I/O 调度程序使用 QoS 策略为所有任务分配等量的带宽避免进程被饿死并实现了较低的延迟可以认为是上述两种调度器的折中。
适用于桌面多任务及多媒体应用。
Default I/O scheduler CFQ ---gt默认 IO 调度器 DeadlineX CFQ No-opNo-op I/O 调度器最基础的 I/O 调度程序,完成基本的合并与排序。
主要用于非磁盘的块设备,如内存设备或自行调度、只需内核做少量辅助的特殊软硬件环境。
Processor type and features ---gt平台的列表及其相关配置对于选择不同的体系结构,会显示不同的选项。
DMA memory allocation support NEW Tickless System Dynamic Ticks非固定频率系统CPU 节能,动态时间片意思是当 CPU 处于空闲时,降低内核定时器的轮询频 High Resolution Timer Support高分辨率时钟支持如果你的硬件不够好,那么这个选项仅仅是增加内核的尺寸。
我有的时候要测试 Real TimeJVM,希望内核能支持这种高响应速度的内核定时器,一般用户可关闭 Symmetric multi-processing support对称多处理器支持如果有多个 CPU、支持超线程或者使用的是多核 CPU 就选上。
此时quotEnhanced Real Time ClockSup.
上一篇:
mysql安装图解 mysql安装教程
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a