2022年linux内核编译 .pdf
Linux 内核配置选项翻译2.6.19.1(完成到第8 部分)2007-1-11 周四 , 10:29 0 Permalink 心情 : Angelic 内容目录1. Code maturity level options 2 2. General setup 常规安装选项2 3. Loadable module support 引导模块支持5 4. Block layer 6 5. Processor type and features 处理器类型及特性8 6. Power management options (ACPI, APM) 17 7. Bus options (PCI, PCMCIA, EISA, MCA, ISA) 总线选项22 8. Executable file formats 24 9. Networking support 网络支持。25 10. Device Drivers 设备驱动47 11. File systems 文件系统82 12. Instrumentation Support 测试用的支持项目86 13. Kernel hacking 内核调试。86 14. Security options 安全选项。88 15. Cryptographic options 密码选项。88 16. Library routines 常规的库。95 说明 1:文字中的 Y表示选择进内核。M 表示编成模块。N 表示不选择。有的只能选Y,有的只能选M。在 make menuconfig 下,表示Y,M 表示 M,空白表示N。make xconfig 下, 表示 Y ,表示 M,空白表示N。说明 2:菜单中,有的选项你选了Y才出现,有的选了Y,它反而不会出现。有的选项根本不会提供选择。 所以我提供的菜单项应该不是最完整的设置选项。如果你碰到了新的选项,你可以认真看它的英文说明,或者通过上网搜索、在论坛提问等方式来了解它。1. Code maturity level options 代码完成等级选项1.1. Prompt for development and/or incomplete code/drivers 对开发中的或者未完成的代码和驱动进行提示。LINUX下的很多东西,比如网络设备、文件系统、网络协议等等,它们的功能、稳定性、或者测试等级等等还不能够符合大众化的要求,还处于开发之中。这就是所谓的阿尔法版本:最初开发版本;接下来的是BETA版本,公开测试版本。如果这是阿尔法版本,那么开发者名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 为了避免收到诸如“ 为何这东西不工作” 的信件的麻烦,常常不会让它发布出去。但是,积极的测试和使用阿尔法版本对软件的开发是非常好的。你只需要明白它未必工作得很好,在某些情况有可能会出问题。汇报详细的出错情况对开发者很有帮助。这个选项同样会让一些老的驱动的可用。很多老驱动在将来的内核中已经被代替或者被移除。除非你想要帮助软件的测试,或者开发软件, 或者你的机器需要这些特性,否则你可以选N,那样你会在配置菜单中得到较少的选项。如果你选了Y,你将会得到更多的阿尔法版本的驱动和代码的配置菜单。2. General setup 常规安装选项2.1. Local version - append to kernel release 在你的内核后面加上一串字符来表示版本。这些字符在你使用uname -a 命令时会显示出来。你的字符最多不能超过64 位。2.2. Automatically append version information to the version string (LOCALVERSION_AUTO) 自动生成版本信息。这个选项会自动探测你的内核并且生成相应的版本,使之不会和原先的重复。这需要Perl 的支持。由于在编译的命令make-kpkg 中我们会加入- - append-to-version 选项来生成自定义版本,所以这里选N。2.3. Support for paging of anonymous memory (swap) 这个选项将使你的内核支持虚拟内存,也就是让你的计算机好象拥有比实际内存更多的内存空间用来执行很大的程序。这个虚拟内存在LINUX中就是 SWAP分区。除非你不想要SWAP分区,否则这里必选Y。2.4. System V IPC (IPC:Inter Process Communication) 中间过程连接是一组功能和系统调用,使得进程能够同步和交换信息。这通常来说是好事,有一些程序只有你选择了Y才能运行。特别地, 你想在 LINUX下运行DOS仿真程序, 你必须要选 Y。你可以用info ipc 命令来了解IPC 。一定要选Y。2.4.1. IPC Namespaces (IPC_NS) IPC 命名空间,命名空间的作用是区别同名的东西,就比如李宁和张宁,都叫“ 宁” ,加个姓才能区分。这个选项也是为不同的服务器提供IPC的多命名,达到一个IPC提供多对象支持的目的。不清楚的话选N。2.5. POSIX Message Queues 可移植操作系统接口信息队列可移植操作系统接口信息队列是IPC的一部分, 在通信队列中有较高的优先权来保持通信畅通。如果你想要编译和运行在Solaris 操作系统上写的POSIX信息队列程序,选Y,同时你还需要mqueue 库来支持这些特性。它是作为一个文件系统存在(mqueue) ,你可以mount它。为保证以后的不同程序的协同稳定,如果不清楚,选Y。2.6. BSD Process Accounting BSD进程统计如果你选Y,用户级别的程序就可以通过特殊的系统调用方式来通知内核把进程统计信息记录到一个文件, 当这个进程存在的时候,信息就会被内核记录进文件。信息通常包括建立时间、所有者、命令名称、内存使用、控制终端等。这对用户级程序非常有用。所以通常选Y是一个好主意。2.6.1. BSD Process Accounting version 3 file format 选 Y,统计信息将会以新的格式(V3)写入,这格式包含进程ID 和父进程。注意这个格式和以前的v0/v1/v2 格式不兼容,所以你需要升级相关工具来使用它。2.7. Export task/process statistics through netlink (EXPERIMENTAL) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 处于实验阶段的功能。通过通用的网络输出工作/进程的相应数据,和BSD不同的是,这些数据在进程运行的时候就可以通过相关命令访问。和BSD 类似,数据将在进程结束时送入用户空间。如果不清楚,选N。2.8. UTS Namespaces 通用终端系统的命名空间。它允许容器, 比如 Vservers利用 UTS命名空间来为不同的服务器提供不同的UTS 。如果不清楚,选N。2.9. Auditing support 审计支持 (AUDIT) 允许审计的下层能够被其他内核子系统使用,比如SE Linux,它需要这个来进行登录时的声音和视频输出。没有CONFIG_AUDITSYSCALL 时(即下一个选项)无法进行系统调用。2.9.1. Enable system-call auditing support (AUDITSYSCALL) 允许系统独立地或者通过其他内核的子系统,调用审计支持,比如SE Linux。要使用这种审计的文件系统来查看特性,请确保INOTIFY 已经被设置。上一项的子选项,两项要选就都选。我并不清楚审计的意义,可能是为了调用其他内核的东西吧。所以就都选了,因为我机器上还有个官方2.6.15-27 内核。2.10. Kernel .config support 这个选项允许 .config 文件(即编译LINUX时的配置文件)保存在内核当中。它提供正在运行中的或者还在硬盘中的内核的相关配置选项。可以通过内核镜像文件kernel image file 用命令script scripts/extract-ikconfig 来提取出来,作为当前内核重编译或者另一个内核编译的参考。如果你的内核在运行中,可以通过/proc/config.gz文件来读取。下一个选项提供这项支持。看起来好像是一个不错的功能,可以把编译时的.config 文件保存在内核中,以供今后参考调用。 用来重编译和编译其他的内核的时候可以用上。你是一个编译内核的狂人的话,这项要选上(比如我,不过我总是会备份所有的.config 文件) 。2.10.1. Enable access to .config through /proc/config.gz 上一项的子项,可以通过/proc/config.gz 访问当前内核的.config 。新功能,上一项选的话这个就选上吧。2.11. Cpuset support 多 CPU支持。这个选项可以让你建立和管理CPU集群,它可以动态地将系统分割在各个CPU和内存节点中,在各个节点是独立运行的。这对大型的系统尤其有效。如果不清楚,选N。2.12. Kernel-user space relay support (formerly relayfs) 内核系统区和用户区进行传递通讯的支持。这个选项在特定的文件系统中提供数据传递接口支持,它可以提供从内核空间到用户空间的大批量的数据传递工具和设施。如果不清楚,选N。2.13. Initramfs source file(s) 没有可选项。2.14. Optimize for size (Look out for broken compilers!) 这个选项将在GCC命令后用-Os 代替-O2参数,这样可以得到更小的内核。警告:某些 GCC版本会导致错误。如果有错,请升级你的GCC 。如果不清楚,选N。这是优化内核大小的功能,没必要选。一个编译好的内核才710 多 M ,大家不会少这么点空间吧。选上了可能会出一些问题。最好不选。2.15. Configure standard kernel features (for small systems) 这个选项可以让内核的基本选项和设置无效或者扭曲。这是用于特定环境中的,它允许“ 非名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - 标准 ” 内核。你要是选它,你一定要明白自己在干什么。这是为了编译某些特殊用途的内核使用的,例如引导盘系统。通常你可以不选择这一选项,你也不用关心他的子选项。3. Loadable module support 引导模块支持3.1. Enable loadable module support 这个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。在运行时可以使用modprobe 命令来加载它到内核中去(在不需要时还可以移除它)。一些特性是否编译为模块的原则是,不常使用的, 特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块,否则无法启动系统。在启动时不用到的功能,编成模块是最有效的方式。你可以查看MAN 手册来了解: modprobe, lsmod, modinfo, insmod 和 rmmod. 如 果 你 选 了 这 项 , 你 可 能 需 要 运 行make modules_install 命 令 来 把 模 块 添 加 到/lib/modules/ 目录下,以便modprobe 可以找到它们。如果不清楚,选Y。3.2. Module unloading 这个选项可以让你卸载不再使用的模块,如果不选的话你将不能卸载任何模块(有些模块一旦加载就不能卸载,不管是否选择了这个选项)。如果不清楚,选Y。3.2.1. Forced module unloading 这个选项允许你强行卸除模块,即使内核认为这不安全。内核将会立即移除模块,而不管是否有人在使用它(用rmmod -f 命令) 。这主要是针对开发者和冲动的用户提供的功能。如果不清楚,选N。3.3. Module versioning support (MODVERSIONS) 有时候,你需要编译模块。有时候,你需要编译模块。选这项会添加一些版本信息,来给编译的模块提供独立的特性,以使不同的内核在使用同一模块时区别于它原有的模块。这有时可能会有点用。如果不清楚,选N。3.4. Source checksum for all modules 这个功能是为了防止你在编译模块时不小心更改了内核模块的源代码但忘记更改版本号而造成版本冲突。如果不清楚,选N。3.5. Automatic kernel module loading 允许内核自动加载模块。一般情况下, 如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe 命令来加载它,内核才能使用。不过,如果你选择了这个选项, 在内核需要一些模块时它可以自动调用modprobe 命令来加载需要的模块。如果不清楚,选Y。4. Block layer 块设备。4.1. Enable the block layer (BLOCK) 这选项使得块设备可以从内核移除。如果不选,那么blockdev 文件将不可用,一些文件系统比如ext3 将不可用。这个选项会禁止SCSI 字符设备和USB 储存设备,如果它们使用不同的块设备。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 17 页 - - - - - - - - - 选 Y,除非你知道你不需要挂载硬盘和其他类似的设备。不过此项无可选项。4.1.1. Support for Large Block Devices (LBD) 如果你要用大于2TB的硬盘,选这个。4.1.2. Support for tracing block io actions 对块设备进行跟踪和分析的功能。4.1.3. Support for Large Single Files (LSF) 大文件支持。如果你准备建的文件大于2TB,选这个。4.1.4. IO Schedulers 磁盘 IO 调度器IO 是输入输出带宽控制,主要针对硬盘,是核心的必須的东西。这里提供了三个IO 调度器。4.1.4.1. Anticipatory I/O scheduler 抢先式I/O 调度方式是默认的磁盘调度方式。它对于大多数环境通常是比较好的选择。但是它和 Deadline I/O 调度器相比有点大和复杂,它有时在数据调入时会比较慢。4.1.4.2. Deadline I/O scheduler Deadline IO 调度器简单而又紧密,在性能上和抢先式调度器不相上下,在一些数据调入时工作得更好。至于在单进程IO 磁盘调度上,它的工作方式几乎和抢先式调度器相同,因此也是一个好的选择。看介绍这个好像比上面的更好,可以试试。不过按照我的平衡观点,好东西都会带来问题。4.1.4.3. CFQ I/O scheduler CFQ调度器尝试为所有进程提供相同的带宽。它将提供平等的工作环境,对于桌面系统很合适。4.1.4.4. Default I/O scheduler 选择默认的IO 调度器我选了 Anticipatory I/O scheduler 。我这样理解上面三个IO 调度器:抢先式是传统的, 它的原理是一有响应,就优先考虑调度。如果你的硬盘此时在运行一项工作,它也会暂停下来先响应用户。期限式则是:所有的工作都有最终期限,在这之前必须完成。当用户有响应时,它会根据自己的工作能否完成,来决定是否响应用户。CFQ 则是平均分配资源,不管你的响应多急,也不管它的工作量是多少,它都是平均分配,一视同仁的。5. Processor type and features 处理器类型及特性5.1. Symmetric multi-processing support (SMP) 对称多处理器支持。这将支持有多CPU的系统。如果你的系统只有一个CPU,选 N。反之,选Y。如果你选 N,内核将会在单个或者多个CPU的机器上运行, 但是只会使用一个CPU 。如果你选 Y,内核可以在很多(但不是所有)单CPU的机器上运行,在这样的机器,你选N 会使内核运行得更快。注意如果你选Y,然后在Processor family 选项中选择 586 or Pentium ,内核将不能运行在 486 构架的机器上。 同样的, 多 CPU的运行于 PPro构架上的内核也无法在Pentium 系列的板上运行。使用多 CPU机器的人在这里选Y, 通常也会在后面的选项“Enhanced Real Time Clock Support”中选 Y。如果你在这选Y,Advanced Power Management 的代码将不可用。如果不清楚,选N。5.2. Subarchitecture Type 子构架类型5.2.1. PC-compatible 选这个如果你的机器是标准PC 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - 5.2.2. AMD Elan 注意,如果你是K6/Athlon/Opteron处理器不要选这个5.2.3. Voyager 5.2.4. NUMAQ (IBM/Sequent) 5.2.5. Summit/EXA (IBM x440) 5.2.6. SGI 320/540 (Visual Workstation) 5.2.7. Generic architecture (Summit, bigsmp, ES7000, default) 5.2.8. Support for Unisys ES7000 IA32 series 5.3. Processor family 处理器类型。针对自己的CPU类型,选取相应的选项。这里是处理器的类型。这里的信息主要目的是用来优化。为了让内核能够在所有X86 构架的CPU上运行(虽然不是最佳速度),在这你可以选386。内核不会运行在比你选的构架还要老的机器上。比如, 你选了 Pentium 构架来优化内核,它将不能在 486 构架上运行。如果你不清楚,选386。5.3.1. - 386 5.3.2. - 486 5.3.3. - 586 5.3.4. - Pentium-Classic 5.3.5. - Pentium-MMX 5.3.6. - Pentium-Pro 5.3.7. - Pentium-II 5.3.8. - Pentium-III 5.3.9. - Pentium-4 5.3.10. - K6, K6-II and K6-III 5.3.11. - Athlon K7 (Athlon/Duron/Thunderbird). 5.3.12. -Opteron/Athlon64/Hammer/K8 5.3.13. - Crusoe 5.3.14. - Efficeon 5.3.15. - Winchip-C6 5.3.16. - Winchip-2 5.3.17. - Winchip-2A 5.3.18. - GeodeGX1 5.3.19. - Geode GX/LX 5.3.20. - CyrixIII/VIA C3 5.3.21. - VIA C3-2 Nehemiah. 5.4. Generic x86 support 通用 X86 支持。除了对上面你选择的X86 CPU进行优化, 它还对更多类型X86 CPU的进行优化。 这将会使内核在其他的X86 CPU上运行得更好。对于供应商来说,他们非常需要这些功能,因为他们需要更通用的优化支持。这个选项提供了对X86 系列 CPU最大的兼容性,用来支持一些少见的x86 构架的 CPU。如果你的 CPU能够在上面的列表中找到,就里就不用选了。5.5. HPET Timer Support 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 17 页 - - - - - - - - - HPET时钟支持允许内核使用HPET 。 HPET 是代替当前8254 的下一代时钟, 全称叫作高精度事件定时器。你可以安全地选Y 。但是, HEPT只会在支持它的平台和BIOS上运行。如果不支持,8254 将会激活。选 N,将继续使用8254 时钟。5.6. Maximum number of CPUs (2-255) 设置最高支持的CPU数,无法选择。我的显示为8。5.7. SMT (Hyperthreading) scheduler support 超线程调度器支持超线程调度器在某些情况下将会对Intel Pentium 4 HT 系列有较好的支持。如果你不清楚,选N。5.8. Multi-core scheduler support 多核调度机制支持,双核的CPU要选。多核心调度在某些情况下将会对多核的CPU系列有较好的支持。如果你不清楚,选N。5.9. Preemptible Kernel 抢先式内核。一些优先级很高的程序可以先让一些低优先级的程序执行,即使这些程序是在核心态下执行。从而减少内核潜伏期,提高系统的响应。当然在一些特殊的点的内核是不可抢先的,比如内核中的调度程序自身在执行时就是不可被抢先的。这个特性可以提高桌面系统、实时系统的性能。下面有三个选项:5.9.1. No Forced Preemption (Server) 非强迫式抢先。这是传统的LINUX抢先式模型, 针对于高吞吐量设计。 它同样在很多时候会提供很好的响应,但是也可能会有较长的延迟。如果你是建立服务器或者用于科学运算,选这项,或者你想要最大化内核的原始运算能力,而不理会调度上的延迟。5.9.2. Voluntary Kernel Preemption (Desktop) 自动式内核抢先这个选项通过向内核添加更多的“ 清晰抢先点 ” 来减少内核延迟。 这些新的抢先点以降低吞吐量的代价,来降低内核的最大延迟,提供更快的应用程序响应。这通过允许低优先级的进程自动抢先来响应事件,即使进程在内核中进行系统调用。这使得应用程序运行得更“ 流畅 ” ,即使系统已经是高负荷运转。如果你是为桌面系统编译内核,选这项。5.9.3. Preemptible Kernel (Low-Latency Desktop) 可抢先式内核(低延迟桌面)这个选项通过使所有内核代码(非致命部分)编译为“ 可抢先 ” 来降低内核延迟。这通过允许低优先级进程进行强制抢先来响应事件,即使这些进程正在进行系统调用或者未达到正常的 “ 抢先点 ” 。这使得应用程序运行得更加“ 流畅 ” 即使系统已经是高负荷运转。代价是吞吐量降低,内核运行开销增大。选这项如果你是为桌面或者嵌入式系统编译内核,需要非常低的延迟。如果你要最快的响应,选第三项。我认为万物是平衡的,低延迟意味着系统运行不稳定,因为过多来响应用户的要求,所以我选第二个。5.10. Preempt The Big Kernel Lock 抢先式大内核锁(早期 Linux 用于支持SMP系统时所采用的非细粒度锁) 这个选项通过让大内核锁变成“ 可抢先 ” 来降低延迟。选 Y如果你在构建桌面系统。如果你不清楚,选N。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - 5.11. Machine Check Exception 机器例外检查机器例外检查允许处理器在检测到问题(比如过热、组件错误)时通知内核。内核根据问题的严重程度来决定下一步行为,比如在命令行上打印告警信息,或者关机。你的处理器必须是Pentium 或者更新版本才能支持这个功能。用 cat /proc/cpuinfo来检测你的CPU是否有 mce 标志。注意一些老的Pentium 系统存在设计缺陷,会提供假的MCE 事件,所以在所有P5 处理器上 MCE被禁用,除非在启动选项上明确mce 参数。同样地,如果MCE 被编译入内核并在非标准的机器上导致错误,你可以用nomce 启动参数来禁用MCE。MCE功能会自动忽视非MCE 处理器,比如386 和 486,所以几乎所有人都可以在这里选Y。5.11.1. Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 检测 AMD Athlon/Duron / Intel Pentium 4的非致命错误允许这项特性, 系统将会启动一个计时器,每 5 秒进行检测。 非致命问题会自动修正(但仍然会记录下来) ,如果你不想看到这些信息,选N。这些信息可以让你发现要损坏的硬件,或者是非标准规格硬件(比如:超频的)。这个功能只会在特定的CPU上起作用。5.11.2. check for P4 thermal throttling interrupt. 检测 P4节能器中断当 P4进入节能状态时,打印信息。5.12. Toshiba Laptop support 东芝笔记本支持。这个选项是针对Toshiba 笔记本的,可以用来访问Toshiba 的系统管理模式,可以直接设置BIOS。不过要注意它只在Toshiba自己的BIOS中起作用。 假如你有一台Toshiba笔记本, 而它的 BIOS是 Phoenix 的,那这个选项仍然是无用的。5.13. Dell laptop support DELL笔记本支持。功能同上5.14. Enable X86 board specific fixups for reboot X86 板的重启修复功能。这将打开芯片或者主板上的重启修复功能,从而能够使之正常工作。这功能仅仅在一些硬件和 BIOS的特定组合上需要。需要这项功能的征兆是重启时使系统卡死或者挂起。目前,这个修复功能仅仅支持Geode GX1/CS5530A/TROM2.1.的组合。选 Y如果你需要这项功能,目前,选Y是安全的,即使你不需要它。否则,选N。5.15. /dev/cpu/microcode - Intel IA32 CPU microcode support 是否支持Intel IA32 架构的 CPU 。这个选项将让你可以更新Intel IA32 系列处理器的微代码,显然你需要到网上去下载最新的代码,LINUX不提供这些代码。当然你还必须在文件系统选项中选择/dev file system support才能正常的使用它。如果你把它译为模块,它将是microcode。IA32 主要用于高于4GB的内存。详见下面的“ 高内存选项 ” 。5.16. /dev/cpu/*/msr - Model-specific register support 是否打开CPU特殊功能寄存器的功能。这个选项桌面用户一般用不到,它主要用在Intel 的嵌入式 CPU中的,这个寄存器的作用也依赖与不同的CPU类型而有所不同,一般可以用来改变一些CPU原有物理结构的用途,但不同的CPU用途差别也很大。5.17. /dev/cpu/*/cpuid - CPU information support 是否打开记录CPU 相关信息功能。这会在/dev/cpu中建立一系列的设备文件,用以让过程去访问指定的CPU。5.18. High Memory Support (4GB) 高容量内存支持名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 17 页 - - - - - - - - - LINUX能够在 X86 系统中使用64GB的物理内存。但是,32 位地址的 X86 处理器只能支持到4GB 大小的内存。这意味着,如果你有大于4GB 的物理内存,并非都能被内核“ 永久映射 ” 。这些非永久映射内存就称为“ 高阶内存 ” 。如果你编译的内核永远都不会运行在高于1G 内存的机器上,选OFF(默认选项,适合大多数人) 。这将会产生一个3GB/1GB的内存空间划分,3GB 虚拟内存被内核映射以便每个处理器能够 “ 看到 ”3GB 的虚拟内存空间,这样仍然能够保持4GB的虚拟内存空间被内核使用,更多的物理内存能够被永久映射。如果你有1GB4GB 之间的物理内存,选4GB选项。如果超过4GB,那么选择64GB。这将打开Intel 的物理地址延伸模式(PAE ) 。PAE将在 IA32 处理器上执行3 个层次的内存页面。PAE是被 LINUX完全支持的, 现在的 Intel 处理器(Pentium Pro 和更高级的 )都能运行 PAE模式。注意:如果你选64GB,那么在不支持PAE的 CPU上内核将无法启动。你机器上的内存能够被自动探测到,或者你可以用类似于mem=256M 的参数强制给内核指定内存大小。5.18.1. off 如果不清楚,选OFF 。5.18.2. 4GB 选这项如果你用的是32 位的处理器,内存在1-4GB之间。5.18.3. 64GB 选这项如果你用的是32 位的处理器,内存大于4GB。5.19. Memory model 内存模式5.19.1. Flat Memory 平坦内存模式。这个选项允许你改变内核在内部管理内存的一些方式。大多数用户在这只会有一个选项:Flat Memory 。这是普遍的和正确的选项。一些用户的机器有更高级的特性,比如NUMA 和内存热拔插,那将会有不同的选项。Discontiguous Memory (非接触式内存模式)是一个更成熟、更好的测试系统。但是对于内存热拔插系统不太合适,会被Sparse Memory 代替。如果你不清楚Sparse Memory 和Discontiguous Memory 的区别,选后者。如果不清楚,就选Flat Memory 。5.19.2. Sparse Memory 稀疏内存模式。这对某些系统是唯一选项,包括内存热拔插系统。这正常。对于其他系统, 这将会被Discontiguous Memory 选项代替。这个选项提供潜在的更好的特性,可以降低代码复杂度,但是它是新的模式,需要更多的测试。如果不清楚,选择Discontiguous Memory 或 Flat Memory 。我的机器上只有这两个选项,我选Flat Memory 。5.20. 64 bit Memory and IO resources (EXPERIMENTAL) 64 位内存和 IO 资源这个选项将使内存和IO 资源变成64 位的。实验选项,可以让内存和IO 变为 64 位。我的总线是32 位的,所以还是不选了。选了不知道会不会出错。5.21. Math emulation 数学仿真LINUX 可以仿真一个数学协处理器(用来进行浮点运算),如果你没有的话。486DX 和Pentium 处理器内建有数学协处理器。486SX和 386 的没有,除非你专门加过487DX 或者387 协处理器。所有人都需要协处理器或者这个仿真。如果你没有数学协处理器,你需要在这选Y。如果你有了协处理器还在这选Y,你的协处理器仍然被用到。这意味着如果你打算把编译的内核用在不同的机器上,选Y是明智的选择。如果不清楚,选Y,这将使内核增加66KB,无伤大雅。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 17 页 - - - - - - - - - 5.22. MTRR (Memory Type Range Register) support 内存类型区域寄存器在 Intel P6 系列处理器 (Pentium Pro, Pentium II 和更新的 )上, MTRR将会用来规定和控制处理器访问某段内存区域的策略。如果你在PCI或者 AGP总线上有VGA 卡,这将非常有用。例如可将MTTR 设为在显存的地址范围上使用 “write -combining ” 策略,这样CPU可以在 PCI/AGP总线爆裂之前将多次数据传输集合成一个大的数据传输,这样可以提升图像的传送速度2.5 倍以上。选Y,会生成文件/proc/mtrr ,它可以用来操纵你的处理器的MTRR 。典型地, X server 会用到。这段代码有着通用的接口,其他 CPU的寄存器同样能够使用该功能。Cyrix 6x86, 6x86MX 和 M II 处理器有ARR ,它和 MTRR有着类似的功能。AMD K6-2/ K6-3 有两个 MTRR, Centaur C6有 8 个 MCR 允许复合写入。所有这些处理器都支持这段代码,你可以选Y如果你有以上处理器。选 Y同样可以修正SMP BIOS的问题,它仅为第一个CPU提供 MTRR,而不为其他的提供。这会导致各种各样的问题,所以选Y是明智的。你可以安全地选Y,即使你的机器没有MTRR。这会给内核增加9KB。5.23. Boot from EFI support EFI启动支持这里允许内核在EFI平台上使用储存于EFI固件中的系统设置启动。这也允许内核在运行时使用 EFI的相关服务。这个选项只在有EFI固件的系统上有用, 它会使内核增加8KB。 另外,你必须使用最新的ELILO 登录器才能使内核采用EFI的固件设置来启动(GRUB和 LILO完全不知道EFI是什么东西) 。即使你没有EFI,却选了这个选项,内核同样可以启动。大家应该用的是GRUB ,所以选上这个也没什么用。5.24. Enable kernel irq balancing (IRQBALANCE) 中断平衡。这个选项使系统进行中断平衡。如果你是双核CPU ,如果不选这项,那么中断负荷都在第一个CPU上,其他的CPU可能得不到中断。5.25. Use register arguments (REGPARM) 寄存器参数使用。使用寄存器参数用 -mregparm=3 的参数编译内核。这使gcc 使用更高效的应用程序二进制接口(ABI)来跳过编译时的前三个调用寄存器参数。这使得代码编译更精巧更快速。如果你不选这个选项,默认的ABI将会使用。如果不清楚,选Y。5.26. Enable seccomp to safely compute untrusted bytecode (SECCOMP) 允许 SECCOMP (快速计算)安全地运算非信任代码。这个内核特性在程序出现数码错误,需要重新对非信任的代码进行运算时非常有效。它使用管道或者其他传输方式,使文件描述进程支持读/写的系统调用, 这样可以利用SECCOMP 隔离那些程序本身的空间。一旦secc