第 5 章. 常见问题解答 (FAQ)

5.1. “内核 2.2 中有哪些新功能?”
5.2. “内核 2.4 中有哪些新功能?”
5.3. “如何在我的 NetServer 上拥有超过 1 GB 的 RAM?”
5.4. “如何在我的 NetServer 上拥有超过 128 MB 的交换空间?”
5.5. “如何使用我的 NetServer 的其他处理器?”
5.6. “Linux 是否兼容 Y2K?”
5.7. “如何增加内核管理的进程数量?”
5.8. “如何增加内核管理的环回设备数量?”
5.9. “如何在 ext2 上拥有大于 2 GB 的文件?”

5.1. “内核 2.2 中有哪些新功能?”

5.2. “内核 2.4 中有哪些新功能?”

5.3. “如何在我的 NetServer 上拥有超过 1 GB 的 RAM?”

以下信息改编自 Rik van Riel 的 页面。它们涉及 2.0.x 以及 2.2.x 内核和 2.4.x。

首先,IA32 Intel 架构在内存管理方面在结构上限制为 4 GB。该空间应分为虚拟内存和物理内存。这意味着,如果您选择识别更多 RAM,则程序的最大大小会减小。

但是默认情况下,Linux 无法管理超过 1 GB 的内存。要超过此限制,实际上今天最多可达 2 GB,因为 Linux 目前无法管理更多内存,您需要修改内核源代码提供的 2 个文件并重新编译它。这两个源文件是/usr/src/linux/include/asm-i386/page.h/usr/src/linux/arch/i386/vmlinux.lds.

从 2.0.37 和 2.2.12 内核开始,该补丁已集成到内核中,并且可以在执行 make {menu,x}config 时激活。

在 2.3.23 之后,i386 版本中管理的最大 Ram 被移植到 64 GB。

5.4. “如何在我的 NetServer 上拥有超过 128 MB 的交换空间?”

在 util-linux 包的 2.8x 版本之前,mkswap 命令只能创建最大 128 MB 的交换分区。然后您必须创建尽可能多的分区。直到包含在 RedHat 6.0 和后续发行版中的 2.9 版本,才可以直接创建最大 2 GB 和最多 8 个分区的交换分区。

5.5. “如何使用我的 NetServer 的其他处理器?”

Linux 在 2.0 内核版本之前就已运行支持多处理。对于 2.0.x 内核,您必须重新编译它并在 Makefile 中将 SMP 变量设置为 1。对于 2.2.x 或 2.4.x 内核,您必须在 make {menu,x}config 期间进行设置。有关更多详细信息,请查阅 SMP-HOWTO

5.6. “Linux 是否兼容 Y2K?”

通常,Linux 是 Y2K 兼容的。有关更多信息,请查阅 FAQ

5.7. “如何增加内核管理的进程数量?”

对于 2.2.x 内核,您需要编辑文件/usr/src/linux/include/linux/tasks.h,修改常量 NR_TASKS 的值(默认为 512),并将其设置为不超过 4092 或 4090 的值(如果配置了 APM)。同时将 MAX_TASKS_PER_USER 设置为适当的值可能会很有用。然后像往常一样重新编译内核。

5.8. “如何增加内核管理的环回设备数量?”

您需要编辑文件/usr/src/linux/drivers/block/loop.c,对于 2.2.x 内核,您需要修改常量 MAXLOOP 的值(默认为 8)。对于 2.4.x 内核,您需要修改静态 int max_loop 变量的值。然后像往常一样重新编译内核。

5.9. “如何在 ext2 上拥有大于 2 GB 的文件?”

您需要拥有内核 2.4.x、glibc 2.1.3 或更高版本,并且已重新编译所有必要的工具。查看 http://www.suse.de/~aj/linux_lfs.html