[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Kernel and networking



On Tue, Nov 16, 1999 at 10:56:58AM -0000, French, Alastair wrote:
> The kernel has to fit in a certain size space on the disk, I believe
> (someone will correct me) it is the system area i.e. 512 bytes. In order to
> get the kernel to fit you have to use make bzImage instead of make zImage,
> this will make a compressed kernel (bz compression). This will stop the
> error messages. If you are using LILIO you will also have to make zlilo as
> well. This then allows the loader to decompress the kernel on boot.

There is a certain amount of misinformation here.

(1) When we first started compressing kernels, Werner Almesberger and
Linus Torvalds agreed on a way of loading kernels into memory.
At the time, Linus expected the biggest kernel ever to be
about 250k, so he designed the load method to work with kernels
up to about 512k in size (in memory).

(2) bzImages are compressed in exactly the same way as zImages,
using gzip (not bzip). What they do is, they allow a later
version of LILO (or of some other boot loader) to use a different
method of loading the kernel into memory, one which does not
stop at 512k bytes. As the kernel source says, bzImage does
not stand for 'bzip Image' but for 'big zImage'. Note
that on some old machines, even with the latest LILO, there
may be a BIOS problem that prevents successful loading of
a kernel bzImage.

(3) The commands
make zImage
make zlilo
make bzImage
make bzlilo
are (in effect) exclusive; you should not need to use more than
one of them. The command 'make zImage' makes an oldfashioned
gzipped image file for simple loading. The command 'make zlilo'
creates the same sort of file, puts it into the /boot (or /)
directory as (/boot)/vmlinuz, backing up the old kernel as
(/boot)/vmlinuz.old, creates a system map file as (/boot)/System.map,
backing up the old map file as (/boot)/System.old, and runs LILO,
which you are expected to have configured to use the kernel
(/boot)/vmlinuz as the default kernel, and (/boot)/vmlinuz.old as
an optional emergency backup. The command 'make bzImage' makes
a newfangled gzipped image file for multi-stage loading. The
command 'make bzlilo' creates the same sort of file and installs
it with the map file and runs LILO as above.

I hope this clarifies things.

-- Owen
LeBlanc@mcc.ac.uk

Start your own FREE mailing list at

© 2000 Microsoft Corporation. All Rights Reserved