linux 内核编译各个选项的含义.docx

上传人:安*** 文档编号:18999359 上传时间:2022-06-03 格式:DOCX 页数:20 大小:22.36KB
返回 下载 相关 举报
linux 内核编译各个选项的含义.docx_第1页
第1页 / 共20页
linux 内核编译各个选项的含义.docx_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《linux 内核编译各个选项的含义.docx》由会员分享,可在线阅读,更多相关《linux 内核编译各个选项的含义.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、linux内核编译各个选项的含义Codematurityleveloptions代码成熟度选项Promptfordevelopmentand/orincompletecode/drivers显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择Generalsetup常规设置Localversion-appendtokernelrelease在内核版本后面加上自定义的版本字符串(小于64字符),能够用uname-a命令看到Automaticallyappendversioninformationtotheversionstring自动在版本字符串后面添加版本信息,编译时

2、需要有perl以及git仓库支持Supportforpagingofanonymousmemory(swap)使用交换分区或者交换文件来做为虚拟内存SystemVIPCSystemV进程间通信(IPC)支持,很多程序需要这个功能.必选,除非你知道本人在做什么IPCNamespacesIPC命名空间支持,不确定能够不选POSIXMessageQueuesPOSIX消息队列,这是POSIXIPC中的一部分BSDProcessAccounting将进程的统计信息写入文件的用户级系统调用,主要包括进程的创立时间/创立者/内存占用等信息BSDProcessAccountingversion3filefo

3、rmat使用新的第三版文件格式,能够包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式Exporttask/processstatisticsthroughnetlink通过netlink接口向用户空间导出任务/进程的统计信息,与BSDProcessAccounting的不同之处在于这些统计信息在整个任务/进程生存期都是可用的Enableper-taskdelayaccounting在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间UTSNamespacesUTS名字空间支持,不确定能够不选Auditingsupport审计支持,某些内核模块(例如SE

4、Linux)需要它,只要同时选择其子项才能对系统调用进行审计Enablesystem-callauditingsupport支持对系统调用的审计Kernel.configsupport把内核的配置信息编译进内核中,以后能够通过scripts/extract-ikconfig脚本来提取这些信息Enableaccessto.configthrough/proc/config.gz允许通过/proc/config.gz访问内核的配置信息Cpusetsupport只要含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要它Kernel-userspacerelaysupport

5、(formerlyrelayfs)在某些文件系统上(比方debugfs)提供从内核空间向用户空间传递大量数据的接口Initramfssourcefile(s)initrd已经被initramfs取代,假如你不明白这是什么意思,请保持空白Optimizeforsize(Lookoutforbrokencompilers!)编译时优化内核尺寸(使用-Os而不是-O2参数编译),有时会产生错误的二进制代码Enableextendedaccountingovertaskstats采集额外的进程统计信息并通过taskstats接口发送到用户空间Configurestandardkernelfeature

6、s(forsmallsystems)配置标准的内核特性(为小型系统)Enable16-bitUIDsystemcalls允许对UID系统调用进行过时的16-bit包装Sysctlsyscallsupport不需要重启就能修改内核的某些参数和变量,假如你也选择了支持/proc,将能从/proc/sys存取能够影响内核行为的参数或变量Loadallsymbolsfordebugging/kksymoops装载所有的调试符号表信息,仅供调试时选择Includeallsymbolsinkallsyms在kallsyms中包含内核知道的所有符号,内核将会增大300KDoanextrakallsymspa

7、ss除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项Supportforhot-pluggabledevices支持热插拔设备,如usb与pc卡等,Udev也需要它Enablesupportforprintk允许内核向终端打印字符信息,在需要诊断内核为什么不能运行时选择BUG()support显示故障和失败条件(BUG和WARN),禁用它将可能导致隐含的错误被忽略EnableELFcoredumps内存转储支持,能够帮助调试ELF格式的程序Enablefull-sizeddatastructuresforcore在内核中使用全尺寸的数据构造.禁用它将使得某些内核的数据构造

8、减小以节约内存,但是将会降低性能Enablefutexsupport快速用户空间互斥体能够使线程串行化以避免竞态条件,也提高了响应速度.禁用它将导致内核不能正确的运行基于glibc的程序Enableeventpollsupport支持事件轮循的系统调用Usefullshmemfilesystem完全使用shmem来代替ramfs.shmem是基于分享内存的文件系统(可能用到swap),在启用TMPFS后能够挂载为tmpfs供用户空间使用,它比简单的ramfs先进很多UsefullSLABallocator使用SLAB完全取代SLOB进行内存分配,SLAB是一种优秀的内存分配管理器,推荐使用En

9、ableVMeventcountersfor/proc/vmstat允许在/proc/vmstat中包含虚拟内存事件记数器Loadablemodulesupport可加载模块支持Enableloadablemodulesupport打开可加载模块支持,假如打开它则必须通过makemodules_install把内核模块安装在/lib/modules/中Moduleunloading允许卸载已经加载的模块Forcedmoduleunloading允许强迫卸载正在使用中的模块(比拟危险)Moduleversioningsupport允许使用其他内核版本的模块(可能会出问题)Sourcechecks

10、umforallmodules为所有的模块校验源码,假如你不是本人编写内核模块就不需要它Automatickernelmoduleloading让内核通过运行modprobe来自动加载所需要的模块,比方能够自动解决模块的依靠关系Blocklayer块设备层Enabletheblocklayer块设备支持,使用硬盘/USB/SCSI设备者必选SupportforLargeBlockDevices仅在使用大于2TB的块设备时需要Supportfortracingblockioactions块队列IO跟踪支持,它允许用户查看在一个块设备队列上发生的所有事件,能够通过blktrace程序获得磁盘当前的

11、具体统计数据SupportforLargeSingleFiles仅在可能使用大于2TB的文件时需要IOSchedulersIO调度器AnticipatoryI/Oscheduler假设一个块设备只要一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.适用于大多数环境,十分是写入较多的环境(比方文件服务器)DeadlineI/Oscheduler使用轮询的调度器,简洁小巧,提供了最小的读取延迟和尚佳的吞吐量,十分合适于读取较多的环境(比方数据库)CFQI/Oscheduler使用QoS策略为所有任务分配等量的带宽,避免进程被饿死

12、并实现了较低的延迟,能够以为是上述两种调度器的折中.适用于有大量进程的多用户系统DefaultI/Oscheduler默认IO调度器Processortypeandfeatures中央处理器(CPU)类型及特性Symmetricmulti-processingsupport对称多处理器支持,假如你有多个CPU或者使用的是多核CPU就选上.此时EnhancedRealTimeClockSupport选项必须开启,AdvancedPowerManagement选项必须关闭SubarchitectureType处理器的子架构,大多数人都应中选择PC-compatibleProcessorfamily

13、处理器系列,请根据你实际使用的CPU选择Genericx86support通用x86支持,假如你的CPU能够在上述Processorfamily中找到就别选HPETTimerSupportHPET是替代8254芯片的新一代定时器,i686及以上级别的主板都支持,能够安全的选上MaximumnumberofCPUs支持的最大CPU数,每增加一个内核将增加8K体积SMT(Hyperthreading)schedulersupport支持Intel的超线程(HT)技术Multi-coreschedulersupport针对多核CPU进行调度策略优化PreemptionModel内核抢占形式NoFor

14、cedPreemption(Server)合适服务器环境的禁止内核抢占VoluntaryKernelPreemption(Desktop)合适普通桌面环境的自愿内核抢占PreemptibleKernel(Low-LatencyDesktop)合适运行实时程序的主动内核抢占PreemptTheBigKernelLock能够抢占大内核锁,应用于实时要求高的场合,不合适服务器环境MachineCheckException让CPU检测到系统故障时通知内核,以便内核采取相应的措施(如过热关机等)Checkfornon-fatalerrorsonAMDAthlon/Duron/IntelPentium4每

15、5秒检测一次这些cpu的非致命错误并纠正它们,同时记入日志checkforP4thermalthrottlinginterrupt当P4的cpu过热时显示一条警告消息EnableVM86support虚拟X86支持,在DOSEMU下运行16-bit程序或XFree86通过BIOS初始化某些显卡的时候才需要ToshibaLaptopsupportToshiba笔记本模块支持DelllaptopsupportDell笔记本模块支持EnableX86boardspecificfixupsforreboot修正某些旧x86主板的重起bug,这种主板基本绝种了/dev/cpu/microcode-Int

16、elIA32CPUmicrocodesupport使用不随Linux内核发行的IA32微代码,你必需有IA32微代码二进制文件,仅对Intel的CPU有效/dev/cpu/*/msr-Model-specificregistersupport在多cpu系统中让特权CPU访问x86的MSR寄存器/dev/cpu/*/cpuid-CPUinformationsupport能从/dev/cpu/x/cpuid获得CPU的唯一标识符(CPUID)FirmwareDrivers固件驱动程序BIOSEnhancedDiskDrivecallsdeterminebootdisk有些BIOS支持从某块特定的硬

17、盘启动(假如BIOS不支持则可能无法启动),目前大多数BIOS还不支持BIOSupdatesupportforDELLsystemsviasysfs仅适用于DELL机器DellSystemsManagementBaseDriver仅适用于DELL机器HighMemorySupport最高内存支持,总内存小于等于1G的选off,大于4G的选64GMemorysplit假如你不是绝对清楚本人在做什么,不要改动这个选项Memorymodel一般选FlatMemory,其他选项涉及内存热插拔64bitMemoryandIOresources使用64位的内存和IO资源Allocate3rd-levelp

18、agetablesfromhighmem在内存很多(大于4G)的机器上将用户空间的页表放到高位内存区,以节约珍贵的低端内存Mathemulation数学协处理器仿真,486DX以上的cpu就不要选它了MTRR(MemoryTypeRangeRegister)support打开它能够提升PCI/AGP总线上的显卡2倍以上的速度,并且能够修正某些BIOS错误BootfromEFIsupportEFI是一种可代替传统BIOS的技术(目前的Grub/LILO尚不能识别它),但是如今远未普及Enablekernelirqbalancing让内核将irq中断平均分配给多个CPU以进行负载平衡,但是要配合i

19、rqbanlance守护进程才行Useregisterarguments使用-mregparm=3参数编译内核,将前3个参数以寄存器方式进行参数调用,能够生成更紧凑和高效的代码Enableseccomptosafelycomputeuntrustedbytecode只要嵌入式系统能够不选Timerfrequency内核时钟频率,桌面推荐1000HZ,服务器推荐100HZ或250HZkexecsystemcall提供kexec系统调用,能够不必重启而切换到另一个内核kernelcrashdumps被kexec启动后产生内核崩溃转储Physicaladdresswherethekernelislo

20、aded内核加载的物理地址,除非你知道本人在做什么,否则不要修改.在提供kexec系统调用的情况下可能要修改它Supportforhot-pluggableCPUs对热插拔CPU提供支持CompatVDSOsupport假如Glibc版本大于等于2.3.3就不选,否则就选上Powermanagementoptions电源管理选项PowerManagementsupport电源管理有APM和ACPI两种标准且不能同时使用.即便关闭该选项,X86上运行的Linux也会在空闲时发出HLT指令将CPU进入睡眠状态LegacyPowerManagementAPI传统的电源管理API,比方软关机和系统休眠

21、等接口PowerManagementDebugSupport仅供调试使用Drivermodel/sys/devices/./power/statefiles内核帮助文档反对使用该选项,即将被废除ACPI(AdvancedConfigurationandPowerInterface)Support必须运行acpid守护程序ACPI才能起作用.ACPI是为了取代APM而设计的,因而应该尽量使用ACPI而不是APMACAdapter假如你的系统能够在AC和电池之间转换就能够选Battery通过/proc/acpi/battery向用户提供电池状态信息,用电池的笔记本能够选Button守护程序捕获Po

22、wer,Sleep,Lid按钮事件,并根据/proc/acpi/event做相应的动作,软件控制的poweroff需要它Video仅对集成在主板上的显卡提供ACPI2.0支持,且不是所有集成显卡都支持GenericHotkey统一的热键驱动,建议不选Fan允许通过用户层的程序来对系统风扇进行控制(开,关,查询状态),支持它的硬件并不多Dock支持由ACPI控制的集线器(dockingstations)Processor让ACPI处理空闲状态,并使用ACPIC2和C3处理器状态在空闲时节省电能,同时它还被cpufreq的Performance-statedrivers选项所依靠ThermalZo

23、ne系统温度过高时能够利用ACPIthermalzone及时调整工作状态以避免你的CPU被烧毁ASUS/MedionLaptopExtrasASUS笔记本专用,以提供额外按钮的支持,用户能够通过/proc/acpi/asus来打开或者关闭LCD的背光/调整亮度/定制LED的闪烁指示等功能IBMThinkPadLaptopExtrasIBMThinkPad专用ToshibaLaptopExtrasToshiba笔记本专用DisableACPIforsystemsbeforeJan1stthisyear输入四位数的年份,在该年的1月1日前不使用ACPI的功能(0表示一直使用)DebugStatem

24、ents具体的ACPI调试信息,不搞开发就别选PowerManagementTimerSupport这个Timer在所有ACPI兼容的平台上都可用,且不会受PM功能的影响,建议总是启用它.假如你在kernellog中看到了manylostticks那就必须启用它ACPI0004,PNP0A05andPNP0A06ContainerDriver支持内存和CPU的热插拔SmartBatterySystem支持依靠于I2C的智能电池.这种电池非常老旧且罕见,还与当前的ACPI标准兼容性差APM(AdvancedPowerManagement)BIOSSupportAPM在SMP机器上必须关闭,一般来讲当前的笔记本都支持ACPI,所以应尽量关闭该该选项IgnoreUSERSUSPEND只要NECVersaM系列的笔记本才需要选择这一项EnablePMatboottime系统启动时即启用APM,选上这个选项能让系统自动的进行电源管理,但经常导致启动时死机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 培训材料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁