Bin Ren
2004-Feb-06 21:35 UTC
[Xen-devel] [DOCUMENT]: XenoLinux domain startup virtual space
To create a XenoLinux domain, all the real physical page frames are allocated for domain as required. Another special page frame, called shared_info_frame is also created, but no accounted for the domain. To build a XenoLinux domain, kernel image (and possibly initrd image) are loaded by opening /dev/mem, each time mmap 4K of it into virtual space and memcpy image content into the page. Then, from the last virtual page backwards, page directory and page tables are built. And before the last page table page is a page containing information to start the domain. This building process requires Dom0 sees the entire real physical memory via /dev/mem, even if only part of the total real physical memory is assigned to Dom0. Following is the XenoLinux domain startup virtual space map: -- Bin +-----------------------+ <------- loading virtual address, 0xC0000000 for XenoLinux | kernel image | | 1st page, 4K | +-----------------------+ | kernel image | | 2nd page, 4K | +-----------------------+ ............ +-----------------------+ | kernel image | | last page, 4K | +-----------------------+ | initrd image | | 1st page, 4K | +-----------------------+ | initrd image | | 2nd page, 4K | +-----------------------+ ............ +-----------------------+ | initrd image | | last page, 4K | +-----------------------+ ............ +-----------------------+ | start_info page | <------- domain start information, including pt_base = page | 4K | directory start address (virtual), initrd start address & length +-----------------------+ total number of pages, shared_info_frame start address | last page table | | 4K | +-----------------------+ ............ +-----------------------+ | 2nd page table | | 4K | +-----------------------+ | 1st page table | <------- page table, i.e. level 1 page table, no R/W | 4K | +-----------------------+ | page directory | <------- page directory, i.e. level 2 page table, no R/W | 4K | +-----------------------+ ............ +-----------------------+ <------- Xen virtual start address, 0xFC000000 | Xen image | | 1st page 4K | +-----------------------+ ............ +-----------------------+ | Xen image | | lasst page 4K | +-----------------------+ <------- 0xFFFFFFFF ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel