[Coco] expanding the boot track
William Astle
lost at l-w.ca
Sat Oct 10 18:43:55 EDT 2015
On 2015-10-10 15:13, Dave Philipsen wrote:
> Just another note: I like your idea about eliminating the 'incestuous relationship' between these three modules too. It's almost like they could be all lumped together or at least linked in some way so that they are all assembled together at the same time and Rel relocates them to exactly the right spot to align the vectors at the end of the 64K memory map.
>
> I think if they were assembled together like that then the assembler would be able to provide the correct references so that each module would know where the others were.
That actually doesn't work so well as you might think. The reason for
that is that KRN is constant across all boots. BOOT, on the other hand,
varies wildly depending on the hardware the boot file is being loaded
from. Because of that, it makes no sense to merge them.
REL, on the other hand, should do just one thing. Relocate the stuff
loaded from the boot track to where it needs to be. It should do exactly
nothing else except the bare minimum required to do the relocation. In
fact, once it's done its job, REL isn't needed any more, not even on a
warm boot, so if all the initialization stuff it does now were moved
into BOOT, REL wouldn't even need to be relocated.
Separating the relationship between BOOT and KRN is a harder problem
because the way it's written now, BOOT needs aspects of KRN already
initialized.
If you actually trace the boot process, it's pretty clear that the
original from OS9 Level II was a hack piled on top of a kludge.
More information about the Coco
mailing list