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

[Xen-devel] [DOCUMENT]: XenoLinux domain startup virtual space


  • To: Devel Xen <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
  • From: Bin Ren <br260@xxxxxxxxx>
  • Date: Thu, 1 Jan 1970 07:23:20 +0100
  • Delivery-date: Fri, 06 Feb 2004 21:35:32 +0000
  • List-id: List for Xen developers <xen-devel.lists.sourceforge.net>

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@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.