Re: [Q] the limited size of vmlinuz ?

Brian Gerst (bgerst@quark.vpplus.com)
Thu, 20 Nov 1997 15:03:57 -0500


Ju Young PARK wrote:
>
> Hello.. linux gurus..
>
> I'm trying to upgrade my linux box from 2.0.27 to 2.0.29 ( the reason
> why I insit 2.0.29 is to set up ATM interface..) ..
>
> I could comlet linux kernel compile by 'make zImage' (tried 'make
> zbImage') .. but to install just-compiled kernel.. the error message
> "/boot/vmlinuz is too big" hit me..but the file size of vmlinuz was only
> 847k byte.. I think it is small enough ..
> BTW. vmlinuz under 500k byte can be installed and work properly..
>
> I'm very curious if there's limited linux kernel(vmlinuz) size..?? If
> does, how can I overcome the limit..??
>
> Thank you in advance..

The size of vmlinuz is limited (at least on the x86 platform) is because
when the kernel is being loaded into memory the processor is in real
mode, and only has conventional memort to work with (<640K). The real
reason behind this is that the bootloader needs the bios to load the
kernel into memory, which only works in real mode. bzImage tries to get
around that by having the boot loader load the kernel into extended
memory one chunk at a time (ie load chunk using bios, switch to prot.
mode, copy to ext mem, switch back to real mode, etc.) thereby
eliminating the size restriction. Note also that the size restriction
is also one of the reasons the kernel image is compressed with gzip.
AFAIK, x86 is the only architecture which has such a size restriction on
the kernel.

-- 

Brian Gerst