公告

Gentoo交流群:87709706 欢迎您的加入

#126 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- Power management and ACPI options -- CPU Id » 2024-02-11 16:56:45

batsom
回复: 0

-- CPU idle PM support tandby
[]   Ladder governor (for periodic timer tick)
--   Menu governor (for tickless system)
[ ]   Timer events oriented (TEO) governor (for tickless systems)
--   Haltpoll governor (for virtualized systems)
< >   Halt poll cpuidle driver

#127 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- Power management and ACPI options -- CPU » 2024-02-11 16:55:13

batsom
回复: 0

-- CPU Frequency scaling
[]   CPU frequency transition statistics
      Default CPUFreq governor (schedutil)  --->
--   'performance' governor
<>   'powersave' governor
<>   'userspace' governor for userspace frequency scaling
<>   'ondemand' cpufreq policy governor
<>   'conservative' cpufreq governor
--   'schedutil' cpufreq policy governor
       CPU frequency scaling drivers
--   Intel P state control
<>   Processor Clocking Control interface driver
[ ]   AMD Processor P-State driver
< >   selftest for AMD Processor P-State driver
<>   ACPI Processor P-States driver
[]     Legacy cpb sysfs knob support for AMD CPUs
<>   AMD Opteron/Athlon64 PowerNow!
<>   AMD frequency sensitivity feedback powersave bias
< >   Intel Enhanced SpeedStep (deprecated)
<>   Intel Pentium 4 clock modulation
       shared options

#128 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- Power management and ACPI options -- ACPI » 2024-02-11 16:52:39

batsom
回复: 0

[ ]   AML debugger interface
[]   ACPI Serial Port Console Redirection Support
[ ]   ACPI Firmware Performance Data Table (FPDT) support
[]   Allow supported ACPI revision to be overridden
<>   EC read/write access through /sys/kernel/debug/ec
<>   AC Adapter
<>   Battery
{}   Button
-M-   Video
{}   Fan
<>   ACPI Time and Alarm (TAD) Device Support
[]   Dock
--   Processor
<>   IPMI
<>   Processor Aggregator
<>   Thermal Zone
[]   Allow upgrading ACPI tables via initrd
[]   Debug Statements
[]   PCI slot detection driver
--   Container and Module Devices
[]   Memory Hotplug
<>   Smart Battery System
--   Hardware Error Device
<>   Allow ACPI methods to be inserted/replaced at run time
[]   APEI memory error recovering support
   APEI Error INJection (EINJ)
< >   APEI Error Record Serialization Table (ERST) Debug Support               
[ ]   Intel DPTF (Dynamic Platform and Thermal Framework) Support  ---->
   Extended Error Log support
   ACPI configfs support
< >   ACPI Platform Firmware Runtime Update and Telemetry
[]   ACPI PCC Address Space
[ ]   ACPI FFH Address Space
[]   PMIC (Power Management Integrated Circuit) operation region support  --->
[]   Platform Runtime Mechanism Support

#129 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- Power management and ACPI options » 2024-02-11 16:46:33

batsom
回复: 0

[] Suspend to RAM and standby
翻译:挂起到RAM并待机
说明:"休眠到内存"(ACPI S3)支持.也就是系统休眠后,除了内存之外,其他所有部件都停止工作,重开机之后可以直接从内存中恢复运行状态.要使用此功能,你需要执行"echo
mem > /sys/power/state"命令,还需要在BIOS中开启S3支持,否则可能会有问题

[] Hibernation (aka 'suspend to disk')
翻译:休眠(又名“暂停到磁盘”)
说明:"休眠到硬盘"(ACPI S4)支持.也就是将内存的内容保存到硬盘(hibernation),所有部件全都停止工作.要使用此功能,你首先需要使用内核引导参
数"resume=/dev/swappartition",然后执行"echo disk >
/sys/power/state"命令.如果你不想从先前的休眠状态中恢复,那么可以使用"noresume"内核引导参数.更多信息,可以参考"Documentation/power/swsusp.txt"文件.

[]   Userspace snapshot device
翻译:用户空间快照设备
说明:待确定作用

()    Default resume partition
翻译:默认恢复分区
说明:当系统从睡眠中恢复时,他会加载默认的恢复分区

[ ] Opportunistic sleep
翻译:机会主义睡眠
说明:这是一种从安卓借鉴过来的休眠方式.这个特性在安卓系统上被称为"suspend
blockers"或"wakelocks".这是一种更激进的电源管理模式,以尽可能节约电力为目的.系统默认就处于休眠状态,仅为内存和少数唤醒系统
所必须的设备供电,当有任务(唤醒源)需要运行的时候才唤醒相关组件工作,工作完成后又立即进入休眠状态.不过这些特性需要相应的设备驱动程序的支持.目
前除了安卓设备,在PC和服务器领域,能够利用此特性的驱动还比较少,不过这是一项非常有前途的电源技术,喜欢尝鲜的可以考虑开启

[ ] Userspace opportunistic sleep
翻译:用户空间机会性睡眠
说明:Opportunistic sleep: 当没有任务时,需要寻找时机,进入suspended

[ ] User space wakeup sources interface
翻译:用户空间唤醒源接口
说明:允许用户空间的程序通过sys文件系统接口,创建/激活/撤销系统的"唤醒源".需要与CONFIG_PM_AUTOSLEEP配合使用

-- Device power management core functionality
翻译:设备电源管理核心功能
说明:允许IO设备(比如硬盘/网卡/声卡)在系统运行时进入省电模式,并可在收到(硬件或驱动产生的)唤醒信号后恢复正常.此功能通常需要硬件的支持.建议在笔记本/嵌入式等需要节约电力的设备上选"Y"

[]   Power Management Debug Support
翻译:电源管理调试支持
说明:仅供调试使用

[ ]     Extra PM attributes in sysfs for low-level debugging/testing
翻译:sysfs中用于低级别调试/测试的额外PM属性
说明:添加额外的sysfs属性,允许用户从用户空间访问设备对象的某些电源管理字段。如果您不是对调试/测试电源管理感兴趣的内核开发人员,请说“不”

[ ]     Test suspend/resume and wakealarm during bootup
翻译:启动期间测试暂停/恢复和唤醒警报
说明:允许在开机过程中暂停并在过后唤醒

[] Suspend/resume event tracing
翻译:挂起/恢复事件跟踪
说明:用以追踪引起电源管理事件的代码

[ ] Enable workqueue power-efficient mode by default
翻译:默认情况下启用工作队列节能模式
说明:节能选项,选上有微小性能损失

[] Energy Model for devices with DVFS (CPUs, GPUs, etc)
翻译:具有DVFS(CPU、GPU等)的设备的能量模型
说明:DVFS(Dynamic Voltage and Frequency Scaling)动态电压频率调节是一种节能技术,笔记本嵌入设备的选项

[] ACPI (Advanced Configuration and Power Interface) Support  --->
翻译:ACPI(高级配置和电源接口)支持
说明:先进架构电源配置标准)能使软、硬件、操作系统(OS),主机板和外围设备,依照一定的方式管理用电情况,系统硬件产生的 Hot-Plug 事件,让操作系统从用户的角度上直接支配即插即用设备,不同于以往直接通过基于 BIOS 的方式的管理

    CPU Frequency scaling  --->
翻译:CPU频率缩放
说明:CPUfreq子系统允许动态改变CPU主频,达到省电和降温的目的.现如今的CPU都已经支持动态频率调整,建议开启.不过,如果你是为虚拟机编译内核,就没有必要开启了,由宿主机内核去控制就OK了

    CPU Idle  --->
翻译:CPU空闲
说明:CPU idle 指令支持,该指令可以让CPU在空闲时"打盹"以节约电力和减少发热.只要是支持ACPI的CPU就应该开启.由于所有64位CPU都已支持ACPI,所以不必犹豫,开启![提示]为虚拟机编译的内核就没有必要开启了,由宿主机内核去控制就OK了

[] Cpuidle Driver for Intel Processors
翻译:适用于英特尔处理器的Cpuidle驱动程序
说明:专用于Intel CPU的cpuidle驱动.而CONFIG_CPU_IDLE则可用于非Intel的CPU

#130 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- Mitigations for speculative execution vulne » 2024-02-11 16:30:01

batsom
回复: 0

[ ]   Remove the kernel mapping in user mode
翻译:在用户模式下删除内核映射
说明:是一种将Highmem页面映射到内核空间的技术

[ ]   Avoid speculative indirect branches in kernel
翻译:避免内核中的推测性间接分支
说明:待确定作用

[ ]     Enable return-thunks
翻译:启用返回thunks
说明:Thunk 的编程思维与原生 Promise 是一致的,原生 Promise 能实现的异步业务组合,Thunk 都能实现。区别有以下几点:

    原生 Promise 出现在 ES6,Thunk 没有使用特别的 JS 特性,ES3 下都能完美运行。
    Promise 封装出来的是个对象,异步业务隐藏在 promise 对象中,promise对象的方法或属性值可能被改写(入侵);Thunk 封装出来是一个 thunk 函数,异步业务隐藏在函数里,对外而言就是一个黑盒,不会受到外部的入侵。
    Promise 通常自称符合函数式编程,但 Thunk 更符合函数式编程,而且是标准的 CPS 风格。
    功能同样强大,但 Thunk 的 API 更简洁一致,Thunk 封装也更简洁。
    Thunk 拥有完美的 debug 模式,Promise 好像没有?
    Thunk 的性能是原生 Promise 的4倍。

关于 Thunk 的 demo,可以看看 examples,用超乎你想象的简洁方式进行异步编程。

[ ] Enable UNRET on kernel entry
翻译:对内核条目启用UNRET
说明:待确定作用

[ ]   Mitigate RSB underflow with call depth tracking
翻译:通过呼叫深度跟踪减少RSB下溢
说明:待确定作用

[ ]     Enable call thunks and call depth tracking debugging
翻译:启用调用thunks和调用深度跟踪调试
说明:待确定作用

[ ]   Enable IBPB on kernel entry
翻译:在内核条目上启用IBPB
说明:待确定作用

[ ]   Enable IBRS on kernel entry
翻译:在内核条目上启用IBRS
说明:待确定作用

[ ]   Mitigate speculative RAS overflow on AMD
翻译:缓解AMD上的推测性RAS溢出
说明:待确定作用

[ ]   Mitigate Straight-Line-Speculation
翻译:减少直线推测
说明:straight-line speculation 漏洞的保护机制

[ ]   Force GDS Mitigation
翻译:强制GDS缓解
说明:待确定作用

附注:
参考一下网站:
https://access.redhat.com/documentation … rs_changes
https://blog.csdn.net/Linux_Everything/ … /122207171

#131 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- Processor type and features -- monitoring » 2024-02-11 15:49:11

batsom
回复: 0

<> Intel uncore perforance events
翻译:英特尔公开性能事件
说明:待确定作用

   <> Intel/AD rapl perforance events
翻译:Intel/AD rapl性能事件
说明:英特尔处理器的电源管理技术

   <> Intel cstate perforance events
翻译:英特尔cstate性能事件
说明:Intel组件基础上的一项深度节能技术

   <> AD Processor Power Reporting echanis
翻译:AD处理器功率报告机制
说明:待确定作用

   < > AD Uncore perforance events
翻译:AD不合规事件
说明:待确定作用

   [ ] AD Zen3 Branch Sapling support
翻译:AD Zen3分公司Sapling支持
说明:待确定作用

#132 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- Processor type and features -- family » 2024-02-11 15:43:15

batsom
回复: 0

( ) Opteron/Athlon64/Hammer/K8
翻译:
说明: AMD推出的

( ) Intel P4 / older Netburst based Xeon
翻译:
说明:Intel推出的

( ) Core 2/newer Xeon  support
翻译:
说明:Intel推出的

( ) Intel Atom                        latforms
翻译:
说明:Intel推出的

( ) Generic-x86-64                 debugfs
翻译:
说明:

#133 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- Processor type and features -- Linux guest » 2024-02-11 15:36:56

batsom
回复: 0

[]   Enable paravirtualization code
翻译:启用准虚拟化代码
说明:半虚拟化(paravirtualization)支持

   [ ]   paravirt-ops debugging
翻译:paravirt操作系统调试
说明:仅供调试.paravirt-ops是内核通用的半虚拟化接口.

   []   Paravirtualization layer for spinlocks
翻译:用于自旋锁的准虚拟化层
说明:半虚拟化的自旋锁支持.开启之后运行在虚拟机里的内核速度会加快,但是运行在物理CPU上的宿主内核运行效率会降低(最多可能会降低5%).请根据实际情况选择

   []   Xen guest support
翻译:Xen来宾支持
说明:Xen半虚拟化技术支持

   []     Xen PV guest support
翻译:Xen PV客户支持
说明:半虚拟化技术不需要物理机CPU含有虚拟化扩展,是完全基于软件模拟实现的虚拟化.但其需要修改操作系统,需要操作系统的支持,这限制了其扩展性,即不能支持不开源的操作系统如windows.

   [] Limit Xen pv-domain memory to 512GB
翻译:将Xen-pv域内存限制为512GB
说明:

   []     Xen PVHVM guest support
翻译:Xen PVHVM客户支持
说明:全虚拟化又叫硬件协助的虚拟化技术使用物理机CPU的虚拟化扩展来虚拟出虚拟机,全虚拟化技术需要Intel VT或者AMD-V硬件扩展。 其不需要修改操作系统,客户机完全感知不到宿主机的存在

   []     Enable Xen debug and tuning parameters in debugfs
翻译:在debugfs中启用Xen调试和调优参数
说明:为Xen在debugfs中输出各种统计信息和调整选项.对性能有严重影响.仅供调试

   []     Xen PVH guest support
翻译:Xen PVH客户支持
说明:待确定作用

   []   Xen Dom0 support
翻译:Xen Dom0支持
说明:Xen是Type-1型虚拟机监视器,可以运行在x86和具有虚拟化扩展的ARM平台上,包括ARMv8和一些ARMv7处理器。Xen对ARM平台的支持始于2008年,在2013年首次发布,2015年支持armv8多核扩展特性。

Xen提供了在同一台计算机上承载多个操作系统的能力。Xen可以运行多个客户机操作系统,每个客户机操作系统与Xen交互,就像它与真实硬件交互一样。Xen为每个虚拟机创建内存分区,其他虚拟机无法访问本机内存,除非被授予特殊权限。Xen也控制虚拟机占用的CPU核数和时间等资源,防止虚拟机占用所有的系统资源。

作为系统中最底层的软件,Xen一般通过U-Boot这样的引导程序加载运行。初始化之后,Xen立即启动第一个虚拟机,称为dom0。dom0在系统中充当Xen的代理,是管理程序操作和启动所必需的。通过dom0,系统开发人员可以控制虚拟机的启动、暂停或关闭。默认情况下,dom0可以访问所有系统资源。dom0以外的虚拟机通常称为domu

   []   Always use safe MSR accesses in PV guests
翻译:在PV客人中始终使用安全的MSR通道
说明:待确定作用

   []   KVM Guest support (including kvmclock)
翻译:KVM来宾支持
说明:虚拟化

   --   Disable host haltpoll when loading haltpoll driver
翻译:加载挂起轮询驱动程序时禁用主机挂起轮询
说明:待确定作用

   --   Support for running PVH guests
翻译:支持运行PVH来宾
说明:待确定作用

   []   Paravirtual steal time accounting
翻译:虚拟窃取时间核算
说明:允许进行更细粒度的 task steal time 统计.会造成性能的略微降低.仅在你确实需要的时候才开启.

   [ ]   Jailhouse non-root cell support
翻译:监狱非根细胞支持
说明: Jailhouse目的是希望尽可能减少负责建立和维护cell隔离的代码量,同时在non-root cell中运行具有高实时性、安全关键型的应用程序

   []   ACRN Guest support
翻译:ACRN客户支持
说明:ACRN是一款轻量级开源hypervisor

   [ ]   Intel TDX (Trust Domain Extensions) - Guest Support
翻译:Intel TDX(信任域扩展)-客户支持
说明:Intel TDX是Intel提出的一套机密虚拟化方案,目的是将机密虚拟机和非机密域软件栈(包括hypervisor,VMM和其他非可信域软件栈)隔离,保证机密虚拟机的数据不被非机密域软件获取和篡改

#134 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- Processor type and features » 2024-02-11 15:14:57

batsom
回复: 0

[] Symmetric multi-processing support
翻译:对称多处理支持
说明:SMP(对称多处理器)支持,如果你有多个CPU或者使用的是多核CPU就选上

  -- Support x2apic
翻译:x2apic支持
说明:x2apic支持.具有这个特性的CPU可以使用32位的APIC ID(可以支持海量的CPU),并且可以使用MSR而不是mmio去访问 local APIC
(更加高效).可以通过"grep x2apic
/proc/cpuinfo"命令检查你的CPU是否支持这个特性.注意:有时候还需要在BIOS中也开启此特性才真正生效.[提示]在虚拟机中,还需要
VMM的支持(例如qemu-kvm).

  [] Enable MPS table
翻译:启用MPS表
说明:如果是不支持acpi特性的古董级SMP系统就选上.但现今的64位系统早都已经支持acpi了,所以可以安全的关闭

  [] x86 CPU resource control support
翻译:x86 CPU资源控制支持
说明:

  [] Support for extended (non-PC) x86 platforms
翻译:支持扩展(非PC)x86平台
说明:支持非标准的PC平台: Numascale NumaChip, ScaleMP vSMP, SGI Ultraviolet. 绝大多数人都遇不见这些平台

  [ ] Numascale NumaChip
翻译:
说明:支持非标准的PC平台: Numascale NumaChip, ScaleMP vSMP, SGI Ultraviolet. 绝大多数人都遇不见这些平台

  [ ] ScaleMP vSMP
翻译:
说明:支持非标准的PC平台: Numascale NumaChip, ScaleMP vSMP, SGI Ultraviolet. 绝大多数人都遇不见这些平台

  [] SGI Ultraviolet
翻译:
说明:支持非标准的PC平台: Numascale NumaChip, ScaleMP vSMP, SGI Ultraviolet. 绝大多数人都遇不见这些平台

  [ ] Goldfish (Virtual Platform)
翻译:
说明:Goldfish是一种虚拟的ARM处理器,在Android的仿真环境中使用

  [ ] Intel MID platform support
翻译:Intel MID平台支持
说明:

  [] Intel Low Power Subsystem Support
翻译:英特尔低功耗子系统支持
说明:为了支持Intel低功耗子系统,就启用这个特性

  [] AMD ACPI2Platform devices support
翻译:
说明:为AMD Carrizo以及后继架构的I2C,UART,GPIO提供支持.

  -- Intel SoC IOSF Sideband support for SoC platforms
翻译:针对SoC平台的Intel SoC IOSF边带支持
说明:为主打低功耗的Intel SoC平台CPU开启"sideband"寄存器访问支持.这些CPU包括:BayTrail,Braswell,Quark

  [ ]   Enable IOSF sideband access through debugfs
翻译:通过调试启用IOSF边带访问
说明:待确定作用

  [] Single-depth WCHAN output
翻译:单深度WCHAN输出
说明:使用简化的 /proc/<PID>/wchan 值,禁用此选项会使用更加精确的wchan值(可以在"ps -l"结果的WCHAN域看到),但会轻微增加调度器消耗.

  [] Linux guest support  --->
翻译:Linux来宾支持
说明:

  Processor family (Generic-x86-64)  --->
翻译:处理器系列(通用-x86-64)
说明: 当前有的选项包括Pentium4、Athlon64、Core2和Atom,根据你的CPU进行选择。 然后你还可以顺便把和你系统无关的东西关掉,例如去掉针对AMD CPU的优化,去掉Server系统可能没有的无线网卡等硬件。这么做,可以缩小内核的尺寸。

  [] Old AMD GART IOMMU support
翻译:旧AMD GART IOMMU支持
说明:AMD平台相关

  [] Enable Maximum number of SMP Processors and NUMA Nodes
翻译:启用SMP处理器和NUMA节点的最大数量
说明:让内核支持x86_64平台所能支持的最大SMP处理器数量和最大NUMA节点数量.主要用于调试目的

  [] Cluster scheduler support
翻译:群集调度程序支持
说明:

  [] Multi-core scheduler support
翻译:多核心调度器支持
说明:针对多核CPU进行调度策略优化

  []   CPU core priorities scheduler support
翻译:CPU核心优先级调度器支持
说明:改进的多核调度支持,稍微耗资源,对核心较少的CPU用处不大

  [] Reroute for broken boot IRQs
翻译:为损坏的启动IRQ重新路由
说明:这是一个对某些芯片组bug(在某些情况下会发送多余的"boot IRQ")的修复功能.开启此选项之后,仅对有此bug的芯片组生效.要检查哪些芯片组有此bug可以查看"drivers/pci/quirks.c"文件中的"quirk_reroute_to_boot_interrupts_intel"函数

  [] Machine Check / overheating reporting
翻译:机器检查/过热报告
说明:MCE(Machine Check Exception)支持.让CPU检测到硬件故障(过热/数据错误)时通知内核,以便内核采取相应的措施(如显示一条提示信息或关机等).更多信息可以"man mcelog"看看.可以通过"grep mce /proc/cpuinfo"检查CPU是否支持此特性,若支持建议选中,否则请关闭.当然,如果你对自己的硬件质量很放心,又是桌面系统的话,不选也无所谓.

  []   Support for deprecated /dev/mcelog character device
翻译:支持弃用的/dev/mcelog字符设备
说明:待确定作用

  []   Intel MCE features
翻译:英特尔MCE功能
说明:这是一种额外的对像热度监控的Intel MCE特性的支持。机器检测异常(MCE)是一种当处理器发现硬件问题时的错误输出。MCE通常会导致内核严重错误(kernel panic)(相当于Windows中的"蓝屏")

  []   AMD MCE features
翻译:AMDMCE功能
说明:这是一种额外的对像热度监控的Intel MCE特性的支持。机器检测异常(MCE)是一种当处理器发现硬件问题时的错误输出。MCE通常会导致内核严重错误(kernel panic)(相当于Windows中的"蓝屏")

  <M> Machine check injector support
翻译:机器检查喷油器支架
说明:让CPU检测到系统故障时通知内核,以便内核采取相应的措施

      Performance monitoring  --->
翻译:性能监控
说明:待确定作用

  [] IOPERM and IOPL Emulation
翻译:IOPERM和IOPL仿真
说明:对于旧程序提供IO调度支持

  [ ] Late microcode loading (DANGEROUS)
翻译:微代码加载延迟(危险)
说明:待确定作用

  < > /dev/cpu/*/msr - Model-specific register support
翻译:/dev/cpu/*/msr-特定于型号的寄存器支持
说明:是否打开Pentium CPU特殊功能寄存器的功能?这个选项桌面用户一般用不到,它主要用在Intel的嵌入式CPU中的,这个寄存器的作用也依赖与不同的CPU类型而有所不同,一般可以用来改变一些CPU原有物理结构的用途,但不同的CPU用途差别也很大。

  < > /dev/cpu/*/cpuid - CPU information support
翻译:/dev/cpu/*/cpuid-cpu信息支持
说明:是否打开记录Petium CPU相关信息功能?这会在/dev/cpu中建立一系列的设备文件,用以让过程去访问指定的CPU。一般不用选

  [] Enable 5-level page tables support
翻译:开启Linux的5级页表支持
说明:未来发展趋势,建议直接读源码,后续会分析源码,可参考:https://zhuanlan.zhihu.com/p/641479824?utm_id=0

  [ ] Enable statistic for Change Page Attribute
翻译:启用更改页属性的统计信息
说明:待确定作用

  [] AMD Secure Memory Encryption (SME) support
翻译:AMD安全内存加密(SME)支持
说明:待确定作用

  [ ]   Activate AMD Secure Memory Encryption (SME) by default
翻译:默认情况下激活AMD安全内存加密(SME)
说明:待确定作用

  [] NUMA Memory Allocation and Scheduler Support
翻译:NUMA内存分配和调度程序支持
说明:开启 NUMA(Non Uniform Memory Access) 支持.虽然说集成了内存控制器的CPU都属于NUMA架构.但事实上,对于大多数只有一颗物理CPU的个人电脑而言,即使支持NUMA架构,也没必要开启此特性.可以参考SMP/NUMA/MPP体系结构对比.此外,对于不支持"虚拟NUMA",或"虚拟NUMA"被禁用的虚拟机(即使所在的物理机是NUMA系统),也应该关闭此项

  []   Old style AMD Opteron NUMA detection
翻译:老式AMD Opteron NUMA检测
说明:AMD使用一种旧式的方法读取NUMA配置信息(新式方法是CONFIG_X86_64_ACPI_NUMA),所以如果你使用的是AMD多核CPU,建
议开启.不过,即使开启此选项,内核也会优先尝试CONFIG_X86_64_ACPI_NUMA方法,仅在失败后才会使用此方法,所以即使你不能确定
CPU的类型也可以安全的选中此

  []   ACPI NUMA detection
翻译:ACPI NUMA检测
说明:使用基于 ACPI SRAT(System Resource Affinity Table) 技术的NUMA节点探测方法.这也是检测NUMA节点信息的首选方法,建议选中

  [ ]   NUMA emulation
翻译:NUMA仿真
说明:即非一致性内存访问,是一种关于多个CPU如何访问内存的架构模型,参考:https://zhuanlan.zhihu.com/p/643610982

  [] Enable sysfs memory/probe interface
翻译:启用sysfs内存/探测接口
说明:sysfs文件系统,它的作用是将设备和驱动程序的信息导出到用户空间,方便了用户读取设备信息,同时支持修改和调整

  <M> Support non-standard NVDIMMs and ADR protected memory
翻译:支持非标准NVDIMM和ADR保护的内存
说明:支持 Intel Sandy Bridge-EP 处理器使用的不符合NVDIMM规范的非易失内存(以电容做后备电力且掉电后不会丢失数据的内存).仅有某些高端服务器才会使用这种外带电容供电的内存

  [] Check for low memory corruption
翻译:检查内存是否低损坏
说明:低位内存脏数据检查,即使开启此选项,默认也不会开启此功能(需要明确使用"memory_corruption_check=1"内核引导选项).这些脏
数据通常被认为是有bug的BIOS引起的,默认每60秒(可以通过memory_corruption_check_period内核参数进行调整)扫
描一次0-64k(可以通过memory_corruption_check_size内核参数进行调整)之间的区域.这种检查所占用的开销非常小,基本
可以忽略不计.如果始终检查到错误,则可以通过"memmap="内核引导参数来避免使用这段内存.一般没必要选中,如果你对BIOS不放心,带着它试运
行一段时间,确认没问题之后再去

  [ ]   Set the default setting of memory_corruption_check
翻译:设置memory_corrupon_check的默认设置
说明:设置memory_corruption_check的默认值,选中表示默认开启(相当于使用"memory_corruption_check=1"内核引导选项),不选中表示默认关闭

  -- MTRR (Memory Type Range Register) support
翻译:MTRR(内存类型范围寄存器)支持
说明:MTRR(Memory type range registers)是CPU内的一组MSR(Model-specific
registers),其作用是告诉CPU以哪种模式(write-back/uncachable/...)存取各内存区段效率最高.这对于AGP
/PCI显卡意义重大,因为write-combining技术可以将若干个总线写传输捆绑成一次较大的写传输操作,可以将图像写操作的性能提高2.5倍
或者更多.这段代码有着通用的接口,其他CPU的寄存器同样能够使用该功能.简而言之,开启此选项是个明智的选择

  []   MTRR cleanup support
翻译:MTRR清理支持
说明:MTRR cleanup的功能是将MTRR中的内存布局由连续布局转化为离散布局,这样X驱动就可以在其中添加writeback项(也就是一个内存段),算是一种优化措施.建议开启.可以使用"mtrr_chunk_size"来限制每段内存的最大尺寸

  (0)     MTRR cleanup enable value (0-1)
翻译:
说明:"1"表示默认开启CONFIG_MTRR_SANITIZER特性,相当于使用"enable_mtrr_cleanup","0"表示默认关闭
CONFIG_MTRR_SANITIZER特性,相当于使用"disable_mtrr_cleanup".建议图形界面用户设为"1".仅在开启后导
致无法正常启动或者显卡驱动不能正常工作的情况下才需要关闭

  (1)     MTRR cleanup spare reg num (0-7)
翻译:
说明:这里设定的值等价于使用内核引导参数"mtrr_spare_reg_nr=N"中的"N".也就是告诉内核有多少个内存段(reg)可以被清理或改写(参
见"/proc/mtrr"文件).在多数情况下默认值是"1",其含义是最多允许使用1个空闲的"reg".一般保持其默认值即可.修改此项的值通常是
为了解决某些MTRR故障.

  [] Indirect Branch Tracking
翻译:间接分支跟踪
说明:对应用程序使用 “CPU jump“ 的函数表(该函数表包含跨程序的内存地址)的能力进行限制和添加其他保护,据悉,幽灵、熔断漏洞是 Google Project Zero 团队此前发现的三个安全漏洞变体的统称,该漏洞可利用分支预测执行 (speculative execution)特性中一个硬件缺陷使其按照攻击者规划的方向进行预测执行从获取某些机密信息。而最近新发现的 Spoiler 漏洞也正是基于此。此类漏洞仅仅凭借软件层面的修复是完全不够的,但硬件层面的修复往往伴随着性能损失,故此 CET 技术或无形之中提高了英特尔处理器在未来的性能

  [] Memory Protection Keys
翻译:内存保护密钥
说明:Intel MPK 是一个有效的提供数据权限隔离的手段,并且性能十分地高效,切换权限仅需要 20 个左右的 CPU 指令周期。可是挑战在于:1)MPK 只能针对用户态的页,该如何用在特权模式下做同级隔离;2)当应用程序调用内核函数时,权限切换该如何设计;3)MPK 不能够控制内存页的可执行权限,该如何防止 ROP[39]等类似的代码复用攻击

      TSX enable mode (off)  --->
翻译:TSX启用模式(关闭)
说明:这也是一项牺牲内核安全性换取性能的实现。英特尔事务扩展技术(TSX)是intel为旗下的CPU开发的一项优化指令集,但是存在僵尸负载漏洞(ZombieLoad)。

  [] Software Guard eXtensions (SGX)
翻译:软件保护扩展(SGX)
说明:Intel Software Guard Extensions(Intel SGX)为云计算和企业环境提供了基于硬件的数据安全控制。它通过硬件级别的内存加密,将特定的应用程序代码和数据隔离在内存中。

该功能的目标是像一个倒置的沙盒,不是保护系统免受恶意代码的影响,而是保护应用程序免受被入侵的内核、虚拟机监视器或其他应用程序的影响。

Intel SGX的基本能力是通过为程序代码、数据和关键知识产权提供更高级别的隔离和认证,从操作系统、应用程序和硬件平台上减少软件受攻击的风险。Intel SGX已被用于增强多个用例和应用程序的安全性

  [ ] X86 userspace shadow stack
翻译:X86用户空间影子堆栈
说明:待确定作用

  [] EFI runtime service support
翻译:EFI运行时服务支持
说明:EFI/UEFI支持.如果你打算在UEFI/EFI平台上安装Linux(2010年之后的机器基本都已经是UEFI规格了),那么就必须开启此项(开启后也依然可以在传统的BIOS机器上启动).UEFI启动流程与传统的BIOS相差很大.虽然Linux受到了所谓"安全启动"问题的阻挠(已经解决),但是UEFI依然将迅速一统江湖.[提示]在UEFI平台上安装Linux的关键之一是首先要用一个支持UEFI启动的LiveCD以UEFI模式启动机器

  []   EFI stub support
翻译:EFI存根支持
说明:EFI stub支持.如果开启此项,就可以不通过GRUB2之类的引导程序来加载内核,而直接由EFI固件进行加载,这样就可以不必安装引导程序了.不过这是一个看上去
很美的特性,由于EFI固件灵活性比GRUB2差许多,所以缺点有三:(1)不能在传统的BIOS机器上启动.(2)给内核传递引导参数很麻烦(需要使
用"efibootmgr
-u").(3)不能使用intrd[待修正,可使用"initrd="].不过,针对后两点的解决办法是:使用CONFIG_CMDLINE和
CONFIG_INITRAMFS_SOURCE.更多细节可参考"Documentation/x86/efi-stub.txt"文档

  []     EFI handover protocol (DEPRECATED)
翻译:EFI切换协议(已弃用)
说明:

  []     EFI mixed-mode support
翻译:EFI混合模式支持
说明:允许在32位固件上启动64位内核.选"N".

  [ ]   Enable EFI fake memory map
翻译:启用EFI伪内存映射
说明:选"Y"等价于使用"efi_fake_mem"内核引导参数,仅供调试使用

      Timer frequency (300 HZ)  --->
翻译:定时器频率(300赫兹)
说明:Linux 内核中有大量的函数需要时间管理,比如周期性的调度程序、延时程序等。硬件定时器提供时钟源,时钟源的频率可以设置, 设置好以后就周期性的产生定时中断,系统使用定时中断来计时

  (0x1000000) Physical address where the kernel is loaded
翻译:加载内核的物理地址
说明:加载内核的物理地址.如果内核不是可重定位的(CONFIG_RELOCATABLE=n),那么bzImage会将自己解压到该物理地址并从此地址开始运
行,否则,bzImage将忽略此处设置的值,而从引导装载程序将其装入的物理地址开始运行.仅在你确实知道自己是在干什么的情况下才可以改变该值,否则
请保持默认

  -- Build a relocatable kernel
翻译:构建可重定位内核
说明:使内核可以在浮动的物理内存位置加载,主要用于调试目的.仅在你确实知道为什么需要的时候再开启,否则请关闭

  []   Randomize the address of the kernel image (KASLR)
翻译:随机化内核映像的地址(KASLR)
说明:KASLR技术允许kernel image加载到VMALLOC区域的任何位置。当KASLR关闭的时候,kernel image都会映射到一个固定的链接地址。对于黑客来说是透明的,因此安全性得不到保证。KASLR技术可以让kernel image映射的地址相对于链接地址有个偏移。偏移地址可以通过dts设置。如果bootloader支持每次开机随机生成偏移数值,那么可以做到每次开机kernel image映射的虚拟地址都不一样。因此,对于开启KASLR的kernel来说,不同的产品的kernel image映射的地址几乎都不一样。因此在安全性上有一定的提升

  (0x1000000) Alignment value to which kernel should be aligned
翻译:内核应该与之对齐的对齐值
说明: 内核编译、运行时的物理地址匹配,不要更改该值除非你知道你在干嘛

  [] Randomize the kernel memory sections
翻译:随机化内核内存部分
说明:堆栈随机化是一项安全增强,它允许对系统调用发生时,内核使用的堆栈添加一个随机偏移。这给基于stack的攻击增加了难度,因为stack攻击通常要求stack有个固定的layout。现在每次系统调用,stack的layout都变化的话,攻击就无规律可寻了

  [ ] Linear Address Masking support
翻译:线性地址屏蔽支持
说明: 线性地址掩码(Linear Address Masking,LAM ) 是一种允许软件使用 64 位线性地址中未翻译的地址位,来存储元数据的 CPU 硬件特征。现各 CPU 厂商以不同的形式实现了这一技术,其中 Intel 将其命名为 LAM,AMD 将其命名为高位地址忽略(Upper Address Ignore,UAI),Arm 称之为高字节忽略 ( Top Byte Ignore,TBI )

  [ ] Disable the 32-bit vDSO (needed for glibc 2.3.3)
翻译:禁用32位vDSO
说明:vDSO机制(virtual dynamic shared object,虚拟动态共享对象)是kernel提供的一个优化,用来减少某些频繁调用的系统调用的时间开销。vDSO是在kernel提供的内存空间里面的一小块区域,通常都会被map到每个user-space进程的地址空间里去。这块区域里面包含了系统调用的实现,在某些情况下可以在user-space上下文就执行这些系统调用的工作。这样就能让调用者避免真的走完整的系统调用流程,从而能避免进出kernel产生上下文切换的开销。跟timekeeping有关的系统调用例如gettimeofday()都由vDSO实现了,因为这类调用需要在user space快速完成,并且调用的也特别频繁

      vsyscall table for legacy applications (Emulate execution only)  --->
翻译:用于遗留应用程序的vsyscall表
说明:设置内核引导参数"vsyscall=[native|emulate|none]"的值.对于使用Glibc-2.14以上版本的系统来说,如果不需要使用特别老旧的静态二进制程序,应该将此项设为"None"以提升性能与安全性

  [ ] Built-in kernel command line
翻译:内置内核命令行
说明:将内核引导参数直接编进来.在无法向内核传递引导参数的情况下(比如在嵌入式系统上,或者想使用 EFI stub kernel),这就是唯一的救命稻草了.如果你使用grub之类的引导管理器,那么就可以不需要此特性

  [ ] Enforce strict size checking for sigaltstack
翻译:对sigaltstack强制执行严格的大小检查
说明:待确定作用

  [] Kernel Live Patching
翻译:内核实时修补程序
说明:

#135 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- General setup -- Kexec and crash features » 2024-02-11 13:21:10

batsom
回复: 0

[] Enable kexec system call MA scheduler pert users)
翻译:启用kexec系统调用MA调度程序(用户)
说明:

[] Enable kexec file based system call
翻译:启用基于kexec文件的系统调用
说明:

[]   Verify kernel signature during kexec_file_load() syscall
翻译:在kexec_file_load()系统调用期间验证内核签名
说明:

[ ]     Require a valid signature in kexec_file_load() syscall
翻译:需要kexec_file_load()系统调用中的有效签名
说明:

[]     Enable bzImage signature verification support
翻译:启用bzImage签名验证支持
说明:

[] kexec jump
翻译:kexec跳转
说明:

[] kernel crash dumps
翻译:内核崩溃转储
说明:

[]   Update the crash elfcorehdr on system configuration changes
翻译:在系统配置更改时更新崩溃elfcorehdr
说明:

(8192)  Specify the maximum number of memory regions for the elfcorehdr
翻译:指定elfcorehdr的最大内存区域数
说明:

附注:
kexec命令 是Linux内核的一个补丁,让您可以从当前正在运行的内核直接引导到一个新内核。在上面描述的引导序列中,kexec跳过了整个引导装载程序阶段(第一 部分)并直接跳转到我们希望引导到的内核。不再有硬件的重启,不再有固件操作,不再涉及引导装载程序。完全避开了引导序列中最弱的一环 — 固件。这一功能部件带来的最大益处在于,系统现在可以极其快速地重新启动。

kexec的好处: 要求高可用性的系统,以及需要不断重新启动系统的内核开发人员,都将受益于kexec。因为 kexec跳过了系统重新启动过程中最耗时的部分(也就是固件初始化硬件设备的阶段),所以重新启动变得非常快,可用性得到了提高

#136 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- General setup -- Kernel Performance Events » 2024-02-11 13:15:13

batsom
回复: 0

- - Kernel performance events and counterspert users)
翻译:内核性能事件和反专家用户
说明:

   [ ]   Debug: use vmalloc to back perf mmap() buffers
翻译:调试:使用vmalloc备份perf-mmap()缓冲区
说明:主要用于调试vmalloc代码.

#137 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- General setup -- Configure standard kernel » 2024-02-11 13:13:01

batsom
回复: 0

--   Load all symbols for debugging/ksymoops
翻译:加载所有符号进行调试/ksymops
说明:装载所有的调试符号表信息,会增大内核体积,仅供调试时选择

  [ ]     Test the basic functions and performance of kallsyms
翻译:测试kallsyms的基本功能和性能
说明:待确定作用

  --     Include all symbols in kallsyms
翻译:包含kallsyms中的所有符号
说明:在/proc/kallsyms中包含内核知道的所有符号,内核将会增大300K,仅在你确实需要的时候再开启

#138 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- General setup -- Namespaces support » 2024-02-11 13:09:32

batsom
回复: 0

--   UTS namespace
翻译:UTS命名空间
说明:uname()系统调用的命名空间支持

[]   TIME namespace
翻译:TIME命名空间
说明:time namespace使用类似UTS namespace的方法允许不同进程看到不同的系统时间

--   IPC namespace
翻译:IPC命名空间
说明:进程间通信对象ID的命名空间支持

--   User namespace
翻译:用户命名空间
说明:允许容器使用user命名空间.如果开启此项,建议同时
开启CONFIG_MEMCG和CONFIG_MEMCG_KMEM选项,以允许用户空间使用"memory
cgroup"限制非特权用户的内存使用量.systemd服务单元(service
unit)中的"PrivateUsers="指令依赖于它.如果你打算构建一个VPS服务器也必须选"Y".

--   PID Namespaces
翻译:进程PID命名空间
说明:进程PID命名空间支持

--   Network namespace
翻译:网络协议栈的命名空间
说明:网络协议栈的命名空间支持.systemd服务单元(service unit)中的"PrivateNetwork=/PrivateDevices="指令依赖于它.

#139 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- General setup -- Control Group support » 2024-02-11 13:05:09

batsom
回复: 0

[ ]   Favor dynamic modification latency reduction by default
翻译:默认情况下支持动态修改延迟减少
说明:

   [ ]   Memory controller
翻译:内存控制器
说明:

   [ ]   IO controller
翻译:  IO 控制器
说明:

   - -   CPU controller  --->
翻译:CPU控制器
说明:

  --   Group scheduling for SCHED_OTHER
  []     CPU bandwidth provisioning for FAIR_GROUP_SCHED
  [ ]   Group scheduling for SCHED_RR/FIFO

   [ ]   PIDs controller
翻译:PID控制器
说明:进程数控制器

   [ ]   RDMA controller
翻译:RDMA控制器
说明:RDMA网卡控制器

   [ ]   Freezer controller
翻译:冷冻柜控制器
说明:是否冻结进程

   [ ]   HugeTLB controller
翻译:HugeTLB控制器
说明:大页内存控制器

   [ ]   Cpuset controller
翻译:Cpuset控制器
说明:某一组进程只运行在某些cpu和内存节点上

   [ ]     Include legacy /proc/<pid>/cpuset file
翻译:包括旧版/proc/<pid>/cpuset文件
说明:

   [ ]   Device controller
翻译:驱动控制器
说明:

   [ ]   Simple CPU accounting controller
翻译:简单的CPU计费控制器
说明:待确定作用

   [ ]   Perf controller
翻译:Perf控制器
说明:性能控制器

   - -   Support for eBPF programs attached to cgroups
翻译:支持附加到cgroups的eBPF程序
说明:待确定作用

   [ ]   Misc resource controller
翻译:杂项资源控制器
说明:misc类设备就是杂项类设备,那些功能不太复杂,不太好归类到已经创建好的类中,这些设备都可以归类到misc类设备

   [ ]   Debug controller
翻译:调试控制器
说明:

#140 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- General setup -- RCU Subsystem » 2024-02-11 12:43:10

batsom
回复: 0

[ ] Make expert-level adjustments to RCU configuration
翻译:对RCU配置进行专家级调整
说明:

  - - Offload RCU callback processing from boot-selected CPUs
翻译:从引导选定的CPU卸载RCU回调处理
说明:帮助调试内核可以开启,否则请关闭.

  [ ]   Offload RCU callback processing from all CPUs by default
翻译:默认情况下,从所有CPU卸载RCU回调处理
说明:待确定作用

  [ ] RCU callback lazy invocation functionality
翻译:RCU回调延迟调用功能
说明:待确定作用

#141 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- General setup -- CPU/Task time » 2024-02-11 12:04:47

batsom
回复: 0

Cputime accounting (Full dynticks CPU time accounting)  --->
翻译:CPU时间记帐(完整的动态CPU时间记帐)
说明:利用上下文跟踪子系统,通过观察每一个内核与用户空间的边界进行统计.该选项对性能有显著的不良影响,目前仅用于完全无滴答子系统(CONFIG_NO_HZ_FULL)的调试

  [ ] Fine granularity task level IRQ time accounting
翻译:细粒度任务级IRQ时间核算
说明:通过读取TSC时间戳进行统计,这是统计进程IRQ时间的更细粒度的统计方式,但对性能有些不良影响(特别是在RDTSC指令速度较慢的CPU上).

  [ ] BSD Process Accounting
翻译:BSD流程会计
说明:BSD进程记账支持.用户空间程序可以要求内核将进程的统计信息写入一个指定的文件,主要包括进程的创建时间/创建者/内存占用等信息.不确定的选"N".

  [ ]   BSD Process Accounting version 3 file format
翻译:BSD Process Accounting第3版文件格式
说明:使用新的v3版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式.比如 GNU Accounting Utilities 这样的工具可以识别v3格式

  [ ] Export task/process statistics through netlink
翻译:通过netlink导出任务/进程统计信息
说明:通过netlink接口向用户空间导出进程的统计信息,与 BSD Process Accounting 的不同之处在于这些统计信息在整个进程生存期都是可用的.

  [ ]   Enable per-task delay accounting
翻译:启用每任务延迟记帐
说明:统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间

  [ ]   Enable extended accounting over taskstats
翻译:对taskstats启用扩展记帐
说明:统计信息中包含进程的更多扩展信息.不确定的选"N".

  [ ]     Enable per-task storage I/O accounting
翻译:启用每任务存储I/O记帐
说明:统计信息中包含进程在存储设备上的I/O字节数

  [ ] Pressure stall information tracking
翻译:压力失速信息跟踪
说明:

  [ ]   Require boot parameter to enable pressure stall information tracking
翻译:需要启动参数才能启用压力失速信息跟踪
说明:意思就是由于资源(CPU、内存和 IO)压力造成的任务执行停顿

#142 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- General setup -- BPF subsystem » 2024-02-11 11:52:30

batsom
回复: 0

- - Enable bpf() system
翻译:启用伯克利数据包过滤器
说明:

  [ ] Enable BPF Just In Time compiler
翻译:启用BPF实时编译器
说明:

  [ ]   Permanently enable BPF JIT and remove BPF interpreter
翻译:永久启用BPF JIT并删除BPF解释器
说明:待确定用途

  [ ] Disable unprivileged BPF by default
翻译:默认情况下禁用无特权BPF
说明:

  [ ] Preload BPF file system with kernel specific program and map iterators  --->
翻译:使用内核特定程序和映射迭代器预加载BPF文件系统
说明:

          --- Preload BPF file system with kernel specific program and map iterators
           翻译:使用内核特定程序和映射迭代器预加载BPF文件系统
           说明:

          <M>   bpf_preload kernel module
           翻译:bpf预加载内核模块
           说明:

  [ ] Enable BPF LSM Instrumentation
翻译:启用BPF LSM检测
说明:当前用于提的遥测内核基础结构(审计,性能等)与访问强制(即LSM)脱节。增强审核提供的信息需要更改内核,审核,其策略语言和用户空间组件。此外,基于新添加的遥测数据构建MAC策略需要更改各种LSM及其各自的策略语言。新版本中增加了一个新的LSM,允许将BPF程序附加到LSM hook,这有助于统一和动态审核和MAC策略。


附注:
BPF原来是Berkely Packet Filter(伯克利数据包过滤器)的缩写,原来是提升pcap过滤性能的,比当时最快的包过滤技术快20倍,只所以性能高,是因为它工作在内核中,避免包从内核态复制到用户态所以速度快,后来Alexei Starovoitov 大牛在2014年重新实现了BPF,将其扩展成了通用的执行引擎,称为eBPF,官方缩写仍是BPF。

简单解释BPF作用,BPF提供了一种当内核或应用特定事件发生时候,执行一段代码的能力。BPF 采用了虚拟机指令规范,所以也可以看一种虚拟机实现,使我们可以在不修改内核源码和重新编译的情况下,提供一种扩展内核的能力的方法。

BPF程序不像一般程序可以独立运行,它是被动运行的,需要事件触发才能运行,有点类似js里面的监听,监听到按钮点击执行一小段代码。这些事件包括系统调用,内核跟踪,内核函数,用户函数,网络事件等。

具体能干嘛那,作用还是很强大,可以进行系统故障诊断,因为其有透视内核的能力;网络性能优化,因为它可以在内核态接收网络包,并做修改和转发;系统安全,因为它可以中断非法连接等;性能监控,因为其透视能力,可以查看函数耗费时间从而我们可以知道问题到底出在哪里。

#143 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- General setup -- Timers subsystem » 2024-02-07 17:46:01

batsom
回复: 0

Timer tick handling (Full dynticks system (tickless))  --->
翻译:内核时钟滴答处理程序
说明:
--- --->
     ( ) Periodic timer ticks (constant rate, no dynticks)
          翻译:周期性计时器滴答声
          说明:无论CPU是否需要,都强制按照固定频率不断触发时钟中断.这是最耗电的方式,不推荐使用
     ( ) Idle dynticks system (tickless idle)
          翻译:空闲测功器系统
          说明:CPU在空闲状态时不产生不必要的时钟中断,以使处理器能够在较低能耗状态下运行以节约电力,适合于大多数场合
     ( ) Full dynticks system (tickless)
          翻译:完整的测功器系统
          说明:即使CPU在忙碌状态也尽可能关闭所有时钟中断,适用于CPU在同一时间仅运行一个任务,或者用户空间程序极少与内核交互的场合.即使开启此选项,也需要额外设置"nohz_full=?"内核命令行参数才能真正生效.

  [ ] Force user context tracking
翻译:强制用户上下文跟踪
说明:待确定作用

  [] Old Idle dynticks config
翻译:旧空闲动态信号配置
说明:为了兼容以前的配置文件而存在的,不需要选中

  [] High Resolution Timer Support
翻译:高分辨率定时器支持
说明:支持高精度时钟,需要选中。

  (125) Clocksource watchdog maximum allowable skew (in   s)
翻译:时钟源看门狗最大允许偏差
说明:待确定作用

#144 内核与硬件 » Linux/x86 6.6.13 内核配置选项 -- General setup » 2024-02-07 16:10:20

batsom
回复: 0

[ ] Compile also drivers which will not load
翻译:编译同时不加载驱动程序
说明:用于调试驱动程序,通常不需要

   [ ] Compile the kernel with warnings as errors
翻译:编译内核时将警告作为错误
说明:编译器应该如何处理警告,有助于提高内核代码的质量和稳定性,需要

   ()  Local version - append to kernel release
翻译:本地版本-附加到内核版本
说明:开发人员可以给定一个特殊版本号或命名他们自定义的内核 ,通常不需要

   [ ] Automatically append version information to the version string
翻译:自动将版本信息附加到版本字符串
说明:自动增加版本信息到版本字符串,通常不需要

   ()  Build ID Salt
翻译:创建id名字
说明:待确定作用

       Kernel compression mode (Gzip)  --->
翻译:内核压缩模式
说明:内核压缩模式,默认Gzip

   ()  Default init path
翻译:默认初始化路径
说明:待确定作用

   ((none)) Default hostname
翻译:系统主机名
说明:自定义在用户根系统未加载之前的主机Hostname,除了网络启动一般不用

   -*- System V IPC
翻译:System V 进程通信消息列队
说明:SYSTEM V的接口使用时间比较久,应用广泛,很多旧的产品功能采用

   [] POSIX Message Queues
翻译:POSIX 进程通信消息列队
说明:POSIX的接口设计较好,学习使用都比较容易

附注:(详情请网络查询)
一、posix消息队列与system v消息队列的差别:
1、对posix消息队列的读总是返回最高优先级的最早消息,对system v消息队列的读则可以返回任意指定优先级的消息。
2、当往一个空队列放置一个消息时,posix消息队列允许产生一个信号或启动一个线程,system v消息队列则不提供类似机制。

二、队列中的每个消息具有如下属性:
1、一个无符号整数优先级(posix)或一个长整数类型(system v)
2、消息的数据部分长度(可以为0)
3、数据本身(如果长度大于0)

   [] General notification queue
翻译:内核的通用通知队列
说明:通用通知机制是建立在标准管道驱动之上的,它可以有效地将来自内核的通知消息拼接到用 户空间打开的管道中

   [] Enable process_vm_readv/writev syscalls
翻译:启用process_vm_readv/writev系统调用
说明:用于在多个进程的地址空间之间,高效传输大块数据
> 使能这两个系统调用,这些调用允许具有正确权限的进程直接读取或写入另一个进程的地址空间。
> 现在它们只用于openMPI快速进程通信,也可以用于调试程序,未来也许还会有其他用途。看情况勾选

   [ ] uselib syscall (for libc5 and earlier)
翻译:uselib系统调用(用于libc5及更早版本)
说明:启用老旧的uselib()系统接口支持,仅在你需要使用基于libc5的古董级程序时才需要,推荐不选择
       
   [] Auditing support
翻译:审计支持
说明: 安全选项,与18-Security options相关。
内核有用日志记录事件的能力,比如记录系统调用和文件访问,管理员可以评审这些日志,
确定可能存在的安全裂口,比如失败的登录尝试,用户对系统文件不成功的访问。
这种功能称为Linux审计系统

       IRQ subsystem  --->
翻译: IRQ子系统
说明:当计算机的某个硬件设备需要处理器去执行某些工作时,该硬件会发出一个硬件信号,通知处理器去处理这个请求。这个信号就是IRQ。当处理器正在执行其他工作时,如果它收到周边设备传来的中断信号,它会停下来,优先处理这个信号代表的工作,完成后再继续处理之前未完成的工作

       --->>
          Expose irq internals in debugfs not load
          翻译:在未加载的调试中暴露irq内部
          说明:
   
       Timers subsystem  --->
翻译:计时器子系统
说明:负责在某个时间点触发中断,就是我们所说的分时系统

       BPF subsystem  --->
翻译:BPF 子系统
说明:BPF是一个工作在操作系统内核的数据包捕获机制,它先捕获链路层的数据包而后再过滤,最后将特定的过滤后的数据包提供给应用层

       Preemption Model (Voluntary Kernel Preemption (Desktop))  --->
翻译:抢占模型(自愿内核抢占(桌面))
说明:有三种
非强占式内核(服务器)
强占式内核(低延迟桌面)
voluntary kernel preemption(桌面)

   [] Preemption behaviour defined on boot
翻译:引导时定义的抢占行为
说明:允许在启动和运行时选择内核抢占模型

   [ ] Core Scheduling for SMT
翻译:SMT的核心调度
说明:> 不选,SMP(Processor type and features -> Symmetric multi-processing support)相关项。
> 同步多线程(SMT,Simultaneous Multithreading)技术。
> SMT技术是通过提升CPU核心后端执行单元的利用率,来提升整体的并行性能。
> 确切不需要那么多多线程性能,关闭此项杜绝可能的性能开销,以求极致的单核性能。
> 超过4核心可以考虑关闭。

       CPU/Task time and stats accounting  --->
翻译:CPU/进程的时间及状态统计
说明:

   -*- CPU isolation
翻译:CPU隔离
说明:CPU隔离功能,确保运行关键任务是不被打断。

       RCU Subsystem  --->
翻译:RCU子系统
说明:kernel非对称锁机制,对数据没有强一致性要求,适用于读多写少环境

   <*> Kernel .config support
翻译:Kernel.config支持
说明:将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc中得到内核的配置
                       
   []   Enable access to .config through /proc/config.gz
翻译:Enable access to .config through /proc/config.gz
说明:允许通过 /proc/config.gz 文件访问内核的配置信息

   < > Enable kernel headers through /sys/kernel/kheaders.tar.xz
翻译:通过/sys/kernel/kheaders.tar.xz启用内核标头
说明:编译kernel headers为一个模块,供需要时调用,不选。

   (18) Kernel log buffer size (16 => 64KB, 17 => 128KB)
翻译:
说明:内核日志文件大小调整,保持默认

   (12) CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB)
翻译:
说明:内核日志文件大小调整,保持默认

   [ ] Printk indexing debugfs interface
翻译:Printk索引调试接口
说明:内核debug调试打印接口,可不选。

       Scheduler features  --->
翻译:调度器功能
说明:基于task的内核进程调度,可不选。

   [] Memory placement aware NUMA scheduler
翻译:内存位置感知NUMA调度程序
说明:> 不选,服务选项。关闭根据NUMA系统的节点分布状况进行进程/内存均衡(就是简单的内存移动)。
> 这个选项对UMA系统无效;或嵌入式Linux不需要。

   []   Automatically enable NUMA aware memory/task placement
翻译:自动启用支持NUMA的内存/任务放置
说明:不选,上一项的附属选项。NUMA自动调整。

   -*- Control Group support  --->
翻译:控制组支持
说明:是一种进程管理机制,可以针对一组进程进行系统资源的分配和管理,可用于Cpusets,CFS(完全公平调度器),内存管理等子系统.此外,systemd与Docker/LXC等容器也依赖于它

   -*- Namespaces support  --->
翻译:命名空间支持
说明:主要用于支持基于容器的轻量级虚拟化技术(比如LXC和Linux-VServer以及Docker).

   [] Checkpoint/restore support
翻译:检查点/恢复支持
说明:在内核中添加"检查点/恢复"支持.也就是添加一些辅助的代码用于设置进程的 text, data, heap 段,并且在 /proc 文件系统中添加一些额外的条目.用于检测两个进程是否共享同一个内核资源的kcmp()系统调用依赖于它.使用systemd的建议开启此项

   [] Automatic process group scheduling
翻译:自动进程组调度
说明:每个TTY动态地创建任务分组(cgroup),这样就可以降低高负载情况下的桌面延迟.也就是传说中的桌面"鸡血补丁",桌面用户建议开启.但服务器建议关闭.

   -*- Kernel->user space relay support (formerly relayfs)
翻译:内核->用户空间中继支持(以前为relayfs)
说明:内核空间向用户空间传递大量数据的接口,保持默认状态

   -*- Initial RAM filesystem and RAM disk (initramfs/initrd) support
翻译:初始RAM文件系统和RAM磁盘(initramfs/initrd)支持
说明:初始内存文件系统(initramfs,2.6以上内核的新机制,使用cpio格式,占据的内存随数据的增减自动增减)与初始内存盘(initrd,2.4以前内核遗留的老机制,使用loop设备,占据一块固定的内存,需要额外开启CONFIG_BLK_DEV_RAM选项才生效)支持,一般通过lilo/grub的initrd指令加载

   ()    Initramfs source file(s)
翻译:Initramfs源文件
说明:initramfs是编到内核中的一种根文件系统,使用的是cpio格式,处理流程和我们之前介绍的initrd机制的cpio格式的流程几乎一样,
只不过这个是编译到内核里的,需要用到时内核会自行解压使用

   []   Support initial ramdisk/ramfs compressed using gzip
翻译:支持使用gzip压缩初始化内存/ ramfs
说明:

   []   Support initial ramdisk/ramfs compressed using bzip2
翻译:略
说明:

   []   Support initial ramdisk/ramfs compressed using LZMA
翻译:略
说明:

   []   Support initial ramdisk/ramfs compressed using XZ
翻译:略
说明:

   []   Support initial ramdisk/ramfs compressed using LZO
翻译:略
说明:

   []   Support initial ramdisk/ramfs compressed using LZ4
翻译:略
说明:

   []   Support initial ramdisk/ramfs compressed using ZSTD
翻译:略
说明:

   -*- Boot config support
翻译:Boot配置支持
说明:编辑引导文件,必须

   [ ]   Force unconditional bootconfig processing
翻译:强制进行无条件的bootconfig处理
说明:辑引导文件

   [ ]   Embed bootconfig file in the kernel
翻译:在内核中嵌入bootconfig文件
说明:在嵌入式系统中,通常需要配置内核引导参数。这些参数可以通过一个名为bootconfig的文件来设置,该文件包含了内核引导时需要的配置信息。
要在Linux内核中嵌入bootconfig文件,你需要在内核的配置过程中指定bootconfig文件的位置。这通常是通过内核的配置系统完成的

   [] Preserve cpio archive mtimes in initramfs
翻译:在initramfs中保留cpio存档mtimes
说明:initramfs 根文件系统归档

       Compiler optimization level (Optimize for performance (-O2))  --->
翻译:编译器优化级别(针对性能进行优化(-O2))
说明:内核压缩级别,-0s可能会产生错误代码

   [ ] Configure standard kernel features (expert users)  --->
翻译:配置标准内核功能(专家用户)
说明:专家级别的调整内核配置,不选。

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

   [] Profiling support
翻译:分析支持
说明:必选,扩展性能支持

       Kexec and crash features  --->
翻译:Kexec和崩溃功能
说明:

#145 内核与硬件 » Linux/x86 6.6.13 内核配置选项 » 2024-02-06 20:19:35

batsom
回复: 0

General setup
翻译:常规设置
说明:常用配置

64-bit kernel
翻译:64位内核

Processor type and features
翻译:中央处理器(CPU)类型及特性
说明:配置cpu

Mitigations for speculative execution vulnerabilities
翻译:推测执行漏洞的缓解措施
说明:待查明作用

Power management and ACPI options
翻译:电源管理和ACPI选项
说明:系统的电源管理机制

Bus options (PCI etc.)
翻译:PCI总线选项
说明:外围设备连接CPU

Binary Emulations
翻译:二进制模拟
说明:64位系统上兼容运行32位的应用程序

Virtualization
翻译:虚拟化支持
说明:是否使用虚拟机

General architecture-dependent options
翻译:依赖于体系结构的通用选项
说明:待确定作用

Enable loadable module support
翻译:可加载模块支持
说明:配置内核加载模块

Enable the block layer
翻译:块设备支持
说明:配置硬盘

Executable file formats
翻译:可执行文件格式/仿真
说明: 内核代码调试的

Memory Management options
翻译:内存管理选项
说明:配置内存

Networking support
翻译:网络支持
说明:配置网络通信

Device Drivers
翻译:设备驱动程序
说明:配置设备驱动程序

File systems
翻译:文件系统
说明:配置文件系统

Security options
翻译:安全选项
说明:系统安全配置

Cryptographic API
翻译:API加密
说明:可以理解进程通信消息加密

Library routines
翻译:库子程序
说明:内核开发相关的选项

Kernel hacking
翻译:内核调试
说明:内核调试选项

Gentoo Linux
翻译:内核(gentoo-sources)特有的选项
说明:Gentoo特有的选项

页脚

Powered by FluxBB

本站由XREA提供空间支持