Re: initial binary and memory layout
Frode Vatvedt Fjeld <[email protected]> Sun, 24 Apr 2005 12:34:06 +0200
| Newsgroups | gmane.lisp.movitz.devel |
|---|---|
| Message-ID | <[email protected]> |
Muli Ben-Yehuda <[email protected]> writes: > Is there any documentation (except from the code...) on the > los0-image layout and how and where it gets loaded into memory? Unfortunately I don't think it's much documented. However, there isn't too much to say about this. Most of the details are embedded in what happens in dump-image. Briefly, everything gets loaded (by the bootloader, i.e. that in bootloader.lisp or GRUB) at 1MB (physical) and up. Logical adresses start at 0, because the segment descriptors are given a 1MB base-address. (This segmentation scheme is completely optional btw, it's not any intrinsic property of movitz.) The first object (i.e whose logical location is 0) is the "global" run-time-context that is activated at boot-up (this happens in the code generated at dump-time by make-toplevel-funobj), which is called by the bootloader. That's it, really. After the global run-time-context, the memory is just a heap of (8-byte aligned) objects, in no particular order. -- Frode Vatvedt Fjeld