[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-users] A fundamental doubt.
> -----Original Message----- > From: xen-users-bounces@xxxxxxxxxxxxxxxxxxx > [mailto:xen-users-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Anuj Bhatt > Sent: 05 April 2007 13:53 > To: xen-users@xxxxxxxxxxxxxxxxxxx > Subject: [Xen-users] A fundamental doubt. > > Hi, > > I read an article on the ring architecture of Xen which is based on > the protection ring architecture of x86. It said that the host kernel > as well as the guest xenified kernels run in ring1 and xen on ring0. > Since xen is in ring0 and hypercalls are basically calls made from > user space to kernel space(in this case ring1) how does one block > calls from reaching to dom0 from an event that has occurred from domU? No, hypercalls are "kernel-mode to hypervisor", so from Ring1 to Ring0, and Xen knows which guest is which - Dom0 isn't any different from any other guest other than having a special flag to say "I'm Dom0" (Actually, the flag says "I'm privileged", but it amounts to the same thing at the moment). This is comparable to a "regular" user (DomU) and the "root" user (Dom0) in any Unix. The OS only sees a difference between root and regular users in special cases where the root user is allowed to do certain things that regular users would be prevented from doing (such as killing a process that the user isn't owner of - root can do this, but a regular user can only kill owned processes). Similarly, Dom0 can do things like create/destroy domains, but DomU can't. To explain a bit further about hypercalls - generally, hypercalls are part of system calls, for example, if a system call allocates 1MB of memory, a hypercall would be used to write the 256 page-table entries into the page-table [this is an example, it may actually not work exactly that way - but it gives an idea of how hypercalls are used]. It is not possible for user-mode applications to perform hypercalls directly - they have to be done in kernel-space. > Is this done by the event channel which is monitored? Event channels are used to communicate between domains, such as Dom0 telling DomU that the disk-read it just asked for is completed, or from DomU to Dom0 to say "I've got another disk operation I would like you to perform". [And to be more technical about things, only 32-bit Xen uses Ring1 for kernel-space. In 64-bit mode, the kernel uses Ring3, but it has a different page-table mapping so that user-mode apps can't access the kernel spac]. -- Mats > > Have I got my facts right? > > Thanks a ton. > > Regards, > Anuj Bhatt. > > _______________________________________________ > Xen-users mailing list > Xen-users@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-users > > > _______________________________________________ Xen-users mailing list Xen-users@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-users
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |