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

Re: vmlinux enorme



Thomas Bliesener wrote:
> 
> On Sun, Apr, 15, 2001 at 00:10:34 +0200, Santiago Vila wrote:
> 
> > Tanto zImage como bzImage son distintos formatos de núcleo. Creo que
> > la diferencia está en la forma en la que se cargan en memoria (algunos
> > portátiles, por ejemplo, no pueden usar núcleos bzImage).
> 
> Sí.
> 
> zImage lee el kernel comprimido a 0x10000 hasta max. 0x8EFFF y por eso
> está limitado a 508 kbyte. Para liberarse de esta limitación bzImage usa
> no solamente los primeros 640 kbyte de 0x00000 a 0x9FFFF sino también la
> área arriba de 1 Mbyte (0x100000). bzImage carga el kernel en bloques de
> 64 kbyte a 0x10000 hasta 0x1FFFF y los mueve a 0x100000 y las
> direcciones siguientes que normalmente no se pueden accesar en el real
> mode del x86.
> 
> Después de cargar el kernel comprimido éste se encuentra en 0x10000
> (zImage) resp.  0x100000 (bzImage). zImage copia ahora el kernel a
> 0x1000. Después de unos setups salta a 0x1000 resp. 0x100000. Esto pasa
> en setup.S.
> 
> El kernel comprimido contiene en su principio la rutina para
> descomprimirse. En los dos casos se descomprime el kernel y escribe el
> kernel descomprimido a 0x100000 (1 Mbyte) a la memoria.
> 
> En caso de bzImage no es posible directamente ya que en 0x100000 se
> encuentra el kernel comprimido. Por eso usa temporalmente la memoria de
> los primeros 640 kbyte y después del kernel comprimido. El código se
> encuentra en head.S y compressed/misc.c
> 
> En los dos casos el kernel se encuentra finalmente en 0x100000 y ahí se
> ejecuta start_kernel que arranca el kernel. Todo antes sirve solamente
> para poner el kernel descomprimido a 0x100000 debido a la
> arquitectura vieja de las PCs.
> 
> Todo esto está documentado en /usr/src/linux/arch/i386/boot/.

Si tengo un kernel de 468k que me conviene zImage o bzImage, la maquina
mia es un PIII de 800mhz.





Reply to: