关键词不能为空

当前您在: 主页 > 英语 >

linux内核配置make menuconfig菜单详解

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-15 17:28
tags:

-

2021年2月15日发(作者:保佑)


LINUX


内核配置


MAKE MENUCONFIG


菜单详解



< /p>


我们在


linux


内核裁剪过程中,进入 内核所在目录,键入


make menuconfig


就会 看到一堆


的配置菜单,


它们具体代表什么含义呢?我们该如何取 舍呢?这里把近期收集到的一些信息


做一个总结。




1



General setup


代码成熟度选项,它又有子项:



1.1



prompt for development and/or incomplete code/drivers

< p>
该选项是对那些还在测试阶段的代码,


驱动模块等的支持。


一般应该选这个选项,


除非你只


是想使用


LINUX


中已经完全稳定的东西。但这样有时对系统性能影响挺大。




1.2



Cross- compiler tool prefix


交叉编译工具前缀,例如:


Cross-compiler tool prefix


值为


: (arm-linux-)



1.3



Local version - append to kernel release


内核显示的版本信息,


填入


64


字符以内的字符串,


你在这里填上的字符口串可以用


uname


-a


命令看到。




1.4



Automatically append version information to the version string


自动在版本字符串后面添加版本信息


,


编译时需要有


perl


以及


git


仓库支持




1.5



Kernel compression mode (Gzip) --->


< br>四

























< br>一








gzip,bzip2,lz ma,lxo,


一般可以按默认的


gzip,

< br>如果要用


bzip2,lzma,lxo


要先装上支持< /p>




1.6



Support for paging of anonymous memory (swap)



使用交换分区或交换文件来做为虚拟内存,一定要选上。




1.7



System V IPC


表示系统的进程间通信


Inter Process Comm unication


,它用于处理器在程序之间同步和交


换信息 ,如果不选这项,很多程序运行不起来,必选。




1.8



POSIX Message Queues


POSIX


标准的消息队列,它同样是 一种


IPC


。建议你最好将它选上




1.9



BSD Process Accounting


用户进程访问内核时将进程信息写入文件中。< /p>


通常主要包括进程的创建时间


/


创建者< /p>


/


内存占


用等信息。建议最好选上。




1.10



BSD Process Accounting version 3 file format


使用新的第 三版文件格式


,


可以包含每个进程的


P ID


和其父进程的


PID,


但是不兼容 老版本的


文件格式。




1.11



Export task/process statistics through netlink (EXPERIMENTAL)


通过


netlink


接口向用户空间导出任务


/


进程的统计信息< /p>


,



BSD Process Acco unting


的不


同之处在于这些统计信息在整个任务


/


进程生存期都是可用的



Enable per-task delay accounting (EXPERIMENTAL)



在统计信息 中包含进程等候系统资源


(cpu,IO


同步

< br>,


内存交换等


)


所花费的时间< /p>



Enable extended accounting over taskstats (EXPERIMENTAL)



在统计信息中包含扩展进程所花费的时间




1.12



Auditing support

< p>
审记支持,用于和内核的某些子模块同时工作,例如


Security Enhanced Linux


。只有选择


此项及它的子项,才 能调用有关审记的系统调用。




1.13



Enable system-call auditing support



支持对系统调用的审计




1.14



IRQ subsystem --->


中断子系统



Support sparse irq numbering


<===


支持稀有的中断编号,关闭




1.15



RCU Subsystem --->


非对称读写锁系统



是一种高性能的


kernel


锁机制,适用于读多写少环境



RCU Implementation (Tree-based hierarchical RCU) --->


RCU


实现机制


Tree(X) Tree-based hierarchical RCU


基本数按等级划分



Enable tracing for RCU


激活跟踪



(32) Tree- based hierarchical RCU fanout value


基本数按等级划分分列值



Disable tree-based hierarchical RCU auto-balancing



1.16



< > Kernel .config support


这个选项允许


.conf ig


文件(即编译


LINUX


时的配置 文件)保存在内核当中




1.17



(17) Kernel log buffer size (16 => 64KB, 17 => 128KB)



1.18



[ ] Control Group support --->


cgroups


支持,



文档资料




cgroups


主要作用是给进程 分组,


并可以动态调控进程组



CPU


占用率。比如


A


进程分到


apple


组,给予


20%CPU


占用率,


E


进程分


easy


组,给



50%CPU


占用率,最高


100%


。我目前没有此类应用场景,用到时会选择将其编译进去。



CPU bandwidth provisioning for FAIR_GROUP_SCHED



此选项允许 用户定义的


CPU


带宽速率(限制)在公平的组调度运行的任务 。组没有限


制设置被认为是无约束和运行没有限制。



Group scheduling for SCHED_RR/FIFO



此功能可以让您显式地分配真实的


CPU


带宽任务组。




1.19



-*- Namespaces support --->


命名空间支持,允许服务器为不同的用户信息提供不



同的用户名空间服务



[*] UTS namespace


通用终端系统的命名空间。它允许容器,比如


Vservers

利用


UTS


命名空间来为不同的


服 务器提供不同的


UTS


。如果不清楚,选


N




[*] IPC namespace


IPC


命名空间,不确定可以不选



[*] User namespace (EXPERIMENTAL)


User


命名空间,不确定可以不选



[*] PID Namespaces


PID


命名空间,不确定可以不选



[*] Network namespace



1.20



Automatic process group scheduling


自动进程组调度




1.21



[ ] enable deprecated sysfs features to support old userspace tools



1.22



-*- Kernel->user space relay support (formerly relayfs)


在某些文件系统上


(


比如


debugfs )


提供从内核 空间向用户空间传递大量数据的接口,我


目前没有此类应用场景




1.23



[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support


用于在真正内核装 载前,做一些操作(俗称两阶段启动),比如加载


module



mount


一些



root


分区,提供灾难恢复


shell


环境等,



资料



,我是期望直接从


kernel


image


直接


启动,所以没选它





1.24



Initramfs source file(s)

< br>initrd


已经被


initramfs


取代


,


如果你不明白这是什么意思

,


请保持空白




1.25



Optimize for size


这个选项将在


GCC


命令后用




-


Os ” 代替




-


O2 ″参数,这样可以得到更小 的内核。没


必要选。选上了有时会产生错误的二进制代码。




1.26



Enable full- sized data structures for core


:在内核中使用全尺 寸的数据结构


.


禁用它将使得某些内核的数据结构减小以节约内 存


,


但是将会降低性能。




1.27



Enable futex support


:快速用户空间互斥体可以使线程串行化以避免竞态条件


,



提高了响应速度


.


禁用它将导致内核不能正确的运行基于


glibc

的程序。




1.28



Enable eventpoll support


:支持事件轮循的系统调用。




1.29



Use full shmem filesystem


:除非你在很少的内存且不使用交换内存时,才不要 选


择这项。后面的这四项都是在编译时内存中的对齐方式,


0


表示



编译器的默认方式。


使用内存对齐能提高程序的运行速度,


但是会增加程序对内存的使用量。


内核也是一组程序呀。



Enable VM event counters for /proc/vmstat

:允许在


/proc/vmstat


中包含虚拟内存


事件记数器。



[*] Disable heap randomization


禁用随机


heap



heap


堆是一个 应用层的概念,即堆对


CPU


是不可见的,它的实现方式有多< /p>


种,


可以由


OS


实现,


也可以由运行库实现


,


如果你愿 意,


你也可以在一个栈中来实现一个堆)




1.30



Choose SLAB allocator (SLAB) --->


选择内存分配管理器(强烈推荐使 用


SLUB





1.31



[ ] Configure standard kernel features (for small systems) --->


这个选项可以让内核的基本选项和设置无效或者扭 曲。


这是用于特定环境中的,


它允许“非


标准”内核。你要是选它,你一定要明白自己在干什么。这是为了编译某


< p>
些特殊用途的内


核使用的,例如引导盘系统。配置标准的内核特性


(


为小型系统


)


Enable 16-bit UID system calls


:允许对

< p>
UID


系统调用进行过时的


16-bit


包装。



Sysctl syscall support


几乎使用不到这一选项,不选它可以轻微使内核变小



Include all symbols in kallsyms


:在


kallsyms


中包含内核知道的所有符 号


,


内核将


会增大

300K




Enable


support


for

printk


:允许内核向终端打印字符信息


,

< p>
在需要诊断内核为什么不


能运行时选择。



BUG() support


:显示故障和失败条件


(BUG



WARN),


禁用它将可能导致隐含的错误被


忽略。



Enable ELF core dumps


:内存转储支持


,


可以帮助调试


ELF


格式的程序。




1.32



[*] Profiling support


不选剖面支持,


用一 个工具来扫描和提供计算机的剖面图。


支持系统评测


(对于大多 数用户


来说并不是必须的)




1.33



OProfile system profiling


OProfile


评测和性能监控工具




1.35



[ ] OProfile multiplexing support (EXPERIMENTAL)



1.34



Kprobes


调试内核除非开发人员,否则不选




?1.35



Optimize trace point call sites



1.36



GCOV-based kernel profiling


[ ] Enable gcov-based kernel profiling


不选







2



Enable loadable module support


2.1 Forced module loading


允许强制加载模块




2.2 Module unloading


允许卸载已经加载的模块




2.3 Forced module unloading


允许强制卸载正在使用中的模块


(


比较危险

< br>)


这个选项允许你强行卸除模块,


即使内核认为这


不安全。内核将会立即移除模块,而不管是否有人在使用它(用


rmmod


-f


命令)。这主要


是 针对开发者和冲动的用户提供的功能。如果不清楚,选


N





2.4 Module versioning support


有时候,你需要编译模块。选这项会添加一 些版本信息,来给编译的模块提供独立的特性,


以使不同的内核在使用同一模块时区别于 它原有的模块。


这有时可能会有点用。


如果不清楚,

< p>


N


。允许使用其他内核版本的模块


(


可能会出问题


)



2.5 Source checksum for all modules


为所有的模块校验源码


,


如果你不是自己编 写内核模块就不需要它这个功能是为了防止你在


编译模块时不小心更改了内核模块的源代 码但忘记更改版本号而造成版本冲突。如果不清


楚,选


N











3



Enable the block layer



块设备支持


,


使用硬盘


/USB/SCSI


设备者必选这选项使得块设备可以从内核移除。


如果


不 选,


那么


blockdev


文件将不可用,


一些文件系统比如


ext3


将不可用。


这个选项会禁止



SCSI


字符设备和


USB


储存设备,如果它们使用不同的块设备。选


Y


,除非你知道你不需要


挂载硬盘和其他类似的设备。不过此项无可选项




3.1 Support for large (2TB+) block devices and files


仅 在使用大于


2TB


的块设备时需要




3.2 Block layer SG support v4


通用


scsi


块设备第


4


版支持




3.3 Block layer data integrity support


块设备数据完整性支持





3.4 Block layer bio throttling support


可用于限制设备的


IO


速度




3.5 Partition Types


Advanced partition selection


< p>
如果你想要在


linux


上使用一个在其他的介质 上运行着操作系统的硬盘时,选择


Y


,如


果你不确定时可以选


N



3.6 IO Schedulers


IO


调度器


I



O


是输入输出带宽控制,主要针对硬盘,是核心的必须的东西。这里提供


了三个


IO


调度器。



Deadline I/O scheduler



使用轮询的调度器


,


简洁小巧


,


提供了最小的读取延迟和尚佳的吞吐 量


,


特别适合于读取


较多的环境


(


比如数据库


)Deadline


I



O


调度器简单而又 紧密,在性能上和抢先式调度器不


相上下,在一些数据调入时工作得更好。至于在单进程


I



O


磁盘调 度上,它的工作方式几


乎和抢先式调度器相同,因此也是一个好的选择。




CFQ I/O scheduler



使用


QoS


策略为所有任务分配等量的带宽


,


避免进程被饿死并实现了较低的延迟


,


可以

< br>认为是上述两种调度器的折中


.


适用于有大量进程的多用 户系统


CFQ


调度器尝试为所有进程


提 供相同的带宽。它将提供平等的工作环境,对于桌面系统很合适。




Default I/O scheduler (CFQ)



默认


IO


调度器我这样理解上面三个


IO


调度器:< /p>




抢先式是传统的,


它的原理是一有响应,


就优先考虑调度。


如果你 的硬盘此时在运行一


项工作,它也会暂停下来先响应用户。



期限式则是:


所有的工作都有最终期限,在这之


前必须完成。


当用户有响应时,


它会根据自己的工作能 否完成,


来决定是否响应用户。


CFQ


则是平均分配资源,


不管你的响应多急,


也不管它的工 作量是多少,它都是平均分配,


一视


同仁的。

< br>


( *) Deadline


( ) CFQ


( ) No-op










4



Processor type and features


(处理器类型及特点)




4.1 DMA memory allocation support


该选项允许小于


32


位地址的设备使用前


16MB


的地址空间,如果不缺定的话, 选


Y



4.2 Symmetric multi-processing support



对称多处理器支持


,


如果你有多个


CPU


或者使用的是多核


CPU

< p>
就选上


.


此时


< p>
Real Time Clock Support


选项必须开启


,


选项必须关闭如果


你选


N


,内核将会在单个或者多个


CPU


的机器上运行,但是只会使用一个


CPU


。如果你选

< p>
Y



内核可以在很多


(但 不是所有)



CPU


的机器上运行,在 这样的机器,


你选


N


会使内核运行













Y

< p>





Processor


family






“586




or


“Pentium” ,内核将不能运行在


486


构架的机器上。同样的,多


CPU


的运行于


PPro


构架


上的内核也无法在


Pentium


系列的板上运行。




4.3 Enable MPS table


MPS


多处理器规范,不选




4.4 Support for big SMP systems with more than 8 CPUs


默认情况下为不选




4.5 Support for extended (non-PC) x86 platforms


如果选的话,你将可以选择支持如下


3 2



X86


的平台。

< br>


AMD Elan



NUMAQ (IBM/Sequent)



RDC R-321x SoC



SGI 320/540 (Visual Workstation)



STA2X11-based


(e.g.


Northville)



Summit/EXA


(IBM


x440)



Unisys


ES7000


IA32


series


Moorestown MID devic es


如果你有这样的系统,或者你想要构建一个这样的通用的分布式,

< br>选择


Y


,否则选择


N






4.6 intel MID platform support


Medfield MID platform



4.7 RDC R-321x SoC


嵌入式相关,不选




4.8 Support non-standard 32-bit SMP architectures


非标准的


32



SMP


结构支持,不选




4.9 Eurobraille/Iris poweroff module


来自


urobraill e



iris


机器不支持


APM



ACPI


来适时关 闭自己,此模块在内核中起到这


一作用。这是用于


urobra ille



iris


机子,不确定的话 ,不选。




4.10 Single-depth WCHAN output



proc


相关的最好不要关,选


Y




4.11 paravirt- ops debugging



4.12 Memtest


这一选项使内核增加一个“memtest”(内核测试)的参数, 这将允许设置


memtest


。如果


你 不知道如何回答这个问题,选择


N



4.13


Processor


family


(Pentium-Pro)

< br>处理器系列


,


请按照你实际使用的


CPU


选择这里是处


理器的类型。


这 里的信息主要目的是用来优化。


为了让内核能够在所有


X86< /p>


构架的


CPU


上运


行(虽然不是



最佳速度),在这你可以选

< br>386


。内核不会运行在比你选的构架还要老的机


器上。


比如,


你选了


Pentium


构架来优化内核,


它将不能在


486

< p>
构架上运行。


如果你不清楚,


< br>386



(


)


386


(


)


486(


)


586/K5/5x86/6x86/6x86MX


(


)


Pentium-Classic(


)


Pentium- MMX(


系统默认选项


) Pentium-Pro ( ) Pentium-II/Celeron(pre-Coppermine)( )


Pentium- III/Celeron(Coppermine)/Pentium-III


Xeon


(


)


Pentium


M(


)


Pentium-4/Celeron(P4-based)/Pentium-4


M/older


Xeon


(


)


K6/K6-II/K6-III(


)


Athlon/Duron/K7(


)


Opteron/Athlon64/Hammer/K8(


)


Crusoe(


)


Efficeon(


)


Winchip-C6(


)


Winchip-2/Winchip-2A/Winchip-3(


)


GeodeGX1(


)


Geode


GX/LX(


)


CyrixIII/VIA-C3(


)


VIA


C3-2 (Nehemiah)( ) VIA C7 ( ) Core 2/newer Xeon( ) Intel Atom




4.14


Generic


x86


support


这一选项针对


x86


系列的


CPU


使用更多的常规优 化。如果


你在上面一项选的是


i386



i586


之类的才选这个通用


x86


支持


,


如果你的


CPU


能够在上述



family


中找到就别选除了对上面你选择的


X86


CPU


进行优化,它还对更多类型


X86

CPU


的进行优化。


这将会使内核在其他的


X86


CPU


上运行得更好。


这个选项提供了对


X86


系列


CPU


最大的兼容性,用来支持一些少见的


x86

构架的


CPU


。如果你的


CPU< /p>


能够在上面的


列表中找到,就里就不用选了。



4.15 PentiumPro memory ordering errata workaround



旧的


PentiumPro


多处理器系统有勘误能力, 可能会导致在少数的情况下,违反


x86


排序标准内存操作。


启用此选项将尝试解决一些


(但不是全 部)


此类问题,


但将以


spinloc k


和内存为代价。




4.16 HPET Timer Support



HPET


时钟支持)




允许内核使用


HPET



HPET


是替代


8 254


芯片的新一代定时器


,i686


及以上级别的主板都


支持


,


可以安全的 选上。


但是,


HEPT


只会在支持它的 平台和


BIOS


上运行。


如果不支持,


8254


将会激活。选


N


,将继续使用


8254


时钟。




4.17 Enable DMI scanning


选择


Y


除非你 已经证明当进入


DMI


时不影响你的配置。

PNP BIOS


代码需要这一项的支持。




4.18 (8) Maximum number of CPUs


支持的最大


CPU



,


每增加一个内核将增加


8K


体积




4.19 SMT (Hyperthreading) scheduler support

< br>支持


Intel


的超线程


(HT )


技术超线程调度器在某些情况下将会对


Intel Pentium 4 HT


系列


有较好的支持。如果你不清楚, 选


N



4.20 Multi- core scheduler support


针对多核

< br>CPU


进行调度策略优化多核调度机制支持,


双核的


CPU


要选。


多核心调度在某些情


况下将会对多核的


CPU


系列有较好的支持。如 果你不清楚,选


N



4.21 Fine granularity task level IRQ time accounting < /p>


如果不确定的话,选


N


,默认为不选。< /p>




4.22 Preemption Model (Voluntary Kernel Preemption (Desktop))


内核抢占模式一


些优先级很高的 程序可以先让一些低优先级的程序执行,即使这些程序是在核心态下执行。


从而减少内核 潜伏期,


提高系统的响应。


当然在一些特殊的点的内核是不可抢 先的,


比如内


核中的调度程序自身在执行时就是不可被抢先的。


这个特性可以提高桌面系统、


实时系统的


性能。



No Forced Preemption (Server)



适合服务器环境的禁止内核抢占



这是传统的


LINUX


抢先式模型,


针对于高吞吐量设


计。


它同样在很多时候会提供很好的响应,< /p>


但是也可能会有较长的延迟。


如果你是建立服务

< br>器或者用于科学运



算,选这项,或者你想要最大化内核 的原始运算能力,而不理会调度上


的延迟。



(


默认选项


) Voluntary Kernel Preemption (Desktop)



适合普通桌面环境的自愿内核抢占


这个选项通过向内核添加更多的“清晰抢先


点”来减少内核延迟。

< br>这些新的抢先点以降低吞吐量的代价,


来降低内核的最大延迟,

< br>提供


更快的应用程序响应。这通过


允许低优先级的进程自动抢先来响应事件,即使进程在内核


中进行系统调用。


这使得应用程序运行得更“流畅”,


即使系统已经是高负荷运转。


如果你


是为桌面系统编译内核,选这项。



Preemptible Kernel (Low-Latency Desktop)



适合运行实时程序的主动内核抢占


这个选项通过使所有内核代码


(非致命部分)


< p>
译为“可抢先”来降低内核延迟。


这通过允许低优先级进程进行强制抢先来 响应事件,


即使


这些进程正在进行系统调用或者未达到正常的“ 抢先点”。


这使得应用程序运行得更加“流


畅”即使系统已



经是高负荷运转。代价是吞吐量降低,内核运行开销增大。选这项 如果你


是为桌面或者嵌入式系统编译内核,


需要非常低的延迟。



如果你要最快的响应,


选第三


项。我认为万物是平衡的,低延迟意味着系统运行不稳定,因为过多来响应用户的要求, 所


以我选第二个。




4.23 Reroute for broken boot IRQs


防止同时收到多个


boot IRQ (


中断


)


时,系统混乱





4.24 Machine Check / overheating reporting



CPU


检测到系统故障时通知内核


,


以便内核采取相应的措施


(


如过热关机等


)


Intel MCE features


AMD MCE features


Support for old Pentium 5 / WinChip machine checks



4.25 Machine check injector support




CPU

检测到系统故障时通知内核


,


以便内核采取相应的措施


(


如过热关机等


)


(不明白


此项与上一项的区别,原来的配置中是做为模块加入内核的)

< br>




4.26 Enable VM86 support


这一选项用于支持在像

< br>DOSEMU


一样的程序在


x86


的处理器上运行


16


位的


legac y


代码。也


可能像


XFree86


这样的软件通过


BIOS


初始化声卡的时候 会用到。




4.27 Toshiba Laptop support


东芝笔记本模块支持,不选




4.28 Dell laptop support


Dell


笔记本模块支持,不选




4.29 Enable X86 board specific fixups for reboot


修正某些旧


x86


主板的重起


bug,


这种主板基本绝种了,我认为可以不选择这一项




4.30 dev/cpu/microcode - microcode support



是否支持


Intel IA32


架构的


CPU


。这个选项将让你可以更新


In tel IA32


系列处理器的


微代码,显然你需要到网上去下 载最新的代码,


LINUX


不提供这些代码。当然你还必须在文


件系统选项中选择


/dev file system support


才能正常的使用它。如果你把它译为模块


,


它将是


microcode



IA32


主要用于高于


4GB


的内存。详见下面的“高内存选项”。使


用不随


Linux


内核发行的


IA32


微代码


,


你必 需有


IA32


微代码二进制文件


,


仅对


Intel



CPU


有效。



Intel microcode patch loading support


AMD microcode patch loading support



4.31 /dev/cpu/*/msr - Model-specific register support



是否打开


CPU


特殊功能寄存器的功能。


这个选项桌 面用户一般用不到,


它主要用在


Intel

的嵌入式


CPU


中的,


这个寄存器 的作用也依赖与不同的


CPU


类型而有所不同,


一般可以用来


改变一些


CPU


原有物理结构的用途,


但不同的


CPU


用途差别也很大。


在多


cpu


系统中让 特权


CPU


访问


x86



MSR


寄存器。




4.32 /dev/cpu/*/cpuid - CPU information support



是否打开记录


CPU


相关信息功能。这会在

< br>/dev/cpu


中建立一系列的设备文件,用以让


过程 去访问指定的


CPU


。能从


/dev/ cpu/x/cpuid


获得


CPU


的 唯一标识符


(CPUID)





4.33 High Memory Support (4GB)


LINUX


能够在

< br>X86


系统中使用


64GB


的物 理内存。但是,


32


位地址的


X86< /p>


处理器只能支


持到


4GB


大小的内存。


这意味着,


如果你有大于


4GB


的物理内存,


并非都能被内核“永久映


射”。


这些非永久映射内存就称为“高阶内存”。



如果你编译的内核永远都不会运行在


高于

< p>
1G


内存的机器上,选


OFF

(默认选项,适合大多数人)。这将会产生一个“3GB/1GB”


的内存空间划分 ,


3GB


虚拟内存被内核映射以便每个处理器能够“看到”3 GB


的虚拟内存空


间,这样仍然能够保持


4GB


的虚拟内存空间被内核使用,更多的物理内存能够被永久映

射。



如果你有


1GB



4GB


之间的物理内存,



4GB


选项。


如果超过


4GB



那么选择


64GB



这将打开


Intel < /p>


的物理地址延伸模式(


PAE


)。


PAE


将在


IA32


处理器上执行


3


个层次的内


存页面。< /p>


PAE


是被


LINUX

< br>完全支持的,现在的


Intel


处理器

< br> (Pentium Pro


和更高级的


)

< p>


能运行


PAE


模式。< /p>


注意:


如果你选


64GB



那么在不支持


PAE



CPU


上内核将无法启动。




机器上的内存能够被自动探测到,


或者你 可以用类似于“mem=256M”的参数强制给内核指定


内存大小。

< br> 4GB


选这项如果你用的是


32


位的处理器,


内存在


1-4GB


之间。


64GB



这项如果你用的是


32


位的处理器,内存大于

< br>4GB




( ) off (X) 4GB ( ) 64GB



4.34 Memory model (Flat Memory)



一般选



其他选项涉及内存热插拔


(X) Flat Memory


(平坦内存模式)




这个选项允许你改变内核在内部管理内存的一些方式。大多数用户在这只会有一个选

< p>
项:


Flat


Memory

。这是普遍的和正确的选项。一些用户的机器有更高级的特性,比如


NUMA < /p>


和内存热拔插,那将会有不同的选项。


Discontiguou s


Memory


(非接触式内存模式)是一个


更成熟、更好的测试系统。但是对于内存热拔插系统不太合适,会被“Sparse Memory”代


替。如果你不清楚“Sparse Memory”和“Discontiguous Memory”的区别,选后者。如果


不清楚,就选


Flat Memory




Sparse Memory


(稀疏内存模式)




这对某些系统是唯一选项,包括内存热拔插系统。这正 常。对于其他系统,这将会被


Discontiguous


M emory


选项代替。这个选项提供潜在的更好的特性,可以降低代码复杂度,


但是它是新的模式,需要更多的测试。如果不清楚,选择“Discontiguous Memory” 或



“Flat Memory”。




4.35 Allow for memory compaction



4.36 Page migration


(选择


Y




Enable KSM for page merging


(4096) Low address space to protect from user allocation



4.37 Enable recovery from hardware memory errors


选择


Y



4.38 Transparent Hugepage Support


Transparent Hugepage Support sysfs defaults


e


(默认选项)




4.39 Cross Memory Support


4.40 Enable cleancache driver to cache clean pages if tmem is present


4.41 Enable frontswap to cache swap pages if tmem is present


(这三部分不太了解)




4.42 Allocate 3rd-level pagetables from highmem



在内存很多


(


大于


4G)


的机器上将用户空间的页表放到高位内存区


,


以节约宝贵的


低端内存






4.43 Check for low memory corruption



低位内存脏数据检查,


默认是每


60


秒检查一次。


一般这种脏数据



是因某些


Bios


处理


不当引起的。




4.44 (64) Amount of low memory, in kilobytes, to reserve for the BIOS



4.45 Math emulation

< p>
数学协处理器仿真


,486DX


以上的

< p>
cpu


就不要选它了




4.46 MTRR (Memory Type Range Register) support


(内存类型区域寄存器)





Intel P6


系列处理器


(Pentium Pro, Pentium II


和更新的


)


上,


MTRR


将会用来规


定和控制处理器访问某段内存区域 的策略。


如果你在


PCI


或者


AGP


总线上有


VGA


卡,


这将非


常有用。可以提升图像的传送速度

< br>2.5


倍以上。选


Y


,会生成文 件


/proc/mtrr


,它可以用来


操纵



你的处理器的


MTRR


。典型地,


X


server


会用到。这段代码有着通用的接口,其他


CPU


的寄存 器同样能够使用该功能。Cyrix 6×86, 6×86MX



M II


处理器有


ARR


,它和


MTRR


有着类似的功能。


AMD K6-2/ K6-3


有两个


MTRR



Centaur C6



8



MCR


允许复合写入。


所有这些处理器都支持这 段代码,你可以选


Y


如果你有以上处理器。选

< br>Y


同样可以修正


SMP


BIO S


的问题,


它仅为第一个


CPU


提供


MTRR



而不 为其他的提供。


这会导致各种各样的问题,


所以选


Y


是明智的。你可以安全地选


Y

,即使你的机器没有


MTRR


。这会给内核增加

< p>
9KB


。打


开它可以提升


PCI/AGP


总线上的显卡


2


倍以上 的速度


,


并且可以修正某些


BIOS< /p>


错误。




4.47 MTRR cleanup support


M TRR


清理(


2.6.27


内核新增功 能,不确定可以不选)



MTRR cleanup enable value (0-1)


MTRR cleanup spare reg num (0-7)


x86 PAT support


x86 architectural random number generator



4.48 EFI runtime service support



EFI< /p>


启动支持)




这里允许内核在


EFI


平台上使用储存于


EFI


固件中的系统设置启动。


这也允许内核在运< /p>


行时使用


EFI


的相关服务。这个选项只 在有


EFI


固件的系统上有用,它会使内核增加


8KB



另外,


你必须使用最 新的


ELILO


登录器才能使内核采用


EFI


的固件设置来启动



GRUB



LILO


完全不知道


EFI


是什么东西)。即使你没有


EFI


,却选了这个选项,内核同样可以启动。大


家应该用的是

GRUB


,所以选上这个也没什么用。除非你的系统支持


E FI


(一种可代替传统


BIOS


的技术 )否则不选。




4.49 Enable seccomp to safely compute untrusted bytecode


只有嵌入式系统可以不选




4.50 Enable -fstack- protector buffer overflow detection (EXPERIMENTAL)



4.51 Timer frequency (1000 HZ)



内核时钟频率桌面


1000


服务器


100


< p>
250,


允许设置时钟频率。



这是用户定义的时


钟中断频率


100HZ-1000


HZ


,不过


100


HZ


对服务器和


NUMA< /p>


系统更合适,它们不需要很快


速的响应用户的要求,


因为时钟中断会导致总线争用和缓冲打回。


注意在


S MP


环境中,


时钟


中断由变量


NR_CPUS * Hz


定义在每个


CPU


产生。



其实和前面的抢先式进 程差不多,就


是多少频率来响应用户要求。我选了


250HZ< /p>


的。要快点的可以选


1000HZ


的。但 是还是那句


话,一切是平衡的。


机器过快响应你,它自己的活就 不知道做得好不好了。


(


)


100


HZ100


HZ


是传统的对服务器、


SMP



NUMA


的系统选项。这些系统有 比较多的处理器,可以在中断较


集中的时候分担中断


( ) 250 HZ250 HZ


对服务器是一个好的折衷的选项,它同样在


SMP




NUMA


系统上体现出良好的反应速度。


( ) 300 HZ(X) 1000 HZ1000 HZ


对于桌面和其他需要


快速事件反 应的系统是非常棒的。




4.52 kexec system call(kexec


系统调用


)


kexec< /p>


是一个用来关闭你当前内核,然后开启另一个内核的系统调用。它和重启很像,

< p>
但是它不访问系统固件。


由于和重启很像,


你可以 启动任何内核,


不仅仅是


LINUX



kexec


这个名字是从


exec


系统调用来的。它只是一个进程,可以确定硬件是否正确关闭,


Linus


本人都没话说,估计是受害不浅。我们当然不能上当,选


N


!提供


kexec


系 统调用


,


可以不


必重启而切换到另一个 内核,如果需要就选择,对大多数用户来说并不需要


.



4.53 kernel crash dumps


内核崩溃时,


dump


运行时信息。就算


crash


了,我也不会去调试内核的


core dump



4.54 (0x1000000) Physical address where the kernel is loaded



4.55 Build a relocatable kernel


官方说明



(建立一个移动的内核,并增加


10%


的内核尺寸,运行时会被丢弃),我认为没


实质性的作用




4.56 (0x100000) Alignment value to which kernel should be aligned



4.57 Support for hot- pluggable CPUs



SMP

< br>休眠和热插拔


CPU


提供支持



4.58 Compat VDSO support


如果


Glibc


版本大于等于


2.3. 3


就不选


,


否则就选上,目前的版本基 本上都大于


2.3.3


如果


你运行的是 最新的


glibc



GNU


C


函数库)版本(


2.3.3


或更新),选


N


,这样可以移除高


阶的


VDSO


映射,使用随机的


VDSO




4.59 Built-in kernel command line (


不选


)



5



Power management and ACPI options


5.1



Power Management support



5.2



Power Management Debug Support


不想调试


ACPI


这个你现在可以勾掉,不勾也没事,稍侯会在


kernel-h acking


这一节勾掉调试,这里也就




5.3



Suspend to RAM and standby


待机




5.4



Hibernation (aka 'suspend to disk')


休眠




5.5



Run-time PM core functionality



5.6



ACPI (Advanced Configuration and Power Interface) Support --->


见附


1



5.7



SFI (Simple Firmware Interface) Support --->



5.8



APM (Advanced Power Management) BIOS support --->



acpi


就不用


apm

< p>
,一般你也只用


acpi





5.9



CPU Frequency scaling --->


[*] CPU Frequency scaling


[ ] Enable CPUfreq debugging <===


我不需要调试


CPUfreq


< > CPU frequency translation statistics


Default


CPUFreq


governor


(performance) --->


<===


默认用


performance


高性能的


CPU


调频方式



-*- 'performance' governor


< > 'powersave ' governor


<> 'userspace ' governor for userspace frequency scaling


<> 'ondemand ' cpufreq policy governor <===


周期性的考察


CPU


负载并自动的动


态调整


cpu


频率



,我只用


performance


<> 'conservative' cpufreq governor


*** CPUFreq processor drivers ***


< > Processor Clocking P-stat driver


<*> ACPI Processor P-States driver


< > AMD Mobile K6-2/K6-3 PowerNow !


< > AMD Mobile Athlon/Duron PowerNow !


< > AMD Opteron/Athlon64 PowerNow !


< > Cyrix MediaGX /NatSemi Geode Suspend Modulation


< > Intel Enhanced SpeedStep (deprecated)


< > Intel Speedstep on ICH-M chipsets (ioport interface)


< > Intel Pentium 4 clock modulation


< > Transmeta LongRun


< > VIA Cyrix III Longhaul



5.10



CPU idle PM support



5.11



Cpuidle Driver for Intel Processors





6



Bus options(PCI etc.)


6.1



PCI support


(这个必须选)


-


-


-


-


-


-


-


-



本文更新与2021-02-15 17:28,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/655853.html

linux内核配置make menuconfig菜单详解的相关文章