Re: mabye simple,but i confused

From: DervishD
Date: Thu Jun 16 2005 - 02:52:29 EST


* guorke <gourke@xxxxxxxxx> dixit:
> in understangding the linux kernel, the authors says
> "..Moves itself from address 0x00007c00 to address 0x00090000.."
>
> What i confused is why the Boot Loader do this, i asked google,but
> still no answe.
> who can make me understand it ?

Well, let's start with the Master Boot Record. In PC's the BIOS
loads the MBR at address 0x7c00, but the MBR is responsible for
loading the OS bootsector, if any. And the bootsectors are written
assuming that they're loaded by a MBR or *by the BIOS itself* so the
address they assume is 0x7c00. But the MBR is already at that
address! What can it do? Well, it moves itself out of the place.

The problem is that the kernel itself could be loaded directly by
the BIOS (a long time ago, it was possible to boot from a raw floppy
containing an image of the kernel), and the first sector would be
loaded at 0x7c00, so the bootsector, MBR, loader or whatever has to
move out of that address at the very beginning. Why the physical
address 0x00090000 was used? I don't know. Well, it's well at the top
of the 640k base memory and the segment starts with 1001 in binary,
which is a fancy number XDD

Hope that helps.

Raúl Núñez de Arenas Coronado

--
Linux Registered User 88736 | http://www.dervishd.net
http://www.pleyades.net & http://www.gotesdelluna.net
It's my PC and I'll cry if I want to...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/