Chapter 5. Frequently Asked Questions (FAQ)

5.1. "What's new in kernel 2.2 ?"
5.2. "What's new in kernel 2.4 ?"
5.3. "How to have more than 1 GB of RAM on my NetServer ?"
5.4. "How to have more than 128 MB of swap on my NetServer ?"
5.5. "How to use the other procesors of my NetServer ?"
5.6. "Is Linux Y2K compatible ?"
5.7. "How to increase the number of processes managed by the kernel ?"
5.8. "How to increase the number of loopback devices managed by the kernel ?"
5.9. "How to have files bigger than 2 GB on ext2 ?"

5.1. "What's new in kernel 2.2 ?"

5.2. "What's new in kernel 2.4 ?"

5.3. "How to have more than 1 GB of RAM on my NetServer ?"

The following information are adapted from the page of Rik van Riel. They concern 2.0.x as well as 2.2.x kernels, and 2.4.x.

First of all, the IA32 Intel architecture is limited by construction in its memory management to 4 GB. Space which should be divided into virtual memory and physical memory. Which means that if you choose to recognize more RAM, the maximum size for a program decreases.

But Linux can't manage more than 1 GB by default. To go above that, in fact up to 2 GB today, because Linux can't manage more memory for the moment, you need to modify 2 files provided with kernel sources and recompile it. Those 2 sources are /usr/src/linux/include/asm-i386/page.h and /usr/src/linux/arch/i386/vmlinux.lds.

From 2.0.37 and 2.2.12 kernels on, the patch was integrated in the kernel and may be activated when doing a make {menu,x}config.

The maximum Ram managed in the i386 version was ported to 64 GB after 2.3.23.

5.4. "How to have more than 128 MB of swap on my NetServer ?"

Up to the version 2.8x of the util-linux package, the mkswap command could create swap partitions only up to 128 MB maximum. You then had to create as much partitions as necessary. Till the 2.9 version, included in standard in RedHat 6.0 and following distributions, it's possible to create directly swap partitions up to 2 GB and to 8 partitions.

5.5. "How to use the other procesors of my NetServer ?"

Multi-processing is supported by Linux operationnaly till the 2.0 version of the kernel. For a 2.0.x kernel, you have to recompile it and set up the SMP variable in the Makefile to 1. For a 2.2.x or 2.4.x kernel, you have to set it up during the make {menu,x}config. For more details, please consult the SMP-HOWTO.

5.6. "Is Linux Y2K compatible ?"

Generally, Linux is Y2K compatible. For more information please consult the FAQ.

5.7. "How to increase the number of processes managed by the kernel ?"

For 2.2.x kernels, you need to edit the file /usr/src/linux/include/linux/tasks.h, modify the value of the constant NR_TASKS (512 by default) and set it to a value which doesn't exceed 4092 or 4090 if APM is configured. It could be useful to set MAX_TASKS_PER_USER at the same time to an appropriate value. Then recompile the kernel as usual.

5.8. "How to increase the number of loopback devices managed by the kernel ?"

You need to edit the file /usr/src/linux/drivers/block/loop.c, For 2.2.x kernels, you need to modify the value of the constant MAXLOOP (8 by default). For 2.4.x kernels, you need to modify the value of the static int max_loop variable. Then recompile the kernel as usual.

5.9. "How to have files bigger than 2 GB on ext2 ?"

You need to have a kernel 2.4.x, glibc 2.1.3 at least and that all necessary tools have been recompiled. Look at http://www.suse.de/~aj/linux_lfs.html